1. Request access & install credentials
1
Request API activation
API access is off by default. Email [email protected] with your org name and integration use case.
2
Generate an API key
Sign in at yourproducthere.ai, open Developer, and regenerate your key (
yph_sk_live_…). Store it in a secrets manager — the full secret is shown once.3
Confirm base URL & docs
Production base:
https://api.yourproducthere.ai/v1. Keep this site (docs.yourproducthere.ai) and llms.txt in your repo for AI-assisted integration.4
Smoke test
apiAccessEnabled: true and a credit balance on /account.2. Integration order (canonical)
Follow this order on every environment — skipping steps causes400/404/409 errors:
POST /digital-samples(draft or with externalseedVideoUrl) — setaccountToken(brand) and optionalproductTokenfor enterprise embeds- Seed video — presigned
upload-url→ PUT →register, or HTTPS ingest viaseedVideoUrl POST /actors(face + body + voice URLs) — setaccountToken(creator or brand)POST /digital-samples/{id}/insta-swaps(charges 1 credit on queue) — optionalaccountTokenon swap (defaults from actor)- Poll
GET /insta-swaps/{id}or registerPOST /webhooksforinsta_swap.*
isBrandSelfService.
Details: End-to-end workflow · Integrator tokens · Authentication · Webhooks
3. Digital Sample seed video
Seed quality drives Insta Swap output. The API and app enforce the same hard limits; the app also shows soft warnings for best results.Hard limits (API rejects or deletes object)
Workers cannot run ffprobe. Duration and aspect are parsed from ISO BMFF (
moov/tkhd) when possible. If metadata is unreadable (e.g. moov at end of file), the API may accept the file with a dimensions_unparsed warning — re-export with “fast start” / web-optimized MP4 for reliable validation.Safe-shot checklist (beta — from product UI)
For best likeness and fewer failed renders, seed content should:- Show only one person on camera
- Avoid biting food, outfit changes, or applying products on camera
- Match the SKU/listing you will attach in Collab flows
- Avoid scripts that instruct affiliates to claim personal use (“I tried”, “my honest review”, etc.)
- Include only media you own or have rights to (people, product, music)
Upload paths
After ingest, use
signedSeedVideoUrl in API responses to preview the private copy — never send signed URLs back on PATCH.
4. Actor assets (face, body, voice)
Provide HTTPS URLs onPOST /actors or PATCH /actors/{id}. YPH ingests into private R2 and returns echo source URLs plus short-lived signed*AssetUrl fields.
Face & body images
OpenAPI and responses may include non-blocking
warnings (e.g. dimensions below 480×832). Export exactly 480×832 from your asset pipeline for maximum quality.
Voice clip
5. Render parameters (Digital Sample)
Set on create or PATCH. Invalid combinations return400.
In the YPH app, 30 FPS with closest face match may be blocked on seeds longer than 25 seconds (hardware guardrail). Prefer 24 FPS or shorter seeds for premium tiers until this limit is lifted in a future release.
6. Insta Swap & webhooks
- Each queued swap costs 1 credit (see
GET /account). - Poll
GET /insta-swaps/{id}untilstatusis terminal, or use webhooks (insta_swap.queued,insta_swap.completed,insta_swap.failed). - Result video:
signedResultVideoUrl(short-lived presigned GET).
7. Errors vs warnings
8. AI-assisted development
Point Cursor, Claude, or Copilot at:llms.txt— skills context with bounds and workflow order- OpenAPI reference — schemas and examples
- This page — human-readable beta constraints
9. Versioning
We update this guide when validation or quality bars change. Integrators should:- Watch commits under
mintlify/in the monorepo - Re-run your staging conformance / Contract run after upgrades
- Treat
warningsas forward-compatible hints; treat new 4xx codes as breaking for automation
