Public API for verified startup listings
Everything the marketplace shows publicly is also available as JSON: the startups, their verified revenue, the listings for sale and the market figures. It is free, read-only and needs no key.
Getting started
Base URL: https://api.verifyarr.com
curl 'https://api.verifyarr.com/v1/listings?for_sale=true&sort=mrr&limit=10'Call it from a server or a script. Browsers on other sites are blocked by CORS, because the API also serves signed-in visitors.
Endpoints
GET /v1/listingsStartups with verified revenue and their for-sale listings, one page at a time.
Parameters: q, category (slug, repeatable), mrr_min, mrr_max, price_min, price_max, for_sale, verified, sort (newest, mrr, growth, multiple, price), limit (1–100), cursor
GET /v1/categoriesEvery category, with how many startups and how many for-sale listings it has.
GET /v1/startups/by-slug/{slug}One startup: description, verified metrics, verification status and its listing.
GET /v1/startups/{id}/metricsA startup’s revenue history.
Parameters: range (30d, 90d, 12m, all)
GET /v1/stats/marketMarket-wide figures: total verified MRR, live listings and median asking multiples, overall and per category.
GET /v1/leaderboardStartups ranked by verified MRR.
Parameters: limit
GET /v1/deals/bestListings priced below their category’s median multiple.
Parameters: limit
The market figures are also a CSV at verifyarr.com/stats/market.csv.
Conventions
- Money is an integer in minor units (cents) next to its
currency. Listings, market stats and rankings are in US dollars, converted from each account’s currency at the day’s rate. - Growth and churn are integers in basis points: 1% is 100.
- Lists are paged with a cursor: pass
next_cursorback ascursoruntil it is null. - Startups that show only a revenue range, or keep it private, have no exact MRR in the API either: the API shows exactly what the site shows.
- Errors are JSON:
{ "error": { "code", "message" } }. - Responses carry an
ETagand aCache-Controllifetime. SendIf-None-Matchto get a 304 when nothing changed.
Limits and fair use
Requests are rate-limited per IP address, with room for bursts. Over the limit the API answers 429 with a Retry-After header. Revenue is resynced hourly, so polling faster than that gains nothing. If you publish the data, link back to the startup’s page on VerifyArr.
Questions
Need something the API doesn’t offer? Get in touch.