Revmrr

API / Endpoints

GET/api/v1/startups

Returns a paginated list of real startups from Revmrr's revenue dataset. Filter by category, sale status, or MRR range, and sort by MRR or name. Public — no API key required.

Request

cURL
curl -s "https://revmrr.com/api/v1/startups?sort=mrr-desc&limit=10"
JavaScript (fetch)
const response = await fetch(
  "https://revmrr.com/api/v1/startups?sort=mrr-desc&limit=10"
);

const { data, meta } = await response.json();
console.log(`Found ${meta.total} startups`);
Python (requests)
import requests

response = requests.get(
    "https://revmrr.com/api/v1/startups",
    params={"sort": "mrr-desc", "limit": 10},
)

data = response.json()
print(f"Found {data['meta']['total']} startups")

Query parameters

ParameterTypeDefaultDescription
pageinteger1Page number for pagination. Starts at 1.
limitinteger10Results per page. Min 1, max 50.
sortstringmrr-descOne of: mrr-desc, mrr-asc, name-asc, name-desc.
categorystringnullFilter by category (partial match, e.g. "SaaS").
onSalestringnull"true" or "false" — filter by sale status. Omit to return all.
minMrrnumbernullMinimum monthly recurring revenue, in USD.
maxMrrnumbernullMaximum monthly recurring revenue, in USD.
qstringnullSearch term matched against name and category.

Response fields

Each item in the data array has the following shape. Monetary values are in USD.

ParameterTypeDefaultDescription
namestringStartup name.
slugstring | nullURL-friendly identifier.
iconstring | nullURL to the startup's logo, when available.
descriptionstring | nullShort description.
websitestring | nullStartup's website URL.
categorystring | nullCategory, when known.
founderNamestring | nullA founder's name, when known.
revenue.mrrnumber | nullMonthly recurring revenue in USD.
revenue.arrnumber | nullAnnual recurring revenue in USD.
onSalebooleanWhether the startup is listed for acquisition.
rankinteger | nullPosition by MRR within the current filtered result set.

Pagination

The meta object tells you where you are in the result set. Keep incrementing page until hasMore is false.

ParameterTypeDefaultDescription
meta.totalintegerTotal matching startups across all pages.
meta.pageintegerCurrent page number.
meta.limitintegerResults per page.
meta.hasMorebooleanWhether there are more pages after this one.

Example response

200 OK
{
  "data": [
    {
      "name": "Sentry",
      "slug": "sentry",
      "icon": "https://.../sentry-logo.png",
      "description": "Application performance monitoring for developers & software teams.",
      "website": "https://sentry.io",
      "category": "Developer Tools",
      "founderName": "Chris Jennings",
      "revenue": { "mrr": 10000000, "arr": 120000000 },
      "onSale": false,
      "rank": 3
    }
  ],
  "meta": { "total": 1381, "page": 1, "limit": 10, "hasMore": true }
}