Prerequisites
- Staging API key from Account Setup
- cURL or your preferred HTTP client
/evaluate response. No webhooks required.
One search per call.
order_id, order_number, and search_id identify the order line and this evaluate run. There is no batch API. See Order → Search → Evaluate contract.Step 1: Configure Environment
Use staging for your first evaluate:Step 2: Verify Connectivity
Confirm the API is up before proceeding:Step 3: Get Auth Token
Exchange your API key for a JWT token. Lifetime is inexpires_in (currently 3600 seconds / 1 hour). See Authentication for the full guide.
access_token — you’ll use it in the next step:
Step 4: Evaluate a Record
This smoke test uses mapped JSON (record_json) with no cases[], so every offense in the payload is evaluated and the count-reconciliation gate is not applied. For the XML path, see Supported XML Schemas. After the smoke test, see Optional: map charges with cases[] when you need your own court/offense IDs.
Save the following as record.json:
record.json
Optional: map charges with cases[]
Omit cases[] for the simplest path. When you need your court_search_id / offense_id values (or is_excluded), send a full mapping — one row per charge, in XML/record_json order. Partial subsets return HTTP 422.
Same traffic XML as the sample pack, with mapping:
- One charge:
samples/with-cases-mapping.json - Multi-charge (2 courts / 5 offenses):
samples/with-cases-multi-charge.json
Details: Evaluate —
cases[].
Step 5: Understand the Response
Every response is wrapped in a{ success, data, meta } envelope. The evaluation result is at data.decision.
Start here — per charge:
Rolled up to the search:
Court/case levels expose the same pair (
court_decision / court_queue, case_decision / case_queue). See How It Works and Routing.
What to do next — pick queue or decision (one is usually enough; both only if routing and report labeling are separate steps):
Full ops guide: Queue & Decision → Next Action.
Queue rollup priority:
Insufficient Data > Auditor > Automation. One charge lacking data can mark the whole case (and court / search) as Insufficient Data.
When the source record has data-quality issues (e.g., missing SSN or disposition), the response also includes a structured validation object alongside decision. When the data is clean, validation is omitted entirely.
Next Steps
Queue & Decision → Next Action
One signal is usually enough; both only for separate jobs
API Reference
Explore all available endpoints and options
Code Examples
Working examples in Python, JavaScript, and cURL
Error Handling
Retry logic, failure handling, and troubleshooting
Environments
Production, staging, and dev environment URLs
