---
title: "Surplus-lines insurer eligibility lookup/list (NAIC IID, nationwide)"
method: GET
path: "/v1/eligibility"
---

# Surplus-lines insurer eligibility lookup/list (NAIC IID, nationwide)

`GET /v1/eligibility`

## Request

- Base URL: `https://api.querylines.com`
- URL: `https://api.querylines.com/v1/eligibility`
- Auth: none declared

Lookup mode (`insurer` given) or list mode (omitted): current roster + recent additions/removals. Nationwide under NRRA -- `state` only affects the eligibility downgrade for state-specific restrictions, never filters the roster or 404s. $0.10 per query.

## Query parameters

- `insurer` string
- `state` string
- `changes_since` string
- `entity_type` 'alien_company' | 'lloyds_syndicate'
- `limit` integer

## Response `200`

Lookup mode: `match` (or null for an unknown insurer). List mode: `eligible`/`recent_additions`/`recent_removals`/`count`.

- object
  - `query` string, nullable, required: Echoes `insurer`; null in list mode.
  - `authority` string, required: Currently always "naic-iid".
  - `match` object: Lookup mode only. null when the insurer isn't on the roster (not a 404).
    - `alien_id` string, required: NAIC IID identity key, e.g. "AA-1344102" -- stable across name changes.
    - `name` string, nullable, required
    - `entity_type` 'alien_company' | 'lloyds_syndicate', required
    - `country` string, nullable, required
    - `syndicate_no` string, nullable, required: Lloyd's syndicate number; null for alien companies.
    - `managing_agent` string, nullable, required: Lloyd's managing agent; null for alien companies.
    - `status` 'listed' | 'removed', required
    - `eligibility` 'eligible' | 'limited' | 'ineligible' | 'removed', required: Derived eligibility. 'limited' entities are downgraded to 'ineligible' in the response when ?state matches the state named in `restriction` -- never read a restricted entity as plainly 'eligible'.
    - `restriction` string, nullable, required: Paraphrased NAIC footnote (never verbatim); null = no restriction.
    - `listed_since` string, nullable, required: Earliest attributable edition date (YYYY-MM-DD).
    - `listed_since_kind` 'added_on' | 'min_known' | 'null', nullable, required: 'added_on' when a printed Addition pins the date exactly; 'min_known' when it predates our oldest loaded edition.
  - `eligible` object[]: List mode only: current roster.
    - `alien_id` string, required: NAIC IID identity key, e.g. "AA-1344102" -- stable across name changes.
    - `name` string, nullable, required
    - `entity_type` 'alien_company' | 'lloyds_syndicate', required
    - `country` string, nullable, required
    - `syndicate_no` string, nullable, required: Lloyd's syndicate number; null for alien companies.
    - `managing_agent` string, nullable, required: Lloyd's managing agent; null for alien companies.
    - `status` 'listed' | 'removed', required
    - `eligibility` 'eligible' | 'limited' | 'ineligible' | 'removed', required: Derived eligibility. 'limited' entities are downgraded to 'ineligible' in the response when ?state matches the state named in `restriction` -- never read a restricted entity as plainly 'eligible'.
    - `restriction` string, nullable, required: Paraphrased NAIC footnote (never verbatim); null = no restriction.
    - `listed_since` string, nullable, required: Earliest attributable edition date (YYYY-MM-DD).
    - `listed_since_kind` 'added_on' | 'min_known' | 'null', nullable, required: 'added_on' when a printed Addition pins the date exactly; 'min_known' when it predates our oldest loaded edition.
  - `recent_additions` object[]: List mode only.
    - `alien_id` string, required: NAIC IID identity key, e.g. "AA-1344102" -- stable across name changes.
    - `name` string, nullable, required
    - `entity_type` 'alien_company' | 'lloyds_syndicate', required
    - `country` string, nullable, required
    - `syndicate_no` string, nullable, required: Lloyd's syndicate number; null for alien companies.
    - `managing_agent` string, nullable, required: Lloyd's managing agent; null for alien companies.
    - `status` 'listed' | 'removed', required
    - `eligibility` 'eligible' | 'limited' | 'ineligible' | 'removed', required: Derived eligibility. 'limited' entities are downgraded to 'ineligible' in the response when ?state matches the state named in `restriction` -- never read a restricted entity as plainly 'eligible'.
    - `restriction` string, nullable, required: Paraphrased NAIC footnote (never verbatim); null = no restriction.
    - `listed_since` string, nullable, required: Earliest attributable edition date (YYYY-MM-DD).
    - `listed_since_kind` 'added_on' | 'min_known' | 'null', nullable, required: 'added_on' when a printed Addition pins the date exactly; 'min_known' when it predates our oldest loaded edition.
  - `recent_removals` object[]: List mode only.
    - `alien_id` string, required: NAIC IID identity key, e.g. "AA-1344102" -- stable across name changes.
    - `name` string, nullable, required
    - `entity_type` 'alien_company' | 'lloyds_syndicate', required
    - `country` string, nullable, required
    - `syndicate_no` string, nullable, required: Lloyd's syndicate number; null for alien companies.
    - `managing_agent` string, nullable, required: Lloyd's managing agent; null for alien companies.
    - `status` 'listed' | 'removed', required
    - `eligibility` 'eligible' | 'limited' | 'ineligible' | 'removed', required: Derived eligibility. 'limited' entities are downgraded to 'ineligible' in the response when ?state matches the state named in `restriction` -- never read a restricted entity as plainly 'eligible'.
    - `restriction` string, nullable, required: Paraphrased NAIC footnote (never verbatim); null = no restriction.
    - `listed_since` string, nullable, required: Earliest attributable edition date (YYYY-MM-DD).
    - `listed_since_kind` 'added_on' | 'min_known' | 'null', nullable, required: 'added_on' when a printed Addition pins the date exactly; 'min_known' when it predates our oldest loaded edition.
  - `count` number: List mode only: length of `eligible`.
  - `source` string, nullable, required
  - `data_as_of` string, nullable, required: Latest edition's month, YYYY-MM.
  - `report_date` string, nullable, required: Latest edition's effective date.
  - `edition` number, nullable, required: Latest edition number.

## Other responses

- `400`: Invalid query parameters.
- `402`: Payment required (x402). Returned when the x402 payment gate is enabled (PAY_TO_ADDRESS configured) and the request carries no valid payment. The full payment challenge (price/network/payTo/asset) is carried in the base64-encoded PAYMENT-REQUIRED response header (see the x402 spec), not the JSON body -- the body is `{}` for API clients. Price for this route: $0.10. Retry with a signed payment per x402 (USDC on Base mainnet); on success the response carries a PAYMENT-RESPONSE header with settlement info. When PAY_TO_ADDRESS is unset (kill switch off), this route is free and never returns 402.
- `500`: Internal error.

---

[API](https://skmtc.dev/querylines/apis/querylines-api.md) · [All operations](https://skmtc.dev/querylines/apis/querylines-api/llms.txt) · [OpenAPI document](https://skmtc.dev/querylines/apis/querylines-api/revisions/4afb6c3e2b1f?raw)
