OpenAI · Text · API

ChatGPT API — ruble pricing and a 5-minute setup

ChatGPT API (OpenAI GPT) with ruble billing: GPT flagships and light Luna models via one Zerocoder key. Input and output per 1M tokens, streaming, SDK.

What the ChatGPT API gives you

ChatGPT is OpenAI's family of text models for chat, code, analysis and vision tasks. The family covers everything from quick, cheap replies to deep reasoning on long, complex prompts, so you pick the model that matches the job instead of overpaying for a single do-it-all endpoint.

Where the family is strong

  • Conversational products: support bots, assistants, onboarding flows
  • Code generation, review and explanation
  • Document and text analysis, summarization, extraction
  • Vision: reading images passed as content parts alongside text

What Zerocoder adds

One API key unlocks every model in the family. One ruble wallet pays for all of them, topped up with a Russian card or a company invoice, so you don't need a foreign card or a VPN. Docs and the key cabinet live on zerocoder.com, and the endpoints are compatible with the SDKs you already use.

How a request works

You send a request to /v1/messages (Anthropic-style format) or /v1/chat/completions (OpenAI-style format), naming the model id you want. Before generation, Zerocoder reserves an estimate based on your input and max_tokens; after the model answers, the real usage is charged and any difference is refunded. Both endpoints support streaming, so you can show tokens as they arrive instead of waiting for the full answer.

Models and prices

The live GET /v1/models price list in rubles and dollars. Where we are cheaper, the vendor's official price for the same unit is struck through. Minimum per call: 0.5 ₽. Endpoints: /v1/messages, /v1/chat/completions

Model prices in rubles and dollars; where we are cheaper, the vendor's official price for the same unit is struck through
ModelPriceUnitDiscount
GPT-5.4recommendedgpt-5.4 · OpenAIalso: openai-custom:gpt-5.4, gpt
Official price: input 225 ₽ / output 1350 ₽, Zerocoder price: input 99 ₽ / output 594 ₽$1.10 / $6.60per 1M tokensofficial: 3:1 blend · $2.50 in / $15 out-56%
GPT-6 Lunagpt-6-luna · OpenAIalso: gpt-luna, gpt-nano
Official price: input 9 ₽ / output 45 ₽, Zerocoder price: input 2.2 ₽ / output 11 ₽$0.024 / $0.122per 1M tokensofficial: 3:1 blend · $0.10 in / $0.50 out-75%
GPT-5.5gpt-5.5 · OpenAI
Official price: input 450 ₽ / output 2700 ₽, Zerocoder price: input 422 ₽ / output 2534 ₽$4.69 / $28.16per 1M tokensofficial: 3:1 blend · $5 in / $30 out-6%
GPT-6.1 Solgpt-6.1-sol · OpenAI
Official price: input 180 ₽ / output 900 ₽, Zerocoder price: input 44.1 ₽ / output 220 ₽$0.490 / $2.45per 1M tokensofficial: 3:1 blend · $2 in / $10 out-75%
GPT-6 Solgpt-6-sol · OpenAI
Official price: input 180 ₽ / output 900 ₽, Zerocoder price: input 44.1 ₽ / output 220 ₽$0.490 / $2.45per 1M tokensofficial: 3:1 blend · $2 in / $10 out-75%
GPT-5.6 Terragpt-5.6-terra · OpenAI
Official price: input 180 ₽ / output 1080 ₽, Zerocoder price: input 99 ₽ / output 792 ₽$1.10 / $8.80per 1M tokensofficial: 3:1 blend · $2 in / $12 out-32%
GPT-5.6 Solgpt-5.6-sol · OpenAI
Official price: input 360 ₽ / output 1800 ₽, Zerocoder price: input 198 ₽ / output 1584 ₽$2.20 / $17.60per 1M tokensofficial: 3:1 blend · $4 in / $20 out-24%
GPT-5.6 Lunagpt-5.6-luna · OpenAIalso: gpt-mini
input 39.6 ₽ / output 317 ₽$0.440 / $3.52per 1M tokens—
Struck-through prices are the vendors’ official rates from their own pages: OpenAI — checked 4 October 2026. Dollars at the internal rate 1 $ = 90 ₽; the Zerocoder price includes ruble billing and no-VPN access. Comparison assumptions:
  • text: both Zerocoder and the vendor price input and output separately; the badge blends both the same way — 3 : 1 (input : output), with input and output shown separately in the row. A different output share shifts the saving slightly. The per-call minimum (min_rub in GET /v1/models) is not included: a very short request costs at least the minimum and can come out above the official price

Cost calculator

Pick a model and a volume — the calculator uses the same formulas as API billing.

per call0.5 ₽ $0.0056
per month · 1,000500 ₽ $5.56

input 99 ₽ / output 594 ₽ per 1M tokens

minimum per call: 0.5 ₽

Prices from GET /v1/models, internal exchange rate. Failed generations are not charged.

  1. Get a keyin the API dashboard
  2. Top up the walletin rubles: card, SBP or invoice
  3. Make the callPOST /v1/chat/completions, model gpt
First request

Connect the ChatGPT API: change two values

The OpenAI SDK in Python and Node.js, the Anthropic SDK or curl: swap the base URL and the key — requests, streaming and response handling stay as they are. ChatGPT answers on POST /v1/messages and /v1/chat/completions.

Base URL
https://zerocoder.com/api/v1

Anthropic SDK — https://zerocoder.com/api, without /v1

Model in the samples — gpt; any model from the table works

from openai import OpenAI client = OpenAI(    base_url="https://zerocoder.com/api/v1",    api_key="zc-sk-…",) r = client.chat.completions.create(    model="gpt",    messages=[{"role": "user", "content": "Hello!"}],)print(r.choices[0].message.content)
import OpenAI from "openai"; const client = new OpenAI({  baseURL: "https://zerocoder.com/api/v1",  apiKey: "zc-sk-…",}); const r = await client.chat.completions.create({  model: "gpt",  messages: [{ role: "user", content: "Hello!" }],});console.log(r.choices[0].message.content);
import Anthropic from "@anthropic-ai/sdk"; const client = new Anthropic({  // without /v1: the SDK appends /v1/messages itself  baseURL: "https://zerocoder.com/api",  apiKey: "zc-sk-…",}); const msg = await client.messages.create({  model: "gpt",  max_tokens: 300,  messages: [{ role: "user", content: "Hello!" }],});console.log(msg.content[0].text);
# Anthropic Messages formatcurl https://zerocoder.com/api/v1/messages \  -H "x-api-key: zc-sk-…" \  -H "content-type: application/json" \  -d '{"model": "gpt", "max_tokens": 400,       "messages": [{"role": "user", "content": "Hello!"}]}' # OpenAI chat/completions format, streamingcurl -N https://zerocoder.com/api/v1/chat/completions \  -H "authorization: Bearer zc-sk-…" \  -H "content-type: application/json" \  -d '{"model": "gpt", "stream": true,       "messages": [{"role": "user", "content": "Hello!"}]}'
// Live price comparisongpt · per 1M tokens
  • Zerocoder-56%input $1.10 / output $6.60
  • Official APIinput $2.50 / output $15.00

OpenAI list price (GPT-5.4); bars and discount compare both prices blended 3 : 1 (input : output); checked 4 October 2026

How to connect the ChatGPT API: first request in 5 minutes

From a key to production — six steps based on the real /api/v1 contracts. Each step links to the relevant docs section.

  1. 1

    Get a key in your account

    Sign up, open the API section of your account, top up the balance in rubles and create a zc-sk-… key. One key unlocks ChatGPT and every other model in the catalogue.

    Read more →
  2. 2

    Send the first request

    POST /v1/chat/completions (Bearer) or /v1/messages (x-api-key) with model and messages — OpenAI and Anthropic shapes, the SDKs work with a swapped base URL.

    Read more →
  3. 3

    Turn on streaming

    stream: true — the answer arrives as SSE chunks with a final billing event showing the real charge. The reserve is taken by max_tokens (default 8192), so set it to fit the task.

    Read more →
  4. 4

    Handle limits and errors

    30 requests per minute per key: on 429 wait and retry with a growing pause; 402 — top up the balance; 400 — check model against GET /v1/models. Failed generations are not charged, so retrying is safe.

    Read more →
  5. 5

    Watch the budget

    GET /v1/balance returns the balance and 30-day spend; every call's price comes back in the response — write it to your logs and set an alert threshold in your own monitoring.

    Read more →
  6. 6

    Ship to production

    Keep the key in server secrets, never in the frontend. For high ChatGPT volumes contact us — the limit is raised individually and companies can pay by invoice. Check the observed stability on the status page.

    Read more →

No code

Any tool that can make an HTTP request can call our API: one POST with the x-api-key header.
HTTP Requestn8n

HTTP Request node: POST to the /api/v1 endpoint, x-api-key header and a JSON body built from workflow fields. For video add a Wait node and a second HTTP Request on GET ?id= in a loop until completed.

HTTP → Make a requestMake

HTTP “Make a request” module: POST, Body type JSON, x-api-key header. The response is parsed automatically — the image url or the answer text flows into the next modules.

Webhooks by ZapierZapier

Webhooks by Zapier → Custom Request action: POST, Data — JSON with model and prompt, Headers — x-api-key. Response fields are available to the following Zap steps.

Apps ScriptGoogle Sheets

In Apps Script use UrlFetchApp.fetch with method post, contentType application/json and a payload from the cells: prompts in one column, results written to the next one.

any bot frameworkTelegram bot

A bot on aiogram, grammY or Telegraf calls the same HTTP API: user message → model request → reply in the chat. For video — poll the status and send the file from the finished URL.

OpenAI-compatible base URLPython / Node SDK

For text models the official OpenAI and Anthropic SDKs work with a swapped base URL and our key — your application code stays the same. Images and video are a plain HTTP call from any language.

For business

We'll help bring AI into your business

More than a key: we help wire ChatGPT and other models into your workflows — from audit to production, with invoice payment.

  • Process auditWe find where AI pays off in your workflows: support, sales, content, documents — and name specific scenarios and models.
  • Integration into CRM, website, Telegram, n8nWired through our API or ready no-code scenarios; one key and a shared balance for every model.
  • Ruble payment by invoiceCompanies get an invoice for bank transfer, accounting documents and a top-up of the API balance.
  • Support and limitsHelp with prompts and architecture, request limits raised individually for your load.

Inputs, limits and refunds

  • Two shapes: Anthropic Messages (/v1/messages, x-api-key) and OpenAI chat/completions (Bearer)
  • Streaming: Anthropic SSE with a billing event at the end; OpenAI chunks and data: [DONE]
  • Input and output tokens are billed at their own per-1M prices (output costs more), minimum per call in min_rub
  • A reserve by max_tokens (default 8192) is taken before the answer and settled after
  • Failure before the first token — the reserve is refunded
  • Image input only via the separate vision model (model: vision); images sent to the models on this page return 400 model_no_vision with nothing charged
  • 30 requests per minute per key (all endpoints combined); model: smart picks the model tier itself

Error responses and refunds

# 401 {"type":"error","error":{"type":"authentication_error","message":"Invalid or revoked API key."}}
# 402 {"type":"error","error":{"type":"billing_error","message":"Not enough API balance: …"}}
# 429 {"type":"error","error":{"type":"rate_limit_error","message":"…"}}   ← 30 requests/min per key
# 400 {"type":"error","error":{"type":"invalid_request_error","message":"Unknown model \"…\". See GET /v1/models."}}
# /chat/completions uses the OpenAI envelope: {"error":{"message":"…","type":"…","code":"insufficient_balance"}}
# streaming: the reserve (by max_tokens) is settled after the answer; a failure before the first token is refunded
# event: billing {"charged_rub":…,"reserved_rub":…,"balance_rub":…,"unit":"1M_tokens","rub_per_mtok_in":…,"rub_per_mtok_out":…,"rub_per_mtok":…}

Observed stability of the API and text models

Numbers come from the public /status summary: the share of successful requests over a period for the whole API and for the category as a whole (the summary has no per-model breakdown), no SLA promises. Failed generations are not charged, so retrying is safe.

Developer APIoperational

—now (2 h window)
78.5%last 30 days
78.5%last 90 days

Text & chatoperational

—now (2 h window)
92%last 30 days
89%last 90 days

Refunds and charges

  • Failure before the first token — the reserve is refunded in full
  • The max_tokens reserve is settled after the answer — only the real volume is charged
  • In streaming the real charge arrives as the billing event

Tracking since Aug 6, 2026.

Use cases

1

Customer support bot that answers in a brand voice and escalates edge cases to a human

2

SaaS feature that drafts, rewrites or summarizes user documents on demand

3

Internal tool that reviews pull requests and explains code changes in plain language

4

Indie product that turns screenshots into structured data using vision input

5

Content pipeline that classifies, tags and extracts fields from incoming text at scale

6

Telegram or website assistant that keeps conversation history and streams replies live

Prompting tips

  • Set a clear system prompt describing the assistant's role and tone before the first user message
  • Ask explicitly for JSON or markdown in the prompt if your app needs to parse the output
  • Set max_tokens close to the expected answer length to avoid over-reserving on the estimate
  • Lower temperature for deterministic, repeatable answers; raise it for varied, creative output
  • Use stream: true for chat UIs so users see tokens appear instead of waiting for the full reply

Ready-made prompts for ChatGPT

Copy the prompt and the parameters into the request body — the fields are named exactly as in the /api/v1 contract. Replace the angle-bracket placeholders with your material.

Product descriptions in bulk

Write a product description under 60 words and five benefit bullets strictly from the specs:

<specs>
system: You write for an online store: specific, no superlatives.max_tokens: 400

SEO: title and description

For the page below suggest three title options under 60 characters and a description under 155 characters with the key phrase “<phrase>”:

<page text>
max_tokens: 400

Ticket classification

<the customer's message to classify>
system: Return JSON only: {"category": billing | delivery | quality | other, "priority": low | medium | high}max_tokens: 60

Translation with localisation

Translate into German for an Austrian audience, keep formatting and placeholders in curly braces, adapt idioms:

<text>
max_tokens: 1500

Chatbot with a system prompt

<conversation history in messages, last turn from the user>
system: You are a consultant at a bicycle shop. Keep it short, ask about height and budget, suggest at most two models.stream: truemax_tokens: 500

Who the ChatGPT API is for

Industries where this kind of generation becomes part of the workflow rather than an experiment.

SaaS & appsAn AI assistant inside your product: OpenAI or Anthropic shape, ChatGPT via a swapped base URL.
Support & CRMTicket replies, classification, conversation summaries for managers.
E-commerceProduct descriptions, SEO copy, review replies — in bulk across the catalogue.
EdTechGrading, explanations at the learner's level, quiz generation.
Documents & legalDigests, version comparison, field extraction into structured data.
Media & contentArticle drafts, rewrites, headlines and translations — ChatGPT in the editorial pipeline.

FAQ

How much does the ChatGPT API cost per million tokens in rubles?

ChatGPT through Zerocoder is billed per token: each GPT model has two prices per million tokens — input and output (output costs more), shown in the table above and in GET /v1/models, with the per-call minimum in min_rub. max_tokens is reserved at the output price and settled after the answer by usage; the actual charge arrives in the billing block of the last stream chunk.

How do I migrate code from the official OpenAI API to the Zerocoder ChatGPT API?

Change two lines: base_url to zerocoder.com/api/v1 and api_key to a zc-sk-… key. The /v1/chat/completions format, the system / user / assistant roles, streaming and error codes match OpenAI, so the rest of your Python or Node.js code stays as it is. If you do not need the SDK, plain requests works — see the ChatGPT sample above.

What are the ChatGPT API limits on rate and context?

The shared key limit is 30 requests per minute across all API endpoints; above it ChatGPT returns 429 rate_limit_error. Context is bounded by the chosen GPT model, max_tokens caps the answer and sets the reserve size, which is held until the answer ends. The temperature parameter is accepted but does not affect the answer.

Which GPT model do I put in the model field of the ChatGPT API?

The short ids gpt and gpt-luna are pinned to specific versions — which ones is shown in the aliases field of GET /v1/models; call newer versions by their exact id from the table. The flagship gpt is for reasoning and code, the light gpt-luna for routine generation, classification and extraction at the lowest price. The value smart hands the choice to the router, and the bill is for the model that actually answered.

Does the ChatGPT API charge money on errors?

If the ChatGPT answer never starts — the provider is down or the request is rejected — the reserve returns to the balance in full with no support ticket. Request format errors (400) and rate limiting (429) cost nothing. If a stream breaks midway, only the tokens actually generated per usage are charged.

Can a company settle the ChatGPT API by invoice?

Yes. A legal entity requests an invoice in the API account and pays it from the corporate account; once credited, the amount is spent on ChatGPT and other models with the same key. A Russian bank card tops up the balance immediately, and accounting documents are provided on request. No OpenAI account, VPN or foreign card needed.

Is there a free quota on the ChatGPT API?

There is no free quota in the API: the wallet opens with a minimum first top-up, then ChatGPT is charged per token with a per-call minimum. You can test GPT model answers on your own tasks for free in the Zerocoder studio and the ChatGPT tool in the catalogue, then move the prompt into /v1/chat/completions.

Does the ChatGPT API support streaming and vision?

Yes. With stream: true the ChatGPT answer arrives in OpenAI-format chunks and ends with data: [DONE], the last chunk carrying a billing block with the actual charge. A user message may include up to 4 images as image_url parts (https URL or data URI) — vision is in beta: a dedicated vision model handles the pictures, and its name is visible in the model field of the response.

AI API for your product

Up to -75% vs the official API · ruble billing, no VPN