AlphaLoops FMCSA Carrier Data API Carriers API

The Carriers API from AlphaLoops FMCSA Carrier Data API — 19 operation(s) for carriers.

OpenAPI Specification

alphaloops-fmcsa-carrier-data-api-carriers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AlphaLoops FMCSA Carrier Data Carriers API
  version: 1.0.0
  description: 'Fleet intelligence API for looking up FMCSA-registered carriers by DOT number, MC number, or company name. Access carrier profiles with 200+ fields, safety data, authority history, fleet equipment, inspections, crashes, news, and decision-maker contacts.


    Base URL: https://api.runalphaloops.com


    API access is available exclusively on the Enterprise plan. Contact sales at https://runalphaloops.com/contact to get your API key.'
  contact:
    name: AlphaLoops
    url: https://runalphaloops.com/contact
    email: hello@runalphaloop.com
servers:
- url: https://api.runalphaloops.com
  description: Production
security:
- bearerAuth: []
tags:
- name: Carriers
paths:
  /v1/carriers/{dot_number}:
    get:
      operationId: getCarrierByDot
      summary: Look up a carrier by DOT number
      description: Returns the full carrier profile with 200+ fields including identity, authority, safety, fleet, technology stack, and contacts. Use the fields parameter to project only the fields you need.
      parameters:
      - name: dot_number
        in: path
        required: true
        schema:
          type: string
        description: The carrier's USDOT number
      - name: fields
        in: query
        required: false
        schema:
          type: string
        description: Comma-separated list of fields to return (e.g. "legal_name,power_units,latitude,longitude"). Omit to return all fields.
      responses:
        '200':
          description: Full carrier profile
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CarrierProfile'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/mc/{mc_number}:
    get:
      operationId: getCarrierByMc
      summary: Look up a carrier by MC/MX docket number
      description: Returns the full carrier profile (same fields as the DOT lookup). Supports the same ?fields= projection parameter.
      parameters:
      - name: mc_number
        in: path
        required: true
        schema:
          type: string
        description: The carrier's MC or MX docket number
      - name: fields
        in: query
        required: false
        schema:
          type: string
        description: Comma-separated list of fields to return. Omit to return all fields.
      responses:
        '200':
          description: Full carrier profile
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CarrierProfile'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/search:
    get:
      operationId: searchCarriers
      summary: Match a company to a carrier by name
      description: Match a company to a carrier by name, domain, state, and city. Returns ranked results with a confidence score. At minimum, company_name is required.
      parameters:
      - name: company_name
        in: query
        required: true
        schema:
          type: string
        description: Company name to match against (fuzzy matching)
      - name: domain
        in: query
        required: false
        schema:
          type: string
        description: Company website domain (e.g. "swifttrans.com") — improves match accuracy
      - name: state
        in: query
        required: false
        schema:
          type: string
        description: State abbreviation (e.g. "TX", "CA")
      - name: city
        in: query
        required: false
        schema:
          type: string
        description: City name (e.g. "Phoenix", "Dallas")
      - $ref: '#/components/parameters/page'
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 10
          maximum: 50
        description: 'Results per page (default: 10, max: 50)'
      responses:
        '200':
          description: Paginated search results with confidence scores
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CarrierSearchResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/{dot_number}/authority:
    get:
      operationId: getCarrierAuthority
      summary: Get carrier operating authority history
      description: Returns all authority actions including grants, revocations, and reinstatements.
      parameters:
      - $ref: '#/components/parameters/dotNumber'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Authority history records
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorityResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/{dot_number}/trucks:
    get:
      operationId: getCarrierTrucks
      summary: Get carrier truck (power unit) fleet
      description: Returns the carrier's registered truck fleet. Includes VIN, make, model, engine specs, weight, and manufacturing details.
      parameters:
      - $ref: '#/components/parameters/dotNumber'
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 50
          maximum: 200
        description: 'Results per page (default: 50, max: 200)'
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Paginated truck fleet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrucksResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/{dot_number}/trailers:
    get:
      operationId: getCarrierTrailers
      summary: Get carrier trailer fleet
      description: Returns the carrier's registered trailer fleet. Includes VIN, manufacturer, type, and reefer status.
      parameters:
      - $ref: '#/components/parameters/dotNumber'
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 50
          maximum: 200
        description: 'Results per page (default: 50, max: 200)'
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Paginated trailer fleet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrailersResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/{dot_number}/inspections:
    get:
      operationId: getCarrierInspections
      summary: Get carrier inspection history
      description: Returns roadside inspection history with metadata and out-of-service counts. Use /v1/inspections/{inspection_id}/violations to get violation details for a specific inspection.
      parameters:
      - $ref: '#/components/parameters/dotNumber'
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 50
          maximum: 200
        description: 'Results per page (default: 50, max: 200)'
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Paginated inspection records
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InspectionsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/{dot_number}/crashes:
    get:
      operationId: getCarrierCrashes
      summary: Get carrier crash history
      description: Returns reported crash history with details, severity, and contributing factors.
      parameters:
      - $ref: '#/components/parameters/dotNumber'
      - name: start_date
        in: query
        required: false
        schema:
          type: string
          format: date
        description: Filter from date (ISO 8601, e.g. "2024-01-01")
      - name: end_date
        in: query
        required: false
        schema:
          type: string
          format: date
        description: Filter to date (ISO 8601, e.g. "2024-12-31")
      - name: severity
        in: query
        required: false
        schema:
          type: string
          enum:
          - FATAL
          - INJURY
          - TOW
          - PROPERTY_DAMAGE
        description: Filter by severity
      - $ref: '#/components/parameters/page'
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 25
          maximum: 100
        description: 'Results per page (default: 25, max: 100)'
      responses:
        '200':
          description: Paginated crash records
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrashesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/{dot_number}/news:
    get:
      operationId: getCarrierNews
      summary: Get carrier news and press mentions
      description: Returns recent news articles and press mentions related to the carrier.
      parameters:
      - $ref: '#/components/parameters/dotNumber'
      - name: start_date
        in: query
        required: false
        schema:
          type: string
          format: date
        description: Filter from date (ISO 8601)
      - name: end_date
        in: query
        required: false
        schema:
          type: string
          format: date
        description: Filter to date (ISO 8601)
      - $ref: '#/components/parameters/page'
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 25
          maximum: 100
        description: 'Results per page (default: 25, max: 100)'
      responses:
        '200':
          description: Paginated news articles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/query:
    post:
      operationId: queryCarriers
      summary: Advanced filtered carrier search
      description: Filtered search with include/exclude conditions, geo-radius search, sorting, and field projection. No company name required — filter by state, fleet size, cargo type, technology, authority status, revenue, and more.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CarrierQueryRequest'
      responses:
        '200':
          description: Paginated, optionally field-projected carrier results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CarrierQueryResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/{dot_number}/insurance:
    get:
      operationId: getCarrierInsurance
      summary: Get carrier insurance filings
      description: Retrieve insurance filings (BIPD, cargo, bond) for a carrier from the FMCSA insurance table. Includes policy numbers, coverage limits, and insurer details.
      parameters:
      - $ref: '#/components/parameters/dotNumber'
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 50
          maximum: 500
        description: 'Results per page (default: 50, max: 500)'
      - $ref: '#/components/parameters/page'
      - name: sort_by
        in: query
        required: false
        schema:
          type: string
          enum:
          - effective_date
          - insurance_type_code
          - bipd_maximum_dollar_limit
          - insurance_company_name
          default: effective_date
        description: Sort field
      - name: sort_order
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
        description: Sort direction
      - name: insurance_type
        in: query
        required: false
        schema:
          type: string
        description: Filter by insurance type code (e.g. BIPD, CARGO, BOND)
      - name: insurer
        in: query
        required: false
        schema:
          type: string
        description: Partial match on insurance company name
      - name: min_coverage
        in: query
        required: false
        schema:
          type: integer
        description: Minimum BIPD dollar limit
      - name: date_from
        in: query
        required: false
        schema:
          type: string
          format: date
        description: Effective date start (ISO date)
      - name: date_to
        in: query
        required: false
        schema:
          type: string
          format: date
        description: Effective date end (ISO date)
      responses:
        '200':
          description: Paginated insurance filings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsuranceResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/mc/{mc_number}/insurance:
    get:
      operationId: getCarrierInsuranceByMc
      summary: Get carrier insurance filings by MC number
      description: Retrieve insurance filings by MC docket number. Same response shape and filters as the DOT-based insurance endpoint.
      parameters:
      - name: mc_number
        in: path
        required: true
        schema:
          type: string
        description: MC docket number (numeric)
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 50
          maximum: 500
        description: 'Results per page (default: 50, max: 500)'
      - $ref: '#/components/parameters/page'
      - name: sort_by
        in: query
        required: false
        schema:
          type: string
          enum:
          - effective_date
          - insurance_type_code
          - bipd_maximum_dollar_limit
          - insurance_company_name
          default: effective_date
        description: Sort field
      - name: sort_order
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
        description: Sort direction
      - name: insurance_type
        in: query
        required: false
        schema:
          type: string
        description: Filter by insurance type code
      - name: insurer
        in: query
        required: false
        schema:
          type: string
        description: Partial match on insurance company name
      - name: min_coverage
        in: query
        required: false
        schema:
          type: integer
        description: Minimum BIPD dollar limit
      responses:
        '200':
          description: Paginated insurance filings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsuranceResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/{dot_number}/timeline:
    get:
      operationId: getCarrierTimeline
      summary: Get carrier change-event and authority timeline
      description: Merged chronological feed of carrier change events and authority history. Combines field-level changes from monthly FMCSA census diffs (contact, address, fleet, operations, authority, people) with authority history records.
      parameters:
      - $ref: '#/components/parameters/dotNumber'
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 50
          maximum: 200
        description: 'Max results (default: 50, max: 200)'
      - $ref: '#/components/parameters/offset'
      - name: category
        in: query
        required: false
        schema:
          type: string
        description: 'Comma-separated categories: contact, address, fleet, operations, authority, people'
      - name: date_from
        in: query
        required: false
        schema:
          type: string
          format: date
        description: Start date (ISO date)
      - name: date_to
        in: query
        required: false
        schema:
          type: string
          format: date
        description: End date (ISO date)
      responses:
        '200':
          description: Merged timeline of change events and authority actions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimelineResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/{dot_number}/mc-sales:
    get:
      operationId: getCarrierMcSales
      summary: Get authority-for-sale listings for a carrier
      description: 'Returns any authority-for-sale listings (Facebook groups, Telegram channels, BizBuySell, etc.) linked to this carrier''s DOT number, with seller info, asking prices, post URLs, and matching reasoning. Returns found: false with mc_sale: null when no listings are linked.'
      parameters:
      - name: dot_number
        in: path
        required: true
        schema:
          type: integer
        description: The carrier's USDOT number
      responses:
        '200':
          description: 'Authority-for-sale listings, or a found: false sentinel when none are linked'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/McSalesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/{dot_number}/equipment-for-sale:
    get:
      operationId: getCarrierEquipmentForSale
      summary: Get carrier fleet VINs listed for sale
      description: Cross-references the VINs this carrier has been inspected with against a marketplace dataset of trucks and trailers currently (or recently) listed for sale. Returns one row per matching VIN, sorted by most recent inspection date. Empty results are common.
      parameters:
      - $ref: '#/components/parameters/dotNumber'
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 25
          maximum: 200
        description: 'Results per page (default: 25, max: 200)'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: Paginated equipment-marketplace matches
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EquipmentForSaleResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/{dot_number}/connections:
    get:
      operationId: getCarrierConnections
      summary: Get a carrier's relationship graph
      description: Retrieve a carrier's corporate connections graph — shared officers, addresses, phones, emails, and equipment linking it to other carriers.
      parameters:
      - $ref: '#/components/parameters/dotNumber'
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 50
          maximum: 200
        description: 'Max results (default: 50, max: 200)'
      responses:
        '200':
          description: Connection graph nodes and edges
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectionsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/{dot_number}/risk-signals:
    get:
      operationId: getCarrierRiskSignals
      summary: Get aggregated carrier risk signals
      description: Aggregated carrier risk assessment in a single call. Returns an AI-generated risk score (0-10) and level, plus six signal categories — authority-for-sale listings, equipment-for-sale marketplace matches, financial-distress indicators, fraud/chameleon patterns, historical authority/insurance/change-event patterns, and recent news sentiment. Each category carries a derived level of "high", "medium", "clear", or "unknown". The risk summary is cached; pass force_refresh=true to force regeneration.
      parameters:
      - $ref: '#/components/parameters/dotNumber'
      - name: force_refresh
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: Set to true to bypass the cached risk summary and regenerate it from current signals (slower).
      - name: include_equipment
        in: query
        required: false
        schema:
          type: boolean
          default: true
        description: Set to false to skip the equipment-marketplace VIN lookup for a faster response.
      responses:
        '200':
          description: Scored risk header plus six derived signal categories
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RiskSignalsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/{dot_number}/similar:
    get:
      operationId: getSimilarCarriers
      summary: Find carriers similar to a given carrier
      description: Find carriers similar to the specified carrier based on fleet size, location, cargo type, and other attributes.
      parameters:
      - $ref: '#/components/parameters/dotNumber'
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 20
          maximum: 100
        description: 'Max results (default: 20, max: 100)'
      responses:
        '200':
          description: Ranked list of similar carriers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimilarResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
  /v1/carriers/{dot_number}/overview:
    get:
      operationId: getCarrierOverview
      summary: Get an AI-generated carrier overview
      description: Returns an AI-generated summary overview of a carrier including key highlights.
      parameters:
      - $ref: '#/components/parameters/dotNumber'
      responses:
        '200':
          description: AI-generated overview and highlights
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OverviewResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Carriers
components:
  schemas:
    TimelineEvent:
      type: object
      properties:
        id:
          oneOf:
          - type: integer
          - type: string
        dot_number:
          type: string
        detected_at:
          type: string
          format: date
        category:
          type: string
          enum:
          - contact
          - address
          - fleet
          - operations
          - authority
          - people
        event_type:
          type: string
        headline:
          type: string
        field_name:
          type: string
          nullable: true
        old_value:
          type: string
          nullable: true
        new_value:
          type: string
          nullable: true
        metadata:
          type: object
          nullable: true
          additionalProperties: true
        source:
          type: string
    CarrierSearchResult:
      type: object
      properties:
        dot_number:
          type: string
        legal_name:
          type: string
        dba_name:
          type: string
          nullable: true
        physical_city:
          type: string
        physical_state:
          type: string
        confidence:
          type: number
          description: Match confidence score 0.0–1.0
    ConnectionsResponse:
      type: object
      properties:
        dot_number:
          type: string
        total_nodes:
          type: integer
        total_edges:
          type: integer
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/ConnectionNode'
        edges:
          type: array
          items:
            $ref: '#/components/schemas/ConnectionEdge'
    FleetComposition:
      type: object
      properties:
        owned:
          type: integer
        leased:
          type: integer
    ConnectionNode:
      type: object
      properties:
        id:
          type: string
          description: DOT number
        label:
          type: string
        state:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        isFocal:
          type: boolean
          description: True for the queried carrier
      additionalProperties: true
    CarrierQueryRequest:
      type: object
      description: Filter body for POST /v1/carriers/query. All fields optional.
      properties:
        include:
          type: object
          description: Filter conditions to include. Supports scalar equality, arrays, range objects ({ min, max }), and a location object ({ latitude, longitude, radius_miles }).
          additionalProperties: true
          example:
            state: TX
            power_units:
              min: 50
            cargo_type:
            - Van
            - Reefer
            operating_authority_status: Active
            location:
              latitude: 29.76
              longitude: -95.37
              radius_miles: 100
        exclude:
          type: object
          description: Filter conditions to exclude (same shape as include).
          additionalProperties: true
        fields:
          type: array
          items:
            type: string
          description: Fields to return on each result (e.g. ["dot_number", "legal_name", "power_units"]).
        sort_by:
          type: string
          description: 'Sort field: power_units, drivers, date_added, safety_rating, annual_revenue, distance, etc.'
        sort_order:
          type: string
          enum:
          - asc
          - desc
          default: desc
        limit:
          type: integer
          default: 25
        page:
          type: integer
          default: 1
    AuthorityRecord:
      type: object
      properties:
        docket_number:
          type: string
        sub_number:
          type: string
        authority_type:
          type: string
        original_action:
          type: string
        original_served_date:
          type: string
          format: date
        disposition_action:
          type: string
        disposition_decided_date:
          type: string
          format: date
        disposition_served_date:
          type: string
          format: date
    GrowthMetrics:
      type: object
      properties:
        power_units_12m:
          type: integer
          description: Net power unit change over 12 months
        drivers_12m:
          type: integer
          description: Net driver change over 12 months
        power_units_24m:
          type: integer
          description: Net power unit change over 24 months
        drivers_24m:
          type: integer
          description: Net driver change over 24 months
    TrailersResponse:
      type: object
      properties:
        dot_number:
          type: string
        total_trailers:
          type: integer
        trailers:
          type: array
          items:
            $ref: '#/components/schemas/Trailer'
        limit:
          type: integer
        offset:
          type: integer
        total_results:
          type: integer
    Pagination:
      type: object
      properties:
        page:
          type: integer
        limit:
          type: integer
        total_results:
          type: integer
        total_pages:
          type: integer
    McSaleListing:
      type: object
      properties:
        seller_name:
          type: string
          nullable: true
        phone:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        asking_price:
          type: string
          nullable: true
        authority_age:
          type: string
          nullable: true
        post_url:
          type: string
          nullable: true
        source_file:
          type: string
          nullable: true
        confidence:
          type: number
          nullable: true
          description: 0–1 match confidence for this observation
        reasoning:
          type: string
          nullable: true
    CarrierSearchResponse:
      type: object
      properties:
        total_results:
          type: integer
        results:
          type: array
          items:
            $ref: '#/components/schemas/CarrierSearchResult'
        pagination:
          $ref: '#/components/schemas/Pagination'
    Address:
      type: object
      properties:
        street:
          type: string
        city:
          type: string
        state:
          type: string
        zip:
          type: string
    OverviewResponse:
      type: object
      properties:
        dot_number:
          type: string
        overview:
          type: string
        highlights:
          type: array
          items:
            type: string
    InsuranceResponse:
      type: object
      properties:
        dot_number:
          type: string
        mc_number:
          type: integer
        to

# --- truncated at 32 KB (54 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/alphaloops-fmcsa-carrier-data-api/refs/heads/main/openapi/alphaloops-fmcsa-carrier-data-api-carriers-api-openapi.yml