Back to Guides

How to Get Social Media Follower Counts with an API

There are three realistic ways to get follower counts into your code: the official API of each platform, a scraper you build and maintain yourself, or a third-party API that reads public profiles for you. Which one fits depends on two questions: how many platforms do you need, and do you control the accounts you are reading?

Option one: the official platform APIs

If you need one platform and you own the accounts, stop here: the official API is the correct answer. It is authoritative, well documented, and usually free at that scale. The friction appears when the accounts are not yours and the platforms multiply. Instagram wants a Facebook developer app and an app review. X wants a developer account and an access tier that permits the reads you want. TikTok's Display API only speaks about the account that authorised your app. YouTube is friendly, but it is still one more integration with its own quota rules. Five platforms means five registrations, five auth models, and five response formats to reconcile.

Option two: scrape it yourself

The count is right there on the public profile page, and the first version of a scraper takes an afternoon. The second version, and every version after it, is where the cost lives: markup changes, login walls, "1.2M" suffix parsing, retries, proxies. We wrote up what that path actually involves if you want the full picture. It is a fine choice when you need data nobody sells; it is a poor use of a product team's time when the data is a commodity count.

Option three: one API over the public numbers

This is the gap Metrika fills, so the walkthrough uses it. Create a free account, generate a token from the dashboard, and ask for the accounts you care about, up to ten per call, mixing platforms:

bash
$ curl -X POST https://metrika.run/api/v1/resources/search \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "resources": [
      {"platform": "instagram", "type": "account", "identifier": "natgeo"},
      {"platform": "youtube", "type": "account", "identifier": "mkbhd"}
    ]
  }'

The first request for an account Metrika has never seen returns a pending status with no numbers yet, because collection happens in the background rather than while your request waits. Ask again a little later and the values are there:

json
{
  "data": [
    {
      "platform": "instagram",
      "type": "account",
      "identifier": "natgeo",
      "status": "available",
      "metrics": {
        "followers": {
          "value": 284000000,
          "status": "available",
          "collected_at": "2026-08-15T00:00:00.000Z"
        }
      }
    }
  ]
}

From then on the accounts refresh daily, and every read returns the latest collected value with its collected_at timestamp attached.

Reading the response defensively

Three habits save you debugging later. Branch on the resource status first: not_found means the handle is wrong, not that the API failed. Check each datapoint's own status before using its value, because coverage varies by platform. And read the collected_at timestamp instead of assuming the value is from this moment; the follower count page covers what each platform provides.

Choosing between the three

Own accounts, one platform: official API. Data nobody aggregates, or freshness you control: build the scraper. Public counts across several networks: an aggregated API is the option that stays small, one token and one response shape instead of five integrations.

Getting started

The free tier covers 500 requests per month, no credit card required. Create an account and the docs will take you from token to first response in a few minutes.

Get started with Metrika

Create a free account and start pulling social media datapoints in minutes. The free tier includes 500 requests per month, no credit card required.