Offendersearch API · AsyncAPI Specification
Offendersearch Api Webhooks
Version
View Spec
View on GitHub
Background ChecksIdentity VerificationPublic RecordsCriminal RecordsComplianceTrust and SafetyHR TechRecruitingPropTechTenant Screeninghealthcare-screeningData APIMCP Serveragent-nativeAsyncAPIEvents
AsyncAPI Specification
generated: '2026-08-18'
method: searched
source: https://offendersearch.app/docs/async-and-webhooks.md
description: >-
Offendersearch publishes NO AsyncAPI document — /asyncapi.yaml and /asyncapi.json are not
served, the OpenAPI declares no webhooks{} block, and the RFC 9727 api-catalog names only the
OpenAPI under service-desc. It does document one real, signed webhook: supply a webhookUrl on
an asynchronous search and the completed SearchResponse is POSTed to it. That webhook catalog
is captured here verbatim from the provider's documentation. Nothing below is fabricated and
no AsyncAPI has been authored on the provider's behalf.
event_surface:
style: outbound HTTP webhook (callback URL supplied per request)
subscription_model: per-request — there is no webhook endpoint registry, no dashboard
subscription UI and no event-type selection. A webhookUrl on POST /v1/searches applies to
that one search.
asyncapi_published: false
probed:
- url: https://offendersearch.app/asyncapi.yaml
status: 404
- url: https://offendersearch.app/asyncapi.json
status: 404
webhooks:
- name: search.completed
event: search.completed
trigger: An asynchronous search submitted with a webhookUrl finishes.
method: POST
target: The webhookUrl supplied on POST /v1/searches
content_type: application/json
payload_schema: SearchResponse (openapi/offendersearch-api-openapi.yml#/components/schemas/SearchResponse)
payload_example: |
{
"event": "search.completed",
"searchId": "srch_9f2a7c",
"status": "complete",
"counts": { "records": 3, "sourcesQueried": 58,
"sourcesComplete": 58, "sourcesIncomplete": 0 },
"sourceStatus": [],
"records": []
}
source_operation: asyncSearch
security:
signature_header: X-Offendersearch-Signature
algorithm: HMAC-SHA256 over the RAW request body, using the account signing secret
verification_guidance: >-
Compute the HMAC over the raw bytes BEFORE JSON parsing and compare in constant time
(the provider's own example uses crypto.timingSafeEqual). Reject on mismatch with a 400.
secret_provisioning: >-
Referred to as "your signing secret"; where it is issued or rotated is not documented.
delivery:
guarantee: at-least-once
deduplicate_on: searchId
acknowledgement: Respond 2xx promptly.
retry: Non-2xx responses are retried with exponential backoff for several attempts.
retry_count: not published
ip_allowlist: not published
replay_ui: not published
alternative_collection:
polling:
operation: getSearch
path: GET /v1/searches/{searchId}
description: >-
Poll until status is complete (or error). records fills in as jurisdictions complete;
a few seconds between polls is described as typical.
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/offendersearch-api-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.