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:
$ 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:
{
"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.