# Pexara Statelog

> https://api.pexara.ai is a machine API that differences daily Texas insurance-agency snapshots so carrier-appointment terminations become observable windows (uncertainty_days on every historical row; never a rounded date), free for current state, then a 402 JSON quote after 25 metered calls/day with no payment collected.

status: deployed_for_discovery. Query host: https://api.pexara.ai. This origin (https://pexara.ai) is discovery. Texas is the live query set. Florida appointments are suspect. Every historical row carries uncertainty_days. Never round a window to a date. 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. GET /v1/control-changes currently omits uncertainty_days.

Pay path: GET /v1/quote returns the price list. It does not collect money. accepts lists intended rails only (x402, api_key). Stripe is false. x402 settlement is false. collection_live is false. Collection stays off until repeating 402s.

A 402 is a JSON quote plus an X-Price-USD header after 25 metered calls/day or 50 free rows/day (page cap 25). Alternate reason: row_allowance_exhausted.

## Free (price 0)

- [GET /v1/coverage](https://api.pexara.ai/v1/coverage): observation window, capture success, record counts
- [GET /v1/agency/{npn}](https://api.pexara.ai/v1/agency/{npn}): current profile and active appointments
- [GET /v1/search](https://api.pexara.ai/v1/search): by name, NPN, or EIN
- [GET /v1/quote](https://api.pexara.ai/v1/quote): price list, not checkout

## Metered (25 free calls/day, 50 free rows/day, page cap 25, then HTTP 402)

- [GET /v1/agency/{npn}/changes](https://api.pexara.ai/v1/agency/{npn}/changes): $0.004
- [GET /v1/terminations](https://api.pexara.ai/v1/terminations): $0.010
- [GET /v1/carrier/{naic_id}/attrition](https://api.pexara.ai/v1/carrier/{naic_id}/attrition): $0.020
- [GET /v1/signals/at-risk](https://api.pexara.ai/v1/signals/at-risk): $0.050
- [GET /v1/control-changes](https://api.pexara.ai/v1/control-changes): $0.020 (omits uncertainty_days)

## 402 quote shape

```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"
  ]
}
```

Plus X-Price-USD. Alternate reason: row_allowance_exhausted.

## Pointers

- [Query host llms.txt](https://api.pexara.ai/llms.txt)
- [OpenAPI](https://api.pexara.ai/openapi.json)
- [Live coverage](https://api.pexara.ai/v1/coverage)
- [Price list](https://api.pexara.ai/v1/quote)
- [Discovery index](https://pexara.ai/intelligence/insurance/llms.txt)
