Followir exposes a simple HTTP API that follows the common SMM Panel API v2 format, so most reseller panels and scripts work with it as they are. All responses are JSON.
Getting started
- Create an account and add funds.
- Open the API page in your account and generate your API key. Keep it private.
- Optional: add the IP addresses allowed to use your key (leave empty to allow any IP).
Endpoint
| URL | https://followir.com/api/v2 |
|---|---|
| Method | POST (GET also works) |
| Format | Form parameters in, JSON out |
| Required in every call | key (your API key) and action |
Actions
| action | Parameters | What it does |
|---|---|---|
services | key | List all available services with prices and limits |
add | key, service, link, quantity (runs, interval for drip-feed) | Place a new order |
status | key, order or orders (comma separated) | Order status, one or many |
cancel | key, order or orders (comma separated) | Cancel orders on services that allow it |
refill | key, order or orders (comma separated) | Request a refill on eligible orders |
refill_status | key, refill | Status of a refill request |
balance | key | Your current balance and currency |
services
curl -X POST "https://followir.com/api/v2" -d "key=YOUR_API_KEY" -d "action=services"
[
{
"service": "1",
"name": "Instagram Followers",
"type": "Default",
"category": "Instagram",
"rate": "0.9000",
"min": "100",
"max": "100000",
"refill": true,
"cancel": false
}
]
rate is the price per 1000. refill and cancel tell you whether the service supports them.
add
curl -X POST "https://followir.com/api/v2" \
-d "key=YOUR_API_KEY" -d "action=add" \
-d "service=1" -d "link=https://instagram.com/username" -d "quantity=1000"
{ "order": 850758 }
For drip-feed services you can also send runs (at least 2) and interval (minutes, 1 to 1440). They are ignored on other services.
status
curl -X POST "https://followir.com/api/v2" -d "key=YOUR_API_KEY" -d "action=status" -d "order=850758"
{
"charge": "0.9000",
"start_count": "3572",
"status": "In progress",
"remains": "400",
"currency": "USD"
}
Several orders at once: send orders=850758,850759. The reply is an object keyed by order number. Possible status values: Pending, In progress, Completed, Partial, Canceled, Refunded.
cancel
curl -X POST "https://followir.com/api/v2" -d "key=YOUR_API_KEY" -d "action=cancel" -d "order=850758"
{ "status": "Success" }
Some cancellations wait for confirmation, and then the reply shows "status": "Pending". With several orders you get a list of { "order": ..., "cancel": ... } items.
refill and refill_status
curl -X POST "https://followir.com/api/v2" -d "key=YOUR_API_KEY" -d "action=refill" -d "order=850758"
{ "refill": "12" }
curl -X POST "https://followir.com/api/v2" -d "key=YOUR_API_KEY" -d "action=refill_status" -d "refill=12"
{ "refill": "12", "status": "Pending" }
balance
curl -X POST "https://followir.com/api/v2" -d "key=YOUR_API_KEY" -d "action=balance"
{ "balance": "25.50", "currency": "USD" }
Errors
When something goes wrong the reply has an error field:
{ "error": "Not enough funds" }
| Message | Meaning |
|---|---|
API key is required | The key parameter is missing |
Action is required / Incorrect action | Missing or unknown action |
Invalid API key | The key is wrong, disabled, or your IP is not on the whitelist |
Incorrect service ID / Service not found | The service number does not exist or is disabled |
Link is required / Incorrect quantity | Missing link, or quantity is not a valid number |
Quantity must be between ... | Outside the service minimum and maximum |
Not enough funds | Your balance is too low for this order |
Order not found | The order does not exist on your account |
Cancel is not available for this service | This service cannot be cancelled |
Code examples
PHP
$ch = curl_init("https://followir.com/api/v2");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'key' => 'YOUR_API_KEY',
'action' => 'add',
'service' => 1,
'link' => 'https://instagram.com/username',
'quantity' => 1000,
]));
$response = json_decode(curl_exec($ch), true);
print_r($response);
Python
import requests
r = requests.post("https://followir.com/api/v2", data={
"key": "YOUR_API_KEY",
"action": "status",
"order": 850758,
})
print(r.json())
Good to know
- Order numbers are the same ones you see on your orders page.
- Placing many orders for the same link at once may be rejected until the first one finishes.
- Every call is logged on your account. If you think your key leaked, regenerate it from the API page.
- Need help integrating? Open a ticket on the support page.
