# Seams > Ship the billing page your AI product needs. Meter every call, cap every user, bill in your own brand. Point your base URL at Seams and it works in five minutes. > Hard spend caps that stop mid-stream. No metering vendor can do this. ## What is running right now This site, the control plane and the portal are live. Quickstarts are written. Control-plane reads answer from Postgres and minting a key works in test mode; the writes that are not built answer 501 naming the issue that will build them (#52 wallet grants, #60 chat). The portal at https://portal.ourseams.com meters Usage from real rows, while its Spending and Billing pages are still fixtures until the plan and invoice tables exist (#152, #160). The console is not deployed, so there is no way to sign up. Members has no screen at all. ## Pages - [Front page](https://ourseams.com/): Ship the billing page your AI product needs. Hard spend caps that stop mid-stream. - [Blog](https://ourseams.com/blog): What we learned building metering, spend caps and BYOK — mostly about money and streams. - [Docs](https://ourseams.com/docs): Overview, quickstart, and the concepts: keys, spend caps, BYOK, errors, the portal. - [Pricing](https://ourseams.com/pricing): Three paths, split by what a call costs us. The figures are drafts. - [Quickstart](https://ourseams.com/quickstart): Five minutes: base URL, mint a key per end user, metered call. - [curl](https://ourseams.com/quickstart/curl): Shell quickstart — point, mint, call. - [TypeScript](https://ourseams.com/quickstart/typescript): Node fetch quickstart — no SDK required. - [Python](https://ourseams.com/quickstart/python): requests quickstart — no SDK required. - [Start](https://ourseams.com/start): Sign-up is not open. What is live today, and what is not. ## Read instead of crawling - [https://ourseams.com/llms-full.txt](https://ourseams.com/llms-full.txt): every page above, one file - [https://api.ourseams.com/v1/openapi.json](https://api.ourseams.com/v1/openapi.json): every endpoint, field and error. generated from the routes that are actually served, so it cannot describe a path that does not exist - [https://api.ourseams.com/v1/capabilities](https://api.ourseams.com/v1/capabilities): what is available to the calling tenant right now ## Price (draft — these numbers are not final) - Test mode: $0 forever. The mock provider costs us nothing, so it costs you nothing. No card, no limit, no expiry. - Bring your own key: $29 per month. You pay your provider directly. We never bought your tokens, so there is nothing to mark up. - Managed: $29 + 5% per month, plus markup on inference. We buy the tokens and send one invoice. The markup is the price of not holding a provider account. ## What we do not do - Invoicing, revenue recognition, dunning and tax. Stripe does those; we do not wrap them. - Merchant of record. Your customers pay you, and the legal relationship stays yours. - A routing product. One provider in v1, and no builder for picking between them. - Your prompts and completions. There is no column for a message body and no code path that writes one. ## Gotchas that will bite an agent - A stream can end with finish_reason "spend_cap_exceeded" and a usage block. It is not an error — the status was already 200 and cannot be retracted. - Most caps never abort. When the remaining budget can be turned into a token count we clamp max_tokens instead, and the finish_reason is the ordinary "length". - Model ids are "provider/model". A bare model name is not valid. - Aliases are per-bundle, so the same alias resolves to different models in different bundles. - Test-mode wallets may only call zero-cost models. Use mock/* until there is a payment method.