The SMM Panel API Explained: How add, status, services and the Other Actions Work
A plain-English guide to the standard SMM panel API v2: every action with request and response examples, how panel scripts use it, and common mistakes.

An SMM panel API is a single URL that accepts an API key and an action, so software can do what you would do by hand in the panel: list services, place orders, check their status, request refills, cancel, and read your balance. Most panels share the same v2 shape, which is why one panel script can plug in many providers.
This guide explains that standard API in plain English, with real request and response shapes from Orbismm's implementation, then covers what our REST API v1 and sandbox add on top. The formal reference lives in the API docs.
How does the standard SMM panel API work?
- One endpoint. On Orbismm it's
https://orbismm.com/api/v2, documented in the API v2 reference. Every action goes to the same URL. - Two required fields.
key(your API key) andaction(what you want to do), sent as form fields. Other fields depend on the action. - POST is the norm. GET also works, but POST keeps your key out of URLs and server logs.
- JSON back. Every response is JSON. Errors come back as
{"error": "..."}with HTTP status 200, which is what existing panel scripts expect, so always read the body, not just the status code. - Money as strings. Amounts such as
rate,chargeandbalanceare decimal strings in USD, for example"0.9500".
Every Orbismm account can use the API from day one. There are no API, deposit, monthly or setup fees. The default rate limit is 60 requests per second per key.
Which actions does API v2 support?
| Action | Fields you send | What you get back |
|---|---|---|
services | key, action | The service list: service, name, type, category, rate, min, max, refill, cancel, dripfeed |
add | service, link, quantity; optional runs and interval for drip-feed | order: the new order ID |
status | order, or orders with comma-separated IDs | charge, start_count, status, remains, currency |
refill | order, or orders | refill: the refill ID |
refill_status | refill, or refills | status: Pending, In progress, Completed or Rejected |
cancel | orders (or order) | One row per order with cancel: 1 or an error |
balance | key, action | balance and currency |
What do requests and responses look like?
The IDs, prices and counts below are for example only. The field names are exactly what the API returns.
- List services:
action=servicesreturns an array, for example[{"service":102,"name":"Instagram Followers","type":"Default","category":"Instagram Followers","rate":"0.9500","min":"100","max":"50000","refill":true,"cancel":true,"dripfeed":false}].rateis the price per 1,000 at your tier. - Place an order:
action=add&service=102&link=https://www.instagram.com/example&quantity=1000returns{"order":51873}. - Check one order:
action=status&order=51873returns{"charge":"0.9500","start_count":"5200","status":"In progress","remains":"400","currency":"USD"}.chargealready reflects any refund, so a Partial order shows what it actually cost. - Check several orders:
action=status&orders=51873,51874returns an object keyed by order ID, for example{"51873":{...},"51874":{"error":"Incorrect order ID"}}. One bad ID doesn't fail the whole call. - Request a refill:
action=refill&order=51873returns{"refill":812}. Withorders, you get[{"order":51873,"refill":812}]. - Check a refill:
action=refill_status&refill=812returns{"status":"Completed"}. Withrefills, you get[{"refill":812,"status":"Completed"}]. - Cancel:
action=cancel&orders=51873returns[{"order":51873,"cancel":1}], or an error such as{"error":"This service does not support cancel."}in place of the1. - Balance:
action=balancereturns{"balance":"250.0000","currency":"USD"}.
Statuses match what you see in the panel: Pending, Processing, In progress, Completed, Partial and Canceled. Our guide to order statuses explains each one and what happens to your money, and what refill covers explains when a refill request makes sense.
How do panel scripts use the API to add a provider?
If you run your own panel on a script, you don't write API calls yourself. The script's provider feature does it. Orbismm's API v2 works with any panel script that supports providers. The flow is the same everywhere:
- In your panel's admin, add a provider with the API URL
https://orbismm.com/api/v2and your key. - Import services. The script calls
servicesand stores eachserviceID with its rate, min and max. - Set your own prices on top of the provider rate and choose which services to show your customers.
- When a customer orders, the script calls
addwith the provider's service ID and stores the returnedorderID next to your own order. - A scheduled job calls
statusfor open orders and updates your customers' orders. Refill and cancel buttons callrefillandcancel. - The script calls
balanceso you can see when to top up. On Orbismm, top-ups are in cryptocurrency through Cryptomus; see pricing.
What are the common mistakes when connecting an SMM panel API?
- Wrong service ID. Service IDs belong to each provider. An ID copied from another provider, or one that was never re-imported after a catalogue change, points to a different service or none. Re-import after changes and check the
namematches. - Link doesn't match the service. Followers services need a profile link; likes and views need a post or video link. Send full URLs. In the Orbismm panel, the pasted link is read and only matching services are offered; over the API, your script has to get this right.
- Quantity outside min and max. Read
minandmaxfromservicesand validate before callingadd. - Retrying add on a timeout. If the request timed out, the order may still have been created. Blindly retrying can create a duplicate. Check status first, or use API v1 with an Idempotency-Key.
- Polling too often. Checking every order every few seconds wastes your rate limit and changes nothing. Poll every few minutes and use
ordersto check many at once. - Treating HTTP 200 as success. Errors also return 200. Check for an
errorfield in every response. - Re-ordering a stuck link. Placing a second order on the same link doesn't speed anything up. On Orbismm it waits for the first to finish.
| Error message | What it usually means |
|---|---|
Invalid API key | Key is wrong, revoked or copied with extra spaces |
Incorrect action | Typo in action, or an action this API doesn't have |
Incorrect order ID | ID doesn't exist on this account, or a live key is looking for a sandbox order (or the reverse) |
Refill not found | Wrong refill ID |
This API key is not allowed to do that | The key's scope doesn't include placing or changing orders |
What does Orbismm's API v1 add?
API v2 is built for compatibility with existing scripts. If you're writing your own integration from scratch, API v1 is REST and JSON at https://orbismm.com/api/v1, with features the v2 format can't express:
| Feature | What it's for |
|---|---|
| Bearer keys with scopes | Keys limited to read, orders or webhooks, so a reporting tool can't place orders |
| Idempotency-Key | Send the same key when retrying order creation; you get the original order back instead of a duplicate |
| Batch orders | Place many orders in one request |
| Signed webhooks | We tell you when things change instead of you polling; the signature lets you verify each call came from us. See webhooks |
| OpenAPI | A machine-readable spec at /api/v1/openapi.json for generating clients |
Price cuts apply immediately, and price increases are announced at least 48 hours ahead in the panel and by webhook, so an integration can update its own prices before they change.
How does the sandbox work?
Test keys run full order lifecycles with play money and never place real orders. They work on v2 and v1, so you can connect a panel script, place orders, watch statuses move, and try refill and cancel before spending anything. Test keys only see sandbox orders and live keys only see live ones, and balance on a test key shows your play-money balance. Details are in the sandbox docs.
Switch a finished integration to a live key without changing anything else. If it worked in the sandbox, the same calls work live.
From Orbismm order data
Orbismm currently runs 0 services. Across still being measured orders in the last 30 days, the median start time was still being measured.
Get your API key and try the sandbox first. Read the API docs
Frequently asked questions
- What API actions does a standard SMM panel API support?
- The standard v2 API supports services, add, status, refill, refill_status, cancel and balance. Orbismm supports all seven at https://orbismm.com/api/v2.
- Do I need to know how to code to use an SMM panel API?
- Not if you run a panel script: you paste the API URL and key into its provider settings and it handles the calls. You need code only to build your own integration.
- How do I authenticate API requests?
- On API v2 you send your key in the key field with every request. On API v1 you send a bearer key, which can be limited to the read, orders or webhooks scopes.
- What's the difference between the REST API and the classic key/action API?
- The key/action API v2 is the standard format panel scripts already understand. The REST API v1 adds JSON requests, scoped keys, Idempotency-Key, batch orders, signed webhooks and an OpenAPI spec.
- Is there a sandbox or test mode before I connect my real panel?
- Yes. Test keys run full order lifecycles with play money and never place real orders.
- Are there fees for using the API?
- No. Every account can use the API from day one with no API, deposit, monthly or setup fees. You pay only for orders.