Skip to content
Get your keyGet a key

Reference · Video

POST/influencer-clips

Animate an AI influencer from Cast

Make a clip of one of their AI influencers (a cast member made on the AI Influencer page; GET /api/v1/cast) moving exactly as a clip does — a trend clip of ours or a clip they uploaded — or, with use "swap", put in place of someone or something in it, its moves and camera kept. Priced by the clip’s seconds, at the quality asked for. It comes back as a job (kind "influencer-clip") to follow with GET /api/v1/jobs/{jobId}.

Key needs
create · Make things and spend credits
Answers
A job to follow
Request
curl -X POST https://vessero.com/api/v1/influencer-clips \
  -H "Authorization: Bearer $VESSERO_API_KEY" \
  -H "Idempotency-Key: 47f8f6f5-ea00-4fb1-925f-76aac956a0ec" \
  -H "Content-Type: application/json" \
  -d '{
    "castMemberId": "text",
    "confirmCredits": 1
  }'
Response202 Accepted
{
  "object": "job",
  "id": "influencer-clip.8f1c2d3e-4b5a-4789-8abc-def012345678",
  "kind": "influencer-clip",
  "status": "working",
  "stage": "Queued",
  "files": [],
  "credits": 58,
  "url": "/api/v1/jobs/influencer-clip.8f1c2d3e-4b5a-4789-8abc-def012345678"
}
POST/influencer-clips/quoteFree

The same body without confirmCredits. It answers the price and your balance, and runs nothing.

Header

  • Idempotency-KeystringYour id for this request: 8–64 letters, digits, - or _. A repeat within 10 minutes gets the first answer back and never runs twice. Use the same one for the quote and the run.
  • Preferstringwait=N (up to 60): hold the answer up to N seconds while the job is made, within 80 seconds for the whole call.

Body

  • castMemberIdstringrequiredThe AI influencer: their cast member id, from GET /api/v1/cast.
  • usestringmotion (the default): they move as the clip does. swap: they go in place of someone or something in it.motionswap
  • trendIdstringA trend clip of ours: holds-it-to-camera (Holds it to camera, 8 s), morning-routine (Morning routine, 8 s), cafe-patio (Café patio, 8 s), street-walk-by (Street walk-by, 5 s), pool-turn (Pool turn, 5 s), city-window (City window, 5 s), rooftop-stretch (Rooftop stretch, 5 s), desk-to-lens (Desk to lens, 5 s), talks-it-through (Talks it through, 8 s), unboxing (Unboxing, 8 s), hook-then-body (Hook, then body, 8 s), reaction (Reaction, 8 s). Give this or clipKey.holds-it-to-cameramorning-routinecafe-patiostreet-walk-bypool-turncity-windowrooftop-stretchdesk-to-lenstalks-it-throughunboxinghook-then-bodyreaction
  • clipKeystringOr a clip of theirs (MP4 or MOV): a storage key from POST /api/v1/files or POST /api/v1/library/use, or an https link to the file (brought into their Uploads first).
  • whoIsInClipobject · kind no-person | personSwap with an uploaded clip: who is in it, as the person says.
  • referenceKeysstring[] · up to 7What they wear or hold, up to 7 pictures.
  • promptstringAnything to add in words, e.g. "holding the green bottle in her right hand".
  • resolutionstringThe quality: 480p, 720p or 1080p. Default: the model’s own.480p720p1080p
  • confirmCreditsintegerrequiredThe price you agree to, in credits: the credits its quote gave. It runs at that price, or at a lower one when that figure was quoted for this Idempotency-Key; above the price now, nothing runs (409 price_changed). Left out, nothing runs and the error carries the quote.
  • webhookUrlstring · httpsAn https address to POST the job to once it is done or has failed, signed (see Webhooks).

Answers

  • 202jobStarted: follow the job, or wait for its webhook.
  • 200jobA job that ended at once: done, or failed (see error and charged).
  • 400confirm_credits_requiredA run that spends needs confirmCredits: the quote is in details.
  • 402insufficient_creditsThe account has too few credits for this.
  • 409price_changedThe price is above the confirmCredits sent: nothing ran; the new quote is in details.
  • 422content_refusedThe content check refused it.
  • 429daily_cap_reachedThe key’s daily credit cap would be passed: see Retry-After.
Next in VideoPOST/influencer-clips/quote