User API (Public API v2)

The standard SMM API your customers order through from their own software; byte-compatible with Perfect Panel.

Every panel's customers can order through the standard SMM API v2. The format is identical to the Perfect Panel format the industry uses: existing integrations, reseller tools and child panels connect without changes.

Connection

URL https://<panel-domain>/api/v2
Method POST
Body application/x-www-form-urlencoded
Auth key parameter, the customer finds their key on the panel's Account page
Response Always HTTP 200 with JSON; errors as {"error": "..."}

Regenerating a customer's key invalidates the old one at once. Rate limits apply per key and per IP.

Actions

Every request selects its action with the action parameter.

services: service list

key=...&action=services
[
  { "service": 1042, "name": "Instagram Followers [Real]", "type": "Default", "category": "Instagram", "rate": "45.00", "min": "100", "max": "10000", "refill": true, "cancel": false }
]

rate is per 1,000 units in the panel's currency. For package services rate is the price of the whole package and min/max are 1.

add: place an order

Required fields depend on the service type:

Type Parameters
Default service, link, quantity (+ optional runs, interval for drip-feed)
Package service, link
Custom Comments service, link, comments (one per line)
Comment Likes service, link, quantity, username
Subscriptions service, username, min, max, delay (+ posts, old_posts, expiry)
key=...&action=add&service=1042&link=https://instagram.com/username&quantity=1000
{ "order": 5104 }

With insufficient balance the reply is {"error": "Not enough funds on balance"} and no order is created.

status: order status

key=...&action=status&order=5104
{ "charge": "45.00", "start_count": "1250", "status": "In progress", "remains": "600", "currency": "TRY" }

For several orders use orders=5104,5105,5106 (at most 100); the reply is an object keyed by order number.

Statuses: Pending, In progress, Processing, Completed, Partial, Canceled.

refill: request a refill

key=...&action=refill&order=5104          → { "refill": "17" }
key=...&action=refill&orders=5104,5105    → [ { "order": 5104, "refill": 17 }, { "order": 5105, "refill": { "error": "..." } } ]

refill_status

key=...&action=refill_status&refill=17    → { "status": "Completed" }

cancel: request cancellation

key=...&action=cancel&orders=5104,5105    → [ { "order": 5104, "cancel": 1 }, { "order": 5105, "cancel": { "error": "Cancel not available" } } ]

balance

key=...&action=balance                    → { "balance": "1250.00", "currency": "TRY" }

Error messages

Invalid API key · Incorrect request · Incorrect service ID · Incorrect link · Incorrect quantity · Incorrect username · Incorrect comments · Not enough funds on balance · Incorrect order ID · Too many order IDs · Refill not found · Cancel not available

Notes for panel owners

  • The API page your customers see is ready at /api on your panel, with examples filled in using your domain.
  • Anyone connecting to you as a provider from another panel uses this same API, a reseller adds you as a provider with the URL https://<panel-domain>/api/v2.