How an AI agent runs a sex offender registry check
- 01
The model asks
From the conversation, the model decides to call the tool with a name and whatever else it knows: date of birth, state, ZIP.
- 02
Your handler calls the API
It sends POST /v1/search with your API key in the X-API-Key header. The key stays on your server, never in the prompt.
- 03
Records come back
Scored, de-duplicated records, each with a match state and a link to the official registry entry.
- 04
The model answers
It states what matched and how strongly, cites the official record, and says which registries were searched.
What the model gets back from a registry search
Pass these fields to the model, not just the records. They are what lets it answer honestly.
| Field | What it tells the agent |
|---|---|
status | Whether the search completed, or returned partial results within a deadline you set |
counts.sourcesIncomplete | How many registries did not answer in full. Above zero, “no match” means “not determined” |
sourceStatus | Each registry searched and its status |
matchState | dob_match, year_match, age_match or no_dob_age_year: what lined up |
matchConfidence | A score the agent can threshold |
source.recordUrl | The official registry record to cite |
Guardrails for AI agents that handle registry data
- Never conclude from a name alone. Tell the model that a no_dob_age_year match is a lead to verify, not an answer.
- Treat partial as unknown. If any registry did not answer, the agent should say so rather than report a clean result.
- Always cite the official record. Give the user the registry link so a person confirms before acting.
- Keep people in decisions. An agent can surface a record; a person decides what to do with it.
- No hiring or tenant decisions. Standard results are not a consumer report. Those decisions run through FCRA Partner Access.
- Send only what is needed. Name, date of birth and location are enough. Do not pass other personal details to the tool.
Where AI teams use registry search
Trust and safety review
A moderation assistant checks a flagged account holder and gives the reviewer a cited answer to confirm.
Marketplace onboarding
An onboarding agent screens a new provider before they can accept bookings, with weak matches routed to a person.
Volunteer and event coordination
An assistant checks a sign-up sheet in one batch call and summarises the rows that need a second look.
Neighborhood questions
A chatbot answers “who is registered near this address?” from a radius search, with official links.
Handling personal data in AI registry checks
A registry search sends a name, and often a date of birth and a location, to the API. Keep that flow narrow: let the tool handler build the request from structured fields rather than passing the conversation, keep your API key on the server, and avoid writing full results into long-lived model memory or logs you do not need. If the people being searched are patients or residents, the search involves protected health information and a Business Associate Agreement is signed first; see HIPAA and BAA.
Results describe real people. An agent should present them neutrally, with the match label and the official link, and leave conclusions to the person it is helping.
Batch, monitoring and webhooks for automated workflows
For lists, give the agent a batch tool backed by POST /v1/batch, which takes up to 1,000 people per request and returns one result per row. For long-running checks, an async search posts the finished result to your callback URL once, on a basis. For ongoing watch, create a monitor: a person for $3 a month or an address for $10, with a signed webhook when a matching record appears or changes. See async and webhooks and monitoring.
Criminal records are available on the same key through the criminal records API, so one agent can check both. A booking is not a conviction, and the agent should say so.
A background check API for AI agents
The same tool pattern works for criminal records, on the same key.
An agent that can check a registry can check criminal records the same way: define a second tool whose handler calls POST /v1/criminal/search. It returns jail, prison, court and warrant records, each labelled by type, so the model can say “a 2019 court case with a disposition” rather than “a criminal record”. The combined product is described on the background check API page.
Three rules keep an agent honest. Give the model the matchState and tell it that only a full date-of-birth match is an identification. Give it sourceStatus so it never reports a clear result when a source did not answer. And keep a person in the loop for anything short of a strong match.
An agent must not make a hiring or tenant decision from these results. The standard API is not a consumer report; those decisions run as FCRA workflows through FCRA Partner Access. For a ready-made tool server, see the MCP server for offender search; for code, the background check API in Python tutorial.
AI integration FAQ: LLM tools and registry data
How do I give an LLM access to registry data?
Can I build a safety-alert workflow?
Which models and frameworks does this work with?
Can an agent check criminal records too?
How is an AI tool call billed?
Does the model see reliable, verifiable data?
The OffenderSearch APIs. One account, one key, one bill.
Sex offender registry
Sex offender APISex offender databaseRegistered offender databaseBulk sex offender searchCriminal records
Criminal records APIInmate search APIHealthcare exclusion check APIBackground check APIEmployment screening APIBulk criminal record searchStatewide criminal searchFederal criminal recordsGive your agent a registry search tool
25 free searches, no card. Call the REST API from your own tool today.