Pricing endpoint
GET /pricing — current rates per model, per backend, as JSON.
GET https://public.eterial.ai/pricingPublic: no key, no headers, no account. It is the source the tables on Pricing render, so a client can price a request without scraping a page.
{
"object": "pricing",
"currency": "USD",
"unit": "per_1m_tokens",
"data": [
{
"id": "kimi-k2.6",
"gonka": { "input": "0.00029751", "output": "0.00029751" },
"openrouter": { "input": "0.58025", "output": "3.376" },
"average": { "input": "0.019005654", "output": "0.109191138" }
}
],
"gonka_uptime_7d": 0.967741935483871
}The fields
| Field | What it is |
|---|---|
unit | The basis every rate below is quoted on: per_1m_tokens. |
currency | The currency those rates are in: USD. |
data[].id | The model id — the same string you send as model. |
gonka | What the GPU network charges. Input and output are one rate. |
openrouter | What the fallback costs, OpenRouter's own service fee already included. |
average | The two blended by how much traffic each backend carried. See below. |
gonka_uptime_7d | Share of traffic the network served over the last seven days, 0–1. |
Every rate is a decimal string, not a number: the network's rates run to the ten-thousandth of a cent, and that is past what a JSON float holds exactly. Parse them as decimals if you are going to do arithmetic on them.
How average is derived
average = gonka × gonka_uptime_7d + openrouter × (1 − gonka_uptime_7d)It is the rate a bill tends towards rather than a rate anything is charged at — a request is charged at whichever backend served it. What that means for planning a budget is on Pricing.
Polling it
Rates move — network governance on one side, the upstream provider on the other — but not by the minute. Once an hour is plenty, and the response is small enough that caching it costs nothing.