followers.bid

Public API

Read endpoints need no key and are CORS-open. Writes need an account key; see follow tracking.

GET/api/v1/leaderboard

The ranked board. Highest standing bid first.

categorycategory slug, e.g. memes. Omit for all categories.
qcase-insensitive search over handle, name and tagline.
limit1โ€“100, default 50.
offsetfor paging.
Example
curl "https://followers.bid/api/v1/leaderboard?category=fitness&limit=2"
200 OK
{
  "total": 18,
  "limit": 2,
  "offset": 0,
  "category": "fitness",
  "items": [
    {
      "rank": 1,
      "handle": "liftwithnoa",
      "display_name": "Noa Barel",
      "tagline": "Strength programming for people with day jobs.",
      "avatar_url": null,
      "followers": 148000,
      "instagram_verified": false,
      "category": { "slug": "fitness", "name": "Fitness", "emoji": "๐Ÿ’ช" },
      "standing_bid_cents": 184000,
      "clicks": 12480,
      "views": 8986,
      "follow_taps": 3494,
      "follows": 1902,
      "conversion_rate_pct": 54.44,
      "view_url": "https://followers.bid/go/liftwithnoa?intent=view",
      "follow_url": "https://followers.bid/go/liftwithnoa?intent=follow",
      "profile_url": "https://www.instagram.com/liftwithnoa/",
      "sponsored": true
    }
  ]
}

Always open view_url or follow_url, never profile_url. They record the tap and carry the attribution token โ€” going direct means the creator paid for a visit nobody can see. Use whichever matches the button the user pressed: conversion_rate_pct is follows per 100 follow taps, so mislabelling the intent corrupts it.

GET/api/v1/categories

Every category, with the price of taking #1 in each right now.

Example
curl https://followers.bid/api/v1/categories
GET/api/v1/accounts/{handle}

One listing in full, including 30 days of daily clicks and follows.

Example
curl https://followers.bid/api/v1/accounts/liftwithnoa
POST/api/v1/clicks

Record a tap from an embed or a link-in-bio tool, and get back the URL to open.

Use this instead of following the /go/ redirect when you want to keep hold of the click token yourself. intent is view or follow and defaults to view.

Example
curl -X POST https://followers.bid/api/v1/clicks \
  -H "Content-Type: application/json" \
  -d '{"handle":"liftwithnoa","source":"embed","intent":"follow"}'
200 OK
{
  "click_token": "7k2mfqx9rt4bnh3vzcd8ye",
  "intent": "follow",
  "profile_url": "https://www.instagram.com/liftwithnoa/?followersbid=7k2mfqx9rt4bnh3vzcd8ye",
  "handle": "liftwithnoa"
}
POST/api/v1/followskey required

Report a follow. Requires an account key.

POST/api/v1/snapshotskey required

Report today's follower count. Requires an account key.

GET/api/v1/whoamikey required

Check an account key.

Fair use

Read endpoints are cached for 15โ€“60 seconds at the edge; polling faster than that gets you the same bytes. There is no hard rate limit today, but there is a human reading the logs โ€” if you hammer it, you'll get one.

Public API ยท followers.bid