API documentation

One endpoint, form-encoded POST requests, JSON answers. Everything the panel can do with an order – place it, check it, refill, cancel, speed up – is here, plus the service list and your balance.

Overview

HTTP method
POST (application/x-www-form-urlencoded)
Response format
JSON
API URL
https://leoprovider.com/api/v1
Treat the key like a password – anyone who has it can spend your balance. If it leaks, generate a new one in Your account → API key; the old one stops working at once.
Good to know
  • Send the parameters as form fields (key, action, …); GET also works for testing, but use POST in production.
  • IDs are the same numbers you see in the panel – order IDs, service IDs, refill IDs – and the service list is the one from Services, with your own rates.
  • Orders placed through the API are marked with a </> icon in your Orders list; everything else (refill, cancel, speed up) behaves exactly like the buttons in the panel.

Service list

action=services

All services you can order, with your rate per 1000, min / max, and what each one supports. A scheduled price change shows as next_price / next_price_at.

ParameterDescription
key requiredYour API key
action requiredservices
Example request
curl -X POST https://leoprovider.com/api/v1 \
  -d "key=YOUR_API_KEY" \
  -d "action=services"
Example response
[
  {
    "service": "5",
    "name": "Instagram Followers – Real | 30 days refill",
    "category": "Instagram Followers",
    "rate": "1.02",
    "min": "100",
    "max": "50000",
    "type": "default",
    "desc": "Link: profile URL or username",
    "dripfeed": 1,
    "refill": 1,
    "cancel": 1,
    "speed": 0,
    "next_price": null,
    "next_price_at": null
  },
  {
    "service": "12",
    "name": "TikTok Views – Fast",
    "category": "TikTok Views",
    "rate": "0.035",
    "min": "1000",
    "max": "1000000",
    "type": "default",
    "desc": "Link: video URL",
    "dripfeed": 0,
    "refill": 0,
    "cancel": 1,
    "speed": 1
  }
]

Place an order

action=add

The answer is the new order ID. The charge is taken from your balance at once; if something is wrong (bad link, quantity outside min / max, not enough balance) nothing is charged and the answer is an error.

ParameterDescription
key requiredYour API key
action requiredadd
service requiredService ID (from the service list)
link requiredThe link to deliver to – profile, post or video URL as the service describes
quantity requiredHow much to deliver, within the service min / max
speed optionalDelivery speed per hour – only for services with speed: 1 (custom speed); capped at the service maximum. Leave it out for the normal speed.
Example request
curl -X POST https://leoprovider.com/api/v1 \
  -d "key=YOUR_API_KEY" \
  -d "action=add" \
  -d "service=5" \
  -d "link=https://instagram.com/username" \
  -d "quantity=1000"
Example response
{
  "status": "success",
  "order": 40321
}

Order status

action=status

Status values: Pending, Processing, In progress, Completed, Partial, Canceled, Refunded. remains is what is still to be delivered; start_count the count before delivery began.

ParameterDescription
key requiredYour API key
action requiredstatus
order requiredOrder ID
Example request
curl -X POST https://leoprovider.com/api/v1 \
  -d "key=YOUR_API_KEY" \
  -d "action=status" \
  -d "order=40321"
Example response
{
  "order": "40321",
  "status": "In progress",
  "charge": "1.0200",
  "start_count": "12540",
  "remains": "610"
}

Multiple orders

action=status

Up to 100 orders per request – the answer is keyed by order ID; an unknown ID gets an error string instead of an object.

ParameterDescription
key requiredYour API key
action requiredstatus
orders requiredOrder IDs separated by comma (array data)
Example request
curl -X POST https://leoprovider.com/api/v1 \
  -d "key=YOUR_API_KEY" \
  -d "action=status" \
  -d "orders=40321,40322,999999"
Example response
{
  "40321": {
    "order": "40321",
    "status": "Completed",
    "charge": "1.0200",
    "start_count": "12540",
    "remains": "0"
  },
  "40322": {
    "order": "40322",
    "status": "Pending",
    "charge": "2.0400",
    "start_count": "0",
    "remains": "2000"
  },
  "999999": "Incorrect order ID"
}

Refill

action=refill

Asks for a refill of a completed order on a service with refill: 1, inside the service's refill period. The answer is a refill ID to follow with refill_status. Several orders at once: orders=1,2,3 – one result per order.

ParameterDescription
key requiredYour API key
action requiredrefill
order requiredOrder ID – or orders (comma-separated list)
Example request
curl -X POST https://leoprovider.com/api/v1 \
  -d "key=YOUR_API_KEY" \
  -d "action=refill" \
  -d "order=40321"
Example response
{
  "refill": "1204"
}

// orders=40321,40300
[
  { "order": 40321, "refill": "1204" },
  { "order": 40300, "error": "Refill period expired (30 days)" }
]

Refill status

action=refill_status

Status values: Pending, In progress, Completed, Partial, Rejected, Canceled, Error. Several refills: refills=1,2.

ParameterDescription
key requiredYour API key
action requiredrefill_status
refill requiredRefill ID – or refills (comma-separated list)
Example request
curl -X POST https://leoprovider.com/api/v1 \
  -d "key=YOUR_API_KEY" \
  -d "action=refill_status" \
  -d "refill=1204"
Example response
{
  "status": "Completed"
}

Cancel

action=cancel

Sends a cancel request for a running order on a service with cancel: 1. The delivered part is kept and charged; the rest is refunded to your balance once the provider confirms (the order then shows as Partial or Canceled).

ParameterDescription
key requiredYour API key
action requiredcancel
order requiredOrder ID
Example request
curl -X POST https://leoprovider.com/api/v1 \
  -d "key=YOUR_API_KEY" \
  -d "action=cancel" \
  -d "order=40322"
Example response
{
  "status": "success",
  "order": "40322",
  "cancel": "requested"
}

Speed up

action=speed_up

Asks the provider to prioritise a pending or in-progress order (services that support it). Repeating the request is harmless – the answer says already.

ParameterDescription
key requiredYour API key
action requiredspeed_up
order requiredOrder ID – or orders (comma-separated list)
Example request
curl -X POST https://leoprovider.com/api/v1 \
  -d "key=YOUR_API_KEY" \
  -d "action=speed_up" \
  -d "order=40322"
Example response
{
  "order": 40322,
  "speed_up": "requested"
}

Balance

action=balance
ParameterDescription
key requiredYour API key
action requiredbalance
Example request
curl -X POST https://leoprovider.com/api/v1 \
  -d "key=YOUR_API_KEY" \
  -d "action=balance"
Example response
{
  "status": "success",
  "balance": "1797.80",
  "currency": "USD"
}

Errors

Every error has the same shape – an `error` key with a readable message and HTTP 200, so check for that key before reading the rest of the answer.

{
  "error": "Not enough funds on balance"
}
API is disabled for this user or user not found…Wrong or missing key, or the account is inactive.
This action is invalidUnknown action.
Service ID does not existsThe service is unknown or not available to you.
Bad Link · Quantity is required · Min/Max …The order was not placed: fix the parameter and send it again.
Not enough funds on balanceTop up in Add funds; nothing was charged.
Incorrect order ID · Incorrect refill IDThe ID does not exist or belongs to another account.
This services does not support Dripfeed feature!Leave runs / interval out for this service.