SPB Git forge

spb/doc-api

Public
2commits 1branches 0releases
15.7 MBsize
maindefault branch
13 days agolast push
Python 88.3% TypeScript 7.6% Shell 4.1%
31.6 KB · 1,085 lines json
Raw Blame History
1[2 {3  "provider": "gemini",4  "object": "GenerateContentResponse (image part)",5  "api_family": "image-generation",6  "description": "Response of a native image generation call: candidates[0].content.parts[] mixes text parts and inlineData image parts; usageMetadata reports image output tokens (1120 for 1K on 3.1 models, 1290 on 2.5-flash-image, 2000 for 4K on 3-pro).",7  "fields": {8   "candidates[].content.parts[].text": "string (optional narration)",9   "candidates[].content.parts[].inlineData.mimeType": "image/png (observed) | image/jpeg",10   "candidates[].content.parts[].inlineData.data": "base64",11   "candidates[].content.parts[].thought": "bool (thought images on Gemini 3, not charged)",12   "candidates[].finishReason": "STOP | IMAGE_SAFETY | …",13   "usageMetadata.promptTokenCount": "int",14   "usageMetadata.candidatesTokenCount": "int (image tokens)",15   "usageMetadata.candidatesTokensDetails[]": "{modality: IMAGE|TEXT, tokenCount}",16   "usageMetadata.thoughtsTokenCount": "int"17  },18  "status": [19   "DOCUMENTED",20   "ACCOUNT_RESTRICTED"21  ],22  "example": {23   "error": {24    "code": 429,25    "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-3.1-flash-lite-image\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-3.1-flash-lite-image\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-3.1-flash-lite-image\nPlease retry in 40.808490523s.",26    "status": "RESOURCE_EXHAUSTED",27    "details": [28     {29      "@type": "type.googleapis.com/google.rpc.Help",30      "links": [31       {32        "description": "Learn more about Gemini API quotas",33        "url": "https://ai.google.dev/gemini-api/docs/rate-limits"34       }35      ]36     },37     {38      "@type": "type.googleapis.com/google.rpc.QuotaFailure",39      "violations": [40       {41        "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_input_token_count",42        "quotaId": "GenerateContentInputTokensPerModelPerMinute-FreeTier",43        "quotaDimensions": {44         "location": "global",45         "model": "gemini-3.1-flash-lite-image"46        }47       },48       {49        "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",50        "quotaId": "GenerateRequestsPerMinutePerProjectPerModel-FreeTier",51        "quotaDimensions": {52         "location": "global",53         "model": "gemini-3.1-flash-lite-image"54        }55       },56       {57        "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",58        "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",59        "quotaDimensions": {60         "location": "global",61         "model": "gemini-3.1-flash-lite-image"62        }63       }64      ]65     },66     {67      "@type": "type.googleapis.com/google.rpc.RetryInfo",68      "retryDelay": "40s"69     }70    ]71   }72  },73  "notes": "Not obtainable with this key: HTTP 429 RESOURCE_EXHAUSTED: You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis. (also gemini-2.5-flash-image -> HTTP 429). Field list from the image-generation guide and GenerateContentResponse reference; token counts from the guide's aspect-ratio tables.",74  "sources": [75   {76    "url": "https://ai.google.dev/gemini-api/docs/image-generation",77    "retrieved_at": "2026-09-18"78   },79   {80    "url": "https://ai.google.dev/api/generate-content",81    "retrieved_at": "2026-09-18"82   }83  ]84 },85 {86  "provider": "gemini",87  "object": "PredictRequest / PredictResponse",88  "api_family": "image-generation",89  "description": "Generic prediction envelope used by Imagen (retired) and predictLongRunning (Veo).",90  "fields": {91   "instances[]": "any[] (required)",92   "parameters": "any",93   "labels": "map<string,string>",94   "predictions[] (response)": "any[]"95  },96  "status": [97   "DOCUMENTED",98   "LEGACY"99  ],100  "example": null,101  "notes": null,102  "sources": [103   {104    "url": "https://generativelanguage.googleapis.com/$discovery/rest?version=v1beta",105    "retrieved_at": "2026-09-18"106   },107   {108    "url": "https://ai.google.dev/api/models",109    "retrieved_at": "2026-09-18"110   }111  ]112 },113 {114  "provider": "gemini",115  "object": "Operation",116  "api_family": "operations",117  "description": "google.longrunning.Operation returned by predictLongRunning, batchGenerateContent, asyncBatchEmbedContent, tunedModels.create. done=false while running; when done exactly one of error/response is set.",118  "fields": {119   "name": "string (models/{m}/operations/{id} | batches/{id} | tunedModels/{id}/operations/{id})",120   "metadata": "object with @type (Veo: none/progress; batch: GenerateContentBatch|EmbedContentBatch; tuning: CreateTunedModelMetadata)",121   "done": "boolean",122   "error": "Status {code, message, details[]}",123   "response": "object with @type (GenerateVideoResponse | batch output | TunedModel)"124  },125  "status": [126   "DOCUMENTED",127   "ACCOUNT_RESTRICTED"128  ],129  "example": {130   "error": {131    "code": 400,132    "message": "Precondition check failed.",133    "status": "FAILED_PRECONDITION"134   }135  },136  "notes": "Live example: Operation returned by batchGenerateContent (metadata = GenerateContentBatch).",137  "sources": [138   {139    "url": "https://ai.google.dev/api/batch-api",140    "retrieved_at": "2026-09-18"141   },142   {143    "url": "https://generativelanguage.googleapis.com/$discovery/rest?version=v1beta",144    "retrieved_at": "2026-09-18"145   }146  ]147 },148 {149  "provider": "gemini",150  "object": "Status (google.rpc.Status)",151  "api_family": "operations",152  "description": "Error model used in Operation.error, InlinedResponse.error, GeneratedFile.error and HTTP error bodies ({error:{code,message,status,details[]}}).",153  "fields": {154   "code": "int (google.rpc.Code; 1 = CANCELLED)",155   "message": "string",156   "details[]": "object[] with @type"157  },158  "status": [159   "DOCUMENTED",160   "LIVE_VERIFIED"161  ],162  "example": {163   "error": {164    "code": 403,165    "message": "You do not have permission to access the Operation with ID bogus-op or it may not exist.",166    "status": "PERMISSION_DENIED"167   }168  },169  "notes": "Live example: GET bogus models/…/operations/… error body.",170  "sources": [171   {172    "url": "https://ai.google.dev/api/files",173    "retrieved_at": "2026-09-18"174   },175   {176    "url": "https://generativelanguage.googleapis.com/$discovery/rest?version=v1beta",177    "retrieved_at": "2026-09-18"178   }179  ]180 },181 {182  "provider": "gemini",183  "object": "GenerateVideoResponse / GeneratedVideo (Veo operation response)",184  "api_family": "video-generation",185  "description": "Operation.response for Veo. REST shape: response.generateVideoResponse.generatedSamples[].video.uri; SDK GenerateVideosResponse: generated_videos[].video.{uri, video_bytes, mime_type}, rai_media_filtered_count, rai_media_filtered_reasons[].",186  "fields": {187   "response.@type": "type.googleapis.com/google.ai.generativelanguage.v1beta.PredictLongRunningResponse",188   "response.generateVideoResponse.generatedSamples[].video.uri": "https://generativelanguage.googleapis.com/v1beta/files/{id}:download?alt=media",189   "response.generateVideoResponse.raiMediaFilteredCount": "int",190   "response.generateVideoResponse.raiMediaFilteredReasons[]": "string[]",191   "video.mimeType": "video/mp4",192   "video (SDK)": "{uri, video_bytes, mime_type} — reusable as instances[].video for extension"193  },194  "status": [195   "DOCUMENTED",196   "UNVERIFIED"197  ],198  "example": {199   "name": "models/veo-3.1-generate-preview/operations/abc123",200   "done": true,201   "response": {202    "@type": "type.googleapis.com/google.ai.generativelanguage.v1beta.PredictLongRunningResponse",203    "generateVideoResponse": {204     "generatedSamples": [205      {206       "video": {207        "uri": "https://generativelanguage.googleapis.com/v1beta/files/xyz:download?alt=media"208       }209      }210     ]211    }212   }213  },214  "notes": "Example assembled from the Veo guide (jq path) and SDK types; not generated live (cost).",215  "sources": [216   {217    "url": "https://ai.google.dev/gemini-api/docs/veo",218    "retrieved_at": "2026-09-18"219   },220   {221    "url": "https://github.com/googleapis/python-genai/blob/main/google/genai/types.py",222    "retrieved_at": "2026-09-18"223   }224  ]225 },226 {227  "provider": "gemini",228  "object": "VideoGenerationReferenceImage / Image / Video (Veo inputs)",229  "api_family": "video-generation",230  "description": "Input objects for predictLongRunning instances.",231  "fields": {232   "Image": "{inlineData:{mimeType,data}} (docs) | SDK Image {image_bytes, mime_type, gcs_uri}",233   "Video": "{inlineData:{mimeType:'video/mp4',data}} | {uri} from a previous generation",234   "VideoGenerationReferenceImage": "{image: Image, referenceType: 'asset'|'style'}"235  },236  "status": [237   "DOCUMENTED"238  ],239  "example": null,240  "notes": null,241  "sources": [242   {243    "url": "https://ai.google.dev/gemini-api/docs/veo",244    "retrieved_at": "2026-09-18"245   },246   {247    "url": "https://github.com/googleapis/python-genai/blob/main/google/genai/types.py",248    "retrieved_at": "2026-09-18"249   }250  ]251 },252 {253  "provider": "gemini",254  "object": "GeneratedFile / ListGeneratedFilesResponse",255  "api_family": "files",256  "description": "Files generated on behalf of the project (e.g. Veo outputs).",257  "fields": {258   "name": "generatedFiles/{id}",259   "state": "STATE_UNSPECIFIED | GENERATING | GENERATED | FAILED",260   "mimeType": "string",261   "error": "Status",262   "generatedFiles[] / nextPageToken (list)": ""263  },264  "status": [265   "DOCUMENTED",266   "LIVE_VERIFIED"267  ],268  "example": {},269  "notes": "Live list result recorded (empty list expected when no videos were generated).",270  "sources": [271   {272    "url": "https://generativelanguage.googleapis.com/$discovery/rest?version=v1beta",273    "retrieved_at": "2026-09-18"274   },275   {276    "url": "https://ai.google.dev/api/all-methods",277    "retrieved_at": "2026-09-18"278   }279  ]280 },281 {282  "provider": "gemini",283  "object": "GenerateContentResponse (music, Lyria 3)",284  "api_family": "music-generation",285  "description": "Lyria via generateContent: parts with text (lyrics / JSON song structure) and an audio inlineData part.",286  "fields": {287   "candidates[].content.parts[].text": "lyrics / structure",288   "candidates[].content.parts[].inlineData.mimeType": "audio/mpeg (MP3) — documented, not observed",289   "candidates[].content.parts[].inlineData.data": "base64 MP3 44.1 kHz stereo (30 s clip)",290   "usageMetadata": "token counts"291  },292  "status": [293   "DOCUMENTED",294   "PREVIEW",295   "ACCOUNT_RESTRICTED"296  ],297  "example": {298   "error": {299    "code": 429,300    "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: lyria-3-clip\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: lyria-3-clip\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: lyria-3-clip\nPlease retry in 34.145529939s.",301    "status": "RESOURCE_EXHAUSTED",302    "details": [303     {304      "@type": "type.googleapis.com/google.rpc.Help",305      "links": [306       {307        "description": "Learn more about Gemini API quotas",308        "url": "https://ai.google.dev/gemini-api/docs/rate-limits"309       }310      ]311     },312     {313      "@type": "type.googleapis.com/google.rpc.QuotaFailure",314      "violations": [315       {316        "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",317        "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",318        "quotaDimensions": {319         "location": "global",320         "model": "lyria-3-clip"321        }322       },323       {324        "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",325        "quotaId": "GenerateRequestsPerMinutePerProjectPerModel-FreeTier",326        "quotaDimensions": {327         "model": "lyria-3-clip",328         "location": "global"329        }330       },331       {332        "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_input_token_count",333        "quotaId": "GenerateContentInputTokensPerModelPerMinute-FreeTier",334        "quotaDimensions": {335         "location": "global",336         "model": "lyria-3-clip"337        }338       }339      ]340     },341     {342      "@type": "type.googleapis.com/google.rpc.RetryInfo",343      "retryDelay": "34s"344     }345    ]346   }347  },348  "notes": "Not obtainable with this key: lyria-3-clip-preview -> HTTP 429 RESOURCE_EXHAUSTED: You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https:/; lyria-3.5 -> HTTP 429 (no free tier for Lyria 3). Shape from the music-generation guide.",349  "sources": [350   {351    "url": "https://ai.google.dev/gemini-api/docs/music-generation",352    "retrieved_at": "2026-09-18"353   }354  ]355 },356 {357  "provider": "gemini",358  "object": "LiveMusicClientMessage",359  "api_family": "music-generation",360  "description": "Client frame of the BidiGenerateMusic WebSocket (one of setup | clientContent | musicGenerationConfig | playbackControl).",361  "fields": {362   "setup.model": "string",363   "clientContent.weightedPrompts[]": "{text, weight}",364   "musicGenerationConfig": "LiveMusicGenerationConfig",365   "playbackControl": "PLAY|PAUSE|STOP|RESET_CONTEXT"366  },367  "status": [368   "DOCUMENTED",369   "BETA"370  ],371  "example": null,372  "notes": null,373  "sources": [374   {375    "url": "https://ai.google.dev/gemini-api/docs/realtime-music-generation",376    "retrieved_at": "2026-09-18"377   },378   {379    "url": "https://github.com/googleapis/python-genai/blob/main/google/genai/types.py",380    "retrieved_at": "2026-09-18"381   }382  ]383 },384 {385  "provider": "gemini",386  "object": "LiveMusicServerMessage",387  "api_family": "music-generation",388  "description": "Server frame: setupComplete | serverContent.audioChunks[] | filteredPrompt.",389  "fields": {390   "setupComplete": "{}",391   "serverContent.audioChunks[].data": "base64 raw PCM 16-bit 48 kHz stereo",392   "serverContent.audioChunks[].mimeType": "audio/l16;rate=48000;channels=2",393   "serverContent.audioChunks[].sourceMetadata": "{clientContent, musicGenerationConfig}",394   "filteredPrompt": "{text, filteredReason}"395  },396  "status": [397   "DOCUMENTED",398   "BETA",399   "LIVE_VERIFIED"400  ],401  "example": {402   "events": [403    {404     "dir": "server",405     "keys": [406      "setupComplete"407     ]408    },409    {410     "dir": "server",411     "keys": [412      "serverContent"413     ],414     "audioChunk": {415      "mimeType": "audio/l16;rate=48000;channels=2",416      "bytes": 384000,417      "sourceMetadata": {418       "clientContent": {419        "weightedPrompts": [420         {421          "text": "minimal techno",422          "weight": 1423         }424        ]425       },426       "musicGenerationConfig": {427        "temperature": 1,428        "seed": 603898271,429        "bpm": 120430       }431      },432      "n_chunks_in_msg": 1433     }434    },435    {436     "dir": "server",437     "keys": [438      "serverContent"439     ],440     "audioChunk": {441      "mimeType": "audio/l16;rate=48000;channels=2",442      "bytes": 384000,443      "sourceMetadata": {444       "clientContent": {445        "weightedPrompts": [446         {447          "text": "minimal techno",448          "weight": 1449         }450        ]451       },452       "musicGenerationConfig": {453        "temperature": 1,454        "seed": 603898272,455        "bpm": 120456       }457      },458      "n_chunks_in_msg": 1459     }460    }461   ]462  },463  "notes": "Live event sequence recorded 2026-09-18 (2 audio chunks).",464  "sources": [465   {466    "url": "https://ai.google.dev/gemini-api/docs/realtime-music-generation",467    "retrieved_at": "2026-09-18"468   },469   {470    "url": "https://github.com/googleapis/python-genai/blob/main/google/genai/types.py",471    "retrieved_at": "2026-09-18"472   }473  ]474 },475 {476  "provider": "gemini",477  "object": "GenerateContentResponse (TTS audio part)",478  "api_family": "speech-generation",479  "description": "TTS output: single inlineData part with raw PCM (16-bit LE mono 24 kHz; no WAV header — wrap it yourself). Streaming (3.1) delivers many small inlineData chunks (first 1920 bytes = 40 ms) then a final event with finishReason STOP and usage.",480  "fields": {481   "candidates[].content.parts[].inlineData.mimeType": "2.5 models: 'audio/L16;codec=pcm;rate=24000' | 3.1: 'audio/l16; rate=24000; channels=1'",482   "candidates[].content.parts[].inlineData.data": "base64 PCM",483   "candidates[].finishReason": "STOP | OTHER (observed once with no content for multi-speaker)",484   "usageMetadata.candidatesTokensDetails[]": "{modality: AUDIO, tokenCount} — ~25-32 tokens per second observed"485  },486  "status": [487   "DOCUMENTED",488   "PREVIEW",489   "LIVE_VERIFIED"490  ],491  "example": {492   "gemini-3.1-flash-tts-preview": {493    "candidates": [494     {495      "content": {496       "parts": [497        {498         "inlineData": {499          "mimeType": "audio/l16; rate=24000; channels=1",500          "data": "<46080 bytes>"501         }502        }503       ],504       "role": "model"505      },506      "finishReason": "STOP",507      "index": 0508     }509    ],510    "usageMetadata": {511     "promptTokenCount": 3,512     "candidatesTokenCount": 31,513     "totalTokenCount": 34,514     "promptTokensDetails": [515      {516       "modality": "TEXT",517       "tokenCount": 3518      }519     ],520     "candidatesTokensDetails": [521      {522       "modality": "AUDIO",523       "tokenCount": 31524      }525     ],526     "serviceTier": "standard"527    },528    "modelVersion": "gemini-3.1-flash-tts-preview",529    "responseId": "nQeuapDTGrGZ_uMP7a_PwAo"530   },531   "gemini-2.5-flash-preview-tts": {532    "candidates": [533     {534      "content": {535       "parts": [536        {537         "inlineData": {538          "mimeType": "audio/L16;codec=pcm;rate=24000",539          "data": "<38926 bytes, base64 len 51904>"540         }541        }542       ],543       "role": "model"544      },545      "finishReason": "STOP",546      "index": 0547     }548    ],549    "usageMetadata": {550     "promptTokenCount": 3,551     "candidatesTokenCount": 20,552     "totalTokenCount": 23,553     "promptTokensDetails": [554      {555       "modality": "TEXT",556       "tokenCount": 3557      }558     ],559     "candidatesTokensDetails": [560      {561       "modality": "AUDIO",562       "tokenCount": 20563      }564     ],565     "serviceTier": "standard"566    },567    "modelVersion": "gemini-2.5-flash-preview-tts",568    "responseId": "jQWuauOMMvS11MkP9_Sx0Ak"569   },570   "multi_speaker_empty_first_attempt": {571    "candidates": [572     {573      "finishReason": "OTHER",574      "index": 0575     }576    ],577    "usageMetadata": {578     "promptTokenCount": 19,579     "totalTokenCount": 19,580     "promptTokensDetails": [581      {582       "modality": "TEXT",583       "tokenCount": 19584      }585     ],586     "serviceTier": "standard"587    },588    "modelVersion": "gemini-2.5-flash-preview-tts",589    "responseId": "ngeuaoDWO4TV_uMP5sD90AY"590   },591   "sse_stream_summary": {592    "n_events": 26,593    "first": {594     "n_parts": 1,595     "mime": [596      "audio/l16; rate=24000; channels=1"597     ],598     "bytes": [599      1920600     ],601     "finishReason": null,602     "usage": {603      "promptTokenCount": 3,604      "candidatesTokenCount": 2,605      "totalTokenCount": 5,606      "promptTokensDetails": [607       {608        "modality": "TEXT",609        "tokenCount": 3610       }611      ],612      "candidatesTokensDetails": [613       {614        "modality": "AUDIO",615        "tokenCount": 2616       }617      ],618      "serviceTier": "standard"619     }620    },621    "last": {622     "n_parts": 1,623     "mime": [624      null625     ],626     "bytes": [],627     "finishReason": "STOP",628     "usage": {629      "promptTokenCount": 3,630      "candidatesTokenCount": 50,631      "totalTokenCount": 53,632      "promptTokensDetails": [633       {634        "modality": "TEXT",635        "tokenCount": 3636       }637      ],638      "candidatesTokensDetails": [639       {640        "modality": "AUDIO",641        "tokenCount": 50642       }643      ],644      "serviceTier": "standard"645     }646    }647   }648  },649  "notes": "Live examples 2026-09-18 'Say: OK' (base64 replaced by byte counts).",650  "sources": [651   {652    "url": "https://ai.google.dev/gemini-api/docs/speech-generation",653    "retrieved_at": "2026-09-18"654   },655   {656    "url": "https://ai.google.dev/api/generate-content",657    "retrieved_at": "2026-09-18"658   }659  ]660 },661 {662  "provider": "gemini",663  "object": "SpeechConfig",664  "api_family": "speech-generation",665  "description": "generationConfig.speechConfig.",666  "fields": {667   "voiceConfig.prebuiltVoiceConfig.voiceName": "one of 30 voices",668   "multiSpeakerVoiceConfig.speakerVoiceConfigs[]": "{speaker, voiceConfig} (<= 2)",669   "languageCode": "BCP-47 (optional)"670  },671  "status": [672   "DOCUMENTED"673  ],674  "example": null,675  "notes": null,676  "sources": [677   {678    "url": "https://ai.google.dev/api/generate-content",679    "retrieved_at": "2026-09-18"680   }681  ]682 },683 {684  "provider": "gemini",685  "object": "ImageConfig",686  "api_family": "image-generation",687  "description": "generationConfig.imageConfig.",688  "fields": {689   "aspectRatio": "string (14 ratios)",690   "imageSize": "512 | 1K | 2K | 4K"691  },692  "status": [693   "DOCUMENTED"694  ],695  "example": null,696  "notes": null,697  "sources": [698   {699    "url": "https://ai.google.dev/api/generate-content",700    "retrieved_at": "2026-09-18"701   }702  ]703 },704 {705  "provider": "gemini",706  "object": "AudioTranscriptionConfig",707  "api_family": "transcription",708  "description": "generationConfig.audioTranscriptionConfig (discovery 20260918).",709  "fields": {710   "languageCodes[]": "BCP-47",711   "languageHints / languageAuto": "alternative language selection objects",712   "customVocabulary[] / adaptationPhrases[]": "bias terms",713   "mode": "VERBATIM | SMART",714   "diarization": "bool",715   "wordTimestamp": "bool"716  },717  "status": [718   "DOCUMENTED",719   "LIVE_DISCOVERED"720  ],721  "example": null,722  "notes": null,723  "sources": [724   {725    "url": "https://generativelanguage.googleapis.com/$discovery/rest?version=v1beta",726    "retrieved_at": "2026-09-18"727   },728   {729    "url": "https://ai.google.dev/api/generate-content",730    "retrieved_at": "2026-09-18"731   }732  ]733 },734 {735  "provider": "gemini",736  "object": "GenerateContentResponse (transcription)",737  "api_family": "transcription",738  "description": "gemini-3.5-transcribe output via generateContent. LIVE_DISCOVERED: the transcript comes in a part field `audioTranscription` {text, speakerLabel, words[]} (not in the generate-content reference); with diarization/timestamps a plain `text` part field is also present. The Interactions API instead returns word_info annotations {text, speaker, start_offset, end_offset}.",739  "fields": {740   "candidates[].content.parts[].audioTranscription.text": "transcript string",741   "candidates[].content.parts[].audioTranscription.speakerLabel": "'spk:0' … (diarization on)",742   "candidates[].content.parts[].audioTranscription.words[]": "{word, startOffset '0.200s', endOffset '0.500s'} (wordTimestamp on)",743   "candidates[].content.parts[].text": "transcript (present when diarization/timestamps on)",744   "candidates[].content": "{} (empty) when the audio contains no speech",745   "usageMetadata.promptTokensDetails[]": "{modality: AUDIO, tokenCount} — ~25 tokens/s (0.8 s -> 21, 0.5 s -> 13)"746  },747  "status": [748   "DOCUMENTED",749   "LIVE_DISCOVERED",750   "LIVE_VERIFIED"751  ],752  "example": {753   "speech": {754    "candidates": [755     {756      "content": {757       "parts": [758        {759         "audioTranscription": {760          "text": "Okay."761         }762        }763       ],764       "role": "model"765      },766      "finishReason": "STOP",767      "index": 0768     }769    ],770    "usageMetadata": {771     "promptTokenCount": 21,772     "totalTokenCount": 21,773     "promptTokensDetails": [774      {775       "modality": "AUDIO",776       "tokenCount": 21777      }778     ],779     "serviceTier": "standard"780    },781    "modelVersion": "gemini-3.5-transcribe",782    "responseId": "tweuatuLCdWb9MoP4f3G4Ao"783   },784   "diarization_timestamps": {785    "candidates": [786     {787      "content": {788       "parts": [789        {790         "text": "Okay.",791         "audioTranscription": {792          "text": "Okay.",793          "speakerLabel": "spk:0",794          "words": [795           {796            "word": "Okay.",797            "startOffset": "0.200s",798            "endOffset": "0.500s"799           }800          ]801         }802        }803       ],804       "role": "model"805      },806      "finishReason": "STOP",807      "index": 0808     }809    ],810    "usageMetadata": {811     "promptTokenCount": 21,812     "totalTokenCount": 21,813     "promptTokensDetails": [814      {815       "modality": "AUDIO",816       "tokenCount": 21817      }818     ],819     "serviceTier": "standard"820    },821    "modelVersion": "gemini-3.5-transcribe",822    "responseId": "uQeuauDKBNSo9MoPguPVuQI"823   },824   "silence": {825    "candidates": [826     {827      "content": {},828      "finishReason": "STOP",829      "index": 0830     }831    ],832    "usageMetadata": {833     "promptTokenCount": 13,834     "totalTokenCount": 13,835     "promptTokensDetails": [836      {837       "modality": "AUDIO",838       "tokenCount": 13839      }840     ],841     "serviceTier": "standard"842    },843    "modelVersion": "gemini-3.5-transcribe",844    "responseId": "jwWuarWgFe2c_uMPnpfUyAk"845   }846  },847  "notes": "Live examples 2026-09-18 (input = 0.8 s TTS 'OK' WAV and 0.5 s silence).",848  "sources": [849   {850    "url": "https://ai.google.dev/gemini-api/docs/transcribe",851    "retrieved_at": "2026-09-18"852   },853   {854    "url": "https://ai.google.dev/api/generate-content",855    "retrieved_at": "2026-09-18"856   }857  ]858 },859 {860  "provider": "gemini",861  "object": "GenerateContentBatch",862  "api_family": "batch",863  "description": "Batch resource (Operation.metadata / update body).",864  "fields": {865   "model": "models/{m}",866   "name": "batches/{id} [RO]",867   "displayName": "string (required)",868   "inputConfig": "{fileName} | {requests:{requests:[InlinedRequest]}}",869   "output": "GenerateContentBatchOutput [RO]",870   "createTime/updateTime/endTime": "RFC 3339 [RO]",871   "batchStats": "BatchStats [RO]",872   "state": "BatchState [RO]",873   "priority": "int64 string",874   "webhookConfig.uris[]": "string[]"875  },876  "status": [877   "DOCUMENTED",878   "ACCOUNT_RESTRICTED"879  ],880  "example": null,881  "notes": null,882  "sources": [883   {884    "url": "https://ai.google.dev/api/batch-api",885    "retrieved_at": "2026-09-18"886   },887   {888    "url": "https://generativelanguage.googleapis.com/$discovery/rest?version=v1beta",889    "retrieved_at": "2026-09-18"890   }891  ]892 },893 {894  "provider": "gemini",895  "object": "BatchStats",896  "api_family": "batch",897  "description": "Counters on the batch.",898  "fields": {899   "requestCount": "int64 string",900   "successfulRequestCount": "int64 string",901   "failedRequestCount": "int64 string",902   "pendingRequestCount": "int64 string"903  },904  "status": [905   "DOCUMENTED"906  ],907  "example": null,908  "notes": null,909  "sources": [910   {911    "url": "https://ai.google.dev/api/batch-api",912    "retrieved_at": "2026-09-18"913   }914  ]915 },916 {917  "provider": "gemini",918  "object": "GenerateContentBatchOutput / InlinedResponse",919  "api_family": "batch",920  "description": "Operation.response when done: inlinedResponses (inline input) or responsesFile (file input).",921  "fields": {922   "@type": "type.googleapis.com/google.ai.generativelanguage.v1beta.GenerateContentBatchOutput",923   "inlinedResponses.inlinedResponses[].metadata": "echo of request metadata (key)",924   "inlinedResponses.inlinedResponses[].response": "GenerateContentResponse",925   "inlinedResponses.inlinedResponses[].error": "Status",926   "responsesFile": "files/{id} (JSONL, one GenerateContentResponse or status object per line, same order as input; download /download/v1beta/{file}:download?alt=media)"927  },928  "status": [929   "DOCUMENTED"930  ],931  "example": null,932  "notes": "Live final Operation of the 2-request inline batch (if it completed within 5 min).",933  "sources": [934   {935    "url": "https://ai.google.dev/gemini-api/docs/batch-api",936    "retrieved_at": "2026-09-18"937   },938   {939    "url": "https://ai.google.dev/api/batch-api",940    "retrieved_at": "2026-09-18"941   }942  ]943 },944 {945  "provider": "gemini",946  "object": "EmbedContentBatch / EmbedContentBatchOutput",947  "api_family": "batch",948  "description": "Embedding batch resource and output (inlinedResponses[].response = EmbedContentResponse {embedding:{values[]}} or responsesFile).",949  "fields": {950   "inputConfig.requests.requests[].request": "EmbedContentRequest",951   "output.inlinedResponses.inlinedResponses[].response.embedding.values[]": "float[]",952   "batchStats": "EmbedContentBatchStats",953   "state": "BatchState"954  },955  "status": [956   "DOCUMENTED",957   "ACCOUNT_RESTRICTED"958  ],959  "example": {960   "error": {961    "code": 400,962    "message": "Precondition check failed.",963    "status": "FAILED_PRECONDITION"964   }965  },966  "notes": null,967  "sources": [968   {969    "url": "https://ai.google.dev/api/batch-api",970    "retrieved_at": "2026-09-18"971   },972   {973    "url": "https://generativelanguage.googleapis.com/$discovery/rest?version=v1beta",974    "retrieved_at": "2026-09-18"975   }976  ]977 },978 {979  "provider": "gemini",980  "object": "TunedModel",981  "api_family": "tuning",982  "description": "Tuned model resource.",983  "fields": {984   "name": "tunedModels/{id} [RO]",985   "displayName": "<= 40 chars",986   "description": "string",987   "state": "CREATING | ACTIVE | FAILED [RO]",988   "createTime/updateTime": "[RO]",989   "tuningTask": "TuningTask",990   "readerProjectNumbers[]": "int64[]",991   "baseModel | tunedModelSource": "source model (oneof)",992   "temperature/topP/topK": "defaults for generation"993  },994  "status": [995   "DOCUMENTED",996   "LEGACY"997  ],998  "example": null,999  "notes": null,1000  "sources": [1001   {1002    "url": "https://ai.google.dev/api/tuning",1003    "retrieved_at": "2026-09-18"1004   },1005   {1006    "url": "https://generativelanguage.googleapis.com/$discovery/rest?version=v1beta",1007    "retrieved_at": "2026-09-18"1008   }1009  ]1010 },1011 {1012  "provider": "gemini",1013  "object": "TuningTask / TuningSnapshot / Dataset / Hyperparameters",1014  "api_family": "tuning",1015  "description": "Tuning job description and metrics.",1016  "fields": {1017   "tuningTask.startTime/completeTime": "[RO]",1018   "tuningTask.snapshots[]": "{step, epoch, meanLoss, computeTime}",1019   "tuningTask.trainingData.examples.examples[]": "{textInput, output}",1020   "tuningTask.hyperparameters": "{learningRate | learningRateMultiplier, epochCount, batchSize}"1021  },1022  "status": [1023   "DOCUMENTED",1024   "LEGACY"1025  ],1026  "example": null,1027  "notes": null,1028  "sources": [1029   {1030    "url": "https://ai.google.dev/api/tuning",1031    "retrieved_at": "2026-09-18"1032   }1033  ]1034 },1035 {1036  "provider": "gemini",1037  "object": "CreateTunedModelMetadata",1038  "api_family": "tuning",1039  "description": "Operation.metadata while tuning.",1040  "fields": {1041   "tunedModel": "tunedModels/{id}",1042   "totalSteps": "int",1043   "completedSteps": "int",1044   "completedPercent": "float",1045   "snapshots[]": "TuningSnapshot"1046  },1047  "status": [1048   "DOCUMENTED",1049   "LEGACY"1050  ],1051  "example": null,1052  "notes": null,1053  "sources": [1054   {1055    "url": "https://ai.google.dev/api/tuning",1056    "retrieved_at": "2026-09-18"1057   }1058  ]1059 },1060 {1061  "provider": "gemini",1062  "object": "Permission",1063  "api_family": "tuning",1064  "description": "ACL entry on a tuned model (or corpus).",1065  "fields": {1066   "name": "tunedModels/{m}/permissions/{p} [RO]",1067   "granteeType": "USER | GROUP | EVERYONE",1068   "emailAddress": "string (not for EVERYONE)",1069   "role": "OWNER | WRITER | READER"1070  },1071  "status": [1072   "DOCUMENTED",1073   "LEGACY"1074  ],1075  "example": null,1076  "notes": null,1077  "sources": [1078   {1079    "url": "https://generativelanguage.googleapis.com/$discovery/rest?version=v1beta",1080    "retrieved_at": "2026-09-18"1081   }1082  ]1083 }1084]1085