Getfollowers.ai API v2

API

Resell every service on this panel from your own site with a single HTTP endpoint.

POSThttps://getfollowers.ai/api/v2

Every response uses HTTP 200 — check the JSON body for an `error` field.

HTTP method
POST
Content type
application/x-www-form-urlencoded
Response format
application/json
Rate limit
120/60s

API key

Generate your personal key on the Account page. Send it as the `key` field on every request.

Get your API key

Rate limit

120 requests per minute per API key, counted in a sliding window. Requests over the limit answer with {"error":"Rate limit exceeded"}. The counter lives in the app process, so a multi-instance deployment must move it to a shared store.

01

Service list

action=services

Returns every service you are allowed to order, with your personal rate already applied (custom rates and account discount included). `rate` is the price per 1000 units, except for Package services where it is the price of the whole package.

Parameters

ParameterTypeRequiredDescription
keystringRequiredYour personal API key. Generate it on the Account page. The account must be active.
actionstringRequiredOne of: services, add, status, refill, refill_status, cancel, balance.

Example request

POST — Service list
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=services"

Example response

200 OK — application/json
[
  {
    "service": 1001,
    "name": "Instagram Followers — Real | Max 100K | 30 Days Refill",
    "type": "Default",
    "category": "Instagram Followers",
    "rate": "1.35000",
    "min": "50",
    "max": "100000",
    "refill": true,
    "cancel": true,
    "dripfeed": true
  },
  {
    "service": 1014,
    "name": "Instagram Custom Comments | Max 5K",
    "type": "Custom Comments",
    "category": "Instagram Comments",
    "rate": "9.80000",
    "min": "5",
    "max": "5000",
    "refill": false,
    "cancel": true,
    "dripfeed": false
  },
  {
    "service": 1052,
    "name": "Instagram Auto Likes Subscription",
    "type": "Subscriptions",
    "category": "Instagram Subscriptions",
    "rate": "2.10000",
    "min": "50",
    "max": "10000",
    "refill": false,
    "cancel": true,
    "dripfeed": false
  }
]
  • Cache the response on your side — it changes at most a few times a day.
  • `type` tells you which parameters the `add` action expects for that service.
  • `dripfeed` tells you whether that service accepts the optional `runs` and `interval` parameters.
ErrorsInvalid API keyRate limit exceeded
02

Add order

action=add

Places one order and debits your balance immediately. The parameters depend on the service `type`. Never retry a timed-out `add` automatically — check with `status` first, otherwise you risk a duplicate order.

Parameters

ParameterTypeRequiredDescription
keystringRequiredYour personal API key. Generate it on the Account page. The account must be active.
actionstringRequiredOne of: services, add, status, refill, refill_status, cancel, balance.
serviceintegerRequiredService ID from the `services` action.

Parameters per service type

Pick the block that matches the `type` field of the service you are ordering.

Default

DEFAULT

The standard service. Add `runs` and `interval` to spread the delivery over time (drip-feed) when the service allows it.

ParameterTypeRequiredDescription
serviceintegerRequiredService ID from the `services` action.
linkstringRequiredFull URL of the profile, post, video or channel to deliver to.
quantityintegerRequiredAmount to deliver. Must sit between the service `min` and `max`, and be a multiple of the service increment when one is set.
runsintegerOptionalDrip-feed only. Number of runs (2–1000). The quantity above is delivered on every run, so the charge is quantity × runs.
intervalintegerOptionalDrip-feed only. Minutes between runs. Required whenever `runs` is sent.

Example request

POST — Default service
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=add" \
  -d "service=1001" \
  -d "link=https://instagram.com/yourprofile" \
  -d "quantity=1000"

Example response

200 OK — application/json
{
  "order": 100234
}

Package

PACKAGE

A fixed bundle. There is no quantity to choose — the charge is the service rate itself.

ParameterTypeRequiredDescription
serviceintegerRequiredService ID from the `services` action.
linkstringRequiredFull URL of the profile, post, video or channel to deliver to.

Example request

POST — Package service
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=add" \
  -d "service=1023" \
  -d "link=https://instagram.com/yourprofile"

Example response

200 OK — application/json
{
  "order": 100234
}

Custom Comments

CUSTOM_COMMENTS

One comment per line. The quantity is the number of non-empty lines, so do not send `quantity`.

ParameterTypeRequiredDescription
serviceintegerRequiredService ID from the `services` action.
linkstringRequiredFull URL of the profile, post, video or channel to deliver to.
commentslistRequiredComments separated by a newline (\n or \r\n). Empty lines are dropped.

Example request

POST — Custom comments
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=add" \
  -d "service=1014" \
  -d "link=https://instagram.com/p/CxYzAbCdEf/" \
  -d "comments=Great shot!\nLove this\nWhere is this?"

Example response

200 OK — application/json
{
  "order": 100234
}

Mentions

MENTIONS

Mentions delivered to a list of usernames you supply.

ParameterTypeRequiredDescription
serviceintegerRequiredService ID from the `services` action.
linkstringRequiredFull URL of the profile, post, video or channel to deliver to.
quantityintegerRequiredAmount to deliver. Must sit between the service `min` and `max`, and be a multiple of the service increment when one is set.
usernameslistRequiredUsernames separated by a newline, without the @ sign.

Example request

POST — Mentions
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=add" \
  -d "service=1031" \
  -d "link=https://instagram.com/p/CxYzAbCdEf/" \
  -d "quantity=500" \
  -d "usernames=user_one\nuser_two\nuser_three"

Example response

200 OK — application/json
{
  "order": 100234
}

Mentions with Hashtags

MENTIONS_HASHTAGS

Mentions pulled from both an explicit username list and a set of hashtags.

ParameterTypeRequiredDescription
serviceintegerRequiredService ID from the `services` action.
linkstringRequiredFull URL of the profile, post, video or channel to deliver to.
quantityintegerRequiredAmount to deliver. Must sit between the service `min` and `max`, and be a multiple of the service increment when one is set.
usernameslistRequiredUsernames separated by a newline, without the @ sign.
hashtagslistRequiredHashtags separated by a newline, with or without the # sign.

Example request

POST — Mentions with hashtags
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=add" \
  -d "service=1032" \
  -d "link=https://instagram.com/p/CxYzAbCdEf/" \
  -d "quantity=500" \
  -d "usernames=user_one\nuser_two" \
  -d "hashtags=travel\nsummer"

Example response

200 OK — application/json
{
  "order": 100234
}

Mentions Custom List

MENTIONS_CUSTOM_LIST

Mentions for exactly the usernames you send — the quantity is the length of the list, so do not send `quantity`.

ParameterTypeRequiredDescription
serviceintegerRequiredService ID from the `services` action.
linkstringRequiredFull URL of the profile, post, video or channel to deliver to.
usernameslistRequiredUsernames separated by a newline. The number of lines is the order quantity.

Example request

POST — Mentions custom list
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=add" \
  -d "service=1033" \
  -d "link=https://instagram.com/p/CxYzAbCdEf/" \
  -d "usernames=user_one\nuser_two\nuser_three"

Example response

200 OK — application/json
{
  "order": 100234
}

Mentions Hashtag

MENTIONS_HASHTAG

Mentions taken from the audience of a single hashtag.

ParameterTypeRequiredDescription
serviceintegerRequiredService ID from the `services` action.
linkstringRequiredFull URL of the profile, post, video or channel to deliver to.
quantityintegerRequiredAmount to deliver. Must sit between the service `min` and `max`, and be a multiple of the service increment when one is set.
hashtagstringRequiredOne hashtag, with or without the # sign.

Example request

POST — Mentions hashtag
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=add" \
  -d "service=1034" \
  -d "link=https://instagram.com/p/CxYzAbCdEf/" \
  -d "quantity=500" \
  -d "hashtag=travel"

Example response

200 OK — application/json
{
  "order": 100234
}

Mentions User Followers

MENTIONS_USER_FOLLOWERS

Mentions taken from the followers of another account.

ParameterTypeRequiredDescription
serviceintegerRequiredService ID from the `services` action.
linkstringRequiredFull URL of the profile, post, video or channel to deliver to.
quantityintegerRequiredAmount to deliver. Must sit between the service `min` and `max`, and be a multiple of the service increment when one is set.
usernamestringRequiredURL of the account whose followers should be mentioned.

Example request

POST — Mentions user followers
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=add" \
  -d "service=1035" \
  -d "link=https://instagram.com/p/CxYzAbCdEf/" \
  -d "quantity=500" \
  -d "username=https://instagram.com/competitor"

Example response

200 OK — application/json
{
  "order": 100234
}

Mentions Media Likers

MENTIONS_MEDIA_LIKERS

Mentions taken from the people who liked a specific post.

ParameterTypeRequiredDescription
serviceintegerRequiredService ID from the `services` action.
linkstringRequiredFull URL of the profile, post, video or channel to deliver to.
quantityintegerRequiredAmount to deliver. Must sit between the service `min` and `max`, and be a multiple of the service increment when one is set.
mediastringRequiredURL of the post whose likers should be mentioned.

Example request

POST — Mentions media likers
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=add" \
  -d "service=1036" \
  -d "link=https://instagram.com/p/CxYzAbCdEf/" \
  -d "quantity=500" \
  -d "media=https://instagram.com/p/CqWvUtSrQp/"

Example response

200 OK — application/json
{
  "order": 100234
}

Subscriptions

SUBSCRIPTIONS

Recurring delivery on every new post of an account. There is no `link` — send the account `username` instead.

ParameterTypeRequiredDescription
serviceintegerRequiredService ID from the `services` action.
usernamestringRequiredThe account to watch, without the @ sign.
minintegerRequiredMinimum quantity delivered per new post.
maxintegerRequiredMaximum quantity delivered per new post.
postsintegerOptionalHow many upcoming posts to cover. Leave it out for an open-ended subscription bounded by `expiry`.
old_postsintegerOptionalHow many already published posts to include.
delayintegerRequiredMinutes to wait after a post appears. Only these values are accepted: 0, 5, 10, 15, 20, 30, 40, 50, 60, 90, 120, 150, 180, 210, 240, 270, 300, 360, 420, 480, 540, 600.
expirydateOptionalEnd date in d/m/Y format, for example 31/12/2026.

Example request

POST — Subscription
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=add" \
  -d "service=1052" \
  -d "username=yourprofile" \
  -d "min=100" \
  -d "max=500" \
  -d "posts=10" \
  -d "old_posts=2" \
  -d "delay=30" \
  -d "expiry=31/12/2026"

Example response

200 OK — application/json
{
  "order": 100234
}
  • The returned `order` is the numeric order ID used by every other action.
  • Services with duplicate-link protection reject a second live order for the same link with "Incorrect link".
  • Drip-feed orders are charged up front for all runs: quantity × runs ÷ 1000 × rate.
ErrorsIncorrect requestIncorrect service IDIncorrect linkIncorrect quantityNot enough fundsInvalid API keyRate limit exceeded
03

Order status

action=status

Reads one order with `order`, or up to 100 orders at once with a comma-separated `orders` list. In the multiple form each ID resolves independently, so a bad ID only fails its own entry.

Parameters

ParameterTypeRequiredDescription
keystringRequiredYour personal API key. Generate it on the Account page. The account must be active.
actionstringRequiredOne of: services, add, status, refill, refill_status, cancel, balance.
orderintegerConditionalSingle order ID. Use this or `orders`, not both.
orderslistConditionalUp to 100 order IDs separated by commas, for example 100234,100235,100236.

Example request

POST — One order
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=status" \
  -d "order=100234"

Example response

200 OK — application/json
{
  "charge": "1.35000",
  "start_count": "3572",
  "status": "Completed",
  "remains": "0",
  "currency": "USD"
}

Example request

POST — Multiple orders
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=status" \
  -d "orders=100234,100235,100999"

Example response

200 OK — application/json
{
  "100234": {
    "charge": "1.35000",
    "start_count": "3572",
    "status": "Completed",
    "remains": "0",
    "currency": "USD"
  },
  "100235": {
    "charge": "4.20000",
    "start_count": "18904",
    "status": "Partial",
    "remains": "820",
    "currency": "USD"
  },
  "100999": {
    "error": "Incorrect order ID"
  }
}
  • Possible `status` values: Pending, In progress, Processing, Completed, Partial, Canceled.
  • Completed, Partial and Canceled are final — stop polling once you see them.
  • A Partial order is refunded automatically for the undelivered part (remains ÷ quantity × charge); a Canceled order is refunded in full.
ErrorsIncorrect requestIncorrect order IDInvalid API keyRate limit exceeded
04

Create refill

action=refill

Requests a refill for one order with `order`, or for several with a comma-separated `orders` list. Only services with `refill: true` accept it, and only inside the service refill window.

Parameters

ParameterTypeRequiredDescription
keystringRequiredYour personal API key. Generate it on the Account page. The account must be active.
actionstringRequiredOne of: services, add, status, refill, refill_status, cancel, balance.
orderintegerConditionalSingle order ID. Use this or `orders`, not both.
orderslistConditionalOrder IDs separated by commas.

Example request

POST — One order
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=refill" \
  -d "order=100234"

Example response

200 OK — application/json
{
  "refill": "cmt6hodsf000fpbe5log8fegi"
}

Example request

POST — Multiple orders
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=refill" \
  -d "orders=100234,100235"

Example response

200 OK — application/json
[
  {
    "order": 100234,
    "refill": "cmt6hodsf000fpbe5log8fegi"
  },
  {
    "order": 100235,
    "refill": {
      "error": "Neither refill nor cancel is possible"
    }
  }
]
  • The single form returns the refill ID as a string; keep it for `refill_status`.
  • Asking twice for the same order returns "Neither refill nor cancel is possible" while the first request is still open.
ErrorsIncorrect requestIncorrect order IDNeither refill nor cancel is possibleInvalid API keyRate limit exceeded
05

Refill status

action=refill_status

Reads the state of one refill with `refill`, or of several with a comma-separated `refills` list.

Parameters

ParameterTypeRequiredDescription
keystringRequiredYour personal API key. Generate it on the Account page. The account must be active.
actionstringRequiredOne of: services, add, status, refill, refill_status, cancel, balance.
refillstringConditionalSingle refill ID returned by `refill`.
refillslistConditionalRefill IDs separated by commas.

Example request

POST — One refill
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=refill_status" \
  -d "refill=cmt6hodsf000fpbe5log8fegi"

Example response

200 OK — application/json
{
  "status": "Completed"
}

Example request

POST — Multiple refills
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=refill_status" \
  -d "refills=cmt6hodsf000fpbe5log8fegi,cmt6hp2ta000hpbe5r7k1x4qd"

Example response

200 OK — application/json
[
  {
    "refill": "cmt6hodsf000fpbe5log8fegi",
    "status": "Completed"
  },
  {
    "refill": "cmt6hp2ta000hpbe5r7k1x4qd",
    "status": {
      "error": "Incorrect order ID"
    }
  }
]
  • Possible values: Pending, In progress, Completed, Rejected, Error.
ErrorsIncorrect requestIncorrect order IDInvalid API keyRate limit exceeded
06

Cancel orders

action=cancel

Requests cancellation for a comma-separated `orders` list. Only services with `cancel: true` accept it, and only while the order has not been delivered.

Parameters

ParameterTypeRequiredDescription
keystringRequiredYour personal API key. Generate it on the Account page. The account must be active.
actionstringRequiredOne of: services, add, status, refill, refill_status, cancel, balance.
orderslistRequiredOrder IDs separated by commas.

Example request

POST — Cancel orders
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=cancel" \
  -d "orders=100234,100235"

Example response

200 OK — application/json
[
  {
    "order": 100234,
    "cancel": "1"
  },
  {
    "order": 100235,
    "cancel": {
      "error": "Neither refill nor cancel is possible"
    }
  }
]
  • Cancellation is a request, not a guarantee — poll `status` until the order reports Canceled.
  • A cancelled order is refunded in full, a partially delivered one proportionally.
ErrorsIncorrect requestIncorrect order IDNeither refill nor cancel is possibleInvalid API keyRate limit exceeded
07

Balance

action=balance

Returns the current balance of your account and its currency.

Parameters

ParameterTypeRequiredDescription
keystringRequiredYour personal API key. Generate it on the Account page. The account must be active.
actionstringRequiredOne of: services, add, status, refill, refill_status, cancel, balance.

Example request

POST — Balance
curl -X POST "https://getfollowers.ai/api/v2" \
  -d "key=YOUR_API_KEY" \
  -d "action=balance"

Example response

200 OK — application/json
{
  "balance": "98.45000",
  "currency": "USD"
}
ErrorsInvalid API keyRate limit exceeded

Allowed delay values

A Subscriptions order is rejected with Incorrect request when delay is not one of these minute values.

051015203040506090120150180210240270300360420480540600

Errors

Every response is returned with HTTP 200. Failures are signalled by an `error` field carrying one of the standard texts below.

ErrorReturned when
Incorrect requestUnknown or missing `action`, a missing mandatory field, or a body that could not be parsed.
Invalid API keyThe `key` field is missing, unknown, or belongs to an account that is not active.
Incorrect service IDThe `service` value does not exist, is disabled, or is hidden from your account.
Incorrect linkThe `link` is empty or malformed, or the service blocks a repeated link that already has a live order.
Incorrect quantityThe quantity is outside the service min/max, or is not a multiple of the increment. For Custom Comments and Mentions Custom List the quantity is the number of lines you send, so a list that is shorter than the service minimum fails here too — an entirely missing list is "Incorrect request".
Not enough fundsYour balance does not cover the charge. Top up and send the order again.
Incorrect order IDThe order, or refill, does not exist or does not belong to your account.
Neither refill nor cancel is possibleThe service does not offer refill or cancel, the refill window has closed, the order status no longer allows it, or the request already exists.
Rate limit exceededMore than 120 requests in the last 60 seconds with the same API key.
200 OK — error body
{
  "error": "Not enough funds"
}