Gemini 3.7 Flash
by google · family gemini
Facts
| Release date | 2026-08-13 |
|---|---|
| Retired date | — |
| Knowledge cutoff | 2026-03-31 |
| Context (max) | 1,048,576 |
| Max output | 65,536 |
| Modalities | text, image → text |
| Aliases | — |
| Open weights | no |
| Description | Flash flagship; minimal thinking level returns an error. |
Unknown values are shown as —.
Intelligence Index v4.1.1: 56 · high effort · Source: Artificial Analysis (accessed 2026-08-20)
Offerings
| Provider | Wire ID | Variant | Endpoint | Protocol | Status | Price (USD / Mtok) | Reasoning |
|---|---|---|---|---|---|---|---|
| Google Gemini API | gemini-3.7-flash | flash | generate-content | google-generate-content | ga | 0.75 / 3.75 | effort · default on · mandatory · returns thought_parts · round-trips thought_signature |
| Google Vertex AI | gemini-3.7-flash | flash | generate-content | google-generate-content | ga | 0.75 / 3.75 | effort · default on · mandatory · returns thought_parts · round-trips thought_signature |
| OpenCode Zen | gemini-3.7-flash | flash | chat-completions | openai-chat | ga | 1.50 / 7.50 | effort · default on · returns reasoning_content · round-trips reasoning_content |
| OpenRouter | google/gemini-3.7-flash | flash | chat-completions | openai-chat | ga | 0.38 / 1.88 | effort · default on · mandatory · returns reasoning_content · round-trips reasoning_content |
Reasoning controls
Google Gemini API· gemini-3.7-flash· generate-content effort
generationConfig.thinkingConfig.thinkingLevel lowmedium●high
effort · default on · mandatory · returns thought_parts · round-trips thought_signature
Google Vertex AI· gemini-3.7-flash· generate-content effort
generationConfig.thinkingConfig.thinkingLevel lowmedium●high
effort · default on · mandatory · returns thought_parts · round-trips thought_signature
OpenCode Zen· gemini-3.7-flash· chat-completions effort
reasoning.effort nonelowmedium●highxhighmax
effort · default on · returns reasoning_content · round-trips reasoning_content
OpenRouter· google/gemini-3.7-flash· chat-completions effort
reasoning.effort lowmedium●highxhighmax
effort · default on · mandatory · returns reasoning_content · round-trips reasoning_content
Example requests
Google Gemini API · google-generate-content · gemini-3.7-flash
curl 'https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent' \
-H 'Content-Type: application/json' \
-H 'x-goog-api-key: <YOUR_API_KEY>' \
-d '{
"contents": [
{
"parts": [
{
"text": "Tell me about the weather."
}
]
}
],
"generationConfig": {
"thinkingConfig": {
"thinkingLevel": "medium"
}
}
}'Python (requests)
import requests
resp = requests.post(
"https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent",
headers={
"Content-Type": "application/json",
"x-goog-api-key": "<YOUR_API_KEY>"
},
json={
"contents": [
{
"parts": [
{
"text": "Tell me about the weather."
}
]
}
],
"generationConfig": {
"thinkingConfig": {
"thinkingLevel": "medium"
}
}
},
)
print(resp.json())TypeScript (fetch)
const resp = await fetch("https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-goog-api-key": "<YOUR_API_KEY>"
},
body: JSON.stringify({
"contents": [
{
"parts": [
{
"text": "Tell me about the weather."
}
]
}
],
"generationConfig": {
"thinkingConfig": {
"thinkingLevel": "medium"
}
}
}),
})
console.log(await resp.json())- ⚠ Responses include
thought_signatureartifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
Google Vertex AI · google-generate-content · gemini-3.7-flash
curl 'https://{region}-aiplatform.googleapis.com/v1/projects/{project}/locations/{region}/publishers/google/models/gemini-3.7-flash:generateContent' \
-H 'Authorization: Bearer <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"contents": [
{
"parts": [
{
"text": "Tell me about the weather."
}
]
}
],
"generationConfig": {
"thinkingConfig": {
"thinkingLevel": "medium"
}
}
}'Python (requests)
import requests
resp = requests.post(
"https://{region}-aiplatform.googleapis.com/v1/projects/{project}/locations/{region}/publishers/google/models/gemini-3.7-flash:generateContent",
headers={
"Authorization": "Bearer <YOUR_API_KEY>",
"Content-Type": "application/json"
},
json={
"contents": [
{
"parts": [
{
"text": "Tell me about the weather."
}
]
}
],
"generationConfig": {
"thinkingConfig": {
"thinkingLevel": "medium"
}
}
},
)
print(resp.json())TypeScript (fetch)
const resp = await fetch("https://{region}-aiplatform.googleapis.com/v1/projects/{project}/locations/{region}/publishers/google/models/gemini-3.7-flash:generateContent", {
method: "POST",
headers: {
"Authorization": "Bearer <YOUR_API_KEY>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"contents": [
{
"parts": [
{
"text": "Tell me about the weather."
}
]
}
],
"generationConfig": {
"thinkingConfig": {
"thinkingLevel": "medium"
}
}
}),
})
console.log(await resp.json())- ⚠ Responses include
thought_signatureartifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
OpenCode Zen · openai-chat · gemini-3.7-flash
curl 'https://opencode.ai/zen/v1/chat/completions' \
-H 'Authorization: Bearer <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3.7-flash",
"messages": [
{
"role": "user",
"content": "Tell me about the weather."
}
],
"reasoning": {
"effort": "medium"
}
}'Python (requests)
import requests
resp = requests.post(
"https://opencode.ai/zen/v1/chat/completions",
headers={
"Authorization": "Bearer <YOUR_API_KEY>",
"Content-Type": "application/json"
},
json={
"model": "gemini-3.7-flash",
"messages": [
{
"role": "user",
"content": "Tell me about the weather."
}
],
"reasoning": {
"effort": "medium"
}
},
)
print(resp.json())TypeScript (fetch)
const resp = await fetch("https://opencode.ai/zen/v1/chat/completions", {
method: "POST",
headers: {
"Authorization": "Bearer <YOUR_API_KEY>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"model": "gemini-3.7-flash",
"messages": [
{
"role": "user",
"content": "Tell me about the weather."
}
],
"reasoning": {
"effort": "medium"
}
}),
})
console.log(await resp.json())- ⚠ Responses include
reasoning_contentartifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
OpenRouter · openai-chat · google/gemini-3.7-flash
curl 'https://openrouter.ai/api/v1/chat/completions' \
-H 'Authorization: Bearer <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"model": "google/gemini-3.7-flash",
"messages": [
{
"role": "user",
"content": "Tell me about the weather."
}
],
"reasoning": {
"effort": "medium"
}
}'Python (requests)
import requests
resp = requests.post(
"https://openrouter.ai/api/v1/chat/completions",
headers={
"Authorization": "Bearer <YOUR_API_KEY>",
"Content-Type": "application/json"
},
json={
"model": "google/gemini-3.7-flash",
"messages": [
{
"role": "user",
"content": "Tell me about the weather."
}
],
"reasoning": {
"effort": "medium"
}
},
)
print(resp.json())TypeScript (fetch)
const resp = await fetch("https://openrouter.ai/api/v1/chat/completions", {
method: "POST",
headers: {
"Authorization": "Bearer <YOUR_API_KEY>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"model": "google/gemini-3.7-flash",
"messages": [
{
"role": "user",
"content": "Tell me about the weather."
}
],
"reasoning": {
"effort": "medium"
}
}),
})
console.log(await resp.json())- ⚠ Responses include
reasoning_contentartifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).