SDSeeddance API

Errors and retries

Learn which errors are safe to retry and how to avoid duplicate video tasks.

Every API error uses the same JSON structure. Save request_id in your logs and include it when you contact support.

{
  "error": {
    "code": "invalid_request",
    "message": "Unsupported model.",
    "param": "model",
    "request_id": "req_2YgM6pg5oM2WkKpQ"
  }
}
StatusMeaningRetry?
400The body is not valid JSONNo. Fix the body
401The API key is missing, invalid, or revokedNo. Replace the key
402The account does not have enough available creditsNo. Add credits or wait for reservations
403The model or quality requires a higher planNo. Change the input or plan
404The task does not exist or belongs to another accountNo
415The content type is not application/jsonNo. Fix the header
422A parameter is invalid, a model is unavailable, or a prompt is blockedNo. Fix the request
429The API key reached its rate limit, or the account reached its concurrent task limitYes, with backoff
500An internal error occurredYes, after a delay
502The video provider could not start the taskYes, after a delay
503Generation or moderation is temporarily unavailableYes, after a delay

Retry safely

For 429, 500, 502, and 503, use exponential backoff with jitter and set a maximum retry count. You can safely poll GET /v1/tasks/{task_id}.

Create retries can produce duplicate tasks

The API does not support idempotency keys yet. If your client loses the response after POST /v1/videos/generations succeeds, retrying the POST can create a second task and reserve more credits. Record each returned task_id. Do not retry the POST automatically when you do not know whether the original request succeeded.

On this page