Docs · Reference
API
JSON over HTTPS. Free endpoints need nothing; Pro endpoints take your license key as Authorization: Bearer <key> or X-API-Key: <key>. Be gentle: responses are cached for 5 to 10 minutes, so polling faster gains nothing.
Free
GET /api/v1/writer/{handle}
Current numbers for one writer.
curl https://stackblade.app/api/v1/writer/heathercoxrichardson
{
"handle": "heathercoxrichardson",
"name": "Heather Cox Richardson",
"publication": "Letters from an American",
"publication_url": "https://heathercoxrichardson.substack.com",
"followers": 3530857,
"subscribers_rounded": "3M+",
"paid_band": "Hundreds of thousands",
"bestseller_badge": 10000,
"change_7d": null, "change_7d_days": null,
"change_30d": null, "change_30d_days": null,
"recommended_by": 196,
"new_recommenders_7d": 34,
"new_recommenders_30d": 52,
"new_recommenders_30d_is_minimum": true,
"recommends": 18,
"boards": [
{ "category": "Podcasts", "board": "bestsellers", "rank": 1 },
{ "category": "U.S. Politics", "board": "bestsellers", "rank": 3 }
],
"tracked_since": "2026-10-31",
"last_reading": "2026-10-31",
"url": "https://stackblade.app/w/heathercoxrichardson"
}A real response from Oct 31, 2026, the first day of history, so the 7-day and 30-day changes are null.
GET /api/v1/board/{category-slug}?board=bestsellers|rising
The latest read of one board, with each row's previous rank.
GET /api/v1/activity?kind=all|rec|rank|followers
The activity feed, newest first.
Pro
GET /api/v1/writer/{handle}/history
Every reading, and every change in board position by day.
curl -H "Authorization: Bearer $STACKBLADE_KEY" https://stackblade.app/api/v1/writer/kyla/history
GET /api/csv/{handle}
The same as CSV.
GET /api/recs/{handle}.csv
Recommendations both ways, with start and stop dates.
GET /api/v1/writers.csv?…
Any Explore view (same query parameters), up to 2,000 rows.
GET /api/v1/watchlist
Your watchlist with current numbers. POST with {"handles": ["a", "b"]} adds, DELETE with the same body removes.
Errors
401 missing or invalid key. 404 not tracked. 429 too many new-writer lookups from one address (20 a day). Errors come as {"error": "…"}.