Docs navigation
Pricing
Tilery uses prepaid credits, metered per operation. No subscription and no tiers — top up a credit pack, then pay only for what you serve. When the balance runs out, serving stops. No surprise invoices.
What a credit is
A credit is the unit everything is counted in — your balance, each operation’s price, and every line of your usage. It exists because operations cost wildly different amounts and all of them cost a fraction of a cent: pricing them in euros would mean quoting six decimal places, and pricing them in tiles would stop working the moment Tilery serves anything that is not a tile. Credits stay exact whatever the catalogue grows to hold.
- Vector tiles10 credits per 1 000 · €0.04 per 1 000
Before VAT, from the €10 pack.
The €10 pack buys:
How metering works
Each /map/tiles/vector/{z}/{x}/{y} response is one vector tile, priced at the published rate above. Fonts, sprites, style JSON and TileJSON are free and unmetered, and anything that doesn’t return 200 is never billed.
What you serve counts against your balance within about two hours. Your usage dashboard shows it sooner than that; the balance follows.
Your balance is your cap
When your balance reaches zero we keep serving a little longer — the overrun allowance, so a final in-flight hour is never cut off mid-map:
Past that, the API returns 402 Payment Required until you top up again.
If usage outruns your balance
Because usage counts against your balance within about two hours, the last hours before the stop can serve slightly more than the balance covers. That is never invoiced — it is recorded as unbilled usage, shown on Credits, and collected automatically once your balance covers it: the top-up that brings your balance to at least that amount clears it, and the rest stays as available balance. The Credits page says how much that top-up needs to be, and which pack covers it.
Unbilled usage is only ever collected from top-ups — Tilery never sends a separate invoice, and your balance never goes negative.
VAT
All prices on Tilery are quoted before VAT. Creem (our merchant of record) calculates VAT based on your billing country and adds it as a separate line at checkout. EU VAT-registered businesses can supply a VAT number to apply the reverse charge and pay no VAT through Tilery.
Creem issues the tax invoice for each purchase. The Tilery dashboard shows your credit history (top-ups in, spend out, both in credits with their euro value) so you can reconcile usage against the invoice.
Rate limits
Separate from the balance check, two per-second limits protect the service:
- Per-IP RPS limit — returns
429 Too Many Requestswhen exceeded. Normal map rendering never comes close. - Auth failure limit — an IP racking up repeated failed auth attempts is temporarily blocked. Brute-force protection, also
429.
Caching stretches your balance
Tile URLs carry the access token as a ?token= query param, so a naive browser cache would miss on every token rotation. The @tilery/client service worker normalizes cache keys by stripping the token param — so repeat tiles come from the cache even after the token rotates, and offline tiles keep working.
If you integrate without the client SDK you lose this benefit and each token rotation re-downloads every tile in view. Use the SDK unless you have a specific reason not to.
You're also free to proxy tiles through your own backend and cache them in your own CDN or origin — that's fully allowed and is often a good fit if you already run a CDN or need per-user gating. See proxying through your own backend for the architecture sketch.