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/cargomatic-shipper-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Cargomatic Public Authorization Shipper API
description: '## Welcome to the Cargomatic API!
Our quoting, booking, and status APIs allow you to automate common workflows similar to features available within the Cargomatic portal.
Please reach out to [apisupport@cargomatic.com](apisupport@cargomatic.com) for sandbox credentials to get started.'
version: 3.0.0
servers:
- url: https://api-acceptance.cargomatic.com
tags:
- name: Shipper
description: Endpoints for Cargomatic Shippers
paths:
/quotes:
post:
operationId: createQuote
summary: Creates a quote
description: 'Creates a quote based on the factors provided in the request body.
This API endpoint is only accessible by Shippers and Admins!'
tags:
- Shipper
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteRequest'
responses:
'200':
description: 'Status Code 200: Successful Response - the request was successful!'
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteResponse'
'400':
description: 'Status Code 400: Bad Request Response - the request header and/or body is invalid'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
'500':
description: 'StatusCode 500: Internal Server Error Response - there''s a problem with the Public API service'
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorResponse'
/orders:
post:
operationId: createOrder
summary: Creates an order
description: Creates an order based on the factors provided in the request body. This API endpoint can only be accessed by Shippers!
tags:
- Shipper
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OrderRequest'
responses:
'200':
description: 'Status Code 200: Successful Response - the request was successful!'
content:
application/json:
schema:
$ref: '#/components/schemas/OrderResponse'
'400':
description: 'Status Code 400: Bad Request Response - the request header and/or body is invalid'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
'500':
description: 'StatusCode 500: Internal Server Error Response - there''s a problem with the Public API service'
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorResponse'
/shipments:
post:
operationId: createShipment
summary: Create a shipment/offer
description: 'Creates a shipment based on the factors provided in the request body. This API endpoint can only be accessed by Admins and Shippers!
`action` - add, update, cancel'
tags:
- Shipper
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OfferRequest'
responses:
'200':
description: 'Status Code 200: Successful Response - the request was successful!'
content:
application/json:
schema:
$ref: '#/components/schemas/OfferResponse'
'400':
description: 'Status Code 400: Bad Request Response - the request header and/or body is invalid'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
'500':
description: 'StatusCode 500: Internal Server Error Response - there''s a problem with the Public API service'
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorResponse'
get:
operationId: listShipments
summary: Lists all shipments with a pagination option
tags:
- Shipper
security:
- bearerAuth: []
parameters:
- name: page
in: query
description: Page number, indicates the page of results that you want returned. Default value is 1.
required: false
schema:
type: number
- name: per_page
in: query
description: \# of results per page
required: false
schema:
type: number
responses:
'200':
description: 'Status Code 200: Successful Response - the request was successful!'
content:
application/json:
schema:
$ref: '#/components/schemas/ShipmentResponse'
'400':
description: 'Status Code 400: Bad Request Response - the request header and/or body is invalid'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
'500':
description: 'StatusCode 500: Internal Server Error Response - there''s a problem with the Public API service'
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorResponse'
/shipments/status:
get:
operationId: shipmentStatus
summary: Returns a shipment with status info
description: ''
tags:
- Shipper
security:
- bearerAuth: []
parameters:
- name: shipmentReference
in: query
description: Shipment Id
required: true
schema:
type: string
responses:
'200':
description: 'Status Code 200: Successful Response - the request was successful!'
content:
application/json:
schema:
$ref: '#/components/schemas/ShipmentResponse'
'400':
description: 'Status Code 400: Bad Request Response - the request header and/or body is invalid'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
'500':
description: 'StatusCode 500: Internal Server Error Response - there''s a problem with the Public API service'
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorResponse'
/webhooks/loads:
post:
operationId: processLoads
summary: Process loads
tags:
- Shipper
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json: {}
responses:
'204':
description: Status 204 Response
/stops/complete:
post:
operationId: completeStop
summary: Mark a stop as complete
description: Marks a stop as "complete". The `stopId`, and `shipmentReference` is required for all shipment types. If the shipment is shorthaul, only admins can access this route and file data must also be provided. If the shipment is drayage, `chassis`, `trailerId`, and `containerId` may be required.
tags:
- Shipper
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CompleteStopRequest'
responses:
'200':
description: 'Status Code 200: Successful Response - the request was successful!'
content:
application/json:
schema:
$ref: '#/components/schemas/CompleteStopResponse'
'400':
description: 'Status Code 400: Bad Request Response - the request header and/or body is invalid'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
'500':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorResponse'
/stops/transition:
post:
operationId: arriveAtStop
summary: Mark a stop as "arrived"
description: 'Marks a stop as "arrived". `status`, `stopId`, and `shipmentReference` are required. The only acceptable value for `status` is `arrived` (see example request body). If `date` is not provided, the current time will be used as the arrival time.
Admins, shippers, carriers, and drivers are authorized to use this API endpoint.'
tags:
- Shipper
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ArriveAtStopRequest'
responses:
'200':
description: 'Status Code 200: Successful Response - the request was successful!'
content:
application/json:
schema:
$ref: '#/components/schemas/ArriveAtStopResponse'
'400':
description: 'Status Code 400: Bad Request Response - the request header and/or body is invalid'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
'500':
description: 'Status Code 500: Internal Server Error Response - there''s a problem with the Public API service'
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorResponse'
/stops/add:
post:
operationId: addStop
summary: Add additional stops to a shipment
description: '`shipmentReference` and at least one new stop are required. Each new stop must include `address`, `action`, `name`, `sequence`, `windowStart`, `windowEnd`, and other fields dependent on the type of shipment.
For US-based clients, the address must include street address, city, state, and zipcode. The `action` is either "pickup" or "delivery". The sequence number is sequence of the stop within the shipment. The `name` of the stop is the location name. `windowStart` is when the pickup/delivery window starts for that stop. `windowEnd` is when the pickup/delivery window ends for that stop.
If the shipment is shorthaul, the new stop must include load data and it must be indicated whether the cargo is a full truckload or not. If the shipment is drayage, the new stop must indicate whether the container is empty or not and location must be included.'
tags:
- Shipper
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddStopRequest'
responses:
'200':
description: 'Status Code 200: Successful Response - the request was successful!'
content:
application/json:
schema:
$ref: '#/components/schemas/AddStopResponse'
'400':
description: 'Status Code 400: Bad Request Response - the request header and/or body is invalid'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
'500':
description: 'Status Code 500: Internal Server Error Response - there''s a problem with the Public API service'
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorResponse'
components:
schemas:
BadRequestResponse:
type: object
properties:
message:
type: string
example:
message: Invalid Request Body
OfferRequest:
type: object
required:
- action
- shipment
properties:
action:
type: string
example: add
shipment:
type: object
properties:
reference_numbers:
type: array
items:
type: object
properties:
name:
type: string
example: My Primary Reference
primary:
type: boolean
value:
type: string
example: cargomatic123
shipment_type:
type: string
example: shorthaul
shipper:
type: string
example: 62879ea006bfa2d915861ba6
stops:
type: array
items:
type: object
properties:
sequence:
type: integer
format: int32
example: 1
location:
type: object
properties:
name:
type: string
example: Cargomatic HQ
address:
type: string
example: 211 E. Ocean Blvd Long Beach CA 90802
suite_or_apt:
type: string
example: Suite 350
loads:
type: array
items:
type: object
properties:
type:
type: string
example: pallets
quantity:
type: integer
format: int32
example: 5
width:
type: integer
format: int32
example: 40
height:
type: integer
format: int32
example: 48
length:
type: integer
format: int32
example: 40
weight:
type: integer
format: int32
example: 2500
contacts:
type: array
items:
type: object
properties:
name:
type: string
example: support
email:
type: string
example: support@cargomatic.com
phone:
type: string
example: 555-555-5555
action:
type: string
example: pickup
window_start:
type: string
format: date-time
example: 2022-03-31 18:00:00+00:00
window_end:
type: string
format: date-time
example: 2022-03-31 21:00:00+00:00
reference_numbers:
type: array
items:
type: object
properties:
name:
type: string
example: My Stop Reference Number
value:
type: string
example: cargomatic123456
loads:
type: array
items:
type: object
properties:
type:
type: string
example: pallets
quantity:
type: integer
format: int32
example: 5
width:
type: integer
format: int32
example: 40
height:
type: integer
format: int32
example: 48
length:
type: integer
format: int32
example: 40
weight:
type: integer
format: int32
example: 2500
accessorials:
type: array
items:
type: object
properties:
type:
type: string
example: pallet_jack
weight:
type: integer
format: int32
example: 2500
notes:
type: string
example: These are my notes!
AddStopRequest:
type: object
required:
- shipmentReference
- newStops
properties:
shipmentReference:
type: string
example: ABC-123
newStops:
type: array
items:
type: object
required:
- sequence
- address
- action
- name
- windowStart
- windowEnd
properties:
sequence:
type: number
example: 1
address:
type: string
example: 1550 Cota Ave, Long Beach, CA 90813, USA
action:
type: string
example: pickup
name:
type: string
example: Atlas Marine
windowStart:
type: string
example: '2023-01-01T21:00:00.000Z'
windowEnd:
type: string
example: '2024-01-01T21:00:00.000Z'
fullTruckload:
type: boolean
example: false
isEmptyContainer:
type: boolean
example: true
loads:
type: array
items:
type: object
properties:
type:
type: string
example: pallets
quantity:
type: number
width:
type: number
length:
type: number
OrderRequestEquipments:
type: object
required:
- equipment_id
- _equipmentType
properties:
equipment_id:
type: string
example: AAAU1231234
_equipmentType:
type: string
example: container
OfferResponse:
type: object
properties:
action:
type: string
example: add
shipment:
type: object
properties:
shipment_type:
type: string
example: shorthaul
shipper:
type: string
example: shipper@cargomatic.com
reference_numbers:
type: array
items:
type: object
properties:
name:
type: string
example: My Primary Reference
value:
type: string
example: cargomatic123
primary:
type: boolean
stops:
type: array
items:
type: object
properties:
sequence:
type: integer
format: int32
example: 1
location:
type: object
properties:
name:
type: string
example: Cargomatic HQ
address:
type: string
example: 211 E. Ocean Blvd Long Beach CA 90802
suite_or_apt:
type: string
example: Suite 350
loads:
type: array
items:
type: object
properties:
type:
type: string
example: pallets
quantity:
type: integer
format: int32
example: 5
width:
type: integer
format: int32
example: 40
height:
type: integer
format: int32
example: 48
length:
type: integer
format: int32
example: 40
weight:
type: integer
format: int32
example: 2500
contacts:
type: array
items:
type: object
properties:
name:
type: string
example: support
email:
type: string
example: support@cargomatic.com
phone:
type: string
example: 555-555-5555
action:
type: string
example: pickup
window_start:
type: string
format: date-time
example: 2022-03-31 18:00:00+00:00
window_end:
type: string
format: date-time
example: 2022-03-31 21:00:00+00:00
reference_numbers:
type: array
items:
type: object
properties:
name:
type: string
example: My Stop Reference Number
value:
type: string
example: cargomatic123456
loads:
type: array
items:
type: object
properties:
type:
type: string
example: pallets
quantity:
type: integer
format: int32
example: 5
width:
type: integer
format: int32
example: 40
height:
type: integer
format: int32
example: 48
length:
type: integer
format: int32
example: 40
weight:
type: integer
format: int32
example: 2500
accessorials:
type: array
items:
type: object
properties:
type:
type: string
example: pallet_jack
weight:
type: integer
format: int32
example: 2500
notes:
type: string
example: These are my notes!
AddStopResponse:
type: object
properties:
success:
type: boolean
shipment:
type: object
properties:
market:
type: object
properties:
name:
type: string
example: San Antonio
code:
type: string
example: SAT
_id:
type: string
shipment_id:
type: string
example: ABC-123
stops:
type: array
items:
type: object
properties:
_id:
type: string
example: stopID123
action:
type: string
example: deliver
full_truckload:
type: boolean
example: false
location:
type: array
items:
type: object
properties:
id:
type: string
example: 1234567890z9310
address:
type: string
example: 211 E. Ocean Blvd, Suite 350, Long Beach, CA 90802, USA
street:
type: string
example: 211 E. Ocean Blvd
suite_or_apt:
type: string
example: Suite 350
zipcode:
type: string
example: '90802'
city:
type: string
example: Long Beach
state:
type: string
example: CA
lng:
type: number
example: -123.456789
lat:
type: number
example: 37.1234567
status:
type: string
example: unstarted
shipment_type:
type: string
example: shorthaul
sequence:
type: number
example: 2
window_start:
type: string
example: 2023-07-24 23:30:00+00:00
window_end:
type: string
example: 2023-07-24 23:30:00+00:00
OrderRequest:
type: object
required:
- arriving
- delivering
- master_bill_of_lading
- movement_type
- order_type
- originating
- reference_numbers
- service_type
- shipper
properties:
arriving:
$ref: '#/components/schemas/OrderRequestLocation'
contacts:
type: array
items:
type: object
properties:
name:
type: string
example: Dispatch
phone:
type: string
example: 555-555-5555
delivering:
$ref: '#/components/schemas/OrderRequestLocation'
equipments:
type: array
items:
$ref: '#/components/schemas/OrderRequestEquipments'
estimated_arrival:
type: string
example: 2022-09-08Z00:00.00Z
master_bill_of_lading:
type: string
example: ABCU12345678
movement_type:
type: string
example: delivery
description: Valid entries for `movement_type` and `service_type` are `pickup` and `delivery`.
ocean_carrier_scac:
type: string
example: MAEU
description: The SCAC code for an Ocean Carrier. If the SCAC code is not a known Ocean Carrier SCAC, enter `Custom`.
custom_ocean_carrier_scac:
type: string
example: AAAAAA
description: This `custom_ocean_carrier_scac` is required when the value for `ocean_carrier_scac` is `Custom`.
order_type:
type: string
example: import
description: Valid entries for `order_type` are 'import', 'export', 'domestic', 'reposition'.
originating:
type: object
properties:
name:
type: string
example: Port of Tianjin
address:
type: string
example: XPMV+74M Binhai Tianjin China 300456
reference_numbers:
type: array
items:
type: object
required:
- name
- value
description: '`name` is the identifier for the reference number that you use. `value` is the reference number. Examples are ''receipt'' and ''invoice''. For example, if you want to use ''Invoice #002'' as a reference, the name would be `invoice` and the `value` would be `002`.'
properties:
name:
type: string
example: delivery_order
value:
type: string
example: LGB0123456789
service_type:
type: string
example: live
shipper:
type: string
example: 63108dce37cc4180163047d9
description: '`shipper` is the shipper ID.'
shipments_staging:
type: array
items:
$ref: '#/components/schemas/OrderRequestShipmentsStaging'
special_instructions:
type: string
example: Please deliver this freight!
steamship_or_railroad:
type: string
example: BNSF
description: If there is no ocean carrier associated with this shipment, `steamship_or_railroad` is required.
total_weight:
type: integer
format: int32
example: 35000
vessel_or_rail:
type: string
example: ELEONORA
QuoteRequestStops:
type: object
required:
- action
- location
properties:
action:
type: string
example: pickup
description: Acceptable values for `action` are `pickup` and `deliver`.
location:
type: object
required:
- name
- address
properties:
name:
type: string
example: Atlas Marine
address:
type: string
example: 1550 Cota Ave Long Beach CA 90813
ArriveAtStopResponse:
type: object
properties:
success:
type: boolean
data:
type: object
properties:
shipmentReference:
type: string
status:
type: string
example: arrived
stopId:
type: string
meta:
type: object
properties:
date:
type: string
OrderRequestShipmentsStaging:
type: object
properties:
weight:
type: integer
format: int32
example: 35000
stops:
type: array
items:
$ref: '#/components/schemas/OrderRequestShipmentsStagingStops'
OrderResponse:
type: object
properties:
order:
type: object
properties:
order_id:
type: string
example: ORD-8246
order_type:
type: string
example: import
reference_numbers:
type: array
items:
type: object
properties:
name:
type: string
example: delivery_order
value:
type: string
example: LGB0123456789
service_type:
type: string
example: live
movement_type:
type: string
example: delivery
order_received_date:
type: string
# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cargomatic/refs/heads/main/openapi/cargomatic-shipper-api-openapi.yml