Reseller API
One endpoint, four actions, the same format every SMM panel already speaks. If your panel software can add a provider, it can add us: paste the URL and your key, and our services appear in your catalogue.
Ready to sell?
Open your reseller account and get your key right now. No approval to wait for.
Endpoint
All requests are POST, form-encoded or JSON.
https://papail.com/api/v2
What you are buying
Not a batch of followers. A managed subscription: you send one Instagram username, and from that moment our system watches the account, detects every new post on its own, and delivers followers, likes, views and comments across the whole period. Nothing to schedule, nothing to re-order, and losses are replaced automatically while the subscription runs.
Quantity and price
The standard formula is kept exactly as you know it:
charge = rate × quantity / 1000
quantity is a number of months (min 1, max 12), and
rate is the monthly price multiplied by 1000 so the formula
lands on the right total. Order quantity=1 and you are charged
one month; order quantity=3 and you are charged three. The
rate figure looks large on its own — the total it produces is
the real number.
Actions
services — your catalogue and your prices
key=YOUR_KEY
action=services
Returns the list of plans with your own discount already applied.
[
{
"service": 1,
"name": "AI Instagram Growth - Starter | 6K followers + 6K likes + 15K views + 150 comments | 1 unit = 30 days",
"type": "Default",
"category": "AI Instagram Growth",
"rate": "25930.00",
"min": "1",
"max": "12",
"refill": false,
"cancel": false,
"dripfeed": false,
"currency": "USD"
}
]
add — place an order
key=YOUR_KEY
action=add
service=1
link=https://instagram.com/username
quantity=1
link accepts a full profile URL, @username or just
username. It must be a public profile — on a
private account nothing can be seen, so nothing can be delivered. Post and
reel URLs are rejected.
{"order": 1041}
Retries are safe. If your script times out and sends the same order again within 90 seconds, you get the same order number back. You are never charged twice for one sale.
status — where an order stands
key=YOUR_KEY
action=status
order=1041
{
"charge": "25.93",
"start_count": "0",
"status": "In progress",
"remains": "0",
"currency": "USD",
"username": "username",
"months": 1,
"expires_at": "2026-11-04T22:10:00+00:00"
}
Up to 100 at once with orders=1041,1042,1043. Statuses are
Pending, In progress, Completed,
Canceled, Refund.
balance — what is left
key=YOUR_KEY
action=balance
{"balance": "74.07", "currency": "USD"}
Errors
Errors come back with HTTP 200 and the reason in the body,
the way every panel API does it — so your software shows the real message
instead of a generic failure. The true HTTP code travels in the
X-Error-Code header if you want it.
{"error": "Not enough balance. Top up your account and try again."}
Rate limit: 120 requests per minute per key.
Good to know
Balance is prepaid
Orders are charged the moment they are accepted. There is no credit and no overdraft: an order beyond your balance is refused, not queued.
No refill to request
Losses are detected and replaced automatically for as long as the
subscription runs. There is nothing to ask for, which is why
refill is not offered.
You own the customer
Your customers have no account here and never hear from us. You set your own prices, you bill them, you answer them. We answer you.
Keep your key secret
Anyone holding it can spend your balance. We store only a fingerprint of it, so we cannot show it to you again — ask for a new one and the old one stops working.