{
  "openapi": "3.1.0",
  "info": {
    "title": "MRR Ledger API",
    "version": "1.0.0",
    "description": "Real agentic businesses that make money. Every number sourced.",
    "license": {
      "name": "CC BY 4.0"
    }
  },
  "servers": [
    {
      "url": "https://mrrledger.com"
    }
  ],
  "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\u00d712 / Revenue with value_usd \u2014 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 \u2014 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."
                                },
                                "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."
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/businesses/{slug}.json": {
      "get": {
        "summary": "Get one business",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "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\u00d712 / Revenue with value_usd \u2014 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 \u2014 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."
                          },
                          "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."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/api/v1/leaderboard.json": {
      "get": {
        "summary": "Leaderboard by annualized revenue",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "rank": {
                            "type": "integer"
                          },
                          "slug": {
                            "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."
                          },
                          "annualized_revenue_usd": {
                            "type": "number"
                          },
                          "revenue_disclosed": {
                            "type": "boolean"
                          },
                          "basis": {
                            "type": "string"
                          },
                          "confidence": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "as_of": {
                            "type": "string"
                          },
                          "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."
                          },
                          "older_figure": {
                            "type": "boolean"
                          },
                          "age_days": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "source_url": {
                            "type": "string"
                          },
                          "verified_corroboration": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "description": "Payment-verified point shown alongside a self-reported / press-reported headline; see business record"
                          },
                          "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."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/leaderboard.csv": {
      "get": {
        "summary": "Leaderboard as CSV (header row: rank, slug, name, category, tier, annualized_revenue_usd, headline_label, headline_value_usd, headline_value_text, basis, confidence, as_of, source_sync_stale_since, older_figure, age_days, source_url, profile_url)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/categories.json": {
      "get": {
        "summary": "Category insights (count, ranked median, members with global rank)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "method": {
                      "type": "string"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "slug": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "count": {
                            "type": "integer"
                          },
                          "ranked_count": {
                            "type": "integer"
                          },
                          "median_annualized_usd": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "median_annualized_by_tier": {
                            "type": "object",
                            "description": "Median annualized among ranked members per funding tier (venture/indie/experiment); tiers with no ranked member omitted.",
                            "additionalProperties": {
                              "type": "object",
                              "properties": {
                                "label": {
                                  "type": "string"
                                },
                                "n": {
                                  "type": "integer"
                                },
                                "median_annualized_usd": {
                                  "type": "number"
                                }
                              }
                            }
                          },
                          "url_page": {
                            "type": "string"
                          },
                          "members": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "slug": {
                                  "type": "string"
                                },
                                "name": {
                                  "type": "string"
                                },
                                "rank": {
                                  "type": [
                                    "integer",
                                    "null"
                                  ]
                                },
                                "annualized_revenue_usd": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                },
                                "revenue_disclosed": {
                                  "type": "boolean"
                                },
                                "url_profile": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tags.json": {
      "get": {
        "summary": "Tag insights (count, ranked median, median_annualized_by_tier, members with global rank; sorted by count desc)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "method": {
                      "type": "string"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "slug": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "count": {
                            "type": "integer"
                          },
                          "ranked_count": {
                            "type": "integer"
                          },
                          "median_annualized_usd": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "median_annualized_by_tier": {
                            "type": "object",
                            "description": "Median annualized among ranked members per funding tier (venture/indie/experiment); tiers with no ranked member omitted.",
                            "additionalProperties": {
                              "type": "object",
                              "properties": {
                                "label": {
                                  "type": "string"
                                },
                                "n": {
                                  "type": "integer"
                                },
                                "median_annualized_usd": {
                                  "type": "number"
                                }
                              }
                            }
                          },
                          "url_page": {
                            "type": "string"
                          },
                          "members": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "slug": {
                                  "type": "string"
                                },
                                "name": {
                                  "type": "string"
                                },
                                "rank": {
                                  "type": [
                                    "integer",
                                    "null"
                                  ]
                                },
                                "annualized_revenue_usd": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                },
                                "revenue_disclosed": {
                                  "type": "boolean"
                                },
                                "url_profile": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/feature.json": {
      "get": {
        "summary": "Today's featured business",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/growth.json": {
      "get": {
        "summary": "Index of businesses with growth time-series",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/growth.csv": {
      "get": {
        "summary": "Growth series as CSV (header row: slug, name, as_of, label, value_usd, annualized_usd, basis, confidence, source_url, profile_url, growth_json_url). One row per chartable point; full all-metrics history CSV stays Pro.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pricing.json": {
      "get": {
        "summary": "Plans and access tiers (only Free is live)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/lessons.json": {
      "get": {
        "summary": "Every lesson, attributed, with keyword-tagged themes (rules in themes[] and method)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "method": {
                      "type": "string"
                    },
                    "themes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "keywords": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "count": {
                            "type": "integer"
                          }
                        }
                      }
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "slug": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "lesson": {
                            "type": "string"
                          },
                          "themes": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "url_profile": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/insights.json": {
      "get": {
        "summary": "Pricing-model buckets (count, median annualized revenue, n) and time to $100M rows with sources",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "method": {
                      "type": "object"
                    },
                    "caveat": {
                      "type": "string"
                    },
                    "pricing_buckets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "count": {
                            "type": "integer"
                          },
                          "n_with_revenue": {
                            "type": "integer"
                          },
                          "median_annualized_revenue_usd": {
                            "type": [
                              "number",
                              "null"
                            ]
                          }
                        }
                      }
                    },
                    "time_to_100m": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "slug": {
                            "type": "string"
                          },
                          "founded": {
                            "type": "integer"
                          },
                          "as_of": {
                            "type": "string"
                          },
                          "years": {
                            "type": "integer"
                          },
                          "value_usd": {
                            "type": "number"
                          },
                          "source_url": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/sources.json": {
      "get": {
        "summary": "Every cited source with link-check status and the businesses that use it",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "summary": {
                      "type": "object"
                    },
                    "method": {
                      "type": "string"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "source_url": {
                            "type": "string"
                          },
                          "source_name": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "used_by": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "metrics": {
                            "type": "integer"
                          },
                          "link_check": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "description": "{status, code, checked}; non-ok sources may add archive_url + archive_timestamp (an existing Wayback Machine snapshot)"
                          },
                          "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."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/changes.json": {
      "get": {
        "summary": "Dated change log of the dataset, newest first",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "method": {
                      "type": "string"
                    },
                    "counts": {
                      "type": "object"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "date": {
                            "type": "string"
                          },
                          "time_et": {
                            "type": "string"
                          },
                          "commit": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "dataset_created",
                              "business_added",
                              "business_removed",
                              "metric_added",
                              "metric_revised",
                              "metric_redated",
                              "metric_removed"
                            ]
                          },
                          "slug": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "as_of": {
                            "type": "string"
                          },
                          "value_usd": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "value_text": {
                            "type": "string"
                          },
                          "source_url": {
                            "type": "string"
                          },
                          "previous_value_usd": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "previous_as_of": {
                            "type": "string"
                          },
                          "revisions_merged": {
                            "type": "integer",
                            "description": "Same-day syncs folded into this one revision"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/growth/{slug}.json": {
      "get": {
        "summary": "Growth time-series for one business",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/api/v1/features.json": {
      "get": {
        "summary": "14-day feature rotation (entries with card_url and is_today)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/stats.json": {
      "get": {
        "summary": "Hub totals: businesses, chartable series, lessons, category/tier counts, sync-stale and older-figure counts, medians by tier and by category, revenue disclosed counts",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "generated": {
                          "type": "string"
                        },
                        "business_count": {
                          "type": "integer"
                        },
                        "ranked_count": {
                          "type": "integer"
                        },
                        "chartable_count": {
                          "type": "integer"
                        },
                        "lesson_count": {
                          "type": "integer"
                        },
                        "category_counts": {
                          "type": "object"
                        },
                        "tier_counts": {
                          "type": "object"
                        },
                        "source_sync_stale_count": {
                          "type": "integer"
                        },
                        "older_figure_count": {
                          "type": "integer"
                        },
                        "median_annualized_usd": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "median_annualized_by_tier": {
                          "type": "object",
                          "description": "tier id -> {median_annualized_usd, n}"
                        },
                        "median_annualized_by_category": {
                          "type": "object",
                          "description": "category id -> {label, n, median_annualized_usd} among ranked members"
                        },
                        "acquired_count": {
                          "type": "integer"
                        },
                        "acquired_slugs": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "revenue_disclosed_count": {
                          "type": "integer",
                          "description": "Businesses with a rankable sourced ARR/MRR/Revenue figure"
                        },
                        "revenue_undisclosed_count": {
                          "type": "integer",
                          "description": "Businesses without a rankable revenue figure (funding/valuation-only or no public $)"
                        },
                        "agent_native_count": {
                          "type": "integer",
                          "description": "Businesses marked agentic_origin=agent-native"
                        },
                        "agent_added_count": {
                          "type": "integer",
                          "description": "Businesses marked agentic_origin=agent-added"
                        },
                        "median_annualized_indie_independent": {
                          "type": "object",
                          "description": "{n, median_annualized_usd} among ranked indie businesses not acquired"
                        },
                        "latest_changelog_date": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "todays_feature": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "mcp_tool_count": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/newsletter.json": {
      "get": {
        "summary": "This week's sample newsletter issue built from the dataset and change log (nothing is emailed yet)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "date": {
                          "type": "string"
                        },
                        "since": {
                          "type": "string"
                        },
                        "subject": {
                          "type": "string"
                        },
                        "hook": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "description": "Biggest revenue jump this week (slug, label, value_usd, as_of, previous_value_usd, previous_as_of, source_url, text); null when no revenue move qualifies"
                        },
                        "feature": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "added": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "moves": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "indies": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "lesson": {
                          "type": [
                            "object",
                            "null"
                          ]
                        },
                        "upcoming": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        },
                        "markdown": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/compare.json": {
      "get": {
        "summary": "Compare two businesses by slug",
        "parameters": [
          {
            "name": "a",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "First business slug"
          },
          {
            "name": "b",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Second business slug"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "a": {
                      "type": "object"
                    },
                    "b": {
                      "type": "object"
                    },
                    "diff": {
                      "type": "object",
                      "properties": {
                        "annualized_a": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "annualized_b": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "ratio": {
                          "type": [
                            "number",
                            "null"
                          ],
                          "description": "annualized_a / annualized_b when both numeric"
                        },
                        "same_category": {
                          "type": "boolean"
                        },
                        "same_tier": {
                          "type": "boolean"
                        },
                        "same_slug": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Missing slug or not found"
          }
        }
      }
    },
    "/api/v1/search.json": {
      "get": {
        "summary": "Substring search over businesses (name, slug, one_liner, tags, lessons)",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Substring query (also accepts query=)"
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "venture",
                "indie",
                "experiment"
              ]
            }
          },
          {
            "name": "verified_only",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "true/1 keeps only businesses whose headline figure is payment-processor verified (headline_verification not null). Self-reported headlines with a verified_corroboration do not qualify."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "description": "Max results (default all, max 100)"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "query": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "total": {
                      "type": "integer"
                    },
                    "returned": {
                      "type": "integer"
                    },
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "slug": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          },
                          "tier": {
                            "type": "string"
                          },
                          "one_liner": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "lessons": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "search_text": {
                            "type": "string"
                          },
                          "annualized_revenue_usd": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "revenue_disclosed": {
                            "type": "boolean"
                          },
                          "url_profile": {
                            "type": "string"
                          },
                          "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."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}