# FMCSA Roster Change Monitor

> FMCSA Roster Change Monitor is a paid API for AI agents from fmcsa-mcp-843680657471.us-central1.run.app, paid per call via x402, $0.055/call, status unknown (last checked 2026-10-15).

Detects and returns field-level changes (authority, insurance, out-of-service status, etc.) for a user-defined list of USDOT carriers since a specified date.

## Facts

- Endpoint: POST https://fmcsa-mcp-843680657471.us-central1.run.app/x402/check_roster_changes?utm_source=zero.xyz
- Price: $0.055/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/fmcsa-roster-change-monitor-9f8841c1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_DX57cvUIPAFNxsgyEAFro

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability fmcsa-roster-change-monitor-9f8841c1 -d '<json body>'
```

Example prompt: Check my FMCSA carrier watchlist for any authority, insurance, or out-of-service changes since March 1, 2025 — here are the USDOT numbers: 1234567, 2345678, 3456789.

## When to prefer this

Use this endpoint when you have an existing list of carriers (up to 100 USDOT numbers) and want to detect any field-level changes since a specific date, rather than doing a full lookup on each carrier individually. It is purpose-built for watchlist monitoring and compliance workflows where you need to know what changed, not just what the current state is. Prefer this over lookup_carrier when you need delta tracking across many carriers at once.

## Known failure modes

- Invalid or non-existent USDOT numbers return no data for those entries
- More than 100 USDOT numbers in a single call may be rejected or truncated
- Malformed ISO date in 'since' field causes a validation error
- Stale data if the underlying FMCSA refresh hasn't run recently — changes since last refresh window may not appear
- Billing still occurs even if no changes are found, as long as at least one roster entry resolves
- Network or cloud run timeout on large rosters close to the 100-entry limit

## How this service works

Use this to find which carriers on your own list changed on or after a date, and what changed: authority, insurance, out-of-service and other tracked fields, each with old and new values. Metered: a base price plus a per-roster-entry price, both shown in get_catalog; billed whenever at least one roster entry resolves, even if nothing changed. As fresh as the last data refresh.

## Output

Returns a list of carriers from the submitted roster that had detectable FMCSA data changes on or after the specified date, including each changed field with its old and new values. Carriers with no changes may be omitted or flagged as unchanged. Billing applies whenever at least one roster entry resolves, regardless of whether changes occurred.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "since": {
   "type": "string",
   "description": "ISO date, YYYY-MM-DD. Changes on or after this date are returned."
  },
  "roster_usdot_numbers": {
   "type": "array",
   "items": {
    "type": "integer"
   },
   "description": "USDOT numbers of the carriers to watch: your own list, at most 100 per call."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/fmcsa-roster-change-monitor-9f8841c1/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from fmcsa-mcp-843680657471.us-central1.run.app](https://www.zero.xyz/host/fmcsa-mcp-843680657471.us-central1.run.app/llms.txt)
