TGLUX · SMM Panel API · v2
Connect TGLUX to your panel
TGLUX supplies its own Telegram, X (Twitter) and YouTube services wholesale over the standard SMM API v2 — the protocol Perfect Panel and most reseller panels already speak. Add TGLUX as a provider with the URL below and your API key, then import the services.
- API URL
https://smmtglux.com/api/v2- Method
- POST, form fields
- Response
- JSON
- Currency
- USD
Before you start
- Every request
- Send
keyandactionas POST form fields, URL-encoded or multipart. JSON request bodies are not read, and a GET is refused. - Your key
- Create an account or log in, then generate a key on the API page of your dashboard (
/api). It is shown once, so store it then. Generating a new key retires the old one immediately. - Errors
- Always HTTP
200, with a body of the form{"error": "…"}. Check for theerrorfield, not the status code. - Numbers
- Money and counts arrive as JSON strings —
"0.0025","1000000"— with up to 7 decimal places and trailing zeros trimmed. IDs are integers; thedripfeed,refillandcancelflags are booleans. - Order IDs
- Large integers such as
43613751. Store them exactly as returned. - Rate limit
- 120 requests per 60 seconds per key.
- Batches
ordersandrefillstake up to 100 comma-separated IDs. Anything after the first 100 is ignored.- Names
- Service and category names are returned in English and do not change with the site's language. Non-ASCII characters arrive as
\uescapes, which any JSON parser decodes.
Rates are per 1,000
That second line is the order used in the examples below: 10 post views on service 4.
The one exception is a service whose type is Package: its rate is the price of one whole package, an order is always one package, and the charge is the rate itself.
action=balance
Returns your balance. Panels usually call it first, to confirm the key works.
No fields besides key and action.
curl -X POST https://smmtglux.com/api/v2 \
-d key=YOUR_API_KEY \
-d action=balance{
"balance": "0.999975",
"currency": "USD"
}action=services
Returns every service you can order, priced for your account. Import from this list, and read each service's flags before offering drip-feed, refill or cancel on it.
No fields besides key and action.
curl -X POST https://smmtglux.com/api/v2 \
-d key=YOUR_API_KEY \
-d action=services[
{
"service": 4,
"name": "Seen Post👁",
"type": "default",
"category": "Cheap Telegram Views",
"rate": "0.0025",
"min": "10",
"max": "1000000",
"dripfeed": false,
"refill": false,
"cancel": true
}
]Fields
| Field | Type | Meaning |
|---|---|---|
service | integer | The ID to send as service when you place an order. |
name | string | Service name. |
type | string | default: an order needs link and quantity, nothing else. Package: one fixed bundle per order; an order needs only link, and its quantity is always 1. Compare the value without regard to case. |
category | string | Category name. |
rate | string | Your price per 1,000, in USD. For a Package, the price of one whole package. |
min, max | string | The quantity limits an order must fall inside. A Package is always ordered with quantity 1. |
dripfeed | boolean | Accepts runs and interval. |
refill | boolean | Orders can be refilled. |
cancel | boolean | Orders can be canceled. |
Right now the API lists 1,137 services. Their types are Default, default; 909 support cancel, 13 offer refill, and none offers drip-feed. No service is a Package right now. Treat the flags as the source of truth — they change when the catalogue does.
action=add
Places an order. The charge is taken from your balance the moment the order is accepted; an error response means nothing was charged.
Fields
| Field | Required | Value |
|---|---|---|
service | required | A service ID from services. |
link | required | Where to deliver: the channel, post or profile URL. |
quantity | required* | Between that service's min and max. *Not needed for a Package: leave it out, or send 1. |
runs | optional | Drip-feed: how many deliveries to split the order into. |
interval | optional | Drip-feed: minutes between deliveries. |
Drip-feed. Send runs and interval together, and only to a service whose dripfeed flag is true. Otherwise the order is refused rather than placed without them. No service offers drip-feed right now.
Packages. A service whose type is Package is one fixed bundle per order, so the order needs only service and link: leave quantity out or send 1, and any other quantity is refused. The charge is that service's rate, the price of the whole package. Drip-feed does not apply to a package. No service is a Package right now.
curl -X POST https://smmtglux.com/api/v2 \
-d key=YOUR_API_KEY \
-d action=add \
-d service=4 \
-d link=https://t.me/yourchannel/15 \
-d quantity=10{
"order": 43613751
}curl -X POST https://smmtglux.com/api/v2 \
-d key=YOUR_API_KEY \
-d action=add \
-d service=SERVICE_ID \
-d link=YOUR_LINKaction=status
Returns the state of one order, or of up to 100 at once.
Fields
| Field | Required | Value |
|---|---|---|
order | one of | A single order ID. |
orders | one of | Up to 100 comma-separated order IDs. |
curl -X POST https://smmtglux.com/api/v2 \
-d key=YOUR_API_KEY \
-d action=status \
-d order=43613751{
"charge": "0.000025",
"start_count": "0",
"status": "In progress",
"remains": "10",
"currency": "USD"
}{
"43613751": {
"charge": "0.000025",
"start_count": "0",
"status": "In progress",
"remains": "10",
"currency": "USD"
},
"43613752": {
"error": "Incorrect order ID"
}
}Response fields
| Field | Type | Meaning |
|---|---|---|
charge | string | What the order cost. Falls if the order ends Partial. |
start_count | string | The count at the link when delivery began. "0" until it has been reported. |
status | string | One of the order statuses. |
remains | string | Quantity not delivered yet. |
currency | string | Currency of charge. |
How often to poll. TGLUX refreshes order state every two minutes, so asking more often returns the same answer. Poll in batches of up to 100, and stop polling an order once its status is final.
action=cancel
Asks for one or more orders to be canceled.
Fields
| Field | Required | Value |
|---|---|---|
orders | required | Up to 100 comma-separated order IDs. A single order is also accepted. |
curl -X POST https://smmtglux.com/api/v2 \
-d key=YOUR_API_KEY \
-d action=cancel \
-d orders=43613751[
{
"order": 43613751,
"cancel": 1
}
]"cancel": 1 means the request was accepted, not that the order is canceled yet. Delivery may already be under way. When the cancel goes through, the order's status becomes Canceled and the charge is returned to your balance automatically. An ID that could not be canceled carries its own error in place of 1.
action=refill
Asks for a refill on orders that dropped after delivery. Available only where the service's refill flag is true, and only for orders that are Completed or Partial.
Fields
| Field | Required | Value |
|---|---|---|
order | one of | A single order ID. Returns one refill ID. |
orders | one of | Up to 100 comma-separated order IDs. Returns a list. |
curl -X POST https://smmtglux.com/api/v2 \
-d key=YOUR_API_KEY \
-d action=refill \
-d order=43613751{
"refill": 118
}{
"error": "Refill not available for this service"
}[
{
"order": 43613751,
"refill": 118
},
{
"order": 43613752,
"refill": {
"error": "Incorrect order ID"
}
}
]action=refill_status
Returns the state of refills, by the refill IDs that refill gave you.
Fields
| Field | Required | Value |
|---|---|---|
refill | one of | A single refill ID. |
refills | one of | Up to 100 comma-separated refill IDs. |
curl -X POST https://smmtglux.com/api/v2 \
-d key=YOUR_API_KEY \
-d action=refill_status \
-d refill=118{
"status": "Pending"
}[
{
"refill": 118,
"status": "Pending"
},
{
"refill": 119,
"status": {
"error": "Refill not found"
}
}
]Order statuses
What status can return, and what each state means for the money. Five of them are final: once an order reaches one, it will not change again.
| Status | Meaning | State |
|---|---|---|
| Pending | Accepted and charged; delivery has not started. | open |
| In progress | Being delivered. remains counts down. | open |
| Processing | Being delivered — reported instead of In progress by some delivery systems. | open |
| Completed | Delivered in full. remains is "0". | final |
| Partial | Delivery stopped short. remains is what was not delivered; that share is refunded automatically and charge falls to match. | final |
| Canceled | Canceled. The charge is refunded in full, automatically. | final |
| Refunded | Reversed, and the charge refunded in full. | final |
| Failed | Could not be placed. The charge is refunded in full, automatically. | final |
Errors
Every message the API returns, word for word, so a panel can match on them.
| Message | When |
|---|---|
| Every request | |
Only POST is accepted | The request was not a POST. |
API is currently disabled | TGLUX has switched the API off. |
Missing API key | No key field arrived — including when the body was sent as JSON. |
Invalid API key | The key is unknown or has been replaced, or the account is not active. |
Rate limit exceeded. Slow down. | More than 120 requests in 60 seconds with this key. |
Invalid action | action is missing, or is not one of the seven above. |
| add | |
Service not found or disabled | No orderable service has that ID. |
Link is required | link was empty. |
Quantity must be between 10 and 1000000 | The quantity is outside the limits; the numbers are that service's own min and max. |
This service is sold as a package: the quantity must be 1 | A quantity other than 1 was sent to a Package service. Leave quantity out, or send 1. |
Insufficient balance | Your balance is below the order's charge. |
This quantity cannot be fulfilled right now. Try a different amount. | Nothing can deliver that quantity at the moment. |
This service can only be ordered from the website, not via the API. | The service is website-only. No current service is. |
Drip-feed needs both runs and interval | Only one of the two was sent. |
Drip-feed is not available for this service | runs and interval were sent to a service whose dripfeed flag is false, or to a Package. |
| status and cancel | |
Incorrect order ID | The value is not an order number of this site. |
Order not found | No order with that number belongs to your account. |
No valid order IDs | orders held nothing usable. |
Order cannot be canceled at this stage | The order is already Completed, Partial, Canceled or Refunded. |
Cancel could not be requested for this order. Please contact support. | The cancel was refused further along the delivery chain. Contact support with the order ID. |
| refill and refill_status | |
Refill not available for this service | The service's refill flag is false. |
Order is not eligible for refill | Only Completed and Partial orders can be refilled. |
Refill could not be requested for this order. Please contact support. | The refill was refused further along the delivery chain. Contact support with the order ID. |
Refill not found | No refill with that ID belongs to your account. |
No valid refill IDs | refills held nothing usable. |