Instagram Following list API

List the accounts an Instagram user follows, up to 500 per call, each with username, name, is_private, is_verified and relation, for $0.56 per 1,000 calls.

  • No charge for failed or empty results
  • No Instagram login needed
  • Up to 500 rows per call

API health

24h health
Normal
  • Healthy / normal
  • Available
  • Limited
  • Mostly down
Normal

Last 24 hours

Last 30 days

  1. 1Request

    POST /api/v1/social
    {
      "platform": "instagram",
      "action": "following_list",
      "params": {
        "username": "nasa"
      }
    }
  2. 2JSON response

    {
      "results": [
        {
          "username": "",
          "is_private": false,
          "is_verified": true,
          "relation": "Followings"
        },
        …
      ],
      "count": 50
    }
  3. 3Rows

    usernameis_privateis_verifiedrelation
    falsetrueFollowings
    falsetrueFollowings
  4. 4CSV

    instagram-following_list-sample.csv id,username,url,name,avatar_url,is_private,is_verified,relation,of_user,platform

A request with username and an optional limit goes in, a JSON response comes back, and each followed account becomes a table row and a CSV line.

What data you get

Each row is one account the user follows. The table shows rows from a real call for nasa, captured September 26, 2026 at 08:56 (UTC), that returned 50 rows; gray bars mark removed personal information (••• in the CSV). Your own calls return these fields as listed in the field reference.

idusernameurlnameavatar_urlis_privateis_verifiedrelationof_userplatform
instagram.com/falsetrueFollowingsnasainstagram
instagram.com/falsetrueFollowingsnasainstagram

Use cases

  • Find similar accounts

    Read the accounts a seed account follows and use username and name to pick out similar ones.

  • Check mutual follows

    Read the creator's list and the brand's list, and look for each account in the other.

  • Shortlist verified accounts

    Keep rows where is_verified is true and drop rows where is_private is true.

  • Merge several seeds

    Use of_user to tell the lists apart, then remove duplicates by id.

Instagram Graph API vs EveryInfra

Here is how Instagram's official Graph API and EveryInfra following_list compare on following data, which accounts and access.

ComparedInstagram Graph APIEveryInfra
Following dataField follows_count: "Total number of Instagram users the user follows."A list of the accounts the user follows; each row has id, username, url, name, avatar_url, is_private, is_verified, relation, of_user and platform.
Which accounts"Note that a permission only allows access to data created by the app user who granted the permission."The account named in username, as a handle without the @ symbol or a full profile URL.
Access you needAccess token: "Required. App user’s User access token."One EveryInfra API key in the Authorization: Bearer header. No Instagram login or Instagram access token is needed.

Quotes are from Meta's developer documentation, checked 2026-11-09. Official sources: IG User (updated 2026-04-22) · Instagram Platform overview (updated 2026-10-29)

Limits and gotchas

  • limit is an integer from 1 to 500 and defaults to 50; larger values return 422 before any charge.
  • There is no cursor or page parameter, so one call returns at most 500 rows for one account.
  • A call can return fewer rows than limit; an account you do not see in the rows is not proof that it is not followed.
  • A follow does not prove affinity or interaction, and the relationship may change.
  • is_verified is null when the verified status cannot be determined.
  • avatar_url is an image link, and a sized CDN link can expire.

Pricing

You pay $0.000556 per call, not per row, and one call reads up to 500 accounts that one account follows. Failed calls and empty results are not charged.

CallsCost
10,000$5.56
100,000$55.56
1,000,000$555.56

Totals use the list price per call.

Code samples

#
bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "instagram",
  "action": "following_list",
  "params": {
    "username": "nasa"
  }
}'

OpenAPI definition (JSON)Samples read the key from the EVERYINFRA_API_KEY environment variable; copied code never contains your key.

API reference

See the parameters, response fields, errors and billing for following_list, and copy the page or open it as Markdown for an AI assistant.

POST

AI prompt

#
Please help me write a data collection script with the EveryInfra Instagram Following list endpoint (instagram/following_list).

How the endpoint works:
- Request: POST https://api.everyinfra.com/api/v1/social with the header Authorization: Bearer <API key>. Read the key from the EVERYINFRA_API_KEY environment variable and never hard-code it.
- In the request body, set platform to instagram and action to following_list, and put the parameters inside params.
- Required parameters:
  - username: Identifies an Instagram account handle without the @ symbol or as a full profile URL. Used by profile, persona, user_posts, and reels to fetch account data.
- Optional parameters:
  - limit: The most rows to return in this call, an integer from 1 to 500. The default applies when you leave it out, and a call can return fewer rows. Larger values return 422 before any charge. (default: 50)
- Returns a list of records. Main fields of each record: id, username, url, name, avatar_url, is_private, is_verified, relation, of_user.
- Example request body:
{
  "platform": "instagram",
  "action": "following_list",
  "params": {
    "username": "nasa"
  }
}
- Price: $0.56 per 1,000 requests; failed and empty results are not charged.
- For dozens or hundreds of targets, add "mode": "async" to the body: you get a job_id at once and poll GET https://api.everyinfra.com/api/v1/jobs/{job_id} for the result.
- On 422, fix the request using the suggested parameter names and allowed values in the error; on 429 or 503, wait for Retry-After and try again.

Before writing code, ask me which targets I need, how many, which fields, and what output format I want; then confirm the plan and the rough cost with me.

Request parameters

#
NameInTypeRequiredDefaultDescription
AuthorizationheaderstringYes-Bearer followed by your API key. Create it in the console; never put it in a URL or a code repository.
platformbodystringYesinstagramPlatform identifier, fixed value.
actionbodystringYesfollowing_listCapability identifier, fixed value.
usernamebody.paramsstringYes-Identifies an Instagram account handle without the @ symbol or as a full profile URL. Used by profile, persona, user_posts, and reels to fetch account data. The followers action returns only total follower counts, whereas followers_list and following_list return account lists.
limitbody.paramsinteger (1–500)No50The most rows to return in this call, an integer from 1 to 500. The default applies when you leave it out, and a call can return fewer rows. Larger values return 422 before any charge.

Response example

#
Captured September 26, 2026 at 08:56 (UTC) by calling this API with the parameters in the code sample above. results and count are that call's real response with personal information (names, handles, avatars, profile links, contact details) removed; the list keeps the first 2. id, billing and quota differ on every call, so only their shape is shown.
json
{  "id": "req_…",  "platform": "instagram",  "action": "following_list",  "results": [    {      "id": "•••",      "username": "•••",      "url": "https://www.instagram.com/•••",      "name": "•••",      "avatar_url": "https://instagram.fbhx4-2.fna.fbcdn.net/•••",      "is_private": false,      "is_verified": true,      "relation": "Followings",      "of_user": "nasa",      "platform": "instagram"    },    {      "id": "•••",      "username": "•••",      "url": "https://www.instagram.com/•••",      "name": "•••",      "avatar_url": "https://instagram.fbhx4-1.fna.fbcdn.net/•••",      "is_private": false,      "is_verified": true,      "relation": "Followings",      "of_user": "nasa",      "platform": "instagram"    }  ],  "count": 50,  "billing": {    "charged": …,    "charged_usd": …,    "balance_after_usd": …,    …  },  "quota": { … }}

Response fields

#

Business data is in results. The table lists the fields a record can contain; values the platform does not show are never made up.

FieldMeaning
idThe record's unique ID on the platform. Unique only within one platform; IDs can repeat across platforms.
usernameUsername (@handle).
urlLink to the record on the platform.
nameName of the object itself, for account, product and business capabilities.
avatar_urlAvatar image link. Some platforms return sized CDN links that can expire.
is_privateKeeps the platform's own meaning
is_verifiedWhether the platform verified the account. null means it cannot be determined.
relationKeeps the platform's own meaning
of_userKeeps the platform's own meaning
platformSource platform identifier, the same as platform in the request (for example xiaohongshu, tiktok).

Errors and billing

#
401
Missing or invalid key.
402
Insufficient balance. Top up first.
422
Invalid parameter name or value. Fix it using the suggestions in the error. No charge.
429
Per-minute request limit reached. Wait for Retry-After, then try again.
503
Could not complete. The held charge is returned to your balance. If the outcome is unknown, verify it before you retry.
200 empty
No data. No charge.

Errors

FAQ

What does the Instagram following list API return?

It returns the accounts an Instagram user follows, looked up by username, one row per account with id, username, url, name, avatar_url, is_private, is_verified, relation, of_user and platform.

How many accounts does one call return?

At most 500 rows for one account. Set limit from 1 to 500; the default is 50, and a call can return fewer rows. There is no cursor or page parameter.

How much does it cost?

It costs $0.000556 per call, or $0.56 per 1,000 calls, billed per call and not per row. Failed calls and empty results are not charged.

Do I need an Instagram login?

No. You send one EveryInfra API key in the Authorization: Bearer header. The request carries only username and the optional limit; no Instagram login or Instagram access token is needed.

What is the difference between following_list and followers_list?

The direction. following_list returns the accounts the user follows. followers_list returns the accounts that follow the user. Both take username and return the same columns.

You can call the other Instagram endpoints with the same EveryInfra API key.

Our own visit stats are always on. Google Analytics loads only if you choose “Allow analytics”. Privacy policy