Contractor License Verify avatar

Contractor License Verify

Pricing

from $30.00 / 1,000 license verifications

Go to Apify Store
Contractor License Verify

Contractor License Verify

The only MCP-native, agent-payable contractor license check that returns OFFICIAL bond + insurance, not just status. WA live (official L&I) · CA beta (CSLB). Pay-per-success $0.03, no charge on a miss. Normalized JSON for vetting, booking & onboarding agents.

Pricing

from $30.00 / 1,000 license verifications

Rating

0.0

(0)

Developer

fidele maniraruta

fidele maniraruta

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 days ago

Last modified

Share

license-verify-mcp

Verify contractor license status mid-task. Returns normalized JSON with active|expired|suspended|revoked status, bond details, and insurance. Two delivery modes: MCP server (stdio, for Claude/agent use) and Apify Actor (pay-per-event, agentic-payments eligible).


Jurisdictions

StateStatusSourceBond + Insurance
WA✅ LiveWA L&I open data (data.wa.gov)✅ Real data (bzff-4fmt + ciwg-agsx datasets)
CA⚠️ BetaCSLB HTML (cslb.ca.gov)✅ Parsed when CSLB is up

Washington is the reliable, production-ready jurisdiction. Official WA L&I open data is served via Socrata JSON — no scraping, no rate limits, bond and insurance data included from dedicated datasets.

California is beta. CSLB does not publish an open API; the provider fetches the HTML detail page directly. CSLB rate-limits or 503s automated requests intermittently. When unavailable, verify_license returns a clean SESSION_ERRORyou are never charged on source failures. Do not rely on CA for production workflows until a stable server-side CSLB run is confirmed.


Apify Actor

Agentic-payments eligible — pay-per-event pricing + limited permissions + no Standby mode.

Pricing

EventPrice
license-verification$0.03 per lookup

Charged only on found: true. Validation errors, not-found results, and source failures are not charged.

Input

{
"jurisdiction": "WA",
"license_number": "ECOSTSC758NN"
}
FieldTypeRequiredNotes
jurisdiction"WA" | "CA"WA = live; CA = beta
license_numberstringone of ↓WA: alphanumeric. CA: numeric, ≤8 digits
business_namestringone of ↑WA only. Partial match, may return matches[]

Output (default dataset)

{
"found": true,
"jurisdiction": "WA",
"query": { "license_number": "ECOSTSC758NN" },
"result": {
"license_number": "ECOSTSC758NN",
"business_name": "!ECO STAR C G CONSTRUCTION LLC",
"status": "active",
"license_type": "CONSTRUCTION CONTRACTOR",
"bonded": {
"is_bonded": true,
"details": "Surety: NORTH RIVER INSURANCE COMPANY THE; Bond #: 46CF842686; Amount: $30,000; Effective: 2025-08-05; Expires: Until Canceled"
},
"insured": {
"has_insurance": true,
"details": "Carrier: State National Ins Co Inc; Policy: NXT9PTHTLT-01-GL; Coverage: $1,000,000; Agency: Next Insurance Inc; Effective: 2026-06-12; Expires: 2027-06-12"
},
"effective_date": "2025-08-15",
"expiration_date": "2027-08-15"
},
"source_url": "https://data.wa.gov/resource/m8qx-ubtq",
"retrieved_at": "2026-06-26T01:34:37.598Z",
"raw": { ... }
}

status is always one of: active | expired | suspended | revoked | unknown.

On failure: { "found": false, "error": "SESSION_ERROR|NETWORK_ERROR|...", "message": "..." } — never a crash, never a charge.

Local test

npm install
npm run build
echo '{"jurisdiction":"WA","license_number":"ECOSTSC758NN"}' \
> storage/key_value_stores/default/INPUT.json
npx apify run

MCP Server (stdio)

For use with Claude Desktop, Smithery, or any MCP-compatible agent.

Tools

verify_license — verify a contractor's license status.

  • jurisdiction (required): "WA" or "CA"
  • license_number and/or business_name (at least one required)

list_supported_jurisdictions — list all states with their status and data source.

Config (Claude Desktop)

{
"mcpServers": {
"license-verify": {
"command": "node",
"args": ["/absolute/path/to/license-verify-mcp/dist/index.js"]
}
}
}

Run

npm install && npm run build
npm run start:mcp # stdio MCP server
npm run smoke # hit real WA + CA endpoints, must be 8/8 PASS

Adding a State

  1. Create src/providers/<CODE>.ts implementing the Provider interface ({ info, verify() })
  2. Register it in src/providers/index.ts

No other changes needed in server or Actor.

License

MIT