New

SMM Panel is live — order boosts, members, views and more right now

Open panel
All articles
  • API
  • Perfect Panel
  • Reseller
  • SMM Panel

Connect a Telegram Provider API to Perfect Panel

Adding a provider is a two-field form, but only if the provider speaks the API v2 contract correctly. Here is what that contract expects and where integrations usually fail.

Two panel windows connected through an API v2 endpoint with key and service import fields
Adding a provider is an API address and a key; the contract behind it decides whether it keeps working.

Short answer: Perfect Panel, SmartPanel and most self-hosted panel scripts speak the same de facto standard, usually published at an address ending in /api/v2. Adding a provider means entering that URL and an API key, then importing the service list. Everything else — order routing, status polling, pricing — follows automatically if the provider implements the contract properly.

The mechanics are simple enough that most guides stop at "paste your key". What they leave out is the part that decides whether the integration actually works a week later: which parts of the contract the provider implements, which ones it only claims to, and what happens at the edges. This article covers both.

What the API v2 contract expects

The contract is small and has barely changed in years, which is why it became a standard. A provider endpoint accepts an HTTP POST with form-encoded fields, always including an API key and an action name, and replies with JSON.

Five things are required for a panel to treat a provider as usable. A service list that returns an array with an id, name, type, category, rate per thousand, minimum and maximum quantity. Order creation that returns an order id. Status lookup that returns charge, start count, status and remaining quantity. Bulk status lookup, because polling one order at a time does not scale. And a balance call, so the panel can warn you before you run dry.

Errors are returned with an HTTP 200 and a JSON body containing an error field, which surprises developers used to normal REST conventions but is what every panel expects. A provider that returns a 400 status code for a bad service id will look broken to the panel importing it.

Status values matter more than people expect. Panels recognise a fixed vocabulary — pending, in progress, processing, completed, partial, canceled. A provider that invents a status outside that set leaves orders stuck in an indeterminate state on your side, because your panel has no rule for what to do with a word it does not know.

Adding the provider step by step

In Perfect Panel the flow is short. Open the provider section in your admin settings and choose to add a provider. Enter the provider's API address and the key you generated on their dashboard. Save, then run the service import.

One detail catches people out: Perfect Panel maintains its own registry of integrated providers. If the provider you are adding is already in that registry, you enter a key and you are done. If it is not, the panel's support team integrates it for you on request, at no extra cost — but it is a request with a turnaround, not an instant action. Check the provider list first so you know which path you are on before you plan a launch around it.

SmartPanel and most self-hosted scripts have no registry step. You add the provider from the admin dashboard with the same two fields and the import runs immediately. The contract is identical, so a provider that works in one generally works in the other.

After import, do not enable everything. Import brings in the provider's entire catalogue, which is usually far more services than you intend to sell. Enable the categories you actually want, set your markup, and leave the rest disabled — a shorter list converts better and is far easier to support.

The four calls behind the screen

Once the provider is connected, your panel makes the same small set of calls forever.

Service list. Pulled on a schedule to keep your catalogue in sync. This is where price changes reach you, so the interval matters: sync too rarely and you sell at a price your provider no longer offers.

Order creation. Sent the moment a customer order needs fulfilling, returning the provider's order id. Your panel stores that id and uses it for everything afterwards.

Status lookup. Polled repeatedly, usually in batches of up to a hundred ids at a time. This drives every status your customer sees.

Balance. Read periodically so the panel can alert you before orders start failing for lack of funds.

Refill and cancel exist in the contract but are optional, and this is the most common source of a broken-looking integration. If a provider marks services as refillable but does not implement the refill action, your panel will render a refill button that returns an error every time. Providers who handle refills manually through support should report those flags as false — and if you are evaluating a provider, checking whether the flags match the implemented actions is a fast way to gauge how carefully they built their API.

Four API calls in sequence: services, add, status and balance
Four calls cover everything a reseller integration needs day to day.

Importing and pricing the service list

The rate a provider returns is the price per thousand units in their currency. Your panel multiplies it by your markup to produce the customer price, so the markup is where your entire margin lives.

Set it per category rather than globally. A flat percentage across a catalogue of a thousand services will be too high on commodity items your customers can price-check in seconds, and too low on the harder-to-source services where you have room. Most panels support category-level overrides; using them is the difference between a competitive list and a list nobody buys from.

Watch the currency. If your provider bills in USD and your panel sells in something else, every exchange rate move changes your real margin silently. Either sell in the same currency or build a buffer into the markup deliberately rather than discovering it later.

Re-run the import on a schedule and look at what changed. Providers add, remove and reprice constantly. A service that disappears from the catalogue while you are still selling it produces failed orders that look like your fault to the customer.

What breaks and how to spot it

Three failure modes account for most integration problems.

The first is a service type mismatch. The contract includes types beyond the default one — custom comments, packages, mentions — which require extra parameters your panel may not send. If a provider lists those types but the ordering call only accepts a link and a quantity, the extra fields are silently dropped and the order is placed wrong. A careful provider either implements the parameters or keeps those services out of the API catalogue entirely.

The second is timeout ambiguity. If an order request times out, the order may or may not exist on the provider side. Retrying blindly creates duplicates and charges you twice; assuming failure and refunding leaves a real order running unpaid. The correct handling is to check status before doing anything, and a provider that gives you a clean way to do that is worth more than one a fraction cheaper.

The third is what happens when the provider runs out of funds at their own upstream. Some cancel the order and refund; your customer gets nothing and you get an explanation to make. Others hold the order in a queue and complete it once topped up, so the order finishes late rather than never. Neither is wrong, but they demand different messaging on your side, so ask which one you are dealing with.

Connecting TelegramBoost as a provider

We are a main provider, so connecting us adds no intermediate layer between your panel and delivery: the catalogue you import is ours, and the price you pay is the source price rather than someone else's list with a margin on top.

Our reseller endpoint follows the contract described above: HTTP POST, form-encoded or JSON, key in the body or an X-Api-Key header, and JSON responses with errors returned as an error field. Service list, order creation, single and bulk status lookup and balance are all implemented, priced per thousand in USD.

Refill and cancel run through support tickets rather than the API, and our service list reports those flags as false rather than advertising buttons that would fail. API keys are self-service from the dashboard, shown once at creation, with up to five active at a time. If an upstream balance runs dry, orders queue rather than cancel. The full parameter reference is on our API documentation page, and the business side is covered in how to become a Telegram SMM reseller.

Frequently asked questions

Does my provider need to be pre-approved by Perfect Panel?

Only in the sense that Perfect Panel keeps a registry of integrated providers. If the provider is already listed, you enter an API key and you are finished. If not, their support team will integrate it free of charge on request, but that is a turnaround rather than an instant step, so check the list before planning around it.

Why does the refill button fail on an imported service?

Almost always because the provider marks services as refillable without implementing the refill action in the API. Your panel trusts the flag and renders the button; the call then returns an error. Providers who handle refills manually should report the flag as false.

How often should I re-import the service list?

Once or twice a day is enough for most catalogues. The point of re-importing is to catch price changes and removed services before a customer order hits them, so the right interval is short enough that you never sell at a stale price.

What should I do when an order request times out?

Check the order status before doing anything else. A timeout means the request was sent but the answer was lost, so the order may already exist upstream. Resending creates a duplicate and charges you twice, while assuming failure leaves a real order running that you have refunded.

Instant support