content[] body, response fields, callbacks, and PascalCase material Actions. Change the API host and replace AK/SK signing with a TokenLab API key.
What Changes
Requests signed only with AK/SK return
401 AuthenticationError. Every TokenLab request must include Authorization: Bearer <TOKENLAB_API_KEY>.
Choose an endpoint
For video tasks, keep the existing REST method, path, and JSON body. Material and verification requests continue to use Action and
Version query parameters.
Official Task Paths
REST clients can use these equivalent references:
- Create Task (Volc Compatible)
- Get Task (Volc Compatible)
- List Tasks (Volc Compatible)
- Cancel Task (Volc Compatible)
Request Body Rules
content[]acceptstext,image_url,video_url,audio_url, anddraft_taskitems.- For
image_url, omitroleor usefirst_framefor image-to-video. Uselast_frametogether with a first frame, orreference_imagefor reference-to-video. - A public material URI such as
asset://asset-YYYYMMDDHHMMSS-xxxxxcan be used where the selected Seedance workflow accepts that media role. - The REST body accepts only official fields, including
model,content,ratio,duration,resolution,generate_audio,watermark,return_last_frame,seed,execution_expires_after, andsafety_identifier.generate_audiodefaults tofalse. callback_urlaccepts a public HTTP(S) endpoint. TokenLab sends the same query-task body forqueued,running,succeeded,failed, andexpired; onlysucceededandfaileduse the official five-second, three-retry behavior.
Minimal REST Example
cgt-... ID. Poll until status becomes succeeded, failed, cancelled, or expired; do not treat the create response as a completed video. If you provide callback_url, allow repeated succeeded or failed notifications and keep polling as a recovery path.
Keep v1 And v3 Types Separate
Do not reuse a/v1/tasks/{id} response struct for this endpoint. The unified v1 API reports pending, processing, completed, and failed; the Volc-compatible v3 API reports queued, running, succeeded, failed, cancelled, and expired. The official v3 response also represents duration as a JSON string and omits error on non-failed tasks.
For safe recovery after a create timeout or disconnect, add a unique Idempotency-Key to the REST create request. Retrying the same body with the same key returns the original cgt-... ID; the same key with a different body returns 409.
Materials And Real-Person Verification
The same Action endpoint also supports the 10 material and material-group operations. See Material Actions (Volc Compatible) for their exact PascalCase bodies, filters, paging, response envelope, and 12-hour material URLs. Real-person materials add two Actions before upload: The second Action returns the verifiedGroupId. Use that ID with CreateAsset; a client cannot create a LivenessFace group directly.
Migration Checklist
- Replace the API host with
https://api.tokenlab.sh. - Replace AK/SK signing with a TokenLab Bearer API key.
- Keep the official REST task method, path, and request-body casing; keep Action and version only for material or validation operations.
- Keep the same
ProjectNameacross related material and verification requests. - Store the TokenLab task, group, and asset IDs returned by these endpoints.
- Verify one create, poll, list, and error response before moving production traffic.