Developers · API v1
API for Telegram Stars, Premium and Steam
Deliver Telegram Stars, Premium and GRAM by @username, pay for channel giveaways, top up Telegram Ads accounts by link and 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 10,000,000 per order, Premium for 3, 6 or 12 months, GRAM to the account balance.
Giveaways and Telegram Ads
A giveaway in a channel by its @handle: stars_giveaway with a Stars package or premium_giveaway with a subscription length, the number of winners in the winners field. Ad account top-ups: ads_recharge by the "Add Funds on Fragment" link, in whole GRAM.
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 for any product before ordering - GET
/v1/checkValidate a recipient: @username, giveaway channel, Ads account or Steam login - 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 at least 100 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, a channel @handle for giveaways, the account link for Ads, or an account login for Steam.
FAQ
What can I deliver through the API?
+
Telegram Stars (50 to 10,000,000 per order), Telegram Premium for 3, 6 or 12 months and GRAM: by @username, no password or wallet. Stars and Premium giveaways in a channel by its @handle, and Telegram Ads account top-ups by the "Add Funds on Fragment" link. Plus Steam wallet top-ups: the recipient is an account login and the amount is in dollars.
How is it priced?
+
Stars, Premium, GRAM, giveaways and Telegram Ads top-ups: the Fragment wholesale price plus a 1% fee; for a Premium giveaway the price is multiplied by the number of subscriptions. 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.