GET

/v1/schemas/fal/image/fal-ai/nano-banana-pro?kind=output

kind outputactivity imagehash ca619883…extracted Nov 10, 2026version currentsource upstream spec ↗
fieldrecorded source
schemaSource linked above.

upstream-spec

Source trace
040e9342fcb4b859e76f2f91debd6c4d142c2c7e503d1d4c67858c59d8b98d34
{
  "fetchedAt": 1794286801,
  "extractorVersion": "2",
  "verifiedAt": null
}

Response body

4 properties · 2 required · 9 $defs
propertytypedescriptionconstraints
description*stringThe description of the generated images.
images*ImageFile[]The generated images.
grounding_metadataobject[]Provider grounding metadata for the generated images, including search queries, source pages and image-source attribution when available.
conversationsGeminiConversation[]Reusable per-generation conversations, populated only when return_history is true. Retain every part and thought signature when continuing a conversation.

Types

9 $defs

GeminiAudioPartobject

thought_signaturestringOpaque provider-issued thought signature. Replay it unchanged on its original part.length ≥ 1 · nullable
thoughtbooleanProvider thought marker, preserved when replaying a returned conversation.nullable
audio_url*stringOriginal audio URL or data URI from a previous Flash Image request (up to 15 MB).
type*constThe audio part discriminator."audio"

GeminiConversationobject

messages*GeminiVideoMessage[]One complete provider conversation. Pass messages as history in the next request, retaining every signature and part.

GeminiDocumentPartobject

thought_signaturestringOpaque provider-issued thought signature. Replay it unchanged on its original part.length ≥ 1 · nullable
thoughtbooleanProvider thought marker, preserved when replaying a returned conversation.nullable
file_url*stringPDF or UTF-8 plain-text document URL or data URI (up to 15 MB).
mime_type*enumThe document's media type.application/pdf | text/plain
type*constThe document part discriminator."document"

GeminiImagePartobject

thought_signaturestringOpaque provider-issued thought signature. Replay it unchanged on its original part.length ≥ 1 · nullable
thoughtbooleanProvider thought marker, preserved when replaying a returned conversation.nullable
image_url*stringOriginal image URL or data URI. Replayed without resizing or re-encoding.
type*constThe image part discriminator."image"

GeminiSignaturePartobject

thought_signature*stringProvider-issued signature-only part, replayed unchanged.length ≥ 1
thoughtbooleanProvider thought marker, preserved when replaying a returned conversation.nullable
type*constThe signature part discriminator."signature"

GeminiTextPartobject

thought_signaturestringOpaque provider-issued thought signature. Replay it unchanged on its original part.length ≥ 1 · nullable
text*stringText at this position in the conversation.
thoughtbooleanProvider thought marker, preserved when replaying a returned conversation.nullable
type*constThe text part discriminator."text"

GeminiVideoMessageobject

parts*GeminiTextPart | GeminiImagePart | GeminiDocumentPart[]Ordered text, image, document, video, audio, and signature parts.items ≥ 1
role*enumNative Gemini conversation role.user | model

GeminiVideoPartobject

video_url*stringVideo URL or data URI (up to 15 MB and 120 seconds), or a YouTube URL. Supported by Flash Image only.
thoughtbooleanProvider thought marker, preserved when replaying a returned conversation.nullable
thought_signaturestringOpaque provider-issued thought signature. Replay it unchanged on its original part.length ≥ 1 · nullable
type*constThe video part discriminator."video"

ImageFileobject

file_namestringThe name of the file. It will be auto-generated if not provided.nullable
file_sizeintegerThe size of the file in bytes.nullable
url*stringThe URL where the file can be downloaded from.
widthintegerThe width of the imagenullable
heightintegerThe height of the imagenullable
content_typestringThe mime type of the file.nullable

Validate a payload

before you spend tokens
shell
$ curl -X POST https://modelschemas.com/v1/validate \
    -d '{"provider":"fal","endpointId":"fal-ai/nano-banana-pro","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}