A ledger for the credits
your app sells.
Define a credit, issue it, deduct it, let users buy more through Stripe. Cred keeps the balances, the history and the webhooks so you don't have to build a ledger.
100 free API credits · No card to start · One call per credit
- 10:42:01issue welcome_bonus+500500
- 10:42:07deduct inference · gpt-4o−12488
- 10:42:09deduct inference · gpt-4o−12476
- 10:43:15purchase Stripe · Starter pack+2,0002,476
- Balance
- 0
- tokens
- Issued
- 0
- lifetime
- Spent
- 0
- lifetime
- Webhook
- —
One ledger for anything your app meters, in any unit you name.
- AI appsper token
- APIsper call
- Gamesin-game coin
- Marketplacesbuyer credit
- Loyaltypoints
Three calls.
A working credit economy.
From naming a credit to a user paying for more, without writing a ledger, a checkout, or a webhook signer.
01Name a credit
- Tokens, coins, points — any unit
- Set a price per credit or per pack
- One project can hold several types
$ curl -X POST api.cred.diy/v1/credits/deduct \ -H "Authorization: Bearer sk_live_…" \ -d '{"user_id":"usr_7f3a","amount":12}' { "balance": 476, "transaction_id": "txn_01HX…" }
02Issue and deduct from your server
- Two REST calls, one API key
- Atomic writes, idempotency keys
- Balances can't go below zero
03Users top up through Stripe
- Hosted checkout, your Stripe or Connect
- Paid invoice credits the ledger
- Signed webhook tells your app
Per API call. No seats, no monthly minimum.
Free calls on every new account.
Platform fee when payments run on your own Stripe keys.
EVM chains your credit can mint to, when you want it.
Everything between
a purchase and a balance.
The parts of a credit system that are boring to build and easy to get wrong, done once.
Every issue and deduct is one atomic row with a reason, metadata and an idempotency key. Query a balance, page the history, export it for audit.
Hosted checkout for one-time packs or recurring plans. Use your own Stripe keys or Stripe Connect; each paid invoice credits the ledger exactly once.
credits.issued, credits.deducted, credits.purchased and more, HMAC-signed, retried with backoff, every delivery logged with its response.
A user's balances across your projects roll up to one email-keyed wallet. Let them swap one credit for another at a rate you set.
Deploy a credit as an ERC-20 on Ethereum, Base, Polygon, Arbitrum or Optimism. Turn on mint-on-issue and the ledger stays the source of truth.
A counter is easy.
A ledger is not.
Most credit systems start as an integer on a user row. They stop working the first time two requests land at once or a refund has to be explained.
Built so you can
show your work.
Credits are money your users already paid for. Every part of Cred assumes someone will ask where a balance came from.
Hashed API keys
Keys are stored hashed, scoped to one project, and show last use so you can rotate with confidence.
Signed webhooks
Every delivery carries an HMAC signature and a timestamp. Verify in two lines; replay is rejected.
Encrypted everywhere
TLS in transit, AES-256 at rest. Stripe credentials are linked by OAuth and never pass through you.
A full record
Every credit movement is kept with who, when, why and the request that caused it. Export any time.
Buy calls.
Spend them whenever.
One CRD per API call. Packs never expire and there is no monthly fee. Your users' payments go to your Stripe, not ours.
Starter
- 1 project, 1 credit type
- Unlimited end users
- REST API and dashboard
Growth
Most chosen- Unlimited projects and credit types
- Stripe Connect and subscriptions
- Signed webhooks and analytics
Scale
- Everything in Growth
- ERC-20 deployment
- Dedicated support and SLA
Need more than 100k calls a month? Volume pricing
Your first credit is
one request away.
No card needed to start.