<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hassann</title>
    <description>The latest articles on DEV Community by Hassann (@hassann).</description>
    <link>https://dev.to/hassann</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3890506%2F89a141f2-4995-48b3-b5f2-e00ba5055afb.png</url>
      <title>DEV Community: Hassann</title>
      <link>https://dev.to/hassann</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hassann"/>
    <language>en</language>
    <item>
      <title>How to Use Gemini 4 Hydrogen at $0 Today</title>
      <dc:creator>Hassann</dc:creator>
      <pubDate>Fri, 13 Nov 2026 07:38:50 +0000</pubDate>
      <link>https://dev.to/hassann/how-to-use-gemini-4-hydrogen-at-0-today-55a</link>
      <guid>https://dev.to/hassann/how-to-use-gemini-4-hydrogen-at-0-today-55a</guid>
      <description>&lt;p&gt;Yes, Gemini 4 Hydrogen is free to use. Google put &lt;code&gt;gemini-4-hydrogen&lt;/code&gt; on the free tier of the Gemini API and in Google AI Studio on November 12, 2026, so you can call it with a free API key at $0, within rate limits. Free Gemini app users get it only through auto model selection, and Google Search uses it for everyone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Try Apidog today&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;What isn't free: Hydrogen in Google Antigravity, the new Orchestrator, Gemini in Sheets and the paid API tier. Below: each free route, its catches, and how to stretch the quota.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is Gemini 4 Hydrogen free?
&lt;/h2&gt;

&lt;p&gt;Gemini 4 Hydrogen is free on the Gemini API free tier and in Google AI Studio. Google's &lt;a href="https://aistudio.google.com/docs/pricing#gemini-4-hydrogen" rel="noopener noreferrer"&gt;pricing page&lt;/a&gt; lists input, output and context caching as "Free of charge" on the free tier, rate-limited. The paid tier costs $1.50 per 1M input tokens and $7.50 per 1M output tokens, flat across the 1M-token context window.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5airclw95dhj6597uty9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5airclw95dhj6597uty9.png" alt="Gemini 4 Hydrogen pricing" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That makes Hydrogen the first Gemini 4 model with a free tier: Argon's entry says it "is not available on the Free tier," and our &lt;a href="http://apidog.com/blog/gemini-4-carbon-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Carbon free&lt;/a&gt; guide covers Carbon. For the full model rundown, start with &lt;a href="http://apidog.com/blog/what-is-gemini-4-hydrogen?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;what is Gemini 4 Hydrogen&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here's what Google published:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Free tier&lt;/th&gt;
&lt;th&gt;Paid tier&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Model ID&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-4-hydrogen&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-4-hydrogen&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;AI Studio what's new&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Input price&lt;/td&gt;
&lt;td&gt;Free of charge&lt;/td&gt;
&lt;td&gt;$1.50 / 1M tokens&lt;/td&gt;
&lt;td&gt;Pricing page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output price (incl. thinking)&lt;/td&gt;
&lt;td&gt;Free of charge&lt;/td&gt;
&lt;td&gt;$7.50 / 1M tokens&lt;/td&gt;
&lt;td&gt;Pricing page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cached input (implicit only)&lt;/td&gt;
&lt;td&gt;Free of charge&lt;/td&gt;
&lt;td&gt;$0.075 / 1M tokens&lt;/td&gt;
&lt;td&gt;Pricing page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grounding with Google Search&lt;/td&gt;
&lt;td&gt;Not available&lt;/td&gt;
&lt;td&gt;5,000 free requests/month, then $14 per 1,000&lt;/td&gt;
&lt;td&gt;Pricing page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Content used to improve products&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Pricing page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context window&lt;/td&gt;
&lt;td&gt;1,048,576 tokens, shared by input, thinking and output&lt;/td&gt;
&lt;td&gt;Same&lt;/td&gt;
&lt;td&gt;Model page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Thinking levels&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt; (default), &lt;code&gt;xhigh&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Same&lt;/td&gt;
&lt;td&gt;AI Studio what's new&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Every free Gemini 4 Hydrogen route
&lt;/h2&gt;

&lt;p&gt;Three routes cost $0 today. Each one gives you a different slice of Hydrogen:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Route&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;How you get Hydrogen&lt;/th&gt;
&lt;th&gt;Pick the model yourself?&lt;/th&gt;
&lt;th&gt;Card needed?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Gemini API free tier&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;td&gt;Call &lt;code&gt;gemini-4-hydrogen&lt;/code&gt; with a free key&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Not listed; Google lists an active project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google AI Studio&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;td&gt;Chat with &lt;code&gt;model=gemini-4-hydrogen&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Same as above&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini app, no Google AI plan&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;td&gt;Auto model selection may route a prompt to Hydrogen&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Search&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;td&gt;Powers Search's AI responses for all users&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffip00ur12xbfpootbcd4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffip00ur12xbfpootbcd4.png" alt="Diagram of Gemini 4 Hydrogen routes" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Route 1: The Gemini API free tier
&lt;/h3&gt;

&lt;p&gt;This is the route for developers. Create a key in &lt;a href="https://aistudio.google.com/api-keys" rel="noopener noreferrer"&gt;Google AI Studio&lt;/a&gt; and send requests to &lt;code&gt;gemini-4-hydrogen&lt;/code&gt;. Google's &lt;a href="https://aistudio.google.com/docs/rate-limits" rel="noopener noreferrer"&gt;rate limits page&lt;/a&gt; lists the free tier's qualification as an "Active project or free trial", with verification for some projects. It doesn't mention a payment method. Tier 1 is where billing starts.&lt;/p&gt;

&lt;p&gt;Here's a first call through the &lt;code&gt;generateContent&lt;/code&gt; endpoint. Hydrogen defaults to &lt;code&gt;high&lt;/code&gt; thinking, so set &lt;code&gt;low&lt;/code&gt; or &lt;code&gt;medium&lt;/code&gt; when you want fewer tokens per request:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl -s &lt;span class="s2"&gt;"https://generativelanguage.googleapis.com/v1beta/models/gemini-4-hydrogen:generateContent"&lt;/span&gt; \
  -H &lt;span class="s2"&gt;"x-goog-api-key: $GEMINI_API_KEY"&lt;/span&gt; \
  -H &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; \
  -d &lt;span class="s1"&gt;'{
    "contents": [{"parts": [{"text": "Write three test cases for a token-bucket rate limiter."}]}],
    "generationConfig": {"thinkingConfig": {"thinkingLevel": "medium"}}
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The SDKs use the Interactions API instead; our &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Hydrogen API&lt;/a&gt; guide covers both, plus long decode and tool calls.&lt;/p&gt;

&lt;h3&gt;
  
  
  Route 2: Google AI Studio
&lt;/h3&gt;

&lt;p&gt;AI Studio is the zero-code route: chat with Hydrogen, test each thinking level, then copy the code. The pricing page says "Google AI Studio usage is free of charge in all available regions." AI Studio is also where you see your own rate limits, because Google doesn't publish a fixed free-tier table for Hydrogen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Route 3: The Gemini app, free plan
&lt;/h3&gt;

&lt;p&gt;Free users can get Hydrogen in the Gemini app, but they can't choose it. The &lt;a href="https://support.google.com/gemini/answer/18648722" rel="noopener noreferrer"&gt;Gemini Apps help page&lt;/a&gt; lists "Auto or Flash-Lite" for accounts with no Google AI plan: "Prompts that require more reasoning may use Hydrogen. If auto model selection is turned off, all responses will use Flash-Lite." Keep auto on, and expect Hydrogen on harder prompts only.&lt;/p&gt;

&lt;h3&gt;
  
  
  Route 4: Google Search
&lt;/h3&gt;

&lt;p&gt;Google's &lt;a href="https://blog.google/products-and-platforms/products/search/gemini-4-hydrogen-search-upgrade/" rel="noopener noreferrer"&gt;Search post&lt;/a&gt; says Hydrogen "is now available globally in Google Search for all users." No plan or key is needed, but you can't control the model or build on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What isn't free
&lt;/h2&gt;

&lt;p&gt;Google's launch post and the &lt;a href="https://antigravity.google/blog/gemini-4-hydrogen-in-google-antigravity/" rel="noopener noreferrer"&gt;Antigravity blog&lt;/a&gt; put these behind a paid plan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Antigravity.&lt;/strong&gt; Hydrogen "is rolling out across paid Google AI Pro and Ultra subscribers." There's no free Antigravity route to Hydrogen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orchestrator.&lt;/strong&gt; Ultra gets Orchestrator (Carbon) and Orchestrator (Argon); paid Pro gets Orchestrator (Argon). Our &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-orchestrator?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Hydrogen Orchestrator&lt;/a&gt; guide explains how it hands work between Carbon and Hydrogen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini in Google Sheets.&lt;/strong&gt; It starts with Google AI Pro and Ultra subscribers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search grounding on the API.&lt;/strong&gt; Grounding with Google Search shows "Not available" on the free tier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private data handling.&lt;/strong&gt; On the free tier, content is "used to improve our products." Only the paid tier says no.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Batch API.&lt;/strong&gt; Google lists it, at a 50% discount, under the Paid plan.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Third-party "free Hydrogen API" sites aren't Google routes; keep your keys off them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini 4 Hydrogen free tier limits
&lt;/h2&gt;

&lt;p&gt;Google hasn't published fixed free-tier numbers for Hydrogen; limits "can be viewed in Google AI Studio." Here's what Google confirms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Limits are per project, not per API key.&lt;/strong&gt; Extra keys in the same project don't add quota.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Requests per day reset at midnight Pacific time.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limits cover requests per minute, tokens per minute and requests per day.&lt;/strong&gt; Cross any one and you get HTTP 429.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free to Tier 1 typically takes effect instantly&lt;/strong&gt; once you link a billing account.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to stretch the free quota
&lt;/h2&gt;

&lt;p&gt;Thinking tokens count too. Five habits make the free tier last:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start at &lt;code&gt;medium&lt;/code&gt; thinking.&lt;/strong&gt; &lt;code&gt;high&lt;/code&gt; is the default; &lt;code&gt;low&lt;/code&gt; uses the fewest tokens. Google suggests picking the lowest level that meets your quality bar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Save &lt;code&gt;xhigh&lt;/code&gt; for hard problems.&lt;/strong&gt; Google warns it raises latency and token use and "can cause overthinking on simpler prompts."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reuse long prompts.&lt;/strong&gt; Implicit caching runs on prompts of at least 4,096 tokens. Explicit caching isn't supported on Hydrogen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Route easy jobs elsewhere.&lt;/strong&gt; Google keeps &lt;a href="https://aistudio.google.com/docs/whats-new-gemini-4-hydrogen#choosing-between-models" rel="noopener noreferrer"&gt;Gemini 3.5 Flash-Lite&lt;/a&gt; for high-volume classification and routing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Back off on 429s&lt;/strong&gt; with exponential delay, not a tight loop.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcrn5s242r1len4qti4ru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcrn5s242r1len4qti4ru.png" alt="Flowchart for stretching the Gemini 4 Hydrogen free tier" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A minimal retry wrapper looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; attempt &lt;span class="k"&gt;in&lt;/span&gt; 1 2 3 4 5&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="nv"&gt;code&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$(&lt;/span&gt;curl -s -o out.json -w &lt;span class="s2"&gt;"%{http_code}"&lt;/span&gt; \
    &lt;span class="s2"&gt;"https://generativelanguage.googleapis.com/v1beta/models/gemini-4-hydrogen:generateContent"&lt;/span&gt; \
    -H &lt;span class="s2"&gt;"x-goog-api-key: $GEMINI_API_KEY"&lt;/span&gt; -H &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; \
    -d &lt;span class="s1"&gt;'{"contents":[{"parts":[{"text":"Summarize this changelog."}]}],
         "generationConfig":{"thinkingConfig":{"thinkingLevel":"low"}}}'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
  &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"$code"&lt;/span&gt; != &lt;span class="s2"&gt;"429"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;break&lt;/span&gt;
  sleep &lt;span class="nv"&gt;$(&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;2 ** attempt&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;   &lt;span class="c"&gt;# 2, 4, 8, 16, 32 seconds&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"HTTP $code"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="http://apidog.com/blog/status-code-429-too-many-requests?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;HTTP 429 Too Many Requests&lt;/a&gt; explains the status code. When the free tier stops being enough, our &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Hydrogen pricing&lt;/a&gt; guide does the per-call math, and you can compare it with &lt;a href="http://apidog.com/blog/gemini-4-carbon-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Carbon pricing&lt;/a&gt; and &lt;a href="http://apidog.com/blog/gemini-4-argon-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Argon pricing&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Moving from Gemini 3.8 Flash for free
&lt;/h2&gt;

&lt;p&gt;If you're on the free &lt;a href="http://apidog.com/blog/how-to-use-gemini-3-8-flash-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 3.8 Flash&lt;/a&gt; route, Google calls Hydrogen the "recommended upgrade," and both sit on the free tier. Change the model string, drop &lt;code&gt;minimal&lt;/code&gt; thinking (Hydrogen rejects it), remove &lt;code&gt;temperature&lt;/code&gt;, &lt;code&gt;top_p&lt;/code&gt;, &lt;code&gt;top_k&lt;/code&gt; and &lt;code&gt;cached_content&lt;/code&gt;, and raise low &lt;code&gt;max_output_tokens&lt;/code&gt; caps to 65,536. Google reports Hydrogen is 2.5x faster than 3.8 Flash at high thinking; test your own prompts before switching.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let your coding agent test it with Apidog CLI
&lt;/h2&gt;

&lt;p&gt;Don't spend free quota on hand-written retries. Let your coding agent set up the Hydrogen request once, assert on the response and rerun it on demand. &lt;a href="https://apidog.com/apidog-cli/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI&lt;/a&gt; gives Claude Code, Codex or Cursor the commands, and &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;'s Free plan covers up to 4 users.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm install -g apidog-cli@latest
apidog login --with-token &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;YOUR_TOKEN&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
npx -y skills add https://apidog.com   &lt;span class="c"&gt;# pick your agent when prompted&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then give your agent one prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;In Apidog project &amp;lt;id&amp;gt;, create an environment "gemini-free" with base URL
https://generativelanguage.googleapis.com/v1beta. Add a test case for
POST /models/gemini-4-hydrogen:generateContent with the key from
{{GEMINI_API_KEY}} and thinkingLevel "medium". Assert HTTP 200, a non-empty
candidates array and a usageMetadata object. Run it with a 2-second delay
between requests and summarize any failures, including 429s.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent creates the environment, reads the schema, validates its payload, writes the case and runs it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apidog environment create gemini-free --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;id&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; \
  --base-url https://generativelanguage.googleapis.com/v1beta
apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;id&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --file case.json
apidog run --test-case &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;caseId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;id&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; -e &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;envId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; \
  --env-var &lt;span class="s2"&gt;"GEMINI_API_KEY=$GEMINI_API_KEY"&lt;/span&gt; --delay-request 2000 -r cli,json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;--delay-request&lt;/code&gt; (milliseconds) spaces requests under your per-minute limit, and &lt;code&gt;--env-var&lt;/code&gt; passes the key from your shell instead of storing it in the project. The &lt;a href="http://apidog.com/blog/apidog-cli-in-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI in Claude Code&lt;/a&gt; guide covers agent setup, and &lt;a href="http://apidog.com/blog/apidog-cli-ci-cd-pipeline?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI in CI/CD&lt;/a&gt; runs the same case on every push.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is Gemini 4 Hydrogen free?&lt;/strong&gt; Yes, on the Gemini API free tier and in Google AI Studio, within rate limits. Free Gemini app users get it only through auto model selection, and Google Search uses it for all users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do I need a credit card for the Gemini 4 Hydrogen free tier?&lt;/strong&gt; Google's rate limits page lists an active project or free trial as the free-tier requirement and doesn't mention a payment method. Billing starts at Tier 1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the Gemini 4 Hydrogen free tier rate limits?&lt;/strong&gt; Google doesn't publish a fixed table. You see your project's limits in Google AI Studio. Limits apply per project, and daily quotas reset at midnight Pacific time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I choose Gemini 4 Hydrogen in the free Gemini app?&lt;/strong&gt; No. With no Google AI plan, you get Auto or Flash-Lite. Auto may route harder prompts to Hydrogen; with auto off, every response uses Flash-Lite.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is Gemini 4 Hydrogen free in Google Antigravity?&lt;/strong&gt; No. Google is rolling it out to paid Google AI Pro and Ultra subscribers, and Orchestrator is limited to those plans too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start free, upgrade with one string
&lt;/h2&gt;

&lt;p&gt;Gemini 4 Hydrogen is the first Gemini 4 model you can build on for $0: a free AI Studio key, &lt;code&gt;gemini-4-hydrogen&lt;/code&gt; as the model, &lt;code&gt;medium&lt;/code&gt; thinking and a 429 backoff. For the paid side, see &lt;a href="http://apidog.com/blog/gemini-4-carbon-vs-argon?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Carbon vs Argon&lt;/a&gt; and &lt;a href="http://apidog.com/blog/what-is-gemini-4-carbon?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;what is Gemini 4 Carbon&lt;/a&gt;. &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Download Apidog&lt;/a&gt; and let your agent keep the Hydrogen test green as you scale.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Gemini 4 Hydrogen Pricing: $1.50 Input, $7.50 Output, Flat to 1M Tokens</title>
      <dc:creator>Hassann</dc:creator>
      <pubDate>Fri, 13 Nov 2026 07:36:50 +0000</pubDate>
      <link>https://dev.to/hassann/gemini-4-hydrogen-pricing-150-input-750-output-flat-to-1m-tokens-3cgg</link>
      <guid>https://dev.to/hassann/gemini-4-hydrogen-pricing-150-input-750-output-flat-to-1m-tokens-3cgg</guid>
      <description>&lt;h1&gt;
  
  
  Gemini 4 Hydrogen Pricing: Complete Cost Breakdown and Calculator
&lt;/h1&gt;

&lt;p&gt;Gemini 4 Hydrogen pricing is $1.50 per 1M input tokens and $7.50 per 1M output tokens on the Gemini API's Standard paid tier, flat across the whole 1M-token context window. Thinking tokens bill at the output rate, cached input costs $0.075 per 1M, and Batch or Flex cut every rate in half.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Try Apidog today&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Hydrogen, released November 12, 2026, is the fast member of the Gemini 4 family. Unlike Carbon and Argon, it has no introductory price that doubles later, and it's on the Free tier. Below: the price table, worked cost examples, how thinking levels move your bill, and how to measure your own cost. New to the model? Start with &lt;a href="http://apidog.com/blog/what-is-gemini-4-hydrogen?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;what Gemini 4 Hydrogen is&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How much does Gemini 4 Hydrogen cost per 1M tokens?
&lt;/h2&gt;

&lt;p&gt;Gemini 4 Hydrogen (model ID &lt;code&gt;gemini-4-hydrogen&lt;/code&gt;) has four paid tiers on Google's pricing page. All prices are per 1M tokens:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tier&lt;/th&gt;
&lt;th&gt;Input&lt;/th&gt;
&lt;th&gt;Output incl. thinking&lt;/th&gt;
&lt;th&gt;Cached input&lt;/th&gt;
&lt;th&gt;Free tier&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Standard&lt;/td&gt;
&lt;td&gt;$1.50&lt;/td&gt;
&lt;td&gt;$7.50&lt;/td&gt;
&lt;td&gt;$0.075&lt;/td&gt;
&lt;td&gt;Free of charge&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Batch&lt;/td&gt;
&lt;td&gt;$0.75&lt;/td&gt;
&lt;td&gt;$3.75&lt;/td&gt;
&lt;td&gt;$0.0375&lt;/td&gt;
&lt;td&gt;Not available&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flex&lt;/td&gt;
&lt;td&gt;$0.75&lt;/td&gt;
&lt;td&gt;$3.75&lt;/td&gt;
&lt;td&gt;$0.0375&lt;/td&gt;
&lt;td&gt;Not available&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Priority&lt;/td&gt;
&lt;td&gt;$2.70&lt;/td&gt;
&lt;td&gt;$13.50&lt;/td&gt;
&lt;td&gt;$0.135&lt;/td&gt;
&lt;td&gt;See pricing page&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Three details on the same page shape your budget:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Thinking is billed.&lt;/strong&gt; "Every token the model processes is counted and billed, including thinking tokens."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implicit caching only.&lt;/strong&gt; Explicit caching isn't supported; you get the cached rate when Google's implicit cache matches a repeated prompt prefix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grounding is extra.&lt;/strong&gt; Google Search grounding includes 5,000 free requests a month, then $14 per 1,000.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Free tier usage is marked "Used to improve our products: Yes" on the page. Our &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Hydrogen free guide&lt;/a&gt; walks through every $0 route.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does "flat to 1M tokens" mean?
&lt;/h2&gt;

&lt;p&gt;It means one price for every prompt size. Google's launch post says Hydrogen "is priced flat across its entire 1 million-token context window at $1.50 per million input tokens and $7.50 per million output tokens." A 5K-token prompt and a 900K-token prompt bill at the same per-token rate.&lt;/p&gt;

&lt;p&gt;Not every Gemini model works this way: Gemini 3.1 Pro Preview charges $2.00/$12.00 per 1M up to 200K tokens and $4.00/$18.00 above it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fge2jppwh2wpd3qahdz5i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fge2jppwh2wpd3qahdz5i.png" alt="Diagram of Gemini 4 Hydrogen pricing" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Two numbers make it concrete:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A 900K-token prompt (a large codebase or a stack of PDFs) costs $1.35 in input on Standard, or $0.0675 when the implicit cache hits.&lt;/li&gt;
&lt;li&gt;The context window is unified: input, thinking and output share 1,048,576 tokens. A 900K prompt leaves about 148K tokens for thinking and answer combined.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Synchronous responses cap at 65,536 tokens. Longer output runs through &lt;a href="https://aistudio.google.com/docs/long-decode" rel="noopener noreferrer"&gt;long decode&lt;/a&gt;, still at $7.50 per 1M.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do thinking levels change your Gemini 4 Hydrogen bill?
&lt;/h2&gt;

&lt;p&gt;Hydrogen supports four thinking levels: &lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt; (the default) and a new &lt;code&gt;xhigh&lt;/code&gt;. You set it with &lt;code&gt;generation_config.thinking_level&lt;/code&gt;. The per-token price never changes; the number of thinking tokens does, and those bill at the output rate.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://artificialanalysis.ai/models/gemini-4-hydrogen" rel="noopener noreferrer"&gt;Artificial Analysis&lt;/a&gt; ran its Intelligence Index at each level. Here's what it reported:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Thinking level&lt;/th&gt;
&lt;th&gt;Index score&lt;/th&gt;
&lt;th&gt;Tokens generated on the index&lt;/th&gt;
&lt;th&gt;Cost per index task&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;low&lt;/td&gt;
&lt;td&gt;27&lt;/td&gt;
&lt;td&gt;20.3M&lt;/td&gt;
&lt;td&gt;$0.29&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;medium&lt;/td&gt;
&lt;td&gt;41&lt;/td&gt;
&lt;td&gt;54.4M&lt;/td&gt;
&lt;td&gt;$0.80&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;high (default)&lt;/td&gt;
&lt;td&gt;51&lt;/td&gt;
&lt;td&gt;110M&lt;/td&gt;
&lt;td&gt;$1.87&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;xhigh&lt;/td&gt;
&lt;td&gt;54&lt;/td&gt;
&lt;td&gt;304M&lt;/td&gt;
&lt;td&gt;$3.16&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foqnspteuh3cz4p3jm0h5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foqnspteuh3cz4p3jm0h5.png" alt="Tokens and cost by thinking level" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read the table as ratios. Going from &lt;code&gt;high&lt;/code&gt; to &lt;code&gt;xhigh&lt;/code&gt; generated about 2.8x the tokens and raised the cost per task by about 1.7x, for 3 more index points. Dropping from &lt;code&gt;high&lt;/code&gt; to &lt;code&gt;low&lt;/code&gt; cut tokens to under a fifth.&lt;/p&gt;

&lt;p&gt;Google's &lt;a href="https://aistudio.google.com/docs/whats-new-gemini-4-hydrogen" rel="noopener noreferrer"&gt;What's new in Gemini 4 Hydrogen&lt;/a&gt; page warns that &lt;code&gt;xhigh&lt;/code&gt; "can cause overthinking on simpler prompts" and recommends picking "the lowest &lt;code&gt;thinking_level&lt;/code&gt; that meets your quality bar." Note that &lt;code&gt;max_output_tokens&lt;/code&gt; caps thinking and output combined.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does one Gemini 4 Hydrogen call cost?
&lt;/h2&gt;

&lt;p&gt;Every request follows one formula. Pull the token counts from the &lt;code&gt;usage&lt;/code&gt; object in the response (&lt;code&gt;total_input_tokens&lt;/code&gt;, &lt;code&gt;total_cached_tokens&lt;/code&gt;, &lt;code&gt;total_thought_tokens&lt;/code&gt;, &lt;code&gt;total_output_tokens&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cost = (uncached_input x $1.50 / 1M)
     + (cached_input   x $0.075 / 1M)
     + ((thought + output) x $7.50 / 1M)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The two examples below use illustrative token counts, not measurements. Swap in your own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example 1: a chat call at &lt;code&gt;high&lt;/code&gt;.&lt;/strong&gt; 2,000 input tokens, 1,500 thinking tokens, 600 output tokens.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Line&lt;/th&gt;
&lt;th&gt;Standard&lt;/th&gt;
&lt;th&gt;Batch or Flex&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Input (2,000)&lt;/td&gt;
&lt;td&gt;$0.0030&lt;/td&gt;
&lt;td&gt;$0.0015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Thinking + output (2,100)&lt;/td&gt;
&lt;td&gt;$0.0158&lt;/td&gt;
&lt;td&gt;$0.0079&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total per call&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$0.0188&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$0.0094&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10,000 calls a month&lt;/td&gt;
&lt;td&gt;$187.50&lt;/td&gt;
&lt;td&gt;$93.75&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Example 2: an agent loop.&lt;/strong&gt; A coding agent runs 40 turns. It re-sends the conversation each turn, so it reads 1.2M input tokens in total, and 900K of those hit the implicit cache. It thinks for 200K tokens and writes 60K tokens of code and tool calls.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Line&lt;/th&gt;
&lt;th&gt;Standard&lt;/th&gt;
&lt;th&gt;Batch or Flex&lt;/th&gt;
&lt;th&gt;Priority&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Uncached input (300K)&lt;/td&gt;
&lt;td&gt;$0.45&lt;/td&gt;
&lt;td&gt;$0.23&lt;/td&gt;
&lt;td&gt;$0.81&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cached input (900K)&lt;/td&gt;
&lt;td&gt;$0.07&lt;/td&gt;
&lt;td&gt;$0.03&lt;/td&gt;
&lt;td&gt;$0.12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Thinking + output (260K)&lt;/td&gt;
&lt;td&gt;$1.95&lt;/td&gt;
&lt;td&gt;$0.98&lt;/td&gt;
&lt;td&gt;$3.51&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total per run&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$2.47&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$1.23&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$4.44&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;About 79% of the Standard bill is thinking and output, so the thinking level matters more than trimming your prompt. The request code for both examples is in our &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Hydrogen API guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does Hydrogen pricing compare with Carbon, Argon and Gemini 3.8 Flash?
&lt;/h2&gt;

&lt;p&gt;Here are Standard paid-tier rates per 1M tokens from Google's pricing page, read November 13, 2026:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Input&lt;/th&gt;
&lt;th&gt;Output&lt;/th&gt;
&lt;th&gt;Cached input&lt;/th&gt;
&lt;th&gt;Free tier&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 4 Hydrogen&lt;/td&gt;
&lt;td&gt;$1.50&lt;/td&gt;
&lt;td&gt;$7.50&lt;/td&gt;
&lt;td&gt;$0.075&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 4 Carbon (to Nov 30)&lt;/td&gt;
&lt;td&gt;$2.00&lt;/td&gt;
&lt;td&gt;$10.00&lt;/td&gt;
&lt;td&gt;$0.10&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 4 Carbon (from Dec 1)&lt;/td&gt;
&lt;td&gt;$4.00&lt;/td&gt;
&lt;td&gt;$20.00&lt;/td&gt;
&lt;td&gt;$0.20&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 4 Argon (to Nov 30)&lt;/td&gt;
&lt;td&gt;$2.00&lt;/td&gt;
&lt;td&gt;$10.00&lt;/td&gt;
&lt;td&gt;$0.10&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 4 Argon (from Dec 1)&lt;/td&gt;
&lt;td&gt;$4.00&lt;/td&gt;
&lt;td&gt;$20.00&lt;/td&gt;
&lt;td&gt;$0.20&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 3.8 Flash (to Dec 31)&lt;/td&gt;
&lt;td&gt;$0.75&lt;/td&gt;
&lt;td&gt;$3.75&lt;/td&gt;
&lt;td&gt;$0.075&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 3.8 Flash (from Jan 1, 2027)&lt;/td&gt;
&lt;td&gt;$1.50&lt;/td&gt;
&lt;td&gt;$7.50&lt;/td&gt;
&lt;td&gt;$0.15&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Run the Example 2 agent loop's token counts through each price and you get $2.47 on Hydrogen, $3.29 on Carbon or Argon this month and $6.58 from December 1, and $1.27 on Gemini 3.8 Flash until December 31. Once Flash's price rises on January 1, 2027, the same tokens cost $2.54 on Flash, slightly more than Hydrogen because Flash's cached rate doubles to $0.15. For the details on the frontier models' price change, see our &lt;a href="http://apidog.com/blog/gemini-4-carbon-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Carbon pricing&lt;/a&gt; and &lt;a href="http://apidog.com/blog/gemini-4-argon-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Argon pricing&lt;/a&gt; guides.&lt;/p&gt;

&lt;p&gt;Same tokens isn't the real comparison, though, because each model spends a different number of tokens per task. Artificial Analysis's Intelligence Index pages give one view:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model (thinking level)&lt;/th&gt;
&lt;th&gt;Index score&lt;/th&gt;
&lt;th&gt;Tokens generated&lt;/th&gt;
&lt;th&gt;Cost per index task&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 4 Hydrogen (high)&lt;/td&gt;
&lt;td&gt;51&lt;/td&gt;
&lt;td&gt;110M&lt;/td&gt;
&lt;td&gt;$1.87&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 4 Hydrogen (xhigh)&lt;/td&gt;
&lt;td&gt;54&lt;/td&gt;
&lt;td&gt;304M&lt;/td&gt;
&lt;td&gt;$3.16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://artificialanalysis.ai/models/gemini-4-argon" rel="noopener noreferrer"&gt;Gemini 4 Argon (high)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;113M&lt;/td&gt;
&lt;td&gt;$4.97&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://artificialanalysis.ai/models/gemini-4-carbon" rel="noopener noreferrer"&gt;Gemini 4 Carbon (high)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;205M&lt;/td&gt;
&lt;td&gt;$5.48&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://artificialanalysis.ai/models/gemini-3-8-flash" rel="noopener noreferrer"&gt;Gemini 3.8 Flash (high)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;31&lt;/td&gt;
&lt;td&gt;126M&lt;/td&gt;
&lt;td&gt;not compared here&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;On this benchmark, Hydrogen at its default matched Argon's score at about 38% of Argon's cost per task, while Carbon scored highest. Treat it as one benchmark's view. Google also says Hydrogen finishes tasks 2.5x faster than Gemini 3.8 Flash at the high setting.&lt;/p&gt;

&lt;p&gt;The practical split: Hydrogen for everyday coding and agents, Carbon for hard architecture, debugging and security reviews. In Antigravity, the &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-orchestrator?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Orchestrator option&lt;/a&gt; switches between Carbon and Hydrogen inside one run. Our &lt;a href="http://apidog.com/blog/gemini-4-carbon-vs-argon?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Carbon vs Argon comparison&lt;/a&gt; covers the frontier side.&lt;/p&gt;

&lt;h2&gt;
  
  
  How can you cut your Gemini 4 Hydrogen bill?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Use Batch or Flex for work that can wait.&lt;/strong&gt; Both are half price.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick the lowest thinking level that passes your evals.&lt;/strong&gt; &lt;code&gt;medium&lt;/code&gt; used about half the tokens of &lt;code&gt;high&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Save &lt;code&gt;xhigh&lt;/code&gt; for the hard turns.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep a stable prompt prefix&lt;/strong&gt; so implicit caching bills repeated input at $0.075 per 1M, a 95% discount.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prototype on the Free tier.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Measure your real Gemini 4 Hydrogen cost with Apidog CLI
&lt;/h2&gt;

&lt;p&gt;Your bill comes from your own prompts. The quickest way to get real numbers is to let your coding agent (Claude Code, Codex, Cursor) run your prompts at every thinking level through &lt;a href="https://apidog.com/apidog-cli/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI&lt;/a&gt; and log the &lt;code&gt;usage&lt;/code&gt; object for each run.&lt;/p&gt;

&lt;p&gt;Set it up once:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm install -g apidog-cli@latest
apidog login --with-token &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;YOUR_TOKEN&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
npx -y skills add https://apidog.com   &lt;span class="c"&gt;# pick your agent when prompted&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Put 5 to 10 of your real prompts in &lt;code&gt;levels.csv&lt;/code&gt;, one row per prompt and thinking level, with columns &lt;code&gt;prompt&lt;/code&gt; and &lt;code&gt;thinking_level&lt;/code&gt; (&lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt;, &lt;code&gt;xhigh&lt;/code&gt;). Then give your agent one prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;In Apidog project &amp;lt;projectId&amp;gt;, create a test case for
POST https://generativelanguage.googleapis.com/v1beta/interactions
with the x-goog-api-key header read from GEMINI_API_KEY in environment
&amp;lt;envId&amp;gt;. Send model "gemini-4-hydrogen", input {{prompt}} and
generation_config.thinking_level {{thinking_level}}. Assert status 200,
status "completed", non-empty output, and a usage object that includes
total_input_tokens and total_output_tokens. In a post-processor, read
total_input_tokens, total_cached_tokens, total_thought_tokens and
total_output_tokens, compute cost at $1.50 input, $0.075 cached and
$7.50 output per 1M, and log it. Run every row of levels.csv and give me
a table of tokens and cost per prompt and thinking level.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent checks the payload shape before it writes anything, then runs every row:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --file case.json
apidog run --test-case &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;caseId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; -e &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;envId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; \
  -d levels.csv -r cli,json --out-file hydrogen-cost-&lt;span class="o"&gt;{&lt;/span&gt;GENERATE_TIME&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The JSON report shows what each thinking level costs on your workload. Add &lt;code&gt;-r junit&lt;/code&gt; and the same command runs in CI, where a token-budget assertion can fail the build. The &lt;a href="http://apidog.com/blog/apidog-cli-ci-cd-pipeline?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI CI/CD guide&lt;/a&gt; shows the pipeline, and &lt;a href="http://apidog.com/blog/apidog-cli-in-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI in Claude Code&lt;/a&gt; covers the agent setup. Apidog's Free plan covers up to 4 users.&lt;/p&gt;

&lt;p&gt;A shortcut: tell your agent "Read &lt;a href="https://apidog.com/apidog-cli-installation-guide.md?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;https://apidog.com/apidog-cli-installation-guide.md&lt;/a&gt; and set up Apidog CLI."&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is Gemini 4 Hydrogen free?&lt;/strong&gt; On the API, yes, within Free tier rate limits: Google lists Standard input and output as "Free of charge" on the Free tier. Batch, Flex and Search grounding need a paid key. See our &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Hydrogen free guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will Gemini 4 Hydrogen's price go up like Carbon's?&lt;/strong&gt; Google's pricing page lists a single $1.50/$7.50 rate for Hydrogen, with no introductory period or end date. Carbon and Argon carry dated intro prices; Hydrogen doesn't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Are thinking tokens billed for Gemini 4 Hydrogen?&lt;/strong&gt; Yes, at the output rate of $7.50 per 1M on Standard. The response's &lt;code&gt;usage&lt;/code&gt; object reports them separately as &lt;code&gt;total_thought_tokens&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is Gemini 4 Hydrogen cheaper than Gemini 3.8 Flash?&lt;/strong&gt; Not this year: Flash costs $0.75/$3.75 until December 31, 2026. From January 1, 2027, Flash rises to $1.50/$7.50, the same per-token rate as Hydrogen, and Hydrogen scored 51 to Flash's 31 on Artificial Analysis's index.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Gemini 4 Hydrogen Orchestrator: How Carbon Plans and Hydrogen Executes</title>
      <dc:creator>Hassann</dc:creator>
      <pubDate>Fri, 13 Nov 2026 07:35:58 +0000</pubDate>
      <link>https://dev.to/hassann/gemini-4-hydrogen-orchestrator-how-carbon-plans-and-hydrogen-executes-48a4</link>
      <guid>https://dev.to/hassann/gemini-4-hydrogen-orchestrator-how-carbon-plans-and-hydrogen-executes-48a4</guid>
      <description>&lt;h1&gt;
  
  
  Gemini 4 Hydrogen Orchestrator: How Google's Planner/Executor Split Works
&lt;/h1&gt;

&lt;p&gt;Gemini 4 Hydrogen Orchestrator is a model option in Google Antigravity that pairs a planner (Gemini 4 Carbon or Argon) with Gemini 4 Hydrogen inside one task. The planner explores and writes the plan, Hydrogen edits code and runs tests, and control passes back to the planner whenever Hydrogen hits friction. Google says it reaches near-Carbon success with 24% less quota.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Try Apidog today&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Below: how the hand-off loop works, what the 24% and 19% numbers mean, which plans get it, and how to build the same split with the Gemini API. For the model basics, read &lt;a href="http://apidog.com/blog/what-is-gemini-4-hydrogen?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;what Gemini 4 Hydrogen is&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Gemini 4 Hydrogen Orchestrator?
&lt;/h2&gt;

&lt;p&gt;Orchestrator is an entry in Antigravity's model selector, not a separate model. Pick &lt;strong&gt;Orchestrator (Carbon)&lt;/strong&gt; and Gemini 4 Carbon plans while Gemini 4 Hydrogen implements. Pick &lt;strong&gt;Orchestrator (Argon)&lt;/strong&gt; and Gemini 4 Argon plans instead. Switches happen automatically within each response, inside one conversation.&lt;/p&gt;

&lt;p&gt;Google launched it on November 12, 2026. The &lt;a href="https://antigravity.google/blog/gemini-4-hydrogen-in-google-antigravity/" rel="noopener noreferrer"&gt;Antigravity announcement&lt;/a&gt; names the problem: running a frontier reasoning model on "every step of every routine task slows down your loop and burns frontier quota."&lt;/p&gt;

&lt;p&gt;Three facts to keep straight:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It's Antigravity only.&lt;/strong&gt; There's no Orchestrator endpoint in the Gemini API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It has a fixed configuration.&lt;/strong&gt; You can't set a thinking level on it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's one agent, not a swarm.&lt;/strong&gt; For parallel agents, Antigravity points you to subagents, &lt;code&gt;/swarm&lt;/code&gt;, Boost or Teamwork.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How does Orchestrator hand work between Carbon and Hydrogen?
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://antigravity.google/docs/models#orchestrator" rel="noopener noreferrer"&gt;Antigravity models docs&lt;/a&gt; describe four moves that repeat inside each turn:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The planner plans.&lt;/strong&gt; Every message you send starts with a read-only phase. The planner explores the codebase, resolves ambiguities and writes a concrete implementation plan, including the conditions that should trigger re-planning. Plain questions get answered directly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hydrogen does the work.&lt;/strong&gt; It applies file edits, writes code, runs builds and tests, and checks results against the plan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control returns on friction.&lt;/strong&gt; If a verification step fails twice, an interface behaves differently than expected, or the plan didn't settle a design choice, Hydrogen hands control back. The planner inspects the conversation state, repairs the plan and hands execution back.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The planner reviews progress.&lt;/strong&gt; On longer tasks, and whenever you send a message mid-run, Hydrogen reports progress. The planner checks it against the plan, then wraps up, continues or updates the plan.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The design choice worth copying is in step 1: the planner writes its own re-planning triggers. Hydrogen gets a written list of conditions that mean "stop and ask."&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does Google say static model routers break on long agent runs?
&lt;/h2&gt;

&lt;p&gt;A static router reads your first prompt, guesses how hard the task is, and sends the whole job to the cheapest model it thinks can finish. That fails when difficulty changes mid-task, which is normal for agents.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4mjf82enmx0sg8tnxsjz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4mjf82enmx0sg8tnxsjz.png" alt="Diagram comparing a static router, which guesses difficulty once from the first prompt and sends the whole task to one model, with Orchestrator, where Gemini 4 Carbon planning segments and Gemini 4 Hydrogen edit, build and test segments alternate along one task timeline with hand-offs in both directions" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google's words: routers "start breaking down as agents become longer running, requiring different levels of complexity at different stages, often discovered as the task evolves." A dependency upgrade can look trivial until a breaking API change surfaces in step 7. A router that picked the cheap model has no way back; one that picked the frontier model pays frontier prices for every test rerun. Orchestrator decides per stage, in both directions.&lt;/p&gt;

&lt;h2&gt;
  
  
  What do the 24% quota and 19% speed numbers mean?
&lt;/h2&gt;

&lt;p&gt;Google reports that on Terminal-Bench, Orchestrator "reached near-Carbon task success rates while, on average, consuming 24% less quota and completing 19% faster." Read that with four caveats:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Claim&lt;/th&gt;
&lt;th&gt;What it says&lt;/th&gt;
&lt;th&gt;What it doesn't say&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Near-Carbon success&lt;/td&gt;
&lt;td&gt;Close to Carbon running alone&lt;/td&gt;
&lt;td&gt;No exact success rate published in either post&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;24% less quota&lt;/td&gt;
&lt;td&gt;Antigravity plan quota, averaged&lt;/td&gt;
&lt;td&gt;Not a token count or a dollar figure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;19% faster&lt;/td&gt;
&lt;td&gt;Average task completion time&lt;/td&gt;
&lt;td&gt;Not per-request latency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Benchmark version&lt;/td&gt;
&lt;td&gt;Terminal-Bench 4.0 in Google's &lt;a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/introducing-gemini-4-hydrogen/" rel="noopener noreferrer"&gt;launch post&lt;/a&gt;, 4.1 in the Antigravity post&lt;/td&gt;
&lt;td&gt;Which version is correct&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These are Google's numbers on Google's runs, a signal rather than a forecast for your repo. Planning-heavy tasks save little; execution-heavy ones (bumping 40 packages and fixing tests) should save more.&lt;/p&gt;

&lt;p&gt;The dollar logic is easier to see on the API. Gemini 4 Hydrogen costs $1.50 per 1M input tokens and $7.50 per 1M output tokens. Carbon is $2.00/$10.00 until November 30, then $4.00/$20.00 from December 1, per the &lt;a href="http://apidog.com/blog/gemini-4-carbon-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Carbon pricing guide&lt;/a&gt;. Thinking tokens bill as output, so every execution turn you move from Carbon to Hydrogen cuts that turn's output rate by 62.5% at December prices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who can use Orchestrator, and on which plans?
&lt;/h2&gt;

&lt;p&gt;Orchestrator ships in Antigravity only, and the planner you get depends on your Google AI plan. From the Antigravity docs, read November 13, 2026:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Planner&lt;/th&gt;
&lt;th&gt;Executor&lt;/th&gt;
&lt;th&gt;Plans&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Orchestrator (Carbon)&lt;/td&gt;
&lt;td&gt;Gemini 4 Carbon&lt;/td&gt;
&lt;td&gt;Gemini 4 Hydrogen&lt;/td&gt;
&lt;td&gt;Google AI Ultra&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Orchestrator (Argon)&lt;/td&gt;
&lt;td&gt;Gemini 4 Argon&lt;/td&gt;
&lt;td&gt;Gemini 4 Hydrogen&lt;/td&gt;
&lt;td&gt;Google AI Ultra; paid Google AI Pro (or trials on eligible premium devices)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Free and Google AI Plus users get standalone Hydrogen but no Orchestrator. For Enterprise, the docs' table and the Antigravity announcement disagree, so check your own model selector.&lt;/p&gt;

&lt;p&gt;In the Antigravity CLI, pass the option name in quotes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agy --model &lt;span class="s2"&gt;"Orchestrator (Carbon)"&lt;/span&gt;
agy -p &lt;span class="s2"&gt;"Add input validation to the signup form and run the tests."&lt;/span&gt; --model &lt;span class="s2"&gt;"Orchestrator (Argon)"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Choosing between planners? Our &lt;a href="http://apidog.com/blog/gemini-4-carbon-vs-argon?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Carbon vs Argon comparison&lt;/a&gt; covers the trade-off.&lt;/p&gt;

&lt;h2&gt;
  
  
  When should you pick Orchestrator over a single model?
&lt;/h2&gt;

&lt;p&gt;Google's docs call Orchestrator the "recommended default" for day-to-day work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Orchestrator:&lt;/strong&gt; feature work, bug fixes, refactoring and multi-file debugging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Carbon or Argon alone:&lt;/strong&gt; work where every step needs maximum depth, such as designing distributed systems, chasing race conditions or multi-repo migrations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hydrogen alone:&lt;/strong&gt; package upgrades, deduplication, boilerplate, unit tests for well-defined functions, docs and quick scripts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rule of thumb: if you'd write a plan before starting, use Orchestrator. If you'd just start typing, use Hydrogen.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you build the same plan/execute split with the Gemini API?
&lt;/h2&gt;

&lt;p&gt;Outside Antigravity, you build Orchestrator's loop yourself. Google's &lt;a href="https://aistudio.google.com/docs/whats-new-gemini-4-hydrogen" rel="noopener noreferrer"&gt;What's new in Gemini 4 Hydrogen&lt;/a&gt; guide describes the mechanism: "Route planning turns to &lt;code&gt;gemini-4-carbon&lt;/code&gt; and execution turns to &lt;code&gt;gemini-4-hydrogen&lt;/code&gt; in one multi-turn session using &lt;code&gt;previous_interaction_id&lt;/code&gt;." No request schema changes are needed between the two models.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3ldkubplvv8gk5qll8du.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3ldkubplvv8gk5qll8du.png" alt="Flowchart of a do-it-yourself plan and execute loop on the Gemini API: gemini-4-carbon writes a read-only plan with re-plan triggers, passes it via previous_interaction_id to gemini-4-hydrogen, which executes each step and runs tests; passing checks move to the next step, and a check that fails twice or a plan gap escalates back to Carbon, which reviews and wraps up" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A minimal Python version that copies the "fails twice, hand back" rule:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;google&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# reads GEMINI_API_KEY&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;ask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;prev&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;level&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"high"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;interactions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;previous_interaction_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;generation_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"thinking_level"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;level&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# 1. Carbon plans (read-only) and writes its own re-plan triggers&lt;/span&gt;
&lt;span class="n"&gt;plan&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;ask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"gemini-4-carbon"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s2"&gt;"Plan this task as numbered steps. For each step, list the check "&lt;/span&gt;
    &lt;span class="s2"&gt;"that proves it worked and the conditions that require re-planning. "&lt;/span&gt;
    &lt;span class="s2"&gt;"Do not write code yet. Task: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;last&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;plan&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;step&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;parse_steps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;plan&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output_text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;failures&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="c1"&gt;# 2. Hydrogen executes the step&lt;/span&gt;
        &lt;span class="n"&gt;run&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;ask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"gemini-4-hydrogen"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;"Implement step: {step}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;prev&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;last&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;
        &lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;log&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;apply_and_test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output_text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# your patch + test runner&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;break&lt;/span&gt;
        &lt;span class="n"&gt;failures&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;failures&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="c1"&gt;# 3. Escalate to Carbon to repair the plan&lt;/span&gt;
            &lt;span class="n"&gt;fix&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;ask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"gemini-4-carbon"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;"Step failed twice. Test log:\n{log}\nRepair the plan for this step."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="n"&gt;prev&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;last&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fix&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;
            &lt;span class="n"&gt;step&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;failures&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fix&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output_text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;

&lt;span class="c1"&gt;# 4. Carbon reviews the finished work&lt;/span&gt;
&lt;span class="n"&gt;review&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;ask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"gemini-4-carbon"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Review the completed work against the plan."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;prev&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;parse_steps&lt;/code&gt; and &lt;code&gt;apply_and_test&lt;/code&gt; hold your repo's build and test logic. Four things to get right:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Set thinking levels per role.&lt;/strong&gt; Carbon defaults to &lt;code&gt;medium&lt;/code&gt; and caps at &lt;code&gt;high&lt;/code&gt;. Hydrogen defaults to &lt;code&gt;high&lt;/code&gt; and adds &lt;code&gt;xhigh&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep state on the server.&lt;/strong&gt; &lt;code&gt;previous_interaction_id&lt;/code&gt; carries history between models, and implicit caching discounts repeated input by 95%. &lt;code&gt;store=false&lt;/code&gt; blocks it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make escalation explicit.&lt;/strong&gt; Copy Orchestrator's triggers into the planner prompt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Log tokens per turn.&lt;/strong&gt; The &lt;code&gt;usage&lt;/code&gt; object reports &lt;code&gt;total_thought_tokens&lt;/code&gt; separately, so you can see which role is spending.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Request formats and auth are in our &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Hydrogen API guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you'd rather not hand-roll the loop, Google says the Antigravity SDK lets you wire Hydrogen and Carbon agents together with programmatic control over roles. In its demo, Hydrogen agents triage issues and code while a Carbon agent takes refactors and security checks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test the Carbon-to-Hydrogen hand-off with Apidog CLI
&lt;/h2&gt;

&lt;p&gt;A DIY orchestrator breaks at the hand-off: a wrong model ID, a dropped &lt;code&gt;previous_interaction_id&lt;/code&gt;, or a thinking level Carbon rejects. Let your coding agent (Claude Code, Codex, Cursor) build a two-step test with &lt;a href="https://apidog.com/apidog-cli/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI&lt;/a&gt; and run it.&lt;/p&gt;

&lt;p&gt;Set it up once:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm install -g apidog-cli@latest
apidog login --with-token &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;YOUR_TOKEN&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
npx -y skills add https://apidog.com   &lt;span class="c"&gt;# pick your agent when prompted&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then give your agent one prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;In Apidog project &amp;lt;projectId&amp;gt;, create an environment "gemini" with base URL
https://generativelanguage.googleapis.com and a secret variable GEMINI_API_KEY.
Build a test scenario with two steps against POST /v1beta/interactions,
both sending the x-goog-api-key header:
1. Planner: model "gemini-4-carbon", thinking_level "high", input asks for a
   3-step plan. Assert status 200, status "completed", non-empty output and a
   usage object. Extract $.id into plannerId.
2. Executor: model "gemini-4-hydrogen", thinking_level "medium",
   previous_interaction_id {{plannerId}}, input "Do step 1 of the plan".
   Assert the same checks. Log total_input_tokens, total_thought_tokens and
   total_output_tokens for both steps. Run it and summarize failures.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent reads the schema, validates its payload, writes the scenario and runs it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apidog environment create gemini --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; \
  --base-url https://generativelanguage.googleapis.com
apidog cli-schema get test-scenario-update
apidog cli-schema validate test-scenario-update --file scenario.json
apidog test-scenario create --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --name &lt;span class="s2"&gt;"carbon-to-hydrogen"&lt;/span&gt;
apidog test-scenario update &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;scenarioId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --file scenario.json
apidog test-scenario run &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;scenarioId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; -e &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;envId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; \
  -r cli,json --out-file handoff-&lt;span class="o"&gt;{&lt;/span&gt;GENERATE_TIME&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The JSON report shows each role's token spend side by side. Add &lt;code&gt;-r junit&lt;/code&gt; and the same run goes into CI, so a model ID change or a broken hand-off fails the build; the &lt;a href="http://apidog.com/blog/apidog-cli-ci-cd-pipeline?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI CI/CD guide&lt;/a&gt; shows the pipeline, and &lt;a href="http://apidog.com/blog/apidog-cli-in-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI in Claude Code&lt;/a&gt; covers the agent setup. Apidog's Free plan covers up to 4 users.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is Gemini 4 Hydrogen Orchestrator available in the Gemini API?&lt;/strong&gt; No. It's a model selector option in Google Antigravity. In the API, you switch between &lt;code&gt;gemini-4-carbon&lt;/code&gt; and &lt;code&gt;gemini-4-hydrogen&lt;/code&gt; yourself with &lt;code&gt;previous_interaction_id&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I set a thinking level for Orchestrator?&lt;/strong&gt; No. It runs with a fixed configuration. Select Carbon, Argon or Hydrogen directly if you need a specific level.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do I need Google AI Ultra?&lt;/strong&gt; For Orchestrator (Carbon), yes. Paid Google AI Pro subscribers get Orchestrator (Argon). Free users can use Hydrogen on its own; see our &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Hydrogen free guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does Orchestrator save money on the API?&lt;/strong&gt; The same split does: execution turns bill at Hydrogen's $7.50 per 1M output instead of Carbon's. The &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Hydrogen pricing guide&lt;/a&gt; has the full table.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Use Gemini 4 Hydrogen API ?</title>
      <dc:creator>Hassann</dc:creator>
      <pubDate>Fri, 13 Nov 2026 07:35:01 +0000</pubDate>
      <link>https://dev.to/hassann/how-to-use-gemini-4-hydrogen-api--3dfm</link>
      <guid>https://dev.to/hassann/how-to-use-gemini-4-hydrogen-api--3dfm</guid>
      <description>&lt;p&gt;The Gemini 4 Hydrogen API uses the model ID &lt;code&gt;gemini-4-hydrogen&lt;/code&gt;. You call it with a &lt;code&gt;POST&lt;/code&gt; to &lt;code&gt;https://generativelanguage.googleapis.com/v1beta/interactions&lt;/code&gt;, your key in the &lt;code&gt;x-goog-api-key&lt;/code&gt; header, and &lt;code&gt;model&lt;/code&gt; plus &lt;code&gt;input&lt;/code&gt; in the JSON body. It runs on the free tier and the paid tier ($1.50 input, $7.50 output per 1M tokens) and defaults to the &lt;code&gt;high&lt;/code&gt; thinking level.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Try Apidog today&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;This guide walks the full path: key, first request, thinking level, a PDF, function calling, streaming and error handling. Every field name comes from Google's docs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What do you need before your first Gemini 4 Hydrogen API call?
&lt;/h2&gt;

&lt;p&gt;You need a Gemini API key, the model ID &lt;code&gt;gemini-4-hydrogen&lt;/code&gt; and the Interactions endpoint. Google released Hydrogen on November 12, 2026, as the fast Gemini 4 model next to Carbon and Argon (&lt;a href="http://apidog.com/blog/what-is-gemini-4-hydrogen?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;what Gemini 4 Hydrogen is&lt;/a&gt;).&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Model ID&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-4-hydrogen&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Endpoint&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;POST /v1beta/interactions&lt;/code&gt; on &lt;code&gt;generativelanguage.googleapis.com&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auth header&lt;/td&gt;
&lt;td&gt;&lt;code&gt;x-goog-api-key: $GEMINI_API_KEY&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;APIs&lt;/td&gt;
&lt;td&gt;Interactions API and &lt;code&gt;generateContent&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Thinking levels&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt; (default), &lt;code&gt;xhigh&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context window&lt;/td&gt;
&lt;td&gt;1,048,576 tokens, shared by input, thinking and output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output per synchronous hop&lt;/td&gt;
&lt;td&gt;65,536 tokens, streaming or not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free tier&lt;/td&gt;
&lt;td&gt;Yes, rate-limited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Paid price&lt;/td&gt;
&lt;td&gt;$1.50 / 1M input, $7.50 / 1M output (thinking included)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cached input&lt;/td&gt;
&lt;td&gt;$0.075 / 1M via implicit caching&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Google's docs call &lt;code&gt;generateContent&lt;/code&gt; legacy, so these examples use Interactions.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you get a Gemini API key for Hydrogen?
&lt;/h2&gt;

&lt;p&gt;Hydrogen is on the free tier, so you can start without billing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;a href="https://aistudio.google.com/api-keys" rel="noopener noreferrer"&gt;API keys page&lt;/a&gt; in Google AI Studio.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create API key&lt;/strong&gt;. New keys created in AI Studio are authorization keys, bound to a service account.&lt;/li&gt;
&lt;li&gt;Export it: &lt;code&gt;export GEMINI_API_KEY="YOUR_API_KEY"&lt;/code&gt;. The SDKs read &lt;code&gt;GEMINI_API_KEY&lt;/code&gt; or &lt;code&gt;GOOGLE_API_KEY&lt;/code&gt;; if both are set, &lt;code&gt;GOOGLE_API_KEY&lt;/code&gt; wins.&lt;/li&gt;
&lt;li&gt;A Cloud project created outside AI Studio may need project verification before the free tier works.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Google publishes the free-tier numbers on its &lt;a href="https://aistudio.google.com/docs/rate-limits" rel="noopener noreferrer"&gt;rate limits page&lt;/a&gt;, not in the launch guide. Our &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Hydrogen free guide&lt;/a&gt; covers what you get at $0.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7lrdkqxgw06h65u27c8q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7lrdkqxgw06h65u27c8q.png" alt="Gemini 4 Hydrogen API key setup" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you send your first Gemini 4 Hydrogen API request?
&lt;/h2&gt;

&lt;p&gt;Send &lt;code&gt;model&lt;/code&gt; and &lt;code&gt;input&lt;/code&gt; to the Interactions endpoint. Keep the model in a variable so swapping models is a one-line change.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="kd"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;GEMINI_MODEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"gemini-4-hydrogen"&lt;/span&gt;

curl &lt;span class="s2"&gt;"https://generativelanguage.googleapis.com/v1beta/interactions"&lt;/span&gt; \
  -H &lt;span class="s2"&gt;"x-goog-api-key: $GEMINI_API_KEY"&lt;/span&gt; \
  -H &lt;span class="s1"&gt;'Content-Type: application/json'&lt;/span&gt; \
  -X POST \
  -d &lt;span class="s1"&gt;'{
    "model": "'&lt;/span&gt;&lt;span class="s2"&gt;"$GEMINI_MODEL"&lt;/span&gt;&lt;span class="s1"&gt;'",
    "input": "Write a Python function that retries an HTTP call with exponential backoff."
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The same call with the Python SDK (&lt;code&gt;pip install -U google-genai&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;google&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# reads GEMINI_API_KEY&lt;/span&gt;

&lt;span class="n"&gt;interaction&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;interactions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"GEMINI_MODEL"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"gemini-4-hydrogen"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"Write a Python function that retries an HTTP call with exponential backoff."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;interaction&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output_text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;interaction&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;usage&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The response carries an &lt;code&gt;id&lt;/code&gt;, a &lt;code&gt;status&lt;/code&gt; and a &lt;code&gt;steps&lt;/code&gt; array. Text lives in &lt;code&gt;model_output&lt;/code&gt; steps, reasoning in &lt;code&gt;thought&lt;/code&gt; steps, and the SDK's &lt;code&gt;output_text&lt;/code&gt; joins the text for you. The &lt;code&gt;usage&lt;/code&gt; object holds &lt;code&gt;total_input_tokens&lt;/code&gt;, &lt;code&gt;total_thought_tokens&lt;/code&gt;, &lt;code&gt;total_output_tokens&lt;/code&gt; and &lt;code&gt;total_tokens&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;These snippets follow Google's quickstart. We didn't run them for this post (no Gemini key on our test machine), so check the shape against your own first response.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you set the Gemini 4 Hydrogen thinking level?
&lt;/h2&gt;

&lt;p&gt;Set &lt;code&gt;thinking_level&lt;/code&gt; inside &lt;code&gt;generation_config&lt;/code&gt;. Hydrogen defaults to &lt;code&gt;high&lt;/code&gt;, adds a new &lt;code&gt;xhigh&lt;/code&gt; level, and rejects &lt;code&gt;minimal&lt;/code&gt; with an error.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;code&gt;thinking_level&lt;/code&gt;&lt;/th&gt;
&lt;th&gt;Token use&lt;/th&gt;
&lt;th&gt;Google's suggested use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;low&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fewest tokens, lowest latency&lt;/td&gt;
&lt;td&gt;Fast chat, high-throughput processing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;medium&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lower token use, faster&lt;/td&gt;
&lt;td&gt;Interactive coding, live UI prototyping, quick tool calls&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;high&lt;/code&gt; (default)&lt;/td&gt;
&lt;td&gt;Balanced&lt;/td&gt;
&lt;td&gt;Complex coding, agentic execution, multimodal document work&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;xhigh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Most tokens, deepest reasoning&lt;/td&gt;
&lt;td&gt;Hard multi-step problems where &lt;code&gt;high&lt;/code&gt; falls short&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://generativelanguage.googleapis.com/v1beta/interactions"&lt;/span&gt; \
  -H &lt;span class="s2"&gt;"x-goog-api-key: $GEMINI_API_KEY"&lt;/span&gt; \
  -H &lt;span class="s1"&gt;'Content-Type: application/json'&lt;/span&gt; \
  -X POST \
  -d &lt;span class="s1"&gt;'{
    "model": "gemini-4-hydrogen",
    "input": "Audit this payment retry queue for race conditions.",
    "generation_config": {
      "thinking_level": "medium",
      "max_output_tokens": 65536
    }
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two rules matter. &lt;code&gt;max_output_tokens&lt;/code&gt; caps thinking and output together, so an old low cap (say 8,192) can cut answers short; Google says to raise it to 65,536 and lower the thinking level instead. And thinking tokens bill at the $7.50 output rate, so &lt;code&gt;xhigh&lt;/code&gt; costs more even when the visible answer is the same length. The &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Hydrogen pricing breakdown&lt;/a&gt; runs the numbers per level.&lt;/p&gt;

&lt;p&gt;Google also says the server ignores &lt;code&gt;temperature&lt;/code&gt;, &lt;code&gt;top_p&lt;/code&gt; and &lt;code&gt;top_k&lt;/code&gt; on Hydrogen, so drop them from your requests.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you send a PDF to Gemini 4 Hydrogen?
&lt;/h2&gt;

&lt;p&gt;Add a &lt;code&gt;document&lt;/code&gt; item to the &lt;code&gt;input&lt;/code&gt; array, next to a &lt;code&gt;text&lt;/code&gt; item with your instruction. For small files, send the PDF inline as base64:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;PDF_PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"invoice.pdf"&lt;/span&gt;
&lt;span class="nv"&gt;B64&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$(&lt;/span&gt;base64 &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="s2"&gt;"$PDF_PATH"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; tr -d &lt;span class="s1"&gt;'\n'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;

curl -X POST &lt;span class="s2"&gt;"https://generativelanguage.googleapis.com/v1beta/interactions"&lt;/span&gt; \
  -H &lt;span class="s2"&gt;"x-goog-api-key: $GEMINI_API_KEY"&lt;/span&gt; \
  -H &lt;span class="s1"&gt;'Content-Type: application/json'&lt;/span&gt; \
  -d &lt;span class="s1"&gt;'{
    "model": "gemini-4-hydrogen",
    "input": [
      {"type": "document", "data": "'&lt;/span&gt;&lt;span class="s2"&gt;"$B64"&lt;/span&gt;&lt;span class="s1"&gt;'", "mime_type": "application/pdf"},
      {"type": "text", "text": "Extract the line items as a table."}
    ]
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For larger files or reuse across turns, upload once with the Files API (free, kept 48 hours) and pass &lt;code&gt;{"type": "document", "uri": "&amp;lt;file uri&amp;gt;", "mime_type": "application/pdf"}&lt;/code&gt; instead. Per the &lt;a href="https://aistudio.google.com/docs/document-processing" rel="noopener noreferrer"&gt;document processing guide&lt;/a&gt;, PDFs can be up to 50 MB or 1,000 pages, and the model reads the charts, tables and images in them, not just the text.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does function calling work with Gemini 4 Hydrogen?
&lt;/h2&gt;

&lt;p&gt;Declare your function in &lt;code&gt;tools&lt;/code&gt;. The model doesn't run anything; it returns a &lt;code&gt;function_call&lt;/code&gt; step, your code runs the function, and you send back a &lt;code&gt;function_result&lt;/code&gt;. Here's step one, from Google's &lt;a href="https://aistudio.google.com/docs/function-calling" rel="noopener noreferrer"&gt;function calling guide&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl -X POST &lt;span class="s2"&gt;"https://generativelanguage.googleapis.com/v1beta/interactions"&lt;/span&gt; \
  -H &lt;span class="s2"&gt;"x-goog-api-key: $GEMINI_API_KEY"&lt;/span&gt; \
  -H &lt;span class="s1"&gt;'Content-Type: application/json'&lt;/span&gt; \
  -d &lt;span class="s1"&gt;'{
    "model": "gemini-4-hydrogen",
    "input": "What'&lt;/span&gt;\&lt;span class="s1"&gt;''&lt;/span&gt;s the temperature &lt;span class="k"&gt;in&lt;/span&gt; London?&lt;span class="s2"&gt;",
    "&lt;/span&gt;tools&lt;span class="s2"&gt;": [{
      "&lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="s2"&gt;": "&lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="s2"&gt;",
      "&lt;/span&gt;name&lt;span class="s2"&gt;": "&lt;/span&gt;get_current_temperature&lt;span class="s2"&gt;",
      "&lt;/span&gt;description&lt;span class="s2"&gt;": "&lt;/span&gt;Gets the current temperature &lt;span class="k"&gt;for&lt;/span&gt; a given location.&lt;span class="s2"&gt;",
      "&lt;/span&gt;parameters&lt;span class="s2"&gt;": {
        "&lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="s2"&gt;": "&lt;/span&gt;object&lt;span class="s2"&gt;",
        "&lt;/span&gt;properties&lt;span class="s2"&gt;": {
          "&lt;/span&gt;location&lt;span class="s2"&gt;": {"&lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="s2"&gt;": "&lt;/span&gt;string&lt;span class="s2"&gt;", "&lt;/span&gt;description&lt;span class="s2"&gt;": "&lt;/span&gt;The city name&lt;span class="s2"&gt;"}
        },
        "&lt;/span&gt;required&lt;span class="s2"&gt;": ["&lt;/span&gt;location&lt;span class="s2"&gt;"]
      }
    }]
  }'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F92y5c0tbskdedxaxxtq6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F92y5c0tbskdedxaxxtq6.png" alt="Gemini 4 Hydrogen function calling loop: your app sends input and tools, the model returns a function_call step with name, arguments and id, your code runs the function, and you send a function_result with call_id and previous_interaction_id until the model returns a model_output with the final answer" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Find the step where &lt;code&gt;type&lt;/code&gt; is &lt;code&gt;function_call&lt;/code&gt; and read its &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;arguments&lt;/code&gt; and &lt;code&gt;id&lt;/code&gt;. Run your function, then send the result back on the same session:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;fc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;interaction&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;steps&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;"function_call"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;get_current_temperature&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;fc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;final&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;interactions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"gemini-4-hydrogen"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="s2"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"function_result"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s2"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;fc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s2"&gt;"call_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;fc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s2"&gt;"result"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;weather_function&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;previous_interaction_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;interaction&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;final&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output_text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;previous_interaction_id&lt;/code&gt; keeps conversation and thought state on Google's side, so you don't resend history. One warning from Google's migration notes: prompting the model to print raw JSON "tool calls" with no tools declared can return &lt;code&gt;MALFORMED_FUNCTION_CALL&lt;/code&gt;. Declare tools natively or use structured outputs.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you stream Gemini 4 Hydrogen responses?
&lt;/h2&gt;

&lt;p&gt;Add &lt;code&gt;"stream": true&lt;/code&gt; to the body. The API answers with Server-Sent Events:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl -X POST &lt;span class="s2"&gt;"https://generativelanguage.googleapis.com/v1beta/interactions"&lt;/span&gt; \
  -H &lt;span class="s2"&gt;"x-goog-api-key: $GEMINI_API_KEY"&lt;/span&gt; \
  -H &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; \
  --no-buffer \
  -d &lt;span class="s1"&gt;'{
    "model": "gemini-4-hydrogen",
    "input": "Explain idempotency keys in three short paragraphs.",
    "stream": true
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Per Google's &lt;a href="https://aistudio.google.com/docs/streaming" rel="noopener noreferrer"&gt;streaming guide&lt;/a&gt;, you get &lt;code&gt;interaction.created&lt;/code&gt;, then &lt;code&gt;step.start&lt;/code&gt;, &lt;code&gt;step.delta&lt;/code&gt; and &lt;code&gt;step.stop&lt;/code&gt; for each step (&lt;code&gt;thought&lt;/code&gt;, then &lt;code&gt;model_output&lt;/code&gt;), then &lt;code&gt;interaction.completed&lt;/code&gt; with the final &lt;code&gt;usage&lt;/code&gt;. Append &lt;code&gt;delta.text&lt;/code&gt; from &lt;code&gt;model_output&lt;/code&gt; steps to build the answer. Streaming doesn't raise the ceiling: each hop still stops at 65,536 tokens. For longer output, set &lt;code&gt;"background": true&lt;/code&gt; with &lt;code&gt;max_output_tokens&lt;/code&gt; above 65,536 and poll &lt;code&gt;GET /v1beta/interactions/{id}&lt;/code&gt; until &lt;code&gt;status&lt;/code&gt; leaves &lt;code&gt;in_progress&lt;/code&gt; or &lt;code&gt;queued&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you handle Gemini 4 Hydrogen API errors?
&lt;/h2&gt;

&lt;p&gt;Non-streaming errors come back as an HTTP status plus an &lt;code&gt;error&lt;/code&gt; object with &lt;code&gt;code&lt;/code&gt; and &lt;code&gt;message&lt;/code&gt;. In a stream, you get an &lt;code&gt;error&lt;/code&gt; event with the same fields. The codes you'll hit most, from Google's &lt;a href="https://aistudio.google.com/docs/api-errors" rel="noopener noreferrer"&gt;API errors page&lt;/a&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;HTTP&lt;/th&gt;
&lt;th&gt;&lt;code&gt;code&lt;/code&gt;&lt;/th&gt;
&lt;th&gt;What to do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;400&lt;/td&gt;
&lt;td&gt;&lt;code&gt;invalid_request&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fix the payload; check field names against the docs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;403&lt;/td&gt;
&lt;td&gt;&lt;code&gt;permission_denied&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check key permissions, verification or billing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;404&lt;/td&gt;
&lt;td&gt;&lt;code&gt;model_not_found&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check the model string is &lt;code&gt;gemini-4-hydrogen&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;429&lt;/td&gt;
&lt;td&gt;&lt;code&gt;rate_limit_exceeded&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Back off and retry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;429&lt;/td&gt;
&lt;td&gt;&lt;code&gt;quota_exceeded&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Daily quota hit; wait for the reset&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;503&lt;/td&gt;
&lt;td&gt;&lt;code&gt;service_unavailable&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Back off and retry&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Google's &lt;a href="https://aistudio.google.com/docs/troubleshooting" rel="noopener noreferrer"&gt;troubleshooting guide&lt;/a&gt; says to retry only &lt;code&gt;429&lt;/code&gt;, &lt;code&gt;408&lt;/code&gt; and &lt;code&gt;5xx&lt;/code&gt;, with exponential backoff plus jitter and a retry cap, and never &lt;code&gt;400&lt;/code&gt;, &lt;code&gt;402&lt;/code&gt; or &lt;code&gt;403&lt;/code&gt;. The Python SDK already retries transient errors up to four times.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let your coding agent test the Hydrogen API with Apidog CLI
&lt;/h2&gt;

&lt;p&gt;Rather than reading JSON after every prompt or thinking-level change, let your coding agent (Claude Code, Codex, Cursor) build a repeatable test and run it with &lt;a href="https://apidog.com/apidog-cli/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Set it up once:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm install -g apidog-cli@latest
apidog login --with-token &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;YOUR_TOKEN&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
npx -y skills add https://apidog.com   &lt;span class="c"&gt;# pick your agent when prompted&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then give your agent one prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;In Apidog project &amp;lt;projectId&amp;gt;, create an environment "gemini" with base URL
https://generativelanguage.googleapis.com and variables GEMINI_API_KEY and
THINKING (default "low"). Add an endpoint for POST /v1beta/interactions with the
x-goog-api-key header from GEMINI_API_KEY. Create a test case that sends model
"gemini-4-hydrogen", a short prompt and generation_config.thinking_level
{{THINKING}}, and asserts: HTTP 200, status is "completed", steps contains a
non-empty model_output, and usage.total_tokens exists. Run it at low and at high,
then compare usage.total_thought_tokens.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent checks each payload against the CLI's schemas before it writes anything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apidog environment create gemini --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --base-url https://generativelanguage.googleapis.com
apidog cli-schema get endpoint-create
apidog cli-schema validate endpoint-create --file endpoint.json
apidog endpoint create --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --file endpoint.json
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --file case.json
apidog run --test-case &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;caseId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; -e &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;envId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --env-var &lt;span class="s2"&gt;"THINKING=low"&lt;/span&gt; -r cli,json
apidog run --test-case &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;caseId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; -e &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;envId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --env-var &lt;span class="s2"&gt;"THINKING=high"&lt;/span&gt; -r cli,json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8ie9lposkqf2456wyg9y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8ie9lposkqf2456wyg9y.png" alt="Flow from one prompt to your coding agent, through apidog environment create, cli-schema validate, test-case create and two apidog run commands at thinking levels low and high, against POST /v1beta/interactions with model gemini-4-hydrogen; the results table shows illustrative token counts, not measured ones" width="799" height="341"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The two runs compare thought tokens for the same prompt, the number that moves your bill. Swap &lt;code&gt;-r cli,json&lt;/code&gt; for &lt;code&gt;-r junit&lt;/code&gt; and the same run goes into CI; the &lt;a href="http://apidog.com/blog/apidog-cli-ci-cd-pipeline?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI CI/CD guide&lt;/a&gt; shows the pipeline and &lt;a href="http://apidog.com/blog/apidog-cli-in-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI in Claude Code&lt;/a&gt; covers the agent setup. Apidog's Free plan covers up to 4 users.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is the Gemini 4 Hydrogen model ID?&lt;/strong&gt; &lt;code&gt;gemini-4-hydrogen&lt;/code&gt;. It works with the Interactions API and &lt;code&gt;generateContent&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is the Gemini 4 Hydrogen API free?&lt;/strong&gt; Yes, within limits. Google lists Hydrogen on the free tier of the Gemini API and AI Studio, rate-limited. Paid use costs $1.50 per 1M input tokens and $7.50 per 1M output tokens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I migrate from Gemini 3.8 Flash?&lt;/strong&gt; Change the model string, raise low &lt;code&gt;max_output_tokens&lt;/code&gt; caps, remove &lt;code&gt;temperature&lt;/code&gt;, &lt;code&gt;top_p&lt;/code&gt;, &lt;code&gt;top_k&lt;/code&gt; and explicit caching (&lt;code&gt;cachedContents&lt;/code&gt;), and replace &lt;code&gt;minimal&lt;/code&gt; thinking with &lt;code&gt;low&lt;/code&gt; or &lt;code&gt;medium&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does Hydrogen support context caching?&lt;/strong&gt; Only implicit caching. It runs by default on prompts of at least 4,096 tokens and discounts cache hits by 95%. Explicit caching isn't supported.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How is Hydrogen different from Gemini 4 Argon in the API?&lt;/strong&gt; Same request schema. Hydrogen defaults to &lt;code&gt;high&lt;/code&gt; and adds &lt;code&gt;xhigh&lt;/code&gt;, while Argon defaults to &lt;code&gt;medium&lt;/code&gt;. See the &lt;a href="http://apidog.com/blog/gemini-4-argon-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Argon API guide&lt;/a&gt;, the &lt;a href="http://apidog.com/blog/gemini-4-carbon-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Carbon API guide&lt;/a&gt; and &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-orchestrator?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Hydrogen Orchestrator&lt;/a&gt; for pairing models.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What Is Gemini 4 Hydrogen? Google's Fast Gemini 4 Model for Agentic Work</title>
      <dc:creator>Hassann</dc:creator>
      <pubDate>Fri, 13 Nov 2026 07:34:05 +0000</pubDate>
      <link>https://dev.to/hassann/what-is-gemini-4-hydrogen-googles-fast-gemini-4-model-for-agentic-work-541f</link>
      <guid>https://dev.to/hassann/what-is-gemini-4-hydrogen-googles-fast-gemini-4-model-for-agentic-work-541f</guid>
      <description>&lt;h1&gt;
  
  
  Gemini 4 Hydrogen: Google's Fast, Cheap Model for Everyday Coding and Agents
&lt;/h1&gt;

&lt;p&gt;Gemini 4 Hydrogen is Google's fast, lower-cost Gemini 4 model, released on November 12, 2026, and built for everyday coding and agent work. It costs $1.50 per million input tokens and $7.50 per million output tokens across a 1M-token context, offers four thinking levels (low, medium, high, xhigh), and is available on the Gemini API free tier.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Try Apidog today&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;If you run Gemini 3.8 Flash, Hydrogen is Google's recommended upgrade. If you pay for Carbon or Argon on routine steps, Hydrogen is meant to take those over. Here's what shipped, how it fits, and what's still unknown.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Gemini 4 Hydrogen?
&lt;/h2&gt;

&lt;p&gt;Gemini 4 Hydrogen (&lt;code&gt;gemini-4-hydrogen&lt;/code&gt;) is the speed tier of Google's Gemini 4 family. Google calls it the "daily driver for agentic workflows": a model that writes code, calls tools, runs tests and reads documents quickly, either on its own or as the execution engine under a frontier model like &lt;a href="http://apidog.com/blog/what-is-gemini-4-carbon?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Carbon&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F06ssihiubo8acibdk0ls.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F06ssihiubo8acibdk0ls.png" alt="Gemini 4 Hydrogen" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The quick facts, from Google's &lt;a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/introducing-gemini-4-hydrogen/" rel="noopener noreferrer"&gt;launch post&lt;/a&gt; and the &lt;a href="https://aistudio.google.com/docs/whats-new-gemini-4-hydrogen" rel="noopener noreferrer"&gt;AI Studio "What's new" guide&lt;/a&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Spec&lt;/th&gt;
&lt;th&gt;Gemini 4 Hydrogen&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Model ID&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-4-hydrogen&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Released&lt;/td&gt;
&lt;td&gt;November 12, 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Paid price&lt;/td&gt;
&lt;td&gt;$1.50 / 1M input, $7.50 / 1M output (flat across the full context)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cached input&lt;/td&gt;
&lt;td&gt;$0.075 / 1M tokens via implicit caching&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context window&lt;/td&gt;
&lt;td&gt;1,048,576 tokens, shared by input, thinking and output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output per request&lt;/td&gt;
&lt;td&gt;65,536 tokens synchronous; up to 1M with background execution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Thinking levels&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt; (default), &lt;code&gt;xhigh&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Inputs&lt;/td&gt;
&lt;td&gt;Text, images, PDFs, spreadsheets, charts, audio, video&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free tier&lt;/td&gt;
&lt;td&gt;Yes, rate-limited, in AI Studio and the Gemini API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;APIs&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;generateContent&lt;/code&gt; and the Interactions API&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Output tokens include thinking tokens, so a request at &lt;code&gt;xhigh&lt;/code&gt; costs more than the same request at &lt;code&gt;low&lt;/code&gt; even when the visible answer is the same length.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hydrogen vs Carbon vs Argon: where it fits
&lt;/h2&gt;

&lt;p&gt;All three Gemini 4 models share the same 1M unified context, long-decode design and built-in tools. They differ in how much each thinks per turn and what it costs.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Hydrogen&lt;/th&gt;
&lt;th&gt;Argon&lt;/th&gt;
&lt;th&gt;Carbon&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Role&lt;/td&gt;
&lt;td&gt;Fast execution, everyday coding&lt;/td&gt;
&lt;td&gt;Most long-horizon tasks, fewer tokens than Carbon&lt;/td&gt;
&lt;td&gt;Strongest frontier model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Default thinking&lt;/td&gt;
&lt;td&gt;&lt;code&gt;high&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;medium&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;medium&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Highest thinking&lt;/td&gt;
&lt;td&gt;&lt;code&gt;xhigh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;high&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;high&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Non-streaming hop&lt;/td&gt;
&lt;td&gt;65,536 tokens&lt;/td&gt;
&lt;td&gt;32,768 tokens (REST)&lt;/td&gt;
&lt;td&gt;32,768 tokens (REST)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google's advice&lt;/td&gt;
&lt;td&gt;Upgrade path from 3.8 Flash&lt;/td&gt;
&lt;td&gt;Advanced long tasks&lt;/td&gt;
&lt;td&gt;Hard architecture, security, science&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Google's own guidance is to pair them: let Carbon plan interfaces or untangle a hard bug, then hand code edits, parallel subagent work and test runs to Hydrogen. Switching models inside one conversation works through &lt;code&gt;previous_interaction_id&lt;/code&gt; in the Interactions API, with no request schema changes.&lt;/p&gt;

&lt;p&gt;For a deeper split between the two frontier models, read &lt;a href="http://apidog.com/blog/gemini-4-carbon-vs-argon?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Carbon vs Argon&lt;/a&gt;. For their costs, see the &lt;a href="http://apidog.com/blog/gemini-4-carbon-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Carbon pricing&lt;/a&gt; and &lt;a href="http://apidog.com/blog/gemini-4-argon-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Argon pricing&lt;/a&gt; breakdowns.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four thinking levels
&lt;/h2&gt;

&lt;p&gt;Hydrogen's thinking level is your main control over speed, quality and spend. It's set with the &lt;code&gt;thinking_level&lt;/code&gt; field, and Google recommends you start at the default and move only when your evals tell you to.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8mun32lo9g8spd2zux9c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8mun32lo9g8spd2zux9c.png" alt="Gemini 4 Hydrogen thinking levels on a slider: low for fewest tokens and lowest latency, medium for interactive coding and live UI, high as the default for most agentic work, and xhigh for the deepest reasoning and most tokens" width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;low&lt;/code&gt;&lt;/strong&gt;: fewest tokens, lowest latency. Fast chat and high-throughput processing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;medium&lt;/code&gt;&lt;/strong&gt;: interactive coding, live UI prototyping and latency-sensitive tool calls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;high&lt;/code&gt;&lt;/strong&gt; (default): complex coding, agentic execution, tool calling and multimodal document work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;xhigh&lt;/code&gt;&lt;/strong&gt;: new with Hydrogen. Hard multi-step problems where &lt;code&gt;high&lt;/code&gt; falls short.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Google warns that &lt;code&gt;xhigh&lt;/code&gt; can overthink simple prompts, adding latency and tokens without a better answer. Its advice: run your eval suite at all four levels with a generous &lt;code&gt;max_output_tokens&lt;/code&gt;, then pick the lowest level that meets your quality bar. If you're migrating from 3.8 Flash, note that Hydrogen rejects &lt;code&gt;minimal&lt;/code&gt; with an error and defaults to &lt;code&gt;high&lt;/code&gt; rather than &lt;code&gt;medium&lt;/code&gt;. The &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Hydrogen pricing guide&lt;/a&gt; works through what each level costs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini 4 Hydrogen benchmarks
&lt;/h2&gt;

&lt;p&gt;All the numbers below are Google's, published at launch. Independent replication was thin a day after release, so treat them as the vendor's claims.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Against Argon and its own settings&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://artificialanalysis.ai/" rel="noopener noreferrer"&gt;Artificial Analysis Intelligence Index&lt;/a&gt;: 51 at &lt;code&gt;high&lt;/code&gt;, ahead of Argon's 50, and 54 at &lt;code&gt;xhigh&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Against Gemini 3.8 Flash&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2.5x faster at the &lt;code&gt;high&lt;/code&gt; default.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.tbench.ai/" rel="noopener noreferrer"&gt;Terminal-Bench&lt;/a&gt; 4.1: 57% vs 18.2%.&lt;/li&gt;
&lt;li&gt;More than 5x fewer fabricated claims.&lt;/li&gt;
&lt;li&gt;Launch partners report 2x to 2.8x faster runs and 12% to 23% fewer tokens on graph, SQL and data-heavy workloads.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Agentic and domain work&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HLE-Diamond: 58.8%, which Google says leads its class.&lt;/li&gt;
&lt;li&gt;Vals Tax Agent Bench: ranked #1 at 52.3%.&lt;/li&gt;
&lt;li&gt;Vals Legal Research Bench: tied for #1 at 55.8%.&lt;/li&gt;
&lt;li&gt;Agent Arena (&lt;a href="http://arena.ai" rel="noopener noreferrer"&gt;arena.ai&lt;/a&gt;): #5.&lt;/li&gt;
&lt;li&gt;Multimodal Knowledge Agent (MKA): 53.4%.&lt;/li&gt;
&lt;li&gt;Agents' Last Exam v1.1: 71.6%.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Safety, per Google&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Up to 81% less overreach and up to 79% less under-service in agentic tasks.&lt;/li&gt;
&lt;li&gt;12x fewer misaligned actions and task shortcuts across tool-use and coding evals.&lt;/li&gt;
&lt;li&gt;96.7% on Google's internal agent honesty evaluation.&lt;/li&gt;
&lt;li&gt;More than 2.3x more resilient to indirect prompt injection on the Gray Swan IPI benchmark.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The pattern matters more than any single score: Hydrogen roughly matches Argon on general intelligence and is a large jump over 3.8 Flash on agentic coding. Test it on your workload before you trust it. The &lt;a href="https://storage.googleapis.com/deepmind-media/Model-Cards/Gemini-4-Hydrogen-Model-Card.pdf" rel="noopener noreferrer"&gt;model card&lt;/a&gt; has Google's full evaluation notes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where you can use Gemini 4 Hydrogen today
&lt;/h2&gt;

&lt;p&gt;Google rolled Hydrogen out across developer, business and consumer products on launch day:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemini API, Google AI Studio and Android Studio&lt;/strong&gt;: all tiers, free and paid. The free tier is rate-limited; the &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Hydrogen free guide&lt;/a&gt; covers what you get without a card.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini for business&lt;/strong&gt;: through the API, the model dropdown, Antigravity, and Gemini in Google Sheets for eligible business plans.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini app&lt;/strong&gt;: in the model dropdown. Free users get Hydrogen only through auto model selection, when Gemini decides it fits the prompt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Search&lt;/strong&gt;: powering responses for all users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Sheets&lt;/strong&gt;: starting with Google AI Pro and Ultra subscribers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Antigravity&lt;/strong&gt;: for paid Google AI Pro and Ultra subscribers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hydrogen is also now the default model behind the Antigravity agent in Gemini Managed Agents, so anyone calling that agent through the API is already on Hydrogen unless they configure another model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Orchestrator: Hydrogen and Carbon in one session
&lt;/h2&gt;

&lt;p&gt;Orchestrator is a new model option in Google Antigravity that switches between Carbon and Hydrogen inside one task, in both directions. Carbon explores and plans, Hydrogen writes edits, updates packages and runs tests, and when Hydrogen hits friction it hands control back to Carbon to repair the plan. It replaces the static router that guesses difficulty once from your first prompt.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flrf8yzr06us3sdw2e3fp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flrf8yzr06us3sdw2e3fp.png" alt="Orchestrator loop in Google Antigravity: Gemini 4 Carbon explores, plans and re-plans, hands off to Gemini 4 Hydrogen to write edits, update packages and run tests, and Hydrogen hands back to Carbon when it hits friction, until the task is done in one session" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On Terminal-Bench, Google says Orchestrator reached near-Carbon success rates while using 24% less quota and finishing 19% faster on average. Note that Google's two launch posts cite different versions of the benchmark for this result (4.0 in the main post, 4.1 in the &lt;a href="https://antigravity.google/blog/gemini-4-hydrogen-in-google-antigravity/" rel="noopener noreferrer"&gt;Antigravity post&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Availability is tiered. Ultra subscribers get Orchestrator (Carbon) and Orchestrator (Argon); paid Pro subscribers get Orchestrator (Argon). If you'd rather wire the roles yourself, the Antigravity SDK lets you assign Hydrogen and Carbon agents explicitly. The &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-orchestrator?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Hydrogen Orchestrator guide&lt;/a&gt; goes deeper.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limits and open questions
&lt;/h2&gt;

&lt;p&gt;A day after launch, plan around these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Benchmarks are self-reported.&lt;/strong&gt; Every number above comes from Google or its launch partners.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No explicit caching.&lt;/strong&gt; &lt;code&gt;cachedContents&lt;/code&gt; and &lt;code&gt;caches.create&lt;/code&gt; aren't supported; only the implicit cache on prompts of 4,096+ tokens applies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sampling parameters are ignored.&lt;/strong&gt; &lt;code&gt;temperature&lt;/code&gt;, &lt;code&gt;top_p&lt;/code&gt; and &lt;code&gt;top_k&lt;/code&gt; have no effect, so you can't tune randomness that way.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free-tier limits live on a separate page.&lt;/strong&gt; Google points to its &lt;a href="https://aistudio.google.com/docs/rate-limits" rel="noopener noreferrer"&gt;rate limits page&lt;/a&gt; rather than listing Hydrogen's numbers in the launch guide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orchestrator is Antigravity-only.&lt;/strong&gt; There's no API-level Orchestrator; in your own code you route models yourself.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Test Gemini 4 Hydrogen with Apidog CLI and your coding agent
&lt;/h2&gt;

&lt;p&gt;To decide if Hydrogen can replace 3.8 Flash, run the same request against both and compare. Let your coding agent do it, so the swap becomes a test result, not a guess. This request follows Google's documented &lt;code&gt;generateContent&lt;/code&gt; format; we haven't live-run it for this post:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;MODEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"${GEMINI_MODEL:-gemini-4-hydrogen}"&lt;/span&gt;

curl -s &lt;span class="s2"&gt;"https://generativelanguage.googleapis.com/v1beta/models/${MODEL}:generateContent"&lt;/span&gt; \
  -H &lt;span class="s2"&gt;"x-goog-api-key: $GEMINI_API_KEY"&lt;/span&gt; \
  -H &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; \
  -d &lt;span class="s1"&gt;'{"contents": [{"parts": [{"text": "List three checks a CI job should run before a release."}]}]}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://apidog.com/apidog-cli/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI&lt;/a&gt; gives Claude Code, Codex, Cursor or OpenCode a command-line way to create and run API tests. Set it up once:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm install -g apidog-cli@latest
apidog login --with-token &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;YOUR_TOKEN&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
npx -y skills add https://apidog.com   &lt;span class="c"&gt;# pick your agent when prompted&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then give your agent one prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;In Apidog project &amp;lt;id&amp;gt;, create an environment for the Gemini API with a MODEL
variable set to gemini-4-hydrogen and a GEMINI_API_KEY variable. Add a test case
for POST /v1beta/models/{MODEL}:generateContent that asserts HTTP 200, a non-empty
candidates array, and that usageMetadata is present. Run it for gemini-4-hydrogen
and gemini-3.8-flash and compare response time and token counts.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent creates the environment, validates the test case payload against its schema, then runs it once per model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apidog environment create gemini-api --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;id&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --base-url https://generativelanguage.googleapis.com
apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;id&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --file case.json
apidog run --test-case &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;caseId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;id&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; -e &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;envId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --env-var &lt;span class="s2"&gt;"MODEL=gemini-4-hydrogen"&lt;/span&gt; -r cli,json
apidog run --test-case &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;caseId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;id&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; -e &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;envId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --env-var &lt;span class="s2"&gt;"MODEL=gemini-3.8-flash"&lt;/span&gt; -r cli,json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Put the same &lt;code&gt;apidog run ... -r junit&lt;/code&gt; into CI with the &lt;a href="http://apidog.com/blog/apidog-cli-ci-cd-pipeline?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI CI/CD guide&lt;/a&gt;, or start from &lt;a href="http://apidog.com/blog/apidog-cli-in-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI in Claude Code&lt;/a&gt;. For full request examples, see the &lt;a href="http://apidog.com/blog/gemini-4-hydrogen-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini 4 Hydrogen API guide&lt;/a&gt;. Apidog's Free plan covers up to 4 users.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is Gemini 4 Hydrogen free?&lt;/strong&gt; Yes, within limits. Google lists Hydrogen on the free tier of the Gemini API and in Google AI Studio, rate-limited. Paid use costs $1.50 per million input tokens and $7.50 per million output tokens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the Gemini 4 Hydrogen model ID?&lt;/strong&gt; &lt;code&gt;gemini-4-hydrogen&lt;/code&gt;. It works with both &lt;code&gt;generateContent&lt;/code&gt; and the Interactions API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is Gemini 4 Hydrogen better than Gemini 4 Argon?&lt;/strong&gt; On Google's numbers, Hydrogen scores 51 on the Artificial Analysis Intelligence Index at &lt;code&gt;high&lt;/code&gt; against Argon's 50, and 54 at &lt;code&gt;xhigh&lt;/code&gt;. Argon is still pitched for most advanced long-horizon tasks, so test both on your own workload.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the xhigh thinking level?&lt;/strong&gt; It's a fourth thinking level, new with Hydrogen, above the default &lt;code&gt;high&lt;/code&gt;. It spends the most tokens for the deepest reasoning. Google recommends it only for hard multi-step problems where &lt;code&gt;high&lt;/code&gt; falls short.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does Gemini 4 Hydrogen replace Gemini 3.8 Flash?&lt;/strong&gt; Google calls it the recommended upgrade from 3.8 Flash. Change the model ID, raise any low &lt;code&gt;max_output_tokens&lt;/code&gt; caps, remove explicit caching and sampling parameters, and retest your thinking level.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I use Orchestrator through the Gemini API?&lt;/strong&gt; No. Orchestrator is a model option inside Google Antigravity for paid AI Pro and Ultra subscribers. In the API, you route between Carbon and Hydrogen yourself, for example with &lt;code&gt;previous_interaction_id&lt;/code&gt; across turns.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What Is ERNIE 5.5 Flash?</title>
      <dc:creator>Hassann</dc:creator>
      <pubDate>Fri, 13 Nov 2026 06:24:56 +0000</pubDate>
      <link>https://dev.to/hassann/what-is-ernie-55-flash-4c3h</link>
      <guid>https://dev.to/hassann/what-is-ernie-55-flash-4c3h</guid>
      <description>&lt;p&gt;What is ERNIE 5.5 Flash? It’s Baidu’s newest open-weight model family: a sparse mixture-of-experts (MoE) language model with 280B total parameters, 14B active per token and a 1M-token context window. It ships as two separate artifacts. &lt;strong&gt;ERNIE 5.5 Flash Base&lt;/strong&gt; (November 5, 2026) is a raw pretraining checkpoint on Hugging Face. &lt;strong&gt;ERNIE 5.5 Flash Preview&lt;/strong&gt; (November 11, 2026) is the post-trained chat and agent model, live as an API on Baidu Qianfan and as a free endpoint on OpenRouter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Try Apidog today&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What is ERNIE 5.5 Flash?
&lt;/h2&gt;

&lt;p&gt;ERNIE 5.5 Flash is a 280B-parameter sparse MoE language model from Baidu that activates 14B parameters per token and supports a 1M-token context. It’s text-only, trained from scratch on 33.5T tokens, and built for coding, agentic tasks, knowledge work and long documents. It comes as a Base checkpoint and a post-trained Preview.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxi27xj6463ya8phqwtyf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxi27xj6463ya8phqwtyf.png" alt="ERNIE 5.5 Flash" width="800" height="775"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Baidu’s pitch is efficiency. The &lt;a href="https://ernie.baidu.com/release/ernie-5-5-flash-base/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Base release page&lt;/a&gt; says every component was redesigned to balance capability against activated compute, KV cache size and long-context cost. The &lt;a href="https://ernie.baidu.com/release/ernie-5-5-flash-preview?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Preview page&lt;/a&gt; calls the result “strong at coding, 3D modeling, knowledge work and content creation.”&lt;/p&gt;

&lt;p&gt;It succeeds ERNIE 5.1; for background, see &lt;a href="http://apidog.com/blog/what-is-ernie-5-1?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;What is ERNIE 5.1&lt;/a&gt; and the &lt;a href="http://apidog.com/blog/how-to-use-ernie-5-1-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;ERNIE 5.1 API guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  ERNIE 5.5 Flash Preview vs Base
&lt;/h2&gt;

&lt;p&gt;The naming trips people up, so here’s the side-by-side:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;ERNIE 5.5 Flash Base&lt;/th&gt;
&lt;th&gt;ERNIE 5.5 Flash Preview&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Released&lt;/td&gt;
&lt;td&gt;November 5, 2026&lt;/td&gt;
&lt;td&gt;November 11, 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What it is&lt;/td&gt;
&lt;td&gt;End-of-pretraining checkpoint, no mid- or post-training&lt;/td&gt;
&lt;td&gt;First post-trained model built on Base, an intermediate checkpoint&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use it for&lt;/td&gt;
&lt;td&gt;Fine-tuning, domain adaptation, RL research&lt;/td&gt;
&lt;td&gt;Chat, coding agents, tool calling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How to call it&lt;/td&gt;
&lt;td&gt;Self-host; &lt;code&gt;completions&lt;/code&gt; endpoint only&lt;/td&gt;
&lt;td&gt;Qianfan API, OpenRouter &lt;code&gt;baidu/ernie-5.5-flash-preview:free&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Weights&lt;/td&gt;
&lt;td&gt;Public on Hugging Face (FP8 and BF16)&lt;/td&gt;
&lt;td&gt;Not public yet; Baidu says Apache 2.0 “soon”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Licence&lt;/td&gt;
&lt;td&gt;ERNIE 5.5 Flash Base Model License v1.0&lt;/td&gt;
&lt;td&gt;Apache 2.0 promised, not yet published&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Size&lt;/td&gt;
&lt;td&gt;280B total, 14B active&lt;/td&gt;
&lt;td&gt;280B total, 14B active&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context&lt;/td&gt;
&lt;td&gt;128K training, 1M for fine-tuning and inference&lt;/td&gt;
&lt;td&gt;1,024,000 tokens on OpenRouter&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmywlrmzzyky5y095wbv2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmywlrmzzyky5y095wbv2.png" alt="Diagram comparing ERNIE 5.5 Flash Base, a pretraining checkpoint on Hugging Face, with ERNIE 5.5 Flash Preview, the post-trained chat model on Qianfan and OpenRouter, both sharing 280B total and 14B active parameters" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The rule: to chat with it or plug it into a coding agent, use &lt;strong&gt;Preview&lt;/strong&gt;. To train your own model on a strong pretrained start, use &lt;strong&gt;Base&lt;/strong&gt;. Base isn’t instruction-tuned, so it won’t follow chat prompts.&lt;/p&gt;

&lt;p&gt;Baidu is open about Preview being unfinished. The release page calls it “an intermediate checkpoint from post-training” and says “some capabilities may still fall short” until the official release.&lt;/p&gt;

&lt;h2&gt;
  
  
  ERNIE 5.5 Flash architecture
&lt;/h2&gt;

&lt;p&gt;Here are the parts of Baidu’s technical write-up that matter to you as a user.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hybrid sparse attention
&lt;/h3&gt;

&lt;p&gt;The model has 43 Transformer layers. Only 6 of them (roughly one in seven) keep token-level access to the full context, using Multi-head Latent Attention (MLA) with sparse attention (DSA). The other 37 layers use Heavily Compressed Attention (HCA), which squeezes every 128 tokens into a single cached entry and attends over those plus a short window of recent tokens.&lt;/p&gt;

&lt;p&gt;Why you care: the KV cache stays small, so a 1M-token context is cheaper to serve than the parameter count suggests. Baidu says the sparse attention in the MLA layers keeps the per-query cost of core attention constant as context grows.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multi-Router latent MoE
&lt;/h3&gt;

&lt;p&gt;A normal MoE layer uses one router to pick its top-k experts. ERNIE 5.5 Flash uses several independently initialized routers that score experts jointly, which Baidu says corrects bad expert choices that a single router would reinforce. Each MoE layer holds 512 routed experts (10 active per token) plus 1 shared expert, running in a 2048-dimension latent space to roughly halve expert compute and traffic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Other changes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MultiMax output head:&lt;/strong&gt; a learnable piecewise softmax temperature.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ECHO instead of MTP:&lt;/strong&gt; the final layer predicts future tokens and doubles as a speculative-decoding draft model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tokenizer:&lt;/strong&gt; about 200K entries, with numbers split right to left in groups of three digits.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjg7wdebbsap0lvw974yk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjg7wdebbsap0lvw974yk.png" alt="Architecture diagram of ERNIE 5.5 Flash showing 43 layers, 37 compressed HCA attention layers, 6 full-access MLA layers, and a Multi-Router MoE block with 512 experts and 10 active per token" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ERNIE 5.5 Flash benchmarks
&lt;/h2&gt;

&lt;p&gt;All numbers below are Baidu’s own, from its release pages. Many comparison scores carry Baidu’s asterisk, meaning Baidu ran the evaluation itself rather than quoting the other lab.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preview (post-trained), selected rows from Baidu’s table:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;ERNIE 5.5 Flash Preview&lt;/th&gt;
&lt;th&gt;DeepSeek-V4.1-Flash&lt;/th&gt;
&lt;th&gt;GPT-6.1 Sol&lt;/th&gt;
&lt;th&gt;Claude Opus 5.5&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Terminal-Bench 4.0&lt;/td&gt;
&lt;td&gt;46.5&lt;/td&gt;
&lt;td&gt;42.3&lt;/td&gt;
&lt;td&gt;56.1&lt;/td&gt;
&lt;td&gt;66.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSWE v1.1&lt;/td&gt;
&lt;td&gt;71.2&lt;/td&gt;
&lt;td&gt;77.0&lt;/td&gt;
&lt;td&gt;75.2&lt;/td&gt;
&lt;td&gt;74.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MCP-Atlas&lt;/td&gt;
&lt;td&gt;84.6&lt;/td&gt;
&lt;td&gt;77.8&lt;/td&gt;
&lt;td&gt;81.0&lt;/td&gt;
&lt;td&gt;84.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AutomationBench&lt;/td&gt;
&lt;td&gt;61.9&lt;/td&gt;
&lt;td&gt;60.5&lt;/td&gt;
&lt;td&gt;49.3&lt;/td&gt;
&lt;td&gt;58.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BrowseComp&lt;/td&gt;
&lt;td&gt;87.4&lt;/td&gt;
&lt;td&gt;80.3&lt;/td&gt;
&lt;td&gt;87.5&lt;/td&gt;
&lt;td&gt;90.8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HLE (no tools, text-only)&lt;/td&gt;
&lt;td&gt;46.4&lt;/td&gt;
&lt;td&gt;44.0&lt;/td&gt;
&lt;td&gt;52.9&lt;/td&gt;
&lt;td&gt;61.4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Read that honestly: Preview beats its size class on several agent and knowledge-work tests (MCP-Atlas, AutomationBench, SpreadsheetBench) and trails frontier models on hard agentic coding like Terminal-Bench. It lands below DeepSeek-V4.1-Flash on DeepSWE. For a full head-to-head with DeepSeek, see the sibling post &lt;a href="http://apidog.com/blog/ernie-5-5-flash-vs-deepseek-v4-1-flash?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;ERNIE 5.5 Flash vs DeepSeek V4.1 Flash&lt;/a&gt;, and our &lt;a href="http://apidog.com/blog/what-is-deepseek-v4-1-flash?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;DeepSeek V4.1 Flash explainer&lt;/a&gt; for the other side.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Base (pretrained), against base models of similar size:&lt;/strong&gt; Baidu reports MMLU-Pro 78.4 vs 69.2 for DeepSeek-V4-Flash-Base, HumanEval+ 82.3 vs 69.5, LiveCodeBench 40.1 vs 31.9 and LongBench-v2 48.7 vs 44.5. It loses a few rows, such as InfiniteBench. The full table is on the &lt;a href="https://huggingface.co/baidu/ERNIE-5.5-Flash-Base" rel="noopener noreferrer"&gt;Hugging Face model card&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;On speed, OpenRouter’s description says “more than 200 tokens per second.” OpenRouter’s own 3-day dashboard on November 12 showed a P50 throughput of 79 tokens per second on the free endpoint, which is shared traffic, so expect your numbers to vary.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to access ERNIE 5.5 Flash
&lt;/h2&gt;

&lt;p&gt;You have three routes today:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;OpenRouter (free, Preview):&lt;/strong&gt; call &lt;code&gt;baidu/ernie-5.5-flash-preview:free&lt;/code&gt; through OpenRouter’s OpenAI-compatible API. Baidu Qianfan is the only provider, and the &lt;a href="https://openrouter.ai/baidu/ernie-5.5-flash-preview:free" rel="noopener noreferrer"&gt;model page&lt;/a&gt; lists $0 input and output. Free endpoints are rate limited per OpenRouter’s limits docs. Full walkthrough in the sibling &lt;a href="http://apidog.com/blog/ernie-5-5-flash-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;ERNIE 5.5 Flash free guide&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Baidu Qianfan (Preview):&lt;/strong&gt; the official API, linked from Baidu’s release page. See the &lt;a href="http://apidog.com/blog/ernie-5-5-flash-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;ERNIE 5.5 Flash API guide&lt;/a&gt; for request setup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hugging Face (Base only):&lt;/strong&gt; download FP8 or BF16 weights and serve them with vLLM (plus the &lt;code&gt;vLLM-ERNIE&lt;/code&gt; plugin) or SGLang. Baidu’s examples use 4-way parallelism on a multi-GPU node. Step-by-step in &lt;a href="http://apidog.com/blog/run-ernie-5-5-flash-locally-vllm?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;run ERNIE 5.5 Flash locally with vLLM&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A minimal OpenRouter call looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://openrouter.ai/api/v1/chat/completions \
  -H &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; \
  -H &lt;span class="s2"&gt;"Authorization: Bearer $OPENROUTER_API_KEY"&lt;/span&gt; \
  -d &lt;span class="s1"&gt;'{
    "model": "baidu/ernie-5.5-flash-preview:free",
    "messages": [{"role": "user", "content": "Explain MoE routing in two sentences."}]
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;OpenRouter says the endpoint accepts &lt;code&gt;tools&lt;/code&gt;, &lt;code&gt;tool_choice&lt;/code&gt;, &lt;code&gt;response_format&lt;/code&gt; with a JSON schema and a &lt;code&gt;reasoning&lt;/code&gt; parameter. If you’d rather drive it from a terminal agent, the sibling post on &lt;a href="http://apidog.com/blog/ernie-5-5-flash-opencode-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;ERNIE 5.5 Flash in OpenCode for free&lt;/a&gt; covers that setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  ERNIE 5.5 Flash licence: what you can and can’t do
&lt;/h2&gt;

&lt;p&gt;The two artifacts have different terms, and the difference matters if you plan to ship a product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Base&lt;/strong&gt; uses the &lt;a href="https://huggingface.co/baidu/ERNIE-5.5-Flash-Base/blob/main/LICENSE" rel="noopener noreferrer"&gt;ERNIE 5.5 Flash Base Model License Agreement v1.0&lt;/a&gt;, not Apache 2.0. In short:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Non-commercial use (research, education, evaluation, personal experiments) is free with no notice.&lt;/li&gt;
&lt;li&gt;Commercial use is free when the annual revenue of the related products is at or below US$50 million, provided you send Baidu a one-time use notice and display “Powered by ERNIE”.&lt;/li&gt;
&lt;li&gt;Above US$50 million, you need separate written authorization from Baidu before you start.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Preview&lt;/strong&gt; has no published weights or licence file yet. Baidu says the weights “will be open-sourced under Apache 2.0 soon” but gives no date. Until that file exists, treat Preview as API-only.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who should use ERNIE 5.5 Flash?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Teams running agents on a budget.&lt;/strong&gt; A free OpenRouter endpoint with 1M context and tool calling is a cheap way to test agent loops.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fine-tuning and RL researchers.&lt;/strong&gt; Base is a clean end-of-pretraining checkpoint, which is rare at this size.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Long-document workloads.&lt;/strong&gt; The compressed attention design targets 1M-token inputs without a huge KV cache.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Where to hold back:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Strict JSON pipelines.&lt;/strong&gt; OpenRouter’s dashboard showed a 21.70% structured-output error rate for the free endpoint on November 12. Validate every response.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image input.&lt;/strong&gt; The model is text-only; Baidu’s own benchmark notes say image understanding was supplied by an external tool.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Production SLAs.&lt;/strong&gt; Preview is an unfinished checkpoint served by a single provider.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Let your coding agent test ERNIE 5.5 Flash with Apidog CLI
&lt;/h2&gt;

&lt;p&gt;That 21.70% structured-output error rate is why you test the response shape before building on it. Let Claude Code, Codex or Cursor create the endpoint and test case with &lt;a href="https://apidog.com/apidog-cli/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Set it up once:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm install -g apidog-cli@latest
apidog auth login --with-token &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;YOUR_APIDOG_TOKEN&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
apidog skill install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then give your agent one prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;In Apidog project &amp;lt;projectId&amp;gt;, create an environment "openrouter" with base URL
https://openrouter.ai/api/v1 and my OpenRouter key as a variable. Add a POST
/chat/completions endpoint for model baidu/ernie-5.5-flash-preview:free.
Create a test case that asserts HTTP 200, choices[0].message.content is a
non-empty string, and usage.total_tokens is a number. Run it and summarize failures.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent checks each payload against the CLI schema before it writes anything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apidog environment create openrouter --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --base-url https://openrouter.ai/api/v1
apidog cli-schema get endpoint-create
apidog cli-schema validate endpoint-create --file endpoint.json
apidog endpoint create --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --file endpoint.json
apidog test-case category --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --file case.json
apidog run --test-case &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;caseId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; --project &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;projectId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; -e &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;envId&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; -r cli,json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Swap the base URL for your Qianfan or local vLLM endpoint and the same case checks those too. To run it on every commit, add &lt;code&gt;-r junit&lt;/code&gt; and follow the &lt;a href="http://apidog.com/blog/apidog-cli-ci-cd-pipeline?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI CI/CD guide&lt;/a&gt;. New to the CLI? Start with &lt;a href="http://apidog.com/blog/apidog-cli-in-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI in Claude Code&lt;/a&gt;. Apidog Free covers up to 4 users, so &lt;a href="https://apidog.com/download/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;download Apidog&lt;/a&gt; and try it on your own project.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is ERNIE 5.5 Flash open source?&lt;/strong&gt; Partly. Base weights are public under Baidu’s own licence, free for commercial use up to US$50 million in related annual revenue. Preview weights are promised under Apache 2.0 “soon”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s the difference between ERNIE 5.5 Flash Preview and Base?&lt;/strong&gt; Base is the raw pretraining checkpoint for fine-tuning. Preview is the post-trained chat and agent model you call through an API. Both have 280B total and 14B active parameters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is ERNIE 5.5 Flash free?&lt;/strong&gt; The Preview is free on OpenRouter as &lt;code&gt;baidu/ernie-5.5-flash-preview:free&lt;/code&gt;, with rate limits. Base is free to download. Baidu hasn’t published a paid per-token price on an official page as of November 12, 2026.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How big is the ERNIE 5.5 Flash context window?&lt;/strong&gt; 1M tokens: 1,024,000 for Preview on OpenRouter and 1,048,576 in the Base config, though Base trained at up to 128K.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I run ERNIE 5.5 Flash locally?&lt;/strong&gt; Base, yes, with vLLM plus the &lt;code&gt;vLLM-ERNIE&lt;/code&gt; plugin or SGLang on a multi-GPU node. Preview can’t run locally until Baidu publishes its weights.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does ERNIE 5.5 Flash support images?&lt;/strong&gt; No. Both versions are text-only models.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What is Gemini Omni 1.2 Flash?</title>
      <dc:creator>Hassann</dc:creator>
      <pubDate>Fri, 06 Nov 2026 05:45:05 +0000</pubDate>
      <link>https://dev.to/hassann/what-is-gemini-omni-12-flash-j4l</link>
      <guid>https://dev.to/hassann/what-is-gemini-omni-12-flash-j4l</guid>
      <description>&lt;h1&gt;
  
  
  What is Gemini Omni 1.2 Flash?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Quick answer:&lt;/strong&gt; Gemini Omni 1.2 Flash is Google's generally available video generation and editing model, released November 5, 2026. It makes clips of 3 to 15 seconds with native audio, costs about $0.07 per second at 720p, and runs on the Interactions API under the model ID &lt;code&gt;gemini-omni-1.2-flash&lt;/code&gt;. On December 3, 2026, requests to 1.1 start routing to it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Try Apidog today&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;That last date is why this release matters if you already ship video. Your 1.1 code keeps working, but a different model will answer it in under a month.&lt;/p&gt;

&lt;p&gt;If you're new to the family, start with &lt;a href="http://apidog.com/blog/what-is-gemini-omni?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;what Gemini Omni is&lt;/a&gt;. For the 1.1 launch details, see our &lt;a href="http://apidog.com/blog/gemini-omni-1-1-flash?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Omni 1.1 Flash post&lt;/a&gt;. This guide covers what 1.2 means for someone building today.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Gemini Omni 1.2 Flash does
&lt;/h2&gt;

&lt;p&gt;Gemini Omni 1.2 Flash takes text, images and video as input and returns video with sound. It generates new clips, edits clips across turns and extends them, all through one API. You choose duration in one-second steps, and you set resolution per request.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://blog.google/innovation-and-ai/technology/developers-tools/introducing-gemini-omni-1-2-flash/" rel="noopener noreferrer"&gt;announcement&lt;/a&gt; lists five capabilities worth knowing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reference adherence.&lt;/strong&gt; Character, product and style images help faces, garments, packaging and brand colors hold across angles. You get up to 6 reference images, with up to 3 per character for up to 2 characters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistency.&lt;/strong&gt; Google says characters, objects and scenes hold better from first frame to last, including first and last keyframe interpolation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-turn editing.&lt;/strong&gt; Swap a product, change the weather or change the aspect ratio in a follow-up turn, without starting over.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speech.&lt;/strong&gt; Google claims more natural dialogue, clearer lip-sync and distinct multi-speaker conditioning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Camera control.&lt;/strong&gt; FPV flythroughs and orbits, with fewer unwanted jump cuts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The quality claims above are Google's. It published no benchmarks, so treat them as a reason to test, not as results.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed from Gemini Omni 1.1 Flash
&lt;/h2&gt;

&lt;p&gt;Three things touch your code: clip length, price and prompt syntax. Both models run on the Interactions API, so moving over is a model string change plus a retest.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Omni 1.1 Flash&lt;/th&gt;
&lt;th&gt;Omni 1.2 Flash&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Status&lt;/td&gt;
&lt;td&gt;Previous generation&lt;/td&gt;
&lt;td&gt;Generally available&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model ID&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-omni-1.1-flash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-omni-1.2-flash&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Longest single clip&lt;/td&gt;
&lt;td&gt;10 seconds&lt;/td&gt;
&lt;td&gt;15 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Video output price&lt;/td&gt;
&lt;td&gt;$17.50 per 1M tokens&lt;/td&gt;
&lt;td&gt;$12.00 per 1M tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;720p cost per second&lt;/td&gt;
&lt;td&gt;about $0.10&lt;/td&gt;
&lt;td&gt;about $0.07&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Input price&lt;/td&gt;
&lt;td&gt;$1.50 per 1M tokens&lt;/td&gt;
&lt;td&gt;$1.50 per 1M tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reference images when extending&lt;/td&gt;
&lt;td&gt;Not supported&lt;/td&gt;
&lt;td&gt;Up to 2, on Agent Platform&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini API free tier&lt;/td&gt;
&lt;td&gt;Not available&lt;/td&gt;
&lt;td&gt;Not available&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The 15-second ceiling comes with exceptions. First and last frame interpolation stays at 3 to 10 seconds, and asking for more returns an invalid argument error. Reference videos also shrink: 3-to-10-second outputs take up to 3 clips, while 11-to-15-second outputs take 1. Each clip can run up to 3 seconds. So a single duration slider that goes to 15 can break your keyframe mode.&lt;/p&gt;

&lt;p&gt;The docs also warn against control tags such as &lt;code&gt;&amp;lt;FIRST_FRAME&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;IMAGE_REF_0&amp;gt;&lt;/code&gt; in prompts. Google calls them deprecated and unsupported in future models. Describe each input's role in plain language instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini Omni 1.2 Flash pricing by resolution
&lt;/h2&gt;

&lt;p&gt;Omni bills by output token, and Google's &lt;a href="https://aistudio.google.com/docs/pricing" rel="noopener noreferrer"&gt;pricing page&lt;/a&gt; converts that to per-second rates. A 720p second is 5,792 tokens. These are output costs only, and input tokens add a small amount on top.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Resolution&lt;/th&gt;
&lt;th&gt;Per second&lt;/th&gt;
&lt;th&gt;5-second clip&lt;/th&gt;
&lt;th&gt;15-second clip&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;360p&lt;/td&gt;
&lt;td&gt;$0.023&lt;/td&gt;
&lt;td&gt;$0.12&lt;/td&gt;
&lt;td&gt;$0.35&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;720p&lt;/td&gt;
&lt;td&gt;about $0.07&lt;/td&gt;
&lt;td&gt;about $0.35&lt;/td&gt;
&lt;td&gt;about $1.04&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1080p (upsampled)&lt;/td&gt;
&lt;td&gt;$0.104&lt;/td&gt;
&lt;td&gt;$0.52&lt;/td&gt;
&lt;td&gt;$1.56&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4K (upsampled)&lt;/td&gt;
&lt;td&gt;$0.209&lt;/td&gt;
&lt;td&gt;$1.05&lt;/td&gt;
&lt;td&gt;$3.14&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Google's suggested workflow is to draft at 360p or 720p, fix problems with follow-up edits rather than fresh generations, and move to 1080p or 4K last. The numbers back that up. Nine 15-second drafts at 360p cost about the same as one 15-second 4K render.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fno3ojsuafqyygamktp8y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fno3ojsuafqyygamktp8y.png" alt="A four-step flow showing a clip drafted at 360p, edited in follow-up turns, checked at 720p and finished at 1080p or 4K, with the per-second price of each step" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Two caveats for your budget. No Batch pricing is listed for this model. And we didn't run a paid upscale, so confirm how a finished draft bills at 1080p or 4K before you plan around it. For the token math in more detail, see our &lt;a href="http://apidog.com/blog/gemini-omni-1-1-flash-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Omni 1.1 pricing breakdown&lt;/a&gt; and swap in the $12.00 rate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where you can call Gemini Omni 1.2 Flash
&lt;/h2&gt;

&lt;p&gt;You can reach the model through two APIs and four Google apps. The developer routes are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemini API.&lt;/strong&gt; Use &lt;code&gt;POST https://generativelanguage.googleapis.com/v1beta/interactions&lt;/code&gt; with an API key from Google AI Studio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vertex AI Studio and Gemini Enterprise Agent Platform.&lt;/strong&gt; Use the global &lt;code&gt;interactions&lt;/code&gt; endpoint with a Google Cloud project and access token. &lt;a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/video/extend-videos" rel="noopener noreferrer"&gt;Google's extension docs&lt;/a&gt; show the request shape.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app routes need no code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Flow:&lt;/strong&gt; multi-turn scene editing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Vids:&lt;/strong&gt; 15-second clips at no additional cost with a Google account or Workspace subscription.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini app:&lt;/strong&gt; 15-second videos, rolling out to Google AI Ultra subscribers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Ads:&lt;/strong&gt; video campaigns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A minimal Gemini API call looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"https://generativelanguage.googleapis.com/v1beta/interactions"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"x-goog-[REDACTED CREDENTIAL] &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;&lt;span class="s2"&gt;
  -H "&lt;/span&gt;Content-Type: application/json&lt;span class="s2"&gt;" &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;&lt;span class="s2"&gt;
  -d '{
    "&lt;/span&gt;model&lt;span class="s2"&gt;": "&lt;/span&gt;gemini-omni-1.2-flash&lt;span class="s2"&gt;",
    "&lt;/span&gt;input&lt;span class="s2"&gt;": "&lt;/span&gt;A marble rolling fast along a chain reaction track, one smooth shot.&lt;span class="s2"&gt;",
    "&lt;/span&gt;response_format&lt;span class="s2"&gt;": {
      "&lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="s2"&gt;": "&lt;/span&gt;video&lt;span class="s2"&gt;",
      "&lt;/span&gt;duration&lt;span class="s2"&gt;": "&lt;/span&gt;3s&lt;span class="s2"&gt;",
      "&lt;/span&gt;resolution&lt;span class="s2"&gt;": "&lt;/span&gt;360p&lt;span class="s2"&gt;",
      "&lt;/span&gt;delivery&lt;span class="s2"&gt;": "&lt;/span&gt;uri&lt;span class="s2"&gt;"
    }
  }'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The response is an interaction object with &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;status&lt;/code&gt; and a &lt;code&gt;steps&lt;/code&gt; array. The video sits in a &lt;code&gt;model_output&lt;/code&gt; step as &lt;code&gt;video/mp4&lt;/code&gt;. By default it arrives as base64 in &lt;code&gt;data&lt;/code&gt;. Set &lt;code&gt;"delivery": "uri"&lt;/code&gt; for anything over 4MB, then poll the Files API until the file is &lt;code&gt;ACTIVE&lt;/code&gt;. One trap: a later &lt;code&gt;GET&lt;/code&gt; on the interaction returns inline base64 even if you asked for a URI, so save the URI from the creation response. The &lt;a href="https://aistudio.google.com/docs/omni" rel="noopener noreferrer"&gt;Omni docs&lt;/a&gt; have samples in Python, JavaScript, Java, Go and REST, and our &lt;a href="http://apidog.com/blog/how-to-use-gemini-omni-1-1-flash-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Omni 1.1 API guide&lt;/a&gt; walks through the same request flow.&lt;/p&gt;

&lt;p&gt;To edit a clip, pass &lt;code&gt;previous_interaction_id&lt;/code&gt; with a new prompt. Don't set &lt;code&gt;store&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt; on a clip you plan to edit, because that blocks later turns. Our &lt;a href="http://apidog.com/blog/how-to-extend-a-video-with-gemini-omni-1-2-flash?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;extension guide&lt;/a&gt; covers chaining. If you're still choosing a provider, read &lt;a href="http://apidog.com/blog/gemini-omni-1-2-flash-or-veo?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Omni 1.2 Flash or Veo&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the December 3 reroute means for your app
&lt;/h2&gt;

&lt;p&gt;From December 3, 2026, Google routes every request to &lt;code&gt;gemini-omni-1.1-flash&lt;/code&gt; to &lt;code&gt;gemini-omni-1.2-flash&lt;/code&gt; and bills it at 1.2 rates. Nothing errors out. Your 720p second gets about 30% cheaper, and a different model starts answering your existing prompts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6oveokdp2wh271lnekam.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6oveokdp2wh271lnekam.png" alt="A timeline with December 3, 2026 marked: before it the gemini-omni-1.1-flash string runs on 1.1 at about $0.10 per second at 720p, after it the same string routes to 1.2 at about $0.07" width="799" height="341"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The risk is silent change, so move on your own schedule:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Switch the model string now.&lt;/strong&gt; Pick your own test date instead of inheriting Google's.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rerun your saved prompts.&lt;/strong&gt; Compare clips side by side, especially anything with speech or a brand asset.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Update your cost estimates.&lt;/strong&gt; Any hardcoded $0.10 per second is wrong after the switch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cap durations per mode.&lt;/strong&gt; Allow 15 seconds for plain generation and 10 for keyframes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Replace control tags.&lt;/strong&gt; Rewrite any prompt that still uses &lt;code&gt;&amp;lt;IMAGE_REF_0&amp;gt;&lt;/code&gt; style tags.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use URI delivery for long clips.&lt;/strong&gt; A 15-second output is more likely to pass the 4MB inline limit.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That notice appears on the Gemini API pricing page. If you call through Agent Platform, check that surface's model page for its own schedule.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Gemini Omni 1.2 Flash still gets wrong
&lt;/h2&gt;

&lt;p&gt;Google names three weak spots: fast sports action, rapid script changes and complex physics. If your product depends on any of them, test those prompts first.&lt;/p&gt;

&lt;p&gt;The docs add hard limits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No prompt controls.&lt;/strong&gt; System instructions, temperature, &lt;code&gt;top_p&lt;/code&gt;, stop sequences and negative prompt fields aren't supported. Write exclusions into the prompt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Regional blocks.&lt;/strong&gt; Editing or extending uploaded videos isn't available in the EEA, Switzerland or the UK.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Append only.&lt;/strong&gt; Extension adds to the end of a clip. It can't prepend or change the middle.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language.&lt;/strong&gt; English is fully supported. Google calls other languages untested.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provenance.&lt;/strong&gt; Every output carries an imperceptible &lt;a href="https://deepmind.google/models/synthid/" rel="noopener noreferrer"&gt;SynthID&lt;/a&gt; watermark.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Google's own pages also disagree in three places, so test on the surface you ship on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Extended length.&lt;/strong&gt; The Gemini API docs say 30 seconds total. The Agent Platform docs say up to 40.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio.&lt;/strong&gt; The announcement mentions audio cues as a reference input. The Gemini API docs list audio inputs as unsupported.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provisioned Throughput.&lt;/strong&gt; The announcement says it's available for enterprise customers. The Gemini API docs list it as unsupported, so expect it on the enterprise side only.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Let your coding agent test it with Apidog CLI
&lt;/h2&gt;

&lt;p&gt;A reroute is the kind of change a contract test should catch. Your coding agent can write that test against the Interactions API and run it from the terminal, while you review the result. Set up &lt;a href="https://apidog.com/apidog-cli/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI&lt;/a&gt; once:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; apidog-cli@latest
apidog auth login &lt;span class="nt"&gt;--with-token&lt;/span&gt; &amp;lt;YOUR_TOKEN&amp;gt;
apidog skill &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then give Claude Code, Codex or Cursor one [REDACTED PROMPT]&lt;br&gt;
In Apidog project , create an endpoint for POST /v1beta/interactions on&lt;br&gt;
generativelanguage.googleapis.com, sending x-goog-api-key from {{GEMINI_API_KEY}}.&lt;br&gt;
Add a test case that requests gemini-omni-1.2-flash at 3s, 360p, delivery uri.&lt;br&gt;
Assert HTTP 200, object is "interaction", status is "completed", and steps holds&lt;br&gt;
a model_output entry of type video with mime_type video/mp4 and a uri.&lt;br&gt;
Run it and summarize any failures.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
The agent reads each schema, validates its payload, writes the &lt;span class="k"&gt;case&lt;/span&gt; and runs it:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
apidog cli-schema get endpoint-create&lt;br&gt;
apidog cli-schema validate endpoint-create --file omni.json&lt;br&gt;
apidog endpoint create --project  --file omni.json&lt;br&gt;
apidog test-case category --project &lt;br&gt;
apidog cli-schema get test-case-create&lt;br&gt;
apidog cli-schema validate test-case-create --file case.json&lt;br&gt;
apidog test-case create --project  --file case.json&lt;br&gt;
apidog run --test-case  --project  -e  \&lt;br&gt;
  --env-var "GEMINI_API_KEY=$GEMINI_API_KEY" \&lt;br&gt;
  --timeout-request 300000 -r cli,json&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


Each run bills real video, and this fixture costs about $0.07, so schedule it nightly rather than on every commit. To cover the reroute, ask the agent to clone the case with the 1.1 model string and run both before December 3. The same `apidog run` line with `-r junit` drops into a pipeline, as our [Apidog CLI CI/CD guide](http://apidog.com/blog/apidog-cli-ci-cd-pipeline?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation) shows, and [Apidog CLI in Claude Code](http://apidog.com/blog/apidog-cli-in-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation) covers the agent setup. Apidog Free covers up to 4 users.

## FAQ

**Is Gemini Omni 1.2 Flash free?** Not on the API. Google lists the Gemini API free tier as "Not available" for both input and output. Google Vids offers 15-second clips at no additional cost with a Google account or Workspace subscription.

**What's the model ID?** `gemini-omni-1.2-flash`, on the Interactions API rather than `generateContent`.

**How long can a Gemini Omni 1.2 Flash video be?** A single clip runs 3 to 15 seconds in one-second steps, defaulting to 10. Extension adds 3 to 10 seconds per turn. The maximum extended length is 30 seconds in the Gemini API docs and up to 40 in the Agent Platform docs.

**What happens to my Omni 1.1 code on December 3?** It keeps running. Requests to `gemini-omni-1.1-flash` route to `gemini-omni-1.2-flash` and bill at 1.2 rates, so retest your prompts before then.

**Does Gemini Omni 1.2 Flash generate audio?** Yes, native audio comes with the clip. You can't upload audio files as input through the Gemini API, and audio in reference videos is ignored.

**Are there benchmarks for 1.2 against 1.1?** No. Google published none, so run your own prompts through both before December 3.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>gemini</category>
      <category>google</category>
    </item>
    <item>
      <title>How to use Gemini Omni 1.2 Flash for free</title>
      <dc:creator>Hassann</dc:creator>
      <pubDate>Fri, 06 Nov 2026 05:44:08 +0000</pubDate>
      <link>https://dev.to/hassann/how-to-use-gemini-omni-12-flash-for-free-3hng</link>
      <guid>https://dev.to/hassann/how-to-use-gemini-omni-12-flash-for-free-3hng</guid>
      <description>&lt;p&gt;&lt;strong&gt;Quick answer:&lt;/strong&gt; You can use Gemini Omni 1.2 Flash for free in two places: Google Flow (50 credits a day, clips up to 10 seconds) and Google Vids (60 seconds of clips a month on a personal account). The Gemini API has no free tier for this model. Every API call is paid, starting at about $0.023 per second at 360p.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Try Apidog today&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;This guide covers what you get on each route, what’s locked and the cheapest way to pay when free runs out. Every limit comes from Google’s official pages, read on November 6, 2026. Google says limits can change at any time, so check them before you plan around them.&lt;/p&gt;

&lt;p&gt;If you want the earlier version’s routes, our &lt;a href="http://apidog.com/blog/how-to-use-gemini-omni-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Gemini Omni free guide&lt;/a&gt; covers YouTube Shorts and the student offer. Google’s &lt;a href="https://blog.google/innovation-and-ai/technology/developers-tools/introducing-gemini-omni-1-2-flash/" rel="noopener noreferrer"&gt;1.2 announcement&lt;/a&gt; doesn’t list either, so they aren’t counted here.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s free and what isn’t
&lt;/h2&gt;

&lt;p&gt;Two routes cost $0, one is a credit, and three need a paid plan or a paid key.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Route&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;What you get&lt;/th&gt;
&lt;th&gt;Main limit&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Google Flow&lt;/td&gt;
&lt;td&gt;$0, no plan needed&lt;/td&gt;
&lt;td&gt;50 credits a day&lt;/td&gt;
&lt;td&gt;10-second clips, 360p or 720p&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Vids&lt;/td&gt;
&lt;td&gt;$0 with a Google account&lt;/td&gt;
&lt;td&gt;60 clip seconds a month&lt;/td&gt;
&lt;td&gt;About four 15-second clips&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Cloud trial&lt;/td&gt;
&lt;td&gt;Credit, not free&lt;/td&gt;
&lt;td&gt;$300 for 90 days&lt;/td&gt;
&lt;td&gt;Payment method required&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini API&lt;/td&gt;
&lt;td&gt;Paid&lt;/td&gt;
&lt;td&gt;No free tier&lt;/td&gt;
&lt;td&gt;$5 minimum prepay&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Studio&lt;/td&gt;
&lt;td&gt;Paid for this model&lt;/td&gt;
&lt;td&gt;No documented free path&lt;/td&gt;
&lt;td&gt;Assume a paid key&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini app&lt;/td&gt;
&lt;td&gt;Paid&lt;/td&gt;
&lt;td&gt;Video needs a Google AI plan&lt;/td&gt;
&lt;td&gt;15-second clips are rolling out to Ultra&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8nq3c6d1asjeai9joyni.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8nq3c6d1asjeai9joyni.png" alt="Decision tree for Gemini Omni 1.2 Flash at no cost: a 15-second clip points to Google Vids at 60 seconds a month, clips up to 10 seconds point to Google Flow at 50 credits a day, and API access points to a paid route with a $5 prepay and $0.023 per second at 360p." width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Gemini Omni 1.2 Flash free in Google Flow
&lt;/h2&gt;

&lt;p&gt;Flow is the most generous free route. Google’s &lt;a href="https://support.google.com/flow/answer/16526234" rel="noopener noreferrer"&gt;Flow credits page&lt;/a&gt; gives everyone 50 credits a day, with or without a subscription, and lists Omni Flash 1.2 generation and editing up to 10 seconds for all users.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;a href="https://flow.google.com/" rel="noopener noreferrer"&gt;Google Flow&lt;/a&gt; and sign in with your Google account.&lt;/li&gt;
&lt;li&gt;Check the current credit costs under Settings, at the top right of the prompt box.&lt;/li&gt;
&lt;li&gt;Choose Omni Flash 1.2 and start at 360p.&lt;/li&gt;
&lt;li&gt;Move your best prompt to 720p once it works.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;720p costs three times as much as 360p, so credits go fast:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Clip&lt;/th&gt;
&lt;th&gt;Credits&lt;/th&gt;
&lt;th&gt;Clips per day&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;5 seconds at 360p&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10 seconds at 360p&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5 seconds at 720p&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10 seconds at 720p&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;1, plus 20 credits left&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3cce52jh71lralyzncok.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3cce52jh71lralyzncok.png" alt="Two bars showing what 50 free Flow credits buy in a day: at 360p, five 10-second clips; at 720p, one 10-second clip for 30 credits and one 6-second clip for 18 credits, with 2 credits left." width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Free accounts live with these limits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Peak hours.&lt;/strong&gt; Between roughly 2 PM and 5 PM UTC, you may not be able to generate video without a subscription.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No rollover.&lt;/strong&gt; Unused credits disappear. Your first generation of the day starts the cycle, and the next 50 arrive the following day.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No 15-second clips.&lt;/strong&gt; Generation from 11 to 15 seconds is for Google AI Plus, Pro and Ultra subscribers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No extension.&lt;/strong&gt; Extending by 3 to 10 seconds is subscriber-only too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No upscaling.&lt;/strong&gt; 1080p and 4K are off, so 720p is your ceiling.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Google names fast sports action, rapid script changes and complex physics as areas it’s still improving. Don’t spend your 50 credits on those shots first, since a failed draft still costs credits to redo.&lt;/p&gt;

&lt;p&gt;Flow retires Omni Flash 1.1 on December 5, 2026, so build new work on 1.2.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use it free in Google Vids
&lt;/h2&gt;

&lt;p&gt;Vids is the only $0 route with 15-second clips. The announcement says you can generate them “at no additional cost” with a Google account or Workspace subscription. &lt;a href="https://support.google.com/docs/answer/15609411" rel="noopener noreferrer"&gt;Google’s Vids limits page&lt;/a&gt; sets the allowance:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Account&lt;/th&gt;
&lt;th&gt;AI video clips per month&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Personal Google account&lt;/td&gt;
&lt;td&gt;60 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google AI Plus&lt;/td&gt;
&lt;td&gt;60 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workspace Individual&lt;/td&gt;
&lt;td&gt;60 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workspace Business Starter&lt;/td&gt;
&lt;td&gt;200 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workspace Business Standard or Plus&lt;/td&gt;
&lt;td&gt;500 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google AI Pro&lt;/td&gt;
&lt;td&gt;500 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Sixty seconds is about four 15-second clips, so treat them as finished shots. Draft the prompt in Flow first, then spend Vids seconds on the version you want to keep.&lt;/p&gt;

&lt;p&gt;To start, open &lt;a href="https://vids.new" rel="noopener noreferrer"&gt;Vids&lt;/a&gt;, sign in and use its AI clip generation. Three details matter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Editing may be limited.&lt;/strong&gt; Google says personal accounts “might have some restrictions on AI video editing.”&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your work account may be better.&lt;/strong&gt; A paid Workspace plan can carry 200 or 500 seconds at no extra cost, though your admin controls access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coverage is wide.&lt;/strong&gt; The features work wherever Google Workspace accounts are available.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Routes that aren’t free
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Gemini API.&lt;/strong&gt; Google’s &lt;a href="https://aistudio.google.com/docs/pricing" rel="noopener noreferrer"&gt;pricing page&lt;/a&gt; lists the free tier as “Not available” for both input and output. The same goes for 1.1. Many other Gemini models have a free tier, so a key that works elsewhere won’t help here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Studio.&lt;/strong&gt; Google’s &lt;a href="https://aistudio.google.com/docs/billing" rel="noopener noreferrer"&gt;billing docs&lt;/a&gt; say AI Studio stays free until you link a paid key, but that free use covers only models with a free tier. Omni has a “Try it in Google AI Studio” button, yet no page documents a free allowance, so plan on a paid key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemini app.&lt;/strong&gt; Google’s &lt;a href="https://support.google.com/gemini/answer/16275805" rel="noopener noreferrer"&gt;plan table&lt;/a&gt; shows video generation on AI Plus, Pro and Ultra, not on the no-plan tier. The 15-second videos are rolling out to Ultra subscribers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Google Cloud credit.&lt;/strong&gt; New customers get &lt;a href="https://docs.cloud.google.com/free/docs/free-cloud-features" rel="noopener noreferrer"&gt;$300 for 90 days&lt;/a&gt; with a payment method on file. It’s a credit, not a free tier, and it can’t pay for the Gemini API in AI Studio. Google’s Agent Platform page says the credit applies to generative model queries there, and &lt;a href="https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing" rel="noopener noreferrer"&gt;Agent Platform pricing&lt;/a&gt; lists Omni 1.2. If it applies, $300 covers about 288 clips of 15 seconds at 720p.&lt;/p&gt;

&lt;h2&gt;
  
  
  The cheapest paid fallback
&lt;/h2&gt;

&lt;p&gt;When free runs out, 360p on the API is the cheapest way to script a generation. Google prices video output by token, which works out like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Resolution&lt;/th&gt;
&lt;th&gt;Per second&lt;/th&gt;
&lt;th&gt;3 seconds&lt;/th&gt;
&lt;th&gt;10 seconds&lt;/th&gt;
&lt;th&gt;15 seconds&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;360p&lt;/td&gt;
&lt;td&gt;$0.023&lt;/td&gt;
&lt;td&gt;$0.07&lt;/td&gt;
&lt;td&gt;$0.23&lt;/td&gt;
&lt;td&gt;$0.35&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;720p&lt;/td&gt;
&lt;td&gt;About $0.07&lt;/td&gt;
&lt;td&gt;$0.21&lt;/td&gt;
&lt;td&gt;$0.70&lt;/td&gt;
&lt;td&gt;$1.04&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1080p (upsampled)&lt;/td&gt;
&lt;td&gt;$0.104&lt;/td&gt;
&lt;td&gt;$0.31&lt;/td&gt;
&lt;td&gt;$1.04&lt;/td&gt;
&lt;td&gt;$1.56&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4K (upsampled)&lt;/td&gt;
&lt;td&gt;$0.209&lt;/td&gt;
&lt;td&gt;$0.63&lt;/td&gt;
&lt;td&gt;$2.09&lt;/td&gt;
&lt;td&gt;$3.13&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Input tokens ($1.50 per million) come on top. For a fuller cost breakdown of the earlier model, see our &lt;a href="http://apidog.com/blog/gemini-omni-1-1-flash-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Omni 1.1 pricing guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The paid tier starts with a $5 prepayment, which covers about 14 clips of 15 seconds at 360p. Prepaid credits are non-refundable and expire after 12 months. At a $0 balance, requests fail with HTTP 402.&lt;/p&gt;

&lt;p&gt;Here’s the smallest real request, a 3-second clip at 360p:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"https://generativelanguage.googleapis.com/v1beta/interactions"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"x-goog-[REDACTED CREDENTIAL] &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;&lt;span class="s2"&gt;
  -d '{
    "&lt;/span&gt;model&lt;span class="s2"&gt;": "&lt;/span&gt;gemini-omni-1.2-flash&lt;span class="s2"&gt;",
    "&lt;/span&gt;input&lt;span class="s2"&gt;": "&lt;/span&gt;A paper boat drifts down a rainy street gutter.&lt;span class="s2"&gt;",
    "&lt;/span&gt;response_format&lt;span class="s2"&gt;": {
      "&lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="s2"&gt;": "&lt;/span&gt;video&lt;span class="s2"&gt;",
      "&lt;/span&gt;resolution&lt;span class="s2"&gt;": "&lt;/span&gt;360p&lt;span class="s2"&gt;",
      "&lt;/span&gt;duration&lt;span class="s2"&gt;": "&lt;/span&gt;3s&lt;span class="s2"&gt;",
      "&lt;/span&gt;delivery&lt;span class="s2"&gt;": "&lt;/span&gt;uri&lt;span class="s2"&gt;"
    }
  }'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Duration runs from &lt;code&gt;"3s"&lt;/code&gt; to &lt;code&gt;"15s"&lt;/code&gt;, and a missing value defaults to &lt;code&gt;"10s"&lt;/code&gt;, so always set it. The default resolution is 720p, which triples the bill if you forget. See the &lt;a href="https://aistudio.google.com/docs/omni" rel="noopener noreferrer"&gt;Omni docs&lt;/a&gt; for polling and download steps.&lt;/p&gt;

&lt;p&gt;If you’re already on 1.1, requests route to 1.2 from December 3, 2026 and bill at 1.2 rates. Our &lt;a href="http://apidog.com/blog/how-to-use-gemini-omni-1-1-flash-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Omni 1.1 API guide&lt;/a&gt; covers the older setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let your coding agent test against a mock first
&lt;/h2&gt;

&lt;p&gt;On a paid API, every failed attempt costs money: a wrong field, a bad parser, a retry loop gone wild. Let your coding agent build the request in &lt;a href="https://apidog.com/apidog-cli/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI&lt;/a&gt; and test it against a &lt;a href="https://docs.apidog.com/cloud-mock-621066m0?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;cloud mock&lt;/a&gt;, which bills nothing. Then it makes one real call.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; apidog-cli@latest
apidog auth login &lt;span class="nt"&gt;--with-token&lt;/span&gt; &amp;lt;YOUR_TOKEN&amp;gt;
apidog skill &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then give Claude Code, Codex or Cursor one [REDACTED PROMPT]&lt;br&gt;
In Apidog project , create POST /v1beta/interactions for Gemini Omni&lt;br&gt;
1.2 Flash, using the request body in Google's Omni docs. Add a mock&lt;br&gt;
expectation that returns a completed interaction with a video URI. Build&lt;br&gt;
a test scenario that asserts the request sends model, a 360p resolution&lt;br&gt;
and a 3s duration, and that my parser finds the URI. Run it against the&lt;br&gt;
cloud mock until it passes. Stop and show me the result before any call&lt;br&gt;
to the real API.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
The agent checks each payload against the schema, then builds and runs the test:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
apidog cli-schema get mock-create&lt;br&gt;
apidog cli-schema validate mock-create --file mock.json&lt;br&gt;
apidog endpoint create --project  --file endpoint.json&lt;br&gt;
apidog mock create --project  --file mock.json&lt;br&gt;
apidog environment create omni-mock --project  --base-url &lt;br&gt;
apidog test-scenario create --project  --name "omni-request" --folder-id  --priority 1&lt;br&gt;
apidog test-scenario import-steps  --project  --source endpoint --ids &lt;br&gt;
apidog run -t  --project  -e  -r cli,json&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
Turn on Cloud Mock in your project settings first, then copy its URL. When the mock passes, run the same scenario once against a second environment that points at Google, with its `x-goog-api-key` header reading your key:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
apidog run -t  --project  -e  \&lt;br&gt;
  --env-var "GEMINI_API_KEY=$GEMINI_API_KEY" --timeout-request 300000 -r cli,json&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


That real run bills one 3-second 360p clip, about $0.07. A mock proves your request and your parsing, not Google’s response, so the single real call still matters. Our [Claude Code setup guide](http://apidog.com/blog/apidog-cli-in-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation) covers the agent side, and Apidog Free covers up to 4 users.

## FAQ

**Is Gemini Omni 1.2 Flash free?** In Google Flow and Google Vids, yes, within limits. On the Gemini API, no: Google lists the free tier as “Not available.”

**Can I get a free API key for it?** You can create a key, but Omni calls need the paid tier. That means a linked billing account and a $5 minimum prepayment.

**How many free videos do I get a day?** In Flow, up to five 10-second clips at 360p, or one 10-second clip plus a shorter one at 720p. Video may be unavailable during peak hours.

**Can I make a 15-second video for free?** Yes, in Google Vids, up to your 60 seconds a month. Flow caps free accounts at 10 seconds.

**Do free clips have a watermark?** Google says outputs carry an imperceptible SynthID watermark. The announcement doesn’t describe an exception for any route.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>ai</category>
      <category>gemini</category>
      <category>tools</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Gemini Omni 1.2 Flash or Veo: picking a video API for your app</title>
      <dc:creator>Hassann</dc:creator>
      <pubDate>Fri, 06 Nov 2026 03:15:14 +0000</pubDate>
      <link>https://dev.to/hassann/gemini-omni-12-flash-or-veo-picking-a-video-api-for-your-app-3kje</link>
      <guid>https://dev.to/hassann/gemini-omni-12-flash-or-veo-picking-a-video-api-for-your-app-3kje</guid>
      <description>&lt;h1&gt;
  
  
  Gemini Omni 1.2 Flash or Veo: picking a video API for your app
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq9cba8zg2tu3fexzy0we.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq9cba8zg2tu3fexzy0we.png" alt="Gemini Omni 1.2 Flash or Veo: picking a video API for your app" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick answer:&lt;/strong&gt; Build on Gemini Omni 1.2 Flash if you want one API key, conversational editing, or clips up to 15 seconds. Pick Veo 3.1 only if you already run on Google Cloud and need its request controls, such as up to four outputs per call. You can no longer call Veo from the Gemini API: its Preview models shut down on October 22, 2026.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Try Apidog today&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;That shutdown turns a model comparison into a platform decision. Our &lt;a href="http://apidog.com/blog/gemini-omni-1-1-flash-vs-veo-3-1?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Omni 1.1 vs Veo 3.1 comparison&lt;/a&gt; covers the older specs. This guide answers a narrower question: which one do you build on now?&lt;/p&gt;

&lt;p&gt;Google published no benchmarks for Omni 1.2, so nothing here ranks the two on looks. Specs and prices below come from Google's docs, read on November 6, 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini Omni 1.2 Flash vs Veo 3.1 at a glance
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Gemini Omni 1.2 Flash&lt;/th&gt;
&lt;th&gt;Veo 3.1&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Status&lt;/td&gt;
&lt;td&gt;Generally available&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;generate-001&lt;/code&gt; and &lt;code&gt;fast-generate-001&lt;/code&gt; GA, &lt;code&gt;lite-generate-001&lt;/code&gt; Preview&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Where you call it&lt;/td&gt;
&lt;td&gt;Gemini API, Gemini Enterprise Agent Platform&lt;/td&gt;
&lt;td&gt;Agent Platform only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auth&lt;/td&gt;
&lt;td&gt;API key (Gemini API)&lt;/td&gt;
&lt;td&gt;Google Cloud project and access token&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Request shape&lt;/td&gt;
&lt;td&gt;Interactions API&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;predictLongRunning&lt;/code&gt;, polled with &lt;code&gt;fetchPredictOperation&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Location&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;global&lt;/code&gt; on Agent Platform&lt;/td&gt;
&lt;td&gt;&lt;code&gt;us-central1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Clip length&lt;/td&gt;
&lt;td&gt;3 to 15 seconds, in one-second steps&lt;/td&gt;
&lt;td&gt;4, 6 or 8 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Audio&lt;/td&gt;
&lt;td&gt;Native&lt;/td&gt;
&lt;td&gt;Sound generation supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resolutions&lt;/td&gt;
&lt;td&gt;360p, 720p, 1080p and 4K (upscaled)&lt;/td&gt;
&lt;td&gt;720p, 1080p, plus 4K on Veo 3.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Extension&lt;/td&gt;
&lt;td&gt;3 to 10 seconds per turn&lt;/td&gt;
&lt;td&gt;7 seconds per call, 37 seconds total&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-turn editing&lt;/td&gt;
&lt;td&gt;Yes, with &lt;code&gt;previous_interaction_id&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;No equivalent in the docs we read&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Outputs per request&lt;/td&gt;
&lt;td&gt;One video per turn in the samples&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;sampleCount&lt;/code&gt; of 1 to 4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Negative prompt&lt;/td&gt;
&lt;td&gt;Not supported, write it into the prompt&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;negativePrompt&lt;/code&gt; parameter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Earliest retirement&lt;/td&gt;
&lt;td&gt;None listed&lt;/td&gt;
&lt;td&gt;May 4, 2027 or later (GA models)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;One conflict to plan around: Omni's maximum extended length depends on the surface. The &lt;a href="https://aistudio.google.com/docs/omni" rel="noopener noreferrer"&gt;Gemini API docs&lt;/a&gt; say 30 seconds total. The &lt;a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/video/extend-videos" rel="noopener noreferrer"&gt;Agent Platform extension docs&lt;/a&gt; say up to 40. If your product promises a length, test it on the surface you ship on.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed for Veo
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://aistudio.google.com/docs/video" rel="noopener noreferrer"&gt;Gemini API video docs&lt;/a&gt; now state that the Veo 3.1 Preview in the Gemini API has been shut down. Three model IDs went with it on October 22, 2026:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;veo-3.1-generate-preview&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;veo-3.1-fast-generate-preview&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;veo-3.1-lite-generate-preview&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Google points you to two exits: Gemini Omni Flash, or the GA Veo models on the Gemini Enterprise Agent Platform (the successor to Vertex AI). We found no Veo newer than 3.1 in Google's current &lt;a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/veo/3-1-generate" rel="noopener noreferrer"&gt;Veo model page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So an integration built on an AI Studio key and a Veo preview ID has already stopped working. A new model string won't fix it, because the GA models live on a different platform with different auth. Older guides, including our own &lt;a href="http://apidog.com/blog/veo-3-1-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Veo 3.1 API walkthrough&lt;/a&gt;, were written for the preview route.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff9purbzebb1n030udtrc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff9purbzebb1n030udtrc.png" alt="Availability map: the Gemini API with an API key reaches Omni 1.2 Flash only, while the Gemini Enterprise Agent Platform with a Google Cloud project reaches both Omni 1.2 Flash and the Veo 3.1 GA models" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What each API costs per second
&lt;/h2&gt;

&lt;p&gt;Omni bills output tokens. Veo uses a flat rate by resolution. These rates are for video with audio:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Output&lt;/th&gt;
&lt;th&gt;Omni 1.2 Flash&lt;/th&gt;
&lt;th&gt;Veo 3.1 (GA)&lt;/th&gt;
&lt;th&gt;Veo 3.1 Fast (GA)&lt;/th&gt;
&lt;th&gt;Veo 3.1 Lite (Preview)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;360p&lt;/td&gt;
&lt;td&gt;$0.023&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;720p&lt;/td&gt;
&lt;td&gt;about $0.07&lt;/td&gt;
&lt;td&gt;$0.40&lt;/td&gt;
&lt;td&gt;$0.10&lt;/td&gt;
&lt;td&gt;$0.05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1080p&lt;/td&gt;
&lt;td&gt;$0.104&lt;/td&gt;
&lt;td&gt;$0.40&lt;/td&gt;
&lt;td&gt;$0.12&lt;/td&gt;
&lt;td&gt;$0.08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4K&lt;/td&gt;
&lt;td&gt;$0.209&lt;/td&gt;
&lt;td&gt;$0.60&lt;/td&gt;
&lt;td&gt;$0.30&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Omni's figures come from &lt;a href="https://aistudio.google.com/docs/pricing" rel="noopener noreferrer"&gt;Google's Gemini pricing page&lt;/a&gt;, which also lists input at $1.50 per million tokens. Its 1080p and 4K rates include upsampling. Veo's figures come from the &lt;a href="https://cloud.google.com/vertex-ai/generative-ai/pricing" rel="noopener noreferrer"&gt;Agent Platform price list&lt;/a&gt;. That list shows them per "count" and doesn't define the unit. They match the per-second rates &lt;a href="https://the-decoder.com/googles-veo-3-1-lite-cuts-video-generation-costs-by-more-than-half/" rel="noopener noreferrer"&gt;reported at launch&lt;/a&gt;, so we read them as per second. Confirm against your first invoice. The list also prices 4K for Fast, though the model page shows 4K output for Veo 3.1 only.&lt;/p&gt;

&lt;p&gt;An 8-second 720p clip costs about $0.56 on Omni, $3.20 on Veo 3.1, $0.80 on Fast and $0.40 on Lite. Lite is the only Veo model under Omni's price with audio, and it's still in Preview. Veo also lists video-only rates, such as $0.08 for Fast at 720p. For the token math, see our &lt;a href="http://apidog.com/blog/gemini-omni-1-1-flash-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Omni 1.1 pricing breakdown&lt;/a&gt;, then swap in the new $12.00 per million video output rate.&lt;/p&gt;

&lt;p&gt;Google lists Omni's free tier as "Not available" on both 1.2 and 1.1.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pick Gemini Omni 1.2 Flash if
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You don't want a Cloud project in the path.&lt;/strong&gt; An API key and one POST gets you a video.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Users refine clips.&lt;/strong&gt; Pass &lt;code&gt;previous_interaction_id&lt;/code&gt; with a new prompt and each turn produces a new video. Google suggests adding "Keep everything else the same" when you change one element.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You need clips over 8 seconds in one call.&lt;/strong&gt; Omni goes to 15. Veo stops at 8.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You want cheap drafts.&lt;/strong&gt; A 10-second 360p test costs about $0.23.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You lean on reference images.&lt;/strong&gt; Omni accepts up to 6, with up to 3 per character for up to 2 characters.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Know the limits first. Google names fast sports action, rapid script changes and complex physics as areas it's still improving. Audio uploads aren't supported. Editing or extending uploaded videos isn't available in the EEA, Switzerland or the UK. Every output carries an imperceptible SynthID watermark.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pick Veo 3.1 if
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You already run on Google Cloud.&lt;/strong&gt; Projects, IAM and Cloud Storage are in place, so the extra setup costs you nothing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You want several takes per request.&lt;/strong&gt; &lt;code&gt;sampleCount&lt;/code&gt; returns up to 4 videos from one call.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You rely on &lt;code&gt;negativePrompt&lt;/code&gt;.&lt;/strong&gt; Omni has no such field.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You need a dated model commitment.&lt;/strong&gt; Google lists retirement as May 4, 2027 or later for the GA models, which gives you a date to plan around. Omni 1.1's short notice is the counterexample: from December 3, 2026, requests to &lt;code&gt;gemini-omni-1.1-flash&lt;/code&gt; route to 1.2 and bill at 1.2 rates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You extend uploaded footage in the EEA, Switzerland or UK.&lt;/strong&gt; Veo's extension docs list no such limit. Confirm for your region before you build on that.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The trade-off: &lt;code&gt;us-central1&lt;/code&gt; only, a Google Cloud project, and a polling loop. Extension input must be MP4 at 24 fps, 1 to 30 seconds long. The extension page also lists Lite in its model table but leaves it out of the REST section, so treat Lite extension as unconfirmed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Migrating a Veo integration to the Interactions API
&lt;/h2&gt;

&lt;p&gt;Moving to Omni changes your request, polling and response parsing. Here's a Veo extension call, following Google's docs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-3.1-generate-001:predictLongRunning

&lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="s2"&gt;"instances"&lt;/span&gt;: &lt;span class="o"&gt;[{&lt;/span&gt;
    &lt;span class="s2"&gt;"prompt"&lt;/span&gt;: &lt;span class="s2"&gt;"The drone keeps climbing above the harbor"&lt;/span&gt;,
    &lt;span class="s2"&gt;"video"&lt;/span&gt;: &lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;"gcsUri"&lt;/span&gt;: &lt;span class="s2"&gt;"gs://my-bucket/clip.mp4"&lt;/span&gt;, &lt;span class="s2"&gt;"mimeType"&lt;/span&gt;: &lt;span class="s2"&gt;"video/mp4"&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;}]&lt;/span&gt;,
  &lt;span class="s2"&gt;"parameters"&lt;/span&gt;: &lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;"storageUri"&lt;/span&gt;: &lt;span class="s2"&gt;"gs://my-bucket/out/"&lt;/span&gt;, &lt;span class="s2"&gt;"sampleCount"&lt;/span&gt;: 1 &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the same job on Omni, through the Agent Platform:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

&lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="s2"&gt;"model"&lt;/span&gt;: &lt;span class="s2"&gt;"gemini-omni-1.2-flash"&lt;/span&gt;,
  &lt;span class="s2"&gt;"store"&lt;/span&gt;: &lt;span class="nb"&gt;false&lt;/span&gt;,
  &lt;span class="s2"&gt;"input"&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;
    &lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;"type"&lt;/span&gt;: &lt;span class="s2"&gt;"text"&lt;/span&gt;, &lt;span class="s2"&gt;"text"&lt;/span&gt;: &lt;span class="s2"&gt;"The drone keeps climbing above the harbor"&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;,
    &lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;"type"&lt;/span&gt;: &lt;span class="s2"&gt;"video"&lt;/span&gt;, &lt;span class="s2"&gt;"uri"&lt;/span&gt;: &lt;span class="s2"&gt;"gs://my-bucket/clip.mp4"&lt;/span&gt;, &lt;span class="s2"&gt;"mime_type"&lt;/span&gt;: &lt;span class="s2"&gt;"video/mp4"&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;]&lt;/span&gt;,
  &lt;span class="s2"&gt;"response_format"&lt;/span&gt;: &lt;span class="o"&gt;[{&lt;/span&gt;
    &lt;span class="s2"&gt;"type"&lt;/span&gt;: &lt;span class="s2"&gt;"video"&lt;/span&gt;,
    &lt;span class="s2"&gt;"delivery"&lt;/span&gt;: &lt;span class="s2"&gt;"uri"&lt;/span&gt;,
    &lt;span class="s2"&gt;"gcs_uri"&lt;/span&gt;: &lt;span class="s2"&gt;"gs://my-bucket/out/"&lt;/span&gt;,
    &lt;span class="s2"&gt;"aspect_ratio"&lt;/span&gt;: &lt;span class="s2"&gt;"16:9"&lt;/span&gt;,
    &lt;span class="s2"&gt;"duration"&lt;/span&gt;: &lt;span class="s2"&gt;"7s"&lt;/span&gt;
  &lt;span class="o"&gt;}]&lt;/span&gt;,
  &lt;span class="s2"&gt;"generation_config"&lt;/span&gt;: &lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;"video_config"&lt;/span&gt;: &lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;"task"&lt;/span&gt;: &lt;span class="s2"&gt;"extend"&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Map your fields like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Veo&lt;/th&gt;
&lt;th&gt;Omni&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;instances[0].prompt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;input&lt;/code&gt; text item&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;instances[0].video.gcsUri&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;input&lt;/code&gt; video item &lt;code&gt;uri&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;parameters.storageUri&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;response_format&lt;/code&gt; &lt;code&gt;gcs_uri&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;parameters.aspectRatio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;response_format&lt;/code&gt; &lt;code&gt;aspect_ratio&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;parameters.seed&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;generation_config.seed&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;parameters.negativePrompt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;A "Do not do X" line in the prompt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;parameters.sampleCount&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;No field in the docs we read, send separate requests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fetchPredictOperation&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;background: true&lt;/code&gt;, then GET the interaction ID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;videos[].gcsUri&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;steps&lt;/code&gt; entry of type &lt;code&gt;model_output&lt;/code&gt;, video item&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Four details to watch:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Response format shape.&lt;/strong&gt; The Agent Platform sample wraps &lt;code&gt;response_format&lt;/code&gt; in an array. The Gemini API docs describe a single object. Copy the shape for the surface you call.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Duration format.&lt;/strong&gt; Omni wants a string such as &lt;code&gt;"7s"&lt;/code&gt;, from &lt;code&gt;"3s"&lt;/code&gt; to &lt;code&gt;"15s"&lt;/code&gt;, and &lt;code&gt;"3s"&lt;/code&gt; to &lt;code&gt;"10s"&lt;/code&gt; for extensions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lost URIs.&lt;/strong&gt; On the Gemini API, &lt;code&gt;GET /v1beta/interactions/{id}&lt;/code&gt; returns inline base64 even if you asked for URI delivery. The URI is only guaranteed in the creation response or the stream, so save it there.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Editing needs storage.&lt;/strong&gt; With &lt;code&gt;store: false&lt;/code&gt; you can't edit that video in a later turn.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For a first Interactions call, our &lt;a href="http://apidog.com/blog/how-to-use-gemini-omni-1-1-flash-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Omni 1.1 API guide&lt;/a&gt; still fits with the new model ID.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiakzcv0j27rhpqdh387g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiakzcv0j27rhpqdh387g.png" alt="Two request flows side by side: Veo submits predictLongRunning, polls fetchPredictOperation, then reads the video from Cloud Storage, while Omni creates an interaction, receives a video, then sends a follow-up turn with previous_interaction_id to edit it" width="799" height="341"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Let your coding agent test both with Apidog CLI
&lt;/h2&gt;

&lt;p&gt;If you might swap providers later, or run both, you want one set of checks that doesn't care which model answered. Hand that to your coding agent. It defines both endpoints with &lt;a href="https://apidog.com/apidog-cli/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI&lt;/a&gt;, wraps each in a test scenario, and groups them in one test suite with the same assertions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; apidog-cli@latest
apidog auth login &lt;span class="nt"&gt;--with-token&lt;/span&gt; &amp;lt;YOUR_TOKEN&amp;gt;
apidog skill &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then give Claude Code, Codex or Cursor one [REDACTED PROMPT]&lt;br&gt;
In Apidog project , create endpoints for Gemini Omni 1.2 Flash&lt;br&gt;
(POST /v1beta/interactions) and Veo 3.1 Fast (predictLongRunning plus&lt;br&gt;
fetchPredictOperation). Build one test scenario per provider and put both&lt;br&gt;
in a test suite named video-provider-contract. Poll Veo until done. Assert&lt;br&gt;
the same things on each: the job finishes, the output is video/mp4, and a&lt;br&gt;
video URI or data field is present. Run it and summarize any failures.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
The agent reads each schema, validates its payload, then builds and runs the suite:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
apidog cli-schema get endpoint-create&lt;br&gt;
apidog cli-schema validate endpoint-create --file omni.json&lt;br&gt;
apidog endpoint create --project  --file omni.json&lt;br&gt;
apidog test-scenario create --project  --name "omni-contract" --folder-id  --priority 1&lt;br&gt;
apidog test-scenario import-steps  --project  --source endpoint --ids  --sync manual&lt;br&gt;
apidog test-suite create --project  --name "video-provider-contract"&lt;br&gt;
apidog test-suite update  --project  --file suite.json&lt;br&gt;
apidog run --test-suite  --project  -e  \&lt;br&gt;
  --timeout-request 300000 -r cli,junit --out-dir ./reports&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


A provider swap then shows up as a failed assertion, not a broken player in production. Keep fixtures small, because every run bills real video: a 3-second 360p Omni clip plus a 4-second 720p Fast clip comes to about $0.47. Run that nightly, not on every commit. The same line drops into a pipeline, as our [Apidog CLI CI/CD guide](http://apidog.com/blog/apidog-cli-ci-cd-pipeline?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation) shows. Apidog Free covers up to 4 users.

## FAQ

**Can I still call Veo with a Gemini API key?** No. The Veo 3.1 Preview models in the Gemini API shut down on October 22, 2026. The GA models run on the Gemini Enterprise Agent Platform, which uses a Google Cloud project and an access token.

**Is there a Veo 4?** Not that we could find. Google's current Veo model page lists 3.1 models only, as of November 6, 2026.

**What happens to my Omni 1.1 code?** From December 3, 2026, requests to `gemini-omni-1.1-flash` route to `gemini-omni-1.2-flash` and bill at 1.2 rates. Your model string keeps working, but test your prompts on 1.2 before that date, since the model behind it changes.

**Which one makes better-looking video?** Google publishes no benchmarks here, so we won't name a winner. Run the same prompts through both and judge the clips yourself.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
    </item>
    <item>
      <title>What Is GPT-6 Cyber? Access, Pricing and How to Test the API</title>
      <dc:creator>Hassann</dc:creator>
      <pubDate>Fri, 06 Nov 2026 02:27:40 +0000</pubDate>
      <link>https://dev.to/hassann/what-is-gpt-6-cyber-access-pricing-and-how-to-test-the-api-4gdg</link>
      <guid>https://dev.to/hassann/what-is-gpt-6-cyber-access-pricing-and-how-to-test-the-api-4gdg</guid>
      <description>&lt;h1&gt;
  
  
  What Is GPT-6 Cyber? Access, Pricing and How to Test the API
&lt;/h1&gt;

&lt;p&gt;GPT-6 Cyber is OpenAI's cybersecurity model for authorized vulnerability research, exploit development and penetration testing, announced on November 5, 2026. It costs $20 per million input tokens and $100 per million output tokens. You call it as &lt;code&gt;gpt-6-cyber&lt;/code&gt; through the Responses API, but only with Daybreak Red access plus separate approval for this model.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Try Apidog today&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;That's the key difference from the last release. When we covered &lt;a href="http://apidog.com/blog/what-is-gpt-5-6-cyber?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;GPT-5.6 Cyber&lt;/a&gt; in August, there was no public price and no public request shape. Now OpenAI documents the model ID, the price, the request and the errors. A regular API key still won't get you in, though.&lt;/p&gt;

&lt;p&gt;This guide covers what the model is, who qualifies, what it costs and how to test the integration. One disclosure: we don't have Daybreak Red access, so nothing below ran against &lt;code&gt;gpt-6-cyber&lt;/code&gt;. The request and error codes come from &lt;a href="https://developers.openai.com/api/docs/guides/daybreak" rel="noopener noreferrer"&gt;OpenAI's Daybreak API guide&lt;/a&gt;, checked on November 6, 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is GPT-6 Cyber?
&lt;/h2&gt;

&lt;p&gt;GPT-6 Cyber is a cyber-specialized variant of GPT-6 Astra, built for authorized security work such as finding vulnerabilities, developing exploits and web pentesting. OpenAI post-trained it with reinforcement learning to refuse fewer authorized security tasks and to stay inside the scope a researcher sets.&lt;/p&gt;

&lt;p&gt;Three facts from the &lt;a href="https://deploymentsafety.openai.com/gpt-6-cyber" rel="noopener noreferrer"&gt;GPT-6 Cyber system card&lt;/a&gt; help you place it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It's a specialist.&lt;/strong&gt; OpenAI says it doesn't beat Astra at general coding: 82.95% on ExpertSWE against Astra's 83.24%.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's rated Critical.&lt;/strong&gt; Under OpenAI's Preparedness Framework it carries Critical in Cybersecurity, the same as &lt;a href="http://apidog.com/blog/gpt-6-astra-critical-cyber-threshold?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;GPT-6 Astra&lt;/a&gt;. GPT-5.6 Cyber was rated High.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It completes what Astra refuses.&lt;/strong&gt; On RemoteExploitBench, Astra with Daybreak Blue refused every task, while GPT-6 Cyber completed 95%.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OpenAI's headline results come from real targets. Its researchers used the model to &lt;a href="http://apidog.com/blog/openai-948-linux-root-exploits-api-server?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;develop 948 Linux privilege escalation exploits&lt;/a&gt; and to find 81 high-severity Firefox vulnerabilities, which Mozilla has started fixing. Those are OpenAI's reported numbers from the &lt;a href="https://openai.com/index/introducing-gpt-6-cyber/" rel="noopener noreferrer"&gt;GPT-6 Cyber announcement&lt;/a&gt;, not independent results.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who can access GPT-6 Cyber?
&lt;/h2&gt;

&lt;p&gt;Only approved organizations can use it today. OpenAI says GPT-6 Cyber is initially available through the API and Codex to a select group of Daybreak Red customers, and that it will expand to all Red customers soon. It gave no date.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj3ixu3h7sxm9fjxwx5zd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj3ixu3h7sxm9fjxwx5zd.png" alt="Access ladder with four steps: Standard, Daybreak Blue, Daybreak Red, and GPT-6 Cyber behind a separate model approval" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Access level&lt;/th&gt;
&lt;th&gt;Who can get it&lt;/th&gt;
&lt;th&gt;What you get&lt;/th&gt;
&lt;th&gt;GPT-6 Cyber?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Standard&lt;/td&gt;
&lt;td&gt;Any API account&lt;/td&gt;
&lt;td&gt;Mainline models, standard safeguards&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Daybreak Blue&lt;/td&gt;
&lt;td&gt;Verified individuals and organizations&lt;/td&gt;
&lt;td&gt;Reduced refusals on models such as GPT-6 Sol and GPT-6 Luna&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Daybreak Red&lt;/td&gt;
&lt;td&gt;Approved business and enterprise organizations&lt;/td&gt;
&lt;td&gt;GPT-5.6 Cyber, plus reduced refusals on mainline models including Astra&lt;/td&gt;
&lt;td&gt;Not by itself&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Red + model approval&lt;/td&gt;
&lt;td&gt;Red organizations approved for this model&lt;/td&gt;
&lt;td&gt;GPT-6 Cyber and GPT-5.6 Cyber&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The &lt;a href="https://help.openai.com/en/articles/20001258-openai-daybreak-trusted-access-for-cyber-overview" rel="noopener noreferrer"&gt;Daybreak overview&lt;/a&gt; spells out four limits worth reading before you apply:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Individuals can't apply for Red.&lt;/strong&gt; They can apply for Blue, which needs a paid plan, identity verification and a physical FIDO2 security key.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Money doesn't buy access.&lt;/strong&gt; A contract or purchase doesn't guarantee approval.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approval doesn't turn anything on.&lt;/strong&gt; An owner still has to enable Daybreak for a project, and enabling Red doesn't grant GPT-6 Cyber.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customer-facing use is out.&lt;/strong&gt; Daybreak isn't for downstream product traffic or third parties unless OpenAI has approved a specific setup. Partners go through a separate program.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can &lt;a href="https://openai.com/daybreak/" rel="noopener noreferrer"&gt;apply through the Daybreak page&lt;/a&gt;. For more on the tiers, see our &lt;a href="http://apidog.com/blog/openai-daybreak-blue-vs-red?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Daybreak Blue vs Red guide&lt;/a&gt;. Utilities and open-source projects can also register interest in Daybreak for Frontline Defenders, OpenAI's $1 billion subsidized access program.&lt;/p&gt;

&lt;h2&gt;
  
  
  GPT-6 Cyber pricing and specs
&lt;/h2&gt;

&lt;p&gt;OpenAI lists GPT-6 Cyber at exactly twice the price of &lt;a href="http://apidog.com/blog/gpt-6-astra-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;GPT-6 Astra&lt;/a&gt;, according to its &lt;a href="https://developers.openai.com/api/docs/pricing" rel="noopener noreferrer"&gt;pricing page&lt;/a&gt; and &lt;a href="https://developers.openai.com/api/docs/models/gpt-6-cyber" rel="noopener noreferrer"&gt;model page&lt;/a&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Per 1M tokens&lt;/th&gt;
&lt;th&gt;GPT-6 Cyber&lt;/th&gt;
&lt;th&gt;GPT-6 Astra&lt;/th&gt;
&lt;th&gt;GPT-5.6 Cyber&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Input&lt;/td&gt;
&lt;td&gt;$20.00&lt;/td&gt;
&lt;td&gt;$10.00&lt;/td&gt;
&lt;td&gt;$12.50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cached input&lt;/td&gt;
&lt;td&gt;$2.00&lt;/td&gt;
&lt;td&gt;$1.00&lt;/td&gt;
&lt;td&gt;$1.25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output&lt;/td&gt;
&lt;td&gt;$100.00&lt;/td&gt;
&lt;td&gt;$50.00&lt;/td&gt;
&lt;td&gt;$75.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;30-minute cache write&lt;/td&gt;
&lt;td&gt;$25.00&lt;/td&gt;
&lt;td&gt;$12.50&lt;/td&gt;
&lt;td&gt;$15.625&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12-hour cache write&lt;/td&gt;
&lt;td&gt;$50.00&lt;/td&gt;
&lt;td&gt;$25.00&lt;/td&gt;
&lt;td&gt;$31.25&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These are short-context rates. The pricing page shows no long-context rate for GPT-6 Cyber, so confirm with your account team before you plan around very large prompts.&lt;/p&gt;

&lt;p&gt;A call with 50,000 input tokens and 10,000 output tokens costs $2.00 on GPT-6 Cyber and $1.00 on Astra. Agent runs repeat calls, so caching matters: cached input is a tenth of the full rate.&lt;/p&gt;

&lt;p&gt;The specs on the model page:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Context window:&lt;/strong&gt; 1,050,000 tokens&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Max output:&lt;/strong&gt; 128,000 tokens&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Input and output:&lt;/strong&gt; text and image in, text out&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Features:&lt;/strong&gt; streaming, function calling and structured outputs. No fine-tuning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; web search, file search, code interpreter, hosted shell, apply patch, skills, computer use, MCP and tool search&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rate limits:&lt;/strong&gt; 5,000 requests per minute and 1 million tokens per minute on the Build tier, unless your organization has custom limits&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  GPT-6 Cyber benchmarks vs GPT-5.6 Cyber and Astra
&lt;/h2&gt;

&lt;p&gt;GPT-6 Cyber's gain over GPT-5.6 Cyber is large, while its lead over Astra is smaller and doesn't hold on every test. All of these scores come from OpenAI's announcement and system card.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Evaluation&lt;/th&gt;
&lt;th&gt;GPT-6 Cyber&lt;/th&gt;
&lt;th&gt;GPT-6 Astra&lt;/th&gt;
&lt;th&gt;GPT-5.6 Cyber&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ExploitGym&lt;/td&gt;
&lt;td&gt;48.45%&lt;/td&gt;
&lt;td&gt;42.43%&lt;/td&gt;
&lt;td&gt;32.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ExploitGym Hardened&lt;/td&gt;
&lt;td&gt;36.94%&lt;/td&gt;
&lt;td&gt;29.69%&lt;/td&gt;
&lt;td&gt;Not reported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SRE-Bench (reverse engineering)&lt;/td&gt;
&lt;td&gt;92.84%&lt;/td&gt;
&lt;td&gt;87.98%&lt;/td&gt;
&lt;td&gt;Not reported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web pentesting recall&lt;/td&gt;
&lt;td&gt;40.3%&lt;/td&gt;
&lt;td&gt;32.0%&lt;/td&gt;
&lt;td&gt;Not reported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Honeypot exploited, no safety prompt&lt;/td&gt;
&lt;td&gt;0.07%&lt;/td&gt;
&lt;td&gt;0%&lt;/td&gt;
&lt;td&gt;5.51%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The honeypot row matters if you run agents. OpenAI places an easy-to-attack, out-of-scope service next to a hard task. GPT-6 Cyber crossed that line in 0.07% of graded runs, and in none with deployment safety instructions added.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fndr01y9kgka9tzhcfwue.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fndr01y9kgka9tzhcfwue.png" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Where GPT-6 Cyber is weaker
&lt;/h3&gt;

&lt;p&gt;The system card also shows places where it trails Astra. These matter more for your test plan than the headline scores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reporting blockers:&lt;/strong&gt; 20.29% of graded final answers were flagged, against 11.66% for Astra. OpenAI says most flagged runs disclosed the blocker earlier but dropped it from the summary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stopping at warnings:&lt;/strong&gt; it stopped 73.00% of the time when stopping was right, against 78.38% for Astra.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FrontierCyber:&lt;/strong&gt; Irregular's external test scored it 90 of 288 against Astra's 96. Neither model solved any of the 15 hardest challenges.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The practical lesson is simple: don't accept the agent's final summary as proof. Check its evidence, keep a human on high-risk runs, and follow OpenAI's advice to run in isolated environments with explicit limits on targets and credentials.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to call GPT-6 Cyber through the API
&lt;/h2&gt;

&lt;p&gt;Use the Responses API with &lt;code&gt;model&lt;/code&gt; set to &lt;code&gt;gpt-6-cyber&lt;/code&gt; and &lt;code&gt;access_programs.cyber&lt;/code&gt; set to &lt;code&gt;daybreak_red&lt;/code&gt;. Selecting Red doesn't switch your model or grant access to one, so you need both fields and the setup below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5jvax3m5z35jphck5qsd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5jvax3m5z35jphck5qsd.png" alt="Five gates before a gpt-6-cyber request: Red and model approval, enabled non-default project, project API key, IP allowlist, and Private Safety Processing if the project uses Zero Data Retention" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Confirm with your account team that your organization has Daybreak Red and GPT-6 Cyber approval.&lt;/li&gt;
&lt;li&gt;Require SSO on the API organization and enforce MFA through your identity provider.&lt;/li&gt;
&lt;li&gt;Have an organization owner &lt;a href="https://help.openai.com/en/articles/20001531-openai-daybreak-set-up-access-for-your-team" rel="noopener noreferrer"&gt;enable Daybreak Red&lt;/a&gt; on a non-default project. Default projects can't enable it, and changes can take about 15 minutes.&lt;/li&gt;
&lt;li&gt;Create an API key in that project.&lt;/li&gt;
&lt;li&gt;Add your public egress IPs to the &lt;a href="https://developers.openai.com/api/docs/guides/ip-allowlist" rel="noopener noreferrer"&gt;IP allowlist&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;If the project uses Zero Data Retention, set up &lt;a href="https://developers.openai.com/api/docs/guides/private-safety-processing" rel="noopener noreferrer"&gt;Private Safety Processing&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then send OpenAI's documented request:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://api.openai.com/v1/responses &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$OPENAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "gpt-6-cyber",
    "access_programs": {"cyber": "daybreak_red"},
    "safety_identifier": "user_a17f",
    "input": "Suggest a regression test for a path traversal fix."
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;safety_identifier&lt;/code&gt; with a stable, pseudonymous ID for the person making the request. In the response, check &lt;code&gt;model&lt;/code&gt; and &lt;code&gt;access_programs.cyber&lt;/code&gt; to confirm what actually served the call.&lt;/p&gt;

&lt;p&gt;The Daybreak guide documents three access errors:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Error&lt;/th&gt;
&lt;th&gt;What it means&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;400 invalid_access_program&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Wrong program value for this model&lt;/td&gt;
&lt;td&gt;Use the value named in the error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;400 unsupported_access_program&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Model doesn't support Daybreak&lt;/td&gt;
&lt;td&gt;Switch models, or send &lt;code&gt;standard&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;403 access_program_not_enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Key's project or organization lacks the program&lt;/td&gt;
&lt;td&gt;Check the project, then request access&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Field validation fails too: &lt;code&gt;access_programs&lt;/code&gt; and &lt;code&gt;cyber&lt;/code&gt; are optional, but neither accepts &lt;code&gt;null&lt;/code&gt;. Also, an access error isn't the same as a refusal. Safeguards still apply after approval, so a refused prompt doesn't prove your setup is wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let your coding agent test it with Apidog CLI
&lt;/h2&gt;

&lt;p&gt;A gated model has a narrow setup and an expensive failure mode, so your agent should own the checks. &lt;a href="https://apidog.com/apidog-cli/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI&lt;/a&gt; lets it write them once and rerun them on every key rotation or allowlist change. Apidog Free covers up to 4 users.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; apidog-cli@latest
apidog auth login &lt;span class="nt"&gt;--with-token&lt;/span&gt; &amp;lt;YOUR_TOKEN&amp;gt;
apidog skill &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then give your agent one prompt. It works with or without Daybreak access, because the mock branch needs no OpenAI key:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;In Apidog project &amp;lt;id&amp;gt;, add POST /v1/responses from OpenAI's Daybreak guide.
Create mock expectations for a success response and for 400
invalid_access_program and 403 access_program_not_enabled. Create a test
scenario that checks our client handles each one. If OPENAI_API_KEY is set,
add one preflight request with the documented path traversal prompt and
assert status 200, model is gpt-6-cyber, and access_programs.cyber is
daybreak_red. Never send exploit prompts or real targets. Run it against
the &amp;lt;env&amp;gt; environment and summarize failures.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent reads each schema, validates its payload and runs the scenario:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apidog cli-schema get endpoint-create
apidog endpoint create &lt;span class="nt"&gt;--project&lt;/span&gt; &amp;lt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;--file&lt;/span&gt; endpoint.json
apidog cli-schema get mock-create
apidog mock create &lt;span class="nt"&gt;--project&lt;/span&gt; &amp;lt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;--file&lt;/span&gt; mock-403.json
apidog cli-schema validate test-scenario-create &lt;span class="nt"&gt;--file&lt;/span&gt; scenario.json
apidog test-scenario create &lt;span class="nt"&gt;--project&lt;/span&gt; &amp;lt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;--file&lt;/span&gt; scenario.json
apidog run &lt;span class="nt"&gt;-t&lt;/span&gt; &amp;lt;scenarioId&amp;gt; &lt;span class="nt"&gt;--project&lt;/span&gt; &amp;lt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &amp;lt;envId&amp;gt; &lt;span class="nt"&gt;-r&lt;/span&gt; cli,json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Keep the live check to that one small request, since every run bills at full rates, and run it from an allowlisted IP. Mock bodies should use only fields OpenAI documents, because we couldn't capture a live response.&lt;/p&gt;

&lt;p&gt;The same &lt;code&gt;apidog run&lt;/code&gt; line with &lt;code&gt;-r junit&lt;/code&gt; drops into a pipeline, as shown in our &lt;a href="http://apidog.com/blog/apidog-cli-ci-cd-pipeline?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI CI/CD guide&lt;/a&gt;. For agent setup, see &lt;a href="http://apidog.com/blog/apidog-cli-in-codex?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI in Codex&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is GPT-6 Cyber available to everyone?&lt;/strong&gt; No. It's limited to Daybreak Red organizations with separate GPT-6 Cyber approval. OpenAI says access will expand to all Red customers soon, but it hasn't given a date or announced general availability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How much does GPT-6 Cyber cost?&lt;/strong&gt; $20 per million input tokens, $2 per million cached input tokens and $100 per million output tokens, at short-context rates. Approval is still required, and a purchase alone doesn't guarantee access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the GPT-6 Cyber model ID?&lt;/strong&gt; Use &lt;code&gt;gpt-6-cyber&lt;/code&gt; in the &lt;code&gt;model&lt;/code&gt; field, with &lt;code&gt;access_programs.cyber&lt;/code&gt; set to &lt;code&gt;daybreak_red&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can individuals use GPT-6 Cyber?&lt;/strong&gt; Not through an application. Individuals can apply for Daybreak Blue only, and Blue has no access to cyber-specialized models. OpenAI notes that some individuals have access as exceptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is GPT-6 Cyber better than GPT-6 Astra?&lt;/strong&gt; For authorized offensive security work, usually. It leads Astra on ExploitGym and SRE-Bench and refuses far less. For general coding, OpenAI reports no gain, and it costs twice as much.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I use GPT-6 Cyber in Codex?&lt;/strong&gt; Yes, once your organization is approved. Sign in with your approved workspace, or use an API key from a project with Daybreak Red enabled. OpenAI recommends Codex's sandboxing and Auto-Review for this model.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Claude Code Subagents Now Use Less of Your Limit</title>
      <dc:creator>Hassann</dc:creator>
      <pubDate>Fri, 06 Nov 2026 00:32:37 +0000</pubDate>
      <link>https://dev.to/hassann/claude-code-subagents-now-use-less-of-your-limit-3aa7</link>
      <guid>https://dev.to/hassann/claude-code-subagents-now-use-less-of-your-limit-3aa7</guid>
      <description>&lt;h1&gt;
  
  
  Claude Code Subagents Now Use Less of Your Limit
&lt;/h1&gt;

&lt;p&gt;Claude Code subagents now take less of your usage limit. Anthropic moved the status line on background subagents from a full conversation re-read to Haiku 5.5 working from short notes. Each update costs about 99% less, and sessions with background subagents used about 5% less of the limit. Update to v2.1.316 or later to get it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Try Apidog today&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;That's the whole story in four sentences. The rest of this post covers who gets the change, what the two percentages mean, what stays unknown, and which settings cut subagent usage further.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed in Claude Code subagents
&lt;/h2&gt;

&lt;p&gt;A background subagent is a helper that runs alongside your main session while you keep working. In the terminal, it shows a short status line so you can see what it's doing, and that line refreshes every 30 seconds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://x.com/ClaudeDevs/status/2118063143167693011" rel="noopener noreferrer"&gt;Anthropic announced the change on X&lt;/a&gt; on November 5, 2026:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Before:&lt;/strong&gt; each 30-second update re-read the subagent's whole conversation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Now:&lt;/strong&gt; Haiku 5.5 writes the update from short notes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unchanged:&lt;/strong&gt; the subagent keeps its own model. If it runs on Opus 5.5 or Sonnet 5.5, it still does. Only the status line moved to Haiku 5.5.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don't need to change a setting or trade away quality on the work itself. The subagent's output comes from the same model as before.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a subagent status line was expensive
&lt;/h2&gt;

&lt;p&gt;A status line was expensive because a one-line summary was paying for a full read of a long conversation. The output was tiny, the input wasn't, and the job repeated every 30 seconds for as long as the subagent ran.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjkwuujczxaoynsta2llg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjkwuujczxaoynsta2llg.png" alt="Diagram comparing two flows: before, the whole subagent conversation fed each status update every 30 seconds; now, short notes go to Haiku 5.5, which writes the update at about 99% less cost per update" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The arithmetic shows how fast that adds up. At one update every 30 seconds, a subagent running for an hour produces 120 updates. Three running for an hour produce 360.&lt;/p&gt;

&lt;p&gt;Conversation length matters too. The &lt;a href="https://code.claude.com/docs/en/costs" rel="noopener noreferrer"&gt;Claude Code cost docs&lt;/a&gt; say token costs scale with context size, and a subagent's conversation grows as it reads files and runs tools. So the old design likely charged the most when a long-running subagent had the most context. That's our reading of the docs, since Anthropic hasn't published a cost curve for it.&lt;/p&gt;

&lt;p&gt;Don't confuse this with the custom status line you set up with &lt;code&gt;/statusline&lt;/code&gt;. The &lt;a href="https://code.claude.com/docs/en/statusline" rel="noopener noreferrer"&gt;status line docs&lt;/a&gt; say that one runs locally and doesn't consume API tokens. The change here covers the status line Claude Code generates for each running subagent.&lt;/p&gt;

&lt;h2&gt;
  
  
  The numbers: 99% per update, about 5% per session
&lt;/h2&gt;

&lt;p&gt;The two figures measure different things, and only one of them describes your limit.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Figure&lt;/th&gt;
&lt;th&gt;What it measures&lt;/th&gt;
&lt;th&gt;What it isn't&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;About 99% less&lt;/td&gt;
&lt;td&gt;The cost of one status update&lt;/td&gt;
&lt;td&gt;A saving on your bill or your limit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;About 5% less&lt;/td&gt;
&lt;td&gt;Limit used by sessions with background subagents&lt;/td&gt;
&lt;td&gt;A saving on sessions without them&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;About 6% more&lt;/td&gt;
&lt;td&gt;Prompts you get from the same limit, per Anthropic&lt;/td&gt;
&lt;td&gt;A rise in the limit itself&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq774f332n98czw0nddu0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq774f332n98czw0nddu0.png" alt="Bar comparison: one status update drops by about 99 percent, while a whole session with background subagents drops by about 5 percent, as stated by Anthropic" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you remember one number, make it 5%. A 99% cut to something that was a small part of the session gives you a small saving on the session. Subagents still do their real work on their own model, and that work is where most of the usage goes.&lt;/p&gt;

&lt;p&gt;Anthropic didn't say how much of the limit status updates used before. The two figures together suggest roughly a twentieth of those sessions, but that's an inference from rounded numbers, not a published figure.&lt;/p&gt;

&lt;p&gt;Your own saving will also vary. About 5% is what Anthropic reports across sessions with background subagents. It didn't publish a range, and a session with one short subagent has less to gain than a session with several long ones.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who gets the lower subagent usage
&lt;/h2&gt;

&lt;p&gt;Anthropic says the change is live for most individual plans and all organization plans, in the CLI only.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Where you use Claude Code&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pro, Max, Ultra&lt;/td&gt;
&lt;td&gt;Live for most users, not all&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Team, Enterprise&lt;/td&gt;
&lt;td&gt;Live for everyone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CLI&lt;/td&gt;
&lt;td&gt;Covered, on v2.1.316 or later&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Desktop app&lt;/td&gt;
&lt;td&gt;Nothing to change: it doesn't write this status line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API key, Bedrock, Vertex, Foundry&lt;/td&gt;
&lt;td&gt;Not stated&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The desktop detail comes from &lt;a href="https://x.com/ClaudeDevs/status/2118063143167693011" rel="noopener noreferrer"&gt;a reply in the same thread&lt;/a&gt; by Lydia Hallie of Anthropic, who said the desktop app doesn't write this subagent status line, so there was nothing to change there.&lt;/p&gt;

&lt;p&gt;Two gaps are worth knowing about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;"Most" has no public test.&lt;/strong&gt; The thread and docs don't name a flag or indicator that shows whether your Pro, Max, or Ultra account has it. Being on the right version is necessary, but it doesn't prove the change is live for you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pay-per-token users have no answer yet.&lt;/strong&gt; Anthropic framed this around plan limits and didn't address API-key or cloud provider setups. The &lt;a href="https://code.claude.com/docs/en/changelog" rel="noopener noreferrer"&gt;changelog&lt;/a&gt; for 2.1.318 does change subagent progress summaries on Bedrock, Vertex, Foundry, or with telemetry off: on a cold prompt cache, one can wait up to 5 minutes for the subagent's pending response. That shows those setups get their own handling, not that they get this saving.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 2.1.316 changelog entries we read don't mention the status line either, so the thread is the only source for the numbers and the version.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to update Claude Code and check your version
&lt;/h2&gt;

&lt;p&gt;Three commands cover it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude &lt;span class="nt"&gt;--version&lt;/span&gt;   &lt;span class="c"&gt;# needs to show 2.1.316 or later&lt;/span&gt;
claude update      &lt;span class="c"&gt;# installs a newer version if one exists&lt;/span&gt;
claude &lt;span class="nt"&gt;--version&lt;/span&gt;   &lt;span class="c"&gt;# confirm&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;claude update&lt;/code&gt; also works for package manager installs, where it updates through that package manager. The newest version listed in the changelog on November 5 was 2.1.318.&lt;/p&gt;

&lt;p&gt;To see what subagents use, run &lt;code&gt;/usage&lt;/code&gt; inside a session. On Pro, Max, Ultra, Team, and Enterprise plans, it &lt;a href="https://code.claude.com/docs/en/costs" rel="noopener noreferrer"&gt;attributes recent usage&lt;/a&gt; to skills, subagents, plugins, and MCP servers as percentages. Press &lt;code&gt;d&lt;/code&gt; or &lt;code&gt;w&lt;/code&gt; to switch between 24 hours and 7 days. The figures are approximate and come from local history on that machine, so treat a before and after comparison as a rough guide. If you're tracking limits closely, our &lt;a href="http://apidog.com/blog/claude-pro-limits?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Claude Pro and Max limits guide&lt;/a&gt; explains how they work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Other ways to spend less on subagents
&lt;/h2&gt;

&lt;p&gt;The status line fix is automatic, but it's about 5%. The docs are plain about the rest: each subagent &lt;a href="https://code.claude.com/docs/en/sub-agents" rel="noopener noreferrer"&gt;sends its own requests&lt;/a&gt;, and they count toward the same limit as your main conversation. These settings have more room to help.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pick a smaller model.&lt;/strong&gt; A subagent inherits your session's model unless told otherwise, so a switch to Opus also applies to those subagents. Set &lt;code&gt;model: haiku&lt;/code&gt; in a subagent definition for simple jobs. Our guide to &lt;a href="http://apidog.com/blog/claude-haiku-5-5-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Claude Haiku 5.5 in Claude Code&lt;/a&gt; covers that setup.&lt;/p&gt;

&lt;p&gt;To set a default for all of them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"CLAUDE_CODE_SUBAGENT_MODEL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"haiku"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"CLAUDE_CODE_SUBAGENT_MODEL_FORCE"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first variable alone is only a default. A subagent definition or a model Claude passes still wins, and it doesn't change the built-in Explore and Plan subagents. The second forces one model onto every subagent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lower the effort.&lt;/strong&gt; Version 2.1.316 added &lt;code&gt;CLAUDE_CODE_SUBAGENT_EFFORT&lt;/code&gt;, which sets the effort level for subagents when nothing else names one, instead of inheriting the session's. It's in the changelog but wasn't in the environment variable reference on November 5, so check accepted values before you rely on it. For one subagent, set the documented &lt;code&gt;effort&lt;/code&gt; field in its definition (&lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt;, &lt;code&gt;xhigh&lt;/code&gt;, or &lt;code&gt;max&lt;/code&gt;, depending on the model).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run fewer at once.&lt;/strong&gt; The default cap is 20 running subagents per session. Set &lt;code&gt;CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS&lt;/code&gt; to a lower whole number if you want a hard ceiling. Run &lt;code&gt;/tasks&lt;/code&gt; to see what's running, and which model and effort each subagent uses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep the brief narrow.&lt;/strong&gt; The cost docs note that vague requests trigger broad scanning. A subagent told to check one endpoint reads less than one told to review the API. Our guide to &lt;a href="http://apidog.com/blog/create-claude-code-subagents?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;creating custom Claude Code subagents&lt;/a&gt; walks through the full definition format.&lt;/p&gt;

&lt;h2&gt;
  
  
  Run API tests in a background subagent with Apidog CLI
&lt;/h2&gt;

&lt;p&gt;API test runs suit a background subagent: they take time, produce verbose output, and you only need the failures back. &lt;a href="https://apidog.com/apidog-cli/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI&lt;/a&gt; lets the subagent run a saved test scenario while your main session keeps coding, and the raw output stays out of your main context.&lt;/p&gt;

&lt;p&gt;Set it up once:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; apidog-cli@latest
apidog login &lt;span class="nt"&gt;--with-token&lt;/span&gt; &amp;lt;YOUR_TOKEN&amp;gt;
npx &lt;span class="nt"&gt;-y&lt;/span&gt; skills add https://apidog.com   &lt;span class="c"&gt;# pick Claude Code when prompted&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then add a small subagent at &lt;code&gt;.claude/agents/api-tester.md&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;api-tester&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Runs Apidog test scenarios and reports only the failures.&lt;/span&gt;
&lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Bash, Read&lt;/span&gt;
&lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;haiku&lt;/span&gt;
&lt;span class="na"&gt;background&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
Run the Apidog test scenario you are given. Report which steps failed
and why. Don't paste the full output.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now give Claude Code one [REDACTED PROMPT]&lt;br&gt;
Use the api-tester subagent to run Apidog test scenario  in&lt;br&gt;
project  against environment . Keep working on&lt;br&gt;
the checkout refactor. When it finishes, tell me only what failed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
The subagent runs commands like these:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
apidog test-scenario list --project &lt;br&gt;
apidog test-scenario run  --project  -e  -r cli,json --out-dir apidog-reports&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


Permission prompts from a background subagent show up in your main session, naming the subagent that's asking. For long runs, 2.1.318 also moves a shell command to the background after 3 minutes, so the prompt cache doesn't expire while it runs.

The same `run` command works in CI with `-r junit`, as the [Apidog CLI CI/CD guide](http://apidog.com/blog/apidog-cli-ci-cd-pipeline?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation) shows. For the general setup, see [Apidog CLI in Claude Code](http://apidog.com/blog/apidog-cli-in-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation). Apidog's Free plan covers up to 4 users.

## FAQ

**Do Claude Code subagents now cost 99% less?** No. The 99% applies to each status update. Anthropic says sessions with background subagents used about 5% less of the limit.

**Does my subagent now run on Haiku 5.5?** No. The subagent keeps its own model. Only the status line moved to Haiku 5.5.

**What version do I need?** v2.1.316 or later. Run `claude --version` to check and `claude update` to upgrade.

**Does this apply to the Claude desktop app?** No, because there was nothing to change. Anthropic's Lydia Hallie said the desktop app doesn't write this subagent status line.

**Is it live on my Pro plan?** Probably, but not certainly. Anthropic says most Pro, Max, and Ultra users have it, and everyone on Team and Enterprise. The thread and docs don't name a way to check your account.

**Does this help if I use an API key or Bedrock?** Anthropic hasn't said. The announcement talks about usage limits and doesn't cover API-key, Bedrock, or Vertex usage.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
    </item>
    <item>
      <title>How to Use the GPT-Image-2.6 API</title>
      <dc:creator>Hassann</dc:creator>
      <pubDate>Thu, 05 Nov 2026 10:22:40 +0000</pubDate>
      <link>https://dev.to/hassann/how-to-use-the-gpt-image-26-api-2mfd</link>
      <guid>https://dev.to/hassann/how-to-use-the-gpt-image-26-api-2mfd</guid>
      <description>&lt;h1&gt;
  
  
  How to Use the GPT-Image-2.6 API
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8gfilrcml2nvkmvez7ne.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8gfilrcml2nvkmvez7ne.png" alt="How to Use the GPT-Image-2.6 API" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The GPT-Image-2.6 API generates and edits images through two OpenAI models, &lt;code&gt;gpt-image-2.6-flare&lt;/code&gt; and &lt;code&gt;gpt-image-2.6-sunburst&lt;/code&gt;. Send a prompt to &lt;code&gt;POST /v1/images/generations&lt;/code&gt; with your API key, then decode &lt;code&gt;b64_json&lt;/code&gt; from the response. Version 2.6 adds image markup, SVG and GIF output, and a &lt;code&gt;complexity&lt;/code&gt; parameter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Try Apidog today&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;This guide covers authentication, a first generation, a markup edit, SVG export, and &lt;code&gt;quality&lt;/code&gt; and &lt;code&gt;complexity&lt;/code&gt; settings. It sticks to what's new, so read our &lt;a href="http://apidog.com/blog/gpt-image-2-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;gpt-image-2.5 API guide&lt;/a&gt; for streaming and the Responses API tool, and our &lt;a href="http://apidog.com/blog/what-is-chatgpt-images-2-6?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;ChatGPT Images 2.6 explainer&lt;/a&gt; for the full release. We built every request below from OpenAI's docs on November 5, 2026. We haven't run them against a live key, so test them before you ship.&lt;/p&gt;

&lt;h2&gt;
  
  
  GPT-Image-2.6 API at a glance
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Detail&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Model IDs&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;gpt-image-2.6-flare&lt;/code&gt;, &lt;code&gt;gpt-image-2.6-sunburst&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generate&lt;/td&gt;
&lt;td&gt;&lt;code&gt;POST /v1/images/generations&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Edit&lt;/td&gt;
&lt;td&gt;&lt;code&gt;POST /v1/images/edits&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auth&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Authorization: Bearer $OPENAI_API_KEY&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;b64_json&lt;/code&gt;; PNG by default, plus JPEG, WebP, GIF, SVG&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;quality&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt;, &lt;code&gt;xhigh&lt;/code&gt;, &lt;code&gt;max&lt;/code&gt;, &lt;code&gt;auto&lt;/code&gt; (default)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;complexity&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt; (&lt;code&gt;high&lt;/code&gt; if omitted)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image token rates&lt;/td&gt;
&lt;td&gt;$8 input, $2 cached input, $30 output per 1M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text token rates&lt;/td&gt;
&lt;td&gt;$5 input, $1.25 cached input per 1M&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Rates come from the &lt;a href="https://developers.openai.com/api/docs/pricing#image-generation" rel="noopener noreferrer"&gt;OpenAI pricing page&lt;/a&gt;. Both models cost the same per token, so pick on speed and edit precision.&lt;/p&gt;

&lt;h2&gt;
  
  
  Flare or Sunburst: which model should you call?
&lt;/h2&gt;

&lt;p&gt;Call Flare for fast iteration and everyday generation. OpenAI says it can return an image in as little as six seconds at &lt;code&gt;low&lt;/code&gt; quality, and that it improves layout for posters and product imagery. Call Sunburst for detailed work and repeated edits, where OpenAI claims better consistency at &lt;code&gt;medium&lt;/code&gt; or &lt;code&gt;high&lt;/code&gt; quality.&lt;/p&gt;

&lt;p&gt;Those are OpenAI's claims, not independent benchmarks. Our &lt;a href="http://apidog.com/blog/gpt-image-2-5-flare-vs-sunburst-vs-gpt-image-2?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Flare vs Sunburst comparison for 2.5&lt;/a&gt; explains the split.&lt;/p&gt;

&lt;h2&gt;
  
  
  Authentication and setup
&lt;/h2&gt;

&lt;p&gt;You need three things before your first call:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create an API key in the OpenAI dashboard and export it as &lt;code&gt;OPENAI_API_KEY&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Complete &lt;a href="https://help.openai.com/en/articles/10910291-api-organization-verification" rel="noopener noreferrer"&gt;API Organization Verification&lt;/a&gt; if your organization needs it. OpenAI says you may have to before you can use GPT Image models.&lt;/li&gt;
&lt;li&gt;Install &lt;code&gt;jq&lt;/code&gt; for the curl examples, or the &lt;code&gt;openai&lt;/code&gt; package for Python.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If your app serves individual users, also send a hashed &lt;code&gt;safety_identifier&lt;/code&gt; of up to 128 characters. It replaces the deprecated &lt;code&gt;user&lt;/code&gt; parameter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generate your first image
&lt;/h2&gt;

&lt;p&gt;This request uses Flare at &lt;code&gt;low&lt;/code&gt; quality, which suits drafts.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--fail-with-body&lt;/span&gt; &lt;span class="nt"&gt;--silent&lt;/span&gt; &lt;span class="nt"&gt;--show-error&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  https://api.openai.com/v1/images/generations &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$OPENAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "gpt-image-2.6-flare",
    "prompt": "A minimal poster for a developer meetup, with the words SHIP IT in bold type",
    "size": "1024x1536",
    "quality": "low",
    "complexity": "low"
  }'&lt;/span&gt; | jq &lt;span class="nt"&gt;-er&lt;/span&gt; &lt;span class="s1"&gt;'.data[0].b64_json'&lt;/span&gt; | &lt;span class="nb"&gt;base64&lt;/span&gt; &lt;span class="nt"&gt;--decode&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; poster.png
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The same call in Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;base64&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pathlib&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Path&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;images&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-image-2.6-sunburst&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;REDACTED&lt;/span&gt; &lt;span class="n"&gt;PROMPT&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;1536x1024&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;quality&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;medium&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;extra_body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;complexity&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;low&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nc"&gt;Path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mug.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;write_bytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;base64&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;b64decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;b64_json&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We pass &lt;code&gt;complexity&lt;/code&gt; through &lt;code&gt;extra_body&lt;/code&gt; so the call doesn't depend on your SDK version exposing it as a named argument. GPT Image models always return base64, so don't send &lt;code&gt;response_format&lt;/code&gt;, and don't look for a &lt;code&gt;url&lt;/code&gt; field.&lt;/p&gt;

&lt;p&gt;OpenAI's guide says to read the response's &lt;code&gt;usage&lt;/code&gt; object to measure token use. The API reference describes that field as &lt;code&gt;gpt-image-1&lt;/code&gt; only, though its sample response includes it, so confirm it appears on your 2.6 responses before you build cost tracking on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Edit an image with markup
&lt;/h2&gt;

&lt;p&gt;Markup tells the model where to make a change. You send the original image, a transparent PNG with your circles or sketches, and a prompt describing the edit.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--fail-with-body&lt;/span&gt; &lt;span class="nt"&gt;--silent&lt;/span&gt; &lt;span class="nt"&gt;--show-error&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  https://api.openai.com/v1/images/edits &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$OPENAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "gpt-image-2.6-flare",
    "images": [{"image_url": "https://your-bucket.example/kitchen.png"}],
    "markup": {"image_url": "https://your-bucket.example/vase-overlay.png"},
    "prompt": "Recolor the vase inside the red circle to solid cobalt blue. Keep everything else unchanged. Remove the red circle.",
    "quality": "medium",
    "complexity": "low"
  }'&lt;/span&gt; | jq &lt;span class="nt"&gt;-er&lt;/span&gt; &lt;span class="s1"&gt;'.data[0].b64_json'&lt;/span&gt; | &lt;span class="nb"&gt;base64&lt;/span&gt; &lt;span class="nt"&gt;--decode&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; vase.png
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;JSON requests use the &lt;code&gt;images&lt;/code&gt; array and a &lt;code&gt;markup&lt;/code&gt; object that holds exactly one of &lt;code&gt;image_url&lt;/code&gt; or &lt;code&gt;file_id&lt;/code&gt;. An &lt;code&gt;image_url&lt;/code&gt; can be an HTTPS URL or a base64 data URL. Multipart requests take a file upload instead, and the &lt;a href="https://developers.openai.com/api/docs/guides/image-generation" rel="noopener noreferrer"&gt;image generation guide&lt;/a&gt; has that version in Python.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdp55q7zycqz0sscog3w2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdp55q7zycqz0sscog3w2.png" alt="Diagram of a GPT-Image-2.6 markup edit: the original photo, a transparent PNG overlay and a text prompt go to POST /v1/images/edits, which returns the edited image with the annotation removed" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The overlay has strict rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After orientation, it must match the first image's width and height.&lt;/li&gt;
&lt;li&gt;It must contain transparent pixels, so don't flatten it onto the photo.&lt;/li&gt;
&lt;li&gt;It applies to the first input image. Any others act as references.&lt;/li&gt;
&lt;li&gt;Each of the two images can hold at most 16,777,216 pixels, and the overlay file can't exceed 50 MB.&lt;/li&gt;
&lt;li&gt;You can't combine &lt;code&gt;markup&lt;/code&gt; with &lt;code&gt;mask&lt;/code&gt; or &lt;code&gt;prompt_rewriter&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tell the model to remove the annotation, as OpenAI's own example does. Markup costs the same as any other edit. The Responses API doesn't take it, so use a mask there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Export SVG
&lt;/h2&gt;

&lt;p&gt;Set &lt;code&gt;output_format&lt;/code&gt; to &lt;code&gt;svg&lt;/code&gt; on the generations endpoint for icons, logos and illustrations that need editable paths.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--fail-with-body&lt;/span&gt; &lt;span class="nt"&gt;--silent&lt;/span&gt; &lt;span class="nt"&gt;--show-error&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  https://api.openai.com/v1/images/generations &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$OPENAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "gpt-image-2.6-sunburst",
    "prompt": "A flat two-color wheat logo for a bakery called Field and Flour",
    "output_format": "svg",
    "quality": "medium",
    "n": 1
  }'&lt;/span&gt; | jq &lt;span class="nt"&gt;-er&lt;/span&gt; &lt;span class="s1"&gt;'.data[0].b64_json'&lt;/span&gt; | &lt;span class="nb"&gt;base64&lt;/span&gt; &lt;span class="nt"&gt;--decode&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; logo.svg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The API first renders a reference image, which &lt;code&gt;quality&lt;/code&gt; controls, then writes the SVG from it. The decoded bytes are UTF-8 XML with no scripts, external resources or embedded rasters.&lt;/p&gt;

&lt;p&gt;Four limits apply:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;n&lt;/code&gt; must be 1.&lt;/li&gt;
&lt;li&gt;Streaming, partial images, &lt;code&gt;output_compression&lt;/code&gt; and &lt;code&gt;prompt_rewriter&lt;/code&gt; don't work.&lt;/li&gt;
&lt;li&gt;The edits endpoint can't output SVG, and it won't accept an SVG as a raster input.&lt;/li&gt;
&lt;li&gt;The optional &lt;code&gt;svg&lt;/code&gt; object picks the authoring model, but only if your account has SVG model selection. Otherwise, omit it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You pay twice: the image rate for the reference image and the authoring model's rate for its tokens. The API reference lists a separate &lt;code&gt;svg_usage&lt;/code&gt; object for that second part, so log it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generate a GIF
&lt;/h2&gt;

&lt;p&gt;The API returns a finished GIF, not a sprite sheet. Add three fields to a generations request:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"gpt-image-2.6-flare"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"prompt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"A small orange robot waves, blinks and returns to its starting pose. Make it loop."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"output_format"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"gif"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"frame_count"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"frame_duration_ms"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"size"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"auto"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Decode &lt;code&gt;b64_json&lt;/code&gt; the same way and save it as &lt;code&gt;.gif&lt;/code&gt;. Check two things first:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frame limit.&lt;/strong&gt; The guide says &lt;code&gt;frame_count&lt;/code&gt; runs from 2 to 64. The &lt;a href="https://developers.openai.com/api/reference/resources/images/methods/generate" rel="noopener noreferrer"&gt;API reference&lt;/a&gt; says 2 to 16. Stay at 16 or below until you've tested higher.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access.&lt;/strong&gt; The reference says GIF output requires access to the GIF preview for the selected model, while the guide doesn't mention this. A rejected GIF request may be an access issue, not a bad payload.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GIF output doesn't support streaming, partial images or custom &lt;code&gt;output_compression&lt;/code&gt;, and the edits endpoint can't return it. OpenAI publishes no GIF-specific billing formula, so run a small test and check your bill before you scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  Set quality and complexity
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;quality&lt;/code&gt; controls rendering detail and drives token cost. &lt;code&gt;complexity&lt;/code&gt; controls how much the model plans before rendering, and changing it carries no separate fee.&lt;/p&gt;

&lt;p&gt;Set &lt;code&gt;complexity&lt;/code&gt; on every request. The default is &lt;code&gt;high&lt;/code&gt;, yet OpenAI recommends &lt;code&gt;low&lt;/code&gt; for most edits. The guide warns that higher settings can add latency and introduce unwanted changes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu13zvlm10g5xfp3bn0uw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu13zvlm10g5xfp3bn0uw.png" alt="Grid of suggested GPT-Image-2.6 starting settings: quick drafts use Flare at low quality and low complexity, focused edits use low complexity, final detailed images use Sunburst at medium or high quality, and dense layouts use medium or high complexity" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Quality also sets your output bill. This table uses OpenAI's calculator for a 1024x1024 image, read November 5, and excludes input tokens:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;code&gt;quality&lt;/code&gt;&lt;/th&gt;
&lt;th&gt;Output tokens&lt;/th&gt;
&lt;th&gt;Output cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;low&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;823&lt;/td&gt;
&lt;td&gt;$0.02469&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;medium&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1,449&lt;/td&gt;
&lt;td&gt;$0.04347&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;high&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1,756&lt;/td&gt;
&lt;td&gt;$0.05268&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;xhigh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;3,122&lt;/td&gt;
&lt;td&gt;$0.09366&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;max&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;7,024&lt;/td&gt;
&lt;td&gt;$0.21072&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The gap between &lt;code&gt;medium&lt;/code&gt; and &lt;code&gt;high&lt;/code&gt; is about a cent, so compare both. The pricing page's Batch tab doesn't list 2.6 yet, so don't assume the 2.5 batch discount applies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handle errors and timeouts
&lt;/h2&gt;

&lt;p&gt;Sort failures by whether a retry can help:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Failure&lt;/th&gt;
&lt;th&gt;What to do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Rate limit or server error&lt;/td&gt;
&lt;td&gt;Retry with backoff&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quota error&lt;/td&gt;
&lt;td&gt;Don't retry; fix billing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;error.type&lt;/code&gt; is &lt;code&gt;image_generation_user_error&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Change the prompt or input first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;error.code&lt;/code&gt; is &lt;code&gt;moderation_blocked&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Read &lt;code&gt;moderation_details&lt;/code&gt;, then revise&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Use &lt;code&gt;error.code&lt;/code&gt; as your stable check, and log the request ID. &lt;code&gt;moderation_details&lt;/code&gt; carries &lt;code&gt;moderation_stage&lt;/code&gt; and coarse &lt;code&gt;categories&lt;/code&gt;, which belong in your logs, not in user-facing messages. Set client timeouts above two minutes, because OpenAI says complex prompts can take that long.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let your coding agent test it with Apidog CLI
&lt;/h2&gt;

&lt;p&gt;Your coding agent can turn these requests and limits into a test suite with &lt;a href="https://apidog.com/apidog-cli/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI&lt;/a&gt;. Set it up once:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; apidog-cli@latest
apidog auth login &lt;span class="nt"&gt;--with-token&lt;/span&gt; &amp;lt;YOUR_TOKEN&amp;gt;
apidog skill &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then give Claude Code, Codex or Cursor one [REDACTED PROMPT]&lt;br&gt;
In Apidog project , add POST /v1/images/generations and POST /v1/images/edits&lt;br&gt;
on &lt;a href="https://api.openai.com" rel="noopener noreferrer"&gt;https://api.openai.com&lt;/a&gt;. Read the Bearer [REDACTED] from OPENAI_API_KEY.&lt;br&gt;
Create test cases for gpt-image-2.6-flare at low quality and low complexity:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;PNG generation: assert status 200 and data[0].b64_json exists.&lt;/li&gt;
&lt;li&gt;SVG generation: assert status 200 and output_format equals svg.&lt;/li&gt;
&lt;li&gt;GIF with frame_count 6: assert status 200 and output_format equals gif.&lt;/li&gt;
&lt;li&gt;SVG with n set to 2: assert a 4xx status and that error.message exists.&lt;/li&gt;
&lt;li&gt;GIF with frame_count 17: record the status, because OpenAI's docs disagree.
Put them in a test suite named "GPT-Image-2.6", run it against environment
, and summarize every failure.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
The agent reads each schema, validates its payload, then writes and runs the suite:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
apidog cli-schema get endpoint-create&lt;br&gt;
apidog cli-schema validate endpoint-create --file endpoint.json&lt;br&gt;
apidog endpoint create --project  --file endpoint.json&lt;br&gt;
apidog cli-schema get test-case-create&lt;br&gt;
apidog cli-schema validate test-case-create --file case.json&lt;br&gt;
apidog test-case create --project  --file case.json&lt;br&gt;
apidog cli-schema validate test-suite-create --file suite.json&lt;br&gt;
apidog test-suite create --project  --file suite.json&lt;br&gt;
apidog test-suite run  --project  -e  \&lt;br&gt;
  --env-var "OPENAI_API_KEY=$OPENAI_API_KEY" --on-error continue -r cli,json&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


Case 5 settles the frame limit for your account, and case 3 shows whether you have GIF access. Successful cases make real, billable generations, so keep quality low. Swap in `-r junit` to run the suite in a [CI pipeline](http://apidog.com/blog/apidog-cli-ci-cd-pipeline?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation), and see the [Claude Code setup guide](http://apidog.com/blog/apidog-cli-in-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation) for agent details.

## FAQ

**What are the GPT-Image-2.6 API model names?** `gpt-image-2.6-flare` and `gpt-image-2.6-sunburst`. The API reference lists no dated snapshots for them yet, unlike the 2.5 models.

**How much does the GPT-Image-2.6 API cost?** Image tokens cost $8 per 1M input and $30 per 1M output. A 1024x1024 image costs about $0.025 in output at `low` and about $0.053 at `high`, before input tokens.

**Should I migrate from gpt-image-2.5?** Migrate if you need SVG, GIF or `complexity`. Test your costs first: a `low` image uses about 4.2 times the tokens it did on 2.5, and the 2.6 models have no Batch pricing listed yet.

**Can I use `complexity` on the edits endpoint?** Yes. OpenAI recommends `low` for most edits.

**Can I turn an uploaded image into a GIF through the API?** No. The edits endpoint doesn't return GIF or SVG, so both formats start from a text prompt on the generations endpoint.

**Does the API return a URL?** No. GPT Image models always return base64 in `b64_json`, so decode it and store the file yourself.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
    </item>
  </channel>
</rss>
