Developers
CarrierDaily API and webhooks
Included on every plan. Pull new applicants, insurance cancellations, renewals and FMCSA changes into your CRM, dialer or spreadsheet, and write call outcomes back.
Authentication
Create a key in your workspace under Settings, team & API, then send it as a bearer token. Keys are per account; revoke them any time. Limit: 120 requests per minute.
curl -H "Authorization: Bearer cdk_your_key" \ "https://carrierdaily.com/api/v1/leads?days=1&state=TX&ins=none"
Endpoints
| Method | Path | What it returns |
|---|---|---|
GET | /api/v1/me | Your account, plan, territory and whether contact fields are on. |
GET | /api/v1/leads | New applicants and grants. Params: days (1-60), state (TX,OK), event (published|granted), ins (none|yes), q, status, fleet_min, fleet_max, limit (max 5000), offset. |
GET | /api/v1/events | FMCSA events. Params: type (insurance_cancelled, insurance_filed, revoked, reinstated, boc3_filed, suspended_no_insurance, suspended_no_boc3, voluntary_suspension, application_withdrawn, insurer_replaced, cargo_cancelled, bond_cancelled; comma-separated), state, from, to (YYYY-MM-DD), q, limit, offset. |
GET | /api/v1/insights | Market view for a territory: renewals in 0-30/31-60/61-90 days, top insurers renewing in 90 days, insurers losing and writing carriers (30 days), suspensions for lapsed insurance. Params: state. |
GET | /api/v1/renewals | Active carriers whose primary liability policy renews soon. Params: days (1-120), state, q, limit, offset. |
GET | /api/v1/carriers?q= | Search carriers with operating authority by name, USDOT or MC. |
GET | /api/v1/carriers/:usdot | One carrier: company, insurer, renewal date, policies, FMCSA events, your CRM status. |
GET | /api/v1/crm | Your pipeline. Param: status. |
POST | /api/v1/crm/:usdot | Update a lead: JSON {"status": "quoted", "follow_up": "2026-11-02", "note": "..."}. Statuses: new, contacted, quoted, won, lost, not_a_fit, do_not_contact. |
Responses are JSON with total, offset, limit and rows. Contact columns (phone, email, officer names) appear only after the account turns on contact fields; the same suppression and privacy rules as the daily CSV apply.
Webhooks
Add an HTTPS URL in Settings. Each business day, after the new data lands, we POST that day's leads and FMCSA events for your territory as JSON (X-CarrierDaily-Event: daily). Every request is signed: X-CarrierDaily-Signature: t=<unix time>,v1=<hex HMAC-SHA256 of t + "." + body> with your signing secret.
import hmac, hashlib
def verify(secret, header, body):
t, v1 = (p.split('=', 1)[1] for p in header.split(','))
want = hmac.new(secret.encode(), t.encode() + b'.' + body, hashlib.sha256).hexdigest()
return hmac.compare_digest(want, v1)Exports
Every workspace view exports to CSV or Excel with the filters you've applied.