Create a persona video
Starts a video with a saved persona. type picks the kind of video; today the only one is swap, which keeps the scene, camera, motion and sound of a library video and replaces its main person with the persona. quality (default standard) and replace (default person) pick how; quote and create with the same quality. version_id picks which of the persona's versions to use, the current one when left out. Charged per second of the source, even on a workspace with unlimited usage, and refunded automatically if it fails.
Price it first with GET /personas/swap/quote and send that credits: when the server measures a different price it refuses with 409 PRICE_CHANGED and the right one in extra, so nothing is ever charged above what was confirmed.
Responds 202. Poll GET /personas/{id}/videos/{videoId} every 10 seconds until ready or failed; the result also lands in the library with an edit_id for POST /renders and POST /posts. VIDEO_IN_PROGRESS means this persona is already working on the same version with the same video.
Authorization
apiKey In: header
Path Parameters
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/personas/string/videos" \ -H "Content-Type: application/json" \ -d '{ "type": "swap", "media_id": "string", "credits": 0 }'{ "id": "string", "status": "processing", "credits_charged": 0}List a persona's videos GET
Returns the videos made with this persona, newest first, with signed download URLs for the finished ones. `version_id` keeps only the videos made from that version.
Get a persona video GET
Returns one persona video. Poll it every 10 seconds while `status` is `processing`; `download_url` is set once `ready`.