SMM Panel API Explained: Actions, Parameters and Errors

On this page 13
  1. How the SMM Panel API Works
  2. Where to Find Your API Key and Documentation
  3. The Seven Actions
  4. Placing Orders With action=add
  5. Checking Status
  6. Refills and Cancels Through the API
  7. Errors You Will See
  8. Rate Limits
  9. Connecting Your Panel to a Provider's API
  10. Testing an Integration
  11. Selling API Access to Resellers
  12. Security Basics
  13. Free SMM Panel APIs

An SMM panel API is a single URL that takes POST requests with an API key and an action, such as services, add, status, refill, cancel or balance, and answers in JSON. Nearly every panel uses the same actions and field names, which is why any panel can send orders to any other panel. On FlashyPanels the URL is yourpanel.com/api/v2.

This guide covers the API from both sides: what your customers and resellers send to your panel, and what your panel sends to its providers. Field names and error messages below are the ones our panels use.

How the SMM Panel API Works

There are no separate endpoints per action and no login flow. Every request goes to one URL with two fields that are always required:

  • key, the customer's API key.
  • action, which tells the panel what to do.

The rest depends on the action. Responses are JSON. Requests without an action and key get an error that points the caller to the documentation.

The Add Order call from your panel's API page. Values are examples; the field names are the real ones.

Where to Find Your API Key and Documentation

Customers find their key on their Account page, and the API page in the customer area shows the URL, the method (POST), the response format (JSON) and an example for every action. The same page links to example PHP code. A customer can regenerate their key from Account, which instantly stops the old key from working. That is the first thing to do if a key leaks.

The Seven Actions

ActionWhat it doesMain fields
servicesLists every service the key can orderkey, action
addPlaces an order and returns its IDservice, link, quantity
statusReturns charge, start count, status, remains and currencyorder, or orders for several
refillRequests a refill on a completed orderorder, or orders (up to 100)
refill_statusReturns the status of a refillrefill, or refills (up to 100)
cancelRequests cancellationorders (up to 100)
balanceReturns the account balance and currencykey, action

The services response includes, for each service: the service ID, name, type, category, rate per 1,000, min, max, description and whether refill is available. Resellers use it to import your catalog into their own panel.

Placing Orders With action=add

A default order needs service, link and quantity. The panel checks the quantity against the service's min and max, checks the balance, charges it, and returns the order ID:

FieldExample
keyyour API key
actionadd
service1
linkthe post or profile URL
quantity1000

The response is just the new order ID, for example { "order": 23501 }. Store it, because every later status, refill or cancel call uses it.

Drip-feed through the API

Add runs (how many deliveries) and interval (minutes between them) to a default order and it becomes a drip-feed. Runs must be at least 2. The quantity is per run, so 1,000 with 10 runs is 10,000 in total.

Other order types

Some services need different fields. The API page lists each type with its fields. The ones you will meet most:

  • Package: service and link only, no quantity.
  • Custom Comments: a comments list, one comment per line.
  • Mentions Custom List: a usernames list, one per line.
  • Mentions Hashtag, Mentions User Followers, Mentions Media Likers: a quantity plus the hashtag, profile or media to take usernames from.
  • Comment Likes and Comment Replies: the username of the comment owner.
  • Poll: the answer number to vote for.
  • Subscriptions: a username, a min and max quantity per post, optional posts and old_posts limits, a delay in minutes, and an optional expiry date.

Checking Status

Send status with order for one order, or with orders and a comma-separated list for several. Each answer carries the charge, the start count, the status, what remains to deliver, and the currency. A partial order shows how much was not delivered; that part has already gone back to the customer's balance.

Polling is how everyone tracks orders, including your own panel tracking its providers. Do not poll every order every few seconds. Check open orders on a timer and stop checking once they complete.

Refills and Cancels Through the API

The API follows the same rules as the refill and cancel buttons in the customer area:

  • Refill works only on completed orders, only on services with refill enabled, and only inside the service's refill days counted from completion.
  • One refill at a time per order. The first refill opens 24 hours after the order completes, and after a provider accepts a refill the next one opens 24 hours later.
  • The provider can decline a refill; the API then returns "The provider declined this refill".
  • Cancel works only on services with cancel enabled, and only while the order is pending, processing or in progress.

Our guide to refill, drip-feed and cancel explains these rules from the operator's side.

Errors You Will See

Errors come back as JSON with a message. The common ones:

MessageWhat it means
API key invalidThe key is wrong or was regenerated
Insufficient balanceThe account needs a top-up before ordering
Quantity below minimum / Quantity above maximumCheck min and max from action=services
You already have an active order on this linkWait for the current order on that link to finish
Service is not availableThe service is disabled or hidden
Dripfeed requires at least 2 runsSend runs of 2 or more
Order must be completed before requesting a refillRefills open after completion
Refill period has expired for this orderThe service's refill days have passed
Please wait before requesting another refillThe 24-hour gap after completion or after an accepted refill
Only pending or processing orders can be cancelledThe order already finished, ended partial or was canceled

Rate Limits

Each API key can make 300 requests a minute. That is plenty for a reseller sending orders in real time. If an integration hits the limit, it is almost always polling too often. Batch status checks with orders and a comma-separated list instead of one request per order.

Connecting Your Panel to a Provider's API

The same format runs in the other direction. To use another panel as your provider, open Settings → Providers and add:

  1. A Provider name you will recognise.
  2. The URL of their API, usually something like https://provider.com/api/v2.
  3. Your API key from their site.
  4. The Currency they charge in.

Your panel then lists their services in the Import wizard, sends your customers' orders to them with action=add, and polls them with action=status. Refills and cancels go to them too, if they support those actions. Our guide on choosing an SMM panel provider covers what to check before you connect one.

Testing an Integration

Test every new integration in this order before real traffic, on both sides: when you connect to a provider, and when a reseller connects to you.

  1. Call balance. If the key or URL is wrong, this is where you find out, without spending anything.
  2. Call services and check that the service IDs, rates, min and max match what you expect.
  3. Place one add on the smallest quantity of a cheap service, on a link you control.
  4. Call status with the returned order ID until it completes, and compare the charge with your rate.
  5. If the service has refill or cancel, try those on a test order too.

Five calls, a few cents, and you know the integration works end to end. Skipping this step is how a reseller ends up sending a day of orders to the wrong service ID.

Selling API Access to Resellers

Resellers are often a panel's best customers: they order every day and rarely open tickets. To win them:

  • Keep your API page public so they can check the format before signing up.
  • Set custom rates per reseller under Clients, so volume buyers pay less without changing your public prices.
  • Mark refill support honestly in each service; resellers read the refill flag in the services response.
  • Watch your provider balance closely. Automated orders drain it faster than retail.

Panels that want their own branded panel on top of yours can buy a child panel instead of integrating with the API.

Security Basics

  • Treat an API key like a password. Anyone with it can spend the balance.
  • Regenerate a key from Account the moment it might have leaked.
  • Never put a key in public code, a screenshot or a shared document.
  • Call the API from a server, not from a web page where visitors can read the key.

Free SMM Panel APIs

Searches for "free SMM panel API" or a "free API key" are common. The API itself is free on any panel: it costs nothing to call. What costs money is the orders it places, which are paid from the balance on the account. On FlashyPanels the User API is part of the panel, not an add-on; pricing shows what each plan includes, and the features list covers the rest.

Sell to resellers over your own API.

Custom rates per reseller. No setup fee.

Create your account