SMM Reportly

Google Translate (automatic)

Sign in
APIResellers

SMM Panel API Explained: services, add, status, refill and balance

SMM Reportly team · November 07, 2026 · 3 min read

Code editor showing an SMM panel API request and JSON response

Almost every SMM panel exposes the same simple API. It was popularised by the panel scripts most of the market runs on, so once you have connected to one panel you can connect to hundreds. This guide explains each action, what it returns and the mistakes that cost resellers money.

The basics

  • One endpoint. Usually https://panel.example/api/v2.
  • POST requests with form fields (some panels also accept GET).
  • Two fields on every call: key (your API key from the panel's account page) and action.
  • JSON responses. Errors come back as {"error": "..."}.

action=services: the service list

Returns every service the panel sells. Each item usually has:

FieldMeaning
serviceService ID you use when ordering
nameService name
typeDefault, Custom Comments, Package, Subscriptions…
categoryGroup name shown on the panel
ratePrice per 1,000 in the panel currency
min / maxOrder limits
refill / cancelWhether refill and cancel are supported
dripfeedWhether drip-feed is allowed

This is the call price comparison sites use. SMM Reportly reads it to show each panel's service list and the daily new services and price changes on the panel's updates tab.

action=add: place an order

Required fields: service, link and quantity. Depending on the service type you may also send runs and interval (drip-feed), comments (custom comments, one per line) or username and min / max / posts (subscriptions).

The response is the new order ID: {"order": 23501}.

action=status: check an order

Send order for one order or orders with up to 100 comma-separated IDs. The response contains charge, start_count, status and remains.

Statuses you will see: Pending, In progress, Processing, Completed, Partial and Canceled. For Partial, the unused part of the charge is returned to your balance.

action=refill and refill_status

For services with refill, send order (or orders) to request a refill. You get a refill ID back and can follow it with refill_status.

action=cancel

Some panels let you cancel orders that have not started. Send orders with the IDs. Not every panel supports it, and the services list tells you which services allow it.

action=balance

Returns your balance and currency: {"balance": "100.84", "currency": "USD"}. Resellers usually poll it to stop sending orders before the balance runs out.

Common mistakes

  1. Ignoring the currency. Rates are in the panel's currency. Convert before you compare panels.
  2. Not storing the provider's order ID. Without it you cannot check status, refill or prove an order in a complaint.
  3. Sending private or wrong links. Most providers mark these orders as canceled or partial, sometimes without refund.
  4. Ordering above max or below min. The API returns an error and nothing is placed, so check limits from the services list.
  5. Polling too fast. Panels rate-limit status calls. Batch up to 100 orders per request.
  6. Trusting service IDs forever. Providers remove and replace services. Refresh the services list daily.

Choosing a provider for your own panel

When you connect your panel to a provider via API, you inherit its delivery problems. Before you connect:

  • Check the provider's complaint history on SMM Reportly.
  • Compare the same service across providers in All Services; the cheapest one is often closer to the original source.
  • Test with small orders and watch drop rates for a week.

More guides