Developers

API & MCP reference

Base URL https://freight.dropwatchhq.com. Auth via x-api-key header or ?key=. No key = free tier (sample of the new-authority feed, limited results).

1 · new_authority the lead signal

Newly-authorized carriers, newest first. Filter by state, fleet size, has-email. Each row is a lead.

GET /v1/new_authority
  ?state=TX            # 2-letter state
  &hasEmail=true       # only carriers with an email on file
  &minPowerUnits=2     # fleet-size floor
  &since=2026-06-14    # only authorities on/after this date
  &limit=100

# response
{ "asOf":"2026-06-20","totalNewInWindow":2639,"count":100,
  "carriers":[ {"dot":"4321987","name":"MONTERO DELIVERY LLC","state":"NC",
     "city":"...","email":"...","phone":"...","powerUnits":4,"drivers":2,
     "addDate":"2026-06-20","mcNumber":"MC1234567"} ] }

2 · carrier_lookup

Full safety + contact profile for any USDOT number.

GET /v1/carrier?dot=80321

3 · search_carriers

GET /v1/search?state=CA&minPowerUnits=5&hasEmail=true&limit=200

4 · safety_screen underwriting

Risk verdict for a DOT: out-of-service rate, FMCSA rating, authority status, flags.

GET /v1/safety_screen?dot=80321

5 · switch_signal the edge

The real-time factor-switch feed RigDig's static buckets can't show. Leads with type=virgin (fresh authority, no factor lien yet — the populated everyday flow, live). type=terminated is the rare, highest-value secondary (UCC-3 termination just filed = factor-free switch lead) — surfaced the instant one fires; an empty list is honest, not a dead feed. Default (no type) returns primary (virgin) + secondary (terminated). UCC coverage marked honestly per state in uccCoverage.

GET /v1/switch-signal                 # leads with virgin (populated)
GET /v1/switch-signal?type=virgin&format=csv
GET /v1/switch-signal?type=terminated&state=TX  # rare secondary

# also
GET /v1/chameleon?minScore=70      # reincarnation flags (nationwide, no UCC)
GET /v1/weekly-digest              # the accruing moat: what changed this week
GET /v1/timeline?dot=80321         # per-carrier event timeline

6 · regrade the wow

Re-grade your lead list against the live record + switch-signal + chameleon layers. GET with no args = sample week.

POST /v1/regrade   {"carriers":["80321","MC1234567","4321987"]}
# -> per-carrier verdict: already-factored / authority-revoked /
#    insurance-lapsed / chameleon / virgin / switch-lead

7 · MCP (agent-callable)

Point any MCP client at https://freight.dropwatchhq.com/mcp (Streamable HTTP, JSON-RPC 2.0). Tools: new_authority_feed, carrier_lookup, search_carriers, safety_screen, switch_signal, chameleon_check, regrade_list.

curl -s https://freight.dropwatchhq.com/mcp -H "content-type: application/json" \
  -H "x-api-key: fik_live_xxx" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"new_authority_feed","arguments":{"state":"TX","hasEmail":true}}}'

6 · Saved filters, watchlists & webhooks paid tiers

POST /v1/filters    {"name":"tx-new","filter":{"state":"TX","hasEmail":true}}
POST /v1/watchlist  {"dot":"80321","webhook":"https://your.app/hook"}
# We POST {event,carrier} to your webhook when a watched DOT changes or a new
# carrier matches a saved filter on the daily refresh.

Honest scope

Carrier identity, authority date, contact, and safety aggregates are real and source-linked to FMCSA / USDOT. New-authority is the freshest signal. search runs over the new-authority window we hold inline; use carrier_lookup for any DOT in the snapshot. We never fabricate an email or a safety rating.