E-Verify APIe-verify.gov ↗
Search USCIS E-Verify enrolled employers by name, state, or industry. Access enrollment status, hiring site data, and full state-level employer lists via 2 endpoints.
What is the E-Verify API?
The E-Verify API provides access to the USCIS E-Verify public employer enrollment database through 2 endpoints. Use search_employers to query enrolled companies by partial name, US state, or NAICS industry category, or use list_employers_by_state to retrieve a deduplicated list of every enrolled employer with hiring sites in a given state. Each employer record includes enrollment details sufficient to confirm program participation.
curl -X GET 'https://api.parse.bot/scraper/8d205983-5687-45bf-b9f4-1b2c67b67fc3/search_employers?name=Microsoft&state=WA&naics_code=Information' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace e-verify-gov-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: E-Verify employer search SDK — bounded, re-runnable."""
from parse_apis.E_Verify_Employer_Search_API import EVerify, SearchInputRequired
client = EVerify()
# Search employers by name with state filter.
for employer in client.employers.search(name="Microsoft", state="WA", limit=3):
print(employer.employer_name, employer.account_status, employer.hiring_site_locations)
# List all employers in a state (alphabet sweep), filtered by industry.
for employer in client.employers.list_by_state(state="WY", naics_code="Construction", limit=3):
print(employer.employer_name, employer.workforce_size, employer.enrollment_date)
# Drill down to a single result.
item = client.employers.search(name="Apple", limit=1).first()
if item:
print(item.employer_name, item.doing_business_as, item.opted_into_everify_plus)
# Typed error handling.
try:
client.employers.search(name="Google", limit=1).first()
except SearchInputRequired as e:
print("input error:", e)
print("exercised: employers.search, employers.list_by_state")
Search for E-Verify enrolled employers by company name, optionally filtered by state or industry. Requires a company name pattern; the dashboard matches partial names. Results are returned in a single page (no server-side pagination). Each employer record includes enrollment status, dates, workforce size, and hiring site locations.
| Param | Type | Description |
|---|---|---|
| namerequired | string | Company name pattern to search for. Matches partial names (e.g. 'Microsoft' matches 'Microsoft Corporation'). |
| state | string | 2-letter US state code to filter results by hiring site location (e.g. 'CA', 'TX'). |
| naics_code | string | Industry type name to filter results (e.g. 'Construction', 'Information'). |
{
"type": "object",
"fields": {
"employers": "array of employer records with enrollment details",
"total_results": "integer total count of matching employers"
},
"sample": {
"data": {
"employers": [
{
"employer_name": "Microsoft",
"account_status": "Open",
"workforce_size": "10,000 and over",
"date_terminated": "",
"enrollment_date": "2026-03-20",
"doing_business_as": "Microsoft Corporation",
"last_updated_date": "2026-03-20",
"hiring_site_locations": "WA",
"opted_into_everify_plus": "Yes"
}
],
"total_results": 2
},
"status": "success"
}
}About the E-Verify API
What the API Returns
Both endpoints return an employers array of employer records sourced from the official E-Verify employer search dashboard maintained by USCIS. Each record includes enrollment details such as employer name and enrollment status. The total_results integer field reflects either the count of matched records (for search_employers) or the deduplicated count of employers found across a full alphabet sweep (for list_employers_by_state).
search_employers Endpoint
The search_employers endpoint accepts a required name parameter that matches partial company names — querying 'Microsoft' will return records like 'Microsoft Corporation'. Two optional filters are available: state accepts a 2-letter US state code (e.g. 'CA', 'TX') to narrow results to employers with hiring sites in that state, and naics_code accepts an industry type name such as 'Construction' or 'Information'. Results are returned in a single page; there is no cursor or offset parameter for paginating through large result sets.
list_employers_by_state Endpoint
The list_employers_by_state endpoint accepts a required state parameter and an optional naics_code filter. It performs a full enumeration across the alphabet for the specified state, deduplicates results by employer name, and returns a single consolidated response. Because this endpoint fans out across many upstream queries, latency is significantly higher than search_employers. Use it when you need complete state-level enrollment coverage rather than a targeted name search.
Coverage and Scope
This API reflects the public E-Verify employer search tool. Coverage is limited to employers who have enrolled in the E-Verify program and are visible on the public-facing USCIS dashboard. Employers that have withdrawn or were never enrolled will not appear in results.
The E-Verify API is a managed, monitored endpoint for e-verify.gov — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when e-verify.gov changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official e-verify.gov API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Verify whether a specific employer is enrolled in E-Verify before accepting a job offer
- Build a compliance screening tool that checks vendor or partner enrollment status by company name
- Pull all E-Verify enrolled employers in a target state to support workforce research or reporting
- Filter enrolled employers by NAICS industry category to analyze E-Verify adoption in a specific sector
- Cross-reference a list of companies against E-Verify enrollment data for HR due diligence pipelines
- Aggregate employer enrollment counts by state to produce coverage dashboards or regulatory reports
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does E-Verify have an official developer API?+
What does the search_employers endpoint actually return for each employer?+
employers array includes enrollment details such as employer name and enrollment status. The state and naics_code parameters filter results to employers with matching hiring site location or industry classification. Results come back in a single page with a total_results count; there is no pagination parameter to step through large result sets.Why is list_employers_by_state slower than search_employers?+
list_employers_by_state endpoint performs a full alphabet sweep across the specified state, making 26 or more upstream calls, then deduplicates the combined results before returning. Expect higher latency compared to a targeted search_employers query. Use search_employers when you have a specific company name; use list_employers_by_state only when full state coverage is required.