tradesapi
Start free

Home › Guides › Verify via API

Contractor license verification · API how-to

How to verify a contractor license via API

Send a state and a license number to one endpoint and get back a normalized result: valid or not, licensee name, expiration, status, and any disciplinary actions. The same call covers all 51 state jurisdictions (50 states plus DC) and 16 city boards, so you never write per-state code.

The short version

  1. Get an API key. Sign up and create a key from the dashboard. Every new key includes 50 free verifications, so you can test the whole flow before paying.
  2. Send a verify request. Call GET /verify with the state and the license number (and an optional trade). Put your key in the X-API-Key header. The same request works for every state, so there is no per-state integration.
  3. Read the normalized result. The response has the same shape everywhere: valid, name, license_number, status, expiration, and disciplinary_actions. Wire that one schema into your app once and it covers every jurisdiction.

One request, every state

Put your key in the X-API-Key header and call /verify:

GET /verify?state=CA&license=SAMPLE-12345&trade=general
{
  "valid": true,
  "name": "SAMPLE CONTRACTING LLC",
  "license_number": "SAMPLE-12345",
  "trade": "general",
  "expiration": "05/12/2027",
  "status": "Active",
  "state": "CA",
  "disciplinary_actions": [],
  "source_url": "https://www.cslb.ca.gov/onlineservices/checklicenseII/checklicense.aspx",
  "cached": false,
  "checked_at": "2026-09-25T15:00:00Z"
}

Example California response showing the normalized schema. Try it against deterministic fixtures in the sandbox with no key and no credit cost, then read the full contract in the API docs.

When you only have a name, not a number

Call /search with the state and a business or person name to find matching licenses and their numbers, then pass a number to /verify. Search costs 2 credits; verify costs 1 credit per successful lookup.

GET /search?state=CA&name=SAMPLE+CONTRACTING

Verify in bulk

Send up to 200 licenses in one POST /batch call. They run in parallel and return in a single response, billed one credit per successful verification.

For AI agents (MCP)

Agents can call verification directly over the Model Context Protocol. Point any MCP client at the hosted endpoint https://www.tradesapi.com/mcp and complete the browser sign-in (no API key stored in config), or run the npm client npx contractor-license-mcp-server locally. Both work with Claude, Cursor, and any MCP-speaking assistant. Machine-readable facts live at /facts.json and /llms.txt.

Verify your first license in minutes

Every new API key includes 50 free verifications across all 50 states plus DC, with hosted MCP access for AI agents. No credit card to start.

Frequently asked questions

How do I verify a contractor license through an API?
Send a GET request to /verify with the state and license number and read back a normalized result: valid or not, licensee name, expiration, current status, and any disciplinary actions. One request works the same way across all 51 state jurisdictions plus 16 city boards.
Do I need the license number, or can I search by name?
Both work. If you have the number, call /verify. If you only have a business or person name, call /search with the state and name to get matching licenses and their numbers, then pass a number to /verify.
Which states does the API cover?
All 50 states and the District of Columbia, plus 16 municipal boards for city-issued trades. The same request shape works everywhere.
How much does it cost?
Every new API key includes 50 free verifications. Paid usage starts at $99 for 400 verifications. You are billed one credit per successful verification and nothing for a failed lookup.
Can an AI agent call it directly?
Yes. Point any MCP client at the hosted endpoint https://www.tradesapi.com/mcp and sign in through the browser, or run the npm client contractor-license-mcp-server locally. Both work with Claude, Cursor, and any MCP-speaking assistant.