{
  "info": {
    "_postman_id": "84d2ec02-ee73-56bf-9619-47410aca0b66",
    "name": "OffenderSearch API",
    "description": "Every public endpoint of the OffenderSearch API — sex offender registry search across 58 US registries, criminal records, monitoring, the Map API, clearances and the FCRA Partner API — pre-filled with the sandbox's fixed test scenarios so each request can be sent as-is.\n\n1. Import the `sandbox` environment next to this collection and set `api_key` to a test key (Dashboard → API keys → Create test key; it begins `os_test_`).\n2. Send any request. The sandbox answers with production-shaped JSON and is never billed.\n3. For production, set `base_url` to https://api.offendersearch.app and `api_key` to a live key.\n\nDocs: https://offendersearch.app/docs · Sandbox: https://offendersearch.app/docs/sandbox · Generated from https://offendersearch.app/openapi.yaml by tools/postman_collection.py.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "Sex Offender Search",
      "description": "Search 58 US sex offender registries: synchronous and async search, batch, records, reports, proof and live evidence documents.",
      "item": [
        {
          "name": "Synchronous search (PRIMARY — call and wait)",
          "id": "98bbf3c3-9619-5717-9b84-84fd782bb694",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/search",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "search"
              ]
            },
            "description": "Synchronous search (PRIMARY — call and wait)\n\nSearches the full dataset by default (or the jurisdictions you name) in a single call and returns scored, de-duplicated results in the response. Served from the current snapshot for speed. `deadlineMs` is a target: since 2026-10-15 a search that can still finish keeps working past it (up to the ~40 s the gateway allows) so that you receive a COMPLETE answer rather than a partial one. Only a search that cannot finish inside that window is partial; with `onDeadline: partial` the response then returns whatever completed, with per-jurisdiction status in `sourceStatus`; with `onDeadline: error` a forced-partial result returns 504 instead. Live evidence: send `live.evidence: \"pdf\"` with `live.jurisdictions` and the same request also prints each named registry's own page to a PDF. That search always answers `202` (EvidenceAccepted) and is returned by `GET /v1/searches/{searchId}`, whose body then carries `evidence[]`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"query\": {\n    \"firstName\": \"Exact\",\n    \"lastName\": \"Match\",\n    \"dob\": \"1980-01-01\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Asynchronous search — built for batch and high-volume work",
          "id": "e78d9363-40fc-5b8c-928d-080a46c4cd54",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/searches",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "searches"
              ]
            },
            "description": "Asynchronous search — built for batch and high-volume work\n\n**The batch endpoint.** Submit the search, get a job id back immediately, and collect the result when it is ready — poll `GET /v1/searches/{searchId}` or supply a `webhookUrl` and we POST the finished envelope to it.\n\nBecause you are not holding a connection open there is no request-timeout ceiling on the work, so every named jurisdiction runs to completion. Use it for bulk screening, periodic re-screens of a roster you already hold, backfills, unattended scheduled jobs, and broad national sweeps.\n\nUse `POST /v1/search` instead when a person is waiting on the answer — that is the interactive endpoint and it returns in one round trip. Both search the same registries and return the same envelope; the choice is about how you collect the result, not how current it is. Both accept a `live` block: here the named registries are re-verified live inside the job and billed as on `POST /v1/search` (the search plus $0.02 per registry that completed, at most $2.00). Without `live`, the job is billed as one search. To submit many searches at once, `POST /v1/batch` takes up to 1,000 queries in a single request.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"query\": {\n    \"firstName\": \"Exact\",\n    \"lastName\": \"Match\",\n    \"dob\": \"1980-01-01\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Fetch an async search's status + results",
          "id": "fe0aed05-5b20-51b4-b33f-f04334adfb56",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/searches/:searchId",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "searches",
                ":searchId"
              ],
              "variable": [
                {
                  "key": "searchId",
                  "value": "<searchId>",
                  "description": "Path parameter `searchId`."
                }
              ]
            },
            "description": "Fetch an async search's status + results\n\nReturns the job's current state. While `pending`/`running` the body carries empty `records`/`sourceStatus` and a zeroed `counts`; on `error` it carries an `error` string; when finished it is the full SearchResponse. For a search that sent `live.evidence: \"pdf\"` (an `evs_…` id) the finished body is an EvidenceSearchResponse: the same SearchResponse plus `evidence[]` (one entry per registry named in `live.jurisdictions`), `usage.liveEvidence` / `usage.liveEvidenceUsd` and `sourceSearchId`; `evidence` is `[]` while the job is pending or running. A job is readable only with a key on the account that submitted it; any other key gets 404, the same answer as an id that does not exist."
          },
          "response": []
        },
        {
          "name": "Re-open a past search's stored results",
          "id": "230c7a0b-502d-5dc5-be76-6ec4ba1f49a5",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/searches/:searchId/results",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "searches",
                ":searchId",
                "results"
              ],
              "variable": [
                {
                  "key": "searchId",
                  "value": "<searchId>",
                  "description": "Path parameter `searchId`."
                }
              ]
            },
            "description": "Re-open a past search's stored results\n\nReturns the records a past search on this account returned, exactly as they were returned. It does not run the search again and is not billed. Results are kept for the account's retention window (`retentionDays`) and then erased."
          },
          "response": []
        },
        {
          "name": "Download a live evidence document (PDF)",
          "id": "27fd4dd4-e736-59ce-a9b8-f30045bd5ec1",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/searches/:searchId/evidence/{jurisdiction}.pdf",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "searches",
                ":searchId",
                "evidence",
                "{jurisdiction}.pdf"
              ],
              "variable": [
                {
                  "key": "searchId",
                  "value": "<searchId>",
                  "description": "Path parameter `searchId`."
                }
              ]
            },
            "description": "Download a live evidence document (PDF)\n\nOne registry's live evidence document — the registry's own public website, printed as shown behind a cover page — from a search that sent `live.evidence: \"pdf\"`. The path is the `downloadUrl` of the matching `evidence[]` entry on `GET /v1/searches/{searchId}`. Readable by the account that ran the search; any other account, an unknown search, a registry with no completed document, or a document older than 30 days answers 404. Not billed: the document was billed when it was produced. Returns the raw PDF body, not JSON."
          },
          "response": []
        },
        {
          "name": "Per-registry look-alike proof docs (internal add-on — NOT the verification repor",
          "id": "a7ea76a1-b10d-54f8-b3cd-73c80c5f62c3",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/searches/:searchId/proof",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "searches",
                ":searchId",
                "proof"
              ],
              "variable": [
                {
                  "key": "searchId",
                  "value": "<searchId>",
                  "description": "Path parameter `searchId`."
                }
              ]
            },
            "description": "Per-registry look-alike proof docs (internal add-on — NOT the verification report)\n\nInternal per-registry add-on, distinct from the customer-facing consolidated verification report (`POST /v1/report`). Renders a per-registry look-alike PDF/HTML for ONLY the registries the caller names. Requires billing (402 otherwise); each rendered document is billed as one PDF (+$0.02, the verification-report rate, admin-overridable per customer). Never generated for all sources implicitly. `registries` is required. A registry with no look-alike template yet is skipped and NOT billed (its document row carries an empty `url` + explanatory `note`). Only the account that ran the search can request its proof; any other key gets 404.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"registries\": [\n    \"IL\",\n    \"IN\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Consolidated verification / proof PDF for one search",
          "id": "e64e05dd-721e-50f4-bfc1-9d657bd82987",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/report",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "report"
              ]
            },
            "description": "Consolidated verification / proof PDF for one search\n\nRenders a SINGLE consolidated verification PDF for a search that was ALREADY run — pass the `searchId` of a prior `POST /v1/search` (or `/v1/searches`) call (valid for 7 days), optionally with the `viewerName`/`viewerEmail` of whoever is viewing it (both OPTIONAL, printed at the top as a viewer verification — not an access gate). Any valid key may call it — there is NO per-key entitlement. Because the search call was already billed, the report meters ONLY the **+$0.02 per-PDF** charge (admin-overridable per customer via `pdf_rate_cents`). (Legacy one-shot: omit `searchId` and pass an inline `query`, which runs the search inline and also bills the call.) The PDF shows EVERY matching offender and EVERY field on file (name, aliases, DOB/age match state, address/jurisdiction, offense/risk, photo when available, and the full extensive field set), plus a source-attribution section with a citation on every record — proving provenance. A legal notice (use restrictions; informational only, not an FCRA consumer report) is printed on the document. Responds with `application/pdf` as a file attachment (`Content-Disposition: attachment`); the report id is echoed in the `X-Report-Id` header.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"searchId\": \"srch_9f2c1a7b3e4d\",\n  \"viewerName\": \"Jane Doe, HR Compliance\",\n  \"viewerEmail\": \"jane@acme.example\",\n  \"purpose\": \"Volunteer background screening\",\n  \"reference\": \"case-2026-0417\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Batch search (row-in / row-out bulk lookups)",
          "id": "18f6987e-613d-5e7d-a2ab-5a431a1fa16a",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/batch",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "batch"
              ]
            },
            "description": "Batch search (row-in / row-out bulk lookups)\n\nRuns 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`, `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 JSON row that cannot be read (an unknown key, or a value of the wrong type such as `\"dob\": \"1980\"`) makes the whole request a 422 whose `detail` names the row index and the field; nothing runs. A row that fails while it runs is reported with `status: error` in place; it never aborts the batch. Max 1000 rows.\n\n**Clearances, per row.** A JSON row (or a CSV column) may carry `subjectId`, and optionally `clientId` and `clearanceMode`, beside its Query fields — each row is one subject being screened. That row's result then honours the subject's clearances exactly as `POST /v1/search` does: suppressed people leave the row's `records[]` and are listed in its `cleared[]`, and `counts.clearedSuppressed` says how many. A row without `subjectId` is unchanged. See `SearchRequest.subjectId`.\n\n**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.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rows\": [\n    {\n      \"id\": \"row-1\",\n      \"query\": {\n        \"firstName\": \"Exact\",\n        \"lastName\": \"Match\",\n        \"dob\": \"1980-01-01\"\n      }\n    },\n    {\n      \"id\": \"row-2\",\n      \"query\": {\n        \"firstName\": \"Clear\",\n        \"lastName\": \"Visitor\"\n      }\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Fetch a rendered verification-report document",
          "id": "247bd272-ef87-567d-8418-d5c2aa64eec5",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/proof-docs/:token",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "proof-docs",
                ":token"
              ],
              "variable": [
                {
                  "key": "token",
                  "value": "<token>",
                  "description": "Path parameter `token`."
                }
              ]
            },
            "description": "Fetch a rendered verification-report document\n\nServes the rendered proof document referenced by a ProofBundle document `url`. Returns the raw file body with the appropriate content type (`application/pdf` or `text/html`), not JSON."
          },
          "response": []
        },
        {
          "name": "Fetch a single normalized record by recordId or uuid",
          "id": "fa03399f-3b15-597c-a889-6d1f537e8cc1",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/records/:recordId",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "records",
                ":recordId"
              ],
              "variable": [
                {
                  "key": "recordId",
                  "value": "<recordId>",
                  "description": "Path parameter `recordId`."
                }
              ]
            },
            "description": "Fetch a single normalized record by recordId or uuid\n\nResolves a record by EITHER identifier a search published for it: our `recordId` (`rec_…`) or the registry's own `uuid`. DATABASE-BACKED since 2026-08-04 — it previously read only an in-memory index local to one API container, keyed on `recordId` alone, so a `uuid` never resolved and a `recordId` resolved only when the follow-up request happened to reach the same container as the search.\n\nA `404` means THIS IDENTIFIER WAS NEVER ISSUED FOR A RECORD — never that the person is unregistered. Registries re-issue their ids (KY, MO, OR, AZ, IA and WV each re-issued their entire registry within eight days to 2026-08-04; CA re-issued ~104,000), and a registry identifier that was later SUPERSEDED still resolves here to the person's CURRENT record — the one a search returns today, carrying the current `uuid` and the same `personRef`. Store `personRef` to recognise the person next time; keep the identifier you cited in a report as it was issued, since it keeps resolving.\n\nAn identifier carrying a byte no id of ours can hold — a NUL or any other control character — is also a `404`. Until 2026-08-05 `/v1/records/%00` and `/v1/records/a%00b` returned **500**, the only 5xx reachable from ~60 hostile inputs, because the NUL reached a database parameter. A 5xx is a claim that WE failed, and for a malformed id that claim is false. `%01` and `%25` always answered 404; now every impossible id answers the same way.\n\nA `409` means the id is AMBIGUOUS. A `uuid` is unique only together with its jurisdiction — `20059` identifies a Florida, a Pennsylvania and a Wisconsin registrant, and 55,893 ids are shared across jurisdictions (147,624 records). This endpoint returns one record and will not guess which you meant; use `recordId`, which is namespaced per jurisdiction and does not collide."
          },
          "response": []
        },
        {
          "name": "Coverage catalog + live health of every jurisdiction",
          "id": "24baa6af-564c-5893-9cf4-bb3fd645c09b",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/sources",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "sources"
              ]
            },
            "description": "Coverage catalog + live health of every jurisdiction\n\nThe catalog of every jurisdiction we cover, with lightweight health. No API key required — this doubles as public coverage transparency."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Criminal Records",
      "description": "Court, jail, prison and warrant records: cached and live search, batch, records, coverage catalogue, resolve.",
      "item": [
        {
          "name": "Search criminal records (cached by default, live with a `live` block)",
          "id": "8d66a381-4925-50f4-b960-f5f46fff3258",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/criminal/search",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "criminal",
                "search"
              ]
            },
            "description": "Search criminal records (cached by default, live with a `live` block)\n\nThe primary endpoint. Runs one query across the corpus and returns merged, ranked criminal records. **Cached mode by default; live verification when you include a `live` block.**\n\n`lastName` is required inside `query` — a query with no surname predicate is refused with `422 guard_unbounded_query`, because an unbounded query is a lottery, not an answer. `page` and `perPage` live at the TOP LEVEL of the request (not inside `query`), and are echoed back at the top level too — a deliberate difference from the Sex-Offender API, where they live inside `query`.\n\nA cached search returns `200` with the envelope. A live search returns `200` with the same envelope (plus a populated `sourceStatus[]` and a `usage` block) when it can run synchronously (≤2 sync-eligible sources), or `202` with a `searchId` + `poll` URL when it must run asynchronously (more than 2 sources, or a source that is not sync-eligible). When the request used `query.website` or `live.websites`, the response also carries a top-level `resolution[]` block showing the jurisdiction code each site mapped to — and the `202` body carries it too.\n\nThe `query` fields may also be sent FLAT at the top level (without a `query` wrapper); wrapping them in `query` is the documented form.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"query\": {\n    \"firstName\": \"Felony\",\n    \"lastName\": \"Record\",\n    \"dob\": \"1975-06-15\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Poll an asynchronous live job",
          "id": "94cd5ca2-86c7-58a7-936a-fa04b2a0cc19",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/criminal/searches/:searchId",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "criminal",
                "searches",
                ":searchId"
              ],
              "variable": [
                {
                  "key": "searchId",
                  "value": "<searchId>",
                  "description": "Path parameter `searchId`."
                }
              ]
            },
            "description": "Poll an asynchronous live job\n\nPoll an asynchronous live job — the one returned as `202` when a live search had more than two sources or a source that could not run synchronously. A search is only visible to the account that created it; another account's `searchId` returns `404`.\n\nWhile the job is running the stored record carries `status: \"pending\"`, zeroed `recordsCount` / `liveCompleted`, and `result: null`, and the HTTP status is `202`. When it completes, `status` is `\"complete\"`, `result` carries the full response envelope, `liveCompleted` is the number of live sources that finished, and the HTTP status is `200`."
          },
          "response": []
        },
        {
          "name": "Bulk cached lookups — one row in, one result out",
          "id": "1c506531-ea47-5539-9084-dcbf510284b7",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/criminal/batch",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "criminal",
                "batch"
              ]
            },
            "description": "Bulk cached lookups — one row in, one result out\n\nBulk cached lookups: one row in, one result out, in input order. Each row runs through the SAME cached engine as `/v1/criminal/search`, so results are identical to running them individually. **Live verification is not offered in batch — every row is cache-only.**\n\nSend either a JSON array of query objects, a JSON envelope `{ \"queries\": [...], ...batch-wide defaults }` (any key beside `queries` — `include`, `nameStrategy`, `state`, … — is applied to every row, and a per-row value overrides it), or a `text/csv` body whose header row names `query` field names (empty cells are dropped and a UTF-8 BOM is handled). A row that fails validation (e.g. a missing `lastName`) is returned in place with `status: \"error\"` and its reason; it never aborts the batch.\n\n**Billing is per search, not per request.** A batch is one HTTP call but contains N searches, and each row that ran is billed as one `criminal_call` — a 1,000-row batch is 1,000 billable calls.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rows\": [\n    {\n      \"id\": \"row-1\",\n      \"query\": {\n        \"firstName\": \"Felony\",\n        \"lastName\": \"Record\",\n        \"dob\": \"1975-06-15\"\n      }\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Re-fetch a single cached record by identifier",
          "id": "918eb381-4877-5415-839c-eee38c61b2ed",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/criminal/records/:recordId",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "criminal",
                "records",
                ":recordId"
              ],
              "query": [
                {
                  "key": "source",
                  "value": "TX-BEXAR",
                  "description": "The record's `sources[].code`. Send it: an `externalId` is unique only within its source, and with the code the lookup is a direct key read. Without it the lookup is bounded to five seconds and answers 404 if the row is not found in time.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "recordId",
                  "value": "<recordId>",
                  "description": "Path parameter `recordId`."
                }
              ]
            },
            "description": "Re-fetch a single cached record by identifier\n\nRe-fetch a single cached record by its `externalId`, with its `sources[].code` as `source`. The response is the BARE Criminal Record object — not wrapped in an envelope.\n\nA `404` means \"this identifier is not current\", NOT \"this person has no record.\" A jail booking that has since dropped from the roster, or a source that re-issued its ids, can leave a stored id resolving to nothing. Re-search by name and state."
          },
          "response": []
        },
        {
          "name": "Coverage catalog + per-jurisdiction freshness (no key)",
          "id": "071f2c47-bbd0-5fd9-9969-318e63490613",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/criminal/sources",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "criminal",
                "sources"
              ]
            },
            "description": "Coverage catalog + per-jurisdiction freshness (no key)\n\nThe coverage catalog plus live per-jurisdiction currency — the honest, public answer to \"how fresh is your data?\", one row per jurisdiction, with the timestamp of its last successful ingest. **No API key required**, so you can check it before you buy and audit it afterwards.\n\nNone of this is a filter: a jurisdiction contributes its records to a cached search whatever its age says, and freshness never withholds anything. Read this endpoint to KNOW a jurisdiction's currency, not to predict which ones will answer. Jurisdiction names only — never a portal or vendor name."
          },
          "response": []
        },
        {
          "name": "Coverage catalog, filterable by state / county-kind / live-reachability",
          "id": "7dae675b-218d-503d-9bdb-7004c93564ae",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/criminal/jurisdictions",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "criminal",
                "jurisdictions"
              ],
              "query": [
                {
                  "key": "state",
                  "value": "TX",
                  "description": "USPS code — filter to one state, case-insensitive.",
                  "disabled": true
                },
                {
                  "key": "recordKind",
                  "value": "",
                  "description": "Filter by kind.",
                  "disabled": true
                },
                {
                  "key": "live",
                  "value": "",
                  "description": "`true` to list only jurisdictions reachable for live verification.",
                  "disabled": true
                }
              ]
            },
            "description": "Coverage catalog, filterable by state / county-kind / live-reachability\n\nThe coverage catalog — every jurisdiction the product covers, filterable by state, record-kind and live-reachability, plus an honest per-product coverage summary. Unlike `GET /v1/criminal/sources` it requires a key and does not carry the per-jurisdiction freshness health block. Entitlement-gated like search; NOT metered."
          },
          "response": []
        },
        {
          "name": "Map a roster / records website to the jurisdiction code we cover",
          "id": "ddba322e-b976-5b21-abfb-cea338a49057",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/criminal/resolve",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "criminal",
                "resolve"
              ]
            },
            "description": "Map a roster / records website to the jurisdiction code we cover\n\nMap a roster or records website to the public jurisdiction code we cover for it, so you can drive a search from a URL you already know instead of one of our codes. **The mapping is one-directional — your site in, a neutral code out — and never reveals our own sources.** Even when the answer is \"we cover this\", the response names only the state, the county, and the neutral code — never the site we actually read.\n\nSend `{ \"website\": \"...\" }` for a single site (→ a single result object) or `{ \"websites\": [...] }` for a list (→ a `results[]` wrapper, one entry per input, in order). An unsupported input is `supported: false` with `code: null` and a plain-language `note` — it is a resolution outcome to read, not an error. Entitlement-gated exactly like search; NOT metered — a cheap in-memory lookup that consults no data source, so it emits no `criminal_call`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"website\": \"https://sheriff.examplecounty.gov/inmates\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Your account's prior searches",
          "id": "34888607-0817-518c-af46-40f7bab3f88c",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/criminal/history",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "criminal",
                "history"
              ]
            },
            "description": "Your account's prior searches\n\nThe account's prior searches — the same stored-search discipline as the Sex-Offender product. Returns only YOUR account's searches, most recent first."
          },
          "response": []
        },
        {
          "name": "A verification PDF attesting a search was performed",
          "id": "234c9eeb-8f4a-5c70-9331-379a320aa0e3",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/criminal/report",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "criminal",
                "report"
              ]
            },
            "description": "A verification PDF attesting a search was performed\n\nA consolidated verification PDF that ATTESTS a criminal-records search was performed — the criminal analogue of the Sex-Offender API's `POST /v1/report`. The PDF shows the query, the run timestamp and a report id (`rpt_…`), the matching records grouped by DOB/age match strength, each with its identity and its PUBLIC source citation (the neutral jurisdiction code plus a last-checked stamp — **never a portal, platform or vendor name**), a records-searched count, and the FCRA \"not a consumer report\" notice prominently. A zero-match search renders a clean \"no records found\" attestation.\n\n**Two input modes, exactly one required:**\n* `{\"searchId\": \"...\"}` — render a PREVIOUSLY STORED search. The search was\n  already billed when it ran, so this meters **only** the report.\n\n* `{\"query\": {...}}` (optionally with a `live` block, the SAME shape as\n  `/search`) — run the search inline and render it. Bills the underlying\n  `criminal_call` (plus `criminal_live_source` per completed live source) **and**\n  the report.\n\n\nAuthenticated exactly like `/search`. The response is **not JSON — the PDF bytes**. The report id (`rpt_` + 12 hex) is printed on the document and sent in the `X-Report-Id` response header; `Content-Disposition` names the attachment (`offendersearch-criminal-<reportId>.pdf`).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"searchId\": \"crs_7f2a1c9e0b4d6a8f1e23\",\n  \"viewerName\": \"Taylor Brooks\",\n  \"purpose\": \"Visitor screening\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Monitoring",
      "description": "Person and location monitors with signed webhook alerts.",
      "item": [
        {
          "name": "Create a monitor",
          "id": "34696b1f-da20-5895-ad73-b86bcbeb2130",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/monitors",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "monitors"
              ]
            },
            "description": "Create a monitor\n\nCreates one standing watch: one `product` (`sex-offender` or `criminal`) and one predicate (`person` or `location`). Watching the same person in both datasets is two monitors. `channels` must carry at least one email address or a `webhookUrl`. `product: \"criminal\"` with `type: \"location\"` creates nothing and returns `200` with `status: \"not_yet_available\"`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"product\": \"sex-offender\",\n  \"type\": \"person\",\n  \"person\": {\n    \"firstName\": \"Exact\",\n    \"lastName\": \"Match\",\n    \"dob\": \"1980-01-01\"\n  },\n  \"channels\": {\n    \"webhookUrl\": \"https://your-app.example.com/hooks/offendersearch\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List this account's monitors",
          "id": "e5798f7c-7b31-5996-a11c-516b16a25485",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/monitors",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "monitors"
              ],
              "query": [
                {
                  "key": "includeCanceled",
                  "value": "",
                  "description": "`true` also returns canceled monitors. Default `false`: active monitors only.",
                  "disabled": true
                }
              ]
            },
            "description": "List this account's monitors"
          },
          "response": []
        },
        {
          "name": "Retrieve one monitor with its ten most recent alerts",
          "id": "54e37ca1-b7c5-5052-a771-4cb4644c24db",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/monitors/:monitorId",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "monitors",
                ":monitorId"
              ],
              "variable": [
                {
                  "key": "monitorId",
                  "value": "<monitorId>",
                  "description": "Path parameter `monitorId`."
                }
              ]
            },
            "description": "Retrieve one monitor with its ten most recent alerts"
          },
          "response": []
        },
        {
          "name": "Cancel a monitor",
          "id": "6d97f492-ad2d-5979-8b3b-c4245046ff37",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/monitors/:monitorId",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "monitors",
                ":monitorId"
              ],
              "variable": [
                {
                  "key": "monitorId",
                  "value": "<monitorId>",
                  "description": "Path parameter `monitorId`."
                }
              ]
            },
            "description": "Cancel a monitor\n\nSets the monitor's `status` to `canceled`. Evaluation stops now, the monitor is not charged on any invoice prepared after the cancel, and it and its alerts stay readable."
          },
          "response": []
        },
        {
          "name": "Rotate a monitor's webhook signing secret",
          "id": "973ecce3-d9d1-585f-b626-90a6cb4cd8b9",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/monitors/:monitorId/webhook-secret",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "monitors",
                ":monitorId",
                "webhook-secret"
              ],
              "variable": [
                {
                  "key": "monitorId",
                  "value": "<monitorId>",
                  "description": "Path parameter `monitorId`."
                }
              ]
            },
            "description": "Rotate a monitor's webhook signing secret\n\nIssue a new `whsec_…` secret for the monitor's webhook. The previous secret stops verifying at once. The new value is returned in this response only — it is never shown again by `GET` or list. No body."
          },
          "response": []
        },
        {
          "name": "One monitor's alert history",
          "id": "c110f4ee-b062-5815-b09f-d6e110552eef",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/monitors/:monitorId/alerts",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "monitors",
                ":monitorId",
                "alerts"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "description": "How many alerts to return, most recently observed first. Clamped to 1–200.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "monitorId",
                  "value": "<monitorId>",
                  "description": "Path parameter `monitorId`."
                }
              ]
            },
            "description": "One monitor's alert history"
          },
          "response": []
        }
      ]
    },
    {
      "name": "Map API",
      "description": "What to draw for a map view, drawn areas, routes, the record behind a pin.",
      "item": [
        {
          "name": "What to draw for one map view — clusters, pins or named pins",
          "id": "cdd17e47-a84c-5c7d-a485-87570093f697",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/map/viewport?bbox=-83.20,39.85,-82.80,40.10",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "map",
                "viewport"
              ],
              "query": [
                {
                  "key": "bbox",
                  "value": "-83.20,39.85,-82.80,40.10",
                  "description": "`west,south,east,north` in degrees. Any size. A box crossing the date line has west greater than east."
                },
                {
                  "key": "center",
                  "value": "39.9612,-82.9988",
                  "description": "Instead of `bbox`: `lat,lng` in degrees. Goes together with `radiusMiles`.",
                  "disabled": true
                },
                {
                  "key": "radiusMiles",
                  "value": "",
                  "description": "With `center`: the radius in miles, 0.1 to 100.",
                  "disabled": true
                },
                {
                  "key": "zoom",
                  "value": "",
                  "description": "Optional. The map's current zoom, 0 to 22. Fractions are floored.",
                  "disabled": true
                },
                {
                  "key": "format",
                  "value": "",
                  "description": "`json` (default) or `geojson`.",
                  "disabled": true
                },
                {
                  "key": "detail",
                  "value": "",
                  "description": "`full` (default) or `count` (numbers only).",
                  "disabled": true
                },
                {
                  "key": "housing",
                  "value": "homeless,incarcerated",
                  "description": "Keep only people with this housing status. One or more of `housed`, `homeless`, `incarcerated`, comma-separated.",
                  "disabled": true
                },
                {
                  "key": "precision",
                  "value": "",
                  "description": "`street` keeps only people with an exact street address. `any`, or leaving it out, keeps everyone.",
                  "disabled": true
                },
                {
                  "key": "sandbox",
                  "value": "",
                  "description": "`true` answers in test mode.",
                  "disabled": true
                }
              ]
            },
            "description": "What to draw for one map view — clusters, pins or named pins\n\nYou draw the map; this returns what to draw for one view. Send the view as\n`bbox`, or as `center` with `radiusMiles` — one or the other, not both.\n\nThe detail returned depends on the effective zoom. That is the `zoom` you\nsend, or — when you send none — the zoom at which the box is about four tiles\nwide. If the box covers more than 64 tiles at that zoom, the zoom is lowered\nuntil it fits, never below 3. The response states the zoom used.\n\n| Effective zoom | `mode` | Returned |\n|---|---|---|\n| 3–12 | `clusters` | A count per grid cell |\n| 13–14 | `pins` | One pin per address: position only, no name |\n| 15+ | `markers` | Pins with a name label and basic fields |\n\nA view at zoom 13 or closer that holds more than 300 pins is answered as\nclusters on a finer grid (`mode: \"clusters\"`). With `detail=count` the mode\nis `count`.\n\n**Billing.** One map request per answer, whatever the view holds. Clusters\nand pins are never charged per person. A `304`, test mode and any error\nresponse are free.\n\n**Caching.** Every answer carries `Cache-Control: private, max-age=300` and\nan `ETag`. Send the `ETag` back in `If-None-Match`: an unchanged view answers\n`304` with no body and is not billed. The `ETag` changes when the data\nchanges, and at least every 12 hours.\n\n**Test mode.** `sandbox=true` returns made-up people (every label starts\nwith \"Sample\") around eight US cities, in the real response shape. Group and\nmarker ids from a test-mode response open test-mode data. It needs no plan,\nis never billed and counts against no budget. The response carries\n`\"sandbox\": true`.\n\n**Auth.** A secret API key from any server, or a\nmap browser key (`os_map_pk_…`) sent from a site on that key's list."
          },
          "response": []
        },
        {
          "name": "The same answer for a drawn shape — a polygon, or a route with a buffer",
          "id": "c1d34c1f-d31c-5178-8dda-4bbbf424029f",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/map/area",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "map",
                "area"
              ]
            },
            "description": "The same answer for a drawn shape — a polygon, or a route with a buffer\n\nEveryone inside a drawn shape: a school zone, a delivery area, a walking route. Send one of `polygon` or `route`.\n\nThe response is the viewport response for the shape's bounding box, limited to what is inside the shape, plus `shape`. The detail level follows the same zoom rules as `GET /v1/map/viewport`. In pins and markers mode `total` is exact. In clusters mode a cluster is included when its centre is inside the shape, and the response carries `\"totalIsEstimate\": true`.\n\n**Billing.** One map request per answer. Test mode and any error response are free.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"polygon\": [\n    [\n      -83.01,\n      39.95\n    ],\n    [\n      -82.99,\n      39.95\n    ],\n    [\n      -82.99,\n      39.97\n    ],\n    [\n      -83.01,\n      39.97\n    ]\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Exact counts and nameless pins along one route, its legs and its stops",
          "id": "9b5a3bb6-5383-5929-a435-55e5bdb87df8",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/map/route",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "map",
                "route"
              ]
            },
            "description": "Exact counts and nameless pins along one route, its legs and its stops\n\nWho is registered along a route: within a corridor either side of a line,\nwithin a radius of each stop, or both. The answer is exact, never an\nestimate and never partial.\n\nSend the line as one of `path` (a GeoJSON LineString, or `[[lng, lat], …]`),\n`points` (`[[lng, lat], …]`) or `polyline` (an encoded polyline: precision 5\nfor Google Directions `overview_polyline`, 6 for Mapbox Directions\n`geometry: polyline6`). Without a line, two or more `stops` are joined by\nstraight lines.\n\nThe answer counts people per leg (between two stops) and per stop, places\nevery pin on the route (`distanceMiles`, `leg`, `alongMiles`) and next to\nits nearest stop (`nearestStop`, `stopDistanceFeet`). People mapped only to\na ZIP code, city or county are counted separately under `approximate` and\nnever in `total`. **A route answer never carries a name**, on any plan; for\na labelled map, request a viewport at zoom 15 or closer. The record behind a\npin opens with `GET /v1/map/records/{markerId}`.\n\n**Billing.** A route is billed as route units, each one map request:\n`ceil(corridor miles) × width factor` when the corridor is measured (×1 up\nto a 0.25-mile corridor) plus `ceil(stops / 10)` when stop radii are\nmeasured, at least 1. A 17.42-mile bus route with a 0.1-mile corridor and 35\nstops at 1,000 feet is 18 + 4 = 22 units. `detail=count` costs the same. A\n`304`, test mode and any error response are free.\n\n**Never partial.** More than 300 pins with `detail=full` is `422\nroute_too_many_people` with the exact counts and nothing charged; a route\nthrough more addresses than one call counts exactly is `422\nroute_too_dense`; a read that fails is `503` with no result and nothing\ncharged.\n\n**Caching.** `Cache-Control: private, max-age=300` and an `ETag`. Send it\nback in `If-None-Match`: the same route asked again answers `304`, free.\n\n**Auth.** A secret API key, or a map browser key (`os_map_pk_…`) from a\nsite on its list. A browser key must send `X-End-User`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"points\": [\n    [\n      -83.0007,\n      39.9612\n    ],\n    [\n      -82.9988,\n      39.965\n    ],\n    [\n      -82.993,\n      39.97\n    ]\n  ],\n  \"stops\": [\n    {\n      \"id\": \"s1\",\n      \"lng\": -83.0007,\n      \"lat\": 39.9612\n    },\n    {\n      \"id\": \"s2\",\n      \"lng\": -82.993,\n      \"lat\": 39.97\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Up to 50 routes in one call, answered all or nothing",
          "id": "8e367f76-75dd-5d93-aa63-71da805f865a",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/map/routes",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "map",
                "routes"
              ]
            },
            "description": "Up to 50 routes in one call, answered all or nothing\n\nUp to 50 routes, each shaped like a `POST /v1/map/route` body, answered in\none call. Every route answers, or none does: one invalid route is a `422`\nnaming its `routeIndex`, one route over 300 pins (with `detail=full`) is\n`422 route_too_many_people` naming its `routeIndex`, and a failed read is a\n`503`. Nothing is billed unless the whole batch answers.\n\nAll the markers share one response, so a person on three routes opened from\nthis answer is one record open. A batch answers in JSON only.\n\n**Billing.** The sum of the routes' units, each one map request.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"routes\": [\n    {\n      \"points\": [\n        [\n          -83.0007,\n          39.9612\n        ],\n        [\n          -82.9988,\n          39.965\n        ],\n        [\n          -82.993,\n          39.97\n        ]\n      ],\n      \"stops\": [\n        {\n          \"id\": \"s1\",\n          \"lng\": -83.0007,\n          \"lat\": 39.9612\n        },\n        {\n          \"id\": \"s2\",\n          \"lng\": -82.993,\n          \"lat\": 39.97\n        }\n      ],\n      \"externalId\": \"route-42\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "The people behind a many-people or approximate-area pin",
          "id": "bae8cbbb-77e7-5c1a-bd6e-d7d33ec3409a",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/map/groups/:groupId",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "map",
                "groups",
                ":groupId"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "",
                  "description": "Page number, starting at 1.",
                  "disabled": true
                },
                {
                  "key": "perPage",
                  "value": "",
                  "description": "People per page, 1 to 100.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "groupId",
                  "value": "<groupId>",
                  "description": "Path parameter `groupId`."
                }
              ]
            },
            "description": "The people behind a many-people or approximate-area pin\n\nOne page of the people a `groupId` stands for. A `groupId` comes from a pin with `id: null` (several people at one address) or from an entry in `areas`. Each member `id` opens with `GET /v1/map/records/{markerId}`.\n\nMembers carry `label` only when the group id came from a view at zoom 15 or closer (`named: true`). A group id works for 24 hours, and only for the account it was issued to.\n\n**Billing.** One map request per page. Test mode and any error response are free."
          },
          "response": []
        },
        {
          "name": "The complete record behind a marker or a saved reference",
          "id": "4a662f32-bd69-5500-a66c-a5d411ca0f8e",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/map/records/:markerId",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "map",
                "records",
                ":markerId"
              ],
              "variable": [
                {
                  "key": "markerId",
                  "value": "<markerId>",
                  "description": "Path parameter `markerId`."
                }
              ]
            },
            "description": "The complete record behind a marker or a saved reference\n\nAccepts a marker id (`mk_…`) or a saved reference (`mr_…`). Returns the same record object `POST /v1/search` returns, a lasting `recordRef`, and a `billing` block that says whether this open was charged.\n\n**Billing.** One record open per person per map response.\n- Opening the same marker id again is free\n  (`reason: \"marker_already_opened\"`).\n\n- A new viewport or groups response carries new ids. Opening the same person\n  from it is a new charge.\n\n- `recordRef` is a lasting reference for bookmarks and shared links. Opening\n  by reference is one record open, then free for 24 hours. A record just\n  opened from a marker is also free by its reference for 24 hours.\n\n- `record_no_longer_listed`, test mode and every other error response are\n  not billed.\n\n\nMarker ids work for 24 hours, and only for the account they were issued to. Photo links on hosted photos are signed and work in an `<img>` tag for one hour."
          },
          "response": []
        },
        {
          "name": "The Map API plan, rates, limits and this month's usage",
          "id": "5725df91-dbf3-5bde-b553-2973524846c3",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/map/status",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "map",
                "status"
              ]
            },
            "description": "The Map API plan, rates, limits and this month's usage\n\nFree. Answers for an account whose Map API is off too — it is how a client finds out that it is."
          },
          "response": []
        },
        {
          "name": "Turn the Map API on (charges the monthly minimum)",
          "id": "c0a6e846-98b6-53be-91b3-ba9e64c14c97",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/map/enable",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "map",
                "enable"
              ]
            },
            "description": "Turn the Map API on (charges the monthly minimum)\n\nAny paying business account can turn the Map API on, with a secret API key. A map browser key is not accepted here.\n\n1. `acceptMinimum` must be `true`.\n2. The account needs a payment method on file. A free-trial account is\n   refused.\n\n3. The monthly minimum ($300) is charged to the card at that moment. It\n   covers the current calendar month. If the charge fails, nothing is turned\n   on.\n\n4. The plan is active at once on the same key. A confirmation email is sent.\n\nLater months are settled on the month-end invoice: usage, or the minimum if usage is lower. The minimum is applied toward everything the account uses that month, search included. The month of turn-on is invoiced at month end as `max(total usage, 300) − 300 already paid`.\n\nCalling this on an account that is already on changes nothing and charges nothing. Turning it on again in a month it was already paid for charges nothing more.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"acceptMinimum\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Turn the Map API off",
          "id": "66e2e7d1-34b5-5990-b5dd-58722b87ef82",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/map/disable",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "map",
                "disable"
              ]
            },
            "description": "Turn the Map API off\n\nFree. The map routes stop at once. The month stays a minimum month and a minimum already paid is not refunded. Turning it on again in the same month charges nothing more. Takes a secret API key; a map browser key is not accepted here."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Clearances",
      "description": "Record and retrieve the verdict that a returned person is, or is not, the subject.",
      "item": [
        {
          "name": "Record a verdict — a returned person is, or is not, the subject",
          "id": "90f56b32-f50f-5208-b2f1-b001777da5b3",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/clearances",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "clearances"
              ]
            },
            "description": "Record a verdict — a returned person is, or is not, the subject\n\nRecords that the person behind one `personRef` is (`this_person`) or is not (`not_this_person`) the subject identified by your `subjectId` — and, for a platform serving many facilities, your `clientId`. From then on every search that sends the same `subjectId` (and `clientId`) honours the verdict: a `not_this_person` person leaves `records[]` and is listed in `cleared[]`; a `this_person` person is kept and annotated. Both the sex offender search and the criminal search accept the same `subjectId`; `product` says which dataset the verdict belongs to.\n\nThe verdict must cite the search that showed the person: `searchId` must be a search in this account's history (searches are kept 14 days) and that search's stored results must contain the `personRef`. That is the proof the person was reviewed. A second verdict for the same subject, client and `personRef` replaces the first; the new clearance's `supersedes` names the one it replaced.\n\nA clearance matches by `personRef` only — never by name or date of birth. The person being cleared shares a name, and often a birthday, with the subject, so a name match would also hide the subject's own record. Included in the search price; nothing on this route is metered.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"subjectId\": \"resident-48213\",\n  \"clientId\": \"facility-07\",\n  \"personRef\": \"prs_3c9e1f0a7b2d4e6f8a1b\",\n  \"recordId\": \"rec_6d066763131ebe8c77ea\",\n  \"searchId\": \"srch_9f2c1a7b\",\n  \"verdict\": \"not_this_person\",\n  \"reviewer\": \"admissions-desk\",\n  \"note\": \"Photo and registry address do not match the resident.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List the clearances recorded for one subject",
          "id": "f7df0ff3-9dde-5840-8c2b-169932d704cb",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/clearances?subjectId=string",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "clearances"
              ],
              "query": [
                {
                  "key": "subjectId",
                  "value": "string",
                  "description": "Your id for the subject, as sent when the clearances were recorded."
                },
                {
                  "key": "clientId",
                  "value": "",
                  "description": "Your facility / tenant / client id, when the clearances were recorded with one.",
                  "disabled": true
                },
                {
                  "key": "product",
                  "value": "",
                  "description": "Restrict to one dataset. Omit for both.",
                  "disabled": true
                },
                {
                  "key": "includeRevoked",
                  "value": "",
                  "description": "`true` also returns revoked clearances. Default `false`: active ones only.",
                  "disabled": true
                }
              ]
            },
            "description": "List the clearances recorded for one subject\n\nEvery clearance recorded for `subjectId` (and `clientId`, when you send one), newest first. Active clearances only unless `includeRevoked=true`. The ids you send are hashed before the lookup, exactly as they were when the clearances were recorded, so a listing needs the same `subjectId` and `clientId` the verdict was recorded under."
          },
          "response": []
        },
        {
          "name": "Retrieve one clearance",
          "id": "81bf9477-6dab-53c9-9f31-228f71fe41c3",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/clearances/:clearanceId",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "clearances",
                ":clearanceId"
              ],
              "variable": [
                {
                  "key": "clearanceId",
                  "value": "<clearanceId>",
                  "description": "Path parameter `clearanceId`."
                }
              ]
            },
            "description": "Retrieve one clearance\n\nOne clearance by id. `subjectId` and `clientId` are `null` on this route: only a per-account hash of them is stored, so they can be echoed only on the request that carried them."
          },
          "response": []
        },
        {
          "name": "Revoke a clearance",
          "id": "314a9542-313b-5b64-ad6b-a59db2b895f5",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/clearances/:clearanceId",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "clearances",
                ":clearanceId"
              ],
              "variable": [
                {
                  "key": "clearanceId",
                  "value": "<clearanceId>",
                  "description": "Path parameter `clearanceId`."
                }
              ]
            },
            "description": "Revoke a clearance\n\nSets `revokedAt`. The verdict stops applying at once: the next search for that subject shows the person again. The clearance stays readable with `includeRevoked=true`, so the audit trail is not lost."
          },
          "response": []
        }
      ]
    },
    {
      "name": "FCRA Partner API",
      "description": "FCRA orders, end users, search plans, evidence, disputes, hosted consent, adverse action, continuous checks, webhooks and events — for approved partners.",
      "item": [
        {
          "name": "This account's FCRA Partner Access status",
          "id": "fb606185-bb22-508c-aa7e-259cdd43191d",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/partner",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "partner"
              ]
            },
            "description": "This account's FCRA Partner Access status\n\nWhether this account can place FCRA orders, the permissible purposes its agreement covers, and whether a webhook endpoint is configured. Never 403: an account without access gets `enabled: false`."
          },
          "response": []
        },
        {
          "name": "Register an end user",
          "id": "7733afbc-ec24-507a-a348-7bc76920eda6",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/end-users",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "end-users"
              ]
            },
            "description": "Register an end user\n\nRegisters the employer, landlord or other business a report is for, with the permissible purposes it holds and your certification. Every purpose must be within your partner agreement (403 `fcra_purpose_not_allowed`).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Example Health\",\n  \"permissiblePurposes\": [\n    \"employment\"\n  ],\n  \"certification\": {\n    \"text\": \"Example Health certifies it will order reports only for the permissible purposes listed and will comply with the FCRA.\",\n    \"version\": \"2026-10\",\n    \"certifiedAt\": \"2026-09-15T17:58:10+00:00\",\n    \"certifiedBy\": \"Casey Nguyen, Director of Compliance\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List end users",
          "id": "d09951ca-fae6-537a-a44f-763e1e6c5c84",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/end-users",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "end-users"
              ]
            },
            "description": "List end users"
          },
          "response": []
        },
        {
          "name": "Retrieve an end user",
          "id": "4890ef11-0511-5b94-ab12-53c9eda8eb8b",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/end-users/:end_user_id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "end-users",
                ":end_user_id"
              ],
              "variable": [
                {
                  "key": "end_user_id",
                  "value": "<end_user_id>",
                  "description": "Path parameter `end_user_id`."
                }
              ]
            },
            "description": "Retrieve an end user"
          },
          "response": []
        },
        {
          "name": "Change an end user's purposes or suspend it",
          "id": "5cedc684-9f64-5dc5-b45e-c4ecb5365bf2",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/end-users/:end_user_id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "end-users",
                ":end_user_id"
              ],
              "variable": [
                {
                  "key": "end_user_id",
                  "value": "<end_user_id>",
                  "description": "Path parameter `end_user_id`."
                }
              ]
            },
            "description": "Change an end user's purposes or suspend it\n\nA suspended end user cannot be named on a new order (422 `end_user_suspended`). Send `status: \"active\"` to reinstate it.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"permissiblePurposes\": [\n    \"employment\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Preview where an order would search",
          "id": "2468f94c-8562-511d-a046-ac3058124a95",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/search-plans",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "search-plans"
              ]
            },
            "description": "Preview where an order would search\n\nThe search plan for an address history and a use location: the counties, states and national tier in scope, why each is there, the sources behind each, and the counties with no county-level source. Nothing is stored or metered; no evidence row is written.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"subject\": {\n    \"firstName\": \"Pat\",\n    \"lastName\": \"Records\",\n    \"dob\": \"1980-01-01\"\n  },\n  \"searches\": [\n    {\n      \"type\": \"sex_offender\"\n    },\n    {\n      \"type\": \"criminal\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Create an FCRA order",
          "id": "d0fc8d41-1bcb-5055-ad2a-f3ce3ae413be",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders"
              ]
            },
            "description": "Create an FCRA order\n\nOne consumer, one end user, one permissible purpose, one consent attestation, and one or both search types. Returns 202 with the order at status `received`; the searches run in the background and report by webhook. The same `Idempotency-Key` with the same body within 24 hours returns the original order with `Idempotent-Replayed: true`; with a different body it is 409 `idempotency_conflict`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"subject\": {\n    \"firstName\": \"Pat\",\n    \"lastName\": \"Records\",\n    \"dob\": \"1980-01-01\"\n  },\n  \"searches\": [\n    {\n      \"type\": \"sex_offender\"\n    },\n    {\n      \"type\": \"criminal\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List orders, newest first",
          "id": "83a75bfc-70b0-5454-9961-4f51eb7f2f2b",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "",
                  "description": "Only orders with this status.",
                  "disabled": true
                },
                {
                  "key": "clientReference",
                  "value": "",
                  "description": "Only orders with this `clientReference`.",
                  "disabled": true
                },
                {
                  "key": "endUserId",
                  "value": "",
                  "description": "Only orders for this end user.",
                  "disabled": true
                },
                {
                  "key": "tag",
                  "value": "",
                  "description": "Only orders carrying this tag.",
                  "disabled": true
                },
                {
                  "key": "source",
                  "value": "",
                  "description": "Only orders placed this way.",
                  "disabled": true
                },
                {
                  "key": "createdAfter",
                  "value": "",
                  "description": "Only orders created at or after this time (ISO-8601).",
                  "disabled": true
                },
                {
                  "key": "createdBefore",
                  "value": "",
                  "description": "Only orders created before this time (ISO-8601).",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "The `nextCursor` from the previous page.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "Orders per page, 1 to 200.",
                  "disabled": true
                }
              ]
            },
            "description": "List orders, newest first"
          },
          "response": []
        },
        {
          "name": "Retrieve an order",
          "id": "e8876ebc-80b0-5542-a8bf-59f9469866e7",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "Retrieve an order"
          },
          "response": []
        },
        {
          "name": "Retrieve an order's search plan",
          "id": "f431c9d7-c482-5ec9-b3a8-9e8ee33a9fc5",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/scope",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "scope"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "Retrieve an order's search plan"
          },
          "response": []
        },
        {
          "name": "Retrieve one search with its furnished records",
          "id": "8f3dadc8-66d6-571a-8c28-68a7f6ea43f0",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/searches/:search_id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "searches",
                ":search_id"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                },
                {
                  "key": "search_id",
                  "value": "<search_id>",
                  "description": "Path parameter `search_id`."
                }
              ]
            },
            "description": "Retrieve one search with its furnished records"
          },
          "response": []
        },
        {
          "name": "Run a finished search again",
          "id": "4c8f12fc-2f4e-5652-af0a-f1b02b842366",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/searches/:search_id/reverify",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "searches",
                ":search_id",
                "reverify"
              ],
              "variable": [
                {
                  "key": "search_id",
                  "value": "<search_id>",
                  "description": "Path parameter `search_id`."
                }
              ]
            },
            "description": "Run a finished search again\n\nAdds a new search of the same type to the order and marks this one `superseded`, with `supersededBy` set to the new search's id. The order returns to `in_progress`."
          },
          "response": []
        },
        {
          "name": "Cancel an order that has not finished",
          "id": "c678aa13-8292-5f49-9d5d-12443241455d",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/cancel",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "cancel"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "Cancel an order that has not finished\n\nThe order becomes `cancelled` and its queued searches become `cancelled`. A search already running finishes."
          },
          "response": []
        },
        {
          "name": "The furnished report, as JSON or the stored PDF",
          "id": "6e0bfada-ca7e-5c4e-8cf8-114f3dd8190f",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/report",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "report"
              ],
              "query": [
                {
                  "key": "revision",
                  "value": "",
                  "description": "An earlier report revision (see revisions); the current one when omitted.",
                  "disabled": true
                },
                {
                  "key": "format",
                  "value": "",
                  "description": "`json` (the default) or `pdf` (the stored PDF, rendered once when the order completed).",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "The furnished report, as JSON or the stored PDF"
          },
          "response": []
        },
        {
          "name": "The public signed receipt for a completed order",
          "id": "00cf24a0-4d1d-578b-b34c-6f7f6887536a",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/fcra/receipts/:order_id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "receipts",
                ":order_id"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "The public signed receipt for a completed order\n\nNo API key. An Ed25519-signed statement of the order id, completion time, control version, `reportSha256` and `pdfSha256`. It carries no personal data."
          },
          "response": []
        },
        {
          "name": "Every official-source capture taken for the order",
          "id": "577773fd-0d23-5ce4-ab99-b7629e645694",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/evidence",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "evidence"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "Every official-source capture taken for the order"
          },
          "response": []
        },
        {
          "name": "One capture's stored bytes",
          "id": "5aec91df-a9ad-50fc-a032-a4857f99494c",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/evidence/:capture_id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "evidence",
                ":capture_id"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                },
                {
                  "key": "capture_id",
                  "value": "<capture_id>",
                  "description": "Path parameter `capture_id`."
                }
              ]
            },
            "description": "One capture's stored bytes"
          },
          "response": []
        },
        {
          "name": "Open a dispute on furnished records",
          "id": "afa3d59f-6167-51d2-991c-730600edd751",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/disputes",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "disputes"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "Open a dispute on furnished records",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"recordIds\": [\n    \"rec_ab12cd34ef56gh78ij90\"\n  ],\n  \"reason\": \"not_me\",\n  \"consumerStatement\": \"This record belongs to a different person with the same name; I have never lived in Texas.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List disputes on your orders",
          "id": "8cea417c-aa54-5540-ae94-b53a58a318f4",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/disputes",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "disputes"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "",
                  "description": "Only disputes with this status.",
                  "disabled": true
                },
                {
                  "key": "orderId",
                  "value": "",
                  "description": "Only disputes on this order.",
                  "disabled": true
                }
              ]
            },
            "description": "List disputes on your orders"
          },
          "response": []
        },
        {
          "name": "Retrieve a dispute",
          "id": "14882bc3-a98c-5619-b2f1-32ae3db9c339",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/disputes/:dispute_id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "disputes",
                ":dispute_id"
              ],
              "variable": [
                {
                  "key": "dispute_id",
                  "value": "<dispute_id>",
                  "description": "Path parameter `dispute_id`."
                }
              ]
            },
            "description": "Retrieve a dispute"
          },
          "response": []
        },
        {
          "name": "Add the consumer's new information (the one 15-day extension)",
          "id": "83d0dbda-6e62-5897-9996-7dd844f7d132",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/disputes/:dispute_id/information",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "disputes",
                ":dispute_id",
                "information"
              ],
              "variable": [
                {
                  "key": "dispute_id",
                  "value": "<dispute_id>",
                  "description": "Path parameter `dispute_id`."
                }
              ]
            },
            "description": "Add the consumer's new information (the one 15-day extension)",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"statement\": \"This record belongs to a different person with the same name; I have never lived in Texas.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Invite a consumer to the hosted consent flow",
          "id": "fb561d7a-f35f-5a85-b32b-19d0c47454b1",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/invitations",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "invitations"
              ]
            },
            "description": "Invite a consumer to the hosted consent flow\n\nFor direct and platform partners. Creates the invitation and, unless `sendEmail` is false, e-mails the consumer the link; `applyUrl` is returned once, on this response only.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"endUserId\": \"eu_0b44acbeefeaa7d7\",\n  \"permissiblePurpose\": \"employment\",\n  \"subject\": {\n    \"firstName\": \"Jordan\",\n    \"lastName\": \"Rivera\",\n    \"email\": \"jordan@example.test\"\n  },\n  \"searches\": [\n    {\n      \"type\": \"sex_offender\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List invitations",
          "id": "744c046f-6012-54be-9266-c7df60d2b261",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/invitations",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "invitations"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "endUserId",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "List invitations"
          },
          "response": []
        },
        {
          "name": "Retrieve an invitation",
          "id": "a3a6b7e8-d49c-5f01-b2e3-4ddf83b3066e",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/invitations/:invitation_id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "invitations",
                ":invitation_id"
              ],
              "variable": [
                {
                  "key": "invitation_id",
                  "value": "<invitation_id>",
                  "description": "Path parameter `invitation_id`."
                }
              ]
            },
            "description": "Retrieve an invitation"
          },
          "response": []
        },
        {
          "name": "Cancel a pending invitation",
          "id": "eeedbaa6-849a-5bb8-be72-1b352238041d",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/invitations/:invitation_id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "invitations",
                ":invitation_id"
              ],
              "variable": [
                {
                  "key": "invitation_id",
                  "value": "<invitation_id>",
                  "description": "Path parameter `invitation_id`."
                }
              ]
            },
            "description": "Cancel a pending invitation"
          },
          "response": []
        },
        {
          "name": "Resend an invitation with a fresh link",
          "id": "7f63565a-d454-5f4d-bb54-140d05e4b0dc",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/invitations/:invitation_id/resend",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "invitations",
                ":invitation_id",
                "resend"
              ],
              "variable": [
                {
                  "key": "invitation_id",
                  "value": "<invitation_id>",
                  "description": "Path parameter `invitation_id`."
                }
              ]
            },
            "description": "Resend an invitation with a fresh link"
          },
          "response": []
        },
        {
          "name": "What was e-mailed for an invitation",
          "id": "4d133e19-c542-5456-9b09-72715bf74058",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/invitations/:invitation_id/notices",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "invitations",
                ":invitation_id",
                "notices"
              ],
              "variable": [
                {
                  "key": "invitation_id",
                  "value": "<invitation_id>",
                  "description": "Path parameter `invitation_id`."
                }
              ]
            },
            "description": "What was e-mailed for an invitation"
          },
          "response": []
        },
        {
          "name": "The consent documents behind an order",
          "id": "15017f59-3cf2-570e-8944-bf8bc9b57ba5",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/consent-documents",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "consent-documents"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "The consent documents behind an order"
          },
          "response": []
        },
        {
          "name": "Attach your own signed consent to an order",
          "id": "ae0788f1-2c91-5852-8e48-951c2c59646a",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/consent-documents",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "consent-documents"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "Attach your own signed consent to an order",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"contentType\": \"application/pdf\",\n  \"data\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Download a consent document",
          "id": "5405d1c2-8b6b-53d4-a7b9-9d0b953c093f",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/consent-documents/:doc_id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "consent-documents",
                ":doc_id"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                },
                {
                  "key": "doc_id",
                  "value": "<doc_id>",
                  "description": "Path parameter `doc_id`."
                }
              ]
            },
            "description": "Download a consent document"
          },
          "response": []
        },
        {
          "name": "Your branding on consumer-facing surfaces",
          "id": "9a3b6d62-6075-56bc-8d5d-755f6cd2bf87",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/branding",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "branding"
              ]
            },
            "description": "Your branding on consumer-facing surfaces"
          },
          "response": []
        },
        {
          "name": "Set your branding",
          "id": "cf46dc7d-9900-5a29-9c67-0e3af7432889",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/branding",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "branding"
              ]
            },
            "description": "Set your branding",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"displayName\": \"Acme Staffing\",\n  \"primaryColor\": \"#0f766e\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Hosted consent: what the consumer sees",
          "id": "613972ba-ee1c-56ea-9605-073c9b9007d7",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/apply/:token",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "apply",
                ":token"
              ],
              "variable": [
                {
                  "key": "token",
                  "value": "<token>",
                  "description": "Path parameter `token`."
                }
              ]
            },
            "description": "Hosted consent: what the consumer sees\n\nPublic, by the link token; rate-limited. The forms to read and acknowledge, who is asking, who prepares the report, and the prefilled name. Never an order id or an access code."
          },
          "response": []
        },
        {
          "name": "Hosted consent: sign and authorize",
          "id": "f8ebad03-a425-56c2-858c-2eecf7adbc02",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/apply/:token/complete",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "apply",
                ":token",
                "complete"
              ],
              "variable": [
                {
                  "key": "token",
                  "value": "<token>",
                  "description": "Path parameter `token`."
                }
              ]
            },
            "description": "Hosted consent: sign and authorize",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"acknowledgements\": {},\n  \"signerName\": \"string\",\n  \"subject\": {\n    \"firstName\": \"string\",\n    \"lastName\": \"string\",\n    \"dob\": \"1988-04-12\",\n    \"addresses\": [\n      {\n        \"state\": \"string\"\n      }\n    ]\n  },\n  \"contact\": {\n    \"email\": \"string\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Hosted consent: decline",
          "id": "7f15fd1f-49f6-57cc-aa7a-385e607aaf45",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/apply/:token/decline",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "apply",
                ":token",
                "decline"
              ],
              "variable": [
                {
                  "key": "token",
                  "value": "<token>",
                  "description": "Path parameter `token`."
                }
              ]
            },
            "description": "Hosted consent: decline",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "What a decision could rest on",
          "id": "96529613-d2e1-559b-a38c-28a8548d2d1b",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/adverse-items",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "adverse-items"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "What a decision could rest on"
          },
          "response": []
        },
        {
          "name": "Start adverse action",
          "id": "6761c64e-6feb-5556-a6fe-f6ffdb292657",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/adverse-actions",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "adverse-actions"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "Start adverse action\n\nSends the pre-adverse notice to the consumer now and schedules the post-adverse notice after the waiting period: the later of your `waitingDays` and the use location's rule. For direct and platform partners.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"adverseItemIds\": [\n    \"string\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Adverse actions on an order",
          "id": "2173834b-47d4-5f71-8628-8467a8345c0c",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/adverse-actions",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "adverse-actions"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "Adverse actions on an order"
          },
          "response": []
        },
        {
          "name": "List adverse actions",
          "id": "40cc5f3a-3c77-57a8-a64a-1221a71633f4",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/adverse-actions",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "adverse-actions"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "List adverse actions"
          },
          "response": []
        },
        {
          "name": "Retrieve an adverse action",
          "id": "a1405b90-db04-59c6-80a2-6fb372e70c8c",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/adverse-actions/:aa_id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "adverse-actions",
                ":aa_id"
              ],
              "variable": [
                {
                  "key": "aa_id",
                  "value": "<aa_id>",
                  "description": "Path parameter `aa_id`."
                }
              ]
            },
            "description": "Retrieve an adverse action"
          },
          "response": []
        },
        {
          "name": "Pause the clock",
          "id": "fe55f47a-8865-5688-a612-1f8a8e8ba646",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/adverse-actions/:aa_id/pause",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "adverse-actions",
                ":aa_id",
                "pause"
              ],
              "variable": [
                {
                  "key": "aa_id",
                  "value": "<aa_id>",
                  "description": "Path parameter `aa_id`."
                }
              ]
            },
            "description": "Pause the clock"
          },
          "response": []
        },
        {
          "name": "Resume the clock",
          "id": "484beff3-b5c8-561f-9480-1aa9da44a29e",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/adverse-actions/:aa_id/resume",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "adverse-actions",
                ":aa_id",
                "resume"
              ],
              "variable": [
                {
                  "key": "aa_id",
                  "value": "<aa_id>",
                  "description": "Path parameter `aa_id`."
                }
              ]
            },
            "description": "Resume the clock"
          },
          "response": []
        },
        {
          "name": "Cancel adverse action",
          "id": "2422ef0b-a5be-50b5-8acb-628b0d187dc7",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/adverse-actions/:aa_id/cancel",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "adverse-actions",
                ":aa_id",
                "cancel"
              ],
              "variable": [
                {
                  "key": "aa_id",
                  "value": "<aa_id>",
                  "description": "Path parameter `aa_id`."
                }
              ]
            },
            "description": "Cancel adverse action",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"client_cancelled\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "The notices sent for an adverse action",
          "id": "7c105028-c45a-590b-8e76-202425dc38f1",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/adverse-actions/:aa_id/notices",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "adverse-actions",
                ":aa_id",
                "notices"
              ],
              "variable": [
                {
                  "key": "aa_id",
                  "value": "<aa_id>",
                  "description": "Path parameter `aa_id`."
                }
              ]
            },
            "description": "The notices sent for an adverse action"
          },
          "response": []
        },
        {
          "name": "The adverse-action rules by use location",
          "id": "ff87c96f-cac5-52f4-a7ee-6494fb7445d1",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/adverse-rules",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "adverse-rules"
              ]
            },
            "description": "The adverse-action rules by use location"
          },
          "response": []
        },
        {
          "name": "Record your decision",
          "id": "292a2ef0-5e16-5b58-a600-1463e69580c6",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/adjudication",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "adjudication"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "Record your decision",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"decision\": \"engaged\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Where the consumer's notices go",
          "id": "d3600be7-f608-540f-ad18-4a22e31dc209",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/consumer",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "consumer"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "Where the consumer's notices go",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Every revision of an order's report",
          "id": "806e002a-8b62-5c6a-b26e-82a2465bbab6",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/revisions",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "revisions"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "Every revision of an order's report"
          },
          "response": []
        },
        {
          "name": "Every consumer e-mail for an order",
          "id": "95a3eff9-db1a-5c3e-af31-686987f7540b",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/orders/:order_id/notices",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "orders",
                ":order_id",
                "notices"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "<order_id>",
                  "description": "Path parameter `order_id`."
                }
              ]
            },
            "description": "Every consumer e-mail for an order"
          },
          "response": []
        },
        {
          "name": "What the partner application asks for",
          "id": "5ed0a351-17d0-5216-8ffe-951a081bafb9",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/application/form",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "application",
                "form"
              ]
            },
            "description": "What the partner application asks for"
          },
          "response": []
        },
        {
          "name": "Apply for FCRA Partner Access",
          "id": "6f59b032-e4a0-5bce-a443-20300f1dc959",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/application",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "application"
              ]
            },
            "description": "Apply for FCRA Partner Access\n\nAny account may apply. Every certification must be made and the application signed. Our team reviews it; approval enables the account with the purposes and the mode requested.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"kind\": \"direct\",\n  \"company\": {\n    \"legalName\": \"Applicant Co LLC\",\n    \"ein\": \"12-3456789\",\n    \"stateOfIncorporation\": \"TX\",\n    \"incorporationType\": \"llc\",\n    \"address\": {}\n  },\n  \"compliance\": {\n    \"contactName\": \"string\",\n    \"contactEmail\": \"string\"\n  },\n  \"purposes\": [\n    \"employment\"\n  ],\n  \"certifications\": {},\n  \"signerName\": \"string\",\n  \"signerTitle\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Your latest application",
          "id": "c20ae13c-7011-57af-97bf-6df6be3c9844",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/application",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "application"
              ]
            },
            "description": "Your latest application"
          },
          "response": []
        },
        {
          "name": "Enroll a subject in a continuous check",
          "id": "efadd806-e80b-5965-bf5f-33048caa606f",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/monitors",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "monitors"
              ]
            },
            "description": "Enroll a subject in a continuous check\n\nTakes a baseline now (no live work) and re-evaluates on the interval. A new reportable candidate places an order with `source: \"continuous\"`, which runs the full controls and live work. Requires an evergreen authorization.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"endUserId\": \"string\",\n  \"permissiblePurpose\": \"employment\",\n  \"consent\": {\n    \"obtainedAt\": \"2026-10-28T12:00:00Z\",\n    \"method\": \"esign\",\n    \"evergreen\": true\n  },\n  \"subject\": {\n    \"firstName\": \"Jordan\",\n    \"lastName\": \"Rivera\",\n    \"dob\": \"1988-04-12\"\n  },\n  \"searches\": [\n    {\n      \"type\": \"sex_offender\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List continuous checks",
          "id": "91c4a052-bdbe-59b9-92f9-ca18f2d8e35e",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/monitors",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "monitors"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "endUserId",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "List continuous checks"
          },
          "response": []
        },
        {
          "name": "Retrieve a continuous check",
          "id": "ab87aa3d-2382-5bb6-a18c-22a6e12089e3",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/monitors/:monitor_id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "monitors",
                ":monitor_id"
              ],
              "variable": [
                {
                  "key": "monitor_id",
                  "value": "<monitor_id>",
                  "description": "Path parameter `monitor_id`."
                }
              ]
            },
            "description": "Retrieve a continuous check"
          },
          "response": []
        },
        {
          "name": "Unenroll",
          "id": "19c0bf05-119a-5875-b907-07180fe57b96",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/monitors/:monitor_id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "monitors",
                ":monitor_id"
              ],
              "variable": [
                {
                  "key": "monitor_id",
                  "value": "<monitor_id>",
                  "description": "Path parameter `monitor_id`."
                }
              ]
            },
            "description": "Unenroll"
          },
          "response": []
        },
        {
          "name": "Evaluate now",
          "id": "4fb1f166-5ec2-5988-8ec6-65ec64b86e48",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/monitors/:monitor_id/evaluate",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "monitors",
                ":monitor_id",
                "evaluate"
              ],
              "variable": [
                {
                  "key": "monitor_id",
                  "value": "<monitor_id>",
                  "description": "Path parameter `monitor_id`."
                }
              ]
            },
            "description": "Evaluate now"
          },
          "response": []
        },
        {
          "name": "Your FCRA webhook endpoint",
          "id": "c3fc6292-c868-5517-9046-ea7c895c93e0",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/webhook-endpoint",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "webhook-endpoint"
              ]
            },
            "description": "Your FCRA webhook endpoint"
          },
          "response": []
        },
        {
          "name": "Set your webhook URL; get its signing secret",
          "id": "715f916b-24bc-5796-98be-ec67a852f340",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/webhook-endpoint",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "webhook-endpoint"
              ]
            },
            "description": "Set your webhook URL; get its signing secret\n\nThe response carries `secret` when the endpoint is created and when `rotateSecret` is true — and at no other time. Store it then.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://hooks.example.com/fcra\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Remove your webhook endpoint",
          "id": "5e27c2e7-6093-5bff-a546-d1e40e38e5b4",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/webhook-endpoint",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "webhook-endpoint"
              ]
            },
            "description": "Remove your webhook endpoint"
          },
          "response": []
        },
        {
          "name": "Every FCRA event for your account, oldest first",
          "id": "9de213b3-a57f-536d-8b3f-0306d9e1856d",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/events",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "events"
              ],
              "query": [
                {
                  "key": "after",
                  "value": "",
                  "description": "An event `id`; only events after it are returned.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "Events per page, 1 to 500.",
                  "disabled": true
                }
              ]
            },
            "description": "Every FCRA event for your account, oldest first"
          },
          "response": []
        },
        {
          "name": "Deliver one event to your webhook again",
          "id": "44413078-daa7-53bf-917d-18f62192bf73",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{api_key}}",
                "description": "Your os_test_… (sandbox) or os_live_… (production) key."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/fcra/events/:event_id/resend",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "fcra",
                "events",
                ":event_id",
                "resend"
              ],
              "variable": [
                {
                  "key": "event_id",
                  "value": "<event_id>",
                  "description": "Path parameter `event_id`."
                }
              ]
            },
            "description": "Deliver one event to your webhook again"
          },
          "response": []
        }
      ]
    },
    {
      "name": "FCRA consumer portal",
      "description": "What a consumer sees and can dispute, through a short-lived portal session.",
      "item": [
        {
          "name": "Open a 30-minute consumer portal session",
          "id": "0a224b60-c455-5da1-bfe6-fb51d6a7e0d6",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/consumer/portal/session",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "consumer",
                "portal",
                "session"
              ]
            },
            "description": "Open a 30-minute consumer portal session\n\nThe access code from the order, the consumer's last name and full date of birth. Any mismatch is the same 401 `not_matched`; five failures in an hour for one code or from one connection lock further attempts for the hour (429 `locked`).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accessCode\": \"K7QF-2MXP-9RDA\",\n  \"lastName\": \"Rivera\",\n  \"dob\": \"1988-04-12\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "What was furnished about the consumer in this order",
          "id": "74efda1d-cbfe-5de3-b93d-a1b716c8de06",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{consumer_portal_token}}",
                "description": "The 30-minute consumer portal session from POST /v1/consumer/portal/session."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/consumer/portal/report",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "consumer",
                "portal",
                "report"
              ]
            },
            "description": "What was furnished about the consumer in this order"
          },
          "response": []
        },
        {
          "name": "Dispute records from the portal",
          "id": "1f109138-638f-5015-96a1-70d543a800fa",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{consumer_portal_token}}",
                "description": "The 30-minute consumer portal session from POST /v1/consumer/portal/session."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/consumer/portal/disputes",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "consumer",
                "portal",
                "disputes"
              ]
            },
            "description": "Dispute records from the portal",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"recordIds\": [\n    \"rec_ab12cd34ef56gh78ij90\"\n  ],\n  \"reason\": \"not_me\",\n  \"statement\": \"This record belongs to a different person with the same name; I have never lived in Texas.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "The consumer's disputes on this order",
          "id": "54a09f6f-f9a7-5fa6-a913-7ae5ba43198a",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{consumer_portal_token}}",
                "description": "The 30-minute consumer portal session from POST /v1/consumer/portal/session."
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/consumer/portal/disputes",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "consumer",
                "portal",
                "disputes"
              ]
            },
            "description": "The consumer's disputes on this order"
          },
          "response": []
        },
        {
          "name": "A consumer's file request or dispute, without an access code",
          "id": "84bfde06-d880-560a-b157-78546521acf4",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/consumer/requests",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "consumer",
                "requests"
              ]
            },
            "description": "A consumer's file request or dispute, without an access code\n\nPublic. Name, email, request type and a message; nothing else is accepted. A message containing a Social Security number is refused. Identity is verified separately before anything is disclosed.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"kind\": \"file\",\n  \"name\": \"Jordan Rivera\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"message\": \"Please send me a copy of the report prepared about me in October 2026.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Account & support",
      "description": "Endpoints that need no API key, and the support inbox.",
      "item": [
        {
          "name": "Send a message to the Offendersearch team",
          "id": "137584a4-7dad-5634-adfe-1532c4d91803",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/support",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "support"
              ]
            },
            "description": "Send a message to the Offendersearch team\n\nSends a message to our support team. **No API key required** — this is the endpoint behind the contact form on offendersearch.app, and it is open because the people who need it most are the ones who do not have a key yet.\n\nA `200` means the message is **recorded**: it is stored against the `submissionId` in the response and can be looked up by that id if you ever need to refer to it. It does not report that an email has arrived anywhere, because that is a separate step we do not make you wait for.\n\nReplies come from the address in `supportEmail`, normally within one business day. You can also write to that address directly; both routes reach the same inbox.\n\nThe endpoint accepts `application/json` or `application/x-www-form-urlencoded`, so an ordinary HTML form can post to it without any JavaScript.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Dana Okafor\",\n  \"email\": \"dana@example.org\",\n  \"message\": \"We screen residents at 12 facilities and want to pilot the API. Which plan fits that volume?\",\n  \"subject\": \"Pilot for 12 facilities\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    }
  ],
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "X-API-Key",
        "type": "string"
      },
      {
        "key": "value",
        "value": "{{api_key}}",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://sandbox.offendersearch.app",
      "description": "Sandbox host. Production is https://api.offendersearch.app."
    },
    {
      "key": "api_key",
      "value": "",
      "description": "os_test_… for the sandbox, os_live_… for production."
    }
  ]
}
