Skip to Content
APIVideo GenerationProvider Routing

Provider Routing

A video model may be served by more than one provider. provider is a top-level field of the request body with two sub-fields: type selects the provider, options passes provider-specific parameters through.

FieldTypeDescription
provider.typestringPins the serving provider. A value outside the enum returns 400 invalid_provider_type; a provider that does not serve the model returns 400 provider_type_unavailable
provider.options.<slug>objectProvider-specific passthrough — only the matched provider receives it
Terminal
curl https://api.ofox.io/v1/videos \ -H "Authorization: Bearer $OFOX_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "bytedance/seedance-2.0-mini", "prompt": "...", "duration": 5, "provider": { "type": "byteplus", "options": { "dashscope": { "watermark": false } } } }'

When provider.type is not sent, a model served by several providers is distributed by weight across the available channels, and which provider serves any single request is not predictable. The video path does not support order / sort / fallback, and there is no equivalent header form.

The providers available for a model are those listed under Providers on its model page; the full list is in Provider routing.

seedance’s two providers

The bytedance/seedance-* family is served by the two providers below, whose content policies differ:

ProviderDescriptionContent policy
volcengineVolcengine Ark, ByteDance’s platform for mainland ChinaStandard moderation
byteplusBytePlus, ByteDance’s platform for markets outside mainland ChinaAllows not-for-all-audiences (NSFW) content

byteplus allows seedance to generate not-for-all-audiences (NSFW) content, while volcengine applies standard moderation. provider.type: "byteplus" must be set explicitly when such content is required; otherwise the weighted distribution may route the request to volcengine, where moderation will reject it.

provider.options: parameter passthrough

Provider-specific parameters are passed through provider.options.<slug>, and only the matched provider receives them. Parameters such as watermark are not supported by every model, which is why they live in provider passthrough rather than in a top-level field (matching OpenRouter’s passthrough design). Which passthrough parameters a model accepts depends on the model.

{ "model": "alibaba/wan-2.7", "prompt": "...", "provider": { "options": { "dashscope": { "watermark": false, "audio_setting": "..." } } } }

type and options may be sent together.

Last updated on