GET
/v1/schemas/fal/image/fal-ai/nano-banana-2?kind=output
Accept:
| field | recorded source |
|---|---|
| schema | Source linked above. upstream-spec Source traced0db91a6ba58c3110eb05cf98b9c3eba4f0f6ca6d75fb3d8e23a5e22f034fcdf{
"fetchedAt": 1794286801,
"extractorVersion": "2",
"verifiedAt": null
} |
Response body
4 properties · 2 required · 9 $defs| property | type | description | constraints |
|---|---|---|---|
| images* | ImageFile[] | The generated images. | |
| description* | string | The description of the generated images. | |
| conversations | GeminiConversation[] | Reusable per-generation conversations, populated only when return_history is true. Retain every part and thought signature when continuing a conversation. | |
| grounding_metadata | object[] | Provider grounding metadata for the generated images, including search queries, source pages and image-source attribution when available. |
Types
9 $defsGeminiAudioPartobject
| thought | boolean | Provider thought marker, preserved when replaying a returned conversation. | nullable |
| type* | const | The audio part discriminator. | "audio" |
| audio_url* | string | Original audio URL or data URI from a previous Flash Image request (up to 15 MB). | |
| thought_signature | string | Opaque provider-issued thought signature. Replay it unchanged on its original part. | length ≥ 1 · nullable |
GeminiConversationobject
| messages* | GeminiVideoMessage[] | One complete provider conversation. Pass messages as history in the next request, retaining every signature and part. |
GeminiDocumentPartobject
| thought_signature | string | Opaque provider-issued thought signature. Replay it unchanged on its original part. | length ≥ 1 · nullable |
| thought | boolean | Provider thought marker, preserved when replaying a returned conversation. | nullable |
| file_url* | string | PDF or UTF-8 plain-text document URL or data URI (up to 15 MB). | |
| type* | const | The document part discriminator. | "document" |
| mime_type* | enum | The document's media type. | application/pdf | text/plain |
GeminiImagePartobject
| image_url* | string | Original image URL or data URI. Replayed without resizing or re-encoding. | |
| thought | boolean | Provider thought marker, preserved when replaying a returned conversation. | nullable |
| type* | const | The image part discriminator. | "image" |
| thought_signature | string | Opaque provider-issued thought signature. Replay it unchanged on its original part. | length ≥ 1 · nullable |
GeminiSignaturePartobject
| thought | boolean | Provider thought marker, preserved when replaying a returned conversation. | nullable |
| type* | const | The signature part discriminator. | "signature" |
| thought_signature* | string | Provider-issued signature-only part, replayed unchanged. | length ≥ 1 |
GeminiTextPartobject
| thought | boolean | Provider thought marker, preserved when replaying a returned conversation. | nullable |
| type* | const | The text part discriminator. | "text" |
| text* | string | Text at this position in the conversation. | |
| thought_signature | string | Opaque provider-issued thought signature. Replay it unchanged on its original part. | length ≥ 1 · nullable |
GeminiVideoMessageobject
| role* | enum | Native Gemini conversation role. | user | model |
| parts* | GeminiTextPart | GeminiImagePart | GeminiDocumentPart[] | Ordered text, image, document, video, audio, and signature parts. | items ≥ 1 |
GeminiVideoPartobject
| thought | boolean | Provider thought marker, preserved when replaying a returned conversation. | nullable |
| type* | const | The video part discriminator. | "video" |
| video_url* | string | Video URL or data URI (up to 15 MB and 120 seconds), or a YouTube URL. Supported by Flash Image only. | |
| thought_signature | string | Opaque provider-issued thought signature. Replay it unchanged on its original part. | length ≥ 1 · nullable |
ImageFileobject
| url* | string | The URL where the file can be downloaded from. | |
| content_type | string | The mime type of the file. | nullable |
| width | integer | The width of the image | nullable |
| file_name | string | The name of the file. It will be auto-generated if not provided. | nullable |
| file_size | integer | The size of the file in bytes. | nullable |
| height | integer | The height of the image | nullable |
Validate a payload
before you spend tokensshell
$ curl -X POST https://modelschemas.com/v1/validate \
-d '{"provider":"fal","endpointId":"fal-ai/nano-banana-2","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}