Naar inhoud springen
API-referentie
API-referentie

Seedance tekst naar video

Gebruik het eindpunt voor tekst naar video om een asynchrone taak aan te maken.

01

Overzicht

Gebruik het eindpunt voor tekst naar video met een ondersteund model. Gebruik de geretourneerde taak-ID om de status op te halen, of geef callback_url op voor de hieronder gedocumenteerde leveringen.

Snelstart

  1. Maak een API-sleutel aan en stel deze in als RUNAPI_API_KEY.
  2. Kies een ondersteund model en stuur een POST-verzoek waarvan de body overeenkomt met het schema van dat model.
  3. Sla de geretourneerde taak-ID op en poll vervolgens totdat een eindstatus is bereikt, of verwerk de hieronder gedocumenteerde callbacks.

Eindpunt

POST /api/v1/seedance/text_to_video
Basis-URL
https://runapi.ai
API-versie
v1
Authenticatie
Authorization: Bearer YOUR_API_TOKEN
02

Ondersteunde modellen

Open een modelpagina voor actuele prijzen, snelheidslimieten en details over commercieel gebruik.

03

Verzoekschema

JSON-body

Velden en toegestane waarden zijn afhankelijk van het geselecteerde model. Indien opgegeven, ontvangt callback_url de hieronder gedocumenteerde taakaflevering.

seedance-1.5-pro11 velden
aspect_ratiostring
Optioneel Toegestane waarden: 1:1, 4:3, 3:4, 16:9, 9:16, 21:9
callback_urlstring
Optioneel
duration_secondsinteger
Verplicht Bereik: 4 - 12
enable_safety_checkerboolean
Optioneel
generate_audioboolean
Optioneel
lock_cameraboolean
Optioneel
modelstring
Optioneel
output_resolutionstring
Optioneel Toegestane waarden: 480p, 720p, 1080p
promptstring
Optioneel
seedinteger
Optioneel Bereik: -1 - 2147483647
source_image_urlsarray
Optioneel Itemlimiet: 2
seedance-2-mini13 velden
aspect_ratiostring
Optioneel Toegestane waarden: 1:1, 4:3, 3:4, 16:9, 9:16, 21:9, auto
callback_urlstring
Optioneel
duration_secondsinteger
Optioneel Standaard: 5 Bereik: 4 - 15
first_frame_image_urlstring
Optioneel
generate_audioboolean
Optioneel
last_frame_image_urlstring
Optioneel
modelstring
Optioneel
output_resolutionstring
Optioneel Toegestane waarden: 480p, 720p
promptstring
Optioneel
reference_audio_urlsarray
Optioneel Itemlimiet: 3
reference_image_urlsarray
Optioneel Itemlimiet: 9
reference_video_urlsarray
Optioneel Itemlimiet: 3
web_searchboolean
Optioneel
seedance-2.014 velden
aspect_ratiostring
Optioneel Toegestane waarden: 1:1, 4:3, 3:4, 16:9, 9:16, 21:9, auto
callback_urlstring
Optioneel
duration_secondsinteger
Optioneel Standaard: 5 Bereik: 4 - 15
enable_safety_checkerboolean
Optioneel
first_frame_image_urlstring
Optioneel
generate_audioboolean
Optioneel
last_frame_image_urlstring
Optioneel
modelstring
Optioneel
output_resolutionstring
Optioneel Toegestane waarden: 480p, 720p, 1080p, 4k
promptstring
Optioneel
reference_audio_urlsarray
Optioneel Itemlimiet: 3
reference_image_urlsarray
Optioneel Itemlimiet: 9
reference_video_urlsarray
Optioneel Itemlimiet: 3
web_searchboolean
Optioneel
seedance-2.0-fast14 velden
aspect_ratiostring
Optioneel Toegestane waarden: 1:1, 4:3, 3:4, 16:9, 9:16, 21:9, auto
callback_urlstring
Optioneel
duration_secondsinteger
Optioneel Standaard: 5 Bereik: 4 - 15
enable_safety_checkerboolean
Optioneel
first_frame_image_urlstring
Optioneel
generate_audioboolean
Optioneel
last_frame_image_urlstring
Optioneel
modelstring
Optioneel
output_resolutionstring
Optioneel Toegestane waarden: 480p, 720p
promptstring
Optioneel
reference_audio_urlsarray
Optioneel Itemlimiet: 3
reference_image_urlsarray
Optioneel Itemlimiet: 9
reference_video_urlsarray
Optioneel Itemlimiet: 3
web_searchboolean
Optioneel
seedance-2.516 velden
aspect_ratiostring
Optioneel

Uitvoer-beeldverhouding; auto laat RunAPI deze selecteren.

Toegestane waarden: 1:1, 4:3, 3:4, 16:9, 9:16, 21:9, auto Standaard: auto
callback_urlstring
Optioneel

Webhook-URL voor asynchrone taakunpdates.

duration_secondsinteger
Optioneel

Videoduur in seconden; -1 selecteert de duur automatisch.

Toegestane waarden: -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 Standaard: 5
enable_safety_checkerboolean
Optioneel

Of RunAPI gegenereerde inhoud controleert op veiligheid.

first_frame_image_urlstring
Optioneel

Publieke afbeeldings-URL voor het eerste frame voor framegeleide generatie.

generate_audioboolean
Optioneel

Of gesynchroniseerde audio wordt gegenereerd.

Standaard: true
last_frame_image_urlstring
Optioneel

Publieke afbeeldings-URL voor het laatste frame; vereist first_frame_image_url.

modelstring
Verplicht

RunAPI-modelidentificator.

output_formatstring
Optioneel

Uitvoer videocontainerformaat.

Toegestane waarden: mp4, mov Standaard: mp4
output_resolutionstring
Optioneel

Uitvoer videoresolutie.

Toegestane waarden: 480p, 720p, 1080p Standaard: 720p
promptstring
Verplicht

Prompt voor videogeneratie.

Bereik: 3 - 30000
reference_audio_urlsarray
Optioneel

Publieke referentieaudio-URL's; tot 10 audiobestanden.

Itemlimiet: 10
reference_image_urlsarray
Optioneel

Publieke referentieafbeeldings-URL's; tot 30 afbeeldingen.

Itemlimiet: 30
reference_video_urlsarray
Optioneel

Publieke referentievideo-URL's; tot 10 video's.

Itemlimiet: 10
return_last_frameboolean
Optioneel

Of het laatste frame van de gegenereerde video wordt geretourneerd.

Standaard: false
web_searchboolean
Optioneel

Of de prompt wordt verrijkt met een webzoekopdracht.

seedance-v1-pro10 velden
aspect_ratiostring
Optioneel Toegestane waarden: 1:1, 4:3, 3:4, 16:9, 9:16, 21:9
callback_urlstring
Optioneel
duration_secondsinteger
Verplicht Toegestane waarden: 5, 10
enable_safety_checkerboolean
Optioneel
first_frame_image_urlstring
Optioneel
lock_cameraboolean
Optioneel
modelstring
Optioneel
output_resolutionstring
Optioneel Toegestane waarden: 480p, 720p, 1080p
promptstring
Optioneel
seedinteger
Optioneel
seedance-v1-pro-fast8 velden
callback_urlstring
Optioneel
duration_secondsinteger
Verplicht Toegestane waarden: 5, 10
enable_safety_checkerboolean
Optioneel
first_frame_image_urlstring
Verplicht
modelstring
Optioneel
output_resolutionstring
Optioneel Toegestane waarden: 720p, 1080p
promptstring
Optioneel
seedinteger
Optioneel Bereik: -1 - 2147483647

Voorwaardelijke regels

Deze vereisten zijn van toepassing wanneer alle vermelde voorwaarden overeenkomen.

  1. Wanneer first_frame_image_url = {"present" => true}, model = seedance-2.5
    Vereist
    Niet geaccepteerd
    reference_image_urls, reference_video_urls, reference_audio_urls
  2. Wanneer last_frame_image_url = {"present" => true}, model = seedance-2.5
    Vereist
    first_frame_image_url
    Niet geaccepteerd
    reference_image_urls, reference_video_urls, reference_audio_urls
  3. Wanneer model = seedance-1.5-pro
    Vereist
    Niet geaccepteerd
    first_frame_image_url, last_frame_image_url, reference_image_urls, reference_video_urls, reference_audio_urls, web_search, return_last_frame, output_format
  4. Wanneer model = seedance-2-mini
    Vereist
    Niet geaccepteerd
    source_image_urls, lock_camera, seed, enable_safety_checker, return_last_frame, output_format
  5. Wanneer model = seedance-2.0
    Vereist
    Niet geaccepteerd
    source_image_urls, lock_camera, seed, return_last_frame, output_format
  6. Wanneer model = seedance-2.0-fast
    Vereist
    Niet geaccepteerd
    source_image_urls, lock_camera, seed, return_last_frame, output_format
  7. Wanneer model = seedance-2.5
    Vereist
    Niet geaccepteerd
    source_image_urls, lock_camera, seed
  8. Wanneer model = seedance-v1-pro
    Vereist
    Niet geaccepteerd
    source_image_urls, last_frame_image_url, reference_image_urls, reference_video_urls, reference_audio_urls, web_search, generate_audio, return_last_frame, output_format
  9. Wanneer model = seedance-v1-pro-fast
    Vereist
    Niet geaccepteerd
    aspect_ratio, source_image_urls, lock_camera, last_frame_image_url, reference_image_urls, reference_video_urls, reference_audio_urls, web_search, generate_audio, return_last_frame, output_format
04

Acceptatie aanmaken

HTTP 202

POST /api/v1/seedance/text_to_video

Responsschema
JSON
{
  "properties": {
    "billing": {
      "properties": {
        "refund": {
          "oneOf": [
            {
              "properties": {
                "refunded_at": {
                  "type": "string"
                }
              },
              "required": [
                "refunded_at"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "reservation": {
          "oneOf": [
            {
              "properties": {
                "amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "amount_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "settlement": {
          "oneOf": [
            {
              "properties": {
                "amount_micro_cents": {
                  "type": "integer"
                },
                "charged_amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "charged_amount_cents",
                "amount_micro_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        }
      },
      "required": [
        "reservation",
        "settlement",
        "refund"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "processing"
      ],
      "type": "string"
    },
    "task_replayed": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "status",
    "billing"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "billing": {
    "refund": null,
    "reservation": null,
    "settlement": null
  },
  "id": "tsk_reference_demo",
  "status": "processing"
}
05

Pollen bezig

HTTP 200

GET /api/v1/seedance/text_to_video/:id

Responsschema
JSON
{
  "properties": {
    "billing": {
      "properties": {
        "refund": {
          "oneOf": [
            {
              "properties": {
                "refunded_at": {
                  "type": "string"
                }
              },
              "required": [
                "refunded_at"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "reservation": {
          "oneOf": [
            {
              "properties": {
                "amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "amount_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "settlement": {
          "oneOf": [
            {
              "properties": {
                "amount_micro_cents": {
                  "type": "integer"
                },
                "charged_amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "charged_amount_cents",
                "amount_micro_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        }
      },
      "required": [
        "reservation",
        "settlement",
        "refund"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "processing"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "billing"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "billing": {
    "refund": null,
    "reservation": null,
    "settlement": null
  },
  "id": "tsk_reference_demo",
  "status": "processing"
}
06

Pollen voltooid

HTTP 200

GET /api/v1/seedance/text_to_video/:id

Responsschema
JSON
{
  "properties": {
    "billing": {
      "properties": {
        "refund": {
          "oneOf": [
            {
              "properties": {
                "refunded_at": {
                  "type": "string"
                }
              },
              "required": [
                "refunded_at"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "reservation": {
          "oneOf": [
            {
              "properties": {
                "amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "amount_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "settlement": {
          "oneOf": [
            {
              "properties": {
                "amount_micro_cents": {
                  "type": "integer"
                },
                "charged_amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "charged_amount_cents",
                "amount_micro_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        }
      },
      "required": [
        "reservation",
        "settlement",
        "refund"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "id": {
      "type": "string"
    },
    "last_frame_image_url": {
      "type": "string",
      "x-runapi-generated-media": true
    },
    "status": {
      "enum": [
        "completed"
      ],
      "type": "string"
    },
    "videos": {
      "items": {
        "properties": {
          "url": {
            "type": "string",
            "x-runapi-generated-media": true
          }
        },
        "required": [
          "url"
        ],
        "type": "object",
        "unevaluatedProperties": false
      },
      "type": "array"
    }
  },
  "required": [
    "id",
    "status",
    "videos",
    "billing"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "billing": {
    "refund": null,
    "reservation": null,
    "settlement": null
  },
  "id": "tsk_reference_demo",
  "status": "completed",
  "videos": [
    {
      "url": "https://file.runapi.ai/reference-video.mp4"
    }
  ]
}
07

Pollen mislukt

HTTP 200

GET /api/v1/seedance/text_to_video/:id

Responsschema
JSON
{
  "properties": {
    "billing": {
      "properties": {
        "refund": {
          "oneOf": [
            {
              "properties": {
                "refunded_at": {
                  "type": "string"
                }
              },
              "required": [
                "refunded_at"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "reservation": {
          "oneOf": [
            {
              "properties": {
                "amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "amount_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "settlement": {
          "oneOf": [
            {
              "properties": {
                "amount_micro_cents": {
                  "type": "integer"
                },
                "charged_amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "charged_amount_cents",
                "amount_micro_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        }
      },
      "required": [
        "reservation",
        "settlement",
        "refund"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "error": {
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "failed"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "error",
    "billing"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "billing": {
    "refund": null,
    "reservation": null,
    "settlement": null
  },
  "error": "Task processing failed.",
  "id": "tsk_reference_demo",
  "status": "failed"
}
08

Callback van klant: voltooid

HTTP 200

POST callback_url

Responsschema
JSON
{
  "properties": {
    "id": {
      "type": "string"
    },
    "last_frame_image_url": {
      "type": "string",
      "x-runapi-generated-media": true
    },
    "status": {
      "enum": [
        "completed"
      ],
      "type": "string"
    },
    "videos": {
      "items": {
        "properties": {
          "url": {
            "type": "string",
            "x-runapi-generated-media": true
          }
        },
        "required": [
          "url"
        ],
        "type": "object",
        "unevaluatedProperties": false
      },
      "type": "array"
    }
  },
  "required": [
    "id",
    "status",
    "videos"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "id": "tsk_reference_demo",
  "status": "completed",
  "videos": [
    {
      "url": "https://file.runapi.ai/reference-video.mp4"
    }
  ]
}
09

Callback van klant: mislukt

HTTP 200

POST callback_url

Responsschema
JSON
{
  "properties": {
    "error": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "properties": {
            "code": {
              "type": "string"
            },
            "limit_cents": {
              "type": "integer"
            },
            "message": {
              "type": "string"
            },
            "reset_at": {
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "used_cents": {
              "type": "integer"
            },
            "window": {
              "enum": [
                "1h",
                "1d",
                "7d",
                "daily",
                "weekly",
                "monthly",
                "lifetime"
              ],
              "type": "string"
            }
          },
          "required": [
            "code",
            "message"
          ],
          "type": "object",
          "unevaluatedProperties": false
        }
      ]
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "failed"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": {
    "code": "generation_failed",
    "message": "Task processing failed."
  },
  "id": "tsk_reference_demo",
  "status": "failed"
}
10

Fouten

HTTP 401

POST /api/v1/seedance/text_to_video

Responsschema
JSON
{
  "properties": {
    "error": {
      "description": "Leesbare foutmelding.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": "Authentication required"
}
11

Fouten

HTTP 401

GET /api/v1/seedance/text_to_video/:id

Responsschema
JSON
{
  "properties": {
    "error": {
      "description": "Leesbare foutmelding.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": "Authentication required"
}
12

Fouten

HTTP 400

POST /api/v1/seedance/text_to_video

Responsschema
JSON
{
  "oneOf": [
    {
      "properties": {
        "error": {
          "description": "Leesbare foutmelding.",
          "type": "string"
        }
      },
      "required": [
        "error"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    {
      "properties": {
        "error": {
          "description": "Leesbare validatiesamenvatting.",
          "type": "string"
        },
        "errors": {
          "additionalProperties": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": "Validatieberichten gekoppeld aan het openbare aanvraagveld, met een reeks leesbare tekenreeksen per veld.",
          "type": "object"
        }
      },
      "required": [
        "error",
        "errors"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  ]
}

Responsvoorbeeld

JSON
{
  "error": "model must be one of: seedance-1.5-pro, seedance-2-mini, seedance-2.0, seedance-2.0-fast, seedance-2.5, seedance-v1-pro, seedance-v1-pro-fast"
}
13

Fouten

HTTP 402

POST /api/v1/seedance/text_to_video

Responsschema
JSON
{
  "properties": {
    "error": {
      "description": "Leesbare foutmelding.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": "Insufficient balance"
}
14

Fouten

HTTP 429

POST /api/v1/seedance/text_to_video

Responsschema
JSON
{
  "properties": {
    "error": {
      "description": "Leesbare foutmelding.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": "API key credit limit exceeded"
}
15

Fouten

HTTP 409

POST /api/v1/seedance/text_to_video

Responsschema
JSON
{
  "properties": {
    "error": {
      "description": "Leesbare foutmelding.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": "The request uses features that are not supported for the selected model"
}
16

Fouten

HTTP 429

POST /api/v1/seedance/text_to_video

Responsschema
JSON
{
  "properties": {
    "error": {
      "description": "Leesbare foutmelding.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": "Rate limit reached. Please retry later."
}
17

Fouten

HTTP 503

POST /api/v1/seedance/text_to_video

Responsschema
JSON
{
  "properties": {
    "error": {
      "description": "Leesbare foutmelding.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": "Service under maintenance, please try again later"
}
18

Fouten

HTTP 504

POST /api/v1/seedance/text_to_video

Responsschema
JSON
{
  "properties": {
    "error": {
      "description": "Leesbare foutmelding.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": "The request timed out"
}
19

Fouten

HTTP 404

GET /api/v1/seedance/text_to_video/:id

Responsschema
JSON
{
  "properties": {
    "error": {
      "description": "Leesbare foutmelding.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": "Task with id 'tsk_reference_demo' not found"
}
20

Gegenereerde codevoorbeelden

Gebruik cURL rechtstreeks, of installeer een SDK voor uw taal. Elk voorbeeld dient het gevalideerde verzoek in dat in deze referentie wordt getoond.

Installeren

Shell
pip install runapi-seedance
PYTHON
import os
from runapi.seedance import SeedanceClient

client = SeedanceClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.text_to_video.create(
  model="seedance-1.5-pro",
  duration_seconds=5,
  prompt="A time-lapse of clouds moving over a mountain lake."
)