Authorization header on every request (same convention as Mobula, zero migration friction). No Bearer prefix: the header value is the key itself.
Get a key
1
Create an account
Sign up at serialized.xyz/signup with an email and password, Google or GitHub.
2
Add a card, unlock 100,000 free credits
In Billing, add a payment method. Nothing is charged today: the card unlocks your 100,000 free credits.
3
Create your keys
In API keys, create up to 5 active keys, one per app or environment. A key is shown once: store it as a secret. Rename, rotate or revoke it at any time from the same page.
Try it instantly
Every endpoint page has an interactive playground that runs live againsthttps://demo.serialized.xyz: no key needed, read endpoints, rate-limited per IP. Fill the parameters and send. To test with your own key, switch the server to https://api.serialized.xyz and paste your key in the Authorization field.
Pricing
- Billed monthly for what you use. Credits are counted per calendar month (UTC). Your card is charged as usage accrues, then for the balance at the end of the month. Invoices and receipts are in Billing.
- Free credits are granted once per account and carry over from month to month until they are used.
- Monthly spend cap. Every account has a spend cap, 0 to $100,000. Reaching it pauses billable calls until you raise it or the next month starts.
- Enterprise: high volume, dedicated limits, custom endpoints or chains. Talk to us.
Credits
Most endpoints cost 1 credit. The heavier ones:
POST batch endpoints bill per item. Streams bill 1 credit per delivered event (see WebSocket). Only successful (2xx) responses are billed: you never pay for your own 4xx, for auth, billing or rate-limit rejections, or for a 5xx on our side. The full grid is also in the portal, under “What a call costs”.
Every billable response carries
X-Credits-Remaining: the credits your account can use right now, shared by all the keys of the account. It counts your free credits left plus your current billing allowance, which grows each time a usage payment goes through, up to your monthly spend cap.
In a batch, only the items served are billed. An item that comes back as an { error } slot (unknown token, malformed address, a failure on our side) costs nothing, and a batch where every item fails still answers 200 and costs 0 credits.
Rate limits
The limit is per key, on a 1-minute window, with a per-second burst cap so a full minute’s budget cannot land in a single second. StandardX-RateLimit-* headers are on every response; exceeding a limit returns 429 with code RATE_LIMITED and a Retry-After header. Against the per-minute limit and the burst cap, a batch call counts as one request; batch items have their own per-second allowance of 10 × the burst cap (400 items/s on pay as you go). Against the group caps below, a batch counts one per item.
A few endpoint groups carry their own per-key cap. The defaults below apply to every key and are raised on request: tell us your expected peak and we size the key.
Payment and quota responses
A billable call your account cannot pay for returns HTTP402, with X-Credits-Remaining: 0 when the monthly allowance is reached. The body tells you why and what to do next:
error.code is PAYMENT_REQUIRED (the account needs a billing step) or QUOTA_EXCEEDED (the account reached its allowance for now). Branch on details.action, not on the message: the message is written for a human and may evolve.
account_pending, verify_payment and payment_processing clear on their own: retry with a backoff (for example 30 seconds, then longer). The other actions need someone on your side to act in the portal: surface the message to your operators rather than retrying in a loop.
A suspended account returns HTTP 403 with code FORBIDDEN (details.action = account_suspended). Contact hello@serialized.xyz.
Zero-credit endpoints (including usage) stay reachable in every case, so you can always inspect your own state.
Enterprise keys follow their contract: when a contracted monthly allowance is spent, billable endpoints return 402 QUOTA_EXCEEDED.
Usage introspection
Query your own consumption programmatically, at no credit cost, and a level of self-serve visibility no other provider exposes over the API:GET /v1/usage: current month:{ keyId, tenant, plan, month, scope, credits: { used, limit, remaining }, requests }. For keys created in the portal,scopeis"account": the figures cover the whole account, all keys included.GET /v1/usage/history: time series of requests and credits for the calling key, bucketed at15m,1h,6hor1d.GET /v1/usage/breakdown: per endpoint for the calling key, stream channels included.
WebSocket
The first frame authenticates with your key. Close codes:
On
4402, read the action from the close reason and handle it as in the table above; reconnect only once it is resolved. Streaming bills 1 credit per delivered event, on every channel; the connection itself is free. Details in the Streams overview.