Coyote Logistics Shipper - Quoting APIs API
The Shipper - Quoting APIs API from Coyote Logistics — 2 operation(s) for shipper - quoting apis.
The Shipper - Quoting APIs API from Coyote Logistics — 2 operation(s) for shipper - quoting apis.
openapi: 3.0.1
info:
title: CoyoteGO Associated Entities API Shipper - Quoting APIs API
description: "# Introduction\r\n\r\nWelcome to CoyoteGO's API Documentation. Carriers can use our APIs to search for and book themselves on available loads and \r\nsubmit or retrieve load related documents. Shippers can access instant Truckload and Less-than-Truckload quotes, build loads, \r\nand retrieve real time tracking updates.\r\n\r\nIf you're an existing Coyote Carrier or Shipper, and want to utilize the API, you can request an API key through your \r\nCoyote sales rep or by emailing apimanagement@coyote.com.\r\n\r\n__North American Partners__: By accessing or using the CoyoteGO APIs or the API Technical Documentation for the CoyoteGO APIs,\r\nyou are agreeing to the [Coyote North American API Terms of Use](https://www.coyote.com/terms-privacy/#api).\r\n\r\n__European Partners__: Your access and use of the CoyoteGO APIs or the API Technical Documentation for the CoyoteGO APIs is \r\nsubject to your signed [Coyote European API Agreement](https://coyote.na1.echosign.com/public/esignWidget?wid=CBFCIBAA3AAABLblqZhC8nwKw53LddjQC3fsNIKa4hPi7iJT2vNmxbbeN2ePV-SI-nKqSjzcUifUXT0oyVdM*)\r\n\r\n## Authentication\r\n\r\nOnce you've received your API key, you can now access the sandbox environment where you can begin to work with the endpoints.\r\n\r\nTo retrieve a token, POST to api.coyote.com/connect/token, specifying the following token request parameters. Token requests must be form-urlencoded.\r\n\r\nclient_id (provided by integrations team) \r\nclient_secret (provided by integrations team) \r\ngrant_type (client_credentials) \r\n\r\nExample:\r\n\r\n```\r\nPOST /connect/token\r\n\r\n client_id=client1&\r\n client_secret=api_key&\r\n grant_type=client_credentials&\r\n```\r\n\r\nPass your token as a bearer token in an Authorization header.\r\n\r\nOf note:\r\nThe API is organized around REST. All requests should be made over SSL. All API request and response bodies are encoded in JSON. \r\n\r\nTo test your requests and responses, use api-sandbox.coyote.com with your sandbox API key.\r\n\r\n**NOTE:** *We are migrating to a persistent testing environment that will respond with real responses instead of mock data. We will be notifying shippers as we move them over to this environment. \r\nIf provided with a Demo API key please use **api.demo.coyote.com** for testing the APIs.*\r\n"
contact:
name: API Management
email: apimanagement@coyote.com
version: v0.1.1.2549
x-logo:
url: https://coyote.com/wp-content/uploads/2020/02/APILogo-transparent.png
altText: Coyote
servers:
- url: https://api.demo.coyote.com
description: Demo
- url: https://api.coyote.com
description: Production
- url: https://api-sandbox.coyote.com
description: Sandbox
tags:
- name: Shipper - Quoting APIs
paths:
/api/v1/SpotQuotes:
x-code-samples:
- lang: Java
source: "HttpResponse response = Unirest.post(\"https://api-sandbox.coyote.com/api/v1/SpotQuotes\")\r\n.header(\"content-type\", \"application/json\")\r\n.header(\"Authorization\", \"Bearer TOKEN\")\r\n.body(\"{\r\n \"EquipmentTypeId\": \"V\",\r\n \"Origin\": {\r\n \"CityName\": \"Chicago\",\r\n \"StateCode\": \"IL\",\r\n \"CountryCode\": \"US\",\r\n \"PostalCode\": \"60647\"\r\n },\r\n \"Destination\": {\r\n \"CityName\": \"Madison\",\r\n \"StateCode\": \"WI\",\r\n \"CountryCode\": \"US\",\r\n \"PostalCode\": \"53703\"\r\n },\r\n \"PickUpDateUTC\": \"2026-06-18T18:33:48.5457728Z\",\r\n \"MinTemperature\": null,\r\n \"MaxTemperature\": null,\r\n \"Weight\": 100.0,\r\n \"Commodity\": \"Sample Commodity\",\r\n \"EquipmentLength\": 53.0,\r\n \"IsHazmat\": false,\r\n \"IsDropTrailer\": false,\r\n \"CustomerShipmentId\": \"CUST1234\"\r\n}\")\r\n.asString();"
- lang: C#
source: "var client = new RestClient(\"https://api-sandbox.coyote.com/api/v1/SpotQuotes\");var request = new RestRequest(Method.POST);\r\nrequest.AddHeader(\"Authorization\", \"Bearer TOKEN\");\r\nrequest.AddHeader(\"content-type\", \"application/json\");\r\nrequest.AddParameter(\"application/json\", @\"{\r\n \"EquipmentTypeId\": \"V\",\r\n \"Origin\": {\r\n \"CityName\": \"Chicago\",\r\n \"StateCode\": \"IL\",\r\n \"CountryCode\": \"US\",\r\n \"PostalCode\": \"60647\"\r\n },\r\n \"Destination\": {\r\n \"CityName\": \"Madison\",\r\n \"StateCode\": \"WI\",\r\n \"CountryCode\": \"US\",\r\n \"PostalCode\": \"53703\"\r\n },\r\n \"PickUpDateUTC\": \"2026-06-18T18:33:48.5457728Z\",\r\n \"MinTemperature\": null,\r\n \"MaxTemperature\": null,\r\n \"Weight\": 100.0,\r\n \"Commodity\": \"Sample Commodity\",\r\n \"EquipmentLength\": 53.0,\r\n \"IsHazmat\": false,\r\n \"IsDropTrailer\": false,\r\n \"CustomerShipmentId\": \"CUST1234\"\r\n}\", ParameterType.RequestBody);\r\nIRestResponse response = client.Execute(request);"
- lang: curl
source: "curl -k -H 'Content-Type: application/json'\\\r\n-H 'Authorization: Bearer TOKEN'\\\r\n-X POST -d '{\r\n \"EquipmentTypeId\": \"V\",\r\n \"Origin\": {\r\n \"CityName\": \"Chicago\",\r\n \"StateCode\": \"IL\",\r\n \"CountryCode\": \"US\",\r\n \"PostalCode\": \"60647\"\r\n },\r\n \"Destination\": {\r\n \"CityName\": \"Madison\",\r\n \"StateCode\": \"WI\",\r\n \"CountryCode\": \"US\",\r\n \"PostalCode\": \"53703\"\r\n },\r\n \"PickUpDateUTC\": \"2026-06-18T18:33:48.5457728Z\",\r\n \"MinTemperature\": null,\r\n \"MaxTemperature\": null,\r\n \"Weight\": 100.0,\r\n \"Commodity\": \"Sample Commodity\",\r\n \"EquipmentLength\": 53.0,\r\n \"IsHazmat\": false,\r\n \"IsDropTrailer\": false,\r\n \"CustomerShipmentId\": \"CUST1234\"\r\n}' 'https://api-sandbox.coyote.com/api/v1/SpotQuotes'"
post:
tags:
- Shipper - Quoting APIs
summary: Gets a TL Spot Quote
description: "Allows Shippers to retrieve a Truckload quote. Given a set of shipment attributes as input, Coyote will send back a \r\nquote with a spot quote ID (“spotQuoteId”). This quote includes fuel, unless otherwise specified at the time of integration, \r\nand will be valid for 5 hours. If you want to proceed with the quote and book a shipment, use our load build request endpoint.\\\r\n*Note: Truckload spot quotes are currently unsupported in Europe.*"
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.SpotQuoteRequest'
example:
equipmentTypeId: V
origin:
cityName: Chicago
stateCode: IL
countryCode: US
postalCode: '60647'
destination:
cityName: Madison
stateCode: WI
countryCode: US
postalCode: '53703'
pickUpDateUTC: '2026-06-18T18:33:48.5083739Z'
minTemperature: null
maxTemperature: null
weight: 100.0
commodity: Sample Commodity
equipmentLength: 53.0
isHazmat: false
isDropTrailer: false
customerShipmentId: CUST1234
responses:
'200':
description: The spot quote was successfully retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.SpotQuote'
example:
spotQuoteId: 342354
customerShipmentId: CUST1234
origin:
cityName: Chicago
stateCode: IL
countryCode: US
postalCode: '60647'
destination:
cityName: Madison
stateCode: WI
countryCode: US
postalCode: '50515'
equipmentTypeId: 1
pickUpDateUTC: '2026-06-19T13:33:48.5084327-05:00'
validUntilUtc: '2026-06-13T18:33:48.5084355-05:00'
totalRate: 837.5
rateLineItems:
- rateCode: FR
description: Flat Rate
unitRate: 650.0
units: 1.0
totalRate: 650.0
currency: USD
- rateCode: '405'
description: Fuel Surcharge
unitRate: 1.25
units: 150.0
totalRate: 187.5
currency: USD
'400':
description: Invalid request
'401':
description: Unauthorized
'403':
description: Forbidden
/api/v1/LTLSpotQuotes:
post:
tags:
- Shipper - Quoting APIs
summary: Gets an LTL Spot Quote
description: "Allows Shippers to retrieve a Less-Than-Truckload quote. Given a set of shipment attributes as input, Coyote will \r\nsend back an LTL quote with an LTL spot quote ID (“ltlSpotQuoteId”). This quote includes the list of carriers and \r\ntheir respective quotes and is valid for 7 days. If you want to proceed with the quote and book a shipment, \r\nuse our load build request endpoint and specify the Carrier Quote ID.\\\r\n*Note: Less-than-Truckload spot quotes are currently unsupported in Europe.\\\r\nSame day rate requests will be returned, however pickups may not be accommodated until next day pending carrier availability.*"
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.LTLSpotQuoteRequest'
example:
origin:
cityName: Chicago
stateCode: IL
countryCode: US
postalCode: '60647'
pickupDate: '2026-06-14T13:33:48.5306447-05:00'
originRequirements:
insideStop: false
residentialStop: false
tradeshowStop: false
liftGateStop: false
sortSegregate: false
limitedAccessType: Undefined
destination:
cityName: Madison
stateCode: WI
countryCode: US
postalCode: '50515'
destinationRequirements:
appointmentRequired: false
carrierNotifyBeforeArrival: false
insideStop: false
residentialStop: false
tradeshowStop: false
liftGateStop: false
sortSegregate: false
limitedAccessType: Undefined
equipmentType: V
commodities:
- description: Sample Commodity
palletCount: 5
freightClass: 9
weight: 100.0
length: 75.0
height: 50.0
width: 50.0
isHazmat: false
nmfcNumber: null
nmfcSubNumber: null
isStackable: false
guaranteedShipment: false
protectFromFreeze: false
responses:
'200':
description: Successfully retrieved LTL Rates
content:
application/json:
schema:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.LTLSpotQuote'
example:
ltlSpotQuoteId: efb53ca3-7c59-4981-b8fb-27a418e2f5b2
carrierQuotes:
- quoteID: CAR12334
carrierName: Carrier XYZ
scac: ASDF
currencyType: USD
transitTime: 1
interline: Direct
deliveryDate: '2026-06-15T13:33:48.5307417-05:00'
totalRate: 150.0
freightCharge: 75.0
fuelSurcharge: 25.0
accessorialCharges: 50.0
accessorials:
- chargeDescription: Inside Stop Charge
amount: 25.0
- chargeDescription: Guaranteed Delivery Fee
amount: 25.0
- quoteID: CAR34556
carrierName: Carrier ABC
scac: QWER
currencyType: USD
transitTime: 2
interline: Indirect
deliveryDate: '2026-06-16T13:33:48.5307433-05:00'
totalRate: 220.0
freightCharge: 75.0
fuelSurcharge: 25.0
accessorialCharges: 120.0
accessorials:
- chargeDescription: Inside Stop Charge
amount: 40.0
- chargeDescription: Guaranteed Delivery Fee
amount: 80.0
'204':
description: No rates found for the origin and destination
'400':
description: Bad request
'401':
description: Unauthorized
'403':
description: Forbidden
'500':
description: Internal server error
components:
schemas:
Coyote.Systems.ExternalApi.Contracts.Models.Spot.DestinationRequirements:
type: object
properties:
appointmentRequired:
type: boolean
description: Appointment Required
carrierNotifyBeforeArrival:
type: boolean
description: Carrier Notify Before Arrival
insideStop:
type: boolean
description: Stop requires Inside Pickup or Delivery
residentialStop:
type: boolean
description: Residential Stop
tradeshowStop:
type: boolean
description: Trade show Stop
liftGateStop:
type: boolean
description: Stop requires Lift Gate
sortSegregate:
type: boolean
description: Stop requires Sort and Segregate
limitedAccessType:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Enums_LimitedAccessType'
additionalProperties: false
description: Destination stop requirements
Coyote.Systems.ExternalApi.Contracts.Models.Enums_EquipmentType:
enum:
- V
- R
type: string
description: Equipment Type
Coyote.Systems.ExternalApi.Contracts.Models.Spot.CarrierQuote:
type: object
properties:
quoteID:
type: string
description: Unique identifier to the quote based on carrier. Specify this ID as the LoadDetail.SpotQuoteId to build a load using the loads endpoint.
nullable: true
carrierName:
type: string
description: Name of the carrier
nullable: true
scac:
type: string
description: Standard Carrier Alpha Code
nullable: true
currencyType:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Enums_CurrencyType'
transitTime:
type: integer
description: Expected days of transit according to specific carrier
format: int32
interline:
type: string
description: If lane serviced by carrier is Direct or Indirect
nullable: true
deliveryDate:
type: string
description: "Expected delivery date for shipment\r\nWeekends and holidays are excluded"
format: date-time
totalRate:
type: number
description: Total rate includes fuel and accessorial services
format: double
freightCharge:
type: number
description: Freight Charge
format: double
fuelSurcharge:
type: number
description: Fuel Surcharge
format: double
accessorialCharges:
type: number
description: Total of accessorial charges
format: double
accessorials:
type: array
items:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.Accessorial'
description: Accessorials
nullable: true
additionalProperties: false
description: Carrier Quote
Coyote.Systems.ExternalApi.Contracts.Models.Enums_CurrencyType:
enum:
- Undefined
- USD
- CAD
- MXN
- ARS
- BRL
- CLP
- COP
- VEF
- EUR
- GBP
- HUF
- PLN
type: string
description: Currency Type
Coyote.Systems.ExternalApi.Contracts.Models.Spot.RateItem:
type: object
properties:
rateCode:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.RateCode'
description:
type: string
description: Rate code description
nullable: true
unitRate:
type: number
description: Unit amount of the rate line item.
format: double
units:
type: number
description: Number of Units
format: double
totalRate:
type: number
description: Total amount of the rate line item.
format: double
currency:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Enums_Currency'
additionalProperties: false
description: Rate line item that make up the quote
Coyote.Systems.ExternalApi.Contracts.Models.Enums_Currency:
enum:
- USD
- CAD
type: string
description: Currency types
Coyote.Systems.ExternalApi.Contracts.Models.RateCode:
enum:
- Unknown
- FlatRate
- FuelSurcharge
type: string
description: 'Charge codes: FR = FlatRate, 405 = FuelSurCharge, PM = PerMile'
Coyote.Systems.ExternalApi.Contracts.Models.Spot.SpotQuoteRequest:
required:
- customerShipmentId
- destination
- equipmentTypeId
- origin
- pickUpDateUTC
type: object
properties:
equipmentTypeId:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Enums_EquipmentType'
origin:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.LocationData'
destination:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.LocationData'
pickUpDateUTC:
type: string
description: Load Pickup Date UTC
format: date-time
minTemperature:
type: number
description: Minimum Temperature (required if Equipment Type = R)
format: double
nullable: true
maxTemperature:
type: number
description: Maximum Temperature (required if Equipment Type = R)
format: double
nullable: true
weight:
type: number
description: Weight
format: double
nullable: true
commodity:
type: string
description: Commodity
nullable: true
equipmentLength:
type: number
description: Equipment Length
format: double
nullable: true
isHazmat:
type: boolean
description: Load is Hazmat __(currently unsupported)__
nullable: true
isDropTrailer:
type: boolean
description: Load Requires Drop Trailer __(currently unsupported)__
nullable: true
customerShipmentId:
type: string
description: Shipment ID
additionalProperties: false
description: Spot Quote Request
Coyote.Systems.ExternalApi.Contracts.Models.Spot.OriginRequirements:
type: object
properties:
insideStop:
type: boolean
description: Stop requires Inside Pickup or Delivery
residentialStop:
type: boolean
description: Residential Stop
tradeshowStop:
type: boolean
description: Trade show Stop
liftGateStop:
type: boolean
description: Stop requires Lift Gate
sortSegregate:
type: boolean
description: Stop requires Sort and Segregate
limitedAccessType:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Enums_LimitedAccessType'
additionalProperties: false
description: Origin stop requirements
Coyote.Systems.ExternalApi.Contracts.Models.Spot.SpotQuote:
type: object
properties:
spotQuoteId:
type: integer
description: SpotQuoteId - Specify this ID as the LoadDetail.SpotQuoteId to build a load using the loads endpoint.
format: int32
customerShipmentId:
type: string
description: CustomerShipmentId
nullable: true
origin:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.LocationData'
destination:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.LocationData'
equipmentTypeId:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Enums_EquipmentType'
pickUpDateUTC:
type: string
description: PickupDateUTC
format: date-time
validUntilUtc:
type: string
description: ValidUntilUtc
format: date-time
totalRate:
type: number
description: "TotalRate\r\n__Total rate includes fuel__"
format: double
rateLineItems:
type: array
items:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.RateItem'
description: List of rate items that make up the total rate for this quote
nullable: true
additionalProperties: false
description: SpotQuote
Coyote.Systems.ExternalApi.Contracts.Models.Spot.LTLSpotQuoteRequest:
required:
- commodities
- destination
- equipmentType
- origin
- pickupDate
type: object
properties:
origin:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.LtlLocationData'
pickupDate:
type: string
description: Shipment Pickup Date
format: date-time
originRequirements:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.OriginRequirements'
destination:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.LtlLocationData'
destinationRequirements:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.DestinationRequirements'
equipmentType:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Enums_EquipmentType'
commodities:
type: array
items:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.Commodity'
description: Commodities
guaranteedShipment:
type: boolean
description: Guaranteed Shipment
protectFromFreeze:
type: boolean
description: Protect From Freeze
additionalProperties: false
description: LTL Rate Request
Coyote.Systems.ExternalApi.Contracts.Models.Spot.Commodity:
required:
- freightClass
- height
- length
- palletCount
- weight
- width
type: object
properties:
description:
type: string
description: Item Description
nullable: true
palletCount:
type: integer
description: Number of pallets relevant to commodity item
format: int32
freightClass:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Enums_FreightClass'
weight:
type: number
description: Pallet weight in lbs
format: double
length:
type: number
description: Pallet length in inches
format: double
height:
type: number
description: Pallet height in inches
format: double
width:
type: number
description: Pallet width in inches
format: double
isHazmat:
type: boolean
description: Is Hazmat Commodity
nmfcNumber:
type: integer
description: NMFC Number
format: int32
nullable: true
nmfcSubNumber:
type: integer
description: NMFC Sub
format: int32
nullable: true
isStackable:
type: boolean
description: Is the commodity stackable
additionalProperties: false
description: Commodity
Coyote.Systems.ExternalApi.Contracts.Models.Spot.LTLSpotQuote:
type: object
properties:
ltlSpotQuoteId:
type: string
description: LTL Spot Quote request Id
nullable: true
carrierQuotes:
type: array
items:
$ref: '#/components/schemas/Coyote.Systems.ExternalApi.Contracts.Models.Spot.CarrierQuote'
description: Carrier Quotes
nullable: true
additionalProperties: false
description: LTL Rate Response
Coyote.Systems.ExternalApi.Contracts.Models.Enums_FreightClass:
enum:
- Undefined
- N50
- N55
- N60
- N65
- N70
- N77PT5
- N85
- N92PT5
- N100
- N110
- N125
- N150
- N175
- N200
- N250
- N300
- N400
- N500
type: string
description: FreightClass
Coyote.Systems.ExternalApi.Contracts.Models.Spot.Accessorial:
type: object
properties:
chargeDescription:
type: string
description: Accessorial charge description
nullable: true
amount:
type: number
description: Accessorial charge amount
format: double
additionalProperties: false
description: Accessorial
Coyote.Systems.ExternalApi.Contracts.Models.Enums_LimitedAccessType:
enum:
- Undefined
- Church
- ConstructionSite
- MilitaryBase
- MineSite
- MiniStorage
- RemoteGovtDelivery
- School
- Other
type: string
description: LTLLimitedAccessType
Coyote.Systems.ExternalApi.Contracts.Models.Spot.LocationData:
required:
- cityName
- postalCode
- stateCode
type: object
properties:
cityName:
type: string
description: City
stateCode:
type: string
description: State
countryCode:
type: string
description: Country (optional)
nullable: true
postalCode:
type: string
description: Postal Code
additionalProperties: false
description: City, State and Postal Code required
Coyote.Systems.ExternalApi.Contracts.Models.Spot.LtlLocationData:
required:
- cityName
- countryCode
- postalCode
- stateCode
type: object
properties:
cityName:
type: string
description: City
stateCode:
type: string
description: State
countryCode:
type: string
description: Country
postalCode:
type: string
description: Postal Code
additionalProperties: false
description: City, State and Postal Code required