JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/beatapi/json-schema/beatapi-image-generation-task-create-request-schema.json",
"title": "ImageGenerationTaskCreateRequest",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/beatapi-openapi.json#/components/schemas/ImageGenerationTaskCreateRequest",
"oneOf": [
{
"$ref": "#/$defs/QwenImage21Request"
},
{
"$ref": "#/$defs/NanoBananaImageRequest"
},
{
"$ref": "#/$defs/NanoBanana2ImageRequest"
},
{
"$ref": "#/$defs/NanoBanana21ImageRequest"
},
{
"$ref": "#/$defs/NanoBanana2LiteImageRequest"
},
{
"$ref": "#/$defs/NanoBananaProImageRequest"
},
{
"$ref": "#/$defs/GptImage2Request"
},
{
"$ref": "#/$defs/GptImage25FlareRequest"
},
{
"$ref": "#/$defs/GptImage25SunburstRequest"
},
{
"$ref": "#/$defs/Seedream5ProImageRequest"
},
{
"$ref": "#/$defs/Seedream5LiteImageRequest"
},
{
"$ref": "#/$defs/GrokImagineImage20Request"
}
],
"$defs": {
"GptImage25FlareRequest": {
"type": "object",
"additionalProperties": false,
"required": [
"model",
"prompt"
],
"properties": {
"model": {
"type": "string",
"const": "gpt-image-2.5-flare",
"description": "Must be `gpt-image-2.5-flare`."
},
"prompt": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Generation or image-editing instructions."
},
"images": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"description": "Public HTTPS reference-image URLs in PNG, JPEG or WebP; each link is checked when the task is created, and one that is not such an image (an error page, a GIF, a 404) is refused with 400. Omit for text-to-image.",
"items": {
"type": "string",
"format": "uri",
"pattern": "^https://"
}
},
"aspect_ratio": {
"type": "string",
"enum": [
"auto",
"1:1",
"3:2",
"2:3",
"4:3",
"3:4",
"5:4",
"4:5",
"16:9",
"9:16",
"2:1",
"1:2",
"3:1",
"1:3",
"21:9",
"9:21"
],
"default": "auto",
"description": "Output image aspect ratio. `auto` renders a square frame. Send `resolution` and `aspect_ratio`, or `size` instead of both — never together."
},
"resolution": {
"type": "string",
"enum": [
"1K",
"2K",
"4K"
],
"default": "1K",
"description": "Output resolution tier. Not with `size`."
},
"size": {
"type": "string",
"pattern": "^[0-9]+[xX×][0-9]+$",
"description": "Exact output size as WIDTHxHEIGHT, for example `1536x1024` or `3840x2160`. Replaces `resolution` and `aspect_ratio`; sending either with it is a 400. Both edges must be multiples of 16 and between 16 and 3840 px, the total between 655,360 and 8,294,400 pixels, and the long edge at most three times the short one. Billed as 1K up to 2,097,152 pixels, 2K up to 5,898,240 pixels, and 4K above."
},
"background": {
"type": "string",
"enum": [
"auto",
"opaque",
"transparent"
],
"default": "auto",
"description": "Output background. `transparent` returns a PNG with an alpha channel — describe the subject as isolated on a transparent background in the prompt. `opaque` always fills the backdrop; `auto` lets the model choose."
}
}
},
"GptImage25SunburstRequest": {
"type": "object",
"additionalProperties": false,
"required": [
"model",
"prompt"
],
"properties": {
"model": {
"type": "string",
"const": "gpt-image-2.5-sunburst",
"description": "Must be `gpt-image-2.5-sunburst`."
},
"prompt": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Generation or image-editing instructions."
},
"images": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"description": "Public HTTPS reference-image URLs in PNG, JPEG or WebP; each link is checked when the task is created, and one that is not such an image (an error page, a GIF, a 404) is refused with 400. Omit for text-to-image.",
"items": {
"type": "string",
"format": "uri",
"pattern": "^https://"
}
},
"aspect_ratio": {
"type": "string",
"enum": [
"auto",
"1:1",
"3:2",
"2:3",
"4:3",
"3:4",
"5:4",
"4:5",
"16:9",
"9:16",
"2:1",
"1:2",
"3:1",
"1:3",
"21:9",
"9:21"
],
"default": "auto",
"description": "Output image aspect ratio. `auto` renders a square frame. Send `resolution` and `aspect_ratio`, or `size` instead of both — never together."
},
"resolution": {
"type": "string",
"enum": [
"1K",
"2K",
"4K"
],
"default": "1K",
"description": "Output resolution tier. Not with `size`."
},
"size": {
"type": "string",
"pattern": "^[0-9]+[xX×][0-9]+$",
"description": "Exact output size as WIDTHxHEIGHT, for example `1536x1024` or `3840x2160`. Replaces `resolution` and `aspect_ratio`; sending either with it is a 400. Both edges must be multiples of 16 and between 16 and 3840 px, the total between 655,360 and 8,294,400 pixels, and the long edge at most three times the short one. Billed as 1K up to 2,097,152 pixels, 2K up to 5,898,240 pixels, and 4K above."
},
"background": {
"type": "string",
"enum": [
"auto",
"opaque",
"transparent"
],
"default": "auto",
"description": "Output background. `transparent` returns a PNG with an alpha channel — describe the subject as isolated on a transparent background in the prompt. `opaque` always fills the backdrop; `auto` lets the model choose."
}
}
},
"GptImage2Request": {
"type": "object",
"additionalProperties": false,
"required": [
"model",
"prompt"
],
"properties": {
"model": {
"type": "string",
"const": "gpt-image-2",
"description": "Must be `gpt-image-2`."
},
"prompt": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Generation or image-editing instructions."
},
"images": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"description": "Public HTTPS reference-image URLs in PNG, JPEG or WebP; each link is checked when the task is created, and one that is not such an image (an error page, a GIF, a 404) is refused with 400. Omit for text-to-image.",
"items": {
"type": "string",
"format": "uri",
"pattern": "^https://"
}
},
"aspect_ratio": {
"type": "string",
"enum": [
"auto",
"1:1",
"3:2",
"2:3",
"4:3",
"3:4",
"5:4",
"4:5",
"16:9",
"9:16",
"2:1",
"1:2",
"3:1",
"1:3",
"21:9",
"9:21"
],
"default": "auto",
"description": "Output image aspect ratio. Send `resolution` and `aspect_ratio`, or `size` instead of both — never together."
},
"resolution": {
"type": "string",
"enum": [
"1K",
"2K",
"4K"
],
"default": "1K",
"description": "Output resolution tier. Not with `size`."
},
"size": {
"type": "string",
"pattern": "^[0-9]+[xX×][0-9]+$",
"description": "Exact output size as WIDTHxHEIGHT, for example `1536x1024` or `3840x2160`. Replaces `resolution` and `aspect_ratio`; sending either with it is a 400. Both edges must be multiples of 16 and between 16 and 3840 px, the total between 655,360 and 8,294,400 pixels, and the long edge at most three times the short one. Billed as 1K up to 2,097,152 pixels, 2K up to 5,898,240 pixels, and 4K above."
},
"background": {
"type": "string",
"enum": [
"auto",
"opaque",
"transparent"
],
"default": "auto",
"description": "Output background. `transparent` returns a PNG with an alpha channel — describe the subject as isolated on a transparent background in the prompt. `opaque` always fills the backdrop; `auto` lets the model choose."
}
}
},
"GrokImagineImage20Request": {
"type": "object",
"additionalProperties": false,
"required": [
"model",
"prompt"
],
"description": "Omit `images` for text-to-image. Supply one to five images for editing; `auto` aspect ratio is available only when images are supplied.",
"properties": {
"model": {
"type": "string",
"const": "grok-imagine-image-2.0",
"description": "Must be `grok-imagine-image-2.0`."
},
"prompt": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Generation or image-editing instructions."
},
"images": {
"type": "array",
"minItems": 1,
"maxItems": 5,
"description": "Public HTTPS reference-image URLs. Omit for text-to-image.",
"items": {
"type": "string",
"format": "uri",
"pattern": "^https://"
}
},
"aspect_ratio": {
"type": "string",
"enum": [
"1:1",
"2:3",
"3:2",
"16:9",
"9:16",
"auto"
],
"default": "1:1",
"description": "Output image aspect ratio. `auto` requires at least one image."
}
}
},
"NanoBanana21ImageRequest": {
"type": "object",
"additionalProperties": false,
"required": [
"model",
"prompt"
],
"properties": {
"model": {
"type": "string",
"const": "nano-banana-2.1",
"description": "Must be `nano-banana-2.1`."
},
"prompt": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Generation or image-editing instructions."
},
"images": {
"type": "array",
"minItems": 1,
"maxItems": 14,
"description": "Public HTTPS reference-image URLs in PNG, JPEG or WebP; each link is checked when the task is created, and one that is not such an image (an error page, a GIF, a 404) is refused with 400. Omit for text-to-image.",
"items": {
"type": "string",
"format": "uri",
"pattern": "^https://"
}
},
"aspect_ratio": {
"type": "string",
"enum": [
"1:1",
"1:4",
"1:8",
"2:3",
"3:2",
"3:4",
"4:1",
"4:3",
"4:5",
"5:4",
"8:1",
"9:16",
"16:9",
"21:9",
"auto"
],
"default": "1:1",
"description": "Output image aspect ratio."
},
"resolution": {
"type": "string",
"enum": [
"1K",
"2K",
"4K"
],
"default": "1K",
"description": "Output resolution tier."
},
"output_format": {
"type": "string",
"enum": [
"png",
"jpeg"
],
"default": "png",
"description": "Output image file format."
}
}
},
"NanoBanana2ImageRequest": {
"type": "object",
"additionalProperties": false,
"required": [
"model",
"prompt"
],
"properties": {
"model": {
"type": "string",
"const": "nano-banana-2",
"description": "Must be `nano-banana-2`."
},
"prompt": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Generation or image-editing instructions."
},
"images": {
"type": "array",
"minItems": 1,
"maxItems": 14,
"description": "Public HTTPS reference-image URLs in PNG, JPEG or WebP; each link is checked when the task is created, and one that is not such an image (an error page, a GIF, a 404) is refused with 400. Omit for text-to-image.",
"items": {
"type": "string",
"format": "uri",
"pattern": "^https://"
}
},
"aspect_ratio": {
"type": "string",
"enum": [
"1:1",
"1:4",
"1:8",
"2:3",
"3:2",
"3:4",
"4:1",
"4:3",
"4:5",
"5:4",
"8:1",
"9:16",
"16:9",
"21:9",
"auto"
],
"default": "1:1",
"description": "Output image aspect ratio."
},
"resolution": {
"type": "string",
"enum": [
"1K",
"2K",
"4K"
],
"default": "1K",
"description": "Output resolution tier."
},
"output_format": {
"type": "string",
"enum": [
"png",
"jpeg"
],
"default": "png",
"description": "Output image file format."
}
}
},
"NanoBanana2LiteImageRequest": {
"type": "object",
"additionalProperties": false,
"required": [
"model",
"prompt"
],
"properties": {
"model": {
"type": "string",
"const": "nano-banana-2-lite",
"description": "Must be `nano-banana-2-lite`."
},
"prompt": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Generation or image-editing instructions."
},
"images": {
"type": "array",
"minItems": 1,
"maxItems": 14,
"description": "Public HTTPS reference-image URLs in PNG, JPEG or WebP; each link is checked when the task is created, and one that is not such an image (an error page, a GIF, a 404) is refused with 400. Omit for text-to-image.",
"items": {
"type": "string",
"format": "uri",
"pattern": "^https://"
}
},
"aspect_ratio": {
"type": "string",
"enum": [
"1:1",
"1:4",
"1:8",
"2:3",
"3:2",
"3:4",
"4:1",
"4:3",
"4:5",
"5:4",
"8:1",
"9:16",
"16:9",
"21:9",
"auto"
],
"default": "1:1",
"description": "Output image aspect ratio."
},
"resolution": {
"type": "string",
"enum": [
"1K"
],
"default": "1K",
"description": "Output resolution tier. This model renders 1K only."
},
"output_format": {
"type": "string",
"enum": [
"png",
"jpeg"
],
"default": "png",
"description": "Output image file format."
}
}
},
"NanoBananaImageRequest": {
"type": "object",
"additionalProperties": false,
"required": [
"model",
"prompt"
],
"properties": {
"model": {
"type": "string",
"const": "nano-banana",
"description": "Must be `nano-banana`."
},
"prompt": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Generation or image-editing instructions."
},
"images": {
"type": "array",
"minItems": 1,
"maxItems": 3,
"description": "Public HTTPS reference-image URLs in PNG, JPEG or WebP; each link is checked when the task is created, and one that is not such an image (an error page, a GIF, a 404) is refused with 400. Omit for text-to-image.",
"items": {
"type": "string",
"format": "uri",
"pattern": "^https://"
}
},
"aspect_ratio": {
"type": "string",
"enum": [
"1:1",
"2:3",
"3:2",
"3:4",
"4:3",
"4:5",
"5:4",
"9:16",
"16:9",
"21:9",
"auto"
],
"default": "1:1",
"description": "Output image aspect ratio."
},
"resolution": {
"type": "string",
"enum": [
"1K"
],
"default": "1K",
"description": "Output resolution tier. This model renders 1K only."
},
"output_format": {
"type": "string",
"enum": [
"png",
"jpeg"
],
"default": "png",
"description": "Output image file format."
}
}
},
"NanoBananaProImageRequest": {
"type": "object",
"additionalProperties": false,
"required": [
"model",
"prompt"
],
"properties": {
"model": {
"type": "string",
"const": "nano-banana-pro",
"description": "Must be `nano-banana-pro`."
},
"prompt": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Generation or image-editing instructions."
},
"images": {
"type": "array",
"minItems": 1,
"maxItems": 14,
"description": "Public HTTPS reference-image URLs in PNG, JPEG or WebP; each link is checked when the task is created, and one that is not such an image (an error page, a GIF, a 404) is refused with 400. Omit for text-to-image.",
"items": {
"type": "string",
"format": "uri",
"pattern": "^https://"
}
},
"aspect_ratio": {
"type": "string",
"enum": [
"1:1",
"2:3",
"3:2",
"3:4",
"4:3",
"4:5",
"5:4",
"9:16",
"16:9",
"21:9",
"auto"
],
"default": "1:1",
"description": "Output image aspect ratio."
},
"resolution": {
"type": "string",
"enum": [
"1K",
"2K",
"4K"
],
"default": "1K",
"description": "Output resolution tier."
},
"output_format": {
"type": "string",
"enum": [
"png",
"jpg"
],
"default": "png",
"description": "Output image file format."
}
}
},
"QwenImage21Request": {
"additionalProperties": false,
"properties": {
"aspect_ratio": {
"default": "auto",
"enum": [
"auto",
"1:1",
"4:3",
"3:4",
"3:2",
"2:3",
"16:9",
"9:16",
"21:9",
"9:21"
],
"type": "string",
"description": "auto follows the first reference image; without images it renders 1:1."
},
"background": {
"default": "opaque",
"enum": [
"opaque",
"transparent"
],
"type": "string",
"description": "opaque or transparent. Transparent output requires PNG or WebP."
},
"enhance_prompt": {
"type": "boolean",
"description": "Rewrites the prompt before rendering. Defaults to true without images and false with images; no unconditional default."
},
"images": {
"items": {
"format": "uri",
"pattern": "^https://",
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"type": "array",
"description": "One to ten public HTTPS image URLs. Omit for text-to-image."
},
"model": {
"enum": [
"qwen-image-2.1"
],
"type": "string",
"description": "Must be qwen-image-2.1."
},
"output_format": {
"default": "png",
"enum": [
"png",
"webp",
"jpeg"
],
"type": "string",
"description": "Output file format. Use png or webp with transparent background; jpeg cannot retain alpha."
},
"prompt": {
"maxLength": 5000,
"minLength": 1,
"type": "string",
"description": "Generation or reference-editing instructions, from 1 to 5000 characters."
},
"resolution": {
"default": "1K",
"enum": [
"1K",
"2K"
],
"type": "string",
"description": "Output tier, 1K or 2K. A prompt cannot select a different tier."
},
"seed": {
"maximum": 2147483647,
"minimum": 0,
"type": "integer",
"description": "Optional integer from 0 to 2147483647; no -1 value and no documented default."
}
},
"required": [
"model",
"prompt"
],
"type": "object",
"x-beatapi-rules": [
"aspect_ratio auto follows the first image; without images it renders 1:1",
"enhance_prompt rewrites the prompt before rendering; it defaults to true without images and to false with them, where a rewrite can drop what an edit asks to keep",
"background transparent needs output_format png or webp"
],
"allOf": [
{
"if": {
"properties": {
"background": {
"const": "transparent"
}
},
"required": [
"background"
]
},
"then": {
"properties": {
"output_format": {
"enum": [
"png",
"webp"
]
}
}
}
}
]
},
"Seedream5LiteImageRequest": {
"type": "object",
"additionalProperties": false,
"required": [
"model",
"prompt"
],
"properties": {
"model": {
"type": "string",
"const": "seedream-5-lite",
"description": "Must be `seedream-5-lite`."
},
"prompt": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Generation or image-editing instructions."
},
"images": {
"type": "array",
"minItems": 1,
"maxItems": 6,
"description": "Public HTTPS reference-image URLs. Omit for text-to-image.",
"items": {
"type": "string",
"format": "uri",
"pattern": "^https://"
}
},
"aspect_ratio": {
"type": "string",
"enum": [
"auto",
"1:1",
"4:3",
"3:4",
"16:9",
"9:16",
"3:2",
"2:3"
],
"default": "1:1",
"description": "Output image aspect ratio."
},
"resolution": {
"type": "string",
"enum": [
"2K",
"4K"
],
"default": "2K",
"description": "Output resolution tier."
}
}
},
"Seedream5ProImageRequest": {
"type": "object",
"additionalProperties": false,
"required": [
"model",
"prompt"
],
"properties": {
"model": {
"type": "string",
"const": "seedream-5-pro",
"description": "Must be `seedream-5-pro`."
},
"prompt": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Generation or image-editing instructions."
},
"images": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"description": "Public HTTPS reference-image URLs. Omit for text-to-image.",
"items": {
"type": "string",
"format": "uri",
"pattern": "^https://"
}
},
"aspect_ratio": {
"type": "string",
"enum": [
"auto",
"1:1",
"4:3",
"3:4",
"16:9",
"9:16",
"3:2",
"2:3",
"21:9"
],
"default": "1:1",
"description": "Output image aspect ratio."
},
"resolution": {
"type": "string",
"enum": [
"1K",
"2K"
],
"default": "1K",
"description": "Output resolution tier."
},
"output_format": {
"type": "string",
"enum": [
"png",
"jpeg"
],
"default": "png",
"description": "Output image file format."
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/beatapi-image-generation-task-create-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.