The AllInOneSMM SMM panel API lets resellers and internal tools list the current catalog, place supported orders, check order status, read account balance, and request supported order actions.
New integrations should use /api/v2. The /api/v1 address remains an alias with the same request and response behavior.
Read the API docs carefully before wiring it into production. You're responsible for whatever the API places on your behalf.
| HTTP Method | POST |
| Response format | JSON |
| Content-Type | application/x-www-form-urlencoded or application/json |
| API URL | https://allinonesmm.com/api/v2 |
| Legacy URL (alias) | https://allinonesmm.com/api/v1 — identical behavior, prefer /api/v2 in new integrations |
| Rate limit | 240 requests / minute by default for each API key and IP pair. Approved high-volume accounts may have a larger customer-specific limit. A throttled request returns HTTP 429 with Retry-After plus X-RateLimit-* headers; wait for the indicated reset. |
| API Key | Log in / Sign up to get an API key |
Start with the read-only balance action. Replace YOUR_API_KEY with the key from your profile and send the request from a server-side environment.
curl --max-time 20 -X POST "https://allinonesmm.com/api/v2" \
--data-urlencode "key=YOUR_API_KEY" \
--data-urlencode "action=balance"
<?php
$payload = [
'key' => 'YOUR_API_KEY',
'action' => 'balance',
];
$curl = curl_init('https://allinonesmm.com/api/v2');
curl_setopt_array($curl, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($payload),
CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_TIMEOUT => 20,
]);
$response = curl_exec($curl);
if ($response === false) {
throw new RuntimeException(curl_error($curl));
}
curl_close($curl);
$data = json_decode($response, true, 512, JSON_THROW_ON_ERROR);
const body = new URLSearchParams({
key: "YOUR_API_KEY",
action: "balance"
});
const response = await fetch("https://allinonesmm.com/api/v2", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body,
signal: AbortSignal.timeout(20_000)
});
const data = await response.json();
Review the current service catalog before placing orders. New users can create an account.
Order-status responses use the normalized labels below. A status reports the panel's current record; it is not a delivery-time guarantee.
| Status | Meaning |
|---|---|
Active | A scheduled parent order is active. |
Pending | The order is recorded and waiting for further processing. |
Processing | The order is being processed. |
In progress | Delivery has started but is not complete. |
Completed | The provider reported the order as complete. |
Partial | Only part of the requested quantity was delivered; applicable balance handling is reflected by the order. |
Canceled | The order was canceled. |
Refunded | An applicable amount was returned to panel balance. |
Business and validation failures return JSON in the form {"error":"message"}. Common causes are an invalid key or action, missing parameters, an unavailable service, quantity outside its limits, insufficient balance, or an unsupported order action. Only rate limiting has a dedicated HTTP response documented here: HTTP 429 with Retry-After and X-RateLimit-* headers.
| Parameter | Description |
|---|---|
| key | Your API key |
| action | add |
| service | Service ID |
| link | Link to page |
| quantity | Needed quantity |
| runs (optional) | Runs to deliver |
| interval (optional) | Interval in minutes |
| Parameter | Description |
|---|---|
| key | Your API key |
| action | add |
| service | Service ID |
| link | Link to page |
| Parameter | Description |
|---|---|
| key | Your API key |
| action | add |
| service | Service ID |
| link | Link to page |
| comments | Comments list separated by \r\n or \n |
| Parameter | Description |
|---|---|
| key | Your API key |
| action | add |
| service | Service ID |
| link | Link to page |
| quantity | Needed quantity |
| usernames | Usernames list separated by \r\n or \n |
| hashtags | Hashtags list separated by \r\n or \n |
| Parameter | Description |
|---|---|
| key | Your API key |
| action | add |
| service | Service ID |
| link | Link to page |
| usernames | Usernames list separated by \r\n or \n |
| Parameter | Description |
|---|---|
| key | Your API key |
| action | add |
| service | Service ID |
| link | Link to page |
| quantity | Needed quantity |
| hashtag | Hashtag to scrape usernames from |
| Parameter | Description |
|---|---|
| key | Your API key |
| action | add |
| service | Service ID |
| link | Link to page |
| quantity | Needed quantity |
| username | URL to scrape followers from |
| Parameter | Description |
|---|---|
| key | Your API key |
| action | add |
| service | Service ID |
| link | Link to page |
| comments | Comments list separated by \r\n or \n |
| Parameter | Description |
|---|---|
| key | Your API key |
| action | add |
| service | Service ID |
| link | Link to page |
| Parameter | Description |
|---|---|
| key | Your API key |
| action | add |
| service | Service ID |
| link | Link to page |
| quantity | Needed quantity |
| username | Username of the comment owner |
| Parameter | Description |
|---|---|
| key | Your API key |
| action | add |
| service | Service ID |
| username | Username |
| min | Quantity min |
| max | Quantity max |
| delay | Delay in minutes. Possible values: 0, 5, 10, 15, 20, 30, 40, 50, 60, 90, 120, 150, 180, 210, 240, 270, 300, 360, 420, 480, 540, 600 |
| expiry (optional) | Expiry date. Format d/m/Y |
{
"order": 32
}
| Parameter | Description |
|---|---|
| key | Your API key |
| action | status |
| order | Order ID |
{
"charge": "0.0360",
"start_count": "0",
"status": "Pending",
"remains": "0",
"currency": "USD"
}
| Parameter | Description |
|---|---|
| key | Your API key |
| action | status |
| orders | Order IDs separated by comma (array data) |
{
"12": {
"charge": "1.2600",
"start_count": "0",
"status": "Processing",
"remains": "0",
"currency": "USD"
},
"2": {
"error": "Incorrect order ID"
},
"13": {
"charge": "0.6300",
"start_count": "0",
"status": "Pending",
"remains": "0",
"currency": "USD"
}
}
| Parameter | Description |
|---|---|
| key | Your API key |
| action | services |
[
{
"service": 5,
"name": "Instagram Followers",
"type": "Default",
"category": "Instagram - Followers",
"rate": "1.0200",
"min": "500",
"max": "10000",
"dripfeed": true,
"refill": true,
"cancel": false
},
{
"service": 9,
"name": "Instagram Likes",
"type": "Default",
"category": "Instagram - Likes",
"rate": "0.0400",
"min": "50",
"max": "10000",
"dripfeed": false,
"refill": false,
"cancel": true
}
]
| Parameter | Description |
|---|---|
| key | Your API key |
| action | balance |
{
"balance": "-10.0000",
"currency": "USD",
"available_balance": "40.0000",
"debt_balance": "25.0000",
"credit_limit": "50.0000",
"credit_used": "10.0000",
"credit_remaining": "40.0000"
}
| Parameter | Description |
|---|---|
| key | Your API key |
| action | cancel |
| order | Order ID |
{ "cancel": 1 }
Pass a comma-separated list of up to 100 IDs via orders instead of order. Overflow is silently truncated.
| Parameter | Description |
|---|---|
| key | Your API key |
| action | cancel |
| orders | Order IDs separated by comma (array data) |
[
{ "order": 12345, "cancel": 1 },
{ "order": 12346, "cancel": { "error": "Do not allow cancel this order" } },
{ "order": 12347, "cancel": { "error": "Incorrect order ID" } }
]
refill return an error; submit an order-review support ticket
with the relevant order ID instead.
| Parameter | Description |
|---|---|
| key | Your API key |
| action | userinfo |
{
"username": "janedoe",
"balance": "42.5000",
"currency": "USD",
"available_balance": "92.5000",
"debt_balance": "10.0000",
"credit_limit": "50.0000",
"credit_used": "0.0000",
"credit_remaining": "50.0000",
"status": "active",
"created_at": "2025-01-15"
}
Response is a strict whitelist. Sensitive fields (password hash, API key, 2FA, reset token, IP history) are never returned.
Note: this endpoint is currently disabled. While disabled, callers receive {"error": "This endpoint is not enabled. Contact support."}. Ask the panel admin to enable it under Settings → API v2 settings.
| Parameter | Description |
|---|---|
| key | Your API key |
| action | orders |
| page | 1 |
| limit | 20 |
page is 1-indexed (default 1). limit defaults to 20 and is hard-capped at 100; values above are silently clamped.
{
"orders": [
{
"order": 12345,
"service": 42,
"link": "https://instagram.com/someuser",
"quantity": 500,
"charge": "0.7500",
"currency": "USD",
"status": "Completed",
"created_at": "2025-03-01 14:22:00"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 137,
"total_pages": 7
}
}