Skip to content

API & MCP

Verify professional and occupational licenses across every supported U.S. state — by license number, person name, or business — over a simple REST API or the Model Context Protocol (MCP).

Base URL & authentication

https://uslicensecheck.com/api/v1
  • • Public lookups (the website path) use POST /lookup/ with no key — rate limited per IP.
  • • Programmatic access uses POST /lookup/verify and requires an API key in the X-API-Key header.

POST /lookup/verify

One endpoint for number, name, and business searches. The key field is source_state:

  • • a 2-letter code (OH, CT, CO, DE, TX, IL) scopes the search to that state,
  • • "national" searches every supported state and returns a disambiguation list,
  • • omit it and the search defaults to Ohio.

Search a number nationwide:

curl -X POST https://uslicensecheck.com/api/v1/lookup/verify \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"license_number": "RS-0037427", "source_state": "national"}'

Search by name within one state:

curl -X POST https://uslicensecheck.com/api/v1/lookup/verify \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"last_name": "Smith", "first_name": "John", "source_state": "IL"}'

Search a business:

curl -X POST https://uslicensecheck.com/api/v1/lookup/verify \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"search_type": "business", "business_name": "CVS", "source_state": "OH"}'
FieldTypeNotes
source_statestringState code, "national", or omit for Ohio
license_numberstringExact number lookup
last_name / first_namestringName search (last name required)
business_namestringWith search_type: "business"
boardstringOptional profession/board filter
search_typestring"individual" (default) or "business"

GET /lookup/states

Supported states with live record counts.

curl https://uslicensecheck.com/api/v1/lookup/states

GET /lookup/state-boards?state=IL

The boards / professions available for a given state.

Response shape

A single match returns the full record (note source_state):

{
  "found": true,
  "full_name": "SHAHAN , BRIAN",
  "license_number": "RS-0037427",
  "board": "Real Estate",
  "license_type": "Salesperson",
  "status": "Active",
  "expiry_date": "2028-04-30",
  "days_until_expiry": 624,
  "city": "WILMINGTON", "state": "DE",
  "source_state": "DE",
  "extra_data": { "ZIP": "19808", "Issue Date": "2021-09-14" }
}

A national search that matches several states returns a list to disambiguate:

{
  "found": true,
  "multiple": [
    { "full_name": "...", "license_number": "13734",
      "board": "PE", "status": "Active",
      "city": "Colorado Springs", "state": "CO", "source_state": "CO" },
    { "full_name": "...", "license_number": "13734",
      "board": "CERTIFIED PUBLIC ACCOUNTANT", "status": "INACTIVE",
      "city": "BOSTON", "state": "MA", "source_state": "CT" }
  ]
}

MCP server

Connect an AI assistant (Claude and other MCP clients) directly to national license data. Streamable HTTP, no authentication required.

https://uslicensecheck.com/mcp

Paste the URL without quotes when adding it as a connector — a stray quote makes the client request /mcp%22 and fail.

Claude Desktop config:

{
  "mcpServers": {
    "uslicensecheck": {
      "url": "https://uslicensecheck.com/mcp"
    }
  }
}

Tools

  • • verify_license — by number; optional state (default OH, "national" for all).
  • • search_licenses_by_name — by person name; optional board and state.
  • • verify_business_license — by business name/number; optional state.
  • • list_states — supported states + live record counts.
  • • list_ohio_boards — Ohio boards and their license types.

Rate limits

  • • REST API: requests are rate limited per IP.
  • • MCP: requests are rate limited per IP.

Data is sourced from official state licensing agencies and refreshed on a daily schedule. Always confirm with the issuing board for legal or hiring decisions.