On this page
Quick start Authentication Action: services Action: balance Action: add (place order) Action: status Action: orders (multi-status) Action: cancel Action: refill Action: refill_status Errors & rate limitsQuick start
Every call is a single POST to /api/v2 with form-urlencoded (or JSON) body. The body must include key (your API key) and action (what you want to do). All responses are JSON.
Test it in 30 seconds with curl:
curl -X POST https://smmpremium.in/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=balance"
# → {"balance":"250.00","currency":"INR"}
Authentication
Each customer can generate one API key from Profile → Reseller API. Orders placed via that key debit your wallet, not the store's. Refills, status checks, and cancellations all scope to the orders you placed via the API — you cannot see other customers' orders.
services — list catalog
Returns every enabled service on the panel with min/max quantity, rate per 1,000, and which features (refill, dripfeed) are supported.
curl -X POST https://smmpremium.in/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services"
# → [
# {
# "service": 1234,
# "name": "Instagram Followers — Real & Active",
# "type": "Default",
# "category": "Instagram Followers",
# "rate": "1.2000",
# "min": 100,
# "max": 500000,
# "dripfeed": true,
# "refill": true,
# "cancel": true
# },
# ...
# ]
balance — wallet snapshot
Returns your wallet balance and its currency. INR everywhere on smmpremium.in.
curl -X POST https://smmpremium.in/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=balance"
# → {"balance":"1240.50","currency":"INR"}
add — place an order
Creates an order, debits your wallet, and forwards it to the upstream provider in the background.
| Field | Type | Description |
|---|---|---|
| key | string required | Your API key. |
| action | string required | Must be add. |
| service | integer required | Service ID from the services action. |
| link | string required | Target URL (Instagram profile, YouTube video, etc.) — must start with http(s)://. |
| quantity | integer required | Must be between the service's min and max. |
| runs | integer optional | For dripfeed-enabled services: number of delivery batches. |
| interval | integer optional | For dripfeed: minutes between batches. |
curl -X POST https://smmpremium.in/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=add" \
-d "service=1234" \
-d "link=https://instagram.com/yourprofile" \
-d "quantity=500"
# → {"order":"K7M2X9"}
status — one order
curl -X POST https://smmpremium.in/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=status" \
-d "order=K7M2X9"
# → {
# "charge":"6.00",
# "start_count":1240,
# "status":"In progress",
# "remains":"320",
# "currency":"INR"
# }
orders — many orders in one call
Pass a comma-separated list of IDs. Useful for dashboards that refresh dozens of orders at once.
curl -X POST https://smmpremium.in/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=orders" \
-d "orders=K7M2X9,K7M2Y0,K7M2Z1"
# → {
# "K7M2X9":{"charge":"6.00","start_count":1240,"status":"Completed","remains":"0","currency":"INR"},
# "K7M2Y0":{"charge":"1.20","start_count":52,"status":"In progress","remains":"48","currency":"INR"},
# "K7M2Z1":{"charge":"3.00","status":"Pending","remains":"250","currency":"INR"}
# }
cancel — cancel order(s)
Refunds your wallet for any order not yet completed/canceled/refunded. Best-effort — the upstream provider may have already started, in which case the cancel is rejected.
curl -X POST https://smmpremium.in/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=cancel" \
-d "orders=K7M2X9"
# → {"order":"K7M2X9","cancel":{"status":"success"}}
refill — request a refill
For services with refill: true. Use after an order has completed but the count has dropped within the warranty window.
curl -X POST https://smmpremium.in/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=refill" \
-d "order=K7M2X9"
# → {"refill":"R88421"}
refill_status — poll a refill
curl -X POST https://smmpremium.in/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=refill_status" \
-d "refill=R88421"
# → {"status":"Completed"}
Errors & rate limits
| Code | Meaning | What to do |
|---|---|---|
| 400 | Bad request | Missing or malformed field. Read the error string. |
| 401 | Invalid API key | Key is wrong, revoked, or was rotated. Refresh from Profile. |
| 402 | Insufficient balance | Top up your wallet from the dashboard. |
| 403 | Account suspended | Contact support. |
| 404 | Not found | Order, service, or refill ID doesn't belong to your key. |
| 429 | Rate limited | Max 100 requests/min per key. Wait Retry-After seconds. |
| 500 | Server error | Retry after a few seconds. Persistent — open a support ticket. |
JAP status mapping
The status field returned by status/orders uses the standard JAP/Perfectpanel vocabulary so existing reseller scripts just work:
| Value | Means |
|---|---|
| Pending | Order accepted, awaiting provider acceptance. |
| In progress | Provider has started delivery. |
| Processing | Same as in progress (used by some providers). |
| Completed | All quantity delivered. |
| Partial | Provider could not finish, remaining was refunded. |
| Canceled | Canceled by you or refused by provider. |
Questions? Open a ticket from Support or ping us on WhatsApp.