{
  "openapi": "3.1.0",
  "info": {
    "title": "Seedance Video Generation API",
    "version": "1.0.0",
    "description": "Create asynchronous Seedance video-generation tasks and retrieve their status.\n\nThe public API uses bearer API keys and returns a local `vid_*` task ID. Task\ncreation currently returns HTTP 200 even though generation continues\nasynchronously. Poll the retrieval endpoint until the task reaches a terminal\nstatus: `succeeded`, `failed`, `cancelled`, or `expired`.\n",
    "contact": {
      "url": "https://www.seedanceapi.app/docs"
    }
  },
  "externalDocs": {
    "description": "Seedance API developer documentation",
    "url": "https://www.seedanceapi.app/docs"
  },
  "servers": [
    {
      "url": "https://api.seedanceapi.app",
      "description": "Production"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Video generation",
      "description": "Create and retrieve asynchronous video generation tasks."
    }
  ],
  "paths": {
    "/v1/videos/generations": {
      "post": {
        "tags": [
          "Video generation"
        ],
        "operationId": "createVideoGeneration",
        "summary": "Create a video generation task",
        "description": "Validates the selected model and input combination, reserves one generation\ncredit, submits the request to the configured provider, and returns a local\ntask ID. Use the same API key to retrieve the task later.\n\nSend either native `content[]` items or convenience fields such as `prompt`,\n`first_frame_url`, and reference media URLs. Do not mix the two input styles.\nModel-specific restrictions are described in the parameter documentation and\nenforced by the API's model registry.\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVideoGenerationRequest"
              },
              "examples": {
                "prompt": {
                  "summary": "Text-to-video request",
                  "value": {
                    "model": "seedance-2-0",
                    "prompt": "A cinematic city at sunrise, warm light, smooth camera movement.",
                    "duration": 5,
                    "ratio": "16:9",
                    "resolution": "720p",
                    "generate_audio": true,
                    "return_last_frame": true
                  }
                },
                "nativeContent": {
                  "summary": "Native multimodal content request",
                  "value": {
                    "model": "seedance-2-0",
                    "content": [
                      {
                        "type": "text",
                        "text": "A product reveal in soft studio light."
                      },
                      {
                        "type": "image_url",
                        "image_url": {
                          "url": "https://example.com/reference.jpg"
                        },
                        "role": "reference_image"
                      }
                    ],
                    "duration": 5,
                    "resolution": "720p"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Task accepted. The returned task can still be queued, running, or terminal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoGeneration"
                },
                "examples": {
                  "queued": {
                    "summary": "Queued task",
                    "value": {
                      "id": "vid_01jx9w6n8e6r7x9m2p4q",
                      "object": "video.generation",
                      "model": "seedance-2-0",
                      "status": "queued",
                      "created_at": 1783900000
                    }
                  },
                  "succeeded": {
                    "summary": "Provider completed immediately",
                    "value": {
                      "id": "vid_01jx9w6n8e6r7x9m2p4q",
                      "object": "video.generation",
                      "model": "seedance-2-0",
                      "status": "succeeded",
                      "result": {
                        "url": "https://example.com/generated-video.mp4",
                        "last_frame_url": "https://example.com/generated-last-frame.png"
                      },
                      "created_at": 1783900000,
                      "completed_at": 1783900120
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/InsufficientCredits"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "502": {
            "$ref": "#/components/responses/UpstreamError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        }
      }
    },
    "/v1/videos/{id}": {
      "get": {
        "tags": [
          "Video generation"
        ],
        "operationId": "getVideoGeneration",
        "summary": "Retrieve a video generation task",
        "description": "Retrieves a local task by its `vid_*` ID. The request must use the exact API\nkey that created the task. A missing task and a task owned by another API key\nboth return `task_not_found` to avoid exposing task ownership.\n\nTemporary provider errors return a retryable HTTP error without permanently\nchanging the stored task to `failed`.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Local task ID returned by the creation endpoint.",
            "schema": {
              "type": "string",
              "pattern": "^vid_"
            },
            "example": "vid_01jx9w6n8e6r7x9m2p4q"
          }
        ],
        "responses": {
          "200": {
            "description": "Current normalized task state.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoGeneration"
                },
                "examples": {
                  "running": {
                    "summary": "Running task",
                    "value": {
                      "id": "vid_01jx9w6n8e6r7x9m2p4q",
                      "object": "video.generation",
                      "model": "seedance-2-0",
                      "status": "running",
                      "created_at": 1783900000
                    }
                  },
                  "succeeded": {
                    "summary": "Successful task with last frame",
                    "value": {
                      "id": "vid_01jx9w6n8e6r7x9m2p4q",
                      "object": "video.generation",
                      "model": "seedance-2-0",
                      "status": "succeeded",
                      "result": {
                        "url": "https://example.com/generated-video.mp4",
                        "last_frame_url": "https://example.com/generated-last-frame.png"
                      },
                      "created_at": 1783900000,
                      "completed_at": 1783900120
                    }
                  },
                  "failed": {
                    "summary": "Failed task with a sanitized error",
                    "value": {
                      "id": "vid_01jx9w6n8e6r7x9m2p4q",
                      "object": "video.generation",
                      "model": "seedance-2-0",
                      "status": "failed",
                      "error": {
                        "code": "generation_failed",
                        "message": "The upstream generation task failed."
                      },
                      "created_at": 1783900000,
                      "completed_at": 1783900120
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/TaskNotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "502": {
            "$ref": "#/components/responses/UpstreamError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "API key",
        "description": "API key created in the Seedance API Dashboard."
      }
    },
    "headers": {
      "RetryAfter": {
        "description": "Number of seconds the client should wait before retrying.",
        "schema": {
          "type": "integer",
          "minimum": 1
        }
      }
    },
    "schemas": {
      "ModelName": {
        "type": "string",
        "description": "Public model name accepted by this API. Provider-specific model mapping is handled internally. Omitting the\nmodel selects `seedance-2-0`.\n",
        "default": "seedance-2-0",
        "enum": [
          "seedance-2-0",
          "seedance-2-0-fast",
          "seedance-2-0-mini",
          "seedance-1-5-pro",
          "seedance-1-0-pro",
          "seedance-1-0-pro-fast"
        ]
      },
      "VideoTaskStatus": {
        "type": "string",
        "enum": [
          "queued",
          "running",
          "succeeded",
          "failed",
          "cancelled",
          "expired"
        ]
      },
      "HttpUrl": {
        "type": "string",
        "format": "uri",
        "pattern": "^https?://"
      },
      "HttpsUrl": {
        "type": "string",
        "format": "uri",
        "pattern": "^https://"
      },
      "MediaUrlInput": {
        "description": "A URL string or a compatibility array of URL strings. Scalar values are normalized to one-item arrays.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/HttpUrl"
          },
          {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/HttpUrl"
            }
          }
        ]
      },
      "ReferenceImageInput": {
        "description": "One image URL or up to nine reference image URLs.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/HttpUrl"
          },
          {
            "type": "array",
            "minItems": 1,
            "maxItems": 9,
            "items": {
              "$ref": "#/components/schemas/HttpUrl"
            }
          }
        ]
      },
      "ReferenceVideoInput": {
        "description": "One video URL or up to three reference video URLs.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/HttpUrl"
          },
          {
            "type": "array",
            "minItems": 1,
            "maxItems": 3,
            "items": {
              "$ref": "#/components/schemas/HttpUrl"
            }
          }
        ]
      },
      "ReferenceAudioInput": {
        "description": "One audio URL or up to three reference audio URLs.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/HttpUrl"
          },
          {
            "type": "array",
            "minItems": 1,
            "maxItems": 3,
            "items": {
              "$ref": "#/components/schemas/HttpUrl"
            }
          }
        ]
      },
      "NestedUrl": {
        "type": "object",
        "required": [
          "url"
        ],
        "properties": {
          "url": {
            "$ref": "#/components/schemas/HttpUrl"
          }
        }
      },
      "TextContent": {
        "type": "object",
        "required": [
          "type",
          "text"
        ],
        "properties": {
          "type": {
            "const": "text"
          },
          "text": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "DraftTaskContent": {
        "type": "object",
        "required": [
          "type",
          "draft_task"
        ],
        "properties": {
          "type": {
            "const": "draft_task"
          },
          "draft_task": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            }
          }
        }
      },
      "ImageContent": {
        "type": "object",
        "required": [
          "type",
          "image_url",
          "role"
        ],
        "properties": {
          "type": {
            "const": "image_url"
          },
          "image_url": {
            "$ref": "#/components/schemas/NestedUrl"
          },
          "role": {
            "type": "string",
            "enum": [
              "first_frame",
              "last_frame",
              "reference_image"
            ]
          }
        }
      },
      "VideoContent": {
        "type": "object",
        "required": [
          "type",
          "video_url",
          "role"
        ],
        "properties": {
          "type": {
            "const": "video_url"
          },
          "video_url": {
            "$ref": "#/components/schemas/NestedUrl"
          },
          "role": {
            "const": "reference_video"
          }
        }
      },
      "AudioContent": {
        "type": "object",
        "required": [
          "type",
          "audio_url",
          "role"
        ],
        "properties": {
          "type": {
            "const": "audio_url"
          },
          "audio_url": {
            "$ref": "#/components/schemas/NestedUrl"
          },
          "role": {
            "const": "reference_audio"
          }
        }
      },
      "ContentItem": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/TextContent"
          },
          {
            "$ref": "#/components/schemas/DraftTaskContent"
          },
          {
            "$ref": "#/components/schemas/ImageContent"
          },
          {
            "$ref": "#/components/schemas/VideoContent"
          },
          {
            "$ref": "#/components/schemas/AudioContent"
          }
        ]
      },
      "CreateVideoGenerationRequest": {
        "type": "object",
        "additionalProperties": false,
        "description": "At least one valid input source is required: prompt, frame input, reference\nmedia, native content, or a model-supported draft task. Native `content[]`\ncannot be mixed with convenience content fields. A last frame requires a\nfirst frame; frame inputs cannot be mixed with multimodal references;\nreference audio requires an image or video reference; and draft-task input\ncannot be mixed with prompt or media input. Parameter availability and\nranges vary by model and are enforced by the API model registry.\n",
        "properties": {
          "model": {
            "$ref": "#/components/schemas/ModelName"
          },
          "content": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/ContentItem"
            }
          },
          "prompt": {
            "type": "string",
            "minLength": 1
          },
          "draft_task_id": {
            "type": "string",
            "minLength": 1,
            "description": "Seedance 1.5 Pro draft task ID. Cannot be mixed with prompt or media input."
          },
          "first_frame_url": {
            "$ref": "#/components/schemas/HttpUrl"
          },
          "last_frame_url": {
            "$ref": "#/components/schemas/HttpUrl"
          },
          "image_url": {
            "$ref": "#/components/schemas/ReferenceImageInput"
          },
          "video_url": {
            "$ref": "#/components/schemas/ReferenceVideoInput"
          },
          "audio_url": {
            "$ref": "#/components/schemas/ReferenceAudioInput"
          },
          "generate_audio": {
            "type": "boolean",
            "default": true
          },
          "resolution": {
            "type": "string",
            "enum": [
              "480p",
              "720p",
              "1080p"
            ],
            "description": "Fast and Mini models accept only 480p and 720p; full Seedance 2.0 also accepts 1080p."
          },
          "ratio": {
            "type": "string",
            "enum": [
              "adaptive",
              "16:9",
              "4:3",
              "1:1",
              "3:4",
              "9:16",
              "21:9"
            ]
          },
          "aspect_ratio": {
            "type": "string",
            "deprecated": true,
            "description": "Deprecated compatibility alias for `ratio`. Use `ratio` in new integrations.",
            "enum": [
              "adaptive",
              "16:9",
              "4:3",
              "1:1",
              "3:4",
              "9:16",
              "21:9"
            ]
          },
          "duration": {
            "description": "Integer seconds. Seedance 2.0 uses 4-15 or -1; older models use their documented model-specific ranges.",
            "anyOf": [
              {
                "type": "integer",
                "const": -1
              },
              {
                "type": "integer",
                "minimum": 2,
                "maximum": 15
              }
            ]
          },
          "frames": {
            "type": "integer",
            "minimum": 29,
            "maximum": 289,
            "description": "Seedance 1.0 only. Valid frame counts also follow `25 + 4n`; Seedance 2.0 callers must use `duration`."
          },
          "return_last_frame": {
            "type": "boolean",
            "default": false,
            "description": "Requests the generated final frame when supported. Retrieval may then include `result.last_frame_url`."
          },
          "service_tier": {
            "type": "string",
            "default": "default",
            "enum": [
              "default",
              "flex"
            ]
          },
          "draft": {
            "type": "boolean",
            "default": false
          },
          "seed": {
            "type": "integer",
            "minimum": -1,
            "maximum": 4294967295
          },
          "camera_fixed": {
            "type": "boolean",
            "default": false
          },
          "watermark": {
            "type": "boolean",
            "default": false
          },
          "web_search": {
            "type": "boolean",
            "default": false
          },
          "priority": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9
          },
          "execution_expires_after": {
            "type": "integer",
            "minimum": 3600,
            "maximum": 259200
          },
          "safety_identifier": {
            "type": "string",
            "maxLength": 64
          },
          "callback_url": {
            "$ref": "#/components/schemas/HttpsUrl"
          }
        }
      },
      "VideoResult": {
        "type": "object",
        "minProperties": 1,
        "properties": {
          "url": {
            "$ref": "#/components/schemas/HttpUrl"
          },
          "last_frame_url": {
            "$ref": "#/components/schemas/HttpUrl"
          }
        }
      },
      "TaskError": {
        "type": "object",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "VideoGeneration": {
        "type": "object",
        "required": [
          "id",
          "object",
          "model",
          "status",
          "created_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^vid_"
          },
          "object": {
            "type": "string",
            "const": "video.generation"
          },
          "model": {
            "$ref": "#/components/schemas/ModelName"
          },
          "status": {
            "$ref": "#/components/schemas/VideoTaskStatus"
          },
          "result": {
            "$ref": "#/components/schemas/VideoResult"
          },
          "error": {
            "$ref": "#/components/schemas/TaskError"
          },
          "created_at": {
            "type": "integer",
            "description": "Unix timestamp in seconds."
          },
          "completed_at": {
            "type": "integer",
            "description": "Unix timestamp in seconds, included for terminal tasks when available."
          }
        }
      },
      "ApiError": {
        "type": "object",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "Stable machine-readable error code."
          },
          "message": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "param": {
            "type": "string"
          },
          "retryable": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string",
            "pattern": "^req_"
          },
          "docs_url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "ErrorEnvelope": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          }
        }
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Invalid JSON, request structure, model, parameter, range, URL, or field combination.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            },
            "examples": {
              "invalidJson": {
                "value": {
                  "error": {
                    "code": "invalid_json",
                    "message": "Request body must contain valid JSON.",
                    "type": "invalid_request",
                    "retryable": false,
                    "request_id": "req_01jx9w6n8e6r7x9m2p4q",
                    "docs_url": "https://www.seedanceapi.app/docs/errors#invalid-json"
                  }
                }
              },
              "unsupportedModel": {
                "value": {
                  "error": {
                    "code": "unsupported_model",
                    "message": "model is not supported by this API.",
                    "type": "invalid_request",
                    "param": "model",
                    "retryable": false,
                    "request_id": "req_01jx9w6n8e6r7x9m2p4q",
                    "docs_url": "https://www.seedanceapi.app/docs/models"
                  }
                }
              },
              "unsupportedParameter": {
                "value": {
                  "error": {
                    "code": "unsupported_parameter",
                    "message": "frames is not supported by Seedance 2.0. Use duration instead.",
                    "type": "invalid_request",
                    "param": "frames",
                    "retryable": false,
                    "request_id": "req_01jx9w6n8e6r7x9m2p4q",
                    "docs_url": "https://www.seedanceapi.app/docs/parameters"
                  }
                }
              }
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Bearer API key is missing, invalid, revoked, or not linked to an active user wallet.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            },
            "examples": {
              "missingApiKey": {
                "value": {
                  "error": {
                    "code": "missing_api_key",
                    "message": "Provide an API key in the Authorization bearer header.",
                    "type": "authentication_error",
                    "retryable": false,
                    "request_id": "req_01jx9w6n8e6r7x9m2p4q",
                    "docs_url": "https://www.seedanceapi.app/docs/errors#missing-api-key"
                  }
                }
              },
              "invalidApiKey": {
                "value": {
                  "error": {
                    "code": "invalid_api_key",
                    "message": "The API key is invalid or revoked.",
                    "type": "authentication_error",
                    "retryable": false,
                    "request_id": "req_01jx9w6n8e6r7x9m2p4q",
                    "docs_url": "https://www.seedanceapi.app/docs/errors#invalid-api-key"
                  }
                }
              }
            }
          }
        }
      },
      "InsufficientCredits": {
        "description": "The linked user does not have enough video generation credits.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            },
            "example": {
              "error": {
                "code": "insufficient_credits",
                "message": "This account does not have enough credits.",
                "type": "invalid_request",
                "retryable": false,
                "request_id": "req_01jx9w6n8e6r7x9m2p4q",
                "docs_url": "https://www.seedanceapi.app/pricing"
              }
            }
          }
        }
      },
      "TaskNotFound": {
        "description": "The task does not exist or was created by another API key.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            },
            "example": {
              "error": {
                "code": "task_not_found",
                "message": "Video task was not found.",
                "type": "invalid_request",
                "retryable": false,
                "request_id": "req_01jx9w6n8e6r7x9m2p4q",
                "docs_url": "https://www.seedanceapi.app/docs/errors#task-not-found"
              }
            }
          }
        }
      },
      "RateLimited": {
        "description": "The API key reached its daily request limit. The limit resets at the next UTC day.",
        "headers": {
          "Retry-After": {
            "$ref": "#/components/headers/RetryAfter"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            },
            "example": {
              "error": {
                "code": "rate_limited",
                "message": "This API key has reached its daily request limit.",
                "type": "authentication_error",
                "retryable": true,
                "request_id": "req_01jx9w6n8e6r7x9m2p4q",
                "docs_url": "https://www.seedanceapi.app/docs/errors#rate-limited"
              }
            }
          }
        }
      },
      "InternalError": {
        "description": "An unexpected local authentication, credit, task persistence, or refresh operation failed.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            },
            "example": {
              "error": {
                "code": "internal_error",
                "message": "The API could not complete this request.",
                "type": "internal_error",
                "retryable": true,
                "request_id": "req_01jx9w6n8e6r7x9m2p4q",
                "docs_url": "https://www.seedanceapi.app/docs/errors#internal-error"
              }
            }
          }
        }
      },
      "UpstreamError": {
        "description": "The provider rejected configured credentials, omitted required response data, lost a known task, or returned an error that could not be mapped safely.",
        "headers": {
          "Retry-After": {
            "$ref": "#/components/headers/RetryAfter"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            },
            "examples": {
              "invalidResponse": {
                "value": {
                  "error": {
                    "code": "invalid_upstream_response",
                    "message": "The upstream service returned a response without a task ID.",
                    "type": "upstream_error",
                    "retryable": true,
                    "request_id": "req_01jx9w6n8e6r7x9m2p4q",
                    "docs_url": "https://www.seedanceapi.app/docs/errors#invalid-upstream-response"
                  }
                }
              },
              "providerAuthentication": {
                "value": {
                  "error": {
                    "code": "upstream_authentication_error",
                    "message": "The upstream provider rejected the configured credentials.",
                    "type": "upstream_error",
                    "retryable": false,
                    "request_id": "req_01jx9w6n8e6r7x9m2p4q",
                    "docs_url": "https://www.seedanceapi.app/docs/errors#upstream-authentication-error"
                  }
                }
              }
            }
          }
        }
      },
      "ServiceUnavailable": {
        "description": "The local database or upstream provider is temporarily unavailable, timed out, or has limited capacity.",
        "headers": {
          "Retry-After": {
            "$ref": "#/components/headers/RetryAfter"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            },
            "examples": {
              "upstreamUnavailable": {
                "value": {
                  "error": {
                    "code": "upstream_unavailable",
                    "message": "The upstream provider is temporarily unavailable.",
                    "type": "upstream_error",
                    "retryable": true,
                    "request_id": "req_01jx9w6n8e6r7x9m2p4q",
                    "docs_url": "https://www.seedanceapi.app/docs/errors#upstream-unavailable"
                  }
                }
              },
              "upstreamCapacity": {
                "value": {
                  "error": {
                    "code": "upstream_capacity_limited",
                    "message": "The upstream provider is temporarily capacity limited.",
                    "type": "upstream_error",
                    "retryable": true,
                    "request_id": "req_01jx9w6n8e6r7x9m2p4q",
                    "docs_url": "https://www.seedanceapi.app/docs/errors#upstream-capacity-limited"
                  }
                }
              },
              "databaseUnavailable": {
                "value": {
                  "error": {
                    "code": "internal_error",
                    "message": "The API database is temporarily unavailable.",
                    "type": "internal_error",
                    "retryable": true,
                    "request_id": "req_01jx9w6n8e6r7x9m2p4q",
                    "docs_url": "https://www.seedanceapi.app/docs/errors#internal-error"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
