Gemini 3.8 Flash via API: setup, pricing and bulk workloads

How to connect Gemini 3.8 Flash with a Zukko key, what a million short requests cost, and which models to compare it with for bulk work.

5 min · · models · автоматизация

Gemini 3.8 Flash is one of the cheapest models in the Zukko catalogue, and it is most often used for bulk processing: classification, labelling, extracting fields from short texts. Below is how to connect the Gemini 3.8 Flash API with a Zukko key, what it does and does not support in our catalogue, and what a million short requests cost compared with neighbouring models.

Gemini 3.8 Flash pricing in Zukko

The model ID is gemini-3.8-flash. Prices in dollars per 1M tokens as of 6 October 2026:

ParameterValue
Input$0.025
Output$0.088
Cache read$0.013 (if the provider reports it in the response)
Cache writenot charged separately
Context1M tokens
Image inputno
Vendor's official price, input / output$0.75 / $3.75

The intelligence index in the catalogue is 41 (the Intelligence Index from Artificial Analysis, a composite benchmark score). Models and prices change: current data is at GET https://api.zukko.pro/v1/models or on the Models page in the dashboard.

Connecting the Gemini 3.8 Flash API

The model is called through the same OpenAI-compatible address as the others. No separate Google SDK is needed — the openai package works:

bash
from openai import OpenAI

client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_your_key")

resp = client.chat.completions.create(
    model="gemini-3.8-flash",
    messages=[
        {"role": "system", "content": "Classify the review sentiment. Answer with one word: positive, negative or neutral."},
        {"role": "user", "content": "Delivered a day late, but the courier was polite and the item arrived intact."},
    ],
    max_tokens=10,
)
print(resp.choices[0].message.content)

The same with curl:

bash
curl https://api.zukko.pro/v1/chat/completions \
  -H "Authorization: Bearer fetch_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.8-flash",
    "max_tokens": 10,
    "messages": [{"role": "user", "content": "Translate into Russian: delivery takes 5 days"}]
  }'

If you need the Anthropic format, the model also works through POST /v1/messages — the gateway converts the request.

Image input: not in our catalogue

In the Zukko catalogue gemini-3.8-flash is not marked as accepting images — send it text only. If your task involves scans, screenshots or photos, pick a model with image support, for example:

ModelInput / output, $ per 1MIntelligence index
deepseek-v4-pro0.088 / 0.2536
qwen3.8-max0.1 / 0.26345
gpt-6-sol0.13 / 0.63—
gpt-6.1-sol0.27 / 1.3252

A workable setup for a mixed stream: text tasks go to Gemini 3.8 Flash, image tasks to one of the models in the table. They share the key and balance; only the model field changes.

The math: a million short requests

Take a typical bulk task: 1,000,000 requests, each with 300 input tokens (instruction plus a short text) and a 100-token answer. That is 300M input tokens and 100M output tokens.

Formula: cost = input (millions) × input price + output (millions) × output price.

For Gemini 3.8 Flash: 300 × 0.025 + 100 × 0.088 = 7.5 + 8.8 = $16.30.

At the vendor's official price: 300 × 0.75 + 100 × 3.75 = 225 + 375 = $600.

The same workload on other low-cost Zukko models:

ModelCalculationTotalIntelligence indexContext
gemini-3.8-flash300 × 0.025 + 100 × 0.088$16.30411M
deepseek-v4.1-flash300 × 0.013 + 100 × 0.038$7.70391M
gemini-3.7-flash300 × 0.013 + 100 × 0.05$8.90—1M
glm-5.3-flash300 × 0.04 + 100 × 0.04$16.0042128K
gpt-6-luna300 × 0.04 + 100 × 0.21$33.00381M

What the table shows: on this workload DeepSeek V4.1 Flash and Gemini 3.7 Flash are cheaper than Gemini 3.8 Flash, and GLM 5.3 Flash costs almost the same with an index of 42 but a 128K context. Index values are a composite score on other people's tasks; only a test will show which model handles your labelling better. A detailed comparison of the two cheapest options is in the article DeepSeek or Gemini Flash.

Note the structure of the bill: of Gemini 3.8 Flash's $16.30, $8.80 is output. Limit max_tokens and ask for a short answer format — that is a direct saving. Check completion_tokens in usage on a trial batch: if the model reasons before answering, actual output can be larger than the visible text.

How to run bulk processing

A few practical rules:

  1. Start with a trial batch. Run 200–500 requests, compute the average prompt_tokens and completion_tokens from usage, and multiply by the full volume. That beats any estimate.
  2. A separate key for the job. In the dashboard you can give a key a daily and monthly dollar limit and a list of allowed models — for example, only gemini-3.8-flash. A bug in a loop will not eat your balance.
  3. Handle 429. Zukko has no general rate limit of its own: a 429 means the key's limit is used up (key_daily_limit_reached / key_monthly_limit_reached) — then retrying won't help — or a limit on the model provider's side. In the second case limit concurrency and retry with a pause; the openai SDK makes a few retries itself.
  4. Protect against double billing. If the pipeline restarts, send an Idempotency-Key header with a unique value per row: repeating a successful request with the same key returns the stored response without a second charge. Details — in the section on key limits and caching.

An example with limited concurrency:

bash
import asyncio
from openai import AsyncOpenAI

client = AsyncOpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_your_key")
sem = asyncio.Semaphore(10)

async def classify(row_id: int, text: str) -> str:
    async with sem:
        resp = await client.chat.completions.create(
            model="gemini-3.8-flash",
            messages=[
                {"role": "system", "content": "Answer with one word: positive, negative or neutral."},
                {"role": "user", "content": text},
            ],

The cost of a single request is in the X-Zukko-Cost-Micros header (on non-streaming responses); daily totals are in the Usage section. General request parameters are in the /v1/chat/completions reference.

To try it, create a key on the API keys page and run a trial batch on your own data.

FAQ

Can I send Gemini 3.8 Flash an image?

Image input is not marked for this model in the Zukko catalogue. For tasks with images use a model that supports them, such as deepseek-v4-pro or gpt-6.1-sol.

What do a thousand short requests cost?

With 300 input and 100 output tokens: 0.3 × 0.025 + 0.1 × 0.088 = 0.0075 + 0.0088 = $0.0163.

Does caching help with short requests?

A cache read for this model costs $0.013 versus $0.025 for input (counted if the provider reports it in the response; writes are not charged separately), but only the repeating beginning of a request is cached. At 300 tokens per request there is almost nothing to repeat, so the calculations above ignore caching — they are an upper bound.

How do I pay from Russia?

The dollar balance can be topped up via SBP, a Russian bank card or cryptocurrency; the minimum is $1.

zukko

Pay 25×
less

for Claude Code & ChatGPT

One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.

Get API keyDocumentation

api.zukko.pro · fetch_*

Gemini 3.8 Flash API: setup and pricing in Zukko · Zukko