MRR Ledger Businesses.json API
The Businesses.json API from MRR Ledger — 1 operation(s) for businesses.json.
The Businesses.json API from MRR Ledger — 1 operation(s) for businesses.json.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/mrrledger:mrrledger-businesses-json-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: MRR Ledger Businesses.json API
version: 1.0.0
description: Real agentic businesses that make money. Every number sourced.
license:
name: CC BY 4.0
x-rate-limits:
status: live
per_day_utc:
free (no key, per IP): 100
hobby: 2000
builder: 10000
pro: 10000
team (5 keys, shared): 25000
metered:
- /api/v1/search.json
- /api/v1/compare.json
- /mcp (tools/call only)
- /api/v1/export.csv
- /api/v1/export.jsonl
- /api/v1/history.json
unmetered: static /api/v1/*.json and *.csv files
headers:
- X-RateLimit-Limit
- X-RateLimit-Remaining
- X-RateLimit-Reset
- X-RateLimit-Plan
- Retry-After (on 429)
servers:
- url: https://mrrledger.com
security:
- {}
- ApiKeyHeader: []
- BearerAuth: []
tags:
- name: Businesses.json
paths:
/api/v1/businesses.json:
get:
summary: List all businesses
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
slug:
type: string
name:
type: string
category:
type: string
tier:
type: string
enum:
- venture
- indie
- experiment
description: 'Tier is about funding, not size: Venture-backed = raised outside venture money (even at under $1M annualized); Indie = bootstrapped or founder-funded; Experiment = agent-run or research project.'
tier_label:
type: string
tier_note:
type: string
badge_url:
type: string
format: uri
description: Embeddable SVG badge (rank + raw headline metric)
badge_plain_url:
type: string
format: uri
description: SVG badge without a number
related:
type: array
description: Up to 4 similar businesses (same category / shared tags / nearby scale) with compare_url
items:
type: object
properties:
slug:
type: string
name:
type: string
category:
type: string
tier:
type: string
annualized_revenue_usd:
type:
- number
- 'null'
revenue_disclosed:
type: boolean
url_profile:
type: string
compare_url:
type: string
score:
type: number
why:
type: array
items:
type: string
annualized_revenue_usd:
type:
- number
- 'null'
annualized_revenue_basis:
type:
- string
- 'null'
confidence:
type:
- string
- 'null'
enum:
- reported
- self-reported
- null
description: '"reported" = press-reported, not company-confirmed; "self-reported" = stated by the company itself, not independently verified'
source_sync_stale_since:
type:
- string
- 'null'
format: date
description: Last sync date when the source page says its live data connection (e.g. a TrustMRR Stripe key) stopped; the value is the last synced figure. Null/absent = no stale-sync notice.
headline_verification:
type:
- object
- 'null'
description: 'Verification of the headline (ranked) figure itself: {method: payment-processor, processor, via} when payment-connected, else null. Filter with verified_only=true on search.'
verified_corroboration:
type:
- object
- 'null'
description: Present when the headline is self-reported or press-reported and a payment-verified revenue point (e.g. TrustMRR Stripe or Paddle snapshot) also exists; may be stale. {label, value_usd, annualized_usd, as_of, source_url, source_name, source_sync_stale_since, verification}
properties:
label:
type: string
value_usd:
type: number
annualized_usd:
type: number
as_of:
type: string
source_url:
type: string
source_name:
type:
- string
- 'null'
source_sync_stale_since:
type:
- string
- 'null'
format: date
description: Last sync date when the source page says its live data connection (e.g. a TrustMRR Stripe key) stopped; the value is the last synced figure. Null/absent = no stale-sync notice.
independent:
type: boolean
description: false when ownership.status is acquired
agentic_origin:
type:
- string
- 'null'
enum:
- agent-native
- agent-added
- unclear
- null
description: agent-native = agents from day one; agent-added = established product later added agents/MCP; unclear or null when not confident
revenue_disclosed:
type: boolean
description: true iff the business has a rankable sourced annualized revenue figure (ARR / MRR×12 / Revenue with value_usd — same rule as leaderboard membership). Funding or valuation alone is false.
older_figure:
type: boolean
description: true when the headline revenue metric is over 365 days old and not superseded
age_days:
type:
- integer
- 'null'
description: Build date minus headline as_of (month precision = mid-month)
ownership:
type:
- object
- 'null'
description: 'Present only when the business was acquired: {status: ''acquired'', acquirer, as_of, source_url, source_name}. Tier keeps the pre-sale funding history.'
properties:
status:
type: string
enum:
- acquired
acquirer:
type: string
as_of:
type: string
source_url:
type: string
source_name:
type: string
last_ownership_check:
type:
- string
- 'null'
format: date
description: YYYY-MM-DD of the latest entry in data/ownership_checks.json for this slug (independent / acquired / watch). Null when never ownership-checked; never invented.
ownership_watch:
type:
- object
- 'null'
description: 'Present only when ownership ledger verdict is watch: {verdict:''watch'', checked, note, source_url?}. Sale-process / for-sale signal — not a closed acquisition.'
properties:
verdict:
type: string
enum:
- watch
checked:
type: string
note:
type:
- string
- 'null'
source_url:
type: string
metrics:
type: array
items:
type: object
properties:
label:
type: string
value_usd:
type:
- number
- 'null'
value_count:
type:
- number
- 'null'
value_text:
type: string
as_of:
type: string
source_url:
type: string
source_name:
type: string
confidence:
type:
- string
- 'null'
source_sync_stale_since:
type:
- string
- 'null'
format: date
description: Last sync date when the source page says its live data connection (e.g. a TrustMRR Stripe key) stopped; the value is the last synced figure. Null/absent = no stale-sync notice.
confidence_label:
type: string
enum:
- payment-verified
- self-reported
- reported
description: 'Revenue figures only (MRR, ARR, Revenue, All-time revenue), derived at build time from the source type: payment-verified (TrustMRR or another payment-processor-connected source), self-reported (the company or founder, own site or social account), reported (press or another third party).'
source_type:
type: string
enum:
- trustmrr
- self-reported
- press
description: 'Revenue figures only: where the figure comes from (TrustMRR host, the company/founder, or press/third party).'
age_days:
type:
- integer
- 'null'
older_figure:
type: boolean
superseded:
type: boolean
link_check:
type:
- object
- 'null'
verification:
type:
- object
- 'null'
description: 'Set when the figure comes from a payment-processor-connected source (e.g. TrustMRR). {method: ''payment-processor'', processor: ''stripe''|''paddle''|''lemonsqueezy''|''polar''|''revenuecat''|''dodo''|null (source did not name it), via: host or null}. Null for press, self-reported, filings and company posts.'
signup_url:
type: string
format: uri
description: Referral signup link for this business (present only when MRR Ledger has one). Always shown with signup_url_disclosure. Never changes figures, rankings, sorting or verification.
signup_url_label:
type: string
enum:
- Sign up (referral)
signup_url_disclosure:
type: string
enum:
- Referral link, MRR Ledger may earn a commission
description: Repeat this disclosure wherever you show signup_url.
referral:
type: boolean
enum:
- true
description: 'true: signup_url is a referral (affiliate) link'
signup_go_url:
type: string
format: uri
description: Same link via https://mrrledger.com/go/{slug} (302 to signup_url; counts the click, no personal data)
claim_offer:
type: object
description: 'Verified Monthly offer for this business (''Claim and keep this verified''): a monthly revenue re-check and a dated Verified badge. Paying never changes figures, rankings, sorting or inclusion.'
properties:
label:
type: string
enum:
- Claim and keep this verified
plan:
type: string
enum:
- verified-monthly
status:
type: string
enum:
- on_sale
- sold_out
- unavailable
tier:
type:
- string
- 'null'
enum:
- founding
- standard
- null
what:
type: string
checkout:
type: array
items:
type: object
properties:
interval:
type: string
price:
type: string
unit_amount:
type: integer
currency:
type: string
price_key:
type: string
url:
type: string
format: uri
description: Stripe Payment Link with ?client_reference_id=<slug> so fulfilment knows which business
business_reference:
type: object
properties:
client_reference_id:
type: string
founding:
type: object
description: Founding price for the first N sign-ups, monthly and yearly combined, locked in
properties:
price:
type: string
limit:
type: integer
sold:
type: integer
left:
type: integer
sold_out:
type: boolean
locked_in:
type: boolean
counted_across:
type: array
items:
type: string
fulfillment:
type: string
note:
type: string
details:
type: string
format: uri
next:
type: string
tags:
- Businesses.json
operationId: getApiV1BusinessesJson
x-operation-id-source: derived
components:
securitySchemes:
ApiKeyHeader:
type: apiKey
in: header
name: X-API-Key
description: 'Optional. Send X-API-Key: <key> or Authorization: Bearer <key>. No key = Free (100 requests/day per IP). Hobby 2,000/day, Builder 10,000/day, Pro 10,000/day, Team 25,000/day shared by up to 5 keys; UTC days. Over the limit: HTTP 429 with Retry-After and X-RateLimit-* headers. Keys are issued by email after purchase. '
BearerAuth:
type: http
scheme: bearer
bearerFormat: mrl_live_<plan>_<account>_<kid>_<sig>
description: 'Same key as X-API-Key, sent as Authorization: Bearer.'