Get started
Welcome
Build a portal for your AI product. Metered, capped, and billed on the way through.
seams sits between your product and the model providers. Every request through it is measured, charged against a wallet, and stopped at a cap you set. Your customers get their own key, their own balance, and a billing page with your name on it.
You do not have to write the joins. Point your base URL at us, mint one ak_ key per end user, and the accounting happens in the path.
Start here
Introduction
What sits where, and which problem each piece solves.
Quickstart
Mint a key and make a metered call in about five minutes.
Core concepts
Wallets, holds, aliases and caps, the vocabulary the rest of the docs uses.
Examples
Whole integrations you can read end to end and lift.
What it replaces
| You would otherwise write | What seams does |
|---|---|
| A per-user token counter and a cron to reconcile it | Usage recorded per request, per key, per model |
| A balance column and a race you hope never happens | available = balance − hold, atomic |
| A cap check before the call that is wrong mid-stream | A reservation that aborts the stream at the limit |
| Provider keys in your env, shared by everyone | One credential per tenant, decrypted per request |
| A billing page you keep meaning to build | A branded portal at your own domain |
seams never stores prompts or completions. The usage record has no messages field, no body, and no room for one. That is a property of the type, not a setting.