Zapier integration
Verify contractor licenses in any Zap
Add a licensing check to any Zap: a new form submission, a CRM record, a spreadsheet row. Webhooks by Zapier calls our verify endpoint and returns license status, trade, and expiration across 28 states. You only pay for the steps we match.
License verification, no code
A lead fills out your form, a deal moves to a new stage, a row lands in a sheet. Add one step and you know whether the contractor is licensed and active before the Zap moves on.
Webhooks by Zapier calls our verify endpoint and returns the license status, number, trade, expiration, and any contact on file. Add a Filter on match_confidence to route the confident matches one way and the rest another.
1. Get an API key
Emailed in under a minute. The same key works on the REST API and the MCP server. No card, no call.
2. Add a Webhooks by Zapier step
Add an action step: Webhooks by Zapier › POST, pointed at the verify endpoint.
URL
https://contractorroster.com/api/v1/verify
Settings
Payload Type: json
Data: name → {{ company name from your trigger }}
state → {{ state }}
city → {{ city }}
Headers: X-API-Key → cr_live_YOUR_KEY
Content-Type → application/jsonPass name for a fuzzy match, or license_no for an exact one. The response fields are available to every later step.
Two settings to get right
- Set Payload Type to
json, not form. - Put the key in the Headers field as
X-API-Key, not in the data.
3. What comes back
Each call returns the matched license plus a confidence score. Use the fields you need from the response: record.license_no, record.status, match_confidence, and the rest.
{
"matched": true,
"match_confidence": 1,
"match_method": "exact",
"record": {
"license_no": "1000002",
"business_name": "RANDALL MARK DOCKERY",
"status": "CLEAR",
"trade": "C57",
"issue_date": "2015-01-10",
"expiration_date": "2027-01-31",
"city": "LODI",
"zip": "95242",
"phone": "(925) 383-0487",
"email": null,
"website": null
}
}No confident match returns { "matched": false } with any near candidates, and never charges you. Gate your flow on match_confidence to set your own bar.
Coverage & pricing
10¢ per match, from a prepaid balance. A miss costs nothing, so you only pay for hits. Top up from $50 via Stripe.
Coverage spans 28 stateswith 17 trades, sourced directly from each state’s licensing board. A contractor in a state we don’t cover yet returns matched: false. New states are added regularly.
Prefer to pull whole lists instead of verifying one at a time? The same key works on the MCP server and the HTTP API.