# Insurance Agency Change Log > A daily-differenced record of insurance-agency licensing, carrier appointments, and ownership, including terminations the source register does not publish. Texas is the live query set. This origin is discovery. The live query API is https://api.pexara.ai. Government registers publish a start date then delete the row. Terminations exist nowhere else. Answers are windows. Every historical row carries uncertainty_days. Never round a window to a date. Never round uncertainty_days. Observation started 2026-08-12. Missed 2026-08-17 and 2026-08-18. 2026-08-19 was a ~3-day catch-up. Live counts: GET https://api.pexara.ai/v1/coverage. Do not embed a source table. Identifiers: NPN (national producer number, stable across states), EIN (joins to Secretary of State filings), NAIC (carrier). Texas is the live query set. Florida appointments are suspect. GET /v1/control-changes currently omits uncertainty_days. That is a known honesty gap, not a missing field you should invent. Free on the live query API (https://api.pexara.ai), price 0: /v1/coverage, /v1/agency/{npn}, /v1/search, /v1/quote (price list, not checkout). Metered there (25 free calls per day, 50 free rows per day, page cap 25, then a 402 JSON quote): changes $0.004, terminations $0.010, attrition $0.020, at-risk $0.050, control-changes $0.020. A 402 is a quote, not a wall. Stripe is false. x402 settlement is false. accepts lists intended rails only (x402, api_key). GET /v1/quote returns the price list. It does not collect money. Collection is not live. Alternate 402 reason: row_allowance_exhausted. Header: X-Price-USD. 402 body (from metering.py): ```json { "error": "payment_required", "reason": "free_tier_exhausted", "detail": "The free allowance of 25 metered calls per day is used up. This endpoint reads accumulated snapshot history that is not published by the source at any price.", "quote": { "endpoint": "GET /v1/carrier/{naic_id}/attrition", "price": 0.02, "currency": "USD", "unit": "request", "accepts": [ "x402", "api_key" ], "pay_url": "/v1/quote" }, "free_alternatives": [ "GET /v1/agency/{npn}", "GET /v1/search", "GET /v1/coverage" ] } ``` This origin (pexara.ai) serves discovery files and a static coverage snapshot. It does not serve query routes. Hitting /v1/* here returns 404 JSON `not_on_this_host`. The live query API is https://api.pexara.ai. Do not stub fake agencies. ## Offer - [Statelog offer (JSON)](https://pexara.ai/intelligence/insurance/offer.json): prices, 402 quote shape, pay path (collection_live=false) - [Statelog offer (markdown)](https://pexara.ai/intelligence/insurance/offer.md): same facts as prose ## Live query API (https://api.pexara.ai) - [GET /v1/coverage](https://api.pexara.ai/v1/coverage): observation window, capture success, record counts. Free, LIVE - [GET /v1/agency/{npn}](https://api.pexara.ai/v1/agency/{npn}): current profile and active appointments. Free, LIVE - [GET /v1/search](https://api.pexara.ai/v1/search): by name, NPN, or EIN. Free, LIVE - [GET /v1/quote](https://api.pexara.ai/v1/quote): price list, not checkout. Free, LIVE - [GET /v1/agency/{npn}/changes](https://api.pexara.ai/v1/agency/{npn}/changes): observed change history. Metered $0.004 (25 free/day, 50 free rows/day, page cap 25, then 402 quote) - [GET /v1/terminations](https://api.pexara.ai/v1/terminations): appointments that ended. Metered $0.010 (25 free/day, 50 free rows/day, page cap 25, then 402 quote) - [GET /v1/carrier/{naic_id}/attrition](https://api.pexara.ai/v1/carrier/{naic_id}/attrition): agencies a carrier gained and lost. Metered $0.020 (25 free/day, 50 free rows/day, page cap 25, then 402 quote) - [GET /v1/signals/at-risk](https://api.pexara.ai/v1/signals/at-risk): appointment drain or vacant designated responsible licensed person. Metered $0.050 (25 free/day, 50 free rows/day, page cap 25, then 402 quote) - [GET /v1/control-changes](https://api.pexara.ai/v1/control-changes): ownership and officer changes. Metered $0.020 (25 free/day, 50 free rows/day, page cap 25, then 402 quote). Currently omits uncertainty_days ## On this host (discovery) - [Statelog offer (JSON)](https://pexara.ai/intelligence/insurance/offer.json): deployed_for_discovery. collection_live=false - [Statelog offer (markdown)](https://pexara.ai/intelligence/insurance/offer.md): same facts as prose - [Coverage snapshot](https://pexara.ai/intelligence/insurance/coverage.json): static, query_api_on_this_host=false. Live counts are GET https://api.pexara.ai/v1/coverage - [OpenAPI](https://pexara.ai/intelligence/insurance/openapi.yaml): marks on-this-host vs live-on-query-host - [Changelog](https://pexara.ai/intelligence/insurance/changelog.md): what is live vs not, capture start - [Full brief](https://pexara.ai/intelligence/insurance/llms-full.txt): this product only - [Human hub](https://pexara.ai/intelligence/insurance): market-structure pages, not the query API - [Brand index](https://pexara.ai/llms.txt): brand index