n8n Integration

Create and poll Seedance generations from n8n.

Create an n8n Header Auth Credential with name Authorization and value Bearer sd_live_.... Never paste the Key directly into a node or exported workflow.

Use this workflow:

Trigger → HTTP Create → Completed? → Result
                          |
                          └ queued/processing → Wait 20–30s → HTTP Get status → Switch
                                                   ↑                  |
                                                   └ queued/processing┘

The Create node uses POST https://api.seedance2video.io/v1/videos or /images, JSON body, and an Idempotency-Key such as seedance-{{$execution.id}}-1. If a business operation can resume in a different execution, persist the Key outside n8n.

For image-to-video, send an approved HTTPS storage URL in inputs[].url. Phase one does not include an upload endpoint.

Save status_url from the Create response. If Create already returns completed, use that result without another request. Otherwise, wait and GET the URL with the same Credential. Switch on {{$json.status}}: loop for queued or processing, stop for failed or canceled, and continue for completed.

Choose the larger of Retry-After and the interval required by your Key's RPM budget. For example, use a 20–30 second Wait for an RPM 5 test Key; 30 seconds also preserves a small daily request allowance.

The first video is {{$json.output.video_url}}. Image URLs are in {{$json.output.image_urls}}.

Enable retries only with the unchanged body and Idempotency-Key. Respect Retry-After; never create a replacement automatically after an uncertain timeout.