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.

Request
POST /v1/orders
Authorization: Bearer sk_live_…

{
  "type": "stars",
  "qty": 100,
  "username": "@johnsmith",
  "orderId": "order-123"
}
200 OK
{
  "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

  1. 01

    Get a key

    Open @apistarsbot: we issue sk_test_ instantly — the sandbox works from minute one. The live sk_live_ key follows approval.

  2. 02

    Top up the balance

    Send USDT on TON to your address with the given memo. Crediting usually takes under a minute.

  3. 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.

API Partner Terms