Sandbox & production
Integrate against the sandbox with fixed test names; go live by changing the host and the key.
The two environments
| Sandbox | Production | |
|---|---|---|
| Host | https://sandbox.offendersearch.app | https://api.offendersearch.app |
| Keys accepted | os_test_… only | os_live_… only |
| Data | Fixed test scenarios per product (fixed names, fixed outcomes) | Real records |
| Billing | Never | Per call, per live source, per document, per monitor — extras itemised in meterEvents[], totals in the dashboard |
| Response shape | Identical to production, plus "sandbox": true | Production |
| Rate limits | Lower; enough to integrate | Account limits; 429 with Retry-After when exceeded |
Note. A test key sent to the live host, or a live key sent to the sandbox, answers
401. The prefix tells you which host a key belongs to.Fixed test names
Each product publishes the test names the sandbox answers and what each one returns — a clear result, a possible match, a confirmed match, an incomplete source, an error. Use them to exercise every branch of your code before you spend a live call.
Switching to production
# development
export OFFENDERSEARCH_BASE=https://sandbox.offendersearch.app
export OFFENDERSEARCH_API_KEY=os_test_…
# production
export OFFENDERSEARCH_BASE=https://api.offendersearch.app
export OFFENDERSEARCH_API_KEY=os_live_…Nothing in the request or the response parsing changes. Before the switch, run the production checklist.