The YouTube Data API requires an API key, project setup, and has a strict 10,000-unit daily quota. For a simple lookup — "how many subscribers does this channel have?" — Pulse reads YouTube's own public pages from a residential IP and returns the subscriber count as clean JSON with one GET request. No API key, no project, no quota management.
curl "https://pulse.walls.sh/profile?url=https://www.youtube.com/@MrBeast"
{
"platform": "youtube",
"handle": "@MrBeast",
"name": "MrBeast",
"followers": 499000000,
"following": null,
"posts": 985,
"verified": null,
"avatar": "https://yt3.googleusercontent.com/…",
"fetchedAt": "2026-06-11T17:05:40.520Z"
}
followers = subscriber count. posts = total videos
in the channel. YouTube doesn't expose subscriber count at full precision below 1,000 — the
number shown is the same rounded figure YouTube displays publicly (e.g., "499M"). No API key,
no quota, no OAuth.
# Handle format (most common) https://www.youtube.com/@MrBeast # Channel ID format also works https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA
Every /profile call saves a timestamped snapshot. Use
/history to retrieve the full series:
curl "https://pulse.walls.sh/history?url=https://www.youtube.com/@MrBeast"
{
"platform": "youtube",
"kind": "profile",
"history": [
{ "followers": 499000000, "posts": 985, "fetchedAt": "2026-06-11T17:05:40Z" },
{ "followers": 498000000, "posts": 983, "fetchedAt": "2026-06-10T09:00:00Z" }
],
"velocity": { "followers_per_hour": 41666, "posts_per_hour": 0.083 }
}
No database setup, no cron job — Pulse accumulates the history as a side
effect of normal reads. The velocity field gives you subscriber growth rate
per hour without computing it yourself.
curl "https://pulse.walls.sh/profile/batch?urls=https://www.youtube.com/@MrBeast,https://www.youtube.com/@mkbhd"
Returns an array with one object per channel. Up to 25 channels per request. Partial failures don't fail the whole batch.
import requests
r = requests.get("https://pulse.walls.sh/profile", params={"url": "https://www.youtube.com/@MrBeast"})
ch = r.json()
print(f"{ch['name']}: {ch['followers']:,} subscribers, {ch['posts']} videos")
The pulse-mcp server
adds a profile tool to Claude Desktop or Cursor:
npx -y pulse-mcp
Then ask: "How many subscribers does MrBeast have?"
content_unavailable.null.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 · YouTube video metrics · X/Twitter follower count · Bluesky follower count · all supported platforms.
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