Perfect Panel compatible API

Telegram growth, delivered at provider speed.

Post views, bot starts and more Telegram services through one API key. A drop-in replacement for any Perfect Panel provider — same endpoints, same fields, faster answers.

From $0.002 / 1K 100 orders per status call Telegram-only servers
146Services live
100Orders per status call
7API actions · v2
200alwaysHTTP status · errors in body
9 Telegram categories
Telegram✦Telegram Group Chat Members 💬✦Telegram Last Posts Views✦Telegram Members✦Telegram Members + Views✦Telegram Post Shares✦Telegram Reactions✦Telegram Search Members✦Telegram Story Views✦Telegram✦Telegram Group Chat Members 💬✦Telegram Last Posts Views✦Telegram Members✦Telegram Members + Views✦Telegram Post Shares✦Telegram Reactions✦Telegram Search Members✦Telegram Story Views✦

Our Telegram services, one price list.

Panels import our catalogue once and can sell everything in it. The rates below come straight from the live catalogue.

Live rates Public rates per 1,000 in USD · refreshed every 2 minutes
ID Service Rate per 1K Min – Max Refill Cancel Drip-feed
How it works

Three steps, then it runs itself.

01

Create your key

Open the bot and press Start — your API key arrives right away. No forms.

02
# Perfect Panel → Providers → Add
API URL  https://tgtorch.com/api/v2
API key  ••••••••••••••••

# then: Import services

Point your panel at us

Same Perfect Panel fields you already know. Import the catalogue once.

03
#9000131In progress
#9000130Completed
#9000129Pending
#9000128Partial

Watch orders complete

Status flows back to your panel. Partial and Canceled refund the remainder automatically.

Perfect Panel API v2

Same endpoints, same fields, faster answers.

services · add · status · cancel · refill · refill_status · balance Multi-status, cancel, refill and refill_status for up to 100 IDs per call Drip-feed (runs / interval), Custom Comments, Poll and Package service types Cancel and refill are safe to repeat — a refund is never paid twice Always HTTP 200 — errors in the body, as panels expect
Read the full reference
format POST · form-urlencoded → JSON endpoint /api/v2 status live
# place an order
curl -X POST https://tgtorch.com/api/v2 \
  -d "key=YOUR_KEY&action=add&service=1&link=https://t.me/yourchannel/123&quantity=1000"

{ "order": 9000123 }

# poll it
curl -X POST https://tgtorch.com/api/v2 -d "key=YOUR_KEY&action=status&order=9000123"

{ "charge": "0.00220", "start_count": "5210", "status": "In progress", "remains": "400", "currency": "USD" }
Reference

API v2 reference

Every call is a POST (application/x-www-form-urlencoded; JSON bodies and GET query strings are accepted too) to https://tgtorch.com/api/v2, with key and action. Responses are JSON. Errors come back as HTTP 200 with an error field so panels display them verbatim. Standard Perfect Panel API v2 — add us as a provider with the URL above and your key.

action=servicesService list

Returns every active service with its rate and limits — the same rows your panel imports. A key is optional: with your key the rates shown are exactly the rates you are charged; without one you get the public catalogue.

servicestringservice ID — pass it back as service in add
name, categorystringdisplay name and category
typestringservice type in Perfect Panel / JAP spelling: Default, Package, Custom Comments, Poll, Mentions … — decides which add parameters apply (see service types)
ratestringUSD per 1,000 units, 4–6 decimals
min, maxstringquantity limits per order
refill, cancel, dripfeedbooleanwhether refill, cancel and runs/interval are available for this service
brand, descstringextra, informational — safe to ignore
requestcurl -X POST https://tgtorch.com/api/v2 \
  -d "key=YOUR_KEY&action=services"
response[{"service":1,"name":"Telegram Post Views ⚡ Fast","type":"Default",
  "category":"Telegram","brand":"Telegram","rate":"0.0022","min":"100","max":"1000000",
  "refill":false,"cancel":false,"dripfeed":false,"desc":"..."}]

action=addPlace an order

Charges the balance immediately and returns the order ID. Dripfeed splits delivery into runs spaced interval minutes apart, each run delivering quantity units. Which extra fields apply depends on the service type — see service types.

keyrequiredyour API key
servicerequiredservice ID from the list
linkrequiredfull Telegram URL — a post https://t.me/yourchannel/123 for views, reactions, shares, comments and votes; a channel https://t.me/yourchannel for members; also t.me/+invite, t.me/c/…/…, t.me/boost/…, t.me/…/s/…, t.me/yourbot?start=…
quantityrequiredbetween the service's min and max. Not needed for Custom Comments (the number of lines is the quantity) or Package (fixed package size)
runs, intervaloptionaldrip-feed, only where dripfeed is true: runs 2–1000, interval 1–43200 minutes. runs=0&interval=0 (or runs=1) means a normal order, not an error
commentsper typeCustom Comments: one comment per line (\n or \r\n); empty lines are dropped, quantity = number of lines
answer_numberper typePoll: the option to vote for, together with quantity
groupsper typeInvites from Groups: source groups, one per line, together with quantity
usernames, hashtag, hashtags, username, media, keywordsper typeaccepted for the matching Mentions types. One list field is stored per order (the first of these present); types that need two fields at once are not offered
request · Defaultcurl -X POST https://tgtorch.com/api/v2 \
  -d "key=YOUR_KEY&action=add&service=1&link=https://t.me/yourchannel/123&quantity=1000"
request · drip-feedcurl -X POST https://tgtorch.com/api/v2 \
  -d "key=YOUR_KEY&action=add&service=1&link=https://t.me/yourchannel/123&quantity=500&runs=10&interval=30"
request · Custom Commentscurl -X POST https://tgtorch.com/api/v2 \
  --data-urlencode "key=YOUR_KEY" --data-urlencode "action=add" --data-urlencode "service=7" \
  --data-urlencode "link=https://t.me/yourchannel/123" \
  --data-urlencode $'comments=Great post!\nThanks for sharing\nLove this'
response{"order": 9000123}

Service types

The type field of each service uses the Perfect Panel / JAP names, so a panel that imports our list knows which order form to show. Every service in the catalogue is a Telegram service; types we do not offer (Subscriptions, Web Traffic, SEO) never appear.

Defaultlink, quantity (+ runs, interval where dripfeed is true) — most services, such as post views and bot starts
Packagelink; quantity optional — without it the order is placed and charged for the service's min, the package size (we set min = max on Package services)
Custom Commentslink, comments (one per line; quantity = lines)
Polllink, quantity, answer_number
Invites from Groupslink, quantity, groups (one per line)
Mentions Custom Listlink, usernames (one per line; quantity = lines)
Mentions Hashtaglink, quantity, hashtag

action=statusOrder status

One order with order=, or up to 100 with orders= (comma-separated). The multi form returns an object keyed by order ID; an unknown ID gets its own error entry and never fails the whole call. remains counts down as delivery progresses; charge is the final amount after any refund.

requestcurl -X POST https://tgtorch.com/api/v2 \
  -d "key=YOUR_KEY&action=status&order=9000123"

curl -X POST https://tgtorch.com/api/v2 \
  -d "key=YOUR_KEY&action=status&orders=9000123,9000124,9000125"
response · single{"charge":"0.00300","start_count":"5210","status":"In progress",
 "remains":"400","currency":"USD"}
response · multi{"9000123":{"charge":"0.00300","start_count":"5210","status":"Completed","remains":"0","currency":"USD"},
 "9000124":{"charge":"0.00150","start_count":"0","status":"Pending","remains":"500","currency":"USD"},
 "9000125":{"error":"Incorrect order ID"}}

action=cancelCancel

Requests cancellation for up to 100 orders (orders=, comma-separated; order= works for one), on services marked cancel: true. The reply means the request was accepted — poll status for the outcome. An order that has not been sent to our servers yet is canceled and refunded immediately; otherwise delivery may already be under way and cannot always be stopped — poll status: if it stops, the order ends Canceled or Partial with the undelivered part refunded; if it does not, it runs to the end and anything not delivered is refunded then. You are never charged and refunded for the same units.

requestcurl -X POST https://tgtorch.com/api/v2 \
  -d "key=YOUR_KEY&action=cancel&orders=9000123,9000124"
response[{"order":9000123,"cancel":1},
 {"order":9000124,"cancel":{"error":"Incorrect order ID"}},
 {"order":9000125,"cancel":{"error":"Cancel is not available"}}]

action=refillRefill · refill_status

For services marked refill: true, on a Completed or Partial order inside the refill window. Returns a refill ID you can poll with refill_status. Both accept one ID (order= / refill=) or up to 100 (orders= / refills=). Refill statuses: Pending, In progress, Completed, Rejected, Error.

requestcurl -X POST https://tgtorch.com/api/v2 \
  -d "key=YOUR_KEY&action=refill&order=9000123"

curl -X POST https://tgtorch.com/api/v2 \
  -d "key=YOUR_KEY&action=refill&orders=9000123,9000124"

curl -X POST https://tgtorch.com/api/v2 \
  -d "key=YOUR_KEY&action=refill_status&refill=100001"

curl -X POST https://tgtorch.com/api/v2 \
  -d "key=YOUR_KEY&action=refill_status&refills=100001,100002"
responses{"refill":100001}
[{"order":9000123,"refill":100001},{"order":9000124,"refill":{"error":"Refill is not available"}}]
{"status":"Completed"}
[{"refill":100001,"status":"Completed"},{"refill":100002,"status":{"error":"Incorrect refill ID"}}]

action=balanceBalance

requestcurl -X POST https://tgtorch.com/api/v2 \
  -d "key=YOUR_KEY&action=balance"
response{"balance":"100.8429","currency":"USD"}

Order statuses

Final states lock: once an order is Completed, Partial, Canceled or Fail it never changes and is never refunded twice.

Pendingaccepted, waiting its turn to be sent
Processinghanded to our servers
In progressaccepted by our servers — remains counts down as units arrive, and the first ones can take a while
Completedfully delivered
Partialstopped early, remainder refunded
Cancelednot delivered, refunded
Failclosed by our team by hand, with no refund

Errors

Always HTTP 200 with an error string — exactly what Perfect Panel expects to show your customers. Batch calls never fail as a whole: a bad ID only errors its own entry.

# request / key
{"error":"Incorrect request"}          {"error":"Invalid API key"}
{"error":"Account is suspended"}       {"error":"IP not allowed"}
{"error":"Too many requests"}          # wait a second and retry
{"error":"Internal error"}             # nothing was saved or charged — retry
# add
{"error":"Incorrect service ID"}       {"error":"Incorrect comments"}
# a bad, empty or over-500-character link is not an error: you get an order ID, canceled at once, charge 0
{"error":"The quantity must be between 100 and 1000000"}
{"error":"Dripfeed is not available for this service"}
{"error":"Incorrect dripfeed parameters"}
{"error":"Not enough funds on balance"}
# status / cancel / refill (per item in batch calls)
{"error":"Incorrect order ID"}         {"error":"Incorrect order IDs"}
{"error":"Incorrect order status"}     {"error":"Cancel is not available"}
{"error":"Refill is not available"}    {"error":"Refill already requested"}
{"error":"Refill period expired"}      {"error":"Refill limit reached for this order"}
{"error":"Refill was requested recently, try again later"}
{"error":"Incorrect refill ID"}        {"error":"Incorrect refill IDs"}
Why Torch

Torch vs. a typical panel

SMM TorchTypical panel
Telegram-only serversYes — nothing else runs on themShared with 40 networks
Refund on Partial / CanceledAutomatic, never paid twiceOpen a ticket
Multi-status polling100 orders per callOne at a time
Error formatHTTP 200 + error string, alwaysRandom 4xx/5xx pages
DashboardInside Telegram — key, balance, ordersA web login you forget
Servers we runOur own delivery servers, not resold traffic.
Automatic retriesIf a hand-off to our servers fails, the order is retried automatically with back-off.
Refill windowMarked services refill inside the window, free.
Provider-grade limits100-order status calls and per-key rate limits we can raise on request.

Light it up.

One key. All our Telegram services. Orders that report back.