Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/mvmnt-carriers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
OpenAPI Specification
openapi: 3.2.0
info:
title: MVMNT Carriers API
version: 1.0.0
description: "The MVMNT API enables you to automate freight brokerage workflows by integrating\ndirectly with our Transportation Management System.\n\n## Authentication\n\nOAuth 2.0 client credentials flow. See [Authentication Guide](/getting-started/authentication)\nfor details.\n\n### Token Endpoint\n\n```\nPOST https://api.mvmnt.io/oauth2/token\n```\n\n#### Request\n\n**Headers:**\n```http\nContent-Type: application/x-www-form-urlencoded\n```\n\n**Body Parameters:**\n```\ngrant_type=client_credentials\nclient_id=YOUR_CLIENT_ID\nclient_secret=YOUR_CLIENT_SECRET\n```\n\n#### Example Request\n\n```bash\ncurl -X POST https://api.mvmnt.io/oauth2/token \\\n -H \"Content-Type: application/x-www-form-urlencoded\" \\\n -d \"grant_type=client_credentials\" \\\n -d \"client_id=YOUR_CLIENT_ID\" \\\n -d \"client_secret=YOUR_CLIENT_SECRET\"\n```\n\n#### Success Response\n\n**Status:** `200 OK`\n\n```json\n{\n \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...\",\n \"token_type\": \"Bearer\",\n \"expires_in\": 3600\n}\n```\n\n**Response Fields:**\n- `access_token`: JWT Bearer token to use for API requests\n- `token_type`: Always `Bearer`\n- `expires_in`: Token lifetime in seconds (3600 = 1 hour)\n"
contact:
name: MVMNT Support
email: support@mvmnt.io
url: https://docs.mvmnt.io
license:
name: Proprietary
url: https://mvmnt.io/legal/terms
x-parsed-md-description:
result:
- $$mdtype: Node
errors: []
lines:
- 0
- 2
inline: false
attributes: {}
children:
- $$mdtype: Node
errors: []
lines:
- 0
- 2
inline: false
attributes: {}
children:
- $$mdtype: Node
errors: []
lines:
- 0
- 2
inline: true
attributes:
content: The MVMNT API enables you to automate freight brokerage workflows by integrating
children: []
type: text
annotations: []
slots: {}
- $$mdtype: Node
errors: []
lines:
- 0
- 2
inline: true
attributes: {}
children: []
type: softbreak
annotations: []
slots: {}
- $$mdtype: Node
errors: []
lines:
- 0
- 2
inline: true
attributes:
content: directly with our Transportation Management System.
children: []
type: text
annotations: []
slots: {}
type: inline
annotations: []
slots: {}
type: paragraph
annotations: []
slots: {}
- $$mdtype: Node
errors: []
lines:
- 3
- 4
inline: false
attributes:
level: 2
children:
- $$mdtype: Node
errors: []
lines:
- 3
- 4
inline: false
attributes: {}
children:
- $$mdtype: Node
errors: []
lines:
- 3
- 4
inline: true
attributes:
content: Authentication
children: []
type: text
annotations: []
slots: {}
type: inline
annotations: []
slots: {}
type: heading
annotations: []
slots: {}
- $$mdtype: Node
errors: []
lines:
- 5
- 6
inline: false
attributes: {}
children:
- $$mdtype: Node
errors: []
lines:
- 5
- 6
inline: false
attributes: {}
children:
- $$mdtype: Node
errors: []
lines:
- 5
- 6
inline: true
attributes:
content: 'OAuth 2.0 client credentials flow. See '
children: []
type: text
annotations: []
slots: {}
- $$mdtype: Node
errors: []
lines:
- 5
- 6
inline: true
attributes:
href: /getting-started/authentication
children:
- $$mdtype: Node
errors: []
lines:
- 5
- 6
inline: true
attributes:
content: Authentication Guide
children: []
type: text
annotations: []
slots: {}
type: link
annotations: []
slots: {}
redocly:::linkOriginal:href: /getting-started/authentication
- $$mdtype: Node
errors: []
lines:
- 5
- 6
inline: true
attributes:
content: ' for details.'
children: []
type: text
annotations: []
slots: {}
type: inline
annotations: []
slots: {}
type: paragraph
annotations: []
slots: {}
servers:
- url: https://api.mvmnt.io/v1
description: Production
security:
- BearerAuth: []
tags:
- name: Carriers
description: Carrier management operations
paths:
/carriers/filter:
post:
tags:
- Carriers
summary: Filter carriers
description: 'Query carriers using flexible filter criteria with AND/OR logic.
By default, only non-deleted carriers are returned (deletedAt: { isNull: true }).
Override this by explicitly setting deletedAt filter criteria.
Returns carriers of all types (TRUCKLOAD, AIR, CARTAGE, LINEHAUL, LTL, OCEAN, RAIL)
with type-specific fields included based on carrier type.
'
operationId: filterCarriers
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CarrierFilterRequest'
responses:
'200':
description: Filtered carriers with pagination
content:
application/json:
schema:
type: object
required:
- data
- pageInfo
properties:
data:
type: array
items:
$ref: '#/components/schemas/Carrier'
pageInfo:
$ref: '#/components/schemas/PaginationInfo'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'500':
$ref: '#/components/responses/InternalServerError'
/carriers:
post:
tags:
- Carriers
summary: Create a new carrier
description: 'Create a new carrier within an organization.
The carrier type must be specified and determines which fields are available:
- **TRUCKLOAD**: Includes insurance, safety rating, and FMCSA inspection fields
- **AIR, CARTAGE, LINEHAUL, LTL, OCEAN, RAIL**: Include only base carrier fields
Note: In the backend, null carrier type is represented as TRUCKLOAD in the public API.
'
operationId: createCarrier
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CarrierInput'
examples:
truckload:
summary: Truckload carrier with insurance
value:
name: Swift Transportation Co
type: TRUCKLOAD
email: dispatch@swifttrans.com
phone: +1-555-987-6543
status: ACTIVE
mcNumber: MC-123456
dotNumber: '1234567'
insuranceCompany: State Farm Insurance
insuranceAutoLiabilityLimit: 1000000
rating: SATISFACTORY
inFmcsa: true
air:
summary: Air carrier
value:
name: FedEx Express
type: AIR
email: cargo@fedex.com
phone: +1-555-123-4567
status: ACTIVE
iataCode: FX
ltl:
summary: LTL carrier
value:
name: XPO Logistics
type: LTL
email: dispatch@xpo.com
phone: +1-555-456-7890
status: ACTIVE
scac: XPOL
responses:
'201':
description: Carrier created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Carrier'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'409':
$ref: '#/components/responses/ConflictError'
'500':
$ref: '#/components/responses/InternalServerError'
/carriers/{id}:
get:
tags:
- Carriers
summary: Get a carrier by ID
description: 'Retrieve a single carrier by its unique identifier.
The response will include type-specific fields based on the carrier''s type:
- **TRUCKLOAD**: Includes insurance, safety rating, and FMCSA inspection fields
- **AIR, CARTAGE, LINEHAUL, LTL, OCEAN, RAIL**: Include only base carrier fields
'
operationId: getCarrierById
parameters:
- $ref: '#/components/parameters/IdOrClientKey'
responses:
'200':
description: Carrier found
content:
application/json:
schema:
$ref: '#/components/schemas/Carrier'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
patch:
tags:
- Carriers
summary: Update a carrier
description: 'Partially update a carrier. Only provided fields will be updated.
- **Omitted fields**: Not modified (current value preserved)
- **Provided fields**: Updated to the new value
- **Null values**: Clear the field (set to null) where applicable
The carrier type determines which fields can be updated:
- **TRUCKLOAD**: Can update insurance, safety rating, and FMCSA fields
- **AIR, CARTAGE, LINEHAUL, LTL, OCEAN, RAIL**: Can only update base carrier fields
Changing the carrier type will affect which specialized fields are available.
'
operationId: updateCarrier
parameters:
- $ref: '#/components/parameters/IdOrClientKey'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CarrierPatch'
responses:
'200':
description: Carrier updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Carrier'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
'409':
$ref: '#/components/responses/ConflictError'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
tags:
- Carriers
summary: Delete a carrier
description: 'Soft delete a carrier (sets deletedAt timestamp).
The carrier will no longer appear in default queries but can be retrieved
by explicitly filtering for deleted records.
'
operationId: deleteCarrier
parameters:
- $ref: '#/components/parameters/IdOrClientKey'
responses:
'204':
description: Carrier deleted successfully
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
/carriers/search:
post:
summary: Search carriers
description: 'Search carriers using OpenSearch-powered full-text and field-specific search.
This endpoint searches both:
- **ONBOARDED carriers**: Carriers with profiles in your organization
- **FMCSA carriers**: Public carrier records from FMCSA database
Features:
- Full-text search across multiple fields
- Field-specific filtering with various operators
- Sorting and pagination
- Saved search preferences
**Note:** Only active (non-deleted) carriers are searchable. Soft-deleted records are automatically excluded from all search results.
**Response Formats:**
- `flat` (default): Returns indexed fields only for faster performance
- `full`: Returns complete carrier objects with all relationships
'
operationId: searchCarriers
tags:
- Carriers
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CarrierSearchRequest'
responses:
'200':
description: Successful search results
content:
application/json:
schema:
$ref: '#/components/schemas/CarrierSearchResponse'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'422':
$ref: '#/components/responses/ValidationError'
'429':
$ref: '#/components/responses/RateLimitExceeded'
/carriers/{id}/outstanding-bills:
get:
summary: Get carrier outstanding bills
description: 'List outstanding (unpaid) bills for a carrier.
Returns bills with status `APPROVED_TO_PAY`.
'
operationId: getCarrierOutstandingBills
tags:
- Carriers
parameters:
- $ref: '#/components/parameters/IdOrClientKey'
- $ref: '#/components/parameters/LookupBy'
responses:
'200':
description: Outstanding bills retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/OutstandingBillsResponse'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/carriers/{id}/bills-for-payment:
get:
summary: Get carrier bills available for payment
description: 'List bills available for payment from a carrier.
Returns bills with status `APPROVED_TO_PAY` and open balance.
## Carrier factor
If the carrier has a factor configured, factor details are included.
'
operationId: getCarrierBillsForPayment
tags:
- Carriers
parameters:
- $ref: '#/components/parameters/IdOrClientKey'
- $ref: '#/components/parameters/LookupBy'
responses:
'200':
description: Bills for payment retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/OutstandingBillsForPaymentResponse'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
components:
schemas:
PaymentTermReference:
type: object
description: 'Enhanced reference to a payment term resource (returned in responses).
Includes full payment term details in addition to id/key.
'
required:
- id
- name
- createdAt
- updatedAt
properties:
id:
type: string
format: uuid
description: Payment term UUID
example: 550e8400-e29b-41d4-a716-446655440000
key:
type:
- string
- 'null'
maxLength: 512
description: Client-defined reference ID if set
example: ERP-PAYTERM-NET30
name:
type: string
description: Payment term name
example: Net 30
description:
type:
- string
- 'null'
description: Payment term description or notes
example: Payment due 30 days from invoice date
days:
type:
- integer
- 'null'
description: Number of days until payment is due
example: 30
quickPayFee:
type:
- number
- 'null'
format: float
description: Quick pay fee percentage (e.g., 0.05 for 5%)
example: 0.05
x-parsed-md-description:
result:
- $$mdtype: Node
errors: []
lines:
- 0
- 1
inline: false
attributes: {}
children:
- $$mdtype: Node
errors: []
lines:
- 0
- 1
inline: false
attributes: {}
children:
- $$mdtype: Node
errors: []
lines:
- 0
- 1
inline: true
attributes:
content: Quick pay fee percentage (e.g., 0.05 for 5%)
children: []
type: text
annotations: []
slots: {}
type: inline
annotations: []
slots: {}
type: paragraph
annotations: []
slots: {}
apOnly:
type:
- boolean
- 'null'
description: Whether this payment term is for accounts payable only
example: false
doNotUse:
type:
- boolean
- 'null'
description: Flag to prevent using this payment term for new transactions
example: false
createdAt:
type: string
format: date-time
description: When the payment term was created
example: '2025-01-15T10:00:00Z'
updatedAt:
type: string
format: date-time
description: When the payment term was last updated
example: '2025-01-15T14:30:00Z'
deletedAt:
type:
- string
- 'null'
format: date-time
description: When the payment term was soft deleted (null if active)
example: null
CarrierFilterRequest:
type: object
description: Request body for filtering carriers
properties:
filter:
$ref: '#/components/schemas/CarrierFilter'
description: 'Filter criteria (optional - omit to return all carriers).
Note: deletedAt automatically defaults to { isNull: true } unless explicitly overridden.
'
pageSize:
type: integer
minimum: 1
maximum: 250
default: 50
description: Number of results per page
cursor:
type: string
description: Pagination cursor for next page
example:
filter:
and:
- type:
equalTo: TRUCKLOAD
- status:
equalTo: ACTIVE
- inFmcsa:
equalTo: true
pageSize: 50
TruckloadCarrierInput:
allOf:
- $ref: '#/components/schemas/CarrierInputBase'
- type: object
description: Input for creating a truckload carrier
required:
- type
properties:
type:
type: string
enum:
- TRUCKLOAD
description: Carrier type discriminator (must be TRUCKLOAD)
example: TRUCKLOAD
insuranceCompany:
type: string
description: Insurance company name
example: State Farm Insurance
insuranceAgent:
type: string
description: Insurance agent name
example: John Smith
insuranceAgentPhone:
type: string
description: Insurance agent phone number
example: +1-555-123-4567
insuranceAuthorityDate:
type: string
format: date-time
description: Date insurance authority was granted
example: '2025-01-01T00:00:00Z'
insuranceExpirationDate:
type: string
format: date-time
description: Insurance policy expiration date
example: '2025-12-31T23:59:59Z'
insuranceAutoLiabilityLimit:
type: number
format: float
description: Auto liability insurance limit (in dollars)
example: 1000000
insuranceCargoLiabilityLimit:
type: number
format: float
description: Cargo liability insurance limit (in dollars)
example: 100000
insuranceGeneralLiabilityLimit:
type: number
format: float
description: General liability insurance limit (in dollars)
example: 1000000
rating:
type: string
description: Carrier safety rating
example: SATISFACTORY
ratingDate:
type: string
format: date
description: Date of last safety rating
example: '2025-01-15'
reviewType:
type: string
description: Type of safety review conducted
example: COMPLIANCE_REVIEW
reviewDate:
type: string
format: date
description: Date of last safety review
example: '2025-01-15'
operatingAbility:
type: string
description: FMCSA operating authority status
example: AUTHORIZED
inFmcsa:
type: boolean
description: Whether carrier is registered in FMCSA database
example: true
usDriverInspections:
type: integer
description: Total number of US driver inspections
example: 100
usDriverInspectionsOos:
type: integer
description: Number of US driver inspections resulting in out-of-service
example: 5
usDriverInspectionsOosPct:
type: number
format: float
description: Percentage of US driver inspections resulting in out-of-service
example: 5
usVehicleInspections:
type: integer
description: Total number of US vehicle inspections
example: 150
usVehicleInspectionsOos:
type: integer
description: Number of US vehicle inspections resulting in out-of-service
example: 8
usVehicleInspectionsOosPct:
type: number
format: float
description: Percentage of US vehicle inspections resulting in out-of-service
example: 5.33
CarrierBase:
type: object
required:
- id
- name
- friendlyId
- status
- createdAt
- updatedAt
properties:
object:
type: string
enum:
- CARRIER
readOnly: true
description: Object type identifier
example: CARRIER
id:
type: string
format: uuid
readOnly: true
description: Unique carrier identifier
example: 550e8400-e29b-41d4-a716-446655440000
friendlyId:
type: string
readOnly: true
description: Human-readable carrier identifier
example: C123456
type:
allOf:
- $ref: '#/components/schemas/CarrierType'
description: Carrier operation type (discriminator field)
name:
type: string
description: Carrier legal name
example: Swift Transportation Co
dbaName:
type:
- string
- 'null'
description: Doing Business As name
example: Swift Logistics
key:
type:
- string
- 'null'
maxLength: 512
description: Client-defined reference identifier
example: ERP-CARRIER-SWIFT-001
email:
type:
- string
- 'null'
format: email
description: Primary email address
example: dispatch@swifttrans.com
phone:
type:
- string
- 'null'
description: Primary phone number
example: +1-555-987-6543
website:
type:
- string
- 'null'
description: Company website URL
example: https://swifttrans.com
status:
type: string
description: Carrier status
example: ACTIVE
statusReason:
type:
- string
- 'null'
description: Reason for current status
example: Active and in good standing
notes:
type:
- string
- 'null'
description: Internal notes about the carrier
example: Preferred carrier for midwest routes
corporateAddress:
anyOf:
- $ref: '#/components/schemas/Address'
- type: 'null'
description: Corporate headquarters address
billingAddress:
anyOf:
- $ref: '#/components/schemas/Address'
- type: 'null'
description: Billing address for invoices
mcNumber:
type:
- string
- 'null'
description: Motor Carrier (MC) number
example: MC-123456
dotNumber:
type:
- string
- 'null'
description: Department of Transportation (DOT) number
example: '1234567'
scac:
type:
- string
- 'null'
description: Standard Carrier Alpha Code
example: SWFT
einNumber:
type:
- string
- 'null'
description: Employer Identification Number
example: 12-3456789
ffNumber:
type:
- string
- 'null'
description: Freight Forwarder (FF) number
example: FF-123456
mxNumber:
type:
- string
- 'null'
description: Mexico carrier registration number
example: MX-123456
rfcNumber:
type:
- string
- 'null'
description: RFC (Mexico tax ID) number
example: ABCD123456XYZ
iataCode:
type:
- string
- 'null'
description: International Air Transport Association code
example: AA
equipments:
type: array
description: Equipment types this carrier operates
items:
$ref: '#/components/schemas/CarrierEquipment'
example:
- VAN
- REEFER
isHazmat:
type:
- boolean
- 'null'
description: Whether carrier is certified to transport hazardous materials
example: false
tsaApproved:
type:
- boolean
- 'null'
description: Whether carrier is TSA approved
example: true
trucks:
type:
- integer
- 'null'
description: Number of trucks in fleet
example: 50
trailers:
type:
- integer
- 'null'
description: Number of trailers in fleet
example: 100
drivers:
type:
- integer
- 'null'
description: Number of drivers employed
example: 75
powerUnits:
type:
- integer
- 'null'
description: Number of power units
example: 50
currency:
anyOf:
- $ref: '#/components/schemas/Currency'
- type: 'null'
description: Preferred currency for transactions
paymentTerm:
anyOf:
- $ref: '#/components/schemas/PaymentTermReference'
- type: 'null'
description: Payment terms for this carrier
isFactoringPreferred:
type:
- boolean
- 'null'
description: Whether carrier prefers factoring for payment
example: false
goldenCarrierId:
type:
- string
- 'null'
format: uuid
description: Reference to golden carrier record (for deduplication)
example: 7c9e6679-7425-40de-944b-e07fc1f90ae7
paymentMethods:
type: array
description: Payment methods configured for this carrier
items:
$ref: '#/components/schemas/CarrierPaymentMethodReference'
contacts:
type: array
description: Contacts for this carrier
items:
$ref: '#/components/schemas/CarrierContactReference'
createdAt:
type: string
format: date-time
readOnly: true
description: When the carrier was created
example: '2025-01-15T10:00:00Z'
updatedAt:
type: string
format: date-time
readOnly: true
description: When the carrier was last updated
example: '2025-01-15T14:30:00Z'
deletedAt:
type:
- string
- 'null'
format: date-time
readOnly: true
description: When the carrier was soft deleted (null if active)
example: null
RailCarrier:
allOf:
- $ref: '#/components/schemas/CarrierBase'
- type: object
description: Rail freight carrier
required:
- type
properties:
type:
type: string
enum:
- RAIL
description: Carrier type discriminator
example: RAIL
UUIDSearchCriteria:
type: object
required:
- operator
description: Search criteria for UUID fields
properties:
operator:
type: string
enum:
- EQUALS
- NOT_EQUALS
- ONE_OF
- NOT_ONE_OF
- EXISTS
- DOES_NOT_EXIST
description: 'Search operator:
- `EQUALS`: Exact match
- `NOT_EQUALS`: Not equal to
- `ONE_OF`: Matches any UUID in array
- `NOT_ONE_OF`: Does not match any UUID in array
- `EXISTS`: Field has a value (not null)
- `DOES_NOT_EXIST`: Field is null
'
values:
type: array
items:
type: string
format: uuid
description: Array of UUIDs for ONE_OF or NOT_ONE_OF operators
example:
- 550e8400-e29b-41d4-a716-446655440000
- 550e8400-e29b-41d4-a716-446655440001
example:
operator: EQUALS
values:
- 550e8400-e29b-41d4-a716-446655440000
Error:
type: object
required:
- error
- message
properties:
error:
type: string
description: Error code
message:
type: string
description: Human-readable error message
PaymentMethodType:
type: string
description: Payment method type
enum:
- ACH_WIRE
- ZELLE
- VENMO
- ACH
- CHECK
- WIRE
- CAD_EFT
- TRIUMPH_PAY
- COMCHECK
- EFS
- ECHECK
example: ACH
ValidationError:
type: object
required:
- error
- message
- details
properties:
error:
type: string
description: Error code
example: validation_error
message:
type: string
description: Human-readable error message
details:
type: array
description: Validation error details
items:
type: object
required:
- field
- message
properties:
field:
type: string
# --- truncated at 32 KB (121 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mvmnt/refs/heads/main/openapi/mvmnt-carriers-api-openapi.yml