Skip to content
, ,

Gemini Decisions API Guide: Gemini Decision 1 Pricing, Answer Types and Python Example

11–17 minutes
Woman at a developer desk holding a tablet with the Gemini logo, hook 1,000 answers one API call

Google just gave Gemini a second job. Instead of writing answers, the new Gemini Decisions API makes choices: yes or no, which option, what score. It launched on 11 November 2026 with a new model called Gemini Decision 1.

It reads your input once, answers up to 1,000 questions in a single pass, and charges only for input tokens. Output is free.

This guide covers how it works, the three answer types, real cost maths, working Python and REST code, every limit, how it compares with OpenAI’s Decisions API, and the errors you are likely to hit.

TL;DR

  • What: a closed-set decision endpoint in the Gemini API (client.decisions.create), powered by gemini-decision-1.
  • Answer types: noul (yes/no probability), choice (2-255 options) and score (ordered rubric).
  • Price: $0.10 per 1M input tokens, $0 output. Shared input is billed once per request, however many questions you ask.
  • Speed (Google-reported): 50-100 ms model compute, 150-250 ms end to end, nearly flat from 1 to 100 questions.
  • Inputs: text, images, audio, video and PDFs, up to 262,144 tokens.
  • Free tier: yes, in Google AI Studio (200 requests per minute, 10,000 per day).
  • Not supported: context caching, Batch API, chat history. Google Cloud support is “coming soon”.

What the Gemini Decisions API Is

Most app logic does not need an essay. It needs a quick call: is this message spam, which model should answer this prompt, how bad is this damage photo. Developers usually force a chat model to return JSON for that, which is slow and wastes output tokens.

The Decisions API is built only for these bounded choices. Gemini Decision 1 scores every candidate answer in one forward pass instead of generating text token by token. You get probabilities and a confidence score back, not prose.

It was announced on 11 November 2026 by Google DeepMind product manager Min Choi and principal scientist Felix Yu, and promoted the same day by Sundar Pichai on X.

Item Detail
Launch date 11 November 2026
Model ID gemini-decision-1 (the only model on this endpoint)
Where Gemini Developer API (v1beta) and Google AI Studio playground
SDKs google-genai 3.2+ (Python), @google/genai 3.2+ (JavaScript)
Input One shared input: text, image, audio, video, PDF
Questions 1 to 1,000 independent questions per request
Output Probabilities, chosen option or score, confidence (0-1). No text.
Also on OpenRouter (google/gemini-decision-1); LangChain, Vercel AI SDK, LiteLLM, Pydantic AI, Pipecat, LiveKit and OpenCode integrations rolling out

Note: Vertex AI is not mentioned. Google says “Gemini in Google Cloud” support is coming soon and has a sign-up form for updates.

The Three Answer Types

Every question in a request has a type, plain-English instructions and, for two of the types, criteria. Questions cannot see each other, so they run in parallel.

Type You send You get back Good for
noul (yes/no) Instructions, optional true_description / false_description noul = probability of yes (0.01-0.99), confidence Spam checks, policy checks, “is this a bug report?”
choice Instructions, criteria mapping each option key to a description (2-255 options) Winning choice, probabilities for every option, confidence Ticket routing, tool selection, model routing
score Instructions, criteria as an ordered list of levels, lowest first (2-255, 2-10 recommended) score (weighted average of level indexes from 0), legend, probabilities, confidence Severity, urgency, quality grading

Yes, the yes/no type really is spelled noul in Google’s docs and SDK. It is not a typo you need to fix.

Tip: a score of 1.4 on a three-level rubric means “between level 1 and level 2”, leaning to 1. Round it or set your own cut-offs in code.

Pricing and Cost per Decision

The pricing is simple. You pay $0.10 per 1M input tokens and nothing for output, thinking, audio transcription or OCR.

The shared input is billed once per request. Each extra question only adds its own instruction and criteria tokens.

Scenario Approx. tokens Cost per request Cost per 1M requests
Short support ticket, 1 yes/no question 300 $0.00003 $30
1,000-token document, 1 question 1,050 $0.000105 $105
Same document, 20 questions (~30 tokens each) 1,650 $0.000165 $165
Same document, 20 separate requests 21,000 $0.0021 $2,100

These are my own estimates from the published price, not Google figures. The lesson is clear though: batch your questions into one request, because the shared input is the expensive part.

Google also says the API was nearly 5x cheaper than Gemini 3.5 Flash-Lite through the Interactions API across its internal benchmark suite (vendor-reported). For the rest of Google’s prices, see my Gemini API pricing and free tier guide.

Warning: on the free tier, Google uses your inputs to improve its products. Use a paid key for customer data.

How to Use It in Python, Step by Step

  1. Get an API key. Open Google AI Studio, go to API keys and create one. The free tier works for testing.
  2. Install or upgrade the SDK. Run pip install -U google-genai. You need version 3.2 or later.
  3. Set the key. Export GEMINI_API_KEY in your shell. The SDK reads it automatically.
  4. Create the client with v1beta. The endpoint only exists on v1beta, so pass it in http_options.
  5. Write your questions. One decision per question, full wording in instructions.
  6. Act on confidence. Run the code path when confidence is high, escalate when it is not.

The minimal example (from Google’s docs)

from google import genai

client = genai.Client(http_options={"api_version": "v1beta"})

result = client.decisions.create(
    model="gemini-decision-1",
    input="The blue mug I ordered on Monday arrived cracked on Wednesday.",
    questions={
        "is_damaged": {
            "type": "noul",
            "instructions": "Did the item arrive damaged?",
        },
    },
)

answer = result.answers["is_damaged"]
print(f"P(yes)={answer.noul:.2f} confidence={answer.confidence:.2f}")

Three questions at once, with routing

This is the pattern most apps will use: one support message, three decisions, and a confidence threshold that sends unclear cases to a person.

from google import genai

client = genai.Client(http_options={"api_version": "v1beta"})

ticket = "Charged twice for my Pro plan this month. Please refund one payment."

result = client.decisions.create(
    model="gemini-decision-1",
    input=ticket,
    questions={
        "is_billing": {
            "type": "noul",
            "instructions": "Is this message about a payment, invoice or refund?",
        },
        "team": {
            "type": "choice",
            "instructions": "Which team should handle this message?",
            "criteria": {
                "billing": "Payments, refunds, invoices, plan changes",
                "tech": "Bugs, crashes, login or setup problems",
                "sales": "New purchases, quotes, upgrades for teams",
                "other": "Anything that fits none of the above",
            },
        },
        "urgency": {
            "type": "score",
            "instructions": "How urgent is this for the customer?",
            "criteria": ["Low: no impact", "Medium: some impact", "High: money or access at risk"],
        },
    },
)

a = result.answers
if a["team"].confidence >= 0.85:
    print("Route to", a["team"].choice)
else:
    print("Send to a human, probabilities:", a["team"].probabilities)
print("Urgency score:", round(a["urgency"].score, 2))
print("Tokens billed:", result.usage.total_input_tokens)

The question keys (is_billing, team, urgency) are just labels for matching answers. The model never sees them, so put the full question in instructions.

Images, audio, video and PDFs

The input field accepts a string, one content block or a list of blocks. Block types are text, image, audio, video and document (PDF), using the same Content format as Google’s Interactions API.

  • Inline data: up to 100 MB per request (50 MB for PDFs).
  • URLs: up to 15 MB per file, must be public or signed. YouTube links and gs:// URIs are not supported.
  • Image detail: set resolution to low, medium, high or ultra_high. Lower resolution means fewer tokens and a lower bill.
  • Text blocks: adjacent text blocks are joined with no separator, so add your own line breaks.

Google’s own blog example sends a breakroom photo and asks three things at once: is there a spill, which cleanup action fits, and how severe it is. The AI Studio playground is the quickest way to copy the exact block format for your media type.

REST and JavaScript Versions

No SDK? The REST call is a single POST to https://generativelanguage.googleapis.com/v1beta/decisions with the same body.

curl -s https://generativelanguage.googleapis.com/v1beta/decisions \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-decision-1",
    "input": "Order arrived cracked.",
    "questions": {
      "is_damaged": {"type": "noul", "instructions": "Did the item arrive damaged?"}
    }
  }'

In Node.js, install @google/genai@latest and create the client with new GoogleGenAI({ apiVersion: 'v1beta' }). Then call ai.decisions.create({ model, input, questions }) and read result.answers.is_damaged.noul.

A typical response looks like this:

{
  "answers": {
    "is_damaged": {"type": "noul", "noul": 0.99, "confidence": 0.99}
  },
  "usage": {
    "total_input_tokens": 100,
    "input_tokens_by_modality": [{"modality": "text", "tokens": 100}],
    "total_output_tokens": 0,
    "total_tokens": 100
  }
}

New to the SDK in general? My Gemini API Python tutorial covers keys, models and basic calls first.

Limits, Rate Limits and Supported Inputs

Limit Value
Questions per request 1 to 1,000 (also bounded by the context window)
Context window 262,144 tokens (shared input plus all questions)
Options per choice 2 to 255
Levels per score 2 to 255 (2 to 10 recommended)
Question key 1-64 ASCII characters, [A-Za-z0-9_-]+
Option key 1-128 characters (max 512 UTF-8 bytes), no leading or trailing spaces
Question instructions Text only (no images inside instructions)
Inline data 100 MB per request, 50 MB for PDFs
External URL 15 MB per file
Free tier rate limit 200 requests/min, 50,000 tokens/min, 10,000 requests/day
Tier 1 rate limit 1,500 requests/min, 1M tokens/min, 50,000 requests/day
Not supported Context caching, Batch API, Flex/Priority inference, conversation history

Rate limits are from Google’s rate-limit table as summarised by developer Flavio Copes; check your own project’s quota page, since limits change by tier. My LLM API rate limits guide explains how tiers work across providers.

What Google Already Uses It For

Google listed four internal users at launch. These are Google’s own claims, not independent results.

Product What the Decisions API does Reported result
Gemini Notebook Real-time router choosing model tier and thinking level per query Up to 40% lower latency on everyday queries
Stitch rapid canvas Applies voice or tap edits to playable wireframes Edits apply “almost instantly”
CC (Google Labs) Picks an emoji reaction from 200+ options A fraction of a second
Google Search Safety layer spotting adversarial content in MCP tools “High efficacy” inside the latency budget

Other natural fits: moderation, lead scoring, routing prompts between cheap and expensive models, checking agent tool calls before they run, and grading RAG context for relevance.

Gemini vs OpenAI Decisions API vs Structured Outputs

OpenAI shipped its own Decisions API on GPT-6 Luna in October, and I covered it in my OpenAI Decisions API guide. Here is how the two compare, plus the old JSON approach.

Feature Gemini Decisions API OpenAI Decisions API Structured Outputs (any chat model)
Model gemini-decision-1 gpt-6-luna Any JSON-capable model
Input price $0.10 / 1M $0.10 / 1M ($0.01 cached) Model rate
Output price $0 $0 Model rate, plus thinking tokens
Questions per request 1,000 400 As many as your schema holds
Answer types noul, choice, score predicate, choice, score, refusal Anything, including free text
Inputs Text, image, audio, video, PDF Text, JSON, images Depends on model
Context 262,144 tokens ~1.1M (OpenRouter listing) Depends on model
Caching No Yes Usually yes
Calibrated probabilities Yes Yes No (unless you use logprobs)
Free tier Yes (AI Studio) No Varies
  • Pick Gemini when inputs include audio, video or PDFs, when you ask many questions per item, or when you want a free tier to prototype.
  • Pick OpenAI when a long fixed prompt repeats on every call (caching cuts it to $0.01) or you need inputs above 262K tokens.
  • Use Structured Outputs when you need to extract open values like names, dates or totals. My structured outputs guide covers that across Claude, OpenAI and Gemini.

Accuracy Tips From Google’s Docs

  • One thing per question. Split “is it urgent and about billing?” into two questions.
  • Phrase positively. Ask “Is the item intact?” and compute the negative as 1 - noul in code.
  • Do maths in code. Compare dates and numbers yourself, then pass the result as input.
  • Send only what matters. Unrelated fields in the input lower accuracy.
  • Add a catch-all. choice always spreads probability across your options, even for junk input. An other option or a confidence check stops forced wrong answers.
  • Use non-positional keys. Option keys are sorted alphabetically, so name them by meaning, not “a, b, c”.
  • Keep score levels linear. The score is an index average, so uneven gaps distort it.
  • Calibrate thresholds. Label a few hundred real inputs by hand, then pick the confidence where errors become acceptable.

Warning: treat input as untrusted. Text inside a ticket or PDF can try to steer the answer, so keep a human or a second check in front of anything that moves money or deletes data.

Troubleshooting Common Errors

Problem Likely cause Fix
'Client' object has no attribute 'decisions' Old SDK pip install -U google-genai (3.2+); in Node use @google/genai@latest
404 or method not found Client is on the default v1 API Pass api_version: "v1beta"
HTTP 400 naming a rule Over 1,000 questions, over 262,144 tokens, bad key characters, or fewer than 2 options Read the message; shorten keys to [A-Za-z0-9_-], split large requests
HTTP 400 with code: "safety" Input safety filter (also prohibited_content, blocklist, image_safety, content_blocked) Log and route the item to a human; do not retry unchanged
URL input rejected YouTube or gs:// link, private URL, or file over 15 MB Use a public or signed HTTPS URL, or send inline data
429 Too Many Requests Free tier limits (200/min, 10,000/day) Back off and retry, batch more questions per call, or enable billing
Confident but wrong choice No option fits the input Add an other option and check confidence
Score never hits the top level Uneven or overlapping rubric levels Make levels short, distinct and evenly spaced

For general Gemini API errors like invalid keys or region blocks, see my Gemini API errors fix guide.

My Take

This is one of the most useful launches of the month for anyone building agents. Routing, guardrails and tool selection are the hidden glue of every AI app, and they have been running on chat models that were never built for them.

The two numbers that matter are free output and 1,000 questions per pass. That makes it realistic to check every agent step against a list of policies without doubling your bill or your latency.

The gaps are real. There are no published per-benchmark scores yet, no caching, and no Vertex AI support, so enterprise teams on Google Cloud have to wait. I would prototype on the free tier now, measure accuracy on your own labelled data, and keep a fallback to a reasoning model for low-confidence cases.

If you already use OpenAI’s version, the choice mostly comes down to media types and caching. For multimodal inputs, Google has the edge today. For function-calling agents that need the next step, pair this with my Gemini function calling tutorial.

FAQ

Is the Gemini Decisions API free?

There is a no-cost tier in Google AI Studio for prototyping, limited to 200 requests per minute and 10,000 per day. Paid use costs $0.10 per 1M input tokens with no output charge.

What is Gemini Decision 1?

It is the model behind the Decisions API, with the ID gemini-decision-1. It scores candidate answers in one forward pass instead of generating text, so it returns probabilities rather than sentences.

Why is the yes/no type called “noul”?

That is simply the name Google uses in its API and SDK for yes/no questions. Use "type": "noul" exactly as written, and read the probability from the noul field.

Can it read images, audio and PDFs?

Yes. The shared input can mix text, images, audio, video and PDFs, up to 262,144 tokens. Inline data can be up to 100 MB per request, or 50 MB for PDFs.

Is it available on Vertex AI?

Not at launch. It runs on the Gemini Developer API and Google AI Studio, and Google says Google Cloud support is coming soon.

Can questions depend on each other?

No. All questions in a request are independent and cannot see each other’s answers. If one answer decides the next question, send a second request.

How fast is it?

Google reports a median of 50-100 ms of model compute and 150-250 ms end to end, staying nearly flat from 1 to 100 questions. These are vendor numbers, so test with your own inputs and region.

Should I replace Structured Outputs with it?

Only for closed choices like yes/no, categories and scores. Keep Structured Outputs for extracting open values such as names, prices or dates.

Sources

  • Google blog: “Gemini Decisions API” by Min Choi and Felix Yu, 11 November 2026 (blog.google)
  • Google AI Studio docs: Decisions API quickstart, limits and error codes (aistudio.google.com/docs/decisions-api)
  • Sundar Pichai and @Google launch posts on X, 11 November 2026
  • Philipp Schmid, “Fast multimodal control flow with the Gemini Decisions API”, DEV Community
  • Flavio Copes, “How to use the Gemini Decisions API” (request/response format, rate-limit summary)
  • OpenRouter model page: google/gemini-decision-1
Free weekly email

Get new AI guides every week

One short weekly email with our newest local AI, ComfyUI and AI tool guides. No spam, no pop-ups, just the good stuff.

Free. Unsubscribe anytime in one click. We only use your email to send this newsletter. See our privacy policy.

Woman at a developer desk holding a tablet with the Gemini logo, hook 1,000 answers one API call