/api/v1/statescache: 5 minList states
Every state in the corpus, with its activation status. Florida and Texas are the active states.
Try it: /api/v1/states
Developers
The same verified corpus that powers this site — judge directory, procedural requirements, checklist packets, case-law search — over plain JSON.
Every v1 endpoint is a GET. No API key required, no signup, CORS-enabled for browser use.
These routes are the ones BenchPath itself calls. Nothing is a partner-only tier.
An unrecognized filter returns 404 — never a silently unscoped statewide dump.
Every response carries the same verification disclaimer as the site. Verify before reliance.
Fair use: cached endpoints revalidate every 5 minutes; uncached endpoints (checklist generation, case-law search) are for interactive lookups, not bulk harvest. If you need bulk data or webhooks for change events, talk to us — usage dashboards and change-event webhooks remain on the public roadmap.
Keys are optional — every endpoint above works without one. Present a key and your traffic is attributed to your account: the response carries an x-benchpath-api-key echo header, and per-route usage is recorded against the key. A presented key that is invalid or revoked is rejected with a 401 so a dead integration fails loudly instead of silently.
curl -H "Authorization: Bearer bp_live_…" \ https://benchpath.ai/api/v1/judges?q=miller
Key-based rate tiers and usage dashboards land after the beta. We store only a sha256 hash; the full key is shown once at creation. Key creation is not activated on this deployment yet — it opens the moment the deployment's key-derivation secret is configured, and the keys page says so. Check activation status →
{
"data": …, // the payload documented below
"meta": {
"api": "BenchPath API v1 (beta)",
"generated_at": "2026-07-31T…",
"disclaimer": "Procedural information from official public sources; not legal advice and not a substitute for the advice of an attorney. …"
}
}Errors return { "error": "…" } with a 4xx status and a message that tells you exactly which filter failed.
/api/v1/statescache: 5 minEvery state in the corpus, with its activation status. Florida and Texas are the active states.
Try it: /api/v1/states
/api/v1/countiescache: 5 minCounties for a state, with their judicial circuit and launch-coverage flag.
| Parameter | In | Description | Example |
|---|---|---|---|
| state | query | Two-letter state code | FL |
Try it: /api/v1/counties?state=FL
/api/v1/judgescache: 5 minThe published judge directory: name, title, county, court, current division assignments, confidence grade, and last-verified timestamp.
| Parameter | In | Description | Example |
|---|---|---|---|
| q | query | Name search — returns the top 10 matches instead of the full directory | miller |
| state | query | Two-letter state code (FL, TX or CA) — scopes the directory or the search to one state; a state in preparation answers with no rows | TX |
| county | query | County slug exactly as the county page URL carries it (duval; tx-harris) | tx-harris |
| limit | query | Directory page size, 1-1000; with offset, pages the directory instead of returning it whole (not combinable with q) | 100 |
| offset | query | Directory offset, 0-10000; the response carries next_offset while more rows remain | 0 |
Try it: /api/v1/judges?q=miller
/api/v1/rulescache: 5 minSearch published procedural requirements across counties, categories, case types, and confidence grades.
| Parameter | In | Description | Example |
|---|---|---|---|
| q | query | Free-text search | proposed order |
| county | query | County slug | duval |
| category | query | Requirement category slug | filings |
| case_type | query | Case type slug | circuit-civil |
| confidence | query | Confidence grade filter | high |
| state | query | Two-letter state code (FL, TX or CA), case-insensitive — scopes the search to one state; a state in preparation answers with no rows | TX |
/api/v1/rules/{slug}cache: 5 minOne requirement with its related rules and recorded change events. 404s on an unknown slug.
| Parameter | In | Description | Example |
|---|---|---|---|
| slug* | path | Rule slug | tx-culberson-topics-3058-394th-updated-ai-standing-order |
Try it: /api/v1/rules/tx-culberson-topics-3058-394th-updated-ai-standing-order
/api/v1/checklists/generatecache: no storeAssemble a filing packet — requirements, deadlines, source citations — for a county / case type / motion combination, and for one named judge's division.
| Parameter | In | Description | Example |
|---|---|---|---|
| county | query | County slug | broward |
| case_type | query | Case type slug | circuit-civil |
| motion | query | Motion slug | motion-to-compel |
| judge | query | Judge slug (requires county). Judge- and division-specific rules are in scope only for the judge named; without it the packet carries the statewide, circuit, and county layers and reports how many judge/division rules it left out (scope_note). | giuseppina-miranda |
Try it: /api/v1/checklists/generate?county=broward&case_type=circuit-civil&motion=motion-to-compel
Fails closed: an unrecognized slug returns 404 rather than silently widening the scope to all of Florida. Checklist items carry is_conditional and condition_note; a conditional item applies only when its note says so. Each deadline carries id and depends_on: when depends_on names another deadline of the same rule, that deadline runs from the named row's computed due date (Rule 1.510(c)(6) runs from the (c)(5) response deadline), never from the packet's trigger event; deadlines list targets before their dependents. rules is the reference collection for the statewide, circuit, county and (with judge) courtroom layers, filtered to the case type; each rule carries authority_scope (statewide, circuit, county, division, judge) beside the geographic scope, and case_type_untagged marks a rule that carries no case-type tag. It is not a determination that every entry governs a particular motion — steps is the motion-specific sequence.
/api/v1/case-law/searchcache: no storeSearch case law via the CourtListener connector (Free Law Project), with judge and court filters.
| Parameter | In | Description | Example |
|---|---|---|---|
| q | query | Search terms | motion to compel |
| judge | query | Judge name filter | smith |
| court | query | Court filter | fla |
| state | query | Jurisdiction scope for judge-context searches (FL default; unsupported codes are rejected) | TX |
| bench | query | Bench scope for judge-context searches: state (default) searches the state's courts; federal searches the state's federal district and bankruptcy courts and its circuit (FL: the Eleventh Circuit; TX: the Fifth Circuit) | federal |
Try it: /api/v1/case-law/search?q=motion+to+compel
Requires at least one of q or judge. Rate-limited upstream; intended for low-volume lookups, not bulk harvest.
GET /api/v1/states