honesthook

Social data API

The follower count we return is the one on the profile. Not the rounded one.

Eight platforms, read field by field. A free key with 1,000 credits a month, no card.

GET /api/v1/instagram/profile
$ curl -H "Authorization: Bearer $HH_KEY" \
  "https://honesthook.com/api/v1/instagram/profile?handle=nasa"
{
  "success": true,
  "platform": "instagram",
  "endpoint": "instagram/profile",
  "data": {
    "author": {
      "handle": "nasa",
      "followers": 104395849,
      "following": 91,
      "posts_count": 4913,
      "verified": true
    }
  }
}

Real response, replayed from a recorded capture of instagram.com/nasa on 2026-09-07, through the same normalizer the live route uses. Live calls return today’s number.

01 — Why the field matters

Same profile. Two fields. One of them is wrong.

Every platform ships more than one number for the same thing. Read the first one you find and you ship a rounded figure — or somebody else’s. These are the two cases we handle by name.

TikTok

stats.followerCount — rounded

1,600,000

statsV2.followerCount — exact

1,585,971

Both numbers are in the same page, for the same account — @nasa, captured 2026-09-07. stats is rounded to the hundred thousand; statsV2 carries the exact figure, as a string. stats appears first in the HTML, so the obvious regex matches the wrong one. We read statsV2.

Pinterest

first follower_count found

a board’s followers

ld+json · interactionStatistic.userInteractionCount

the account’s followers

Measured on pinterest.com/nasa, 2026-09-08: one profile page carries follower_count 42 times, with different values. One belongs to the account; the neighbours are boards, and a board’s count looks just as plausible. So we do not pattern-match at all — we read the ProfilePage block the page publishes as structured data.

02 — Status, including the red

When a source fails, it says so here.

Full status page →
cratesiolast capture 0.3 h agocollecting · 32/32 runs 24 h
devtolast capture 0.3 h agocollecting · 32/32 runs 24 h
githublast capture 0.3 h agocollecting · 32/32 runs 24 h
hackernewslast capture 0.3 h agocollecting · 32/32 runs 24 h
lemmylast capture 0.3 h agocollecting · 32/32 runs 24 h
lobsterslast capture 0.3 h agocollecting · 32/32 runs 24 h
npmlast capture 0.3 h agocollecting · 32/32 runs 24 h
vscodelast capture 0.3 h agocollecting · 32/32 runs 24 h
youtubelast capture 0.3 h agocollecting · 32/32 runs 24 h

Live from the same function /status reads, 9 sources. 4 more are switched off by decision and are not listed: a red label next to a choice is an accusation, not a state.

03 — Coverage

10 platforms. These are all of them.

Each one lists the field we resolve and return as the count. If a platform is not on this list, we do not read it. The list is the live one: it comes from the same table the OpenAPI spec is built from, so a route that is switched off disappears from both.

Bluesky

followersCount

app.bsky.actor.getProfile

GitHub

followers

user object

Instagram

follower_count

single anchor in the page

Linktree

— no follower count

no follower field exists

Mastodon

followers_count

the account's own instance

medium

socialStats.followerCount

not the rounded text

Pinterest

mainEntity.interactionStatistic.userInteractionCount

ld+json, not follower_count

soundcloud

followers_count

not followings_count

Threads

follower_count

one occurrence in 960 KB

TikTok

statsV2.followerCount

not stats, which is rounded

04 — The archive

A number you cannot compute today, only remember.

3 niches, captured every hour since 5 September 2026. The most recent window holds 724 observations, and there were 24 windows in the last 24 hours.

05 — Price

The smallest ticket in, not the cheapest credit.

Per credit we are ordinary. The difference is what it costs to find out — a key with 1,000 credits a month, issued on the page, with no card and no call.

Free

US$ 0

1,000 credits / month

No card. One key per address, renewed on the 1st.

per month

US$ 9

5,000 credits / month

US$ 1.80 per thousand credits.

per year

US$ 79

60,000 credits / year

US$ 1.32 per thousand credits.

Entry price elsewhere. Each comparison page below carries the vendor’s cheapest paid plan as listed on their own pricing page, with the date it was checked. They are not repeated here on purpose: a price copied into a second place goes stale without anyone editing it.

apify · bright-data · ensembledata · scrapecreators · socialcrawl

06 — Start

Three steps, and no card in any of them.

  1. 01

    Type your email

    No card, no call. One key per address.

  2. 02

    Copy the key

    Issued on the page, in the response. 1,000 credits a month.

  3. 03

    Send the request

    curl -H "Authorization: Bearer $HH_KEY" \
      "https://honesthook.com/api/v1/instagram/profile?handle=nasa"