batch_search
Run many person/location lookups in one call (row-in / row-out).
Each row goes through the SAME engine as search_offenders, so a row's records
are identical to what a single search would return. A row that fails is
reported with status='error' in place and never aborts the batch. Max 1000 rows.
Returns: { count, results: [ { index, status, counts{records,sourcesQueried,
sourcesIncomplete}, warnings: [str], records: [Record], error? } ] } in input
order. ★ A row with `counts.sourcesIncomplete > 0` could not be searched to the
end — its `records` are a LOWER BOUND, not a clean 'no match'.
Auth: uses the caller's X-API-Key (request header or OFFENDERSEARCH_API_KEY env).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| match | No | Fuzzy tolerance applied to every row (see search_offenders). | balanced |
| queries | Yes | List of query objects (max 1000). Each may set any of: firstName, lastName, dob (YYYY-MM-DD), age, city, state, zipcode, address, lat, lng, radiusMiles, q. One row in = one result out, in input order. | |
| extensive | No | Request extensive detail (offenses[], stateData, images) for every row. | |
| freshness | No | Cache/pricing tier applied to every row: daily=<=24h (default), weekly=<=7d. | daily |
| jurisdictions | No | Registry codes applied to EVERY row (e.g. ['FL','TX']). Omit = all 58 registries. | |
| location_scoped | No | Apply per-state scoping to every row (see search_offenders). |