Skip to main content

Gemini 3.7 Flash is Google's high-speed chat model for everyday coding, agentic tool use and multi-step tasks, through an OpenAI-compatible API. It reads up to 1,048,576 tokens and replies up to 65,536, with three reasoning-effort levels.

Input $0.675Output $3.375per 1 million tokens10% below the publisher's list priceCached input $0.0675Google official priceInput $0.75Output $3.75

Workbench

Send a request

Quickstart

Examples use the selected endpoint’s public parameter definitions. Replace the API key and example media, then send the request from your server.

SDKs & integrations
POSThttps://api.spicyapi.ai/v1/chat/completions

API authentication

Keep the API key in the server environment variable SPICY_API_KEY. Use Bearer authentication and Content-Type: application/json for JSON requests.

Authorization: Bearer $SPICY_API_KEY
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
  -H "Authorization: Bearer $SPICY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "model": "google/gemini-3.7-flash/chat",
  "messages": [
    {
      "role": "user",
      "content": "Summarise the following release notes into three bullet points."
    }
  ],
  "stream": true
}' \
  | jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'

Generated from this model’s input schema — the same one the API validates every request against.

Keep one Idempotency-Key for each logical request. After a network interruption, do not automatically resend with a new key; retain request_id to investigate the accepted request. Idempotency does not replay an earlier chat stream.

Input parameters

Place the model parameters directly in the JSON request body alongside model. This endpoint does not use an input wrapper.

messagesarray<object>Required

Ordered turns, oldest first. Content is a string, or an array of text, image_url and video_url parts. Video is sent as an uploaded file, and the video in one request can total 14 MB. Put the task rules and the tool contract in the system message and append one turn at a time.

Default
Not specified
Constraints
minItems:1
response_formatobjectOptional

Ask for a JSON object and name every key in the system message - this is how extraction results come back parseable.

Default
Not specified
tool_choicestring | objectOptional

auto, none, required, or an object naming one function.

Default
Not specified
toolsarray<object>Optional

Up to 128 function definitions per request.

Default
Not specified
Constraints
maxItems:128
top_pnumberOptional

0.01 to 1. Adjust this or temperature, never both in the same comparison.

Default
1
Constraints
minimum:0.01
maximum:1
temperaturenumberOptional

0 to 2, default 1. Google recommends keeping Gemini 3 models at the default 1.0 - lower values can make the model loop or degrade - so shape structured output with response_format and the system message instead.

Default
1
Constraints
minimum:0
maximum:2
seedintegerOptional

Any integer. The same seed with an otherwise identical request makes replies repeat closely, so you can change one thing at a time and compare fairly; it does not guarantee identical output. No default: each request draws fresh. No effect on price.

Default
Not specified
stopstring | arrayOptional

Up to 4 sequences, as a string or an array. The reply ends as soon as the model writes one of them, and the matched text itself is left out. No default. It does not change the rate; a reply cut short is billed only for the tokens it produced.

Default
Not specified
Constraints
minLength:1
minItems:1
maxItems:4
reasoning_effortstringOptional

minimal, low, medium or high; medium is the default. Routine steps run fine on low, and the step that has to be right can be raised to high on its own.

Default
"medium"
Allowed values
"minimal""low""medium""high"
max_tokensintegerOptional

Caps the reply at 65,536; the default is 16,384. Thinking tokens come out of this same budget, so a very small cap can be spent on deliberation before the answer starts and return an empty string. Leave real room, or lower reasoning_effort when the reply should be short.

Default
16384
Constraints
minimum:1
maximum:65536

Read the result

With stream set to false, the request returns the completed chat response directly. Read choices[].message; no task polling is needed. Set stream to true when your client supports Server-Sent Events.

Completed response example
{
  "id": "chatcmpl_example",
  "object": "chat.completion",
  "created": 1788652800,
  "model": "google/gemini-3.7-flash/chat",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Here is a concise summary of the release notes."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 32,
    "completion_tokens": 14,
    "total_tokens": 46
  }
}

The response example is illustrative. usage reports token counts; token counts and charges depend on your actual request.

SDKs & integrations

Use SpicyAPI in your app, terminal, AI assistant or visual workflow. Choose a setup guide below.

Use it in SillyTavern and roleplay apps

In SillyTavern, RisuAI, Agnai or any app with an OpenAI-compatible setting, paste the base URL below and your API key, then pick google/gemini-3.7-flash/chat as the model. Browser calls are allowed, and sliders this model does not take are ignored instead of rejected.

Base URL: https://api.spicyapi.ai/v1
Model: google/gemini-3.7-flash/chat

Use it in ComfyUI

Install the SpicyAPI nodes from ComfyUI Manager or with the command below, then pick google/gemini-3.7-flash/chat in the SpicyAPI Chat node to use this model inside a ComfyUI graph.

cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi