Echo Global Logistics shipments API
GET and POST to shipment endpoints.
GET and POST to shipment endpoints.
openapi: 3.0.0
info:
contact:
name: Echo Global Logistics
url: https://www.echo.com
email: info@echo.com
version: 1.0.0
title: Echo Authorizer documents shipments API
description: 'All API operations require an access token to be passed in the Authorization Header for each request. The token type is an OAuth 2.0 Bearer token. To get the token you have to call the /token operation of this API and provide **client_id** and **client_secret**.
**`Access Token Lifecycle:`** When you recieve an Access Token, it is valid for defined amount of time. The expiration time for the token is returned in the response along with the bearer token. Developers should implement the client application in a way that token will be requested again only after it expires. During this time you don''t have to request new token per each request, but you can simply reuse the same token to access API resources, until the token expires. The invalid token or token expiration will be indicated by HTTP Status Code 401 Unauthorized, then your application has to request new Access token.
**`Access Token Request Rate Limiting:`** The Access Token should be used for the lifetime of the token until it has expired. Partners requesting new tokens multiple times in an hour may be subject to rate limiting.
**`API Request Rate Limiting:`** Please do not exceed more than 3 requests per second. Partners who exceed this limit may be subject to rate limiting.'
servers:
- description: SwaggerHub API Auto Mocking
url: https://virtserver.swaggerhub.com/echogl/Echo_Authorizer_Public/1.0.0
- description: Production environment.
url: https://auth.echo.com
tags:
- name: shipments
description: GET and POST to shipment endpoints.
paths:
/v2/shipments/LTL:
post:
operationId: CreateShipmentLTL
summary: Accepts an LTL shipment for creation
description: Create a Less Than Truckload (LTL) shipment.
tags:
- shipments
security:
- basicAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ShipmentRequest'
responses:
'200':
description: Shipment created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ShipmentResponse'
'400':
description: Bad Request
'401':
description: Unauthorized
/v2/shipments/TL:
post:
operationId: CreateShipmentTL
summary: Accepts a TL shipment for creation
description: Create a Truckload (TL) shipment.
tags:
- shipments
security:
- basicAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ShipmentRequest'
responses:
'200':
description: Shipment created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ShipmentResponse'
'400':
description: Bad Request
'401':
description: Unauthorized
/v2/shipments/PL:
post:
operationId: CreateShipmentPL
summary: Accepts a PL shipment for creation
description: Create a Partial Load (PL) shipment.
tags:
- shipments
security:
- basicAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ShipmentRequest'
responses:
'200':
description: Shipment created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ShipmentResponse'
'400':
description: Bad Request
'401':
description: Unauthorized
/v2/shipments/{Id}:
get:
operationId: GetShipment
summary: Returns a shipment
description: Retrieve shipment details by shipment ID.
tags:
- shipments
security:
- basicAuth: []
parameters:
- name: Id
in: path
required: true
schema:
type: string
description: The Echo shipment ID
responses:
'200':
description: Shipment details
content:
application/json:
schema:
$ref: '#/components/schemas/ShipmentResponse'
'401':
description: Unauthorized
'404':
description: Shipment not found
/v2/shipments/{Id}/status:
get:
operationId: GetShipmentStatus
summary: Returns shipment status
description: Retrieve the current status of a shipment.
tags:
- shipments
security:
- basicAuth: []
parameters:
- name: Id
in: path
required: true
schema:
type: string
responses:
'200':
description: Shipment status
'401':
description: Unauthorized
'404':
description: Not found
/v2/shipments/{Id}/tracking:
get:
operationId: GetShipmentTracking
summary: Returns tracking information for a shipment
description: Retrieve real-time tracking information for a shipment.
tags:
- shipments
security:
- basicAuth: []
parameters:
- name: Id
in: path
required: true
schema:
type: string
responses:
'200':
description: Tracking information
'401':
description: Unauthorized
'404':
description: Not found
components:
schemas:
Commodity:
type: object
description: Freight commodity details
properties:
description:
type: string
pieces:
type: integer
weight:
type: number
weightUnit:
type: string
enum:
- LB
- KG
freightClass:
type: string
ShipmentResponse:
type: object
description: Shipment response object
properties:
shipmentId:
type: string
description: Echo shipment ID
status:
type: string
description: Current shipment status
proNumber:
type: string
description: PRO number assigned to the shipment
ShipmentRequest:
type: object
description: Request body for creating a shipment
properties:
origin:
$ref: '#/components/schemas/Location'
destination:
$ref: '#/components/schemas/Location'
pickupDate:
type: string
format: date
description: Requested pickup date (YYYY-MM-DD)
commodities:
type: array
items:
$ref: '#/components/schemas/Commodity'
required:
- origin
- destination
- pickupDate
Location:
type: object
description: Shipment location
required:
- companyName
- address1
- city
- stateOrProvince
- postalCode
- country
- locationType
properties:
companyName:
type: string
address1:
type: string
address2:
type: string
city:
type: string
stateOrProvince:
type: string
minLength: 2
maxLength: 2
postalCode:
type: string
minLength: 5
country:
type: string
enum:
- US
- CA
- MX
locationType:
type: string
enum:
- BUSINESS
- CONSTRUCTIONSITE
- RESIDENTIAL
- TRADESHOW
securitySchemes:
basicAuth:
type: http
scheme: basic
apiKey:
type: apiKey
name: x-api-key
in: header