DaymarkCarrier diligence · Free preview

Public records. Clear evidence.

A clearer view of
the carrier in front of you.

Look up a USDOT number to review registration, authority records and insurance filings — with a public source and publication date behind every fact.

Free to look up. No account required.

Sources publish with a delay. Review the linked records and their dates when making a decision.

Who uses it

Built first for freight brokers. The same evidence record can help factoring companies check a carrier before buying its invoices, shippers vet carriers they hire directly, and insurance agents verify a carrier’s filings. Source dates and coverage limits apply.

Carrier checks for factoring companies · Carrier vetting for shippers

OpenAPI 3.1 specification (JSON) · Agent guide

Daymark Verify API v1 & MCP

Carrier diligence with evidence-linked relationships. Methodology and limitations. This local preview has no public deployment or billing. Operator-issued live evaluation accounts have 50 calls per UTC calendar month shared across REST and MCP. No credit card required for evaluation; a 14-day no-card trial is available from the account page. Checkout is test mode only.

REST

GET /v1/verify/{usdot} requires Authorization: Bearer YOUR_KEY. USDOT is 1–9 ASCII digits greater than zero; leading zeros normalize away. Use format=csv for CSV; no refresh override. The response is JSON with api_version: "v1", mode: "live_evaluation", profile, followups, cache, fetched_at, expires_at and usage. Full contract, curl commands, key provisioning and MCP client configuration are in docs/API.md in the repository.

Verify returns the core profile first. Fetch followups.history and followups.relationships independently with the same bearer key; each admitted request consumes one allowance call, so all three resources cost three calls. Relationships returns the graph in its own response. Missing deep sections mean not loaded, never zero matches.

Profile facts carry value, field, record_date and evidence (dataset, URL, source_updated_at, fetched_at, sha256). Graph nodes carry USDOT; edges carry from_usdot, to_usdot, kind, value and evidence.root / evidence.neighbor fact arrays. graph.searches includes query evidence, observed_carriers and rows_returned; graph.suppressed explains high_degree, row_budget or identifier_budget. graph.complete is always false. Root and neighbor evidence can have different publication dates.

200 means a complete bounded response, including found=false for no census record. 400 means invalid input, 401 invalid key, 404 unknown endpoint, 405 unsupported method, 429 exhausted monthly allowance, 503 busy or upstream/database/capacity failure. Errors have error.code and error.message; admitted failures include usage when available. All live requests admitted after validation and capacity checks consume a call, including cache hits. Failed lookups are refunded; a delivered retry consumes a call. Invalid input, invalid credentials and busy rejections do not consume calls. The 51st admitted attempt is rejected before any carrier lookup. Key rotation does not reset usage.

Offline sandbox

GET /v1/sandbox/verify/123 returns a clearly labeled synthetic fixture without credentials, database or upstream access. It does not use live allowance. Never use fixture records for diligence.

MCP

Install Daymark in Claude Desktop or Cursor with uvx daymark-mcp==1.0.0 and DAYMARK_API_KEY. No directory approval is needed.

Run .venv/bin/python -m daymark.mcp with DAYMARK_API_URL and DAYMARK_API_KEY_FILE configured. The stdio server exposes one tool, vet_carrier, with argument {"usdot":"3862639"}. It calls the REST endpoint, returns the core profile and follow-up links as structuredContent and text; use carrier_relationships and carrier_history for the deep sections, and shares the REST allowance. Supported protocol revisions: 2025-11-25 and 2025-06-18 (initialize / notifications/initialized, tools/list, tools/call, ping). Newer clients must allow revision negotiation. There is no separate data store, graph engine or allowance in MCP.

Daymark — Launch pricing — $19/mo for your first 12 months, then $49

Sign up and start a 14-day no-credit-card trial. Trial and paid access use the same REST and MCP key; active trial/paid entitlement has a 2,000-call monthly fair-use cap. Source bounds and concurrency still apply. On expiry, the monthly 50-call evaluation applies again. Checkout is test mode only. Submit a fact correction with evidence; original records remain intact.

Watchlist

Use the same Bearer key for POST /v1/watchlist with {"usdot":"123"} (201; invalid USDOT 422, duplicate 409, cap 403), DELETE /v1/watchlist/{usdot} (204 or 404), GET /v1/watchlist (carriers, added/viewed dates, unseen-change counts and limit), and GET /v1/watchlist/changes (raw changes and publication evidence; marks them viewed). Five carriers for evaluation accounts; 200 during an active trial or paid entitlement. These operations do not consume lookup calls. Trial/paid expiry retains the five newest entries; a never-trial watch evaluation expires after 14 days.

Changes are daily published raw rows, retained for seven days; publication gaps may exist. Blank fields do not establish removals. No carrier labels, scores or notifications. Use the lookup page’s watchlist section to enter your key, add/remove carriers and view evidence. Keys stay in page memory and must be entered again after navigation. See docs/API.md for response details and retry semantics.

Carrier history

GET /v1/carriers/{dot}/history uses the same bearer key and monthly allowance as Verify. It returns an event list, not a reconstruction of a carrier profile at an arbitrary date. Events include type, date (null when unknown), label, source_dataset_id, evidence_link, evidence, as_of and as_of_note. Identity changes are labeled “observed by Daymark on” the capture date; they are never backdated. The first snapshot is a baseline.

Missing history is unknown. unavailable_datasets lists failed sources; a partial response is not cached as complete. Nightly matches are retained for seven days. Frozen rejected filings are labeled as of 2026-05-14. Source: FMCSA data via data.transportation.gov; each event links its dataset query. Profiles include per-section publication dates and dataset links. Unknown codes retain the raw code followed by “(unclassified)”. Insurance amounts remain withheld pending unit reconciliation.

Compliance evidence pack

GET /v1/carriers/{usdot}/evidence-pack with your Bearer key; add ?format=html to print. Available during trial and on paid plans. Each admitted export uses one API call. Free accounts retain the standard profile. The pack includes dated profile/history evidence, limitations and a prepared-for line. SHA-256 hashes help compare content; exports are unsigned and generated on demand, without retained export storage. Download and retain your own copy. This does not establish legal compliance.

CSV downloads

Add ?format=csv to these GET routes. Omit format for JSON. CSV uses the same facts, API key, entitlement and monthly allowance as the JSON call. Verify and history use one lookup call; watchlist operations do not consume lookup calls. Failed lookups return the usual JSON error and are not charged. History keeps limit and offset pagination. Watchlist CSV exports the full account list; limit and offset do not apply.

GET /v1/verify/{usdot}?format=csv downloads daymark-verify-{usdot}.csv. Columns: usdot,section,field,value,raw_value,record_date,dataset,source_published_at,source_url,fetched_at.

GET /v1/carriers/{usdot}/history?format=csv downloads daymark-history-{usdot}.csv. Columns: usdot,date,type,label,details,dataset,as_of,evidence_url.

GET /v1/watchlist?format=csv downloads daymark-watchlist.csv. Columns: usdot,added_at,last_viewed_at,unseen_changes.

Your watchlist

Sign in, open API key, and issue or copy your key. Paste it here and load your watchlist before adding a carrier. The key stays in this page’s memory.

Daily published raw records; blanks do not establish removals. Matched rows are retained for seven days; publication gaps may exist.

Daymark plans

Free: $0, 10 lookups per month and a five-carrier watchlist evaluation for 14 days. Launch pricing — $19/mo for your first 12 months, then $49. The paid trial lasts 14 days and needs no card. Trial dates do not reset. There is no automatic charge when the trial ends; choosing checkout starts billing, even during a trial. Checkout is currently test-mode only.

Daymark Labs LLC · hello@getdaymark.io (mailbox setup pending launch). Read the FAQ.