Developers · API v1
API for Telegram Stars, Premium and Steam
Deliver Telegram Stars, Premium and GRAM by @username and top up Steam by account login straight from your shop, bot or CRM. One POST request and the order is placed: Stars, Premium and GRAM usually arrive in the same response, Steam follows shortly. Sandbox, webhooks and protection against double charges.
POST /v1/orders
Authorization: Bearer sk_live_…
{
"type": "stars",
"qty": 100,
"username": "@johnsmith",
"orderId": "order-123"
}{
"ok": true,
"orderId": "order-123",
"status": "completed",
"type": "stars",
"qty": 100,
"username": "@johnsmith",
"price": 1.515,
"settlement": "charged"
}- Fragment + 1%, Steam with no fee
- One POST and the order is placed
- sk_test_ instantly, no application
- HMAC-signed webhooks
Quick start
curl -X POST https://api.krab.gg/v1/orders \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"type":"stars","qty":100,"username":"@johnsmith","orderId":"order-123"}'Usually the response says status: completed. A processing response is not an error: the outcome arrives by webhook or via GET /v1/orders/:id, and for Steam it is the usual response. GET /v1/price returns the exact price before any charge.
Who it's for
Telegram shops and bots
Selling Stars, Premium, GRAM or Steam top-ups in your bot or on your site? Take payment however you like and delegate delivery to the API: by @username or Steam login.
Resellers
Buy wholesale from a USDT balance and resell at your own markup. /price shows what a specific order will cost; we charge the price calculated when the order is created.
CRM and automation
Embed Stars, Premium, GRAM and Steam delivery into your funnel: an order from your CRM → POST /orders → the customer gets it, no manual work.
Services and SaaS
Add Telegram top-ups as a feature of your product — no inventory, no manual fulfilment, one HTTP call.
What the API does
Stars, Premium and GRAM
By recipient @username, no password or wallet: Stars from 50 to 1,000,000 per order, Premium for 3, 6 or 12 months, GRAM for Telegram Ads.
Steam top-ups
By account login, the amount in dollars and cents allowed (10.5). Same POST /orders, same USDT balance.
Price and balance
One USDT balance, topped up with crypto on TON. GET /price shows what a specific order will cost before you create it.
Status and money always visible
GET /orders/:id tells you what happened to the order and to the money: charged, refunded or held pending a check. The same arrives by webhook, so polling is optional.
No duplicates, no cost to test
Repeating a request with the same orderId returns that same order and never charges twice; the same orderId with a different product or recipient gets a 409. A test key sk_test_ or dryRun: true prices the order without touching your balance.
Core endpoints
- GET
/v1/priceQuote a price (Stars, Premium, GRAM, Steam) before ordering - GET
/v1/checkValidate a recipient: @username on Telegram, login on Steam - POST
/v1/ordersCreate and fulfil an order (idempotent by orderId) - GET
/v1/orders/:idOrder status and what happened to the money - GET
/v1/balanceAvailable USDT balance - GET
/v1/depositUSDT top-up details (address + memo) - GET
/v1/webhookCurrent webhook and signing secret - POST
/v1/webhookSet the push-notification URL (+ signing secret)
Getting started
- 01
Get a key
Open @apistarsbot: we issue sk_test_ instantly — the sandbox works from minute one. The live sk_live_ key follows approval.
- 02
Top up the balance
Send USDT on TON to your address with the given memo. Crediting usually takes under a minute.
- 03
Fulfil orders
Call POST /v1/orders: the recipient is an @username for Stars, Premium and GRAM, or an account login for Steam.
FAQ
What can I deliver through the API?
+
Telegram Stars (50 to 1,000,000 per order), Telegram Premium for 3, 6 or 12 months and GRAM for Telegram Ads: by @username, no password or wallet. Plus Steam wallet top-ups: the recipient is an account login and the amount is in dollars.
How is it priced?
+
Stars, Premium and GRAM: the Fragment wholesale price plus a 1% fee. Steam top-ups: no fee, you are charged exactly the dollar amount you order. Everything is settled from a single USDT balance; GET /v1/price returns the exact amount for a given order before you create it. You set your own retail markup, with no cap.
What if an order fails?
+
You get status: failed with reason (why) and retryable. Create a new order with a new orderId only when retryable: true, which means the money is already back on your balance. The settlement field shows the money: pending (order still in progress, funds reserved), refunded (returned to your balance), fail_hold (held pending an operator check when delivery is unconfirmed), charged (taken). Changes arrive by webhook.
How is the API different from buying on the site?
+
The API is for shops, bots and CRMs: wholesale prices, programmatic delivery by @username or Steam login, a single balance and idempotency by orderId. Buying on the site is for end customers.
How do I get access?
+
In the @apistarsbot cabinet bot: the "Test key now" button issues sk_test_ instantly, so integrate against the sandbox. The live sk_live_ key follows approval (the "Live access" button). For volume terms, message support.
Need access?
Open the @apistarsbot cabinet bot: we issue a test key sk_test_ instantly and a live sk_live_ key after your application is approved. Need help with integration or volume terms — message support @heIIo_stars.