SMM Panel API Guide

May 20, 2026  ·  717 views

If you run a reselling business, an agency, or a growth tool, placing orders by hand does not scale. The SMM panel API lets your own website, Telegram bot or app send orders, check status, read your balance and pull the live service list automatically — no manual clicking required. This guide is a practical, developer-friendly walkthrough of the standard API v2 that most modern panels (including EthicalSMM) implement, complete with real request examples in cURL, PHP and Python.

We will cover authentication, the four core endpoints (services, add, status, balance), the extra actions for refills and multi-status, error handling, and a clean integration checklist. If you are still deciding which platform to build on, our overview of the best SMM panel in India and our how to choose an SMM panel guide will help you pick a stable, well-documented API before you write a line of code.

How the SMM Panel API v2 works

The v2 API is deliberately simple: a single HTTP POST endpoint that accepts form-encoded parameters and returns JSON. Every request carries your secret API key plus an action that tells the panel what to do. There are no complex OAuth flows — the API key is your credential, so keep it server-side and never expose it in front-end code.

Base URL and authentication

All calls go to one endpoint, typically https://ethicalsmm.in/api/v2. You will find your personal key on your account's API page after you create a free account. Every request must include:

  • key — your private API key (treat it like a password).
  • action — one of services, add, status, balance, refill, and so on.
  • Additional parameters that depend on the action (for example service, link, quantity).
Expert tip: Never ship your API key in browser JavaScript or a mobile app bundle. Proxy every call through your own backend so the key stays on your server. If a key ever leaks, regenerate it immediately from your dashboard.

The core endpoints at a glance

Four actions cover 90% of what any integration needs. Here is the map before we dive into examples.

ActionPurposeKey parametersReturns
servicesList all services, prices, min/maxkey, actionArray of service objects
addPlace a new orderkey, action, service, link, quantityorder ID
statusCheck one order's progresskey, action, ordercharge, start count, status, remains
balanceRead your wallet balancekey, actionbalance, currency

1. Fetch the service list

Start here. The services action returns every service you can sell, with its ID, category, rate (per 1,000), minimum and maximum. You will cache this locally and refresh it periodically so your storefront always shows accurate prices.

curl -X POST "https://ethicalsmm.in/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=services"

A typical response looks like this:

[
  {
    "service": 101,
    "name": "Instagram Followers - Real & Non-Drop",
    "type": "Default",
    "category": "Instagram Followers",
    "rate": "18.00",
    "min": "100",
    "max": "100000",
    "refill": true,
    "cancel": true
  },
  {
    "service": 205,
    "name": "YouTube Views - High Retention",
    "type": "Default",
    "category": "YouTube",
    "rate": "40.00",
    "min": "500",
    "max": "1000000",
    "refill": false,
    "cancel": true
  }
]

The rate is your wholesale price per 1,000 units. That is the number you mark up when reselling — the exact logic we break down in the reseller SMM panel guide.

2. Place an order with the add action

Once you know a service ID, placing an order is a single call. Send the service ID, the target link, and the quantity.

# PHP example using cURL
<?php
$post = [
  'key'      => 'YOUR_API_KEY',
  'action'   => 'add',
  'service'  => 101,
  'link'     => 'https://instagram.com/yourhandle',
  'quantity' => 1000,
];

$ch = curl_init('https://ethicalsmm.in/api/v2');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
echo "Order ID: " . $data['order'];
?>

The panel replies with a new order ID that you store against your customer's order:

{ "order": 84421 }

Services that need extra parameters

Some service types accept additional fields. A drip-feed order uses runs and interval; a comments service uses comments (newline-separated); a poll service uses answer_number. Always read the service type from the services list so you know which parameters to send.

# Drip-feed order in Python (requests)
import requests

payload = {
    "key": "YOUR_API_KEY",
    "action": "add",
    "service": 101,
    "link": "https://instagram.com/yourhandle",
    "quantity": 1000,
    "runs": 10,        # deliver in 10 batches
    "interval": 60     # 60 minutes between batches
}

r = requests.post("https://ethicalsmm.in/api/v2", data=payload)
print(r.json())

Drip-feed is essential for natural-looking growth at scale — we cover the strategy in depth in our bulk social media services guide.

3. Check order status

After placing an order, poll the status action to track progress. It returns the charge, the starting count, the current status, and how many units remain.

curl -X POST "https://ethicalsmm.in/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=status" \
  -d "order=84421"
{
  "charge": "18.00",
  "start_count": "5230",
  "status": "In progress",
  "remains": "620",
  "currency": "INR"
}

Common status values are Pending, In progress, Completed, Partial, Processing and Canceled. For efficiency, you can check many orders at once by sending a comma-separated list of IDs with the orders parameter (a multi-status action), which keeps you well within rate limits.

4. Read your account balance

Before you place high-volume orders, confirm you have funds. The balance action is a one-liner.

curl -X POST "https://ethicalsmm.in/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=balance"
{ "balance": "1540.75", "currency": "INR" }

Because pricing is in ₹ (INR) and top-ups accept UPI, cards and crypto, keeping a working balance funded is effortless — a big reason resellers favour a cheap, well-stocked panel for their automation.

Refill and cancel actions

For services that support it, you can request a refill on a dropped order or cancel one that has not started. This lets you build a self-service guarantee into your own storefront.

# Request a refill
curl -X POST "https://ethicalsmm.in/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=refill" \
  -d "order=84421"

Step-by-step: integrating the API into your site

Here is the clean path from zero to a live, automated storefront.

  1. Get your key. Register, fund a small test balance, and copy the API key from your dashboard.
  2. Sync the service list. Call services on a schedule (for example hourly via cron) and store the results in your database.
  3. Apply your markup. Add your reseller margin on top of each rate before displaying prices to customers.
  4. Wire the checkout. When a customer pays, your backend calls add, stores the returned order ID, and links it to the customer.
  5. Poll for status. Run a background job that calls the multi-status endpoint and updates each order's progress.
  6. Handle edge cases. Catch error responses, validate minimum and maximum quantities, and confirm the balance before ordering.
  7. Go live. Test end to end with a real low-cost order, then open your storefront.

Error handling and best practices

A robust integration expects failure. When something is wrong, the API returns an error object instead of the usual payload:

{ "error": "Neworder quantity is not valid" }
  • Always check for an error key before assuming success.
  • Validate quantity against the service min and max before calling add.
  • Store the returned order ID immediately so a payment can never be lost even if a later step fails.
  • Respect rate limits by batching status checks with the multi-status action.
  • Cache the service list rather than calling services on every page load.

Pros and cons of building on an SMM API

ProsCons
Fully automated, hands-free fulfilmentRequires basic backend development
Scales to thousands of orders a dayYou must handle errors and edge cases yourself
Instant delivery keeps customers happyAPI key security is your responsibility
Same JSON format across most panels — portable codeService IDs differ per panel, so mappings need maintenance
Expert tip: Wrap the whole order flow in a database transaction and only mark the customer's order "placed" after the panel returns a valid order ID. This single habit prevents the classic bug where a payment succeeds but the provider order silently vanishes.

Once your automation is live, the same code powers growth across every network — Instagram, YouTube, TikTok and more. If you want to understand the bigger picture of what these platforms enable, read our overview of the social media marketing panel, then browse live prices on our services page.

Frequently Asked Questions

What is an SMM panel API?

It is an interface that lets your own software place and manage social media orders programmatically. Instead of clicking through a dashboard, your website or bot sends HTTP requests to add orders, check status, read your balance and pull the service list automatically.

Is the SMM Panel API v2 the same on every panel?

The core structure — a single POST endpoint, an API key, and actions like add, status, balance and services — is standardised across most modern panels, so code is largely portable. Service IDs and a few optional parameters differ per panel, so you maintain a mapping for each provider.

Which programming language should I use?

Any language that can send an HTTP POST works: PHP, Python, Node.js, Java, Go and more. The API returns simple JSON, so you only need an HTTP client and a JSON parser, both of which every modern language provides.

How do I keep my API key secure?

Store it server-side only and never expose it in browser code or a mobile app. Proxy all calls through your own backend, and regenerate the key immediately from your dashboard if you suspect it has leaked.

Can I place bulk and drip-feed orders through the API?

Yes. The add action accepts large quantities for mass orders, and drip-feed services accept runs and interval parameters to spread delivery over time for a more natural growth pattern.

What happens if an order fails?

The API returns an object with an error key describing the problem, such as an invalid quantity or insufficient balance. Your integration should check for that key before treating a request as successful and surface a clear message to the customer.

Conclusion: automate your growth with the API

The SMM panel API turns a manual side hustle into a real, scalable business. With just four endpoints — services, add, status and balance — you can build a storefront that sells and fulfils orders around the clock. EthicalSMM ships a full v2 API, instant automatic delivery, cheapest-provider routing, refill support and 24/7 help, so your integration stays fast, cheap and reliable as you grow. Grab your key and start building today.

Get your free EthicalSMM API key

Keep reading

Related articles

Ready to grow?

Create your free account and place your first order in under a minute.

Get started free