The Smmpanelz API lets you place and track orders from your own website, bot or tool instead of logging into a panel for every order. It uses a single POST endpoint, returns JSON, and needs nothing beyond your API key.
Base URL: https://smmpanelz.com/api/v2
Every request is a POST to the base URL with a key parameter containing your API key. Generate the key from your account area. Keep it on your server and never expose it in browser JavaScript.
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | Yes | Your API key from the account area |
Each operation is selected with the action parameter.
| Action | Purpose | Extra parameters |
|---|---|---|
| services | List every available service | none |
| balance | Current account balance | none |
| add | Place a new order | service, link, quantity, runs, interval |
| status | Check one or many orders | order or orders |
| refill | Request a refill | order |
| refill_status | Check a refill | refill |
| cancel | Request cancellation | order |
Call this before your first order. Each entry carries the rate per 1,000, the minimum and maximum quantity, and the refill flag.
POST /api/v2\\\\nkey=YOUR_API_KEY&action=services[\\\\n {\\\\n "service": 1,\\\\n "name": "Followers",\\\\n "type": "Default",\\\\n "category": "Instagram",\\\\n "rate": "0.90",\\\\n "min": "50",\\\\n "max": "10000",\\\\n "refill": "1"\\\\n }\\\\n]The catalogue is large, so cache it and refresh on a schedule instead of calling it per order. Rates change when suppliers change them.
POST /api/v2\\\\nkey=YOUR_API_KEY&action=balance{\\\\n "balance": "100.84292",\\\\n "currency": "USD"\\\\n}Quantity is a plain number, not a multiple of 1,000. An order for 5,000 followers is quantity=5000.
POST /api/v2\\\\nkey=YOUR_API_KEY&action=add&service=1&link=https://instagram.com/p/example&quantity=5000| Parameter | Required | Description |
|---|---|---|
| service | Yes | Service id from the service list |
| link | Yes | Public post or profile URL the service applies to |
| quantity | Yes | Total quantity, not per 1,000 |
| runs | No | Split the order into this many deliveries |
| interval | No | Minutes between runs when using runs |
{\\\\n "status": 200,\\\\n "order": 23501\\\\n}The order id comes back immediately. Store it; you cannot look an order up by name later.
POST /api/v2\\\\nkey=YOUR_API_KEY&action=status&order=23501{\\\\n "charge": "0.27819",\\\\n "start_count": "3572",\\\\n "status": "Partial",\\\\n "remains": "157",\\\\n "currency": "USD"\\\\n}The status field reads Pending while queued, In progress while running, Partial when part has landed, and Done when the order is complete.
Pass a comma-separated list in orders instead of order to check a batch in one request.
POST /api/v2\\\\nkey=YOUR_API_KEY&action=status&orders=1,10,100{\\\\n "1": { "status": "Partial", "remains": "157" },\\\\n "10": { "error": "Incorrect order ID" },\\\\n "100": { "status": "In progress", "remains": "10" }\\\\n}Available on services where the service list shows refill enabled. Submit the order id if the delivered amount dropped inside the refill window.
POST /api/v2\\\\nkey=YOUR_API_KEY&action=refill&order=23501{\\\\n "refill": 1,\\\\n "status": 200,\\\\n "message": "Refill has been placed successfully!"\\\\n}Check the refill afterwards with the returned refill id.
POST /api/v2\\\\nkey=YOUR_API_KEY&action=refill_status&refill=1{\\\\n "status": "Completed"\\\\n}Only orders that have not started can be cancelled. A delivered order cannot be reversed.
POST /api/v2\\\\nkey=YOUR_API_KEY&action=cancel&order=23501{\\\\n "status": "success",\\\\n "message": "Cancellation request added, we'll try our best to cancel it."\\\\n}curl -s -X POST "https://smmpanelz.com/api/v2" \\\\\\\\\\\\n -d "key=YOUR_API_KEY" \\\\\\\\\\\\n -d "action=add" \\\\\\\\\\\\n -d "service=1" \\\\\\\\\\\\n -d "link=https://instagram.com/p/example" \\\\\\\\\\\\n -d "quantity=5000"$data = [\\\\n 'key' => 'YOUR_API_KEY',\\\\n 'action' => 'add',\\\\n 'service' => 1,\\\\n 'link' => 'https://instagram.com/p/example',\\\\n 'quantity' => 5000,\\\\n];\\\\n$ch = curl_init('https://smmpanelz.com/api/v2');\\\\ncurl_setopt($ch, CURLOPT_POST, true);\\\\ncurl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));\\\\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\\\\n$res = json_decode(curl_exec($ch), true);\\\\ncurl_close($ch);\\\\necho $res['order']; // 23501import requests\\\\n\\\\nres = requests.post('https://smmpanelz.com/api/v2', data={\\\\n 'key': 'YOUR_API_KEY',\\\\n 'action': 'add',\\\\n 'service': 1,\\\\n 'link': 'https://instagram.com/p/example',\\\\n 'quantity': 5000,\\\\n}).json()\\\\n\\\\nprint(res['order']) # 23501The add action accepts runs and interval to spread a large order over time instead of delivering it in one push.
POST /api/v2\\\\nkey=YOUR_API_KEY&action=add&service=1&link=https://instagram.com/p/example&quantity=10000&runs=10&interval=60That request delivers the 10,000 in ten runs, one every 60 minutes.
Yes. Every account has API access and there is no integration fee. You pay only for the services you order.
No. Any script, bot or backend that can send an HTTP POST can use it.
Pass runs and interval on the add action. Runs is the number of deliveries and interval is the minutes between them.
The order is accepted, then fails when the provider cannot apply it. Always send a public, reachable URL.