List carriers
List carriers with pagination and optional search by name, MC#, or DOT#. When ids is set, returns exactly those carriers (org-scoped) and every other filter is ignored — an exact-set fetch for client-side hydration overlays. Otherwise supports two verdict-filter modes that coexist on this endpoint:
- Operational mode (default) —
verdict/verified_date_*filter on currentCarrier.is_verified+verified_datestate. - Audit-table mode — when
latest_statusis set (with requiredsince+until), filter carriers whose latestcarrier_verificationsrow inside the window matches that status. Uses the same latest-per-subject window query as the scorecard Compliance & Risk tiles, but lists only persisted carriers: audit rows anchored to a subject identifier (a blocked party never saved as a Carrier row) count in the tiles and have no row to show here — the tile responses carry anever_persistedsplit for exactly that difference.verdict/verified_date_*are ignored in this mode.
Authentication: Supports API key and bearer token authentication.
Authentication
Bearer authentication of the form Bearer <token>, where token is your auth token.
Headers
Query parameters
Comma-separated carrier ids (prefixed car_… or raw UUIDs), max 100. When set, returns exactly those carriers (unknown ids are omitted) and every other filter/pagination param is ignored.
Search by name, MC#, DOT#
Two-letter state for origin_city
Two-letter state for destination_city
Repeatable: only carriers that can haul AT LEAST ONE of these equipment types. Carriers with no equipment recorded never match.
Repeatable: only carriers whose GLOBAL routing-guide tier is one of these (1-4). Untiered never matches. Range is checked in the handler — ge/le on a repeatable param is applied to the LIST by pydantic and raises rather than validating the items.
Filter by compliance verdict (PASSED | BLOCKED | UNVERIFIED)
Filter carriers verified on/after this date. Mirrors the scorecard’s verdict-breakdown period bucketing on Carrier.verified_date.
Filter carriers verified on/before this date. Mirrors the scorecard’s verdict-breakdown period bucketing on Carrier.verified_date.
Audit-table mode switch. Filter carriers whose latest carrier_verifications row in [since, until] has this status (PASSED | BLOCKED | UNVERIFIED | errored | rejected). errored selects carriers whose latest verification has no verdict (provider outage / pipeline error); rejected selects a determinate rejection (BLOCKED or UNVERIFIED) — the combined set behind the rejection-reasons drill-down. Requires since and until to be set. When this is set, verdict and verified_date_* are ignored.
Inclusive lower bound for audit-table mode (carrier_verifications.created_at).
Inclusive upper bound for audit-table mode (carrier_verifications.created_at).
Optional source filter for audit-table mode (api | extension | truck_list_email | voice_call | chat_tool). Mirrors the scorecard’s source dropdown.
Column to sort by. last_verified_at orders on the same figure the response returns (latest non-drop verification), not on verified_date. equipment_types groups carriers by their equipment as rendered.

