{
  "openapi": "3.1.0",
  "info": {
    "title": "The Signal API",
    "version": "2.0.0",
    "contact": {
      "name": "Return on Security",
      "url": "https://returnonsecurity.com"
    },
    "description": "Programmatic access to Return on Security's cybersecurity market dataset — funding rounds, acquisitions, companies, investors, and analytics.\n\n## Authentication\nEvery request needs a Bearer API key. Mint one at [your account](https://signal.returnonsecurity.com/account) → **Developer → API** (new REST access is Enterprise-only; existing subscribers to the retired API add-on are grandfathered while their subscription is active), then send it as `Authorization: Bearer ros_live_…`. Pro covers one user and paid MCP tools, not new REST access. Discuss [Enterprise and data licensing](https://signal.returnonsecurity.com/enterprise?type=integration&source=docs).\n\n## Quickstart\n```bash\ncurl -H \"Authorization: Bearer ros_live_…\" \\\n  \"https://signal.returnonsecurity.com/api/v2/companies?timeframe=ytd\"\n```\n\n## Rate limits & quota\nEach key has a daily + monthly call allowance. Responses include `X-Quota-Daily-Remaining`, `X-Quota-Monthly-Remaining`, and the shared `X-Quota-Account-Monthly-Remaining`; exceeding the cap returns `429` with `Retry-After`. Back off as remaining approaches zero.\n\n## Optional intent metadata\nAI and SDK callers may send `X-Signal-Intent` and `X-Signal-SDK-Version`. Intent text is not retained verbatim: the server records only a controlled, value-free category/template and drops text it cannot classify safely.\n\n## For AI agents\nMachine-readable pricing lives at `GET /api/v2/pricing` (public, never quota-gated). Plan, entitlement and quota refusals carry an optional `upgrade` object (see the `UpgradeBlock` schema) with the required plan and a `pricing_page` link (informational plans overview) to share with your human operator — plan changes always requires a human. Check for the field rather than dereferencing it: some refusals (unauthenticated 401s, a few per-endpoint 403s) return only `{error, code}`. After an upgrade, poll `GET /api/v2/entitlement` instead of retrying a data endpoint. See also [llms.txt](https://signal.returnonsecurity.com/llms.txt), the machine-readable index of what this dataset covers.\n\n## Building an agent? Use the MCP server instead\nThe same dataset is served over the Model Context Protocol, authenticated with OAuth 2.1 rather than an API key. Tools, argument schemas and tier requirements are described in the protocol itself, so an AI client discovers what it can ask for instead of being told. Prefer it when a model is doing the calling; prefer this REST API when your own code is.\n\nFull tool reference and setup: [https://mcp.returnonsecurity.com/](https://mcp.returnonsecurity.com/). Point your MCP client at `https://mcp.returnonsecurity.com/mcp`."
  },
  "servers": [
    {
      "url": "https://signal.returnonsecurity.com",
      "description": "Production"
    }
  ],
  "security": [
    {
      "apiKey": []
    }
  ],
  "paths": {
    "/api/v2/acquisition-category-data": {
      "get": {
        "tags": ["M&A"],
        "summary": "Acquisition data broken down by category",
        "operationId": "getAcquisitionCategoryData",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeframe",
            "in": "query",
            "required": false,
            "description": "Time period: 1w, 2w, 4w, 1q, 6m, 9m, 5q, ytd, ly, ttm, custom, all (custom needs start and end; a date range wins over timeframe). Legacy 2q, 1y and 12w still work with a Deprecation header. Any other value returns 400 with the supported list.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Week offset from current week",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "week_offset",
            "in": "query",
            "required": false,
            "description": "Week offset (snake_case variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekOffset",
            "in": "query",
            "required": false,
            "description": "Week offset (camelCase variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Start date (ISO format, e.g., 2024-01-01)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "End date (ISO format, e.g., 2024-12-31)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "description": "Start date (alias for start)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "End date (alias for end)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countries",
            "in": "query",
            "required": false,
            "description": "Filter by country codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "continents",
            "in": "query",
            "required": false,
            "description": "Filter by continent codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regions",
            "in": "query",
            "required": false,
            "description": "Filter by region codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categories",
            "in": "query",
            "required": false,
            "description": "Filter by category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productCategories",
            "in": "query",
            "required": false,
            "description": "Filter by product category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryDomains",
            "in": "query",
            "required": false,
            "description": "Filter by category domain names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stages",
            "in": "query",
            "required": false,
            "description": "Filter by funding stages (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fundingVenue",
            "in": "query",
            "required": false,
            "description": "Primary capital by issuer venue: private or public; omit for both. Public means listed companies, not government grants. Does not filter M&A.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stageBuckets",
            "in": "query",
            "required": false,
            "description": "Filter by stage bucket names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acquisitionTypes",
            "in": "query",
            "required": false,
            "description": "Filter by acquisition types (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transactionRanges",
            "in": "query",
            "required": false,
            "description": "Filter by transaction amount ranges (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "exit_type",
            "in": "query",
            "required": false,
            "description": "exit_type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcquisitionCategoryDataResponse"
                },
                "example": {
                  "chart_type": "horizontal_bar",
                  "title": "M&A Activity by Product Category: Last Quarter",
                  "subtitle": "Total: 78 deals across 10 categories • Professional Services leads",
                  "categories": [
                    {
                      "name": "Professional Services",
                      "amount": 2875000,
                      "count": 14,
                      "companies": 14,
                      "domain": "Services"
                    },
                    {
                      "name": "Managed Security Services Provider (MSSP)",
                      "amount": 0,
                      "count": 12,
                      "companies": 12,
                      "domain": "Services"
                    }
                  ],
                  "metadata": {
                    "timeframe": "1q",
                    "week_offset": 0,
                    "total_acquisitions": 78,
                    "category_count": 10,
                    "current_period": {
                      "start": "2026-03-23",
                      "end": "2026-06-21"
                    },
                    "generated_at": "2026-06-25T09:30:01.707Z",
                    "unknown_count": 0,
                    "unknown_amount": 0
                  },
                  "cache_metadata": {
                    "cached_at": "2026-06-25T09:52:19.691Z",
                    "ttl": 1200,
                    "sourceType": "curated",
                    "generation": "b24e773d-2445-49d6-83da-2195c1f9de0e",
                    "timeframe": "1q",
                    "offset": 0
                  },
                  "cache_status": "HIT",
                  "response_time_ms": 18,
                  "filters_applied": null,
                  "performance_target_met": true
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/acquisition-geo-data": {
      "get": {
        "tags": ["M&A"],
        "summary": "Acquisition data broken down by target-company country",
        "operationId": "getAcquisitionGeoData",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeframe",
            "in": "query",
            "required": false,
            "description": "Time period: 1w, 2w, 4w, 1q, 6m, 9m, 5q, ytd, ly, ttm, custom, all (custom needs start and end; a date range wins over timeframe). Legacy 2q, 1y and 12w still work with a Deprecation header. Any other value returns 400 with the supported list.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Week offset from current week",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "week_offset",
            "in": "query",
            "required": false,
            "description": "Week offset (snake_case variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekOffset",
            "in": "query",
            "required": false,
            "description": "Week offset (camelCase variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Start date (ISO format, e.g., 2024-01-01)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "End date (ISO format, e.g., 2024-12-31)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "description": "Start date (alias for start)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "End date (alias for end)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countries",
            "in": "query",
            "required": false,
            "description": "Filter by country codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "continents",
            "in": "query",
            "required": false,
            "description": "Filter by continent codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regions",
            "in": "query",
            "required": false,
            "description": "Filter by region codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categories",
            "in": "query",
            "required": false,
            "description": "Filter by category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productCategories",
            "in": "query",
            "required": false,
            "description": "Filter by product category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryDomains",
            "in": "query",
            "required": false,
            "description": "Filter by category domain names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stages",
            "in": "query",
            "required": false,
            "description": "Filter by funding stages (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fundingVenue",
            "in": "query",
            "required": false,
            "description": "Primary capital by issuer venue: private or public; omit for both. Public means listed companies, not government grants. Does not filter M&A.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stageBuckets",
            "in": "query",
            "required": false,
            "description": "Filter by stage bucket names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acquisitionTypes",
            "in": "query",
            "required": false,
            "description": "Filter by acquisition types (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transactionRanges",
            "in": "query",
            "required": false,
            "description": "Filter by transaction amount ranges (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "exit_type",
            "in": "query",
            "required": false,
            "description": "exit_type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcquisitionGeoDataResponse"
                },
                "example": {
                  "chart_type": "horizontal_bar",
                  "title": "M&A Deals by Country",
                  "subtitle": "Target-company geography",
                  "countries": [
                    {
                      "name": "United States",
                      "value": 3408118385.52,
                      "count": 84,
                      "percentage": 56.4
                    },
                    {
                      "name": "Israel",
                      "value": 0,
                      "count": 17,
                      "percentage": 11.4
                    },
                    {
                      "name": "United Kingdom",
                      "value": 0,
                      "count": 12,
                      "percentage": 8.1
                    }
                  ],
                  "metadata": {
                    "timeframe": "ytd",
                    "week_offset": 0,
                    "period": {
                      "start": "2026-01-01",
                      "end": "2026-07-19"
                    },
                    "total_deals": 149,
                    "total_amount": 3408118385.52,
                    "country_count": 3
                  },
                  "cache_status": "FILTERED",
                  "response_time_ms": 42,
                  "filters_applied": {
                    "exitType": ["strategic"]
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/buyer-type": {
      "get": {
        "tags": ["M&A"],
        "summary": "Acquisitions grouped by buyer type (PE, Strategic, etc.)",
        "operationId": "getBuyerType",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeframe",
            "in": "query",
            "required": false,
            "description": "Time period: 1w, 2w, 4w, 1q, 6m, 9m, 5q, ytd, ly, ttm, custom, all (custom needs start and end; a date range wins over timeframe). Legacy 2q, 1y and 12w still work with a Deprecation header. Any other value returns 400 with the supported list.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Week offset from current week",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "week_offset",
            "in": "query",
            "required": false,
            "description": "Week offset (snake_case variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekOffset",
            "in": "query",
            "required": false,
            "description": "Week offset (camelCase variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Start date (ISO format, e.g., 2024-01-01)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "End date (ISO format, e.g., 2024-12-31)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "description": "Start date (alias for start)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "End date (alias for end)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countries",
            "in": "query",
            "required": false,
            "description": "Filter by country codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "continents",
            "in": "query",
            "required": false,
            "description": "Filter by continent codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regions",
            "in": "query",
            "required": false,
            "description": "Filter by region codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categories",
            "in": "query",
            "required": false,
            "description": "Filter by category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productCategories",
            "in": "query",
            "required": false,
            "description": "Filter by product category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryDomains",
            "in": "query",
            "required": false,
            "description": "Filter by category domain names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stages",
            "in": "query",
            "required": false,
            "description": "Filter by funding stages (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fundingVenue",
            "in": "query",
            "required": false,
            "description": "Primary capital by issuer venue: private or public; omit for both. Public means listed companies, not government grants. Does not filter M&A.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stageBuckets",
            "in": "query",
            "required": false,
            "description": "Filter by stage bucket names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acquisitionTypes",
            "in": "query",
            "required": false,
            "description": "Filter by acquisition types (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transactionRanges",
            "in": "query",
            "required": false,
            "description": "Filter by transaction amount ranges (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "exit_type",
            "in": "query",
            "required": false,
            "description": "exit_type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BuyerTypeResponse"
                },
                "example": {
                  "title": "M&A Deals by Buyer Type",
                  "subtitle": "Year to Date 2026",
                  "buyer_types": [
                    {
                      "name": "Strategic",
                      "value": 3377842385.52,
                      "count": 136,
                      "percentage": 91
                    },
                    {
                      "name": "Private Equity",
                      "value": 0,
                      "count": 13,
                      "percentage": 9
                    }
                  ],
                  "metadata": {
                    "timeframe": "ytd",
                    "week_offset": 0,
                    "period": {
                      "start": "2026-01-01",
                      "end": "2026-06-21"
                    },
                    "total_deals": 149,
                    "total_amount": 3377842385.52,
                    "unknown_count": 0,
                    "unknown_amount": 0
                  },
                  "cache_status": "MISS",
                  "response_time_ms": 8,
                  "filters_applied": null,
                  "performance_target_met": true
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/category-data": {
      "get": {
        "tags": ["Categories"],
        "summary": "Funding data broken down by category",
        "operationId": "getCategoryData",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeframe",
            "in": "query",
            "required": false,
            "description": "Time period: 1w, 2w, 4w, 1q, 6m, 9m, 5q, ytd, ly, ttm, custom, all (custom needs start and end; a date range wins over timeframe). Legacy 2q, 1y and 12w still work with a Deprecation header. Any other value returns 400 with the supported list.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Week offset from current week",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "week_offset",
            "in": "query",
            "required": false,
            "description": "Week offset (snake_case variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekOffset",
            "in": "query",
            "required": false,
            "description": "Week offset (camelCase variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Start date (ISO format, e.g., 2024-01-01)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "End date (ISO format, e.g., 2024-12-31)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "description": "Start date (alias for start)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "End date (alias for end)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countries",
            "in": "query",
            "required": false,
            "description": "Filter by country codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "continents",
            "in": "query",
            "required": false,
            "description": "Filter by continent codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regions",
            "in": "query",
            "required": false,
            "description": "Filter by region codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categories",
            "in": "query",
            "required": false,
            "description": "Filter by category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productCategories",
            "in": "query",
            "required": false,
            "description": "Filter by product category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryDomains",
            "in": "query",
            "required": false,
            "description": "Filter by category domain names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stages",
            "in": "query",
            "required": false,
            "description": "Filter by funding stages (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fundingVenue",
            "in": "query",
            "required": false,
            "description": "Primary capital by issuer venue: private or public; omit for both. Public means listed companies, not government grants. Does not filter M&A.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stageBuckets",
            "in": "query",
            "required": false,
            "description": "Filter by stage bucket names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acquisitionTypes",
            "in": "query",
            "required": false,
            "description": "Filter by acquisition types (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transactionRanges",
            "in": "query",
            "required": false,
            "description": "Filter by transaction amount ranges (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDataResponse"
                },
                "example": {
                  "chart_type": "horizontal_bar",
                  "title": "Top 10 Product Categories by Funding",
                  "subtitle": "1 Quarter: $6.55B across 144 deals • Top 10 of all categories shown",
                  "categories": [
                    {
                      "name": "Secure Networking",
                      "amount": 2600000000,
                      "count": 2,
                      "companies": 2,
                      "percentage": 39.67,
                      "domain": "Network Security"
                    },
                    {
                      "name": "Post-Quantum Cryptography (PQC)",
                      "amount": 606112880,
                      "count": 2,
                      "companies": 2,
                      "percentage": 9.25,
                      "domain": "Post-Quantum Security"
                    }
                  ],
                  "metadata": {
                    "timeframe": "1q",
                    "week_offset": 0,
                    "total_funding": 6554409033.280001,
                    "total_deals": 144,
                    "category_count": 60,
                    "current_period": {
                      "start": "2026-03-23",
                      "end": "2026-06-21"
                    },
                    "available_years": [2020, 2021],
                    "generated_at": "2026-06-25T09:30:01.707Z",
                    "data_staleness": {
                      "is_stale": false,
                      "is_very_stale": false,
                      "warning": null,
                      "latest_active_date": "2026-06-15",
                      "latest_record_date": "2026-06-18",
                      "latest_date": "2026-12-28",
                      "days_since_active": 10,
                      "days_since_record": 7,
                      "days_since_latest": -186
                    },
                    "unknown_count": 0,
                    "unknown_amount": 0
                  },
                  "cache_metadata": {
                    "cached_at": "2026-06-25T09:52:20.341Z",
                    "ttl": 1200,
                    "sourceType": "curated",
                    "generation": "b24e773d-2445-49d6-83da-2195c1f9de0e",
                    "timeframe": "1q",
                    "offset": 0
                  },
                  "cache_status": "HIT",
                  "response_time_ms": 24,
                  "filters_applied": null,
                  "performance_target_met": true
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/charts": {
      "get": {
        "tags": ["Charts"],
        "summary": "Main charts data with funding and acquisition aggregations",
        "operationId": "getCharts",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeframe",
            "in": "query",
            "required": false,
            "description": "Time period filter (e.g., 1q, 2q, 1y, ytd, all)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Week offset from current week",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "week_offset",
            "in": "query",
            "required": false,
            "description": "Week offset (snake_case variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekOffset",
            "in": "query",
            "required": false,
            "description": "Week offset (camelCase variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Start date (ISO format, e.g., 2024-01-01)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "End date (ISO format, e.g., 2024-12-31)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "description": "Start date (alias for start)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "End date (alias for end)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "view",
            "in": "query",
            "required": false,
            "description": "Chart view type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "metrics",
            "in": "query",
            "required": false,
            "description": "metrics",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countries",
            "in": "query",
            "required": false,
            "description": "Filter by country codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "continents",
            "in": "query",
            "required": false,
            "description": "Filter by continent codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regions",
            "in": "query",
            "required": false,
            "description": "Filter by region codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categories",
            "in": "query",
            "required": false,
            "description": "Filter by category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productCategories",
            "in": "query",
            "required": false,
            "description": "Filter by product category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryDomains",
            "in": "query",
            "required": false,
            "description": "Filter by category domain names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stages",
            "in": "query",
            "required": false,
            "description": "Filter by funding stages (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fundingVenue",
            "in": "query",
            "required": false,
            "description": "Primary capital by issuer venue: private or public; omit for both. Public means listed companies, not government grants. Does not filter M&A.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stageBuckets",
            "in": "query",
            "required": false,
            "description": "Filter by stage bucket names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acquisitionTypes",
            "in": "query",
            "required": false,
            "description": "Filter by acquisition types (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transactionRanges",
            "in": "query",
            "required": false,
            "description": "Filter by transaction amount ranges (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChartsResponse"
                },
                "example": {
                  "charts": {
                    "funding_trends": {
                      "chart_type": "grouped_bar",
                      "title": "Cybersecurity Funding Trends",
                      "subtitle": "Quarterly View | 2024: $5.33B | 2025: $7.73B | 2026: $6.55B | YoY: -15.2%",
                      "x_axis": ["W13", "W14"],
                      "series": [
                        {
                          "name": "2024",
                          "year": 2024,
                          "color": "#808080",
                          "data": [261776824.18, 61722353],
                          "deal_counts": [24, 13]
                        },
                        {
                          "name": "2025",
                          "year": 2025,
                          "color": "#000000",
                          "data": [462897165, 837537554.0799999],
                          "deal_counts": [16, 16]
                        }
                      ],
                      "totals": {
                        "current": 6554409033.280001,
                        "previous": 7731883728.58,
                        "historical": 5329792156.17
                      },
                      "summary": {
                        "current_amount": 6554409033.280001,
                        "current_deals": 144,
                        "previous_amount": 7731883728.58,
                        "previous_deals": 219,
                        "growth_percent": -15.228820513009039,
                        "period_label": "2026",
                        "venues": {
                          "current": {
                            "private": {
                              "amount": 6554409033.280001,
                              "count": 144
                            },
                            "public": {
                              "amount": 0,
                              "count": 0
                            }
                          },
                          "previous": {
                            "private": {
                              "amount": 7731883728.58,
                              "count": 219
                            },
                            "public": {
                              "amount": 0,
                              "count": 0
                            }
                          }
                        }
                      }
                    },
                    "ma_activity": {
                      "chart_type": "grouped_bar",
                      "title": "Cybersecurity M&A Activity",
                      "subtitle": "Quarterly View | 2024: 69 deals | 2025: 91 deals | 2026: 78 deals | YoY: -14.3%",
                      "x_axis": ["W13", "W14"],
                      "series": [
                        {
                          "name": "2024",
                          "year": 2024,
                          "color": "#808080",
                          "data": [3, 6]
                        },
                        {
                          "name": "2025",
                          "year": 2025,
                          "color": "#000000",
                          "data": [2, 5]
                        }
                      ],
                      "totals": {
                        "current": 78,
                        "previous": 91,
                        "historical": 69
                      },
                      "summary": {
                        "current_count": 78,
                        "current_amount": 948536164,
                        "previous_count": 91,
                        "previous_amount": 1226726889,
                        "growth_percent": -14.285714285714285,
                        "period_label": "2026"
                      }
                    },
                    "country_funding": {
                      "week": "Week W13 (Mar 23) - Week W25 (Jun 15), 2026",
                      "countries": [
                        {
                          "country_name": "United States",
                          "country_code": "US",
                          "country_flag": "🇺🇸",
                          "continent": "North America",
                          "lat": 0,
                          "lng": 0,
                          "funding_amount": 5620437954,
                          "deal_count": 84,
                          "top_category": "Services",
                          "stages": ["Growth Stage", "Other"]
                        },
                        {
                          "country_name": "Israel",
                          "country_code": "IL",
                          "country_flag": "🇮🇱",
                          "continent": "Asia",
                          "lat": 0,
                          "lng": 0,
                          "funding_amount": 491000000,
                          "deal_count": 11,
                          "top_category": "Threat & Vulnerability Management",
                          "stages": ["Growth Stage", "Other"]
                        }
                      ],
                      "continents": [
                        {
                          "continent_name": "North America",
                          "funding_amount": 5740050834,
                          "deal_count": 92
                        },
                        {
                          "continent_name": "Asia",
                          "funding_amount": 533540917.1,
                          "deal_count": 19
                        }
                      ],
                      "summary": {
                        "current_amount": 6541409033.280001,
                        "current_deals": 143,
                        "current_countries": 17,
                        "previous_amount": 7731883728.579999,
                        "previous_deals": 219,
                        "previous_countries": 23,
                        "top_country": {
                          "name": "United States",
                          "amount": 5620437954,
                          "deals": 84
                        },
                        "previous_top_country": {
                          "name": "United States",
                          "amount": 6774304819,
                          "deals": 142
                        },
                        "top_continent": {
                          "name": "North America",
                          "amount": 5740050834,
                          "deals": 92
                        },
                        "previous_top_continent": {
                          "name": "North America",
                          "amount": 6971252191.45,
                          "deals": 148
                        },
                        "unknown_country_amount": 0,
                        "unknown_country_deals": 0
                      }
                    }
                  },
                  "metadata": {
                    "timeframe": "1q",
                    "week_offset": 0,
                    "current_period": {
                      "start": "2026-03-23",
                      "end": "2026-06-21"
                    },
                    "previous_period": {
                      "start": "2025-03-24",
                      "end": "2025-06-22"
                    },
                    "historical_period": {
                      "start": "2024-03-25",
                      "end": "2024-06-23"
                    },
                    "navigation": {
                      "can_navigate_back": true,
                      "can_navigate_forward": false,
                      "current_offset": 0,
                      "next_offset": 0,
                      "prev_offset": 1
                    },
                    "generated_at": "2026-06-25T09:30:01.707Z",
                    "total_records": 366,
                    "years": [2020, 2021],
                    "data_staleness": {
                      "is_stale": false,
                      "is_very_stale": false,
                      "warning": null,
                      "latest_active_date": "2026-06-15",
                      "latest_record_date": "2026-06-18",
                      "latest_date": "2026-12-28",
                      "days_since_active": 10,
                      "days_since_record": 7,
                      "days_since_latest": -186
                    },
                    "enhanced_summary": {
                      "investors": {
                        "current": {
                          "by_count": [
                            {
                              "name": "Brightmind Partners",
                              "count": 5,
                              "amount": 135000000
                            },
                            {
                              "name": "Y Combinator",
                              "count": 5,
                              "amount": 33800000
                            }
                          ],
                          "by_dollars": [
                            {
                              "name": "Public Offering",
                              "amount": 2605432776,
                              "count": 3
                            },
                            {
                              "name": "Accel",
                              "amount": 780000000,
                              "count": 3
                            }
                          ]
                        },
                        "previous": {
                          "by_count": [
                            {
                              "name": "Public Offering",
                              "count": 9,
                              "amount": 2645243465
                            },
                            {
                              "name": "Ten Eleven Ventures",
                              "count": 6,
                              "amount": 730100000
                            }
                          ],
                          "by_dollars": [
                            {
                              "name": "Public Offering",
                              "amount": 2645243465,
                              "count": 9
                            },
                            {
                              "name": "Sequoia Capital",
                              "amount": 1096000000,
                              "count": 4
                            }
                          ]
                        }
                      },
                      "acquirers": {
                        "current": {
                          "by_count": [
                            {
                              "name": "Accenture",
                              "count": 3,
                              "amount": 0
                            },
                            {
                              "name": "Cycurion",
                              "count": 3,
                              "amount": 2875000
                            }
                          ],
                          "by_dollars": [
                            {
                              "name": "Cisco",
                              "amount": 400000000,
                              "count": 2
                            },
                            {
                              "name": "Akamai Technologies",
                              "amount": 205000000,
                              "count": 1
                            }
                          ]
                        },
                        "previous": {
                          "by_count": [
                            {
                              "name": "Allurity",
                              "count": 2,
                              "amount": 0
                            },
                            {
                              "name": "Proofpoint",
                              "count": 2,
                              "amount": 0
                            }
                          ],
                          "by_dollars": [
                            {
                              "name": "Zscaler",
                              "amount": 675000000,
                              "count": 1
                            },
                            {
                              "name": "Leidos Cyber",
                              "amount": 300000000,
                              "count": 1
                            }
                          ]
                        }
                      },
                      "category_growth": {
                        "funding": [
                          {
                            "name": "Agentic Runtime Security",
                            "current_count": 5,
                            "previous_count": 1,
                            "growth_rate": 400,
                            "growth_absolute": 4
                          },
                          {
                            "name": "Professional Services",
                            "current_count": 10,
                            "previous_count": 3,
                            "growth_rate": 233.33333333333334,
                            "growth_absolute": 7
                          }
                        ],
                        "funding_by_dollars": [
                          {
                            "name": "Secure Networking",
                            "current_amount": 2600000000,
                            "previous_amount": 1738422645,
                            "current_count": 2,
                            "previous_count": 6,
                            "growth_rate": 49.56086815125444,
                            "growth_absolute": 861577355
                          },
                          {
                            "name": "Post-Quantum Cryptography (PQC)",
                            "current_amount": 606112880,
                            "previous_amount": 179212539,
                            "current_count": 2,
                            "previous_count": 2,
                            "growth_rate": 238.20896873739397,
                            "growth_absolute": 426900341
                          }
                        ],
                        "acquisitions": [
                          {
                            "name": "Not Cyber Related",
                            "current_count": 4,
                            "previous_count": 0,
                            "growth_rate": 100,
                            "growth_absolute": 4
                          },
                          {
                            "name": "Breach & Attack Simulation (BAS)",
                            "current_count": 1,
                            "previous_count": 0,
                            "growth_rate": 100,
                            "growth_absolute": 1
                          }
                        ],
                        "funding_previous": [
                          {
                            "name": "Secure Networking",
                            "current_count": 6,
                            "previous_count": 1,
                            "growth_rate": 500,
                            "growth_absolute": 5
                          },
                          {
                            "name": "Personal Cybersecurity",
                            "current_count": 4,
                            "previous_count": 1,
                            "growth_rate": 300,
                            "growth_absolute": 3
                          }
                        ],
                        "funding_by_dollars_previous": [
                          {
                            "name": "Secure Networking",
                            "current_amount": 1738422645,
                            "previous_amount": 22695169,
                            "current_count": 6,
                            "previous_count": 1,
                            "growth_rate": 7559.8797083203035,
                            "growth_absolute": 1715727476
                          },
                          {
                            "name": "Privileged Access Management (PAM)",
                            "current_amount": 1100000000,
                            "previous_amount": 34000000,
                            "current_count": 2,
                            "previous_count": 1,
                            "growth_rate": 3135.2941176470586,
                            "growth_absolute": 1066000000
                          }
                        ],
                        "acquisitions_previous": [
                          {
                            "name": "Email Security",
                            "current_count": 3,
                            "previous_count": 1,
                            "growth_rate": 200,
                            "growth_absolute": 2
                          },
                          {
                            "name": "Data Privacy",
                            "current_count": 3,
                            "previous_count": 1,
                            "growth_rate": 200,
                            "growth_absolute": 2
                          }
                        ]
                      },
                      "top_categories": {
                        "funding": {
                          "current": {
                            "name": "Secure Networking",
                            "amount": 2600000000,
                            "count": 2
                          },
                          "previous": {
                            "name": "Secure Networking",
                            "amount": 1738422645,
                            "count": 6
                          }
                        },
                        "acquisitions": {
                          "current": {
                            "name": "Non-Human Identity (NHI) Security",
                            "amount": 400000000,
                            "count": 2
                          },
                          "previous": {
                            "name": "Managed Detection and Response (MDR)",
                            "amount": 675000000,
                            "count": 1
                          }
                        }
                      }
                    },
                    "week_buckets": "calendar-year",
                    "funding_venues": "private-public",
                    "cyber_scope": "cyber-target"
                  },
                  "cache_status": "BYPASS",
                  "response_time_ms": 135,
                  "performance_target_met": true,
                  "filters_applied": null
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/companies": {
      "get": {
        "tags": ["Companies"],
        "summary": "List all tracked companies",
        "operationId": "getCompanies",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countries",
            "in": "query",
            "required": false,
            "description": "Filter by country codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "funding_status",
            "in": "query",
            "required": false,
            "description": "Filter by funding status — funded (default: has funding or acquisition events), unfunded (complete profile with no public funding), or all. Non-default values require Pro/Team/Enterprise.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "product_category",
            "in": "query",
            "required": false,
            "description": "product_category",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stage",
            "in": "query",
            "required": false,
            "description": "stage",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category_domain",
            "in": "query",
            "required": false,
            "description": "category_domain",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Name search. Folds punctuation, accents and corporate suffixes, matches words in any order, and resolves stock tickers and known aliases. Results are ordered best-match-first.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "export",
            "in": "query",
            "required": false,
            "description": "export",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of results to return (on list endpoints: page size, 1–200, default 50)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "Opaque pagination cursor from a prior response's metadata.next_cursor. Keyset-based, so it stays stable when rows are inserted. Omit for the first page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "investor",
            "in": "query",
            "required": false,
            "description": "On /api/v2/companies: return only the portfolio companies of the investor with this name (case-insensitive; also an exact alias or the displayed name). Signed-in callers only (401 auth_required when anonymous). An unknown name returns no rows; metadata.relationship { matched, name, matched_by } tells an unknown name from a known entity with no rows.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompaniesResponse"
                },
                "example": {
                  "companies": [
                    {
                      "name": "Wiz",
                      "total_funding": 1900000000,
                      "period_funding": 1000000000,
                      "funding_round_count": 6,
                      "acquisition_count": 2,
                      "acquired_by_count": 0,
                      "categories": ["Cloud Security"],
                      "product_categories": ["CNAPP", "CSPM"],
                      "latest_activity": "2025-05-01",
                      "latest_stage": "Series E",
                      "has_funding": true,
                      "stages": ["Series A", "Series B", "Series C", "Series D", "Series E"],
                      "country": "United States",
                      "url": "https://www.wiz.io",
                      "status": "active"
                    }
                  ],
                  "metadata": {
                    "total_companies": 1,
                    "total_available": 4200,
                    "total_funding": 1900000000,
                    "total_deals": 6,
                    "active_90d": 1,
                    "total_unfunded": 0,
                    "funding_status": "all",
                    "response_time_ms": 42,
                    "generated_at": "2026-06-25T00:00:00.000Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/companies/{name}": {
      "get": {
        "tags": ["Companies"],
        "summary": "Get detailed data for a specific company. Pro+ company_outlook v5 provides evidence-based viability and momentum indices with separate coverage, operating facts and dated funding observations; legacy growth_score and growth_signals remain null.",
        "operationId": "getCompaniesName",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "description": "Path parameter: name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include_outlook",
            "in": "query",
            "required": false,
            "description": "Set to false to omit the outlook calculation from company detail. The profile UI loads it separately through the intelligence endpoint. Defaults to included for entitled callers.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyDetailResponse"
                },
                "example": {
                  "company": {
                    "name": "Akamai Technologies",
                    "url": "https://www.akamai.com/",
                    "linkedin": "http://www.linkedin.com/company/akamai-technologies",
                    "description": "secure networking and website security platform",
                    "country": "United States",
                    "city": "Cambridge",
                    "founded": "1998-08-01",
                    "status": "Public",
                    "type": "Product",
                    "category_domain": "Network Security",
                    "logo": "https://t1.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=http://www.akamai.com&size=64",
                    "ticker": "AKAM",
                    "total_funding": 5235000000,
                    "valuation": 0,
                    "funding_rounds": [
                      {
                        "id": "rec_example",
                        "amount": 2600000000,
                        "date": "2026-05-18",
                        "stage": "Post-IPO",
                        "category": "Secure Networking",
                        "investors": ["Public Offering"],
                        "lead_investors": ["Public Offering"],
                        "other_investors": [],
                        "valuation": 0,
                        "round_type": "Post-IPO",
                        "is_secondary": false
                      },
                      {
                        "id": "rec_example",
                        "amount": 1500000000,
                        "date": "2025-05-14",
                        "stage": "Post-IPO",
                        "category": "Secure Networking",
                        "investors": ["Public Offering"],
                        "lead_investors": ["Public Offering"],
                        "other_investors": [],
                        "valuation": 0,
                        "round_type": "Post-IPO",
                        "is_secondary": false
                      }
                    ],
                    "acquisitions_made": [
                      {
                        "id": "am-3",
                        "target": "LayerX Security",
                        "amount": 205000000,
                        "date": "2026-05-14",
                        "category": "Endpoint Protection",
                        "outcome": null
                      },
                      {
                        "id": "am-2",
                        "target": "Noname Security",
                        "amount": 450000000,
                        "date": "2024-05-06",
                        "category": "Application Security",
                        "outcome": null
                      }
                    ],
                    "acquired_by": [],
                    "categories": ["Network Security"],
                    "latest_activity": "2026-05-18",
                    "growth_score": null,
                    "growth_signals": null,
                    "ipo_history": [],
                    "public_lifecycle": {
                      "date_public": "1999-10-29",
                      "date_taken_private": null,
                      "time_to_public_years": 1,
                      "time_to_private_years": "26 years since public",
                      "type": "Hybrid",
                      "exchange": "NASDAQ",
                      "last_price_before_delisting": null
                    },
                    "layoffs": [],
                    "partnerships": [],
                    "premium_signals_available": {
                      "layoffs": true,
                      "shutdown": false,
                      "partnerships": true,
                      "distress": false
                    },
                    "product_categories": [],
                    "entity_transitions": [],
                    "signal_url": "https://signal.returnonsecurity.com/companies/Akamai%20Technologies"
                  },
                  "metadata": {
                    "response_time_ms": 607,
                    "generated_at": "2026-06-25T09:30:01.707Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "404": {
            "description": "Not found — no entity matches the path parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/company-type": {
      "get": {
        "tags": ["Companies"],
        "summary": "Acquisitions grouped by company type",
        "operationId": "getCompanyType",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeframe",
            "in": "query",
            "required": false,
            "description": "Time period: 1w, 2w, 4w, 1q, 6m, 9m, 5q, ytd, ly, ttm, custom, all (custom needs start and end; a date range wins over timeframe). Legacy 2q, 1y and 12w still work with a Deprecation header. Any other value returns 400 with the supported list.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Week offset from current week",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "week_offset",
            "in": "query",
            "required": false,
            "description": "Week offset (snake_case variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekOffset",
            "in": "query",
            "required": false,
            "description": "Week offset (camelCase variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Start date (ISO format, e.g., 2024-01-01)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "End date (ISO format, e.g., 2024-12-31)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "description": "Start date (alias for start)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "End date (alias for end)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countries",
            "in": "query",
            "required": false,
            "description": "Filter by country codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "continents",
            "in": "query",
            "required": false,
            "description": "Filter by continent codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regions",
            "in": "query",
            "required": false,
            "description": "Filter by region codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categories",
            "in": "query",
            "required": false,
            "description": "Filter by category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productCategories",
            "in": "query",
            "required": false,
            "description": "Filter by product category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryDomains",
            "in": "query",
            "required": false,
            "description": "Filter by category domain names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stages",
            "in": "query",
            "required": false,
            "description": "Filter by funding stages (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fundingVenue",
            "in": "query",
            "required": false,
            "description": "Primary capital by issuer venue: private or public; omit for both. Public means listed companies, not government grants. Does not filter M&A.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stageBuckets",
            "in": "query",
            "required": false,
            "description": "Filter by stage bucket names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acquisitionTypes",
            "in": "query",
            "required": false,
            "description": "Filter by acquisition types (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transactionRanges",
            "in": "query",
            "required": false,
            "description": "Filter by transaction amount ranges (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyTypeResponse"
                },
                "example": {
                  "title": "M&A Deals by Company Type",
                  "subtitle": "Year to Date 2026",
                  "company_types": [
                    {
                      "name": "Product",
                      "value": 2969967385.52,
                      "count": 85,
                      "percentage": 57
                    },
                    {
                      "name": "Service",
                      "value": 407875000,
                      "count": 64,
                      "percentage": 43
                    }
                  ],
                  "metadata": {
                    "timeframe": "ytd",
                    "week_offset": 0,
                    "period": {
                      "start": "2026-01-01",
                      "end": "2026-06-21"
                    },
                    "total_deals": 149,
                    "total_amount": 3377842385.52,
                    "unknown_count": 0,
                    "unknown_amount": 0
                  },
                  "cache_status": "MISS",
                  "response_time_ms": 12,
                  "filters_applied": null,
                  "performance_target_met": true
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/entitlement": {
      "get": {
        "tags": ["Pricing"],
        "summary": "The caller's current plan, API entitlement, and remaining quota. Poll this (at most once a minute) to detect an upgrade landing instead of retrying a data endpoint; it answers while entitlement is lapsed, which is exactly when it matters.",
        "operationId": "getEntitlement",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntitlementStatus"
                },
                "example": {
                  "plan": "pro",
                  "status": "active",
                  "api_access": false,
                  "quota": {
                    "daily_remaining": null,
                    "monthly_remaining": null
                  },
                  "pricing_url": "https://signal.returnonsecurity.com/api/v2/pricing",
                  "agent_instructions": "Not yet entitled. Share the upgrade.pricing_page link (informational plans overview) from the refusal with your operator; if they change plans, poll this endpoint at most once a minute until api_access is true."
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/filter-options": {
      "get": {
        "tags": ["Charts"],
        "summary": "Available filter options for the UI",
        "operationId": "getFilterOptions",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FilterOptionsResponse"
                },
                "example": {
                  "success": true,
                  "filters": {
                    "countries": ["Argentina", "Armenia"],
                    "continents": ["Africa", "Asia"],
                    "regions": ["US", "UK"],
                    "fundingCategories": ["AI Adversary Simulation", "AI Governance"],
                    "acquisitionCategories": ["AI Adversary Simulation", "AI Governance"],
                    "productCategories": [],
                    "categoryDomains": ["AI for Security", "Application Security"],
                    "stages": ["Growth Stage", "Growth Stage"],
                    "stageBuckets": ["Alternative Funding", "Early Stage"],
                    "acquisitionTypes": ["Acquisition", "Divestiture"],
                    "transactionRanges": ["$0-$100k", "$100M-$250M"],
                    "companyTypes": []
                  },
                  "counts": {
                    "countries": 71,
                    "continents": 6,
                    "regions": 7,
                    "productCategories": 0,
                    "stages": 8544,
                    "stageBuckets": 5,
                    "transactionRanges": 12,
                    "acquisitionTypes": 4
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/funding-stage-percentiles": {
      "get": {
        "tags": ["Funding"],
        "summary": "Funding amount percentile heatmap by stage",
        "operationId": "getFundingStagePercentiles",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "Filter by calendar year",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "description": "Filter by product domain",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeframe",
            "in": "query",
            "required": false,
            "description": "Time period filter (e.g., 1q, 2q, 1y, ytd, all)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Week offset from current week",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "week_offset",
            "in": "query",
            "required": false,
            "description": "Week offset (snake_case variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekOffset",
            "in": "query",
            "required": false,
            "description": "Week offset (camelCase variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Start date (ISO format, e.g., 2024-01-01)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "End date (ISO format, e.g., 2024-12-31)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "description": "Start date (alias for start)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "End date (alias for end)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundingStagePercentilesResponse"
                },
                "example": {
                  "year": 2026,
                  "domain": "all",
                  "stages": ["Seed", "Series A"],
                  "percentiles": [25, 50],
                  "data": [
                    {
                      "stage": "Series C",
                      "percentile": 25,
                      "value": 24235023.175
                    },
                    {
                      "stage": "Series C",
                      "percentile": 50,
                      "value": 50000000
                    }
                  ],
                  "metadata": {
                    "source": "funding_stage_summary",
                    "total_records": 182,
                    "cache_status": "HIT",
                    "response_time_ms": 25
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/funding/history": {
      "get": {
        "tags": ["Funding"],
        "summary": "Yearly funding totals (private and public primary capital) with their private and public parts",
        "operationId": "getFundingHistory",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "years",
            "in": "query",
            "required": false,
            "description": "Number of trailing years to include (integer 1–50; window is floored at 2021 on most endpoints). Two exceptions are not floored: /api/v2/funding/history?include=venue and /api/v2/funding/instrument-breakdown, both public-market issuance (SEC-filed), not VC self-reported data, so the pre-2021 reliability floor does not apply.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "required": false,
            "description": "Opt into add-on data. On /api/v2/ma/history, 'exit_types' attaches the per-year exit-type breakdown (Pro plan required; 403 for free callers). On /api/v2/funding/history, 'venue' extends the window before 2021 for the private/public view (free, no tier gate); every response already carries funding_amounts (private + public), private_amounts, public_amounts, private_deal_counts and public_deal_counts. On /api/v2/ipo, 'all' returns the full listing ledger including take-privates and delistings, which the endpoint otherwise excludes.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundingHistoryResponse"
                },
                "example": {
                  "years": ["2021", "2022"],
                  "funding_amounts": [29828201377.94, 23093887966.96],
                  "deal_counts": [1160, 914],
                  "metadata": {
                    "start_year": 2021,
                    "end_year": 2026,
                    "total_funding": 119469644115.02998,
                    "total_deals": 4716,
                    "response_time_ms": 23,
                    "venue_included": false
                  },
                  "private_amounts": [29828201377.94, 23093887966.96],
                  "public_amounts": [0, 0],
                  "private_deal_counts": [1160, 914],
                  "public_deal_counts": [0, 0]
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/funding/instrument-breakdown": {
      "get": {
        "tags": ["Funding"],
        "summary": "Public-market capital by instrument type (senior notes, convertible notes, ATM equity, warrant activity) over time",
        "operationId": "getFundingInstrumentBreakdown",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "years",
            "in": "query",
            "required": false,
            "description": "Number of trailing years to include (integer 1–50; window is floored at 2021 on most endpoints). Two exceptions are not floored: /api/v2/funding/history?include=venue and /api/v2/funding/instrument-breakdown, both public-market issuance (SEC-filed), not VC self-reported data, so the pre-2021 reliability floor does not apply.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstrumentBreakdownResponse"
                },
                "example": {
                  "years": ["2023", "2024", "2025 YTD"],
                  "series": {
                    "Senior Notes": [6500000000, 18500000000, 2000000000],
                    "Convertible Notes": [280171, 460000000, 2000000000],
                    "ATM Equity": [4700000, 9800000, 2063792]
                  },
                  "metadata": {
                    "start_year": 2023,
                    "end_year": 2025,
                    "instruments": ["Senior Notes", "Convertible Notes", "ATM Equity"],
                    "total_public_capital": 30547635763,
                    "response_time_ms": 14
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/investors": {
      "get": {
        "tags": ["Investors"],
        "summary": "List all tracked investors",
        "operationId": "getInvestors",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of results to return (on list endpoints: page size, 1–200, default 50)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "Opaque pagination cursor from a prior response's metadata.next_cursor. Keyset-based, so it stays stable when rows are inserted. Omit for the first page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stage",
            "in": "query",
            "required": false,
            "description": "stage",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category_domain",
            "in": "query",
            "required": false,
            "description": "category_domain",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countries",
            "in": "query",
            "required": false,
            "description": "Filter by country codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "country",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Name search. Folds punctuation, accents and corporate suffixes, matches words in any order, and resolves stock tickers and known aliases. Results are ordered best-match-first.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "client_filtered",
            "in": "query",
            "required": false,
            "description": "client_filtered",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "company",
            "in": "query",
            "required": false,
            "description": "On /api/v2/investors: return only the investors in the company with this name (case-insensitive; also an exact alias or the displayed name). Signed-in callers only (401 auth_required when anonymous). An unknown name returns no rows; metadata.relationship { matched, name, matched_by } tells an unknown name from a known entity with no rows.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvestorsResponse"
                },
                "example": {
                  "investors": [
                    {
                      "name": "Sequoia Capital",
                      "deal_count": 120,
                      "disclosed_deal_count": 95,
                      "undisclosed_deal_count": 25,
                      "lead_count": 40,
                      "participated_count": 80,
                      "total_invested": 5400000000,
                      "period_deployed": 300000000,
                      "avg_deal_size": 56800000,
                      "companies": ["Wiz", "Abnormal Security"],
                      "stages": ["Series A", "Series B", "Series C"],
                      "categories": ["Cloud Security", "Email Security"],
                      "product_categories": ["CNAPP", "Email Security"],
                      "countries": ["United States", "Israel"],
                      "latest_activity": "2025-05-01",
                      "government_linked_tier": null,
                      "government_linked_country": null,
                      "government_linked_since": null
                    }
                  ],
                  "metadata": {
                    "total_investors": 1,
                    "total_available": 1800,
                    "total_capital": 5400000000,
                    "total_deals": 120,
                    "total_portfolio_companies": 2,
                    "active_90d": 1,
                    "response_time_ms": 38,
                    "generated_at": "2026-06-25T00:00:00.000Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/investors/{name}": {
      "get": {
        "tags": ["Investors"],
        "summary": "Get detailed data for a specific investor",
        "operationId": "getInvestorsName",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "description": "Path parameter: name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvestorDetailResponse"
                },
                "example": {
                  "investor": {
                    "name": "Sequoia Capital",
                    "url": "http://www.sequoiacap.com",
                    "linkedin": "http://www.linkedin.com/company/sequoia",
                    "country": "United States",
                    "type": "Venture Capital",
                    "founded": "1972",
                    "logo": "https://t3.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=http://www.sequoiacap.com&size=64",
                    "deal_count": 128,
                    "disclosed_deal_count": 128,
                    "undisclosed_deal_count": 0,
                    "lead_count": 75,
                    "participated_count": 53,
                    "total_invested": 9681818153,
                    "avg_deal_size": 75639204,
                    "exit_count": 19,
                    "exits": [
                      {
                        "company": "Coana",
                        "acquirer": "Socket",
                        "amount": 0,
                        "date": "2026-05-18",
                        "category": "Software Composition Analysis (SCA)",
                        "scope": null,
                        "exit_type": null,
                        "qualifier": null,
                        "outcome": "COMPLETED"
                      },
                      {
                        "company": "StrongDM",
                        "acquirer": "Delinea",
                        "amount": 0,
                        "date": "2026-01-12",
                        "category": "Privileged Access Management (PAM)",
                        "scope": null,
                        "exit_type": null,
                        "qualifier": null,
                        "outcome": "COMPLETED"
                      }
                    ],
                    "funding_rounds": [
                      {
                        "id": "rec_example",
                        "company": "Ent.AI",
                        "amount": 100000000,
                        "date": "2026-06-16",
                        "stage": "Seed",
                        "category": "Endpoint Protection",
                        "display_role": "secondary",
                        "is_lead_explicit": false
                      },
                      {
                        "id": "rec_example",
                        "company": "Cyera",
                        "amount": 600000000,
                        "date": "2026-06-02",
                        "stage": "Series E+",
                        "category": "Data Security Posture Management (DSPM)",
                        "display_role": "secondary",
                        "is_lead_explicit": false
                      }
                    ],
                    "portfolio_companies": [
                      {
                        "name": "Cyera",
                        "total_funded": 1956000000,
                        "round_count": 7,
                        "stages": ["Series A", "Series B"],
                        "latest_date": "2026-06-02",
                        "relationship": "both"
                      },
                      {
                        "name": "Wiz",
                        "total_funded": 1100000000,
                        "round_count": 2,
                        "stages": ["Series A", "Series E+"],
                        "latest_date": "2024-05-06",
                        "relationship": "both"
                      }
                    ],
                    "portfolio_countries": [
                      {
                        "country": "United States",
                        "deal_count": 120
                      },
                      {
                        "country": "Israel",
                        "deal_count": 3
                      }
                    ],
                    "categories": ["AI for Security", "Application Security"],
                    "stages": ["Growth Stage", "Pre-Seed"],
                    "latest_activity": "2026-06-16",
                    "government_linked_tier": null,
                    "government_linked_country": null,
                    "government_linked_since": null,
                    "investor_types": null,
                    "signal_url": "https://signal.returnonsecurity.com/investors/Sequoia%20Capital",
                    "exit_event_count": 2
                  },
                  "metadata": {
                    "response_time_ms": 267,
                    "generated_at": "2026-06-25T09:30:01.707Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "404": {
            "description": "Not found — no entity matches the path parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/ma/history": {
      "get": {
        "tags": ["M&A"],
        "summary": "Annual M&A history — deal counts and disclosed values per year (exit-type breakdown for Pro callers)",
        "operationId": "getMaHistory",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "years",
            "in": "query",
            "required": false,
            "description": "Number of trailing years to include (integer 1–50; window is floored at 2021 on most endpoints). Two exceptions are not floored: /api/v2/funding/history?include=venue and /api/v2/funding/instrument-breakdown, both public-market issuance (SEC-filed), not VC self-reported data, so the pre-2021 reliability floor does not apply.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "required": false,
            "description": "Opt into add-on data. On /api/v2/ma/history, 'exit_types' attaches the per-year exit-type breakdown (Pro plan required; 403 for free callers). On /api/v2/funding/history, 'venue' extends the window before 2021 for the private/public view (free, no tier gate); every response already carries funding_amounts (private + public), private_amounts, public_amounts, private_deal_counts and public_deal_counts. On /api/v2/ipo, 'all' returns the full listing ledger including take-privates and delistings, which the endpoint otherwise excludes.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaYearlyHistoryResponse"
                },
                "example": {
                  "years": ["2024", "2025", "2026 YTD"],
                  "acquisition_amounts": [12500000000, 9800000000, 3408118385],
                  "deal_counts": [310, 288, 164],
                  "metadata": {
                    "start_year": 2024,
                    "end_year": 2026,
                    "total_amount": 25708118385,
                    "total_deals": 762,
                    "exit_types_included": false,
                    "response_time_ms": 38
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/pricing": {
      "get": {
        "tags": ["Pricing"],
        "summary": "Machine-readable pricing catalog — plans, prices, and call allowances. Public and never quota-gated; the `upgrade.pricing_url` every paywall/quota refusal points at.",
        "operationId": "getPricing",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PricingCatalog"
                },
                "example": {
                  "version": "2026-10-09",
                  "currency": "USD",
                  "plans": {
                    "free": {
                      "price_monthly": 0,
                      "price_annual": 0,
                      "seats": 1,
                      "mcp_calls_per_day": 180,
                      "company_enrichments_per_month": 50,
                      "api_access": false,
                      "notes": "Company lookup, category momentum, and other discovery tools via MCP. No REST API access."
                    },
                    "pro": {
                      "price_monthly": 199,
                      "price_annual": 1799,
                      "price_basis": "per_seat",
                      "seats": 1,
                      "mcp_calls_per_day": 400,
                      "company_enrichments_per_month": "Unlimited",
                      "api_access": false,
                      "notes": "Per-seat pricing; each subscription covers one user. For analysts, investors and advisors researching the cybersecurity market: full database, market overviews, premium timeframes, investor deep-dives, graph traversal, forecasting. Team access is available through Enterprise."
                    },
                    "enterprise": {
                      "price_monthly": null,
                      "price_annual": null,
                      "seats": null,
                      "mcp_calls_per_day": "Unlimited",
                      "company_enrichments_per_month": "Unlimited",
                      "api_access": true,
                      "api_quota": "unlimited",
                      "notes": "Custom contract for organisations and teams, with team seats tailored to the organisation. Includes everything in Pro, full REST API access, bulk export/OEM options, custom integrations, dedicated support, and enterprise-only tools and parameters. AI training, embedding and redistribution rights require an explicit agreement."
                    }
                  },
                  "add_ons": {
                    "api": {
                      "available": false,
                      "retired_on": "2026-09-19",
                      "replaced_by": "enterprise",
                      "price_monthly": 79,
                      "requires_plan": ["pro"],
                      "includes": {
                        "rest_api_access": true,
                        "key_auth": "Authorization: Bearer ros_live_…",
                        "calls_per_day": 1000,
                        "calls_per_month": 30000
                      },
                      "notes": "RETIRED — no longer purchasable. Programmatic API access is part of Enterprise. Existing subscribers keep access until their subscription ends."
                    }
                  },
                  "agent_access": {
                    "identity_model": "Credentials are owned by a human or org account. Agents use delegated, revocable credentials: an MCP OAuth grant or a ros_live_ API key minted by their operator.",
                    "payment_model": "Plan changes require a human. When a response carries an `upgrade` object, tell your operator the feature is not available on the current plan and share upgrade.pricing_page (an informational plans overview); retry if they change plans.",
                    "mcp": "https://mcp.returnonsecurity.com/mcp",
                    "rest_openapi": "https://signal.returnonsecurity.com/api/v2/openapi.json"
                  },
                  "endpoints": {
                    "pricing_page": "https://signal.returnonsecurity.com/pricing",
                    "pricing_api": "https://signal.returnonsecurity.com/api/v2/pricing",
                    "enterprise_enquiry": "https://signal.returnonsecurity.com/enterprise",
                    "docs": "https://docs.returnonsecurity.com/",
                    "mcp": "https://mcp.returnonsecurity.com/mcp"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": []
      }
    },
    "/api/v2/ranges/breakdown": {
      "get": {
        "tags": ["Funding"],
        "summary": "Transaction range breakdown analysis",
        "operationId": "getRangesBreakdown",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeframe",
            "in": "query",
            "required": false,
            "description": "Time period filter (e.g., 1q, 2q, 1y, ytd, all)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Week offset from current week",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "week_offset",
            "in": "query",
            "required": false,
            "description": "Week offset (snake_case variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekOffset",
            "in": "query",
            "required": false,
            "description": "Week offset (camelCase variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groupBy",
            "in": "query",
            "required": false,
            "description": "Group results by this field",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Start date (ISO format, e.g., 2024-01-01)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "End date (ISO format, e.g., 2024-12-31)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "description": "Start date (alias for start)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "End date (alias for end)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countries",
            "in": "query",
            "required": false,
            "description": "Filter by country codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "continents",
            "in": "query",
            "required": false,
            "description": "Filter by continent codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regions",
            "in": "query",
            "required": false,
            "description": "Filter by region codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categories",
            "in": "query",
            "required": false,
            "description": "Filter by category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productCategories",
            "in": "query",
            "required": false,
            "description": "Filter by product category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryDomains",
            "in": "query",
            "required": false,
            "description": "Filter by category domain names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stages",
            "in": "query",
            "required": false,
            "description": "Filter by funding stages (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fundingVenue",
            "in": "query",
            "required": false,
            "description": "Primary capital by issuer venue: private or public; omit for both. Public means listed companies, not government grants. Does not filter M&A.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stageBuckets",
            "in": "query",
            "required": false,
            "description": "Filter by stage bucket names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acquisitionTypes",
            "in": "query",
            "required": false,
            "description": "Filter by acquisition types (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transactionRanges",
            "in": "query",
            "required": false,
            "description": "Filter by transaction amount ranges (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RangesBreakdownResponse"
                },
                "example": {
                  "success": true,
                  "ranges": ["$0-$100k", "$100k-$1M"],
                  "periods": ["2024", "2025"],
                  "group_by": "year",
                  "data": {
                    "$0-$100k": {
                      "2024": {
                        "funding": 504765,
                        "deals": 9,
                        "avgDeal": 56085
                      },
                      "2025": {
                        "funding": 609473.48,
                        "deals": 15,
                        "avgDeal": 40631.57
                      },
                      "2026": {
                        "funding": 345000,
                        "deals": 7,
                        "avgDeal": 49285.71
                      }
                    },
                    "$100k-$1M": {
                      "2024": {
                        "funding": 33392636.790000003,
                        "deals": 68,
                        "avgDeal": 491068.19
                      },
                      "2025": {
                        "funding": 34502456.20999999,
                        "deals": 61,
                        "avgDeal": 565614.04
                      },
                      "2026": {
                        "funding": 8403473.41,
                        "deals": 18,
                        "avgDeal": 466859.63
                      }
                    },
                    "$1M-$5M": {
                      "2024": {
                        "funding": 476568250.6100001,
                        "deals": 157,
                        "avgDeal": 3035466.56
                      },
                      "2025": {
                        "funding": 452862314.4700001,
                        "deals": 152,
                        "avgDeal": 2979357.33
                      },
                      "2026": {
                        "funding": 192205052.65,
                        "deals": 58,
                        "avgDeal": 3313880.22
                      }
                    },
                    "$5M-$10M": {
                      "2024": {
                        "funding": 761456653.61,
                        "deals": 102,
                        "avgDeal": 7465261.31
                      },
                      "2025": {
                        "funding": 990292649.12,
                        "deals": 125,
                        "avgDeal": 7922341.19
                      },
                      "2026": {
                        "funding": 288412578.34,
                        "deals": 38,
                        "avgDeal": 7589804.69
                      }
                    },
                    "$10M-$25M": {
                      "2024": {
                        "funding": 1788463997.0400002,
                        "deals": 106,
                        "avgDeal": 16872301.86
                      },
                      "2025": {
                        "funding": 2268680919.42,
                        "deals": 137,
                        "avgDeal": 16559714.74
                      },
                      "2026": {
                        "funding": 1038450196.35,
                        "deals": 57,
                        "avgDeal": 18218424.5
                      }
                    },
                    "$25M-$50M": {
                      "2024": {
                        "funding": 2397127526.21,
                        "deals": 67,
                        "avgDeal": 35778022.78
                      },
                      "2025": {
                        "funding": 2683860974.21,
                        "deals": 75,
                        "avgDeal": 35784812.99
                      },
                      "2026": {
                        "funding": 1327686830,
                        "deals": 36,
                        "avgDeal": 36880189.72
                      }
                    },
                    "$50M-$100M": {
                      "2024": {
                        "funding": 2352757815,
                        "deals": 31,
                        "avgDeal": 75895413.39
                      },
                      "2025": {
                        "funding": 3391768543.44,
                        "deals": 47,
                        "avgDeal": 72165288.16
                      },
                      "2026": {
                        "funding": 1092357664,
                        "deals": 16,
                        "avgDeal": 68272354
                      }
                    },
                    "$100M-$250M": {
                      "2024": {
                        "funding": 3433942312.95,
                        "deals": 22,
                        "avgDeal": 156088286.95
                      },
                      "2025": {
                        "funding": 3917478901.35,
                        "deals": 25,
                        "avgDeal": 156699156.05
                      },
                      "2026": {
                        "funding": 1687217992,
                        "deals": 11,
                        "avgDeal": 153383453.82
                      }
                    },
                    "$250M-$500M": {
                      "2024": {
                        "funding": 2375000000,
                        "deals": 7,
                        "avgDeal": 339285714.29
                      },
                      "2025": {
                        "funding": 3405000000,
                        "deals": 9,
                        "avgDeal": 378333333.33
                      },
                      "2026": {
                        "funding": 1535000000,
                        "deals": 4,
                        "avgDeal": 383750000
                      }
                    },
                    "$500M-$1B": {
                      "2024": {
                        "funding": 1972327087.79,
                        "deals": 3,
                        "avgDeal": 657442362.6
                      },
                      "2025": {
                        "funding": 1240000000,
                        "deals": 2,
                        "avgDeal": 620000000
                      },
                      "2026": {
                        "funding": 600000000,
                        "deals": 1,
                        "avgDeal": 600000000
                      }
                    },
                    "≥ $1B": {
                      "2024": {
                        "funding": 1000000000,
                        "deals": 1,
                        "avgDeal": 1000000000
                      },
                      "2025": {
                        "funding": 7310000000,
                        "deals": 5,
                        "avgDeal": 1462000000
                      },
                      "2026": {
                        "funding": 2600000000,
                        "deals": 1,
                        "avgDeal": 2600000000
                      }
                    },
                    "Undisclosed": {
                      "2024": {
                        "funding": 0,
                        "deals": 159,
                        "avgDeal": 0
                      },
                      "2025": {
                        "funding": 0,
                        "deals": 136,
                        "avgDeal": 0
                      },
                      "2026": {
                        "funding": 0,
                        "deals": 63,
                        "avgDeal": 0
                      }
                    }
                  },
                  "filters_applied": null,
                  "cache_status": "MISS",
                  "response_time_ms": 40,
                  "metadata": {
                    "total_records": 8551,
                    "response_time_ms": 40,
                    "cached": true,
                    "generated_at": "2026-06-25T09:54:54.723Z",
                    "current_period": {
                      "start": "2026-04-06",
                      "end": "2026-06-28"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/stages/distribution": {
      "get": {
        "tags": ["Funding"],
        "summary": "Funding stage distribution analysis",
        "operationId": "getStagesDistribution",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeframe",
            "in": "query",
            "required": false,
            "description": "Time period filter (e.g., 1q, 2q, 1y, ytd, all)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Week offset from current week",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "week_offset",
            "in": "query",
            "required": false,
            "description": "Week offset (snake_case variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekOffset",
            "in": "query",
            "required": false,
            "description": "Week offset (camelCase variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Start date (ISO format, e.g., 2024-01-01)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "End date (ISO format, e.g., 2024-12-31)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "description": "Start date (alias for start)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "End date (alias for end)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countries",
            "in": "query",
            "required": false,
            "description": "Filter by country codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "continents",
            "in": "query",
            "required": false,
            "description": "Filter by continent codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regions",
            "in": "query",
            "required": false,
            "description": "Filter by region codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categories",
            "in": "query",
            "required": false,
            "description": "Filter by category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productCategories",
            "in": "query",
            "required": false,
            "description": "Filter by product category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryDomains",
            "in": "query",
            "required": false,
            "description": "Filter by category domain names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stages",
            "in": "query",
            "required": false,
            "description": "Filter by funding stages (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fundingVenue",
            "in": "query",
            "required": false,
            "description": "Primary capital by issuer venue: private or public; omit for both. Public means listed companies, not government grants. Does not filter M&A.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stageBuckets",
            "in": "query",
            "required": false,
            "description": "Filter by stage bucket names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acquisitionTypes",
            "in": "query",
            "required": false,
            "description": "Filter by acquisition types (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transactionRanges",
            "in": "query",
            "required": false,
            "description": "Filter by transaction amount ranges (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StagesDistributionResponse"
                },
                "example": {
                  "success": true,
                  "stages": ["Pre-Seed", "Seed"],
                  "years": ["2024", "2025"],
                  "data": {
                    "2024": {
                      "Pre-Seed": {
                        "funding": 65633415.11,
                        "deals": 65,
                        "pct": 0.4
                      },
                      "Seed": {
                        "funding": 1040701542.4000001,
                        "deals": 206,
                        "pct": 6.27
                      },
                      "Series A": {
                        "funding": 1697523755.25,
                        "deals": 95,
                        "pct": 10.23
                      },
                      "Series B": {
                        "funding": 1677746816.55,
                        "deals": 51,
                        "pct": 10.11
                      },
                      "Series C": {
                        "funding": 1850500629,
                        "deals": 25,
                        "pct": 11.15
                      },
                      "Growth Stage": {
                        "funding": 3058799320.79,
                        "deals": 160,
                        "pct": 18.44
                      },
                      "Series D": {
                        "funding": 1688000000,
                        "deals": 13,
                        "pct": 10.17
                      },
                      "Series E+": {
                        "funding": 2618600000,
                        "deals": 14,
                        "pct": 15.78
                      },
                      "Post-IPO": {
                        "funding": 2091059086.79,
                        "deals": 23,
                        "pct": 12.6
                      },
                      "Other": {
                        "funding": 802976479.11,
                        "deals": 80,
                        "pct": 4.84
                      }
                    },
                    "2025": {
                      "Pre-Seed": {
                        "funding": 71391862.35,
                        "deals": 67,
                        "pct": 0.28
                      },
                      "Seed": {
                        "funding": 1547050049.74,
                        "deals": 217,
                        "pct": 6.02
                      },
                      "Series A": {
                        "funding": 2725797182.45,
                        "deals": 142,
                        "pct": 10.61
                      },
                      "Series B": {
                        "funding": 3207202284.4300003,
                        "deals": 65,
                        "pct": 12.48
                      },
                      "Series C": {
                        "funding": 2365841566.44,
                        "deals": 21,
                        "pct": 9.21
                      },
                      "Growth Stage": {
                        "funding": 4269067634.14,
                        "deals": 158,
                        "pct": 16.61
                      },
                      "Series D": {
                        "funding": 1584000000,
                        "deals": 11,
                        "pct": 6.16
                      },
                      "Series E+": {
                        "funding": 2663999691,
                        "deals": 13,
                        "pct": 10.37
                      },
                      "Post-IPO": {
                        "funding": 6454253229.73,
                        "deals": 28,
                        "pct": 25.12
                      },
                      "Other": {
                        "funding": 806452731.42,
                        "deals": 67,
                        "pct": 3.14
                      }
                    },
                    "2026": {
                      "Pre-Seed": {
                        "funding": 56453750.13,
                        "deals": 33,
                        "pct": 0.54
                      },
                      "Seed": {
                        "funding": 829380138.78,
                        "deals": 91,
                        "pct": 8
                      },
                      "Series A": {
                        "funding": 1499422568.34,
                        "deals": 56,
                        "pct": 14.46
                      },
                      "Series B": {
                        "funding": 1674569942,
                        "deals": 20,
                        "pct": 16.15
                      },
                      "Series C": {
                        "funding": 551375169.35,
                        "deals": 11,
                        "pct": 5.32
                      },
                      "Growth Stage": {
                        "funding": 1517628106,
                        "deals": 64,
                        "pct": 14.63
                      },
                      "Series D": {
                        "funding": 180000000,
                        "deals": 2,
                        "pct": 1.74
                      },
                      "Series E+": {
                        "funding": 750000000,
                        "deals": 2,
                        "pct": 7.23
                      },
                      "Post-IPO": {
                        "funding": 2712626230.87,
                        "deals": 5,
                        "pct": 26.16
                      },
                      "Other": {
                        "funding": 598622881.28,
                        "deals": 26,
                        "pct": 5.77
                      }
                    }
                  },
                  "filters_applied": null,
                  "cache_status": "MISS",
                  "response_time_ms": 41,
                  "metadata": {
                    "total_records": 8551,
                    "response_time_ms": 41,
                    "cached": true,
                    "generated_at": "2026-06-25T09:54:55.117Z",
                    "current_period": {
                      "start": "2026-04-06",
                      "end": "2026-06-28"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/top-acquirers-by-volume": {
      "get": {
        "tags": ["M&A"],
        "summary": "Most active acquirers by deal count",
        "operationId": "getTopAcquirersByVolume",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "Filter by calendar year",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of results to return (on list endpoints: page size, 1–200, default 50)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeframe",
            "in": "query",
            "required": false,
            "description": "Time period filter (e.g., 1q, 2q, 1y, ytd, all)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Week offset from current week",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "week_offset",
            "in": "query",
            "required": false,
            "description": "Week offset (snake_case variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekOffset",
            "in": "query",
            "required": false,
            "description": "Week offset (camelCase variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryDomains",
            "in": "query",
            "required": false,
            "description": "Filter by category domain names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countries",
            "in": "query",
            "required": false,
            "description": "Filter by country codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Start date (ISO format, e.g., 2024-01-01)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "End date (ISO format, e.g., 2024-12-31)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "description": "Start date (alias for start)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "End date (alias for end)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "continents",
            "in": "query",
            "required": false,
            "description": "Filter by continent codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regions",
            "in": "query",
            "required": false,
            "description": "Filter by region codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categories",
            "in": "query",
            "required": false,
            "description": "Filter by category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productCategories",
            "in": "query",
            "required": false,
            "description": "Filter by product category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stages",
            "in": "query",
            "required": false,
            "description": "Filter by funding stages (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fundingVenue",
            "in": "query",
            "required": false,
            "description": "Primary capital by issuer venue: private or public; omit for both. Public means listed companies, not government grants. Does not filter M&A.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stageBuckets",
            "in": "query",
            "required": false,
            "description": "Filter by stage bucket names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acquisitionTypes",
            "in": "query",
            "required": false,
            "description": "Filter by acquisition types (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transactionRanges",
            "in": "query",
            "required": false,
            "description": "Filter by transaction amount ranges (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "exit_type",
            "in": "query",
            "required": false,
            "description": "exit_type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopAcquirersByVolumeResponse"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "rank": 1,
                      "acquirer_name": "Check Point Software Technologies",
                      "deal_count": 4,
                      "total_disclosed_amount": 0,
                      "buyer_types": [
                        {
                          "name": "Company",
                          "count": 4
                        }
                      ],
                      "countries": [
                        {
                          "name": "Israel",
                          "count": 3
                        },
                        {
                          "name": "United States",
                          "count": 1
                        }
                      ],
                      "categories": [
                        {
                          "name": "AI Governance",
                          "count": 1
                        },
                        {
                          "name": "Cybersecurity Mesh Architecture (CSMA)",
                          "count": 1
                        }
                      ]
                    },
                    {
                      "rank": 2,
                      "acquirer_name": "Accenture",
                      "deal_count": 3,
                      "total_disclosed_amount": 0,
                      "buyer_types": [
                        {
                          "name": "Company",
                          "count": 3
                        }
                      ],
                      "countries": [
                        {
                          "name": "United States",
                          "count": 3
                        }
                      ],
                      "categories": [
                        {
                          "name": "Attack Surface Management (ASM)",
                          "count": 1
                        },
                        {
                          "name": "Internet of Things (IoT) Security",
                          "count": 1
                        }
                      ]
                    }
                  ],
                  "metadata": {
                    "year": 2026,
                    "available_years": [2026, 2025],
                    "unique_acquirers": 131,
                    "total_deals": 149,
                    "records_returned": 2,
                    "response_time_ms": 23,
                    "generated_at": "2026-06-25T09:54:55.495Z",
                    "period": null,
                    "navigation": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/top-acquisitions": {
      "get": {
        "tags": ["M&A"],
        "summary": "Largest acquisitions ranked by amount",
        "operationId": "getTopAcquisitions",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "continents",
            "in": "query",
            "required": false,
            "description": "Filter by continent codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regions",
            "in": "query",
            "required": false,
            "description": "Filter by region codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categories",
            "in": "query",
            "required": false,
            "description": "Filter by category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productCategories",
            "in": "query",
            "required": false,
            "description": "Filter by product category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stages",
            "in": "query",
            "required": false,
            "description": "Filter by funding stages (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fundingVenue",
            "in": "query",
            "required": false,
            "description": "Primary capital by issuer venue: private or public; omit for both. Public means listed companies, not government grants. Does not filter M&A.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stageBuckets",
            "in": "query",
            "required": false,
            "description": "Filter by stage bucket names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acquisitionTypes",
            "in": "query",
            "required": false,
            "description": "Filter by acquisition types (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transactionRanges",
            "in": "query",
            "required": false,
            "description": "Filter by transaction amount ranges (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "Filter by calendar year",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of results to return (on list endpoints: page size, 1–200, default 50)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeframe",
            "in": "query",
            "required": false,
            "description": "Time period filter (e.g., 1q, 2q, 1y, ytd, all)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Week offset from current week",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "week_offset",
            "in": "query",
            "required": false,
            "description": "Week offset (snake_case variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekOffset",
            "in": "query",
            "required": false,
            "description": "Week offset (camelCase variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryDomains",
            "in": "query",
            "required": false,
            "description": "Filter by category domain names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countries",
            "in": "query",
            "required": false,
            "description": "Filter by country codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Start date (ISO format, e.g., 2024-01-01)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "End date (ISO format, e.g., 2024-12-31)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "description": "Start date (alias for start)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "End date (alias for end)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "minAmount",
            "in": "query",
            "required": false,
            "description": "minAmount",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxAmount",
            "in": "query",
            "required": false,
            "description": "maxAmount",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stage",
            "in": "query",
            "required": false,
            "description": "stage",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "exit_type",
            "in": "query",
            "required": false,
            "description": "exit_type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acquirer_ai_tier",
            "in": "query",
            "required": false,
            "description": "On /api/v2/top-acquisitions: filter by the acquirer's deal-time AI tier (frontier_lab, model_lab, ai_platform, ai_native_app, big_tech, or any_ai for the four AI tiers; big_tech is never AI). Pro plan required (403 for free callers). Includes undisclosed-amount deals. metadata.ai_tier states coverage: in-era deals whose acquirer is not yet reviewed are not counted. Tier data credits Epoch AI (CC BY 4.0).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopAcquisitionsResponse"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "rank": 1,
                      "acquired_company": "SGNL.AI",
                      "acquiring_entity": "CrowdStrike",
                      "amount": 740000000,
                      "buyer_type": "Company",
                      "country": "United States",
                      "category": "Privileged Access Management (PAM)",
                      "category_domain": "Identity Security",
                      "date": "2026-01-08",
                      "type": "Acquisition",
                      "acquired_company_total_funding": 0,
                      "company_type": "",
                      "acquired_company_description": "",
                      "acquired_company_url": "",
                      "acquiring_entity_url": "",
                      "source_url": ""
                    },
                    {
                      "rank": 2,
                      "acquired_company": "Qoria",
                      "acquiring_entity": "Aura",
                      "amount": 675000000,
                      "buyer_type": "Company",
                      "country": "Australia",
                      "category": "Internet Security",
                      "category_domain": "Network Security",
                      "date": "2026-02-02",
                      "type": "Acquisition",
                      "acquired_company_total_funding": 0,
                      "company_type": "",
                      "acquired_company_description": "",
                      "acquired_company_url": "",
                      "acquiring_entity_url": "",
                      "source_url": ""
                    }
                  ],
                  "metadata": {
                    "year": 2026,
                    "available_years": [2026, 2025],
                    "total_amount": 3377842385.52,
                    "total_deals": 149,
                    "records_returned": 2,
                    "response_time_ms": 27,
                    "generated_at": "2026-06-25T09:54:56.024Z",
                    "period": null,
                    "navigation": null,
                    "filters": {
                      "min_amount": null
                    }
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/top-funding-rounds": {
      "get": {
        "tags": ["Funding"],
        "summary": "Largest funding rounds ranked by amount",
        "operationId": "getTopFundingRounds",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "Filter by calendar year",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of results to return (on list endpoints: page size, 1–200, default 50)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeframe",
            "in": "query",
            "required": false,
            "description": "Time period filter (e.g., 1q, 2q, 1y, ytd, all)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Week offset from current week",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "week_offset",
            "in": "query",
            "required": false,
            "description": "Week offset (snake_case variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekOffset",
            "in": "query",
            "required": false,
            "description": "Week offset (camelCase variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryDomains",
            "in": "query",
            "required": false,
            "description": "Filter by category domain names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countries",
            "in": "query",
            "required": false,
            "description": "Filter by country codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Start date (ISO format, e.g., 2024-01-01)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "End date (ISO format, e.g., 2024-12-31)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "description": "Start date (alias for start)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "End date (alias for end)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "minAmount",
            "in": "query",
            "required": false,
            "description": "minAmount",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxAmount",
            "in": "query",
            "required": false,
            "description": "maxAmount",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stage",
            "in": "query",
            "required": false,
            "description": "stage",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "continents",
            "in": "query",
            "required": false,
            "description": "Filter by continent codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regions",
            "in": "query",
            "required": false,
            "description": "Filter by region codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categories",
            "in": "query",
            "required": false,
            "description": "Filter by category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productCategories",
            "in": "query",
            "required": false,
            "description": "Filter by product category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stages",
            "in": "query",
            "required": false,
            "description": "Filter by funding stages (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fundingVenue",
            "in": "query",
            "required": false,
            "description": "Primary capital by issuer venue: private or public; omit for both. Public means listed companies, not government grants. Does not filter M&A.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stageBuckets",
            "in": "query",
            "required": false,
            "description": "Filter by stage bucket names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acquisitionTypes",
            "in": "query",
            "required": false,
            "description": "Filter by acquisition types (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transactionRanges",
            "in": "query",
            "required": false,
            "description": "Filter by transaction amount ranges (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include_undisclosed",
            "in": "query",
            "required": false,
            "description": "include_undisclosed",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopFundingRoundsResponse"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "rank": 1,
                      "id": "rec_example",
                      "company": "Akamai Technologies",
                      "amount": 2600000000,
                      "stage": "Post-IPO",
                      "investors": ["Public Offering"],
                      "lead_investors": ["Public Offering"],
                      "other_investors": [],
                      "country": "United States",
                      "category": "Secure Networking",
                      "category_domain": "Network Security",
                      "date": "2026-05-18",
                      "valuation": 0,
                      "round_type": "Post-IPO",
                      "company_description": "",
                      "company_type": "",
                      "company_url": "",
                      "source_url": ""
                    },
                    {
                      "rank": 2,
                      "id": "rec_example",
                      "company": "Cyera",
                      "amount": 600000000,
                      "stage": "Series E+",
                      "investors": ["CyberStarts", "Evolution Equity Partners"],
                      "lead_investors": ["CyberStarts", "Evolution Equity Partners"],
                      "other_investors": ["Accel", "AT&T"],
                      "country": "United States",
                      "category": "Data Security Posture Management (DSPM)",
                      "category_domain": "Data Protection & Privacy",
                      "date": "2026-06-02",
                      "valuation": 11400000000,
                      "round_type": "Series E+",
                      "company_description": "",
                      "company_type": "",
                      "company_url": "",
                      "source_url": ""
                    }
                  ],
                  "metadata": {
                    "year": 2026,
                    "available_years": [2026, 2025],
                    "total_funding": 10370078786.750004,
                    "total_deals": 247,
                    "records_returned": 2,
                    "response_time_ms": 34,
                    "generated_at": "2026-06-25T09:54:56.560Z",
                    "period": null,
                    "navigation": null,
                    "filters": {
                      "stage": null,
                      "min_amount": null,
                      "max_amount": null,
                      "category_domains": null,
                      "countries": null
                    },
                    "investor_urls": {}
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/api/v2/top-investors": {
      "get": {
        "tags": ["Investors"],
        "summary": "Most active investors by deal count",
        "operationId": "getTopInvestors",
        "parameters": [
          {
            "name": "gen",
            "in": "query",
            "required": false,
            "description": "Cache generation identifier for cache-busting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "Filter by calendar year",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of results to return (on list endpoints: page size, 1–200, default 50)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeframe",
            "in": "query",
            "required": false,
            "description": "Time period filter (e.g., 1q, 2q, 1y, ytd, all)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Week offset from current week",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "week_offset",
            "in": "query",
            "required": false,
            "description": "Week offset (snake_case variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekOffset",
            "in": "query",
            "required": false,
            "description": "Week offset (camelCase variant)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryDomains",
            "in": "query",
            "required": false,
            "description": "Filter by category domain names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countries",
            "in": "query",
            "required": false,
            "description": "Filter by country codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Start date (ISO format, e.g., 2024-01-01)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "End date (ISO format, e.g., 2024-12-31)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "description": "Start date (alias for start)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "End date (alias for end)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "continents",
            "in": "query",
            "required": false,
            "description": "Filter by continent codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regions",
            "in": "query",
            "required": false,
            "description": "Filter by region codes (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categories",
            "in": "query",
            "required": false,
            "description": "Filter by category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productCategories",
            "in": "query",
            "required": false,
            "description": "Filter by product category names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stages",
            "in": "query",
            "required": false,
            "description": "Filter by funding stages (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fundingVenue",
            "in": "query",
            "required": false,
            "description": "Primary capital by issuer venue: private or public; omit for both. Public means listed companies, not government grants. Does not filter M&A.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stageBuckets",
            "in": "query",
            "required": false,
            "description": "Filter by stage bucket names (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "acquisitionTypes",
            "in": "query",
            "required": false,
            "description": "Filter by acquisition types (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transactionRanges",
            "in": "query",
            "required": false,
            "description": "Filter by transaction amount ranges (comma-separated)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "sort",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Signal-Intent",
            "in": "header",
            "required": false,
            "description": "Optional AI/programmatic caller goal. The server emits only a controlled, value-free intent category/template and drops text it cannot classify safely.",
            "schema": {
              "type": "string",
              "maxLength": 2000
            }
          },
          {
            "name": "X-Signal-SDK-Version",
            "in": "header",
            "required": false,
            "description": "Optional official SDK family/version for compatibility analytics.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^(signal-go|signal-js|signal-python|signal-ruby)/v?[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][A-Za-z0-9.-]{1,20})?$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopInvestorsResponse"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "rank": 1,
                      "name": "Undisclosed",
                      "deal_count": 45,
                      "disclosed_deal_count": 45,
                      "undisclosed_deal_count": 0,
                      "total_amount": 1052411755,
                      "avg_deal_size": 23386927.888888888,
                      "top_categories": ["Professional Services", "Data Protection"]
                    },
                    {
                      "rank": 2,
                      "name": "RSA Conference",
                      "deal_count": 11,
                      "disclosed_deal_count": 11,
                      "undisclosed_deal_count": 0,
                      "total_amount": 58000000,
                      "avg_deal_size": 5272727.2727272725,
                      "top_categories": ["AI Governance", "Application Security Testing (AST)"]
                    }
                  ],
                  "metadata": {
                    "year": 2026,
                    "available_years": [2026, 2025],
                    "total_funding": 10370078786.750002,
                    "total_deals": 247,
                    "unique_investors": 617,
                    "records_returned": 2,
                    "response_time_ms": 46,
                    "generated_at": "2026-06-25T09:54:56.982Z",
                    "period": null,
                    "navigation": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              }
            }
          },
          "401": {
            "description": "Unauthorized — missing or invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "403": {
            "description": "Forbidden — API entitlement or plan access required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "429": {
            "description": "Too many requests — quota or rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/QuotaDailyRemaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaMonthlyRemaining"
              },
              "X-Quota-Account-Monthly-Remaining": {
                "$ref": "#/components/headers/QuotaAccountMonthlyRemaining"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          },
          "503": {
            "description": "Service unavailable — authentication, entitlement, or quota enforcement could not be verified",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerError"
                }
              }
            },
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    }
  },
  "components": {
    "headers": {
      "RequestId": {
        "description": "Request correlation id for support and logs.",
        "schema": {
          "type": "string"
        }
      },
      "QuotaDailyRemaining": {
        "description": "Remaining requests for this key today.",
        "schema": {
          "type": "integer"
        }
      },
      "QuotaMonthlyRemaining": {
        "description": "Remaining requests for this key this month.",
        "schema": {
          "type": "integer"
        }
      },
      "QuotaAccountMonthlyRemaining": {
        "description": "Remaining shared account requests this month.",
        "schema": {
          "type": "integer"
        }
      },
      "RetryAfter": {
        "description": "Seconds until the caller should retry.",
        "schema": {
          "type": "integer"
        }
      }
    },
    "schemas": {
      "AcquisitionCategoryDataResponse": {
        "type": "object",
        "properties": {
          "chart_type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": "string"
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "amount": {
                  "type": "integer"
                },
                "count": {
                  "type": "integer"
                },
                "companies": {
                  "type": "integer"
                },
                "domain": {
                  "type": "string"
                }
              }
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "timeframe": {
                "type": "string"
              },
              "week_offset": {
                "type": "integer"
              },
              "total_acquisitions": {
                "type": "integer"
              },
              "category_count": {
                "type": "integer"
              },
              "current_period": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              },
              "generated_at": {
                "type": "string"
              },
              "unknown_count": {
                "type": "integer"
              },
              "unknown_amount": {
                "type": "number"
              }
            }
          },
          "cache_metadata": {
            "type": "object",
            "properties": {
              "cached_at": {
                "type": "string"
              },
              "ttl": {
                "type": "integer"
              },
              "sourceType": {
                "type": "string"
              },
              "generation": {
                "type": "string"
              },
              "timeframe": {
                "type": "string"
              },
              "offset": {
                "type": "integer"
              }
            }
          },
          "cache_status": {
            "type": "string"
          },
          "response_time_ms": {
            "type": "integer"
          },
          "filters_applied": {
            "nullable": true
          },
          "performance_target_met": {
            "type": "boolean"
          },
          "cache_age_ms": {
            "type": "number"
          }
        },
        "description": "Acquisition volume broken down by company category.",
        "required": [
          "chart_type",
          "title",
          "subtitle",
          "categories",
          "metadata",
          "cache_status",
          "response_time_ms",
          "filters_applied",
          "performance_target_met"
        ]
      },
      "BuyerTypeResponse": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": "string"
          },
          "buyer_types": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "value": {
                  "type": "number"
                },
                "count": {
                  "type": "integer"
                },
                "percentage": {
                  "type": "integer"
                }
              }
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "timeframe": {
                "type": "string"
              },
              "week_offset": {
                "type": "integer"
              },
              "period": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              },
              "total_deals": {
                "type": "integer"
              },
              "total_amount": {
                "type": "number"
              },
              "unknown_count": {
                "type": "integer"
              },
              "unknown_amount": {
                "type": "number"
              }
            }
          },
          "cache_status": {
            "type": "string"
          },
          "response_time_ms": {
            "type": "integer"
          },
          "filters_applied": {
            "nullable": true
          },
          "performance_target_met": {
            "type": "boolean"
          }
        },
        "description": "M&A deal counts and value broken down by acquirer (buyer) type."
      },
      "CategoryDataResponse": {
        "type": "object",
        "properties": {
          "chart_type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": "string"
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "amount": {
                  "type": "integer"
                },
                "count": {
                  "type": "integer"
                },
                "companies": {
                  "type": "integer"
                },
                "percentage": {
                  "type": "number"
                },
                "domain": {
                  "type": "string"
                }
              }
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "timeframe": {
                "type": "string"
              },
              "week_offset": {
                "type": "integer"
              },
              "total_funding": {
                "type": "number"
              },
              "total_deals": {
                "type": "integer"
              },
              "category_count": {
                "type": "integer"
              },
              "current_period": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              },
              "available_years": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "generated_at": {
                "type": "string"
              },
              "data_staleness": {
                "type": "object",
                "properties": {
                  "is_stale": {
                    "type": "boolean"
                  },
                  "is_very_stale": {
                    "type": "boolean"
                  },
                  "warning": {
                    "nullable": true
                  },
                  "latest_active_date": {
                    "type": "string"
                  },
                  "latest_record_date": {
                    "type": "string",
                    "nullable": true
                  },
                  "latest_date": {
                    "type": "string"
                  },
                  "days_since_active": {
                    "type": "integer"
                  },
                  "days_since_record": {
                    "type": "integer",
                    "nullable": true
                  },
                  "days_since_latest": {
                    "type": "integer"
                  }
                }
              },
              "unknown_count": {
                "type": "integer"
              },
              "unknown_amount": {
                "type": "number"
              }
            }
          },
          "cache_metadata": {
            "type": "object",
            "properties": {
              "cached_at": {
                "type": "string"
              },
              "ttl": {
                "type": "integer"
              },
              "sourceType": {
                "type": "string"
              },
              "generation": {
                "type": "string"
              },
              "timeframe": {
                "type": "string"
              },
              "offset": {
                "type": "integer"
              }
            }
          },
          "cache_status": {
            "type": "string"
          },
          "response_time_ms": {
            "type": "integer"
          },
          "filters_applied": {
            "nullable": true
          },
          "performance_target_met": {
            "type": "boolean"
          },
          "cache_age_ms": {
            "type": "number"
          }
        },
        "description": "Funding totals and deal counts broken down by company category.",
        "required": [
          "chart_type",
          "title",
          "subtitle",
          "categories",
          "metadata",
          "cache_status",
          "response_time_ms",
          "filters_applied",
          "performance_target_met"
        ]
      },
      "ChartsResponse": {
        "type": "object",
        "properties": {
          "charts": {
            "type": "object",
            "properties": {
              "funding_trends": {
                "type": "object",
                "properties": {
                  "chart_type": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "subtitle": {
                    "type": "string"
                  },
                  "x_axis": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "series": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "year": {
                          "type": "integer"
                        },
                        "color": {
                          "type": "string"
                        },
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "number"
                          }
                        },
                        "deal_counts": {
                          "type": "array",
                          "items": {
                            "type": "integer"
                          }
                        }
                      }
                    }
                  },
                  "totals": {
                    "type": "object",
                    "properties": {
                      "current": {
                        "type": "number"
                      },
                      "previous": {
                        "type": "number"
                      },
                      "historical": {
                        "type": "number"
                      }
                    }
                  },
                  "summary": {
                    "type": "object",
                    "properties": {
                      "current_amount": {
                        "type": "number"
                      },
                      "current_deals": {
                        "type": "integer"
                      },
                      "previous_amount": {
                        "type": "number"
                      },
                      "previous_deals": {
                        "type": "integer"
                      },
                      "growth_percent": {
                        "type": "number"
                      },
                      "period_label": {
                        "type": "string"
                      },
                      "venues": {
                        "type": ["object", "null"],
                        "properties": {
                          "current": {
                            "type": "object",
                            "properties": {
                              "private": {
                                "type": "object",
                                "properties": {
                                  "amount": {
                                    "type": "number"
                                  },
                                  "count": {
                                    "type": "integer"
                                  }
                                }
                              },
                              "public": {
                                "type": "object",
                                "properties": {
                                  "amount": {
                                    "type": "number"
                                  },
                                  "count": {
                                    "type": "integer"
                                  }
                                }
                              }
                            }
                          },
                          "previous": {
                            "type": "object",
                            "properties": {
                              "private": {
                                "type": "object",
                                "properties": {
                                  "amount": {
                                    "type": "number"
                                  },
                                  "count": {
                                    "type": "integer"
                                  }
                                }
                              },
                              "public": {
                                "type": "object",
                                "properties": {
                                  "amount": {
                                    "type": "number"
                                  },
                                  "count": {
                                    "type": "integer"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              },
              "ma_activity": {
                "type": "object",
                "properties": {
                  "chart_type": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "subtitle": {
                    "type": "string"
                  },
                  "x_axis": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "series": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "year": {
                          "type": "integer"
                        },
                        "color": {
                          "type": "string"
                        },
                        "data": {
                          "type": "array",
                          "items": {
                            "type": "integer"
                          }
                        }
                      }
                    }
                  },
                  "totals": {
                    "type": "object",
                    "properties": {
                      "current": {
                        "type": "integer"
                      },
                      "previous": {
                        "type": "integer"
                      },
                      "historical": {
                        "type": "integer"
                      }
                    }
                  },
                  "summary": {
                    "type": "object",
                    "properties": {
                      "current_count": {
                        "type": "integer"
                      },
                      "current_amount": {
                        "type": "integer"
                      },
                      "previous_count": {
                        "type": "integer"
                      },
                      "previous_amount": {
                        "type": "integer"
                      },
                      "growth_percent": {
                        "type": "number"
                      },
                      "period_label": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "country_funding": {
                "type": "object",
                "properties": {
                  "week": {
                    "type": "string"
                  },
                  "countries": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "country_name": {
                          "type": "string"
                        },
                        "country_code": {
                          "type": "string"
                        },
                        "country_flag": {
                          "type": "string"
                        },
                        "continent": {
                          "type": "string"
                        },
                        "lat": {
                          "type": "integer"
                        },
                        "lng": {
                          "type": "integer"
                        },
                        "funding_amount": {
                          "type": "integer"
                        },
                        "deal_count": {
                          "type": "integer"
                        },
                        "top_category": {
                          "type": "string"
                        },
                        "stages": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  },
                  "continents": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "continent_name": {
                          "type": "string"
                        },
                        "funding_amount": {
                          "type": "integer"
                        },
                        "deal_count": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "summary": {
                    "type": "object",
                    "properties": {
                      "current_amount": {
                        "type": "number"
                      },
                      "current_deals": {
                        "type": "integer"
                      },
                      "current_countries": {
                        "type": "integer"
                      },
                      "previous_amount": {
                        "type": "number"
                      },
                      "previous_deals": {
                        "type": "integer"
                      },
                      "previous_countries": {
                        "type": "integer"
                      },
                      "top_country": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "amount": {
                            "type": "integer"
                          },
                          "deals": {
                            "type": "integer"
                          }
                        }
                      },
                      "previous_top_country": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "amount": {
                            "type": "integer"
                          },
                          "deals": {
                            "type": "integer"
                          }
                        }
                      },
                      "top_continent": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "amount": {
                            "type": "integer"
                          },
                          "deals": {
                            "type": "integer"
                          }
                        }
                      },
                      "previous_top_continent": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "amount": {
                            "type": "number"
                          },
                          "deals": {
                            "type": "integer"
                          }
                        }
                      },
                      "unknown_country_amount": {
                        "type": "number"
                      },
                      "unknown_country_deals": {
                        "type": "integer"
                      }
                    }
                  }
                }
              }
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "timeframe": {
                "type": "string"
              },
              "week_offset": {
                "type": "integer"
              },
              "current_period": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              },
              "previous_period": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              },
              "historical_period": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              },
              "navigation": {
                "type": "object",
                "properties": {
                  "can_navigate_back": {
                    "type": "boolean"
                  },
                  "can_navigate_forward": {
                    "type": "boolean"
                  },
                  "current_offset": {
                    "type": "integer"
                  },
                  "next_offset": {
                    "type": "integer"
                  },
                  "prev_offset": {
                    "type": "integer"
                  }
                }
              },
              "generated_at": {
                "type": "string"
              },
              "total_records": {
                "type": "integer"
              },
              "years": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "data_staleness": {
                "type": "object",
                "properties": {
                  "is_stale": {
                    "type": "boolean"
                  },
                  "is_very_stale": {
                    "type": "boolean"
                  },
                  "warning": {
                    "nullable": true
                  },
                  "latest_active_date": {
                    "type": "string"
                  },
                  "latest_record_date": {
                    "type": "string"
                  },
                  "latest_date": {
                    "type": "string"
                  },
                  "days_since_active": {
                    "type": "integer"
                  },
                  "days_since_record": {
                    "type": "integer"
                  },
                  "days_since_latest": {
                    "type": "integer"
                  }
                }
              },
              "enhanced_summary": {
                "type": "object",
                "properties": {
                  "investors": {
                    "type": "object",
                    "properties": {
                      "current": {
                        "type": "object",
                        "properties": {
                          "by_count": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "count": {
                                  "type": "integer"
                                },
                                "amount": {
                                  "type": "integer"
                                }
                              }
                            }
                          },
                          "by_dollars": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "amount": {
                                  "type": "integer"
                                },
                                "count": {
                                  "type": "integer"
                                }
                              }
                            }
                          }
                        }
                      },
                      "previous": {
                        "type": "object",
                        "properties": {
                          "by_count": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "count": {
                                  "type": "integer"
                                },
                                "amount": {
                                  "type": "integer"
                                }
                              }
                            }
                          },
                          "by_dollars": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "amount": {
                                  "type": "integer"
                                },
                                "count": {
                                  "type": "integer"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "acquirers": {
                    "type": "object",
                    "properties": {
                      "current": {
                        "type": "object",
                        "properties": {
                          "by_count": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "count": {
                                  "type": "integer"
                                },
                                "amount": {
                                  "type": "integer"
                                }
                              }
                            }
                          },
                          "by_dollars": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "amount": {
                                  "type": "integer"
                                },
                                "count": {
                                  "type": "integer"
                                }
                              }
                            }
                          }
                        }
                      },
                      "previous": {
                        "type": "object",
                        "properties": {
                          "by_count": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "count": {
                                  "type": "integer"
                                },
                                "amount": {
                                  "type": "integer"
                                }
                              }
                            }
                          },
                          "by_dollars": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "amount": {
                                  "type": "integer"
                                },
                                "count": {
                                  "type": "integer"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "category_growth": {
                    "type": "object",
                    "properties": {
                      "funding": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "current_count": {
                              "type": "integer"
                            },
                            "previous_count": {
                              "type": "integer"
                            },
                            "growth_rate": {
                              "type": "integer"
                            },
                            "growth_absolute": {
                              "type": "integer"
                            }
                          }
                        }
                      },
                      "funding_by_dollars": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "current_amount": {
                              "type": "integer"
                            },
                            "previous_amount": {
                              "type": "integer"
                            },
                            "current_count": {
                              "type": "integer"
                            },
                            "previous_count": {
                              "type": "integer"
                            },
                            "growth_rate": {
                              "type": "number"
                            },
                            "growth_absolute": {
                              "type": "integer"
                            }
                          }
                        }
                      },
                      "acquisitions": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "current_count": {
                              "type": "integer"
                            },
                            "previous_count": {
                              "type": "integer"
                            },
                            "growth_rate": {
                              "type": "integer"
                            },
                            "growth_absolute": {
                              "type": "integer"
                            }
                          }
                        }
                      },
                      "funding_previous": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "current_count": {
                              "type": "integer"
                            },
                            "previous_count": {
                              "type": "integer"
                            },
                            "growth_rate": {
                              "type": "integer"
                            },
                            "growth_absolute": {
                              "type": "integer"
                            }
                          }
                        }
                      },
                      "funding_by_dollars_previous": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "current_amount": {
                              "type": "integer"
                            },
                            "previous_amount": {
                              "type": "integer"
                            },
                            "current_count": {
                              "type": "integer"
                            },
                            "previous_count": {
                              "type": "integer"
                            },
                            "growth_rate": {
                              "type": "number"
                            },
                            "growth_absolute": {
                              "type": "integer"
                            }
                          }
                        }
                      },
                      "acquisitions_previous": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "current_count": {
                              "type": "integer"
                            },
                            "previous_count": {
                              "type": "integer"
                            },
                            "growth_rate": {
                              "type": "integer"
                            },
                            "growth_absolute": {
                              "type": "integer"
                            }
                          }
                        }
                      }
                    }
                  },
                  "top_categories": {
                    "type": "object",
                    "properties": {
                      "funding": {
                        "type": "object",
                        "properties": {
                          "current": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "amount": {
                                "type": "integer"
                              },
                              "count": {
                                "type": "integer"
                              }
                            }
                          },
                          "previous": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "amount": {
                                "type": "integer"
                              },
                              "count": {
                                "type": "integer"
                              }
                            }
                          }
                        }
                      },
                      "acquisitions": {
                        "type": "object",
                        "properties": {
                          "current": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "amount": {
                                "type": "integer"
                              },
                              "count": {
                                "type": "integer"
                              }
                            }
                          },
                          "previous": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "amount": {
                                "type": "integer"
                              },
                              "count": {
                                "type": "integer"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              },
              "week_buckets": {
                "type": ["string", "null"]
              },
              "funding_venues": {
                "type": ["string", "null"]
              },
              "cyber_scope": {
                "type": "string",
                "nullable": true,
                "description": "Market totals use the cyber-target scope gate; null means the cached dataset has not published its scope marker."
              }
            }
          },
          "cache_status": {
            "type": "string"
          },
          "response_time_ms": {
            "type": "integer"
          },
          "performance_target_met": {
            "type": "boolean"
          },
          "filters_applied": {
            "nullable": true
          },
          "cache_metadata": {
            "type": "object",
            "properties": {
              "cached_at": {
                "type": "string"
              },
              "ttl": {
                "type": "integer"
              },
              "sourceType": {
                "type": "string"
              },
              "generation": {
                "type": "string"
              },
              "timeframe": {
                "type": "string"
              },
              "offset": {
                "type": "integer"
              },
              "view": {
                "type": "string"
              }
            }
          },
          "cache_age_ms": {
            "type": "number"
          }
        },
        "description": "Bundled dashboard chart payloads (funding trends, M&A activity, country funding).",
        "required": [
          "charts",
          "metadata",
          "cache_status",
          "response_time_ms",
          "performance_target_met",
          "filters_applied"
        ]
      },
      "CompanyTypeResponse": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": "string"
          },
          "company_types": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "value": {
                  "type": "number"
                },
                "count": {
                  "type": "integer"
                },
                "percentage": {
                  "type": "integer"
                }
              }
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "timeframe": {
                "type": "string"
              },
              "week_offset": {
                "type": "integer"
              },
              "period": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              },
              "total_deals": {
                "type": "integer"
              },
              "total_amount": {
                "type": "number"
              },
              "unknown_count": {
                "type": "integer"
              },
              "unknown_amount": {
                "type": "number"
              }
            }
          },
          "cache_status": {
            "type": "string"
          },
          "response_time_ms": {
            "type": "integer"
          },
          "filters_applied": {
            "nullable": true
          },
          "performance_target_met": {
            "type": "boolean"
          }
        },
        "description": "Funding broken down by company type."
      },
      "FilterOptionsResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "filters": {
            "type": "object",
            "properties": {
              "countries": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "continents": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "regions": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "fundingCategories": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "acquisitionCategories": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "productCategories": {
                "type": "array"
              },
              "categoryDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "stages": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "stageBuckets": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "acquisitionTypes": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "transactionRanges": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "companyTypes": {
                "type": "array"
              }
            }
          },
          "counts": {
            "type": "object",
            "properties": {
              "countries": {
                "type": "integer"
              },
              "continents": {
                "type": "integer"
              },
              "regions": {
                "type": "integer"
              },
              "productCategories": {
                "type": "integer"
              },
              "stages": {
                "type": "integer"
              },
              "stageBuckets": {
                "type": "integer"
              },
              "transactionRanges": {
                "type": "integer"
              },
              "acquisitionTypes": {
                "type": "integer"
              }
            }
          }
        },
        "description": "Available filter values (categories, countries, stages, years, …) for query parameters."
      },
      "FundingStagePercentilesResponse": {
        "type": "object",
        "properties": {
          "year": {
            "type": "integer"
          },
          "domain": {
            "type": "string"
          },
          "stages": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "percentiles": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "stage": {
                  "type": "string"
                },
                "percentile": {
                  "type": "integer"
                },
                "value": {
                  "type": "number"
                }
              }
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "source": {
                "type": "string"
              },
              "total_records": {
                "type": "integer"
              },
              "cache_status": {
                "type": "string"
              },
              "response_time_ms": {
                "type": "integer"
              }
            }
          }
        },
        "description": "Round-size percentiles (p10–p90) by funding stage."
      },
      "FundingHistoryResponse": {
        "type": "object",
        "properties": {
          "years": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "funding_amounts": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "deal_counts": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "start_year": {
                "type": "integer"
              },
              "end_year": {
                "type": "integer"
              },
              "total_funding": {
                "type": "number"
              },
              "total_deals": {
                "type": "integer"
              },
              "response_time_ms": {
                "type": "integer"
              },
              "venue_included": {
                "type": "boolean"
              }
            },
            "required": [
              "start_year",
              "end_year",
              "total_funding",
              "total_deals",
              "response_time_ms",
              "venue_included"
            ]
          },
          "private_amounts": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "public_amounts": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "private_deal_counts": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "public_deal_counts": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          }
        },
        "description": "Annual funding totals (private and public primary capital) and deal counts, with their private and public parts."
      },
      "RangesBreakdownResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "ranges": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "periods": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "group_by": {
            "type": "string"
          },
          "data": {
            "type": "object",
            "properties": {
              "$0-$100k": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "integer"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "avgDeal": {
                      "type": "integer"
                    }
                  }
                }
              },
              "$100k-$1M": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "avgDeal": {
                      "type": "number"
                    }
                  }
                }
              },
              "$1M-$5M": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "avgDeal": {
                      "type": "number"
                    }
                  }
                }
              },
              "$5M-$10M": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "avgDeal": {
                      "type": "number"
                    }
                  }
                }
              },
              "$10M-$25M": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "avgDeal": {
                      "type": "number"
                    }
                  }
                }
              },
              "$25M-$50M": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "avgDeal": {
                      "type": "number"
                    }
                  }
                }
              },
              "$50M-$100M": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "integer"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "avgDeal": {
                      "type": "number"
                    }
                  }
                }
              },
              "$100M-$250M": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "avgDeal": {
                      "type": "number"
                    }
                  }
                }
              },
              "$250M-$500M": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "integer"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "avgDeal": {
                      "type": "number"
                    }
                  }
                }
              },
              "$500M-$1B": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "avgDeal": {
                      "type": "number"
                    }
                  }
                }
              },
              "≥ $1B": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "integer"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "avgDeal": {
                      "type": "integer"
                    }
                  }
                }
              },
              "Undisclosed": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "integer"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "avgDeal": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          },
          "filters_applied": {
            "nullable": true
          },
          "cache_status": {
            "type": "string"
          },
          "response_time_ms": {
            "type": "integer"
          },
          "metadata": {
            "type": "object",
            "properties": {
              "total_records": {
                "type": "integer"
              },
              "response_time_ms": {
                "type": "integer"
              },
              "cached": {
                "type": "boolean"
              },
              "generated_at": {
                "type": "string"
              },
              "current_period": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "description": "Deal-count breakdown by round-size range."
      },
      "StagesDistributionResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "stages": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "years": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "data": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "Pre-Seed": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "pct": {
                      "type": "number"
                    }
                  }
                },
                "Seed": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "pct": {
                      "type": "number"
                    }
                  }
                },
                "Series A": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "pct": {
                      "type": "number"
                    }
                  }
                },
                "Series B": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "pct": {
                      "type": "number"
                    }
                  }
                },
                "Series C": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "integer"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "pct": {
                      "type": "number"
                    }
                  }
                },
                "Growth Stage": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "pct": {
                      "type": "number"
                    }
                  }
                },
                "Series D": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "integer"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "pct": {
                      "type": "number"
                    }
                  }
                },
                "Series E+": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "integer"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "pct": {
                      "type": "number"
                    }
                  }
                },
                "Post-IPO": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "pct": {
                      "type": "number"
                    }
                  }
                },
                "Other": {
                  "type": "object",
                  "properties": {
                    "funding": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "integer"
                    },
                    "pct": {
                      "type": "number"
                    }
                  }
                }
              }
            }
          },
          "filters_applied": {
            "nullable": true
          },
          "cache_status": {
            "type": "string"
          },
          "response_time_ms": {
            "type": "integer"
          },
          "metadata": {
            "type": "object",
            "properties": {
              "total_records": {
                "type": "integer"
              },
              "response_time_ms": {
                "type": "integer"
              },
              "cached": {
                "type": "boolean"
              },
              "generated_at": {
                "type": "string"
              },
              "current_period": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "description": "Distribution of rounds across funding stages over time."
      },
      "TopAcquirersByVolumeResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rank": {
                  "type": "integer"
                },
                "acquirer_name": {
                  "type": "string"
                },
                "deal_count": {
                  "type": "integer"
                },
                "total_disclosed_amount": {
                  "type": "integer"
                },
                "buyer_types": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "count": {
                        "type": "integer"
                      }
                    }
                  }
                },
                "countries": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "count": {
                        "type": "integer"
                      }
                    }
                  }
                },
                "categories": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "count": {
                        "type": "integer"
                      }
                    }
                  }
                }
              }
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "year": {
                "type": "integer"
              },
              "available_years": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "unique_acquirers": {
                "type": "integer"
              },
              "total_deals": {
                "type": "integer"
              },
              "records_returned": {
                "type": "integer"
              },
              "response_time_ms": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              },
              "period": {
                "nullable": true
              },
              "navigation": {
                "nullable": true
              }
            }
          }
        },
        "description": "Most acquisitive companies, ranked by acquisition count."
      },
      "TopAcquisitionsResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rank": {
                  "type": "integer"
                },
                "acquired_company": {
                  "type": "string"
                },
                "acquiring_entity": {
                  "type": "string"
                },
                "amount": {
                  "type": "integer"
                },
                "buyer_type": {
                  "type": "string"
                },
                "country": {
                  "type": "string"
                },
                "category": {
                  "type": "string"
                },
                "category_domain": {
                  "type": "string"
                },
                "date": {
                  "type": "string"
                },
                "exit_type": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "company_type": {
                  "type": "string"
                },
                "acquired_company_description": {
                  "type": "string"
                },
                "acquired_company_url": {
                  "type": "string"
                },
                "acquiring_entity_url": {
                  "type": "string"
                },
                "source_url": {
                  "type": "string"
                },
                "acquired_company_total_funding": {
                  "type": "number",
                  "description": "Primary capital the acquired company raised in rounds dated strictly before the acquisition date. Secondary trades and no-new-money rows are excluded."
                }
              },
              "required": [
                "rank",
                "acquired_company",
                "acquiring_entity",
                "amount",
                "buyer_type",
                "country",
                "category",
                "category_domain",
                "date",
                "type",
                "company_type",
                "acquired_company_description",
                "acquired_company_url",
                "acquiring_entity_url",
                "source_url",
                "acquired_company_total_funding"
              ]
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "year": {
                "type": "integer"
              },
              "available_years": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "total_amount": {
                "type": "number"
              },
              "total_deals": {
                "type": "integer"
              },
              "records_returned": {
                "type": "integer"
              },
              "response_time_ms": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              },
              "period": {
                "nullable": true
              },
              "navigation": {
                "nullable": true
              },
              "filters": {
                "type": "object",
                "properties": {
                  "min_amount": {
                    "nullable": true
                  }
                }
              }
            }
          }
        },
        "description": "Largest acquisitions, ranked by deal value."
      },
      "TopFundingRoundsResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rank": {
                  "type": "integer"
                },
                "id": {
                  "type": "string"
                },
                "company": {
                  "type": "string"
                },
                "amount": {
                  "type": "integer"
                },
                "stage": {
                  "type": "string"
                },
                "investors": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "lead_investors": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "other_investors": {
                  "type": "array"
                },
                "country": {
                  "type": "string"
                },
                "category": {
                  "type": "string"
                },
                "category_domain": {
                  "type": "string"
                },
                "date": {
                  "type": "string"
                },
                "valuation": {
                  "type": "integer"
                },
                "round_type": {
                  "type": "string"
                },
                "company_description": {
                  "type": "string"
                },
                "company_url": {
                  "type": "string"
                },
                "source_url": {
                  "type": "string"
                },
                "company_type": {
                  "type": "string"
                }
              },
              "required": [
                "rank",
                "id",
                "company",
                "amount",
                "stage",
                "investors",
                "lead_investors",
                "other_investors",
                "country",
                "category",
                "category_domain",
                "date",
                "valuation",
                "round_type",
                "company_description",
                "company_url",
                "source_url",
                "company_type"
              ]
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "year": {
                "type": "integer"
              },
              "available_years": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "total_funding": {
                "type": "number"
              },
              "total_deals": {
                "type": "integer"
              },
              "records_returned": {
                "type": "integer"
              },
              "response_time_ms": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              },
              "period": {
                "nullable": true
              },
              "navigation": {
                "nullable": true
              },
              "filters": {
                "type": "object",
                "properties": {
                  "stage": {
                    "nullable": true
                  },
                  "min_amount": {
                    "nullable": true
                  },
                  "max_amount": {
                    "nullable": true
                  },
                  "category_domains": {
                    "nullable": true
                  },
                  "countries": {
                    "nullable": true
                  }
                }
              },
              "investor_urls": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            "required": [
              "year",
              "available_years",
              "total_funding",
              "total_deals",
              "records_returned",
              "response_time_ms",
              "generated_at",
              "period",
              "navigation",
              "filters",
              "investor_urls"
            ]
          }
        },
        "description": "Largest funding rounds, ranked by amount."
      },
      "TopInvestorsResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rank": {
                  "type": "integer"
                },
                "name": {
                  "type": "string"
                },
                "deal_count": {
                  "type": "integer"
                },
                "disclosed_deal_count": {
                  "type": "integer"
                },
                "undisclosed_deal_count": {
                  "type": "integer"
                },
                "total_amount": {
                  "type": "integer"
                },
                "avg_deal_size": {
                  "type": "number"
                },
                "top_categories": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "year": {
                "type": "integer"
              },
              "available_years": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "total_funding": {
                "type": "number"
              },
              "total_deals": {
                "type": "integer"
              },
              "unique_investors": {
                "type": "integer"
              },
              "records_returned": {
                "type": "integer"
              },
              "response_time_ms": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              },
              "period": {
                "nullable": true
              },
              "navigation": {
                "nullable": true
              }
            }
          }
        },
        "description": "Most active investors, ranked by deal count."
      },
      "CompanyDetailResponse": {
        "type": "object",
        "properties": {
          "company": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "linkedin": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "city": {
                "type": "string"
              },
              "founded": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "category_domain": {
                "type": "string"
              },
              "logo": {
                "type": "string"
              },
              "ticker": {
                "type": "string"
              },
              "total_funding": {
                "type": "integer"
              },
              "valuation": {
                "type": "integer"
              },
              "funding_rounds": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "amount": {
                      "type": "integer"
                    },
                    "date": {
                      "type": "string"
                    },
                    "stage": {
                      "type": "string"
                    },
                    "category": {
                      "type": "string"
                    },
                    "investors": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "lead_investors": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "other_investors": {
                      "type": "array"
                    },
                    "valuation": {
                      "type": "integer"
                    },
                    "round_type": {
                      "type": "string"
                    },
                    "is_secondary": {
                      "type": "boolean"
                    },
                    "scope_label": {
                      "type": "string",
                      "enum": ["non-cyber target"],
                      "description": "Present only when the company that raised or was sold is not a cyber company (counting rules S3). Such an event is shown because a party to it is cyber, and it counts in no market total."
                    }
                  },
                  "required": [
                    "id",
                    "amount",
                    "date",
                    "stage",
                    "category",
                    "investors",
                    "lead_investors",
                    "other_investors",
                    "valuation",
                    "round_type",
                    "is_secondary"
                  ]
                }
              },
              "acquisitions_made": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "target": {
                      "type": "string"
                    },
                    "amount": {
                      "type": "integer"
                    },
                    "date": {
                      "type": "string"
                    },
                    "category": {
                      "type": "string"
                    },
                    "outcome": {
                      "type": "string",
                      "nullable": true
                    },
                    "scope_label": {
                      "type": "string",
                      "enum": ["non-cyber target"],
                      "description": "Present only when the company that raised or was sold is not a cyber company (counting rules S3). Such an event is shown because a party to it is cyber, and it counts in no market total."
                    }
                  },
                  "required": ["id", "target", "amount", "date", "category", "outcome"]
                }
              },
              "acquired_by": {
                "type": "array"
              },
              "categories": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "latest_activity": {
                "type": "string"
              },
              "growth_score": {
                "type": "null",
                "deprecated": true,
                "description": "Retired in outlook v4; always null. Use company_outlook."
              },
              "growth_signals": {
                "type": "null",
                "deprecated": true,
                "description": "Retired in outlook v4; always null. Use company_outlook."
              },
              "ipo_history": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": ["Pre-IPO", "IPO"]
                    },
                    "listing_date": {
                      "type": "string",
                      "nullable": true
                    },
                    "exchange": {
                      "type": "string",
                      "nullable": true
                    },
                    "symbol": {
                      "type": "string",
                      "nullable": true
                    },
                    "s1_filing_date": {
                      "type": "string",
                      "nullable": true
                    },
                    "s1_url": {
                      "type": "string",
                      "nullable": true
                    },
                    "source": {
                      "type": "string",
                      "nullable": true
                    },
                    "transaction_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "listing_price_share": {
                      "type": "number",
                      "nullable": true
                    },
                    "raised_at_listing": {
                      "type": "number",
                      "nullable": true
                    },
                    "raised_primary_usd": {
                      "type": "number",
                      "nullable": true,
                      "description": "Disclosed proceeds reaching the company; null is unknown and zero is known zero. Never substitute offering size."
                    },
                    "proceeds_basis": {
                      "type": "string",
                      "nullable": true
                    },
                    "pricing_announcement_date": {
                      "type": "string",
                      "nullable": true
                    },
                    "valuation_at_listing": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "status",
                    "listing_date",
                    "exchange",
                    "symbol",
                    "s1_filing_date",
                    "s1_url",
                    "source",
                    "transaction_type",
                    "listing_price_share",
                    "raised_at_listing",
                    "valuation_at_listing"
                  ]
                }
              },
              "public_lifecycle": {
                "type": "object",
                "properties": {
                  "date_public": {
                    "type": "string"
                  },
                  "date_taken_private": {
                    "nullable": true
                  },
                  "time_to_public_years": {
                    "type": "integer"
                  },
                  "time_to_private_years": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "exchange": {
                    "type": "string"
                  },
                  "last_price_before_delisting": {
                    "nullable": true
                  }
                }
              },
              "layoffs": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "date": {
                      "type": "string"
                    },
                    "headcount_bucket": {
                      "nullable": true
                    },
                    "percent_bucket": {
                      "type": "string"
                    },
                    "reasons": {
                      "type": "array"
                    },
                    "departments": {
                      "type": "array"
                    },
                    "stage": {
                      "nullable": true
                    },
                    "source": {
                      "type": "string"
                    }
                  }
                }
              },
              "partnerships": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "partner": {
                      "type": "string"
                    },
                    "partnership_type": {
                      "type": "string"
                    },
                    "announcement_date": {
                      "type": "string"
                    },
                    "source_url": {
                      "type": "string"
                    },
                    "summary": {
                      "type": "string"
                    }
                  }
                }
              },
              "premium_signals_available": {
                "type": "object",
                "properties": {
                  "layoffs": {
                    "type": "boolean"
                  },
                  "shutdown": {
                    "type": "boolean"
                  },
                  "partnerships": {
                    "type": "boolean"
                  },
                  "distress": {
                    "type": "boolean",
                    "description": "Whether dated distress history is available; free callers receive this indicator without event details."
                  }
                }
              },
              "distress_history": {
                "type": "array",
                "description": "Premium financial distress and recovery history. Included only for Pro/Enterprise callers or a metered profile unlock, using the same entitlement as shutdown details; omitted otherwise.",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "date",
                    "tier",
                    "distress_type",
                    "is_terminal",
                    "source",
                    "summary"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "date": {
                      "type": "string",
                      "format": "date"
                    },
                    "tier": {
                      "type": "string",
                      "enum": ["credit_stress", "insolvency", "terminal"]
                    },
                    "distress_type": {
                      "type": "string",
                      "enum": [
                        "covenant_breach",
                        "forbearance",
                        "payment_default",
                        "distressed_exchange",
                        "liability_management",
                        "chapter_11",
                        "chapter_7",
                        "administration",
                        "receivership",
                        "assignment_for_benefit_of_creditors",
                        "emergence",
                        "liquidation",
                        "wind_down",
                        "ceased_operations"
                      ]
                    },
                    "is_terminal": {
                      "type": "boolean",
                      "description": "Whether this event ended operations; insolvency and emergence do not imply shutdown."
                    },
                    "source": {
                      "type": "string",
                      "nullable": true
                    },
                    "summary": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              },
              "product_categories": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "domain": {
                      "type": "string"
                    },
                    "category": {
                      "type": "string"
                    }
                  },
                  "required": ["domain", "category"]
                }
              },
              "profile_updated_at": {
                "type": "string",
                "nullable": true
              },
              "signal_url": {
                "type": "string"
              },
              "entity_transitions": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "counterpart": {
                      "type": "string"
                    },
                    "perspective": {
                      "type": "string",
                      "enum": ["predecessor", "successor"]
                    },
                    "transition_type": {
                      "type": "string",
                      "enum": [
                        "RENAMED_TO",
                        "DEMERGED_INTO",
                        "SPUN_OUT",
                        "CARVED_OUT_AS",
                        "MERGED_INTO",
                        "DIVESTED_TO"
                      ]
                    },
                    "transition_date": {
                      "type": "string",
                      "nullable": true
                    },
                    "continuity_role": {
                      "type": "string",
                      "nullable": true
                    },
                    "scope_note": {
                      "type": "string",
                      "nullable": true
                    },
                    "source_url": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "counterpart",
                    "perspective",
                    "transition_type",
                    "transition_date",
                    "continuity_role",
                    "scope_note",
                    "source_url"
                  ]
                }
              },
              "company_outlook": {
                "$ref": "#/components/schemas/CompanyOutlook",
                "description": "Pro+ only; absent for free/preview responses."
              }
            },
            "required": [
              "name",
              "url",
              "linkedin",
              "description",
              "country",
              "city",
              "founded",
              "status",
              "type",
              "category_domain",
              "logo",
              "ticker",
              "total_funding",
              "valuation",
              "funding_rounds",
              "acquisitions_made",
              "acquired_by",
              "categories",
              "latest_activity",
              "growth_score",
              "growth_signals",
              "ipo_history",
              "public_lifecycle",
              "layoffs",
              "partnerships",
              "premium_signals_available",
              "product_categories",
              "signal_url",
              "entity_transitions"
            ]
          },
          "metadata": {
            "type": "object",
            "properties": {
              "response_time_ms": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            }
          }
        },
        "description": "A single company's full profile (funding rounds, acquisitions, categories)."
      },
      "InvestorDetailResponse": {
        "type": "object",
        "properties": {
          "investor": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "linkedin": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "founded": {
                "type": "string"
              },
              "logo": {
                "type": "string"
              },
              "deal_count": {
                "type": "integer"
              },
              "disclosed_deal_count": {
                "type": "integer"
              },
              "undisclosed_deal_count": {
                "type": "integer"
              },
              "lead_count": {
                "type": "integer"
              },
              "participated_count": {
                "type": "integer"
              },
              "total_invested": {
                "type": "integer"
              },
              "avg_deal_size": {
                "type": "integer"
              },
              "exit_count": {
                "type": "integer",
                "description": "Distinct portfolio companies with an exit. `exits` lists every exit deal, so a company bought in steps appears there more than once."
              },
              "exits": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "company": {
                      "type": "string"
                    },
                    "acquirer": {
                      "type": "string"
                    },
                    "amount": {
                      "type": "integer"
                    },
                    "date": {
                      "type": "string"
                    },
                    "category": {
                      "type": "string"
                    },
                    "scope": {
                      "type": ["string", "null"],
                      "description": "WHOLE_ENTITY, MAJORITY, ASSETS_ONLY, ACQUIHIRE, UNDISCLOSED_STAKE or null. Every value but WHOLE_ENTITY and null is an exit shown qualified; a BUSINESS_UNIT sale is not an exit."
                    },
                    "outcome": {
                      "type": ["string", "null"],
                      "description": "Recorded deal outcome; announced qualifying deals count as exits and terminated deals do not."
                    },
                    "exit_type": {
                      "type": ["string", "null"],
                      "description": "strategic, sponsor_buyout, take_private, merger, spac or null."
                    },
                    "qualifier": {
                      "type": ["string", "null"],
                      "description": "Display label for a qualified exit, for example \"majority stake\" or \"asset sale, PE buyout\"; null for a plain whole-company sale."
                    }
                  }
                }
              },
              "funding_rounds": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "company": {
                      "type": "string"
                    },
                    "amount": {
                      "type": "integer"
                    },
                    "date": {
                      "type": "string"
                    },
                    "stage": {
                      "type": "string"
                    },
                    "category": {
                      "type": "string"
                    },
                    "display_role": {
                      "type": "string"
                    },
                    "is_lead_explicit": {
                      "type": "boolean"
                    },
                    "excluded_from_capital_totals": {
                      "type": "boolean",
                      "enum": [true],
                      "description": "Present for rows excluded from investor ranking counts and dollars, including debt and public issuance."
                    },
                    "round_type": {
                      "type": "string",
                      "nullable": true,
                      "description": "Recorded financing instrument; history includes rows excluded from rankings."
                    },
                    "is_lending": {
                      "type": "boolean",
                      "enum": [true],
                      "description": "Present for debt financing history, shown separately from investor ranking activity."
                    },
                    "scope_label": {
                      "type": "string",
                      "enum": ["non-cyber target"],
                      "description": "Shown on a cyber party profile, excluded from market totals."
                    }
                  },
                  "required": [
                    "id",
                    "company",
                    "amount",
                    "date",
                    "stage",
                    "category",
                    "display_role",
                    "is_lead_explicit"
                  ]
                }
              },
              "portfolio_companies": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "total_funded": {
                      "type": "integer"
                    },
                    "round_count": {
                      "type": "integer"
                    },
                    "stages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "latest_date": {
                      "type": "string"
                    },
                    "relationship": {
                      "type": "string"
                    }
                  }
                }
              },
              "portfolio_countries": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "country": {
                      "type": "string"
                    },
                    "deal_count": {
                      "type": "integer"
                    }
                  }
                }
              },
              "categories": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "stages": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "latest_activity": {
                "type": "string"
              },
              "government_linked_tier": {
                "nullable": true
              },
              "government_linked_country": {
                "nullable": true
              },
              "government_linked_since": {
                "nullable": true
              },
              "investor_types": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "nullable": true,
                "description": "Parsed form of `type` (\"Venture Capital, Family Office\" → two entries). Pro+ only: null for free callers and typeless investors."
              },
              "profile_updated_at": {
                "type": "string",
                "nullable": true
              },
              "signal_url": {
                "type": "string"
              },
              "exit_event_count": {
                "type": "integer",
                "minimum": 0,
                "description": "Number of credited exit events. A company can contribute more than one event; exit_count counts distinct companies."
              }
            },
            "required": [
              "name",
              "url",
              "linkedin",
              "country",
              "type",
              "founded",
              "logo",
              "deal_count",
              "disclosed_deal_count",
              "undisclosed_deal_count",
              "lead_count",
              "participated_count",
              "total_invested",
              "avg_deal_size",
              "exit_count",
              "exits",
              "funding_rounds",
              "portfolio_companies",
              "portfolio_countries",
              "categories",
              "stages",
              "latest_activity",
              "government_linked_tier",
              "government_linked_country",
              "government_linked_since",
              "investor_types",
              "signal_url"
            ]
          },
          "metadata": {
            "type": "object",
            "properties": {
              "response_time_ms": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            }
          }
        },
        "description": "A single investor's full profile (portfolio, stages, categories)."
      },
      "AcquisitionGeoDataResponse": {
        "type": "object",
        "properties": {
          "chart_type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": "string"
          },
          "countries": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "value": {
                  "type": "number",
                  "description": "Total disclosed deal value in USD; often 0 (M&A amounts are routinely undisclosed)."
                },
                "count": {
                  "type": "integer"
                },
                "percentage": {
                  "type": "number",
                  "description": "Share of deals (count-based)."
                }
              }
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "timeframe": {
                "type": "string"
              },
              "week_offset": {
                "type": "integer"
              },
              "period": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              },
              "total_deals": {
                "type": "integer"
              },
              "total_amount": {
                "type": "number"
              },
              "country_count": {
                "type": "integer"
              }
            }
          },
          "cache_status": {
            "type": "string"
          },
          "response_time_ms": {
            "type": "integer"
          },
          "filters_applied": {
            "type": ["object", "null"]
          }
        }
      },
      "StageGraduationResponse": {
        "type": "object",
        "properties": {
          "transitions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "years": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "data": {
            "type": "object",
            "description": "transition name -> year -> cohort cell",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "cohort_size": {
                    "type": "integer"
                  },
                  "graduated": {
                    "type": "integer"
                  },
                  "rate_pct": {
                    "type": "number"
                  },
                  "mature": {
                    "type": "boolean",
                    "description": "False for cohorts whose year ended <18 months ago; their rates are expected to rise."
                  }
                }
              }
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "total_companies_tracked": {
                "type": "integer"
              },
              "maturity_note": {
                "type": "string"
              },
              "early_stage_includes": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "excluded_stages": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "generated_at": {
                "type": "string"
              },
              "rows_skipped_malformed_date": {
                "type": "integer",
                "description": "Funding rows excluded for non-ISO dates; non-zero indicates upstream data drift."
              }
            }
          },
          "response_time_ms": {
            "type": "integer"
          }
        }
      },
      "MaYearlyHistoryResponse": {
        "type": "object",
        "properties": {
          "years": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "acquisition_amounts": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Disclosed deal value per year in USD; under-reports (many M&A amounts are undisclosed)."
          },
          "deal_counts": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "by_exit_type": {
            "type": "object",
            "description": "Pro-only: per-year deal counts by exit_type; omitted entirely for free callers.",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "start_year": {
                "type": "integer"
              },
              "end_year": {
                "type": "integer"
              },
              "total_amount": {
                "type": "number"
              },
              "total_deals": {
                "type": "integer"
              },
              "exit_types_included": {
                "type": "boolean"
              },
              "response_time_ms": {
                "type": "integer"
              }
            }
          }
        },
        "required": ["years", "acquisition_amounts", "deal_counts", "metadata"]
      },
      "CompanyOutlook": {
        "type": "object",
        "properties": {
          "rules_version": {
            "type": "integer",
            "const": 5
          },
          "as_of": {
            "type": "string",
            "format": "date-time"
          },
          "operating_status": {
            "type": "object",
            "properties": {
              "state": {
                "type": "string",
                "enum": [
                  "ceased_operations",
                  "insolvency",
                  "credit_stress",
                  "emerged",
                  "no_recorded_distress",
                  "unavailable"
                ]
              },
              "label": {
                "type": "string"
              },
              "date": {
                "type": ["string", "null"]
              },
              "source_url": {
                "type": ["string", "null"]
              }
            },
            "required": ["state", "label", "date", "source_url"]
          },
          "eligibility": {
            "type": "object",
            "properties": {
              "eligible": {
                "type": "boolean"
              },
              "reason": {
                "type": ["string", "null"]
              }
            },
            "required": ["eligible", "reason"]
          },
          "viability": {
            "type": "object",
            "properties": {
              "score": {
                "type": ["number", "null"],
                "minimum": 0,
                "maximum": 100
              },
              "reason": {
                "type": "string"
              },
              "coverage_pct": {
                "type": "number",
                "minimum": 0,
                "maximum": 100
              },
              "assessment": {
                "type": "string",
                "enum": [
                  "observed",
                  "limited_evidence",
                  "confirmed_outcome",
                  "not_applicable",
                  "unavailable"
                ]
              },
              "evidence": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string"
                    },
                    "date": {
                      "type": "string",
                      "format": "date"
                    },
                    "value": {
                      "type": ["number", "string", "null"]
                    },
                    "source_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "source_url": {
                      "type": ["string", "null"]
                    }
                  },
                  "required": ["kind", "date", "value", "source_ids"]
                }
              }
            },
            "required": ["score", "reason", "coverage_pct", "assessment", "evidence"]
          },
          "funding_momentum": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": ["observations", "insufficient_data", "not_applicable", "unavailable"]
              },
              "score": {
                "type": ["number", "null"],
                "minimum": 0,
                "maximum": 100
              },
              "reason": {
                "type": ["string", "null"]
              },
              "latest_round": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "date": {
                        "type": "string"
                      },
                      "amount": {
                        "type": ["number", "null"]
                      },
                      "round_type": {
                        "type": ["string", "null"]
                      }
                    },
                    "required": ["date", "amount", "round_type"]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "months_since_last_round": {
                "type": ["number", "null"]
              },
              "round_size_change": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "delta_pct": {
                        "type": "number"
                      },
                      "prior": {
                        "type": "object",
                        "properties": {
                          "date": {
                            "type": "string"
                          },
                          "amount": {
                            "type": ["number", "null"]
                          },
                          "round_type": {
                            "type": ["string", "null"]
                          }
                        },
                        "required": ["date", "amount", "round_type"]
                      },
                      "latest": {
                        "type": "object",
                        "properties": {
                          "date": {
                            "type": "string"
                          },
                          "amount": {
                            "type": ["number", "null"]
                          },
                          "round_type": {
                            "type": ["string", "null"]
                          }
                        },
                        "required": ["date", "amount", "round_type"]
                      }
                    },
                    "required": ["delta_pct", "prior", "latest"]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "cadence_change": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "delta_pct": {
                        "type": "number"
                      },
                      "previous_days": {
                        "type": "number"
                      },
                      "latest_days": {
                        "type": "number"
                      },
                      "dates": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": ["delta_pct", "previous_days", "latest_days", "dates"]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "stage_change": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "prior": {
                        "type": "string"
                      },
                      "latest": {
                        "type": "string"
                      },
                      "prior_date": {
                        "type": "string"
                      },
                      "latest_date": {
                        "type": "string"
                      }
                    },
                    "required": ["prior", "latest", "prior_date", "latest_date"]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "coverage_pct": {
                "type": "number",
                "minimum": 0,
                "maximum": 100
              },
              "assessment": {
                "type": "string",
                "enum": [
                  "observed",
                  "limited_evidence",
                  "confirmed_outcome",
                  "not_applicable",
                  "unavailable"
                ]
              },
              "evidence": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string"
                    },
                    "date": {
                      "type": "string",
                      "format": "date"
                    },
                    "value": {
                      "type": ["number", "string", "null"]
                    },
                    "source_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "source_url": {
                      "type": ["string", "null"]
                    }
                  },
                  "required": ["kind", "date", "value", "source_ids"]
                }
              }
            },
            "required": [
              "status",
              "score",
              "reason",
              "latest_round",
              "months_since_last_round",
              "round_size_change",
              "cadence_change",
              "stage_change",
              "coverage_pct",
              "assessment",
              "evidence"
            ]
          },
          "funding_footprint": {
            "type": "object",
            "properties": {
              "basis": {
                "type": "string",
                "enum": ["private_primary"]
              },
              "population": {
                "type": "string",
                "enum": ["all_recorded_companies"]
              },
              "total_funding": {
                "type": ["number", "null"]
              },
              "category": {
                "type": ["string", "null"]
              },
              "rank": {
                "type": ["number", "null"]
              },
              "company_count": {
                "type": "integer"
              },
              "category_total_funding": {
                "type": ["number", "null"]
              },
              "share_pct": {
                "type": ["number", "null"]
              }
            },
            "required": [
              "basis",
              "population",
              "total_funding",
              "category",
              "rank",
              "company_count",
              "category_total_funding",
              "share_pct"
            ]
          },
          "exit_history": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "date": {
                    "type": ["string", "null"]
                  }
                },
                "required": ["date"]
              },
              {
                "type": "object",
                "properties": {
                  "date": {
                    "type": ["string", "null"]
                  },
                  "transaction_type": {
                    "type": ["string", "null"]
                  }
                },
                "required": ["date", "transaction_type"]
              },
              {
                "type": "null"
              }
            ]
          },
          "source_updated_at": {
            "type": ["string", "null"],
            "description": "Timestamp of the raw funding snapshot; null when unavailable."
          },
          "category_context": {
            "type": "object",
            "description": "Separate category evidence: current and prior 12-month and 90-day UTC windows, company population, first-funding proxy cohorts, entrant velocity/acceleration, funding breadth/concentration, typed exits, indices and coverage. Does not contribute company score points."
          }
        },
        "required": [
          "rules_version",
          "as_of",
          "operating_status",
          "eligibility",
          "viability",
          "funding_momentum",
          "funding_footprint",
          "exit_history",
          "source_updated_at"
        ],
        "description": "Company Outlook v5. Evidence-based company strength and funding momentum indices (0–100), with coverage separate from score. Not survival probabilities. Confirmed cessation scores zero. Unknown evidence is neutral; unavailable and inapplicable scores are null. Company scores do not inherit category points."
      },
      "EntitlementStatus": {
        "type": "object",
        "description": "The caller's own plan and API entitlement. Poll to detect an upgrade landing; never returns dataset rows.",
        "properties": {
          "plan": {
            "type": "string",
            "description": "Resolved plan (free, pro, enterprise)."
          },
          "status": {
            "type": "string",
            "description": "Membership status, when known (e.g. active)."
          },
          "api_access": {
            "type": "boolean",
            "description": "Whether REST API calls are currently entitled for this caller."
          },
          "quota": {
            "type": ["object", "null"],
            "description": "Remaining per-key allowance (api-key callers only). null when unknown or session-authenticated.",
            "properties": {
              "daily_remaining": {
                "type": ["integer", "null"]
              },
              "monthly_remaining": {
                "type": ["integer", "null"]
              }
            }
          },
          "pricing_url": {
            "type": "string",
            "format": "uri"
          },
          "agent_instructions": {
            "type": "string"
          }
        },
        "required": ["plan", "api_access", "quota", "pricing_url"]
      },
      "CompanyListItem": {
        "type": "object",
        "description": "A company in the cybersecurity market dataset.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Canonical company name."
          },
          "total_funding": {
            "type": "number",
            "description": "Total disclosed funding raised, USD."
          },
          "period_funding": {
            "type": "number",
            "description": "Funding raised within the requested timeframe, USD."
          },
          "funding_round_count": {
            "type": "integer",
            "description": "Number of disclosed funding rounds."
          },
          "acquisition_count": {
            "type": "integer",
            "description": "Announced and completed deals in which this company is the acquirer (terminated deals excluded)."
          },
          "acquired_by_count": {
            "type": "integer",
            "description": "Completed whole-company acquisitions of this company."
          },
          "acquisition_target_count": {
            "type": "integer",
            "description": "Announced and completed deals in which this company is the target, including pending deals and business-unit sales."
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "High-level category domains."
          },
          "product_categories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Granular product categories."
          },
          "latest_activity": {
            "type": "string",
            "nullable": true,
            "description": "ISO date of the most recent funding/M&A activity (null if none)."
          },
          "latest_stage": {
            "type": "string",
            "nullable": true,
            "description": "Most recent funding stage."
          },
          "has_funding": {
            "type": "boolean",
            "description": "Whether the company has any disclosed funding."
          },
          "stages": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Distinct funding stages the company has raised at."
          },
          "country": {
            "type": "string",
            "nullable": true,
            "description": "Headquarters country."
          },
          "url": {
            "type": "string",
            "nullable": true,
            "description": "Company website (may be absent on older records)."
          },
          "signal_url": {
            "type": "string",
            "format": "uri",
            "description": "The company's public profile page on The Signal (https://signal.returnonsecurity.com/companies/{name}). Not the company's own website, which is `url`. Cite it as the source link."
          },
          "status": {
            "type": "string",
            "nullable": true,
            "description": "Operating status (e.g. active, acquired)."
          },
          "ticker": {
            "type": "string",
            "nullable": true,
            "description": "Stock ticker for public companies. Also matched by ?q= search."
          }
        },
        "required": ["name", "signal_url", "total_funding", "funding_round_count", "has_funding"]
      },
      "CompaniesMetadata": {
        "type": "object",
        "description": "Aggregate stats for the returned company set.",
        "properties": {
          "total_companies": {
            "type": "integer",
            "description": "Companies in this response."
          },
          "total_available": {
            "type": "integer",
            "description": "Companies matching the filters before any cap."
          },
          "total_funding": {
            "type": "number",
            "description": "Summed funding across the returned companies, USD."
          },
          "total_deals": {
            "type": "integer",
            "description": "Summed funding rounds across the returned companies."
          },
          "active_90d": {
            "type": "integer",
            "description": "Companies with activity in the last 90 days."
          },
          "total_unfunded": {
            "type": "integer",
            "description": "Companies with no disclosed funding."
          },
          "funding_status": {
            "type": "string",
            "description": "Funding filter applied (e.g. \"all\")."
          },
          "response_time_ms": {
            "type": "number",
            "description": "Server-side response time, milliseconds."
          },
          "generated_at": {
            "type": "string",
            "description": "ISO timestamp of the underlying dataset build."
          },
          "search": {
            "type": "object",
            "description": "Present only when the rows are a fuzzy recovery of a query the ranked matcher could not match (a typo). Absent on exact matches and on a genuine zero-result.",
            "properties": {
              "mode": {
                "type": "string",
                "enum": ["fuzzy"]
              },
              "query": {
                "type": "string",
                "description": "The query as searched."
              },
              "resolution": {
                "type": "string",
                "enum": ["confident", "ambiguous"],
                "description": "confident: one clear candidate, safe to present as the result. ambiguous: several near-equal candidates; ask the user which they meant."
              },
              "suggestions": {
                "type": "array",
                "description": "Candidate names, best first.",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "score": {
                      "type": "number",
                      "description": "Fuzzy score, 0 to 1."
                    }
                  },
                  "required": ["name", "score"]
                }
              }
            },
            "required": ["mode", "query", "resolution", "suggestions"]
          }
        }
      },
      "CompaniesResponse": {
        "type": "object",
        "properties": {
          "companies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyListItem"
            }
          },
          "metadata": {
            "$ref": "#/components/schemas/CompaniesMetadata"
          }
        },
        "required": ["companies", "metadata"]
      },
      "InvestorListItem": {
        "type": "object",
        "description": "An investor in the cybersecurity market dataset.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Canonical investor name."
          },
          "deal_count": {
            "type": "integer",
            "description": "Total deals participated in."
          },
          "disclosed_deal_count": {
            "type": "integer",
            "description": "Deals with a disclosed amount."
          },
          "undisclosed_deal_count": {
            "type": "integer",
            "description": "Deals with no disclosed amount."
          },
          "lead_count": {
            "type": "integer",
            "description": "Deals led."
          },
          "participated_count": {
            "type": "integer",
            "description": "Deals participated in (non-lead)."
          },
          "total_invested": {
            "type": "number",
            "description": "Total disclosed capital deployed, USD."
          },
          "period_deployed": {
            "type": "number",
            "description": "Capital deployed within the requested timeframe, USD."
          },
          "avg_deal_size": {
            "type": "number",
            "description": "Average disclosed deal size, USD."
          },
          "companies": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Portfolio company names."
          },
          "stages": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Stages the investor is active at."
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Category domains invested in."
          },
          "product_categories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Product categories invested in."
          },
          "countries": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Portfolio company countries."
          },
          "latest_activity": {
            "type": "string",
            "nullable": true,
            "description": "ISO date of most recent deal activity."
          },
          "signal_url": {
            "type": "string",
            "format": "uri",
            "description": "The investor's public profile page on The Signal (https://signal.returnonsecurity.com/investors/{name}). Not the investor's own website. Cite it as the source link."
          },
          "government_linked_tier": {
            "type": "string",
            "nullable": true,
            "enum": ["govt_chartered", "defence_cvc", "sovereign_wealth", null],
            "description": "Premium. Government-linkage classification. Non-null only for investors in the curated government-linked taxonomy."
          },
          "government_linked_country": {
            "type": "string",
            "nullable": true,
            "description": "Premium. Linked government / country."
          },
          "investor_types": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            },
            "description": "Premium. Investor type classification(s), e.g. [\"Venture Capital\", \"Family Office\"]. Null for free callers and for investors with no recorded type."
          },
          "government_linked_since": {
            "type": "string",
            "nullable": true,
            "description": "Premium. ISO date the linkage was established."
          }
        },
        "required": ["name", "signal_url", "deal_count", "total_invested"]
      },
      "InvestorsMetadata": {
        "type": "object",
        "description": "Aggregate stats for the returned investor set.",
        "properties": {
          "total_investors": {
            "type": "integer",
            "description": "Investors in this response."
          },
          "total_available": {
            "type": "integer",
            "description": "Investors matching the filters before any cap."
          },
          "total_capital": {
            "type": "number",
            "description": "Summed disclosed capital deployed, USD."
          },
          "total_deals": {
            "type": "integer",
            "description": "Summed deals across the returned investors."
          },
          "total_portfolio_companies": {
            "type": "integer",
            "description": "Distinct portfolio companies."
          },
          "active_90d": {
            "type": "integer",
            "description": "Investors with activity in the last 90 days."
          },
          "response_time_ms": {
            "type": "number",
            "description": "Server-side response time, milliseconds."
          },
          "generated_at": {
            "type": "string",
            "description": "ISO timestamp of the underlying dataset build."
          },
          "search": {
            "type": "object",
            "description": "Present only when the rows are a fuzzy recovery of a query the ranked matcher could not match (a typo). Absent on exact matches and on a genuine zero-result.",
            "properties": {
              "mode": {
                "type": "string",
                "enum": ["fuzzy"]
              },
              "query": {
                "type": "string",
                "description": "The query as searched."
              },
              "resolution": {
                "type": "string",
                "enum": ["confident", "ambiguous"],
                "description": "confident: one clear candidate, safe to present as the result. ambiguous: several near-equal candidates; ask the user which they meant."
              },
              "suggestions": {
                "type": "array",
                "description": "Candidate names, best first.",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "score": {
                      "type": "number",
                      "description": "Fuzzy score, 0 to 1."
                    }
                  },
                  "required": ["name", "score"]
                }
              }
            },
            "required": ["mode", "query", "resolution", "suggestions"]
          }
        }
      },
      "InvestorsResponse": {
        "type": "object",
        "properties": {
          "investors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvestorListItem"
            }
          },
          "metadata": {
            "$ref": "#/components/schemas/InvestorsMetadata"
          }
        },
        "required": ["investors", "metadata"]
      },
      "PricingCatalog": {
        "type": "object",
        "description": "Machine-readable pricing catalog: plans, dollar amounts, call allowances, add-ons, and agent-access guidance. Served verbatim from a versioned constant; additive changes only.",
        "properties": {
          "version": {
            "type": "string",
            "description": "Catalog version (bumped on any price/allowance change)."
          },
          "currency": {
            "type": "string"
          },
          "plans": {
            "type": "object",
            "description": "Per-plan pricing and allowances (free, pro, enterprise). Pro prices are per seat for one user; Enterprise has custom pricing and tailored team seats."
          },
          "add_ons": {
            "type": "object",
            "description": "Retired add-ons retained for grandfathered subscriptions. New REST API access requires Enterprise."
          },
          "agent_access": {
            "type": "object",
            "description": "How autonomous agents authenticate and how the human plan-change handoff works."
          },
          "endpoints": {
            "type": "object",
            "description": "Canonical pricing/docs/MCP URLs."
          }
        },
        "required": ["version", "currency", "plans", "add_ons", "endpoints"]
      },
      "InstrumentBreakdownResponse": {
        "type": "object",
        "description": "Public-market capital by instrument type (senior notes, convertible notes, ATM equity, warrant activity, follow-on equity), by year. The debt/warrant breakdown of the public_amounts of /api/v2/funding/history.",
        "properties": {
          "years": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Calendar years covered, oldest first (current year suffixed \" YTD\")."
          },
          "series": {
            "type": "object",
            "description": "instrument_type -> per-year USD amounts, one array per key, same length/order as `years`. Keys are a fixed, stable order (never re-sorted): known instrument types first, \"Unclassified\" last when present.",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          "metadata": {
            "type": "object",
            "properties": {
              "start_year": {
                "type": "integer"
              },
              "end_year": {
                "type": "integer"
              },
              "instruments": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "The `series` keys, in the same fixed display order."
              },
              "total_public_capital": {
                "type": "number",
                "description": "Summed across all instruments and years, USD."
              },
              "response_time_ms": {
                "type": "number"
              }
            },
            "required": ["start_year", "end_year", "instruments", "total_public_capital"]
          }
        },
        "required": ["years", "series", "metadata"]
      },
      "Error": {
        "type": "object",
        "description": "Auth/quota error envelope (401, 429).",
        "properties": {
          "error": {
            "type": "string",
            "description": "Human-readable error message."
          },
          "code": {
            "type": "string",
            "description": "Stable machine-readable error code (e.g. quota_exceeded, api_access_required)."
          },
          "upgrade": {
            "$ref": "#/components/schemas/UpgradeBlock"
          }
        },
        "required": ["error"]
      },
      "UpgradeBlock": {
        "type": "object",
        "description": "OPTIONAL — check for this field before using it. Emitted by the shared tier, timeframe, API-entitlement, quota, and key-cap gates; unauthenticated 401s and some per-endpoint 403s return only {error, code}. Tells a programmatic caller what it hit, which plan clears it, and the informational plans-page link to share with a human operator. Plan changes always require a human.",
        "properties": {
          "reason": {
            "type": "string",
            "enum": [
              "tier",
              "timeframe",
              "api_entitlement",
              "quota",
              "rate_limit",
              "tool",
              "param",
              "key_limit",
              "auth"
            ],
            "description": "Which gate denied the request."
          },
          "required_plan": {
            "type": ["string", "null"],
            "enum": ["pro", "enterprise", "api_addon", null],
            "description": "Cheapest plan/add-on that clears the gate; null when no purchase helps."
          },
          "current_plan": {
            "type": "string"
          },
          "checkout_url": {
            "type": "string",
            "format": "uri",
            "description": "Legacy alias of pricing_page: an informational plans-page link, never a payment or checkout flow."
          },
          "pricing_url": {
            "type": "string",
            "format": "uri",
            "description": "Machine-readable pricing catalog (public, never quota-gated)."
          },
          "pricing_page": {
            "type": "string",
            "format": "uri"
          },
          "docs_url": {
            "type": "string",
            "format": "uri"
          },
          "agent_instructions": {
            "type": "string",
            "description": "One sentence telling a well-behaved agent what to do next."
          }
        },
        "required": ["reason", "required_plan", "current_plan", "checkout_url", "pricing_url"]
      },
      "ServerError": {
        "type": "object",
        "description": "Server error envelope (5xx).",
        "properties": {
          "error": {
            "type": "string",
            "description": "Human-readable error message."
          },
          "message": {
            "type": "string",
            "description": "Additional detail."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "request_id": {
            "type": "string",
            "description": "Correlation id — include it when reporting an issue."
          }
        },
        "required": ["error"]
      }
    },
    "securitySchemes": {
      "apiKey": {
        "type": "http",
        "scheme": "bearer",
        "description": "Your API key, sent as a Bearer token. Mint one in your account under Developer → API."
      },
      "adminKey": {
        "type": "apiKey",
        "name": "X-Admin-Key",
        "in": "header",
        "description": "Admin API key for protected operational endpoints"
      }
    }
  },
  "tags": [
    {
      "name": "Companies",
      "description": "Company profiles, peers, and metadata"
    },
    {
      "name": "Investors",
      "description": "Investor profiles, portfolios, and rankings"
    },
    {
      "name": "Funding",
      "description": "Funding rounds, history, and stage/size distributions"
    },
    {
      "name": "M&A",
      "description": "Acquisitions, acquirers, and buyer-type breakdowns"
    },
    {
      "name": "Categories",
      "description": "Category taxonomy and per-category data"
    },
    {
      "name": "Charts",
      "description": "Dashboard chart data and filter options"
    },
    {
      "name": "Pricing",
      "description": "Machine-readable plan and allowance catalog"
    }
  ]
}
