Batch search (row-in / row-out bulk lookups)

Runs many queries in one call — offenders.io CSV-batch parity (one row = one call in, one result out). Each row goes through the SAME engine as /v1/search (served from the current snapshot), with bounded server-side concurrency, and results come back in input order. Send either a JSON array of query objects, a JSON envelope { "queries": [...], ...batch-wide options } (the non-queries keys — jurisdictions, freshness, match, recordTypes, locationScoped, include — apply to every row), or a text/csv body whose header row names Query fields (firstName,lastName,state,dob,city,zipcode,address,age,q). A row that fails is reported with status: error in place; it never aborts the batch. Max 1000 rows. Accepts an API key OR a session token.

Billing — per search, NOT per request. A batch is one HTTP call but contains N searches, and each search in the batch is billed as one search (at the graduated per-call rate). A batch of 100 rows = 100 billable searches. Batch is cache-only (Regular): the retired freshness tier no longer applies, and live re-verification is not offered per row.

post/v1/batch

Request

  • Base URL: https://api.offendersearch.app
  • URL: https://api.offendersearch.app/v1/batch
  • Auth: one of:
    • API key in header X-API-Key
    • HTTP bearer

Request body

OR

Example request

[
  {
    "firstName": "John",
    "lastName": "Smith",
    "dob": "1985-06-14",
    "age": 39,
    "city": "Chicago",
    "state": "IL",
    "zipcode": "60614",
    "lat": 41.9,
    "lng": -87.65
  }
]

Response

Per-row results, in input order.

countinteger

Number of rows processed.

Example response

{
  "results": [
    {
      "records": [
        {
          "recordId": "rec_ab12cd34ef56gh78ij90",
          "uuid": "IL:X24A0926",
          "matchDetail": {
            "strategies": {
              "lastName": "exact",
              "firstName": "nickname"
            },
            "fieldsPresent": [
              "lastName",
              "firstName",
              "dob"
            ]
          },
          "nicknames": [
            "john",
            "johnny",
            "jack"
          ],
          "birthYear": 1976,
          "marks": "Tattooed Arm, left upper; Scar on Chest; Pierced ear, left",
          "addresses": [
            {
              "type": "residence"
            }
          ],
          "registrationState": "FL",
          "addressStates": [
            "FL",
            "GA"
          ],
          "stateData": {
            "shoeSize": "10½",
            "build": "Large",
            "shoeWidth": "D"
          },
          "source": {
            "jurisdiction": "IL"
          },
          "sources": [
            {
              "jurisdiction": "IL"
            }
          ]
        }
      ]
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.