GET
/v1/schemas/bfl/video/v1/flux-3-video
Accept:
| field | recorded source |
|---|---|
| schema | Source linked above. upstream-spec Source traceea458c661ef8b0e03d72ee6b29267451f5a04ae65f35e55ea8a87e53645ef670{
"fetchedAt": 1792645846,
"extractorVersion": "1",
"verifiedAt": null
} |
Request body
0 properties · 0 required · 0 $defsThis schema isn’t a plain object with properties — showing the raw JSON instead.
application/json
{
"provider": "bfl",
"activity": "video",
"endpointId": "v1/flux-3-video",
"kind": "input",
"contentHash": "f843ef6d86888530345c55cd043d25fde690aee3873b008dfabc856bde94f020",
"specRevision": null,
"provenance": {
"sourceUrl": "https://api.bfl.ai/openapi.json",
"sourceHash": "ea458c661ef8b0e03d72ee6b29267451f5a04ae65f35e55ea8a87e53645ef670",
"fetchedAt": 1792645846,
"extractorVersion": "1",
"derivation": "upstream-spec",
"verifiedAt": null
},
"createdAt": 1792645846,
"supersededAt": null,
"schema": {
"oneOf": [
{
"$ref": "#/$defs/Flux3VideoT2VInputs"
},
{
"$ref": "#/$defs/Flux3VideoI2VInputs"
},
{
"$ref": "#/$defs/Flux3VideoV2VInputs"
},
{
"$ref": "#/$defs/Flux3VideoDraftEnhanceInputs"
}
],
"title": "Flux3VideoInputsBody",
"description": "Route body wrapper: FastAPI drops the union's discriminator when the\nbare union is the top-level body param, so 422s enumerate every mode\nclass instead of the one the client sent. The RootModel keeps\ndiscrimination inside pydantic; routes unwrap `.root`.",
"discriminator": {
"propertyName": "mode",
"mapping": {
"draft_enhance": "#/components/schemas/Flux3VideoDraftEnhanceInputs",
"i2v": "#/components/schemas/Flux3VideoI2VInputs",
"t2v": "#/components/schemas/Flux3VideoT2VInputs",
"v2v": "#/components/schemas/Flux3VideoV2VInputs"
}
},
"$defs": {
"Flux3VideoDraftEnhanceInputs": {
"properties": {
"user": {
"anyOf": [
{
"type": "string",
"maxLength": 256,
"minLength": 1,
"pattern": "^[^\\x00]*$"
},
{
"type": "null"
}
],
"title": "User",
"description": "Opaque identifier for the end user supplied by the calling platform."
},
"mode": {
"type": "string",
"const": "draft_enhance",
"title": "Mode"
},
"draft_cache": {
"type": "string",
"title": "Draft Cache",
"description": "Encrypted draft-cache bundle from a prior `draft` generation. Primary form: the base64-encoded `.bin` file downloaded from the prior result's `draft_cache` URL. An http(s) URL is also accepted for replays within the download URL's expiry window. The harness is skipped and the original FLUX call is reproduced at full quality; the original inputs are embedded in the bundle."
},
"resolution": {
"type": "string",
"enum": [
"hd",
"fhd",
"qhd",
"uhd"
],
"title": "Resolution",
"description": "Video resolution class of the enhanced result: `fhd` (default), `qhd`, and `uhd` finish the reproduced generation with the video upsampler at that canvas, `hd` returns it without that pass. The reproduced generation is identical whichever is chosen; only the finishing pass differs.",
"default": "fhd"
},
"safety_tolerance": {
"type": "integer",
"maximum": 7,
"minimum": 0,
"title": "Safety Tolerance",
"description": "Harm moderation tolerance from 0 to 7, with 0 the strictest. The route and organization determine the approved maximum and per-category ceilings. Unapproved levels return 422 with approved levels.",
"default": 2
}
},
"additionalProperties": false,
"type": "object",
"required": [
"mode",
"draft_cache"
],
"title": "Draft Enhance",
"description": "Full-quality render of a prior `draft` generation. The bundle pins the\ngeneration itself -- the original mode, prompt, seed, and conditioning\nmedia -- so `resolution` is the only output choice left to the caller."
},
"Flux3VideoI2VInputs": {
"properties": {
"user": {
"anyOf": [
{
"type": "string",
"maxLength": 256,
"minLength": 1,
"pattern": "^[^\\x00]*$"
},
{
"type": "null"
}
],
"title": "User",
"description": "Opaque identifier for the end user supplied by the calling platform."
},
"prompt": {
"type": "string",
"title": "Prompt",
"description": "Free-form prompt describing the video."
},
"aspect_ratio": {
"anyOf": [
{
"type": "string",
"enum": [
"21:9",
"2:1",
"16:9",
"4:3",
"1:1",
"3:4",
"9:16",
"9:21"
]
},
{
"type": "string",
"const": "auto"
}
],
"title": "Aspect Ratio",
"description": "Output aspect ratio. `auto` lets the harness choose from the prompt and any references.",
"default": "auto"
},
"duration": {
"anyOf": [
{
"type": "integer",
"maximum": 20,
"minimum": 5
},
{
"type": "string",
"const": "auto"
}
],
"title": "Duration",
"description": "Video duration in seconds (any whole second from 5 to 20), or `auto` to fit the content.",
"default": "auto"
},
"resolution": {
"type": "string",
"enum": [
"hd",
"fhd",
"qhd",
"uhd"
],
"title": "Resolution",
"description": "Video resolution class: `hd`, or `fhd`/`qhd`/`uhd` for a higher-resolution result finished by the video upsampler. Exact dimensions vary with the aspect ratio.",
"default": "hd"
},
"version": {
"type": "string",
"const": "latest",
"title": "Version",
"description": "Endpoint version. `latest` (default) serves the current release; dated pinnable release tags are added here as they are published.",
"default": "latest"
},
"generate_audio": {
"type": "boolean",
"title": "Generate Audio",
"description": "Generate synchronized audio alongside the video.",
"default": true
},
"safety_tolerance": {
"type": "integer",
"maximum": 7,
"minimum": 0,
"title": "Safety Tolerance",
"description": "Harm moderation tolerance from 0 to 7, with 0 the strictest. The route and organization determine the approved maximum and per-category ceilings. Unapproved levels return 422 with approved levels.",
"default": 2
},
"draft": {
"type": "boolean",
"title": "Draft",
"description": "Draft mode: generate a fast preview and return a `draft_cache` download URL in the result. Download that bundle and pass it back later to render the full-quality version of the same generation.",
"default": false
},
"mode": {
"type": "string",
"const": "i2v",
"title": "Mode"
},
"keyframes": {
"anyOf": [
{
"type": "string"
},
{
"prefixItems": [
{
"type": "number"
},
{
"type": "string"
}
],
"type": "array",
"maxItems": 2,
"minItems": 2
},
{
"items": {
"type": "string"
},
"type": "array"
},
{
"items": {
"prefixItems": [
{
"type": "number"
},
{
"type": "string"
}
],
"type": "array",
"maxItems": 2,
"minItems": 2
},
"type": "array"
}
],
"title": "Keyframes",
"description": "Your images become frames of the video; each is an http(s) URL or base64, one to ten total. Plain images: one starts the video, two start and end it, with more the first starts it, the last ends it, and the rest fall evenly in between (3 or more need a set `duration`). To control the timing yourself, send `[seconds, image]` pairs in time order, e.g. `[[0, \"...\"], [3.5, \"...\"]]`: each image becomes the frame at that second, and with `duration: \"auto\"` the video runs to the last pair's second, rounded up (20s max)."
}
},
"additionalProperties": false,
"type": "object",
"required": [
"prompt",
"mode",
"keyframes"
],
"title": "Image to Video",
"description": "Image continuation: your images become frames of the video. One image\nstarts the video; two start and end it; with more, the first starts it,\nthe last ends it, and the rest fall evenly in between. To control the\ntiming yourself, send `[seconds, image]` pairs: each image becomes the\nframe at that second."
},
"Flux3VideoT2VInputs": {
"properties": {
"user": {
"anyOf": [
{
"type": "string",
"maxLength": 256,
"minLength": 1,
"pattern": "^[^\\x00]*$"
},
{
"type": "null"
}
],
"title": "User",
"description": "Opaque identifier for the end user supplied by the calling platform."
},
"prompt": {
"type": "string",
"title": "Prompt",
"description": "Free-form prompt describing the video."
},
"aspect_ratio": {
"anyOf": [
{
"type": "string",
"enum": [
"21:9",
"2:1",
"16:9",
"4:3",
"1:1",
"3:4",
"9:16",
"9:21"
]
},
{
"type": "string",
"const": "auto"
}
],
"title": "Aspect Ratio",
"description": "Output aspect ratio. `auto` lets the harness choose from the prompt and any references.",
"default": "auto"
},
"duration": {
"anyOf": [
{
"type": "integer",
"maximum": 20,
"minimum": 5
},
{
"type": "string",
"const": "auto"
}
],
"title": "Duration",
"description": "Video duration in seconds (any whole second from 5 to 20), or `auto` to fit the content.",
"default": "auto"
},
"resolution": {
"type": "string",
"enum": [
"hd",
"fhd",
"qhd",
"uhd"
],
"title": "Resolution",
"description": "Video resolution class: `hd`, or `fhd`/`qhd`/`uhd` for a higher-resolution result finished by the video upsampler. Exact dimensions vary with the aspect ratio.",
"default": "hd"
},
"version": {
"type": "string",
"const": "latest",
"title": "Version",
"description": "Endpoint version. `latest` (default) serves the current release; dated pinnable release tags are added here as they are published.",
"default": "latest"
},
"generate_audio": {
"type": "boolean",
"title": "Generate Audio",
"description": "Generate synchronized audio alongside the video.",
"default": true
},
"safety_tolerance": {
"type": "integer",
"maximum": 7,
"minimum": 0,
"title": "Safety Tolerance",
"description": "Harm moderation tolerance from 0 to 7, with 0 the strictest. The route and organization determine the approved maximum and per-category ceilings. Unapproved levels return 422 with approved levels.",
"default": 2
},
"draft": {
"type": "boolean",
"title": "Draft",
"description": "Draft mode: generate a fast preview and return a `draft_cache` download URL in the result. Download that bundle and pass it back later to render the full-quality version of the same generation.",
"default": false
},
"mode": {
"type": "string",
"const": "t2v",
"title": "Mode"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"prompt",
"mode"
],
"title": "Text to Video"
},
"Flux3VideoV2VInputs": {
"properties": {
"user": {
"anyOf": [
{
"type": "string",
"maxLength": 256,
"minLength": 1,
"pattern": "^[^\\x00]*$"
},
{
"type": "null"
}
],
"title": "User",
"description": "Opaque identifier for the end user supplied by the calling platform."
},
"prompt": {
"type": "string",
"title": "Prompt",
"description": "Free-form prompt describing the video."
},
"aspect_ratio": {
"anyOf": [
{
"type": "string",
"enum": [
"21:9",
"2:1",
"16:9",
"4:3",
"1:1",
"3:4",
"9:16",
"9:21"
]
},
{
"type": "string",
"const": "auto"
}
],
"title": "Aspect Ratio",
"description": "Output aspect ratio. `auto` lets the harness choose from the prompt and any references.",
"default": "auto"
},
"duration": {
"anyOf": [
{
"type": "integer",
"maximum": 15,
"minimum": 5
},
{
"type": "string",
"const": "auto"
}
],
"title": "Duration",
"description": "Video duration in seconds (any whole second from 5 to 15), or `auto` to fit the content.",
"default": "auto"
},
"resolution": {
"type": "string",
"enum": [
"hd",
"fhd",
"qhd",
"uhd"
],
"title": "Resolution",
"description": "Video resolution class: `hd`, or `fhd`/`qhd`/`uhd` for a higher-resolution result finished by the video upsampler. Exact dimensions vary with the aspect ratio.",
"default": "hd"
},
"version": {
"type": "string",
"const": "latest",
"title": "Version",
"description": "Endpoint version. `latest` (default) serves the current release; dated pinnable release tags are added here as they are published.",
"default": "latest"
},
"generate_audio": {
"type": "boolean",
"title": "Generate Audio",
"description": "Generate synchronized audio alongside the video.",
"default": true
},
"safety_tolerance": {
"type": "integer",
"maximum": 7,
"minimum": 0,
"title": "Safety Tolerance",
"description": "Harm moderation tolerance from 0 to 7, with 0 the strictest. The route and organization determine the approved maximum and per-category ceilings. Unapproved levels return 422 with approved levels.",
"default": 2
},
"draft": {
"type": "boolean",
"title": "Draft",
"description": "Draft mode: generate a fast preview and return a `draft_cache` download URL in the result. Download that bundle and pass it back later to render the full-quality version of the same generation.",
"default": false
},
"mode": {
"type": "string",
"const": "v2v",
"title": "Mode"
},
"start_video": {
"type": "string",
"title": "Start Video",
"description": "The video to continue, an http(s) URL or base64 mp4; the generated clip carries on from its final frames."
}
},
"additionalProperties": false,
"type": "object",
"required": [
"prompt",
"mode",
"start_video"
],
"title": "Video Continuation",
"description": "Video continuation: the generated clip carries on from your video's\nfinal frames."
}
}
}
}Validate a payload
before you spend tokensshell
$ curl -X POST https://modelschemas.com/v1/validate \
-d '{"provider":"bfl","endpointId":"v1/flux-3-video","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}