guides
Estimate a token bill on OpenRouter, Groq, or Together AI
A same-day reading of official token units, plan fees, rate limits, and data-use defaults, plus a worked example for openai/gpt-oss-120b under stated assumptions. Token arithmetic is list-price inference; OpenRouter’s 5.5% ($0.80 Stripe minimum) is a credit-purchase fee, not a per-request markup. The totals are example arithmetic, not receipts, and not a cheapest-vendor or equal-quality claim. Groq official rate-limit tables that disagree are located, not flattened.

Estimate a token bill on OpenRouter, Groq, or Together AI
Before you wire a prototype to an inference API, you need a bill you can actually check: the official unit (usually tokens per million), any platform fee or regional multiplier, the rate-limit that will stop the run, and whether prompts are stored or used for training. This is not a speed ranking, and it is not a claim that one vendor is cheapest.
OpenRouter, Groq, and Together AI all sell serverless chat inference by the token, but they do not bill the same way around that unit. OpenRouter charges the provider’s list price and a plan fee when you buy credits. Groq posts per-model input and output rates on its official model catalog. Together posts serverless token rates and, separately, GPU, fine-tune, and US-only multipliers that must not be mixed into one number. For how a generic SaaS page hides a free tier versus a credit pack, see Pricing Pages Decoded: Freemium vs Credit Packs for AI Tools. This article stays on inference units.
How this article was written
Official pricing, limits, and data-use pages were opened first-hand on 10 November 2026 (Asia/Shanghai). No accounts were created, no keys were used, and no tokens were purchased or spent. Every dollar figure below is an example calculation from those official unit prices under stated assumptions — not a receipt and not a promise of the lowest bill. Where two official pages disagree, both are left visible. groq.com/pricing opened as a marketing page without a token table on this date; Groq unit prices are taken from the official Supported Models docs.
The billing units that actually move the invoice
| What you are paying for | OpenRouter (official, 10 Nov 2026) | Groq (official Supported Models) | Together AI serverless (official) |
|---|---|---|---|
| Inference unit | Input and output tokens, at the provider’s list price for the endpoint that serves the request | Input and output tokens per million, per model ID | Chat/language: input and output tokens per million. Image, video, and audio use different units and must not be priced as tokens |
| Platform or plan fee | Standard 5.5% and Business 8%, charged when you buy credits, not on each request. Inference itself is not marked up. The official FAQ also states a 5.5% fee ($0.80 minimum) when you purchase credits (Stripe); crypto is 5%. That $0.80 is a credit-purchase fee floor, not a per-inference charge, and it is not the same statement as “no minimum spend and no lock-in” on Standard and Business | No separate platform fee is stated on the model catalog. List prices are the token rates | No minimum and no provisioning cost for serverless. US-only processing for select serverless models, sent to us-api.together.ai, costs 1.25× standard input, cached input, and output rates. Official docs: for any other region, use a dedicated endpoint. Do not treat 1.25× as a worldwide region tax |
| How failed calls are billed | An attempt that errors is not charged for its model tokens; with fallback you pay only for the run that answers. Auxiliary services already run may still be billed | Not restated here as a Groq-wide failed-request rule; confirm on current docs before you assume a retry is free | Not used as a global “errors are free” rule in this article |
| Rate limits you will actually hit | Free plan: 50 requests/day. Paid models: no plan-based cap; limits usually come from the provider. Free-model variants (:free): 20 requests/minute and 50/day, or 1,000/day after at least $10 of credits purchased | Organization-level RPM, RPD, TPM, TPD (and audio units). Official pages disagree on the Developer-plan numbers for openai/gpt-oss-120b — see below | Official docs: most users will not hit a standing cap; 429 or 503 can appear under burst or high demand. Use backoff. Provisioned throughput is a different product |
| Data default | OpenRouter does not store prompts or responses unless you opt in, or content is flagged as potential CSAM. It does not train on your data. Metadata is stored | Inference inputs/outputs are not retained by default. Reliability/abuse logs may be kept up to 30 days unless you enable ZDR. Customer data is retained in GCP buckets in the United States | Unless you enable ZDR, Together stores prompts and outputs and may use them for product improvements. Training is a separate opt-in, off by default |
OpenRouter’s BYOK path is a different invoice: the provider bills you for inference; Standard and Business include $25,000 of list-price inference per month with no OpenRouter fee, then 5% of the OpenRouter list cost above that allowance, deducted from credits.
Together’s other skus — provisioned throughput (PTUs), dedicated GPU hours, clusters, fine-tuning per million training tokens — are not serverless chat rates. Do not average them into the worked example below.
A worked example (not a bill)
Assumptions, labeled as an example, not a run we executed:
- Model ID:
openai/gpt-oss-120b(OpenRouter slugopenai/gpt-oss-120b; Groq model IDopenai/gpt-oss-120b; Together catalog namegpt-oss-120B/openai/gpt-oss-120b). - Traffic: 1,000 chat completions, each 800 input tokens and 400 output tokens. Totals: 0.8 million input tokens and 0.4 million output tokens.
- No prompt-cache hits, no batch discount, no taxes, no retries that produce a second successful completion.
- Reasoning or hidden “thinking” tokens, if the model emits them as billed output, would raise the output side. This example does not add an invented reasoning-token count.
- Groq and Together prices: official $0.15 input and $0.60 output per million tokens, from Groq’s Supported Models page and Together’s serverless pricing table, both opened on 10 November 2026.
Line-by-line math
- Groq, on-demand tokens:
(0.8 × 0.15) + (0.4 × 0.60) = 0.12 + 0.24 = $0.36. - Together serverless, standard (not US-only): the same official rates, so the same $0.36.
- Together serverless, US-only (official 1.25× on input and output):
$0.36 × 1.25 = $0.45. - OpenRouter, if the request is served at the Groq or Together list price of $0.15 / $0.60: official list inference is $0.36, deducted from prepaid credits. Official wording: there is no markup on the request itself. The 5.5% (Standard) or 8% (Business) fee is charged when you buy credits, never on the individual request. The official FAQ, opened the same day, states a 5.5% fee ($0.80 minimum) when you purchase credits, and that crypto payments are charged 5%. That $0.80 is a purchase-fee floor, not a per-token surcharge. It is also not the same claim as the pricing-page FAQ that Standard and Business have no minimum spend and no lock-in. This example therefore does not multiply
$0.36 × 1.055as if you could buy exactly $0.36 of credits without the official minimum. - OpenRouter’s model page header and FAQ also quote $0.03 / $0.15 per million for this model, and several other providers post other list prices (for example Cerebras at $0.35 / $0.75 on the same page). If routing actually landed on a $0.03 / $0.15 endpoint, the same traffic would be
(0.8 × 0.03) + (0.4 × 0.15) = $0.084of list inference. Apply the same credit-purchase fee rules as in row 4; do not add 5.5% onto $0.084 as a request cost. That outcome is only true if that provider serves the request. Official OpenRouter listings already show different throughput and uptime by provider for this model ID — a shared model name is not a quality or performance equivalence. Pin a provider when you need a stable unit price.
Rows 1–3 are list-price token arithmetic under the stated assumptions. Groq and Together matching at $0.36 in this example means only that their official token rates matched on this date, not that the two endpoints perform the same. These rows are a calculator you can re-run when official rates change. They are not a recommendation, not a measured invoice, and not a quality ranking.

AINav original diagram based on official docs. Sources: OpenRouter pricing, OpenRouter gpt-oss-120b, Groq Supported Models, Together pricing, Together serverless overview. Not an official screenshot, not a receipt, and not a benchmark.
中文说明:按官网计价单位对照同一假设流量下的计算示例;不是实测账单,也不承诺谁最便宜。
Rate limits and data terms that change the same estimate
Groq’s official pages do not agree on one Developer-plan cap for openai/gpt-oss-120b on this date, and the disagreement can be located rather than flattened. The Supported Models table has a column headed Rate Limits (Developer Plan) and lists 250K TPM and 1K RPM for this model (TPM and RPM only). The Rate Limits page, under Developer Plan Limits, lists 30 RPM, 1K RPD, 8K TPM, and 200K TPD for the same model ID. That second page also frames its table as a high-level summary of base Developer-plan limits, says higher limits exist for some workloads, and tells you to read the exact caps on your organization’s Limits page in account settings. The catalog column does not repeat that “base / check your Limits page” qualifier. Both official statements are left visible. This article does not invent a reconciliation, and it does not guess which table is a burst cap versus a sustained cap.
Together’s official default, unless you turn on organization-level ZDR, is to store prompts and outputs and potentially use them for product improvements. ZDR is enabled by turning off Prompt storage in Organization Settings; it applies only to requests after you enable it, and turning it off also disables passthrough models. Training remains a separate opt-in, off by default.
OpenRouter does not train on customer data. Prompt logging and “use of inputs/outputs” (the latter in exchange for a 1% discount) are off by default. Zero Data Retention routing is available on every plan; Business and Enterprise can use eu.openrouter.ai or us.openrouter.ai for in-region routing. Groq states that retained customer data lives in GCP buckets in the United States, and that all customers may enable ZDR in Data Controls.
If a later official page changes a rate, a fee, or a default retention setting, throw this example out and re-read the live page rather than reusing these dated numbers.