ShowMRR API
Read-only JSON over HTTPS. No API key.
The same data that powers showmrr.com is available as JSON. Everything here is a GET request that works from a terminal or a script today. Base URL: https://showmrr.com/api
Read this first: verified vs self-reported
Every revenue figure carries a label. isVerified is true only when ShowMRR read the figure from a payment provider the founder connected (Stripe, Lemon Squeezy or Polar) and the last read was recent. Otherwise the figure is self-reported: typed in by a person, or read from a public page the founder publishes (publicSource says which page and when). revenueAsOf is the date the number was last read or edited.
If you republish a figure, please keep its label and date next to it. A self-reported number shown without that context is the thing this API exists to avoid.
Basics
- Money is in minor units (cents), so
currentMrrCents: 92919800is $929,198.mrrCurrencyis the currency code, lowercase. - Timestamps are ISO 8601 in UTC.
- Lists come back as
{"data": [...]}. Most acceptlimit(1–100, default 20 or 50) andoffset. - Rate limit: 100 requests per minute per IP address. Over the limit you get
429with aRetry-Afterheader (seconds). - Errors are JSON:
{"error": "..."}with400,404,405or429. - No versioning or guarantees. The API is unversioned and may change. Fields may be added; check
revenueAsOfrather than assuming freshness.
Endpoints
GET /api/leaderboard
Ranked startups with a revenue sparkline. Parameters: category, withRevenue=true (drop startups that list no revenue), verified=true (only provider-verified), limit, offset.
{
"data": [
{
"rank": 1,
"startupId": 114,
"name": "Ghost",
"slug": "ghost",
"logoUrl": null,
"category": "content-creation",
"currentMrrCents": 92919800,
"mrrGrowthPct": 0.0,
"isVerified": false,
"founderName": "Unclaimed listing",
"revenueAsOf": "2026-10-19T04:03:45.650006Z",
"mrrCurrency": "usd",
"tagline": "Open-source publishing platform for newsletters, memberships and paid subscriptions, run as a non-profit.",
"websiteUrl": "https://ghost.org",
"sparklineData": [
92919800
]
}
]
}
GET /api/startups
List startups, best revenue first. Parameters: category, limit, offset.
GET /api/startups/:id
One startup, by numeric id or by slug (/api/startups/ghost). Includes claimable (nobody has claimed the listing yet) and, for self-reported figures read from a public page, publicSource.
{
"id": 114,
"slug": "ghost",
"name": "Ghost",
"tagline": "Open-source publishing platform for newsletters, memberships and paid subscriptions, run as a non-profit.",
"websiteUrl": "https://ghost.org",
"category": "content-creation",
"techStack": [],
"currentMrrCents": 92919800,
"mrrGrowthPct": 0.0,
"customerCount": 0,
"isVerified": false,
"createdAt": "2026-10-18T07:11:42.309744Z",
"revenueAsOf": "2026-10-19T04:03:45.650006Z",
"mrrCurrency": "usd",
"claimable": true,
"publicSource": {
"url": "https://ghost.org/about/",
"metric": "monthly_revenue",
"readAt": "2026-10-19T04:03:45.650006Z"
}
}
GET /api/startups/:id/revenue
Daily revenue history for a startup (id or slug). Parameter: days (1–365, default 30). source is where each point came from: a provider name, or public_page for a figure read from the founder's own page.
{
"data": [
{
"startupId": 114,
"source": "public_page",
"mrrCents": 92919800,
"customerCount": 0,
"snapshotDate": "2026-10-18T00:00:00.000Z"
}
]
}
GET /api/search
Search and filter. With no q and no filter it returns an empty list. Parameters: q (words, prefix matching), category, mrr_min and mrr_max (in cents), growth_min, growth_max, followers_min, followers_max, founded_min, founded_max, audience (b2b or b2c), sort (mrr, growth, newest, followers), limit, offset.
curl 'https://showmrr.com/api/search?q=analytics&mrr_min=100000&sort=mrr'
GET /api/categories
Categories that have listings, with count, totalMrrCents and verifiedCount. GET /api/categories/:slug lists the startups in one category (limit, offset).
GET /api/stats
Platform totals: startupCount, verifiedCount, founderCount, totalMrrCents, a revenue distribution and a per-category breakdown. Note that totalMrrCents adds up every listed figure, including self-reported ones; verifiedCount says how many startups are provider-verified.
Other lists
GET /api/top-100— the first 100 leaderboard entries, in the same shape as/api/leaderboard.GET /api/recently-added— newest listings (limit).GET /api/tech-stack— technologies in use, with startup counts.GET /api/feed— the activity feed.
Fair use
Use the API for your own tools, research and apps, and keep the rate limit. Please don't mirror the whole database as a competing directory. If you need more than 100 requests a minute or a bulk export, write to support@showmrr.com.
A quick example
curl -s 'https://showmrr.com/api/leaderboard?withRevenue=true&limit=3' | jq '.data[] | {{name, currentMrrCents, isVerified, revenueAsOf}}'