Create digital sample
Create a new digital sample in draft mode or actively initialized with a seed video.
Authorizations
Your organization API key starting with yph_sk_live_…
Body
Optional custom title. If omitted, defaults to "API Sample ". (Max 120 characters)
120Optional description of the sample. (Max 300 characters)
300Optional public HTTPS URL to initialize the sample. YPH securely copies the file to R2, validates format and duration (≤170s), and automatically activates the sample. Echoed in responses; use signedSeedVideoUrl to preview the ingested copy.
Optional duration in seconds. Must be 170 seconds or less.
x <= 170Optional custom positive render prompt for the Wan model. Defaults to standard actor-replacement prompt. (Max 2000 characters)
2000Optional custom negative render prompt for the Wan model. Defaults to standard actor-replacement negative prompt. (Max 2000 characters)
2000Optional seed FPS tier (16 Economy, 24 Balanced, 30 Premium Quality).
16, 24, 30 Optional flag to enable CosyVoice actor voice replacement.
Optional portrait 9:16 analysis size (480 Economy, 720 Balanced).
480, 720 Opaque integrator brand id for this sample (scoped to your org).
128Optional integrator catalog product id (distinct from public productUrl listing link used in Collab flows).
128Response
Created successfully
Digital sample resource returned by GET, POST, and PATCH.
- Write-only (POST/PATCH body):
seedVideoUrl— your public HTTPS source URL. YPH ingests a copy into private storage. Use the presigned upload flow (/seed/upload-url+/seed/register) when uploading directly. - Read-only (responses):
signedSeedVideoUrl— short-lived presigned GET URL for preview/download. Never send this back on PATCH. - Echo (responses):
seedVideoUrlrepeats the external source URL you submitted (null when the seed was uploaded via presigned PUT or created in the YPH app). - Integrator identity:
accountTokenidentifies the brand (your marketplace advertiser).productTokenis your internal catalog product id. See Integrator tokens. - Credits: Org credit balance is not on this resource — use
GET /account(creditBalance).
