Reseller API
The standard reseller-panel API: one endpoint, a key, an action, and JSON responses. Add tgfather as a provider and resell Telegram Stars, Premium, Sessions, Aged channels, and Ads.
| Endpoint | https://tgfather.com/api/v2 |
|---|---|
| HTTP method | POST · form-encoded params |
| Auth | key=<your key> in the POST body (or Authorization: Bearer <key>). Never put the key in the URL query — it leaks into access logs and is rejected. |
| Response | JSON |
| Currency | USD · charged to your wallet balance |
Charge: charge = rate × quantity / 1000. Per-unit products (Premium) set rate = unit price × 1000, so one order costs rate / 1000.
POST /api/v2 · action=services
Every service with its id, name, price (rate, per 1,000) and min/max. Service ids are fixed and permanent. Only in-stock services are returned: a sold-out session is omitted until it restocks, and its id never changes.
POST /api/v2 · action=add
Places an order. Debits your wallet immediately and returns an order id to poll with status.
| Parameters | Description |
|---|---|
| service | Service id from services |
| link | Target: the recipient @username / profile link (Stars & Premium) |
| quantity | Amount: # of Stars, or 1 for a Premium plan |
Insufficient balance returns {"error":"Not enough funds"}; no order is created.
POST /api/v2 · action=status
Returns the state of one order (order=ID) or several (orders=1,2,3). Stars and Premium complete directly; Sessions include a result with the download link.
orders=1,2POST /api/v2 · action=balance
Returns your spendable wallet balance.
Telegram Stars live
One service. link = recipient @username or profile link; quantity = number of Stars (min 50). rate is per 1,000.
| Service | Product |
|---|---|
1 | Telegram Stars |
Telegram Ads live
Official Telegram Sponsored Messages, placed for you under the agency model: you resell ad placements and never manage an ad account yourself.
| Service | Product |
|---|---|
5 | Telegram Ads |
An ad carries a creative and targeting, so add takes extra fields:
| Field | Required | Meaning |
|---|---|---|
link | required | Destination: the public @channel, bot or t.me link the ad promotes |
quantity | required | Initial budget in whole USD (charged from your balance; min 5, max 5000) |
cpm | required | Bid: USD price per 1,000 views (Telegram runs an auction; a higher CPM wins more impressions). Telegram's floor applies at placement. |
ad_title | required | Ad title (≤ 40 chars, shown in the sponsored card) |
ad_text | required | Ad text / message (≤ 160 chars, one line: no line breaks, shorteners or banned verticals) |
target | optional | Comma list of channels to show the ad in (public, 1,000+ subscribers). Omit it and we auto-scan relevant public channels for you from what you promote. |
Total price. You are charged quantity plus our flat service fee: total = quantity × (1 + fee_pct/100). Read the current fee_pct from GET https://tgfather.com/api/ads/rate. The exact total debited is returned as charge (USD) in the add response.
We place the ad for you. Your budget is refundable until it is submitted to Telegram; after that it is final. Poll action=status for the state (queued, in review, active / declined). Every ad must pass Telegram's advertising policy. Listed with max: "0" until ad ordering is enabled.
Telegram Sessions
Ready-to-use accounts, one service per country and age band (e.g. Indonesia · 1-2 years). quantity = number of accounts; link unused. Delivery is ZIP-only: the order's status returns one bundle ZIP for the whole batch.
Pricing is automatic: the rate is the best live price for that (country, age), refreshed as stock moves, so there is no fixed price list to maintain. max is the live quantity available; a sold-out SKU drops off the list until it restocks, and its id never changes. Session ids start at 10, one per (country, age band), category Telegram Sessions:
services listlink unused)If stock is lower than ordered, status returns Partial and only the shipped quantity is charged. Web store: /telegram-accounts.
Downloading the bundle: the url is on our domain and requires your API key — fetch it with the same Authorization: Bearer <key> (or X-API-Key) header, e.g. curl -H "X-API-Key: <key>" -O <url>. The token is single-scope and ownership-checked, so a credential-less request is refused.
Aged Telegram Hub live
Aged Telegram channels, groups, and bots, one service per kind. We deliver an available aged chat of that kind (we pick the year). Order quantity = 1 and set link to the buyer's @username; the chat is transferred to that user. Category Aged Telegram Hub.
| Service | Kind |
|---|---|
6 | Aged bot |
7 | Aged group |
8 | Aged channel |
Delivery takes 3 steps: the buyer must join a private invite before ownership can be transferred.
If the buyer hasn't joined yet, confirm returns status: "In progress" and asks them to join first; call it again once they have. Unclaimed orders complete automatically after 3 days. Web store: /telegram-aged-channels-groups-robots.
Order statuses
The status field uses the standard reseller vocabulary.
| Status | Meaning |
|---|---|
| Pending | Accepted, not started yet. |
| In progress | Being fulfilled. |
| Completed | Delivered. Sessions carry the result link. |
| Partial | Fewer delivered than ordered; you're charged only for what shipped. |
| Canceled | Not delivered, refunded to your wallet. |
Errors
Errors are returned as JSON with an error string (HTTP 200, per reseller-API convention).
| Message | Meaning |
|---|---|
| Invalid API key | Missing or unknown key. |
| Invalid action | Unknown action. |
| Invalid service | No such service id. |
| Not enough funds | Wallet balance too low. Top up. |
| Amount below minimum / above maximum | quantity outside the service's min/max. |
| Incorrect order ID | The order isn't yours or doesn't exist. |
Rate limits
A per-IP token bucket applies to the endpoint.
| Endpoint | Limit |
|---|---|
| POST /api/v2 | 120 requests / minute |