Skip to content
CribScore
Skip to content
CribScore Docs

API Reference

Trust + State Coverage API

Trust + coverage routes let you check whether a state is `launch_ready` before promising decision-grade output downstream.

Why trust is its own surface#

CribScore's data is only useful if you know when to trust it. Public `launch_ready` requires a non-zero scored facility count and zero unmaterialized state agency coverage. The trust API surfaces those metrics so your agent can route around stale or sparse states automatically.

  • `launch_ready` = decision-grade. `N/A` allowed only for facility-local completeness reasons.
  • `score_ready` = scoring works, but some attributes may be N/A.
  • `covered` = directory only — do not use for decisions.
  • `pending` = directory incomplete.

Jurisdiction trust#

List trust tier + scored facility count + materialization for every state CribScore knows about. Filter by tier or state code; paginate via `limit` and `offset`.

curl -sS "https://api.cribscore.co/v1/trust/jurisdictions?limit=25" \
  -H "Authorization: Bearer YOUR_API_KEY"

State catalog#

List states with directory metadata + trust roll-up. Use this for state-picker UIs, sitemap generation, and pre-flight checks before opening a workflow in a new state.

curl -sS "https://api.cribscore.co/v1/states?limit=50" \
  -H "Authorization: Bearer YOUR_API_KEY"

Pre-flight pattern#

Production workflows should call `/v1/trust/jurisdictions` once at startup (cache for an hour), then guard each facility query with the cached tier. Skip or downgrade calls when the tier is below your floor.

Pythonpython
from functools import lru_cache

@lru_cache(maxsize=1)
def trust_lookup() -> dict[str, str]:
    data = httpx.get(
        "https://api.cribscore.co/v1/trust/jurisdictions",
        params={"limit": 100},
        headers={"Authorization": f"Bearer {os.environ['CRIBSCORE_API_KEY']}"},
    ).json()["data"]
    return {row["state_code"]: row["trust_tier"] for row in data}


def is_safe(state_code: str) -> bool:
    return trust_lookup().get(state_code) in {"launch_ready", "score_ready"}

Endpoint reference#

GET/v1/trust/jurisdictions

Per-state trust tier + scored facility count + materialization metrics.

NameTypeRequiredDefaultDescription
tierstringoptional`launch_ready` | `score_ready` | `covered` | `pending`.
state_codestringoptionalFilter to one state.
limitintegeroptional251-100.
offsetintegeroptional00+.
Requestbash
curl -sS "https://api.cribscore.co/v1/trust/jurisdictions?limit=25" \
  -H "Authorization: Bearer YOUR_API_KEY"
Responsejson
{ "data": [{ "state_code": "CA", "trust_tier": "launch_ready" }], "meta": {} }
GET/v1/states

State directory with trust tier + facility-count summary.

NameTypeRequiredDefaultDescription
limitintegeroptional501-100.
offsetintegeroptional00+.
Requestbash
curl -sS "https://api.cribscore.co/v1/states?limit=50" \
  -H "Authorization: Bearer YOUR_API_KEY"
Responsejson
{ "data": [{ "state_code": "CA", "slug": "california" }], "meta": {} }
GET/v1/states/{slug}

Detail for one state — coverage, trust, agency materialization breakdown.

NameTypeRequiredDescription
slugstringrequiredkebab-case state name, e.g. `california`.
Requestbash
curl -sS "https://api.cribscore.co/v1/states/california" \
  -H "Authorization: Bearer YOUR_API_KEY"
Responsejson
{ "state_code": "CA", "trust": { "tier": "launch_ready" } }