AI API pricing per token: what you actually pay
What a million tokens costs, why output is dearer than input, and when a flat subscription beats paying per token. With real euro prices, no asterisks.
Per-token pricing means you pay for text by volume, and at two different rates: one for the tokens you send, a higher one for the tokens the model writes back. On Union AI that runs from €0.40 per million input tokens on the cheapest tier to €12 per million output tokens on the heaviest, excluding VAT. There is no subscription attached to the API, no monthly minimum, and no invoice you did not trigger yourself.
The awkward part is that a million tokens is not a unit anyone can feel. This post turns it into numbers you can, using the same prices our router meters against.

How much does a million tokens cost?
Here is the whole price list. Four tiers, two rates each, in euros, excluding VAT.
| Tier | Good for | Input per 1M | Output per 1M | Context |
|---|---|---|---|---|
| Lite | Classification, extraction, short answers | €0.40 | €1.60 | 131k tokens |
| Standard | The workhorse: chat and most API traffic | €0.70 | €3.50 | 262k tokens |
| Long context | Whole case files, contracts, codebases | €1.00 | €2.00 | 1M tokens |
| Pro | Heavy reasoning, agents, complex code | €4.00 | €12.00 | 1M tokens |
Two things in that table surprise people. The long context tier is cheaper on output than the workhorse, because a model built for a million tokens of input is not necessarily the strongest reasoner. And the gap between the cheapest and the dearest tier is a factor of ten, which means tier choice moves your bill far more than prompt tuning ever will.
The full table, including a calculator and a comparison against the American providers at their list prices, lives on the pricing page. Which open-weight model sits behind each tier, and under which licence, is on the AI transparency page.
How many tokens is a page, a message, a codebase?
A token is a chunk of text the model reads or writes, usually a common word or part of one. The rough rule for English is a thousand tokens to about 750 words. Other languages tokenise less efficiently, so the same text in Dutch, Finnish or Polish costs a little more.
Some anchors that make the abstraction concrete:
- A short question with a paragraph back: roughly 300 tokens in, 200 out.
- A medium message, some context and a worked answer: about 900 in and 500 out. That is the assumption behind every figure on our pricing page.
- A 40-page contract: somewhere around 20,000 input tokens. Summarising one on the Standard tier costs a fraction of a cent.
- A mid-sized codebase, say 5,000 lines: comfortably inside the 262,000 token window of the Standard tier, and nowhere near the million of the long context tier.
Run the medium message through the Standard tier and you get €2.38 for a thousand of them. That is the number worth memorising, because it reframes the whole question: for most teams, the model is not the expensive part of the product.
Why is output more expensive than input?
Because writing is slower work than reading. Input tokens go through the model in one parallel pass, so a long prompt costs roughly what its length suggests and no more. Output tokens come out one at a time, each one conditioned on the one before it, and the hardware sits there for the whole sequence. The higher output rate is that serial time.
The practical consequence is a habit worth building: cap your output, not your input. Pasting a whole document into the prompt is usually cheap. Asking for a thousand-word answer when a hundred words would do is what actually shows up on the bill. Setting max_tokens is the single most effective cost control in the API, and it is one line.
Chat plan
€13.00
€13 a month, 2,000 messages included on this tier, the rest from credit.
API, per token
€4.76
€0.70 in and €3.50 out per million tokens, nothing fixed.
The API is cheaper here, by €8.24 a month.
This medium message is 900 tokens in and 500 out, the same assumptions the pricing page uses. Both figures exclude VAT, and the comparison is only about money: the plan also buys an interface, attachments and shared conversations, which raw tokens do not.
Is pay as you go cheaper than a subscription?
At low volume, almost always. A few hundred messages a month through the API costs well under a euro on the Standard tier, while any subscription charges the same flat fee whether you use it or not. Below a thousand messages a month, per-token pricing is not close to a fair fight.
The picture flips in three cases, which the comparison above lets you find for yourself:
- Long messages. A four thousand token prompt with a long answer costs several times a medium message, and the flat fee stops looking silly.
- The expensive tier. A Pro answer costs about four times a Standard one from credit, and counts as five messages against the chat plan's monthly allowance.
- You want the product, not the pipe. Our chat plan is €13 a month for an interface, attachments, long documents and shared conversations, or €11 a month if you pay for the year. Building that yourself on top of the API costs more than €13 of your own time in the first afternoon.
A subscription is a bet on how expensive your average message turns out to be. Per-token pricing is the refusal to bet.
Neither model is more honest than the other. What makes a price honest is whether you can predict it before you commit, which is why our estimator states its assumptions rather than quoting a friendly-looking monthly figure.

What per-token pricing hides
Four things that make real bills differ from the arithmetic. None of them are tricks, and all of them catch people out.
Conversation history is re-sent every turn
An API call is stateless. Turn ten of a conversation sends turns one through nine along with it, so input tokens grow with the length of the thread. A long chat can spend more on re-reading its own history than on anything new. Trimming or summarising old turns is not premature optimisation, it is the main lever.
Retries and agents multiply requests
One user action in an agent loop can be twenty model calls. Multiply the per-request cost by the loop, not by the user. Then check what happens when the loop does not terminate, which is what the ceilings in the next section are for.
Headline rates are not the whole price list
Providers publish discounts for cached input, batched jobs and committed spend. Those are real, and they mean a comparison only holds if both sides are quoted at the standard rate. Our comparison table uses list prices on both sides for exactly that reason, with the exchange rate and the date it was read printed underneath, and the same numbers are worked through provider by provider in European AI providers compared.
Failed work still costs, unless someone decides otherwise
If a model returns something unusable, most meters have already counted the tokens. We take the other view: a request that produced no usable answer takes nothing off your balance, and a rerouted request that lands on a weaker model is charged at the lower of the two rates. The documentation lists the headers that tell you which of those happened.
Do I pay VAT on prepaid AI credit?
Depends on who you are and where. If you are a business in another EU country with a valid VAT number, the supply is reverse charged: we do not add VAT and you account for it yourself. The European Commission's guide to cross-border VAT on services puts it plainly, that customers pay VAT on the services received at the rate in their own country under the reverse charge procedure.
If you have no valid VAT number, or you are buying as a consumer, VAT applies at the rate where you are. Every price on this site is quoted excluding VAT, and your invoice states which of the two treatments applied.
How to stop a token bill running away
The failure mode is never the price per million. It is a loop, a leaked key or a job that ran all weekend. Five defences, in the order worth setting them up:
- Set a ceiling per key, in euros, daily and monthly. A key without a ceiling is a blank cheque.
- Set
max_tokenson every call. See the output rate above. - Read
X-EU-Cost-EURon the response. Every request tells you what it took off your balance, so your own logs can answer the cost question without a dashboard. - Keep the balance small. Prepaid credit has a hard floor at zero, which is a feature. A €10 top-up cannot become a €4,000 surprise.
- Let the anomaly check do its job. If we see more than ten times your weekly average within an hour, we pause the key and email you. New accounts are capped at €25 a day for the first 48 hours whatever the balance.
That last one costs the occasional false alarm. We think an interrupted batch job is a better outcome than an empty wallet, and you can lift the cap yourself once you know the traffic is yours.
What this costs to start
Ten API requests are free, the minimum top-up is €10, and credit stays valid for 24 months. There is no card required to try the chat, which gives you 5 free messages before anything is asked of you.
Moving an existing integration across to see those numbers on your own traffic is a key, a base URL and a tier name, which is the subject of switching in three lines.
That is the whole commercial story. If you want the other half of it, where those tokens are processed and who can read them on the way, the companion piece on EU AI data residency walks the same request hop by hop, and European sovereign AI covers what the word sovereign is worth once you take it apart.
Frequently asked questions
How much does one million tokens cost?
It depends on the model and on whether the tokens go in or come out. On Union AI, a million input tokens costs between 0.40 and 4 euros depending on the tier, and a million output tokens between 1.60 and 12 euros, excluding VAT. Output is always the more expensive half, at every provider.
What is a token in an AI API?
A token is a chunk of text the model reads or writes, usually a common word or a piece of one. As a rough rule for English, a thousand tokens is about 750 words, so one A4 page of prose lands somewhere near 500 tokens. Billing counts the tokens you send and the tokens the model generates separately.
Why is output more expensive than input?
Because generating text is slower work than reading it. Input tokens can be processed in one parallel pass, while output tokens are produced one after another, each one waiting on the last. That difference in compute time is what the higher output rate pays for.
Is pay as you go cheaper than an AI subscription?
At low volume, almost always. A few hundred messages a month through an API often costs under a euro, while a subscription charges a flat fee whether you use it or not. Subscriptions win when your messages are long, your model is the expensive one, or you want a finished interface rather than an API.
How many tokens is a 40-page document?
Roughly 20,000 input tokens for 40 pages of ordinary prose, using the rule of about 750 words per thousand tokens. On a mid-range tier that is a fraction of a cent to read, which is why long input is rarely what makes an AI bill large.
Why did my AI bill grow faster than my usage?
Almost always because conversation history is re-sent on every turn. An API call is stateless, so turn ten carries turns one to nine with it, and input tokens grow with the length of the thread rather than with the number of users. Agent loops do the same thing, turning one user action into twenty billed requests.
How do I estimate LLM costs before building?
Take one realistic request, count its input and output tokens separately, and multiply by your expected volume at the provider's per-million rates. Then double the output figure as a safety margin and add anything your design re-sends, such as chat history or retrieved documents. That estimate is usually within the right order of magnitude, which is all a build decision needs.