Free SMM panel API for resellers
Every SmmFree account includes API access at no extra cost. It follows the standard SMM panel API format, so existing reseller scripts, child panels and store plugins work without custom work. Place orders, read live status and check your wallet balance from your own system.
One API key
Generated in Dashboard, Settings.
Standard format
POST form data, JSON response.
Rate limited
Stable under heavy polling.
Endpoint and authentication
All requests are HTTP POST with form encoded parameters. Your API key authenticates every call, so keep it server side and never expose it in browser code.
POST https://smmfree.com/api/v2
Content-Type: application/x-www-form-urlencoded
key=YOUR_API_KEY&action=balanceAvailable actions
| Action | Parameters | What it does |
|---|---|---|
| services | key, action=services | Returns the full service catalogue with service ID, name, rate per 1000, minimum and maximum. |
| add | key, action=add, service, link, quantity | Places a new order and returns the order ID. |
| status | key, action=status, order | Returns charge, start count, status and remains for one order. |
| balance | key, action=balance | Returns the current wallet balance and its currency. |
Place an order
key=YOUR_API_KEY
action=add
service=1435
link=https://instagram.com/yourprofile
quantity=1000
// response
{ "order": 84291 }Check order status
key=YOUR_API_KEY
action=status
order=84291
// response
{
"charge": "42.50",
"start_count": "1284",
"status": "In progress",
"remains": "310",
"currency": "INR"
}Code examples
Copy one of these, swap in your key and a service ID, and you have a working integration in under five minutes. Every language sends the same form encoded body.
PHP
$ch = curl_init('https://smmfree.com/api/v2');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'key' => 'YOUR_API_KEY',
'action' => 'add',
'service' => 1435,
'link' => 'https://instagram.com/yourprofile',
'quantity' => 1000,
]));
$response = json_decode(curl_exec($ch), true);
curl_close($ch);Node.js
const body = new URLSearchParams({
key: process.env.SMMFREE_API_KEY,
action: "add",
service: "1435",
link: "https://instagram.com/yourprofile",
quantity: "1000",
});
const res = await fetch("https://smmfree.com/api/v2", { method: "POST", body });
const data = await res.json();
if (data.error) throw new Error(data.error);Python
import requests
data = {
"key": "YOUR_API_KEY",
"action": "add",
"service": 1435,
"link": "https://instagram.com/yourprofile",
"quantity": 1000,
}
result = requests.post("https://smmfree.com/api/v2", data=data).json()
print(result)Error responses
Errors come back with HTTP 200 and an error field, which is how the standard SMM panel API format works. Check that field before you treat an order as created.
| Error | What it means |
|---|---|
| Incorrect request | The action parameter is missing or misspelled. |
| Invalid API key | The key is wrong, was regenerated, or is sent in the URL instead of the body. |
| Not enough funds | Wallet balance is lower than the order charge. Top up and retry. |
| Incorrect service ID | That service no longer exists or is inactive. Refresh the services list. |
| Incorrect quantity | Quantity is below the minimum or above the maximum for that service. |
| Incorrect link | The link is private, malformed or does not match the service type. |
| Too many requests | Rate limit hit. Back off and retry after a few seconds. |
Rate limits
Requests are limited per account so heavy pollers cannot slow the panel for everyone. As a rule, keep order status polling to once a minute per active order, cache the services list for at least an hour, and batch new orders rather than firing them in parallel bursts. If you hit the limit the response says so and a short back off clears it.
Good practice
- Cache the services list rather than fetching it on every page load.
- Poll order status about once a minute per active order, not in a loop.
- Store the service ID you tested, because catalogue positions change but IDs do not.
- Handle the error field on every response before assuming an order was created.
Get your API key in a minute
Create an account, add funds with UPI, Paytm or PhonePe, and your key is waiting in Dashboard, Settings.
Create a free accountSMM panel API FAQs
Is the SmmFree SMM panel API free to use?
Yes. API access is included with every SmmFree account at no extra cost. You only pay for the orders you place, at the same wholesale rate shown on the service cards.
Where do I find my SMM panel API key?
Sign in and open Dashboard, then Settings. Your API key is shown there and can be regenerated at any time if you think it has leaked.
What is the API endpoint URL?
All requests go to https://smmfree.com/api/v2 as HTTP POST with form encoded parameters, which matches the standard SMM panel API format used by most reseller scripts.
Can I connect a child panel or my own store?
Yes. The add order, order status, services and balance actions are enough to run a child panel, a WooCommerce store or a custom checkout on top of SmmFree.
What happens if an order fails through the API?
The response returns an error field explaining the reason, and no balance is deducted for a rejected order. Partial deliveries are reported through the order status action with the remaining quantity.
Is there a rate limit on the API?
Yes, requests are rate limited per account to keep the panel stable. Poll order status at sensible intervals such as once per minute per order rather than in a tight loop.
Does the free SMM panel API support refill and cancel?
Not yet. The services response tells you which services are refill or cancel enabled, but the requests themselves are handled by support: open a ticket with the order ID and the team processes it on the same day.
Which programming language works with the SMM panel API?
Any language that can send an HTTP POST. The examples below cover PHP, Node.js and Python, and the same form encoded body works from cURL, Java, Go or a no-code tool like Make or Zapier.
How do I add funds before ordering through the API?
Deposits stay manual for security. Top up the wallet from the dashboard over UPI, Paytm or PhonePe, then the API spends that balance. Check the remaining balance any time with action=balance.
Can I use the API to run a child panel?
Yes. The services, add, status and balance actions cover everything a child panel needs. Import our catalogue, apply your own markup, and forward each customer order to SmmFree with your key.