Meta offers an official Threads API, but it's still OAuth-gated developer-preview: you need an Instagram app, user-level permissions, and token management just to read a public account's follower count. For a simple lookup — "how many followers does this Threads account have?" — there's a much shorter path. Pulse reads Threads' own public API from a residential IP and returns profile metrics as clean JSON with one GET request.
curl "https://pulse.walls.sh/profile?url=https://www.threads.net/@natgeo"
{
"platform": "threads",
"handle": "natgeo",
"name": "National Geographic",
"followers": 269340688,
"following": 108,
"posts": null,
"verified": true,
"avatar": "https://…",
"fetchedAt": "2026-06-11T16:25:35.841Z"
}
Real numbers from National Geographic's Threads profile. followers and
following are the numbers visible on any public profile page. verified
is true if the account has the blue checkmark. posts is null
— Threads doesn't expose post count in its public API response. No OAuth, no token management,
no Meta app review.
Pass the profile URL directly:
https://www.threads.net/@username https://threads.net/@username
Both forms work. The handle is extracted and resolved automatically.
JavaScript / Node
const profileUrl = "https://www.threads.net/@natgeo";
const res = await fetch(
"https://pulse.walls.sh/profile?url=" + encodeURIComponent(profileUrl)
);
const { handle, followers, following, verified } = await res.json();
console.log({ handle, followers, following, verified });
Python
import requests
profile_url = "https://www.threads.net/@natgeo"
data = requests.get(
"https://pulse.walls.sh/profile",
params={"url": profile_url}
).json()
print(data["followers"], data["verified"])
For multiple accounts at once, use /profile/batch:
GET /profile/batch?url=https://www.threads.net/@natgeo&url=https://www.threads.net/@threads
Up to 50 Threads profiles per batch. Mix Threads with Instagram, YouTube, TikTok, X,
Bluesky, and Mastodon profile URLs in the same request — same endpoint, same response shape.
Each item is an independent lookup; a missing account returns
{ url, error: "content_unavailable" } without failing the rest.
Meta merged the Instagram and Threads follower systems in late 2023 — when someone
follows you on Threads, they also follow you on Instagram, and vice versa. The followers
value Pulse returns reflects this unified count: the same number shown on the Threads profile page.
login_required for /metrics calls
on Threads post URLs. A session cookie (set via PULSE_THREADS_COOKIE) unlocks these
if you're running your own Pulse instance.posts field is null.content_unavailable.Free: 120 calls/minute, no account or signup needed. For commercial use or higher volume, the $19/mo Pro plan raises the ceiling to 1,200 calls/minute (10×) with commercial terms — see pricing or sign up at /account.
More: full API docs · OpenAPI spec · Instagram profile metrics · all supported platforms · how I built Pulse.
Need more than 60 calls/day?
Pulse Pro — 10,000 calls/month for $19/mo. No OAuth, no webhooks, just curl. Cancel any time.
Get a free API key →Free tier: 60 calls/day · Pro: 10k/month · takes 30 seconds