{
  "openapi": "3.0.1",
  "info": {
    "title": "FMCSA Trucking Scraper - Motor Carriers, Authority & Leads",
    "description": "Scrape US trucking companies from FMCSA open data: USDOT/MC carriers & brokers with officer names, phone, mobile, email, fleet, cargo, authority status, insurance & out-of-service flags. Filter by state and registration date for fresh new-carrier leads. Independent tool, not affiliated with FMCSA.",
    "version": "0.1",
    "x-build-id": "e2ActSYeS6KDiC9Mf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~fmcsa-trucking-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-fmcsa-trucking-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scrapesage~fmcsa-trucking-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-fmcsa-trucking-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scrapesage~fmcsa-trucking-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-fmcsa-trucking-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "carriers",
              "lookup"
            ],
            "type": "string",
            "description": "What to scrape. 'Carriers' discovers and filters motor carriers from the FMCSA census (the main lead-gen engine). 'Lookup' returns a full profile for specific carriers you pass by USDOT number, MC number or company name (census + operating authority + insurance + out-of-service orders + revocations and suspensions).",
            "default": "carriers"
          },
          "states": {
            "title": "States (carriers mode)",
            "type": "array",
            "description": "Filter carriers by physical-address state. Use 2-letter codes (e.g. TX, CA) or full names. Leave empty to search every state (newest registrations first). Ignored in Lookup mode. A run whose states are all unrecognized stops before searching, with nothing billed.",
            "items": {
              "type": "string"
            }
          },
          "registeredWithinDays": {
            "title": "Registered within the last N days",
            "minimum": 1,
            "maximum": 36500,
            "type": "integer",
            "description": "Only return carriers registered with FMCSA in the last N days, counted back from the day of the run. Best for scheduled runs, because the window moves with the calendar. When set, it replaces 'Registered after'."
          },
          "registeredAfter": {
            "title": "Registered after",
            "type": "string",
            "description": "Only return carriers registered with FMCSA on or after this date: the key to fresh, high-intent new-authority leads (insurance, factoring, ELD, fuel cards). Accepts YYYY-MM-DD (e.g. 2026-05-01), MM/DD/YYYY, or a relative value such as '30 days'. Leave empty for all."
          },
          "registeredBefore": {
            "title": "Registered before",
            "type": "string",
            "description": "Only return carriers registered on or before this date. Combine with 'Registered after' for a date window. Same formats as 'Registered after'. Leave empty for no upper bound."
          },
          "carrierOperation": {
            "title": "Operation type",
            "enum": [
              "Any",
              "Interstate",
              "Intrastate Hazmat",
              "Intrastate Non-Hazmat"
            ],
            "type": "string",
            "description": "Filter by carrier operation. Interstate carriers cross state lines (most freight and broker leads); Intrastate Hazmat / Non-Hazmat operate within one state.",
            "default": "Any"
          },
          "companyName": {
            "title": "Company name contains",
            "type": "string",
            "description": "Filter (carriers mode) or resolve (lookup mode) by a legal name or DBA (trade) name containing this text. Example: SWIFT TRANSPORTATION."
          },
          "dotNumbers": {
            "title": "USDOT numbers",
            "type": "array",
            "description": "USDOT numbers to look up (Lookup mode) or to restrict a Carriers search to. Example: [\"244818\", \"2247402\"].",
            "items": {
              "type": "string"
            }
          },
          "mcNumbers": {
            "title": "MC / docket numbers (lookup mode)",
            "type": "array",
            "description": "MC (docket) numbers to look up in Lookup mode, resolved to carriers through FMCSA's operating-authority files (including dockets issued by FMCSA's new Motus registration system). Digits only, or with an MC, FF or MX prefix. Example: [\"012892\", \"MC255345\"].",
            "items": {
              "type": "string"
            }
          },
          "activeOnly": {
            "title": "Active carriers only",
            "type": "boolean",
            "description": "Keep only carriers whose FMCSA status is Active (drops inactive and pending). Recommended for lead generation.",
            "default": true
          },
          "hazmatOnly": {
            "title": "Hazmat carriers only",
            "type": "boolean",
            "description": "Keep only carriers flagged as transporting hazardous materials.",
            "default": false
          },
          "minPowerUnits": {
            "title": "Min power units (trucks)",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep carriers with at least this many power units (trucks/tractors). Leave empty for no minimum. Great for targeting fleets of a given size."
          },
          "maxPowerUnits": {
            "title": "Max power units (trucks)",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep carriers with at most this many power units. Leave empty for no maximum (e.g. set 1-5 to target small owner-operators)."
          },
          "minDrivers": {
            "title": "Min drivers",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep carriers with at least this many drivers. Leave empty for no minimum."
          },
          "includeEmail": {
            "title": "Include email addresses",
            "type": "boolean",
            "description": "Include the e-mail address the carrier filed with FMCSA (it comes with the census record, so it adds no extra lookups). Recommended for lead generation.",
            "default": true
          },
          "enrichAuthority": {
            "title": "Include operating authority, insurance & safety",
            "type": "boolean",
            "description": "Enrich each carrier with its operating authority from FMCSA's Motus and legacy files (MC number, authority types and status, the latest status change and its reason, insurance requirements), insurance policies on file, out-of-service orders, and revocations or suspensions. Adds a few fast lookups per batch. Always on in Lookup mode.",
            "default": true
          },
          "maxResults": {
            "title": "Max results (whole run)",
            "minimum": 1,
            "maximum": 500000,
            "type": "integer",
            "description": "Cap on the total number of carrier records in this run (only delivered carriers are billed). A run started with no input at all returns a 25-carrier sample; set this field, or any search field, for a full run."
          },
          "maxResultsPerState": {
            "title": "Max results per state",
            "minimum": 0,
            "type": "integer",
            "description": "Optional cap per state. With states selected: each state gets at most this many (0 = share 'Max results' evenly, and states with fewer matches pass their share to the others). With no states selected and a value above 0: every state is searched, each up to this cap.",
            "default": 0
          },
          "deduplicateResults": {
            "title": "Deduplicate results",
            "type": "boolean",
            "description": "Emit each USDOT number only once per run.",
            "default": true
          },
          "monitorMode": {
            "title": "Monitoring mode: only carriers not delivered before",
            "type": "boolean",
            "description": "Remember USDOT numbers already delivered and emit ONLY carriers this monitor has not delivered in previous runs. For a feed of brand-new registrations, pair it with 'Registered within the last N days' (or 'Registered after') and an Apify Schedule.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Monitor store name",
            "type": "string",
            "description": "Named key-value store holding the 'already delivered' USDOT numbers for monitoring mode. Use a different name per tracked scope (lowercase letters, digits and hyphens only).",
            "default": "fmcsa-trucking-monitor"
          },
          "socrataAppToken": {
            "title": "Socrata app token (optional)",
            "type": "string",
            "description": "Optional Socrata app token to raise the FMCSA open-data API throttling limit on very large runs. Not required for normal use."
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Maximum number of states searched in parallel.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy settings. FMCSA open data is a clean US-gov API, so the default Apify proxy is plenty (a proxy is not strictly required).",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}