{
  "openapi": "3.1.0",
  "info": {
    "title": "Fuse Risk API",
    "version": "1.0.0",
    "description": "Programmatic access to Fuse market intelligence: state rate filings, carriers, signals, industry hubs, Tape, Watch, Radar, Lens, and Mark.\n\nIntelligence responses (filings, signals, hubs, Tape, Watch, Radar, Lens) carry a `coverage` object describing what the response is actually based on. When coverage is thin, those endpoints return an empty result set with coverage metadata rather than synthesised content. Directory, compliance and Wire endpoints return `data` plus a `meta`/`pagination` block instead of `coverage`.",
    "contact": {
      "name": "Fuse Risk",
      "url": "https://fuserisk.com/developers"
    }
  },
  "servers": [
    {
      "url": "https://ubluuybrezpbbhlnutjx.supabase.co/api"
    }
  ],
  "tags": [
    {
      "name": "Filings",
      "description": "State rate filings by carrier, state, and line of business, with rate change and disposition. The raw record behind everything else Fuse publishes."
    },
    {
      "name": "Carriers",
      "description": "Canonical carrier and group registry with NAIC codes, domicile, and resolved aliases, plus appetite posture per line."
    },
    {
      "name": "Signals",
      "description": "The cross-market signal feed: rate moves, catastrophe declarations, and scored market news, filterable by state and line."
    },
    {
      "name": "Industry Hubs",
      "description": "The 15 live verticals. One call answers 'what does Fuse know about this industry, in this state, right now'."
    },
    {
      "name": "Market Data",
      "description": "NAIC statutory premium by company, state, and line, with multi-year trends."
    },
    {
      "name": "Tape",
      "description": "The insurance equity tape: sector indices, ticker leaderboard, and short-interest positioning for listed insurers."
    },
    {
      "name": "Watch",
      "description": "Scored market monitoring. Every item carries an Insurance Relevance score so you can threshold it yourself."
    },
    {
      "name": "Radar",
      "description": "Carrier appetite intelligence — which markets want a risk, scored and ranked."
    },
    {
      "name": "Lens",
      "description": "Actuarial synthesis over filing detail: rate motion distribution, carrier discipline, and peer cohorts. Synthesis, never enumeration."
    },
    {
      "name": "Mark",
      "description": "Submission review and peer benchmarking. Coverage-dependent by design — responses always state their own coverage."
    },
    {
      "name": "E&S Desk",
      "description": "Excess & surplus desk reads against a synthetic tenant. Read-only sandbox surface."
    },
    {
      "name": "Directory (Atlas)",
      "description": "Carrier, MGA, and distribution profiles with expertise, appetite, and connection search."
    },
    {
      "name": "Licenses & Appointments",
      "description": "Producer licensing and carrier appointment authority records."
    },
    {
      "name": "Wire (Embedded workflow)",
      "description": "Deal-room messaging primitives for embedding placement workflow. Not an intelligence surface."
    },
    {
      "name": "Reinsurance",
      "description": "Cedent and capacity intelligence. Not yet exposed publicly — the surface is tenant-scoped and paid-tier."
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      },
      "EsDeskBearer": {
        "type": "http",
        "scheme": "bearer",
        "description": "E&S desk keys only: `Authorization: Bearer fd_<key>`, on the E&S desk base URL."
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "paths": {
    "/filings": {
      "get": {
        "tags": [
          "Filings"
        ],
        "summary": "List rate filings",
        "description": "Rate filings with disposition and overall rate change. Filter by state, line, carrier, and window. The window matches on disposition date for closed filings and submission date for filings still pending, so open filings are included. Ordered by most recent activity. Filing coverage is deepest in IA, NY, TX, and CA, with partial history in MA and IL; the `coverage` object on every response reports what the query actually matched.",
        "operationId": "get_filings",
        "parameters": [
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "lob",
            "in": "query",
            "required": false,
            "description": "Text line-of-business slug (e.g. gl, workers_comp, commercial_auto). Comma-separate for multiple. Never a numeric filing code.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "carrier",
            "in": "query",
            "required": false,
            "description": "Carrier name match (case-insensitive, partial).",
            "schema": {
              "type": "string"
            },
            "example": "Travelers"
          },
          {
            "name": "disposition",
            "in": "query",
            "required": false,
            "description": "Filter by disposition, e.g. approved, withdrawn, pending.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "min_rate_change",
            "in": "query",
            "required": false,
            "description": "Only filings with an overall rate change at or above this percentage.",
            "schema": {
              "type": "number"
            },
            "example": 5
          },
          {
            "name": "window",
            "in": "query",
            "required": false,
            "description": "Lookback window in days. Default 90, max 730.",
            "schema": {
              "type": "number"
            },
            "example": 90
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "tracking_number": "TRV-CGL-2026-000123",
                      "carrier_name": "Travelers Indemnity Co",
                      "carrier_naic": "25658",
                      "state": "PA",
                      "lob": "gl",
                      "filing_type": "Rate",
                      "overall_rate_change_pct": 7.4,
                      "effective_date": "2026-09-01",
                      "disposition": "Approved",
                      "disposition_date": "2026-07-15"
                    }
                  ],
                  "coverage": {
                    "rows": 1,
                    "window_days": 90,
                    "scope": "state"
                  },
                  "pagination": {
                    "limit": 50,
                    "offset": 0
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/filings/{tracking_number}": {
      "get": {
        "tags": [
          "Filings"
        ],
        "summary": "Get a single filing",
        "description": "Full detail for one filing: carrier, line, filing type, overall rate change, effective and disposition dates.",
        "operationId": "get_filings_tracking_number",
        "parameters": [
          {
            "name": "tracking_number",
            "in": "path",
            "required": true,
            "description": "State filing tracking number.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": {
                    "tracking_number": "HNVR-G134702143",
                    "carrier_name": "Allmerica Financial Benefit Insurance Company",
                    "carrier_naic": "41840",
                    "state": "CA",
                    "lob": "commercial_auto",
                    "filing_type": "RATE",
                    "overall_rate_change_pct": null,
                    "effective_date": null,
                    "submission_date": "2025-10-15",
                    "disposition": null,
                    "disposition_date": "2026-05-26",
                    "product_name": "CL Auto 25",
                    "description": null,
                    "summary": null,
                    "document_count": 21
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/carriers": {
      "get": {
        "tags": [
          "Carriers"
        ],
        "summary": "Search the canonical carrier registry",
        "description": "The canonical carrier registry. Names are resolved across NAIC codes and aliases, so one carrier returns one record regardless of how a state spells it.",
        "operationId": "get_carriers",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Name search (partial, case-insensitive).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "naic",
            "in": "query",
            "required": false,
            "description": "NAIC company or group code.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_type",
            "in": "query",
            "required": false,
            "description": "Filter by entity type (carrier, group, mga).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "id": "3e2bc018-f3e4-4d24-bf08-f0a3fa6c2cd2",
                      "canonical_name": "1891 Financial Life",
                      "entity_type": "carrier",
                      "naic_codes": [
                        "57568"
                      ],
                      "naic_group_code": null,
                      "domicile_state": "CA",
                      "website": null
                    },
                    {
                      "id": "1c7c8808-0332-42cd-8748-c1e3c1ce2720",
                      "canonical_name": "1891 Financial Life",
                      "entity_type": "carrier",
                      "naic_codes": [
                        "57568"
                      ],
                      "naic_group_code": null,
                      "domicile_state": "CA",
                      "website": null
                    }
                  ],
                  "coverage": {
                    "rows": 2,
                    "window_days": 0,
                    "scope": "registry",
                    "has_data": true
                  },
                  "pagination": {
                    "limit": 2,
                    "offset": 0
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/carriers/{id}": {
      "get": {
        "tags": [
          "Carriers"
        ],
        "summary": "Get a carrier by canonical id or NAIC code",
        "description": "Registry record for one carrier, including NAIC codes, group code, domicile, and website.",
        "operationId": "get_carriers_id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Canonical entity UUID or NAIC code.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": {
                    "id": "3e2bc018-f3e4-4d24-bf08-f0a3fa6c2cd2",
                    "canonical_name": "1891 Financial Life",
                    "entity_type": "carrier",
                    "naic_codes": [
                      "57568"
                    ],
                    "naic_group_code": null,
                    "domicile_state": "CA",
                    "website": null,
                    "aliases": [],
                    "am_best_id": null
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/carriers/{id}/posture": {
      "get": {
        "tags": [
          "Carriers"
        ],
        "summary": "Appetite posture and recent rate motion for a carrier",
        "description": "Rate motion distribution and appetite posture for one carrier over the window, scoped by state and line. Returns distribution shape, not an enumerated filing list.",
        "operationId": "get_carriers_id_posture",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Canonical entity UUID or NAIC code.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "lob",
            "in": "query",
            "required": false,
            "description": "Text line-of-business slug (e.g. gl, workers_comp, commercial_auto). Comma-separate for multiple. Never a numeric filing code.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "window",
            "in": "query",
            "required": false,
            "description": "Lookback window in days. Default 90, max 730.",
            "schema": {
              "type": "number"
            },
            "example": 90
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "carrier": {
                    "id": "3e2bc018-f3e4-4d24-bf08-f0a3fa6c2cd2",
                    "name": "1891 Financial Life",
                    "naic_codes": [
                      "57568"
                    ]
                  },
                  "rate_motion": {
                    "filings": 0,
                    "median_pct": null,
                    "p25_pct": null,
                    "p75_pct": null,
                    "min_pct": null,
                    "max_pct": null,
                    "increases": 0,
                    "decreases": 0,
                    "flat": 0,
                    "direction": "insufficient_data"
                  },
                  "appetite": [],
                  "coverage": {
                    "rows": 0,
                    "window_days": 180,
                    "scope": "national",
                    "has_data": false,
                    "appetite_rows": 0
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/signals": {
      "get": {
        "tags": [
          "Signals"
        ],
        "summary": "Cross-market signal feed",
        "description": "Rate moves, catastrophe declarations, and scored market news in one time-ordered feed. Every item carries its source type and origin.",
        "operationId": "get_signals",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "Comma-separated signal types: rate_move, catastrophe, news. Default all.",
            "schema": {
              "type": "string"
            },
            "example": "rate_move,catastrophe"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "lob",
            "in": "query",
            "required": false,
            "description": "Text line-of-business slug (e.g. gl, workers_comp, commercial_auto). Comma-separate for multiple. Never a numeric filing code.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "window",
            "in": "query",
            "required": false,
            "description": "Lookback window in days. Default 90, max 730.",
            "schema": {
              "type": "number"
            },
            "example": 90
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "type": "rate_move",
                      "occurred_at": "2026-07-28",
                      "state": "PA",
                      "lob": "gl",
                      "carrier": "Selective Insurance Co of America",
                      "magnitude_pct": 8.2,
                      "headline": "Selective filed +8.2% on general liability in PA",
                      "source_url": "https://…"
                    }
                  ],
                  "coverage": {
                    "rows": 1,
                    "window_days": 90,
                    "scope": "state"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/hubs": {
      "get": {
        "tags": [
          "Industry Hubs"
        ],
        "summary": "List live industry hubs",
        "description": "Slug, display name, and the default line-of-business set for each live vertical.",
        "operationId": "get_hubs",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "slug": "agriculture",
                      "label": "Agriculture",
                      "core_lobs": [
                        "crop",
                        "farmowners"
                      ]
                    },
                    {
                      "slug": "contractors",
                      "label": "Contractors & Construction",
                      "core_lobs": [
                        "gl",
                        "workers_comp"
                      ]
                    }
                  ],
                  "coverage": {
                    "rows": 17,
                    "window_days": 0,
                    "scope": "registry",
                    "has_data": true
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/hubs/{slug}/brief": {
      "get": {
        "tags": [
          "Industry Hubs"
        ],
        "summary": "Market interpretation for a vertical",
        "description": "Rate distribution, direction, and named outliers for the vertical in the requested scope. Synthesis only — this endpoint never returns an enumerated filing list.",
        "operationId": "get_hubs_slug_brief",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Hub slug, e.g. contractors.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "lob",
            "in": "query",
            "required": false,
            "description": "Text line-of-business slug (e.g. gl, workers_comp, commercial_auto). Comma-separate for multiple. Never a numeric filing code.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "window",
            "in": "query",
            "required": false,
            "description": "Lookback window in days. Default 90, max 730.",
            "schema": {
              "type": "number"
            },
            "example": 90
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "hub": "contractors",
                  "distribution": {
                    "filings": 41,
                    "median_pct": 6.1,
                    "p25_pct": 2.4,
                    "p75_pct": 9.8,
                    "increases": 33,
                    "decreases": 5,
                    "flat": 3
                  },
                  "direction": "hardening",
                  "outliers": [
                    {
                      "carrier": "…",
                      "state": "PA",
                      "lob": "gl",
                      "rate_change_pct": 18.5
                    }
                  ],
                  "coverage": {
                    "rows": 41,
                    "window_days": 90,
                    "scope": "state",
                    "fell_back_to_national": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/hubs/{slug}/signals": {
      "get": {
        "tags": [
          "Industry Hubs"
        ],
        "summary": "Ranked signal feed for a vertical",
        "description": "The signal feed scored for this vertical: rate moves, catastrophe declarations, and market news matched to the hub's lines, ranked by urgency. Returns an empty set with a coverage object when the scope is thin — never filler.",
        "operationId": "get_hubs_slug_signals",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Hub slug.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "lob",
            "in": "query",
            "required": false,
            "description": "Text line-of-business slug (e.g. gl, workers_comp, commercial_auto). Comma-separate for multiple. Never a numeric filing code.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "window",
            "in": "query",
            "required": false,
            "description": "Lookback window in days. Default 90, max 730.",
            "schema": {
              "type": "number"
            },
            "example": 90
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "hub": "contractors",
                  "data": [],
                  "coverage": {
                    "rows": 0,
                    "window_days": 90,
                    "scope": "national",
                    "has_data": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/hubs/{slug}/carriers": {
      "get": {
        "tags": [
          "Industry Hubs"
        ],
        "summary": "Carrier posture within a vertical",
        "description": "Carrier posture within the vertical: which carriers are moving rate, in which direction, and how recently. Empty with a coverage object where the hub has no filings in scope.",
        "operationId": "get_hubs_slug_carriers",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Hub slug.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "lob",
            "in": "query",
            "required": false,
            "description": "Text line-of-business slug (e.g. gl, workers_comp, commercial_auto). Comma-separate for multiple. Never a numeric filing code.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "hub": "contractors",
                  "data": [],
                  "coverage": {
                    "rows": 0,
                    "window_days": 0,
                    "scope": "national",
                    "has_data": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/hubs/{slug}/forecast": {
      "get": {
        "tags": [
          "Industry Hubs"
        ],
        "summary": "Filing forecast for carriers in a vertical",
        "description": "Returns only carriers the forecast model actually has coverage for.",
        "operationId": "get_hubs_slug_forecast",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Hub slug.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "hub": "contractors",
                  "data": [],
                  "coverage": {
                    "rows": 0,
                    "window_days": 0,
                    "scope": "national",
                    "has_data": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/market-data/summary": {
      "get": {
        "tags": [
          "Market Data"
        ],
        "summary": "Statutory market summary",
        "description": "Market-wide statutory totals for a data year: written premium, incurred losses, contributing record count, and average loss ratio.",
        "operationId": "get_market_data_summary",
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "NAIC data year. Default 2023.",
            "schema": {
              "type": "number"
            },
            "example": 2023
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": {
                    "total_premiums": 958201845409,
                    "total_losses": 603283976455,
                    "record_count": 3770285,
                    "avg_loss_ratio": 65.69
                  },
                  "meta": {
                    "data_year": 2023,
                    "updated_at": "2026-08-03T15:42:49.377Z"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/market-data/companies": {
      "get": {
        "tags": [
          "Market Data"
        ],
        "summary": "Companies by statutory premium",
        "description": "Companies ranked by statutory premium for a data year, with loss, expense, and combined ratios, brokerage percentage, and market share.",
        "operationId": "get_market_data_companies",
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "NAIC data year. Default 2023.",
            "schema": {
              "type": "number"
            },
            "example": 2023
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "cocode": "25178",
                      "company_name": "STREET ADDRESS - MAIN ADMINISTRATIVE OFFICE",
                      "group_code": "176",
                      "group_name": "STATE FARM GRP",
                      "total_premiums_written": 55720951399000,
                      "total_premiums_earned": 52864950294000,
                      "total_losses_incurred": 44654192230000,
                      "total_commission_expense": 5594501938000,
                      "total_taxes_fees": 1158037649000,
                      "total_defense_costs": 1749486731000,
                      "loss_ratio": 0.84468427534052,
                      "expense_ratio": 0.12118492985963597,
                      "combined_ratio": 0.9724161572291216,
                      "brokerage_pct": 0.10040212518877419,
                      "record_count": 2756,
                      "market_share_pct": 5.82
                    },
                    {
                      "cocode": "25143",
                      "company_name": "STREET ADDRESS - MAIN ADMINISTRATIVE OFFICE",
                      "group_code": "176",
                      "group_name": "STATE FARM GRP",
                      "total_premiums_written": 27965074531000,
                      "total_premiums_earned": 26385559665000,
                      "total_losses_incurred": 22299280698000,
                      "total_commission_expense": 3054926260000,
                      "total_taxes_fees": 654738926000,
                      "total_defense_costs": 496004766000,
                      "loss_ratio": 0.8451319957249048,
                      "expense_ratio": 0.13265350613987248,
                      "combined_ratio": 0.9857265191346473,
                      "brokerage_pct": 0.1092407694681284,
                      "record_count": 2756,
                      "market_share_pct": 2.92
                    }
                  ],
                  "pagination": {
                    "limit": 2,
                    "offset": 0,
                    "total": 2580
                  },
                  "meta": {
                    "data_year": 2023,
                    "updated_at": "2026-08-03T15:42:50.501Z"
                  },
                  "quota": {
                    "rows_returned": 2,
                    "max_rows_per_response": 1000
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/market-data/companies/{cocode}": {
      "get": {
        "tags": [
          "Market Data"
        ],
        "summary": "Statutory detail for one company",
        "description": "Statutory premium, loss, and expense detail for one NAIC company code in a data year.",
        "operationId": "get_market_data_companies_cocode",
        "parameters": [
          {
            "name": "cocode",
            "in": "path",
            "required": true,
            "description": "NAIC company code.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": {
                    "cocode": "25178",
                    "company_name": "STREET ADDRESS - MAIN ADMINISTRATIVE OFFICE",
                    "data_year": 2023,
                    "total_premiums_written": 47279701206,
                    "total_premiums_earned": 44794672025,
                    "total_losses_incurred": 39220850341,
                    "loss_ratio": 0.875569539143199,
                    "state_breakdown": {
                      "AK": {
                        "premiums": 352039609,
                        "losses": 252118611
                      },
                      "AL": {
                        "premiums": 2264093624,
                        "losses": 1765391502
                      },
                      "AR": {
                        "premiums": 1308766480,
                        "losses": 974977754
                      },
                      "AZ": {
                        "premiums": 2463265574,
                        "losses": 1800166396
                      },
                      "CA": {
                        "premiums": 9929695348,
                        "losses": 9558081737
                      },
                      "CN": {
                        "premiums": 0,
                        "losses": -101246156
                      },
                      "CO": {
                        "premiums": 2855190936,
                        "losses": 2334728726
                      },
                      "CT": {
                        "premiums": 659700246,
                        "losses": 616643330
                      },
                      "DC": {
                        "premiums": 139718822,
                        "losses": 125529460
                      },
                      "DE": {
                        "premiums": 622860981,
                        "losses": 506505475
                      },
                      "FL": {
                        "premiums": 9700616030,
                        "losses": 8196822776
                      },
                      "GA": {
                        "premiums": 6003877187,
                        "losses": 5176599001
                      },
                      "HI": {
                        "premiums": 353342718,
                        "losses": 260436014
                      },
                      "IA": {
                        "premiums": 942563352,
                        "losses": 667325171
                      },
                      "ID": {
                        "premiums": 443534748,
                        "losses": 300653680
                      },
                      "IL": {
                        "premiums": 6070712722,
                        "losses": 4534169187
                      },
                      "IN": {
                        "premiums": 2236039658,
                        "losses": 1581554656
                      },
                      "KS": {
                        "premiums": 918811342,
                        "losses": 659330304
                      },
                      "KY": {
                        "premiums": 14871829,
                        "losses": 11062717
                      }
                    }
                  },
                  "meta": {
                    "data_year": 2023,
                    "updated_at": "2026-08-03T15:43:18.405Z"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/market-data/states": {
      "get": {
        "tags": [
          "Market Data"
        ],
        "summary": "Premium by state",
        "description": "Written premium, incurred losses, and loss ratio by state for a data year, ordered by premium.",
        "operationId": "get_market_data_states",
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "NAIC data year. Default 2023.",
            "schema": {
              "type": "number"
            },
            "example": 2023
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "state": "CA",
                      "total_premiums": 111239379329,
                      "total_losses": 72025707564,
                      "loss_ratio": 0.6474839036181405
                    },
                    {
                      "state": "TX",
                      "total_premiums": 92288987192,
                      "total_losses": 60479888467,
                      "loss_ratio": 0.6553315873017042
                    }
                  ],
                  "pagination": {
                    "limit": 58,
                    "offset": 0,
                    "total": 58
                  },
                  "meta": {
                    "data_year": 2023,
                    "updated_at": "2026-08-03T15:42:52.152Z"
                  },
                  "quota": {
                    "rows_returned": 58,
                    "max_rows_per_response": 1000
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/market-data/lob": {
      "get": {
        "tags": [
          "Market Data"
        ],
        "summary": "Premium by line of business",
        "description": "Written premium, incurred losses, and loss ratio by NAIC line of business for a data year, with line names resolved.",
        "operationId": "get_market_data_lob",
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "NAIC data year. Default 2023.",
            "schema": {
              "type": "number"
            },
            "example": 2023
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "line_no": "19.2",
                      "line_name": "Other Private Passenger Auto Liability",
                      "total_premiums": 161734255173,
                      "total_losses": 120040298209,
                      "loss_ratio": 0.7422070116228513
                    },
                    {
                      "line_no": "04",
                      "line_name": "Homeowners Multiple Peril",
                      "total_premiums": 149066149071,
                      "total_losses": 99444409988,
                      "loss_ratio": 0.6671159790988815
                    }
                  ],
                  "pagination": {
                    "limit": 35,
                    "offset": 0,
                    "total": 53
                  },
                  "meta": {
                    "data_year": 2023,
                    "updated_at": "2026-08-03T15:42:53.874Z"
                  },
                  "quota": {
                    "rows_returned": 35,
                    "max_rows_per_response": 1000
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/market-data/trends": {
      "get": {
        "tags": [
          "Market Data"
        ],
        "summary": "Multi-year premium trends",
        "description": "Multi-year premium, loss, and loss-ratio history for one company. `cocode` is required — use /market-data/companies to find one.",
        "operationId": "get_market_data_trends",
        "parameters": [
          {
            "name": "cocode",
            "in": "query",
            "required": true,
            "description": "NAIC company code to trend. Required.",
            "schema": {
              "type": "string"
            },
            "example": "25178"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "year": 2019,
                      "total_premiums": 27150999937,
                      "total_losses": 17541320500,
                      "loss_ratio": 0.6460653582078788
                    }
                  ],
                  "meta": {
                    "cocode": "25178",
                    "updated_at": "2026-08-03T15:43:17.521Z"
                  },
                  "quota": {
                    "rows_returned": 1,
                    "max_rows_per_response": 1000
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/tape/indices": {
      "get": {
        "tags": [
          "Tape"
        ],
        "summary": "Insurance sector index returns",
        "description": "Benchmark index returns across 1m to 5y horizons, with a sparkline series.",
        "operationId": "get_tape_indices",
        "parameters": [
          {
            "name": "benchmark",
            "in": "query",
            "required": false,
            "description": "Filter to one benchmark code, e.g. FUSE_ALL.",
            "schema": {
              "type": "string"
            },
            "example": "FUSE_ALL"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "benchmark_code": "FUSE_ALL",
                      "as_of_date": "2026-07-31",
                      "ret_1m": 0.023277,
                      "ret_3m": 0.124628,
                      "ret_6m": 0.1212,
                      "ret_1y": 0.168466,
                      "ret_3y": 1.227502,
                      "ret_5y": 1.674037,
                      "constituent_count": null,
                      "sparkline": [
                        {
                          "c": 174.075426,
                          "d": "2026-03-25"
                        },
                        {
                          "c": 174.380594,
                          "d": "2026-03-26"
                        },
                        "…"
                      ],
                      "refreshed_at": "2026-08-03T02:35:08.505+00:00"
                    },
                    {
                      "benchmark_code": "FUSE_REINS",
                      "as_of_date": "2026-07-31",
                      "ret_1m": 0.017221,
                      "ret_3m": 0.064198,
                      "ret_6m": 0.18238,
                      "ret_1y": 0.344102,
                      "ret_3y": 1.09537,
                      "ret_5y": 1.840646,
                      "constituent_count": 7,
                      "sparkline": [
                        {
                          "c": 267.313418,
                          "d": "2026-03-25"
                        },
                        {
                          "c": 268.03369,
                          "d": "2026-03-26"
                        },
                        "…"
                      ],
                      "refreshed_at": "2026-08-03T02:35:08.573+00:00"
                    }
                  ],
                  "coverage": {
                    "rows": 6,
                    "window_days": 0,
                    "scope": "market",
                    "has_data": true
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/tape/leaderboard": {
      "get": {
        "tags": [
          "Tape"
        ],
        "summary": "Listed insurer return leaderboard",
        "description": "Listed insurers ranked by total return over the chosen horizon, with basket tags and a price sparkline for each ticker.",
        "operationId": "get_tape_leaderboard",
        "parameters": [
          {
            "name": "basket",
            "in": "query",
            "required": false,
            "description": "Filter to a basket tag (e.g. brokers, reinsurers, personal_lines).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "horizon",
            "in": "query",
            "required": false,
            "description": "Sort horizon: 1m, 3m, 6m, 1y, 3y, 5y. Default 1m.",
            "schema": {
              "type": "string"
            },
            "example": "3m"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "ticker": "SAFT",
                      "name": "Safety Insurance",
                      "basket_tags": [
                        "regional_personal"
                      ],
                      "as_of_date": "2026-07-31",
                      "ret_1m": 0.355757,
                      "ret_3m": 0.385395,
                      "ret_6m": 0.347141,
                      "ret_1y": 0.5447,
                      "ret_3y": 0.659074,
                      "ret_5y": 0.59563,
                      "sparkline": [
                        {
                          "c": 72.42778015136719,
                          "d": "2026-03-24"
                        },
                        {
                          "c": 71.8652572631836,
                          "d": "2026-03-25"
                        },
                        "…"
                      ]
                    },
                    {
                      "ticker": "GSHD",
                      "name": "Goosehead Insurance",
                      "basket_tags": [
                        "broker"
                      ],
                      "as_of_date": "2026-07-31",
                      "ret_1m": 0.225054,
                      "ret_3m": 0.424632,
                      "ret_6m": 0.002587,
                      "ret_1y": -0.318007,
                      "ret_3y": -0.007448,
                      "ret_5y": -0.447518,
                      "sparkline": [
                        {
                          "c": 41.189998626708984,
                          "d": "2026-03-25"
                        },
                        {
                          "c": 42.08000183105469,
                          "d": "2026-03-26"
                        },
                        "…"
                      ]
                    }
                  ],
                  "coverage": {
                    "rows": 2,
                    "window_days": 0,
                    "scope": "market",
                    "has_data": true,
                    "horizon": "1m"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/tape/short-interest": {
      "get": {
        "tags": [
          "Tape"
        ],
        "summary": "Short interest and days-to-cover by ticker",
        "description": "Latest short interest settlement per ticker with change since the prior settlement, days to cover, percentage of shares short, and the historical percentile of that positioning.",
        "operationId": "get_tape_short_interest",
        "parameters": [
          {
            "name": "ticker",
            "in": "query",
            "required": false,
            "description": "Filter to one ticker.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "ticker": "BWIN",
                      "name": "Baldwin Insurance Group",
                      "basket_tags": [
                        "broker"
                      ],
                      "si_settlement_date": "2026-05-29",
                      "short_qty": 12215716,
                      "delta_short": -413657,
                      "days_to_cover": 8.22,
                      "pct_shares_short": 0.35941088197644333,
                      "si_percentile": 0.9184
                    },
                    {
                      "ticker": "LMND",
                      "name": "Lemonade",
                      "basket_tags": [
                        "insurtech",
                        "regional_personal"
                      ],
                      "si_settlement_date": "2026-05-29",
                      "short_qty": 10246920,
                      "delta_short": -922477,
                      "days_to_cover": 7.74,
                      "pct_shares_short": 0.1333873308695124,
                      "si_percentile": 0
                    }
                  ],
                  "coverage": {
                    "rows": 2,
                    "window_days": 0,
                    "scope": "market",
                    "has_data": true
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/watch/feed": {
      "get": {
        "tags": [
          "Watch"
        ],
        "summary": "Scored market monitoring feed",
        "description": "Market news scored for insurance relevance, with matched carriers, lines, and states returned as fields so you can filter and threshold in your own system.",
        "operationId": "get_watch_feed",
        "parameters": [
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "lob",
            "in": "query",
            "required": false,
            "description": "Text line-of-business slug (e.g. gl, workers_comp, commercial_auto). Comma-separate for multiple. Never a numeric filing code.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "description": "Filter to one feed category.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "min_relevance",
            "in": "query",
            "required": false,
            "description": "Minimum Insurance Relevance score (0-100).",
            "schema": {
              "type": "number"
            },
            "example": 60
          },
          {
            "name": "carrier",
            "in": "query",
            "required": false,
            "description": "Only items mentioning this carrier.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "window",
            "in": "query",
            "required": false,
            "description": "Lookback window in days. Default 90, max 730.",
            "schema": {
              "type": "number"
            },
            "example": 90
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "title": "Mergers & Acquisitions",
                      "summary": "This article details several recent mergers and acquisitions within the insurance industry. Inszone Insurance Services made multiple acquisitions to expand its offerings in personal auto, hospitality,…",
                      "ai_summary": {
                        "tags": [
                          "mergers and acquisitions",
                          "growth strategy"
                        ],
                        "summary": "This article details several recent mergers and acquisitions within the insurance industry. Inszone Insurance Services made multiple acquisitions to expand its offerings in personal auto, hospitality,…",
                        "category": "ma",
                        "is_featured": true,
                        "mentioned_lobs": [
                          "personal auto",
                          "insurance industry training"
                        ],
                        "relevance_score": 1,
                        "mentioned_carriers": [
                          "Inszone Insurance Services",
                          "Advice Insurance Agency"
                        ]
                      },
                      "source_url": "https://www.insurancebusinessmag.com/us/news/mergers-acquisitions/",
                      "source_name": "insurancebusinessmag.com",
                      "published_at": "2026-08-03T10:00:57.288+00:00",
                      "category": "ma",
                      "relevance_score": 1,
                      "mentioned_carriers": [
                        "Inszone Insurance Services",
                        "Advice Insurance Agency"
                      ],
                      "mentioned_lobs": [
                        "personal auto",
                        "insurance industry training"
                      ],
                      "mentioned_states": [],
                      "tags": [
                        "mergers and acquisitions",
                        "growth strategy"
                      ]
                    },
                    {
                      "title": "How to Analyze Health Insurance Stocks: A Sector Guide",
                      "summary": "This article provides a guide on analyzing health insurance stocks, focusing on key metrics such as the Medical Loss Ratio (MLR), medical cost trends, premium yield, membership growth, and reserves. I…",
                      "ai_summary": {
                        "tags": [
                          "health insurance",
                          "stocks"
                        ],
                        "summary": "This article provides a guide on analyzing health insurance stocks, focusing on key metrics such as the Medical Loss Ratio (MLR), medical cost trends, premium yield, membership growth, and reserves. I…",
                        "category": "market",
                        "is_featured": true,
                        "mentioned_lobs": [
                          "health"
                        ],
                        "relevance_score": 0.8,
                        "mentioned_carriers": [
                          "UnitedHealth Group",
                          "Elevance Health"
                        ]
                      },
                      "source_url": "https://www.investing.com/academy/analysis/how-to-analyze-health-insurance-stocks/",
                      "source_name": "investing.com",
                      "published_at": "2026-08-03T10:00:46.023+00:00",
                      "category": "market",
                      "relevance_score": 0.8,
                      "mentioned_carriers": [
                        "UnitedHealth Group",
                        "Elevance Health"
                      ],
                      "mentioned_lobs": [
                        "health"
                      ],
                      "mentioned_states": [],
                      "tags": [
                        "health insurance",
                        "stocks"
                      ]
                    }
                  ],
                  "coverage": {
                    "rows": 2,
                    "window_days": 30,
                    "scope": "national",
                    "has_data": true
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/watch/topics": {
      "get": {
        "tags": [
          "Watch"
        ],
        "summary": "Available feed categories with volume",
        "description": "Feed categories available in the window, with item counts and average Insurance Relevance so you can pick thresholds before pulling the feed.",
        "operationId": "get_watch_topics",
        "parameters": [
          {
            "name": "window",
            "in": "query",
            "required": false,
            "description": "Lookback window in days. Default 90, max 730.",
            "schema": {
              "type": "number"
            },
            "example": 90
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "category": "market",
                      "items": 21,
                      "avg_relevance": 1
                    },
                    {
                      "category": "other",
                      "items": 4,
                      "avg_relevance": 1
                    }
                  ],
                  "coverage": {
                    "rows": 5,
                    "window_days": 30,
                    "scope": "national",
                    "has_data": true
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/radar/appetite": {
      "get": {
        "tags": [
          "Radar"
        ],
        "summary": "Ranked carrier appetite for a risk",
        "description": "Returns carriers scored for appetite against a line, state, and optional class attribute, with the composite score and confidence Radar computed server-side.",
        "operationId": "get_radar_appetite",
        "parameters": [
          {
            "name": "lob",
            "in": "query",
            "required": true,
            "description": "Text line-of-business slug (e.g. gl, workers_comp, commercial_auto). Comma-separate for multiple. Never a numeric filing code.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "attribute",
            "in": "query",
            "required": false,
            "description": "Class or attribute value to match (e.g. a class code or industry class).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "min_score",
            "in": "query",
            "required": false,
            "description": "Minimum composite appetite score (0-100).",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "carrier_id": "7966a892-309f-47a1-9c8f-9b00fe8c9cc4",
                      "carrier_name": "Falls Lake Fire and Casualty Company",
                      "lob": "gl",
                      "state": "CA",
                      "attribute_dimension": "insured_definition",
                      "attribute_value": "Employee",
                      "appetite_score": 0.8,
                      "confidence": 0.9,
                      "observations": 0,
                      "as_of": null,
                      "stale": false
                    },
                    {
                      "carrier_id": "d5153d1a-eb97-483d-9a74-df26c75ffa3d",
                      "carrier_name": "Accelerant National Insurance Company",
                      "lob": "gl",
                      "state": "CA",
                      "attribute_dimension": "risk_class",
                      "attribute_value": "vehicle specialty market - on-hook liability",
                      "appetite_score": 0.8,
                      "confidence": 0.95,
                      "observations": 0,
                      "as_of": null,
                      "stale": false
                    }
                  ],
                  "coverage": {
                    "rows": 2,
                    "window_days": 0,
                    "scope": "state",
                    "has_data": true,
                    "lob": [
                      "gl"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/lens/rate-motion": {
      "get": {
        "tags": [
          "Lens"
        ],
        "summary": "Normalised rate motion distribution",
        "description": "Distribution of observed rate motion for a line and state over a window, with named outliers. Returns shape and outliers, never an enumerated filing list.\n\nRequires professional tier or above.",
        "operationId": "get_lens_rate_motion",
        "parameters": [
          {
            "name": "lob",
            "in": "query",
            "required": false,
            "description": "Text line-of-business slug (e.g. gl, workers_comp, commercial_auto). Comma-separate for multiple. Never a numeric filing code.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "window",
            "in": "query",
            "required": false,
            "description": "Lookback window in days. Default 90, max 730.",
            "schema": {
              "type": "number"
            },
            "example": 90
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "scope": {
                    "state": null,
                    "lob": null
                  },
                  "distribution": {
                    "filings": 1000,
                    "median_pct": 0.14,
                    "p25_pct": 0,
                    "p75_pct": 1.3,
                    "min_pct": -83,
                    "max_pct": 524.94,
                    "increases": 403,
                    "decreases": 108,
                    "flat": 489
                  },
                  "direction": "flat",
                  "outliers": [
                    {
                      "carrier": "Accredited Surety & Casualty Company, Inc.",
                      "state": "CA",
                      "lob": "workers_comp",
                      "motion_kind": "rate_increase",
                      "magnitude_pct": 524.94,
                      "effective_date": null
                    },
                    {
                      "carrier": "Accredited Surety & Casualty Company, Inc.",
                      "state": "CA",
                      "lob": "workers_comp",
                      "motion_kind": "rate_increase",
                      "magnitude_pct": 524.94,
                      "effective_date": null
                    }
                  ],
                  "coverage": {
                    "rows": 1000,
                    "window_days": 180,
                    "scope": "national",
                    "has_data": true
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/lens/movements": {
      "get": {
        "tags": [
          "Lens"
        ],
        "summary": "Current movement cards",
        "description": "The synthesised movement cards Lens surfaces today, with metric, direction, and suggested action. Cards are recomputed on a schedule; when no cards are current the endpoint returns an empty `data` array with `coverage.has_data: false` rather than stale or synthesised content.\n\nRequires professional tier or above.",
        "operationId": "get_lens_movements",
        "parameters": [
          {
            "name": "card_type",
            "in": "query",
            "required": false,
            "description": "Filter to one card type.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "lob",
            "in": "query",
            "required": false,
            "description": "Text line-of-business slug (e.g. gl, workers_comp, commercial_auto). Comma-separate for multiple. Never a numeric filing code.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [],
                  "coverage": {
                    "rows": 0,
                    "window_days": 0,
                    "scope": "market",
                    "has_data": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/lens/cohorts/{carrier}": {
      "get": {
        "tags": [
          "Lens"
        ],
        "summary": "LOB-mix peer cohort for a carrier",
        "description": "Requires professional tier or above.",
        "operationId": "get_lens_cohorts_carrier",
        "parameters": [
          {
            "name": "carrier",
            "in": "path",
            "required": true,
            "description": "Carrier name or a fragment of it, matched case-insensitively against the full legal entity name (URL-encode spaces).",
            "schema": {
              "type": "string"
            },
            "example": "21st Century Insurance Company"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "carrier": "Travelers Indemnity Company",
                  "data": [],
                  "coverage": {
                    "rows": 0,
                    "window_days": 0,
                    "scope": "cohort",
                    "has_data": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/mark/benchmark": {
      "post": {
        "tags": [
          "Mark"
        ],
        "summary": "Benchmark a submission against peers",
        "description": "Returns peer premium and limit percentiles for a class, size band, region, and coverage line. Coverage-dependent: when no comparable peer set exists the response says so explicitly rather than returning a percentile.\n\nRequires professional tier or above.",
        "operationId": "post_mark_benchmark",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "naics_4digit",
                  "coverage_line"
                ],
                "properties": {
                  "naics_4digit": {
                    "type": "string",
                    "description": "Four-digit NAICS code."
                  },
                  "coverage_line": {
                    "type": "string",
                    "description": "Coverage line, e.g. gl."
                  },
                  "size_band": {
                    "type": "string",
                    "description": "Revenue or exposure size band."
                  },
                  "region": {
                    "type": "string",
                    "description": "Region or state scope."
                  },
                  "premium": {
                    "type": "number",
                    "description": "Quoted premium to position against the peer distribution."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "benchmark": null,
                  "position": null,
                  "coverage": {
                    "has_data": false,
                    "rows": 0,
                    "reason": "No peer benchmark exists for this class, line, and scope yet.",
                    "naics_4digit": "2382",
                    "coverage_line": "gl"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/pressure": {
      "get": {
        "tags": [
          "E&S Desk"
        ],
        "summary": "Book pressure cells for a tenant",
        "description": "Book pressure cells for one E&S desk tenant. Different base URL and auth from the rest of this API: send `Authorization: Bearer fd_<key>` and the `tenant` query param. The key must be scoped to that tenant or the call returns 403.",
        "operationId": "get_pressure",
        "servers": [
          {
            "url": "https://ubluuybrezpbbhlnutjx.supabase.co/functions/v1/es-desk-api"
          }
        ],
        "parameters": [
          {
            "name": "tenant",
            "in": "query",
            "required": true,
            "description": "E&S desk tenant id. Your key must be scoped to this tenant, or the call returns 403.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "EsDeskBearer": []
          }
        ]
      }
    },
    "/tower": {
      "get": {
        "tags": [
          "E&S Desk"
        ],
        "summary": "Tower layers for a tenant",
        "description": "Tower layers for one E&S desk tenant, in stacking order. Same base URL and auth as the other E&S desk reads: `Authorization: Bearer fd_<key>` plus the `tenant` query param.",
        "operationId": "get_tower",
        "servers": [
          {
            "url": "https://ubluuybrezpbbhlnutjx.supabase.co/functions/v1/es-desk-api"
          }
        ],
        "parameters": [
          {
            "name": "tenant",
            "in": "query",
            "required": true,
            "description": "E&S desk tenant id. Your key must be scoped to this tenant, or the call returns 403.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "EsDeskBearer": []
          }
        ]
      }
    },
    "/pricing": {
      "get": {
        "tags": [
          "E&S Desk"
        ],
        "summary": "Cost stack for a tenant",
        "description": "Cost stack rows for one E&S desk tenant, in stacking order. Same base URL and auth as the other E&S desk reads: `Authorization: Bearer fd_<key>` plus the `tenant` query param.",
        "operationId": "get_pricing",
        "servers": [
          {
            "url": "https://ubluuybrezpbbhlnutjx.supabase.co/functions/v1/es-desk-api"
          }
        ],
        "parameters": [
          {
            "name": "tenant",
            "in": "query",
            "required": true,
            "description": "E&S desk tenant id. Your key must be scoped to this tenant, or the call returns 403.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "EsDeskBearer": []
          }
        ]
      }
    },
    "/directory": {
      "get": {
        "tags": [
          "Directory (Atlas)"
        ],
        "summary": "Search carrier and distribution profiles",
        "description": "Search the company and user directory: carriers, brokers, MGAs, and wholesalers with type, NAIC number, and profile fields.",
        "operationId": "get_directory",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Name search (partial, case-insensitive).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "company_type",
            "in": "query",
            "required": false,
            "description": "Filter by type: carrier, broker, mga, wholesaler.",
            "schema": {
              "type": "string"
            },
            "example": "carrier"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "lines",
            "in": "query",
            "required": false,
            "description": "Comma-separated line-of-business slugs.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": {
                    "companies": [
                      {
                        "id": "00000000-0000-0000-0000-000000000000",
                        "name": "️️ Allen/Freeman/McDonnell Agency",
                        "company_type": "broker",
                        "naic_number": null,
                        "logo_url": null,
                        "headquarters_state": null,
                        "lines_of_business": null,
                        "am_best_rating": null,
                        "is_verified": false
                      },
                      {
                        "id": "00000000-0000-0000-0000-000000000000",
                        "name": "[]Acadia Insurance Company",
                        "company_type": "carrier",
                        "naic_number": "99",
                        "logo_url": null,
                        "headquarters_state": null,
                        "lines_of_business": null,
                        "am_best_rating": null,
                        "is_verified": false
                      }
                    ],
                    "users": [
                      {
                        "id": "00000000-0000-0000-0000-000000000000",
                        "first_name": "",
                        "last_name": "",
                        "email": "user@example.com",
                        "title": null,
                        "npn": null,
                        "nipr_verified": false,
                        "online_status": "offline",
                        "avatar_url": null,
                        "company": null
                      },
                      {
                        "id": "00000000-0000-0000-0000-000000000000",
                        "first_name": "",
                        "last_name": "",
                        "email": "user@example.com",
                        "title": null,
                        "npn": null,
                        "nipr_verified": false,
                        "online_status": "offline",
                        "avatar_url": null,
                        "company": null
                      }
                    ]
                  },
                  "pagination": {
                    "limit": 2,
                    "offset": 0,
                    "total_companies": 12810,
                    "total_users": 121
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/expertise/search": {
      "get": {
        "tags": [
          "Directory (Atlas)"
        ],
        "summary": "Search by expertise",
        "description": "Search the expertise index by state and line or class. `search_for` and `states` are required, plus at least one of `lobs` or `classes`.",
        "operationId": "get_expertise_search",
        "parameters": [
          {
            "name": "search_for",
            "in": "query",
            "required": true,
            "description": "One of carriers, brokers, mgas, wholesalers, all.",
            "schema": {
              "type": "string"
            },
            "example": "carriers"
          },
          {
            "name": "states",
            "in": "query",
            "required": true,
            "description": "Comma-separated state codes.",
            "schema": {
              "type": "string"
            },
            "example": "CA,PA"
          },
          {
            "name": "lobs",
            "in": "query",
            "required": false,
            "description": "Comma-separated line slugs. Required unless `classes` is set.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "classes",
            "in": "query",
            "required": false,
            "description": "Comma-separated class codes. Required unless `lobs` is set.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include_individuals",
            "in": "query",
            "required": false,
            "description": "Include individual producers as well as companies.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort key applied by the expertise index.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "meta": {
                    "limit": 2,
                    "total": 0,
                    "offset": 0,
                    "attribute_matches": 0,
                    "attribute_filter_count": 0,
                    "query": {
                      "search_for": "carriers",
                      "states": [
                        "CA"
                      ],
                      "lobs": [
                        "gl"
                      ],
                      "classes": null
                    }
                  },
                  "results": []
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/expertise/stats": {
      "get": {
        "tags": [
          "Directory (Atlas)"
        ],
        "summary": "Expertise coverage stats",
        "description": "Row counts behind the expertise index, split between company and individual records.",
        "operationId": "get_expertise_stats",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": {
                    "total_indexed_rows": 450376,
                    "company_records": 450376,
                    "individual_records": 0
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/appetite/search": {
      "get": {
        "tags": [
          "Directory (Atlas)"
        ],
        "summary": "Search published appetite",
        "description": "Search published appetite. At least one of `lob`, `state`, or `class` is required. Returns the markets partition by default.",
        "operationId": "get_appetite_search",
        "parameters": [
          {
            "name": "lob",
            "in": "query",
            "required": false,
            "description": "Text line-of-business slug (e.g. gl, workers_comp, commercial_auto). Comma-separate for multiple. Never a numeric filing code.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "class",
            "in": "query",
            "required": false,
            "description": "Class code or industry class.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "min_score",
            "in": "query",
            "required": false,
            "description": "Minimum appetite score (0-100).",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "signal",
            "in": "query",
            "required": false,
            "description": "Filter to one appetite signal.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [],
                  "meta": {
                    "source": "live",
                    "partition": "markets",
                    "filters": {
                      "lob": "gl",
                      "state": null,
                      "class": null,
                      "min_score": 0,
                      "signal": null
                    },
                    "pagination": {
                      "limit": 2,
                      "offset": 0,
                      "total": 0,
                      "returned": 0
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/appetite/company/{id}": {
      "get": {
        "tags": [
          "Directory (Atlas)"
        ],
        "summary": "Published appetite for one company",
        "description": "Published appetite and profile fields for one company in the directory.",
        "operationId": "get_appetite_company_id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Company id.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": {
                    "company": {
                      "id": "00000000-0000-0000-0000-000000000000",
                      "name": "️️ Allen/Freeman/McDonnell Agency",
                      "company_type": "broker",
                      "cocode": null,
                      "insurance_classes": null,
                      "lines_of_business": null,
                      "licensed_states": null,
                      "headquarters_state": null,
                      "am_best_rating": null,
                      "is_naic_verified": false
                    },
                    "appetite": [],
                    "summary": {
                      "total_lob_state_combos": 0,
                      "unique_lobs": [],
                      "unique_states": [],
                      "avg_appetite_score": 0
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/connect/search": {
      "get": {
        "tags": [
          "Directory (Atlas)"
        ],
        "summary": "Search distribution connections",
        "description": "Search distribution connections across markets and distributors. At least one of `lob`, `state`, or `class` is required.",
        "operationId": "get_connect_search",
        "parameters": [
          {
            "name": "lob",
            "in": "query",
            "required": false,
            "description": "Text line-of-business slug (e.g. gl, workers_comp, commercial_auto). Comma-separate for multiple. Never a numeric filing code.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "class",
            "in": "query",
            "required": false,
            "description": "Class code or industry class.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "partition",
            "in": "query",
            "required": false,
            "description": "markets, distributors, or all. Default markets.",
            "schema": {
              "type": "string"
            },
            "example": "markets"
          },
          {
            "name": "min_score",
            "in": "query",
            "required": false,
            "description": "Minimum match score (0-100).",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "signal",
            "in": "query",
            "required": false,
            "description": "Filter to one appetite signal.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [],
                  "meta": {
                    "source": "live",
                    "partition": "markets",
                    "filters": {
                      "lob": "gl",
                      "state": null,
                      "class": null,
                      "min_score": 0,
                      "signal": null
                    },
                    "pagination": {
                      "limit": 2,
                      "offset": 0,
                      "total": 0,
                      "returned": 0
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/connect/markets": {
      "get": {
        "tags": [
          "Directory (Atlas)"
        ],
        "summary": "List markets",
        "description": "The markets partition of the connect index: carriers and MGAs writing business, with their scoped appetite entries.",
        "operationId": "get_connect_markets",
        "parameters": [
          {
            "name": "lob",
            "in": "query",
            "required": false,
            "description": "Text line-of-business slug (e.g. gl, workers_comp, commercial_auto). Comma-separate for multiple. Never a numeric filing code.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "id": "be043092-f35b-4339-aafd-c672292cde23",
                      "entity_type": "company",
                      "entity_id": "6472e010-e7e6-4fc5-bb54-12664e4a80f5",
                      "company_id": "6472e010-e7e6-4fc5-bb54-12664e4a80f5",
                      "company_name": "MIC General Insurance Corporation",
                      "company_type": "carrier",
                      "user_name": null,
                      "user_title": null,
                      "user_type": null,
                      "state": "AK",
                      "lob": "Warranty",
                      "insurance_class": null,
                      "sector": null,
                      "confidence_score": 100,
                      "source_signals": {
                        "naic_verified": true,
                        "appetite_score": 100,
                        "appetite_signal": "Growing"
                      },
                      "matching_user_count": 0,
                      "created_at": "2026-02-25T18:25:49.930785+00:00",
                      "updated_at": "2026-02-25T18:25:49.930785+00:00",
                      "naic_appetite_score": 100,
                      "appetite_signal": "Growing",
                      "premium_volume": 2110017000,
                      "premium_growth_pct": 139.83,
                      "market_share_pct": 40.5918
                    },
                    {
                      "id": "9b66d5ea-59ed-498f-be24-3d6639e44c5b",
                      "entity_type": "company",
                      "entity_id": "83eee8f1-7406-44eb-b75a-20f8023339b5",
                      "company_id": "83eee8f1-7406-44eb-b75a-20f8023339b5",
                      "company_name": "Umialik Insurance Company",
                      "company_type": "carrier",
                      "user_name": null,
                      "user_title": null,
                      "user_type": null,
                      "state": "AK",
                      "lob": "Reinsurance",
                      "insurance_class": null,
                      "sector": null,
                      "confidence_score": 100,
                      "source_signals": {
                        "naic_verified": true,
                        "appetite_score": 100,
                        "appetite_signal": "Growing"
                      },
                      "matching_user_count": 0,
                      "created_at": "2026-02-25T18:25:49.930785+00:00",
                      "updated_at": "2026-02-25T18:25:49.930785+00:00",
                      "naic_appetite_score": 100,
                      "appetite_signal": "Growing",
                      "premium_volume": 1974947000,
                      "premium_growth_pct": 31.08,
                      "market_share_pct": 13.2293
                    }
                  ],
                  "meta": {
                    "partition": "markets",
                    "filters": {
                      "lob": null,
                      "state": null
                    },
                    "pagination": {
                      "limit": 2,
                      "offset": 0,
                      "total": 448904,
                      "returned": 2
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/connect/distributors": {
      "get": {
        "tags": [
          "Directory (Atlas)"
        ],
        "summary": "List distributors",
        "description": "The distributors partition of the connect index: brokers and wholesalers, with their scoped appetite entries. The index is currently populated with carrier and reinsurer entities only, so this partition returns an empty set until distributor coverage is loaded — use /connect/markets for live data today.",
        "operationId": "get_connect_distributors",
        "parameters": [
          {
            "name": "lob",
            "in": "query",
            "required": false,
            "description": "Text line-of-business slug (e.g. gl, workers_comp, commercial_auto). Comma-separate for multiple. Never a numeric filing code.",
            "schema": {
              "type": "string"
            },
            "example": "gl"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [],
                  "meta": {
                    "partition": "distributors",
                    "filters": {
                      "lob": null,
                      "state": null
                    },
                    "pagination": {
                      "limit": 2,
                      "offset": 0,
                      "total": 0,
                      "returned": 0
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/connect/stats": {
      "get": {
        "tags": [
          "Directory (Atlas)"
        ],
        "summary": "Directory coverage stats",
        "description": "Coverage counts behind the connect index: cached entries by partition and total expertise index rows.",
        "operationId": "get_connect_stats",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": {
                    "cache_entries": 0,
                    "cache_markets": 0,
                    "cache_distributors": 0,
                    "expertise_index_rows": 450376
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/licenses": {
      "get": {
        "tags": [
          "Licenses & Appointments"
        ],
        "summary": "Producer licences",
        "description": "Producer licences held by your tenant's users, with state, line authority, and status. Scoped to the account behind your API key. Licence ingestion is onboarded per account, so this returns an empty set until your producer records are loaded.",
        "operationId": "get_licenses",
        "parameters": [
          {
            "name": "npn",
            "in": "query",
            "required": false,
            "description": "Filter by National Producer Number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "user_id",
            "in": "query",
            "required": false,
            "description": "Filter to one user.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filter by licence status, e.g. active, expired.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": []
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/appointments": {
      "get": {
        "tags": [
          "Licenses & Appointments"
        ],
        "summary": "Carrier appointments",
        "description": "Carrier appointments held by your tenant's producers, with carrier NAIC, state, and status. Appointment ingestion is onboarded per account, so this returns an empty set until your producer records are loaded.",
        "operationId": "get_appointments",
        "parameters": [
          {
            "name": "npn",
            "in": "query",
            "required": false,
            "description": "Filter by National Producer Number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "carrier_naic",
            "in": "query",
            "required": false,
            "description": "Filter to one carrier NAIC code.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "Two-letter state code. Omit for national scope.",
            "schema": {
              "type": "string"
            },
            "example": "PA"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filter by appointment status.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": []
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/appointments/verify": {
      "post": {
        "tags": [
          "Licenses & Appointments"
        ],
        "summary": "Verify an appointment",
        "description": "Verify whether a producer holds a live appointment with a carrier. Returns the verification result and the source record it matched. When no appointment record exists the response is `verified: false` with status `Not Found` — appointment ingestion is still being onboarded, so absence is not proof of no appointment.",
        "operationId": "post_appointments_verify",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "npn",
                  "carrier_naic"
                ],
                "properties": {
                  "npn": {
                    "type": "string",
                    "description": "National Producer Number."
                  },
                  "carrier_naic": {
                    "type": "string",
                    "description": "Carrier NAIC code."
                  },
                  "state": {
                    "type": "string",
                    "description": "Two-letter state code. Optional — narrows the match to one state."
                  },
                  "line_of_authority": {
                    "type": "string",
                    "description": "Optional line of authority to require on the appointment."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/conversations": {
      "get": {
        "tags": [
          "Wire (Embedded workflow)"
        ],
        "summary": "List conversations",
        "description": "Conversations visible to your tenant, with members and last activity. Scoped to the account behind your API key.",
        "operationId": "get_conversations",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "id": "00000000-0000-0000-0000-000000000000",
                      "name": "Test",
                      "type": "direct",
                      "description": null,
                      "created_at": "2026-04-09T20:31:44.439309+00:00",
                      "updated_at": "2026-04-09T20:31:44.439309+00:00",
                      "conversation_members": [
                        {
                          "role": "member",
                          "users": {
                            "id": "00000000-0000-0000-0000-000000000000",
                            "email": "user@example.com",
                            "last_name": "Abad",
                            "company_id": "00000000-0000-0000-0000-000000000000",
                            "first_name": "Ingrid"
                          },
                          "user_id": "00000000-0000-0000-0000-000000000000",
                          "joined_at": "2026-04-09T20:31:44.679936+00:00"
                        },
                        {
                          "role": "owner",
                          "users": {
                            "id": "00000000-0000-0000-0000-000000000000",
                            "email": "user@example.com",
                            "last_name": "User",
                            "company_id": "00000000-0000-0000-0000-000000000000",
                            "first_name": "Sean"
                          },
                          "user_id": "00000000-0000-0000-0000-000000000000",
                          "joined_at": "2026-04-09T20:31:44.679936+00:00"
                        }
                      ]
                    },
                    {
                      "id": "00000000-0000-0000-0000-000000000000",
                      "name": "Welcome to Fuse!",
                      "type": "direct",
                      "description": null,
                      "created_at": "2025-12-18T14:31:49.499045+00:00",
                      "updated_at": "2025-12-18T14:31:49.499045+00:00",
                      "conversation_members": [
                        {
                          "role": "owner",
                          "users": {
                            "id": "00000000-0000-0000-0000-000000000000",
                            "email": "user@example.com",
                            "last_name": "User",
                            "company_id": "00000000-0000-0000-0000-000000000000",
                            "first_name": "Sean"
                          },
                          "user_id": "00000000-0000-0000-0000-000000000000",
                          "joined_at": "2025-12-18T14:31:49.777702+00:00"
                        }
                      ]
                    }
                  ],
                  "pagination": {
                    "limit": 2,
                    "offset": 0,
                    "total": 16
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Wire (Embedded workflow)"
        ],
        "summary": "Create a conversation",
        "description": "Create a conversation and seed its members. The first id in `participant_ids` is recorded as the creator.",
        "operationId": "post_conversations",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "participant_ids"
                ],
                "properties": {
                  "participant_ids": {
                    "type": "string",
                    "description": "Array of user ids. At least one is required; the first is the creator."
                  },
                  "name": {
                    "type": "string",
                    "description": "Conversation name. Optional for direct conversations."
                  },
                  "type": {
                    "type": "string",
                    "description": "direct or group. Default direct."
                  },
                  "description": {
                    "type": "string",
                    "description": "Optional description."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/conversations/{id}": {
      "get": {
        "tags": [
          "Wire (Embedded workflow)"
        ],
        "summary": "Get a conversation",
        "description": "One conversation with its members.",
        "operationId": "get_conversations_id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Conversation id.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": {
                    "id": "00000000-0000-0000-0000-000000000000",
                    "name": "Test",
                    "type": "direct",
                    "description": null,
                    "created_at": "2026-04-09T20:31:44.439309+00:00",
                    "updated_at": "2026-04-09T20:31:44.439309+00:00",
                    "conversation_members": [
                      {
                        "role": "member",
                        "users": {
                          "id": "00000000-0000-0000-0000-000000000000",
                          "email": "user@example.com",
                          "last_name": "Abad",
                          "avatar_url": null,
                          "first_name": "Ingrid"
                        },
                        "user_id": "00000000-0000-0000-0000-000000000000",
                        "joined_at": "2026-04-09T20:31:44.679936+00:00",
                        "last_read_at": null
                      },
                      {
                        "role": "owner",
                        "users": {
                          "id": "00000000-0000-0000-0000-000000000000",
                          "email": "user@example.com",
                          "last_name": "User",
                          "avatar_url": null,
                          "first_name": "Sean"
                        },
                        "user_id": "00000000-0000-0000-0000-000000000000",
                        "joined_at": "2026-04-09T20:31:44.679936+00:00",
                        "last_read_at": "2026-07-13T14:09:20.896307+00:00"
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/conversations/{id}/messages": {
      "get": {
        "tags": [
          "Wire (Embedded workflow)"
        ],
        "summary": "List messages",
        "description": "Messages in a conversation, newest last, with sender, attachments, and reactions.",
        "operationId": "get_conversations_id_messages",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Conversation id.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": [
                    {
                      "id": "00000000-0000-0000-0000-000000000000",
                      "content": "Test message.",
                      "created_at": "2026-04-09T20:31:44.917967+00:00",
                      "updated_at": "2026-04-09T20:31:44.917967+00:00",
                      "is_edited": false,
                      "message_type": "text",
                      "read_by": [
                        "00000000-0000-0000-0000-000000000000"
                      ],
                      "sender": {
                        "id": "00000000-0000-0000-0000-000000000000",
                        "email": "user@example.com",
                        "last_name": "User",
                        "avatar_url": null,
                        "first_name": "Sean"
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Wire (Embedded workflow)"
        ],
        "summary": "Post a message",
        "description": "Post a message into a conversation on behalf of one of its members.",
        "operationId": "post_conversations_id_messages",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Conversation id.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/conversations/{id}/export": {
      "get": {
        "tags": [
          "Wire (Embedded workflow)"
        ],
        "summary": "Export a conversation",
        "description": "Immutable export of a conversation for compliance: participants, message count, and full transcript with an export id.",
        "operationId": "get_conversations_id_export",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Conversation id.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": {
                    "export_id": "exp_0d53798a",
                    "conversation_id": "00000000-0000-0000-0000-000000000000",
                    "conversation_name": "Test",
                    "format": "json",
                    "message_count": 1,
                    "participants": [
                      {
                        "role": "member",
                        "users": {
                          "id": "00000000-0000-0000-0000-000000000000",
                          "email": "user@example.com",
                          "last_name": "Abad",
                          "first_name": "Ingrid"
                        },
                        "user_id": "00000000-0000-0000-0000-000000000000",
                        "joined_at": "2026-04-09T20:31:44.679936+00:00"
                      },
                      {
                        "role": "owner",
                        "users": {
                          "id": "00000000-0000-0000-0000-000000000000",
                          "email": "user@example.com",
                          "last_name": "User",
                          "first_name": "Sean"
                        },
                        "user_id": "00000000-0000-0000-0000-000000000000",
                        "joined_at": "2026-04-09T20:31:44.679936+00:00"
                      }
                    ],
                    "date_range": {
                      "start": null,
                      "end": null
                    },
                    "exported_at": "2026-08-03T15:44:32.164Z",
                    "compliance_certified": true,
                    "messages": [
                      {
                        "id": "00000000-0000-0000-0000-000000000000",
                        "content": "Test message.",
                        "created_at": "2026-04-09T20:31:44.917967+00:00",
                        "updated_at": "2026-04-09T20:31:44.917967+00:00",
                        "is_edited": false,
                        "message_type": "text",
                        "read_by": [
                          "00000000-0000-0000-0000-000000000000"
                        ],
                        "sender": {
                          "id": "00000000-0000-0000-0000-000000000000",
                          "email": "user@example.com",
                          "last_name": "User",
                          "first_name": "Sean"
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/conversations/{id}/audit": {
      "get": {
        "tags": [
          "Wire (Embedded workflow)"
        ],
        "summary": "Conversation audit trail",
        "description": "Audit trail for a conversation: every message, membership, and export event with actor and timestamp.",
        "operationId": "get_conversations_id_audit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Conversation id.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": {
                    "conversation_id": "00000000-0000-0000-0000-000000000000",
                    "events": [
                      {
                        "type": "message_sent",
                        "timestamp": "2026-04-09T20:31:44.917967+00:00",
                        "actor": "user@example.com",
                        "actor_id": "00000000-0000-0000-0000-000000000000",
                        "message_id": "00000000-0000-0000-0000-000000000000",
                        "content_preview": "Test message."
                      }
                    ],
                    "total_events": 1,
                    "legal_hold_status": "preserved",
                    "export_certified": true
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/groups": {
      "post": {
        "tags": [
          "Wire (Embedded workflow)"
        ],
        "summary": "Create a group",
        "description": "Create a group. Requires a name and at least two participants.",
        "operationId": "post_groups",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "participant_ids"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Group name."
                  },
                  "participant_ids": {
                    "type": "string",
                    "description": "Array of user ids. At least two are required; the first is the creator."
                  },
                  "description": {
                    "type": "string",
                    "description": "Optional description."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "get": {
        "tags": [
          "Wire (Embedded workflow)"
        ],
        "summary": "List groups",
        "description": "Groups visible to your tenant.",
        "operationId": "get_groups",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows to return. Capped by your tier's max response rows.",
            "schema": {
              "type": "number"
            },
            "example": 50
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Row offset for pagination.",
            "schema": {
              "type": "number"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "data": []
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/users/{id}": {
      "get": {
        "tags": [
          "Wire (Embedded workflow)"
        ],
        "summary": "Get a user",
        "description": "Profile for one user in your tenant.",
        "operationId": "get_users_id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "User id.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/notifications/send": {
      "post": {
        "tags": [
          "Wire (Embedded workflow)"
        ],
        "summary": "Send a notification",
        "description": "Send a notification to a user in your tenant.",
        "operationId": "post_notifications_send",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "user_id",
                  "title"
                ],
                "properties": {
                  "user_id": {
                    "type": "string",
                    "description": "Recipient user id."
                  },
                  "title": {
                    "type": "string",
                    "description": "Notification title."
                  },
                  "body": {
                    "type": "string",
                    "description": "Notification body."
                  },
                  "channels": {
                    "type": "string",
                    "description": "Array of delivery channels: in_app, email, sms. Default [\"email\"]."
                  },
                  "action_url": {
                    "type": "string",
                    "description": "Deep link opened when the recipient acts on the notification."
                  },
                  "priority": {
                    "type": "string",
                    "description": "low, normal, or high. Default normal."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/reinsurance/cedent-profile/{cocode}": {
      "get": {
        "tags": [
          "Reinsurance"
        ],
        "summary": "Full cedent profile report by line and state",
        "description": "One call returns an underwriting-ready profile for a cedent: entity identity, five-year direct premium and loss performance, the line-of-business by state matrix for the latest data year, concentration measures, loss-ratio trend signals and market conduct history. Built on statutory state page data on a direct basis. Reserve development (Schedule P) and ceded reinsurance (Schedule F) are not included; the coverage object states this explicitly rather than estimating.\n\nRequires professional tier or above.",
        "operationId": "get_reinsurance_cedent_profile_cocode",
        "parameters": [
          {
            "name": "cocode",
            "in": "path",
            "required": true,
            "description": "Company NAIC code (cocode) of the cedent.",
            "schema": {
              "type": "string"
            },
            "example": "25178"
          },
          {
            "name": "years",
            "in": "query",
            "required": false,
            "description": "Comma-separated data years to include. Defaults to 2019,2020,2021,2022,2023.",
            "schema": {
              "type": "string"
            },
            "example": "2021,2022,2023"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API tier does not include this endpoint"
          },
          "404": {
            "description": "No matching resource"
          },
          "429": {
            "description": "Rate limit or quota exceeded"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    }
  },
  "x-fuse-planned-endpoints": [
    {
      "method": "GET",
      "path": "/reinsurance/cedents",
      "summary": "Cedent capacity intelligence",
      "note": "Not exposed publicly. The cedent workspace and Schedule F / EDGAR capacity surfaces are tenant-scoped and paid-tier; a public shape depends on the multi-tenant scoping model landing first."
    }
  ]
}