Skip to content

ShipEngine API (1.1.202604070904)

ShipEngine's easy-to-use REST API lets you manage all of your shipping needs without worrying about the complexities of different carrier APIs and protocols. We handle all the heavy lifting so you can focus on providing a first-class shipping experience for your customers at the best possible prices.

Each of ShipEngine's features can be used by itself or in conjunction with each other to build powerful shipping functionality into your application or service.

Download OpenAPI description
Languages
Servers
Mock server
https://docs.shipstation.com/_mock/apis/shipengine/openapi/
https://api.shipengine.com/

Account

For additional information about the ShipEngine account.

Operations

Addresses

No matter your shipping volume, failed deliveries and address change surcharges cut into your bottom line and damage perception with customers. Our address validation services ensure your packages make it to the right place the first time. Learn how to leverage our address validation services here.

ShipEngine supports address validation for virtually every country on Earth, including the United States, Canada, Great Britain, Australia, Germany, France, Norway, Spain, Sweden, Israel, Italy, and over 160 others.

Operations

Batches

batches

Operations

Carrier Accounts

A carrier account is a connection to a shipping carrier that allows you to create labels, track packages, and more. You can connect your own carrier accounts to ShipEngine, or use one of our built-in carrier accounts. Learn more about carrier accounts here.

Operations

Carriers

carriers

Operations

Downloads

downloads

Operations

Insurance

insurance

Operations

Labels

Print shipping labels for any of the top global carriers in minutes—instead of weeks. Simply connect your existing carrier accounts in the API dashboard, and then begin creating labels.

Operations

LTL Shipping

Less-than-truckload (LTL) shipping API endpoints for managing freight shipments. Connect LTL carriers, request quotes, schedule pickups, and track freight shipments.

Operations

List service levels

Request

Get a list of service levels offered by a particular carrier

Security
api_key
Path
carrier_idstring(uuid)required

The unique ID of the LTL carrier

curl -i -X GET \
  'https://docs.shipstation.com/_mock/apis/shipengine/openapi/v-beta/ltl/carriers/{carrier_id}/services' \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

The request was successful

Bodyapplication/json
servicesArray of objects(ltl_service_level)

List of service levels

Response
application/json
{ "services": [ {} ] }

Request a spot quote

Request

Obtain a spot quote for discounted freight rates. The quote_id must be supplied when scheduling pickups.

Security
api_key
Path
carrier_idstring(uuid)required

The unique ID of the connected LTL carrier

Bodyapplication/jsonrequired
shipmentobjectrequired

Shipment details

shipment.​service_codestringrequired

Service level code

Example: "stnd"
shipment.​pickup_datestring(date)required

Scheduled pickup date (YYYY-MM-DD)

Example: "2021-10-01"
shipment.​packagesArray of objectsrequired

Array of freight packages

shipment.​packages[].​codestring

Container type code

Example: "PKG"
shipment.​packages[].​freight_classinteger

NMFC freight class

Example: 60
shipment.​packages[].​descriptionstring

Package contents description

Example: "Paperback books"
shipment.​packages[].​quantityinteger

Number of packages

Example: 3
shipment.​ship_fromobject(partial_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipment.​ship_from.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
shipment.​ship_from.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
shipment.​ship_from.​emailstring or null

Email for the address owner.

Example: "example@example.com"
shipment.​ship_from.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
shipment.​ship_from.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
shipment.​ship_from.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
shipment.​ship_from.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
shipment.​ship_from.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
shipment.​ship_from.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
shipment.​ship_from.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
shipment.​ship_from.​country_codestring(country_code)= 2 characters
Example: "CA"
shipment.​ship_from.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
shipment.​ship_toobject(partial_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipment.​ship_to.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
shipment.​ship_to.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
shipment.​ship_to.​emailstring or null

Email for the address owner.

Example: "example@example.com"
shipment.​ship_to.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
shipment.​ship_to.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
shipment.​ship_to.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
shipment.​ship_to.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
shipment.​ship_to.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
shipment.​ship_to.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
shipment.​ship_to.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
shipment.​ship_to.​country_codestring(country_code)= 2 characters
Example: "CA"
shipment.​ship_to.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
shipment.​bill_toobjectrequired

Billing information

shipment.​requested_byobjectrequired

Requester information

shipment_measurementsobjectrequired

Shipment measurements for trailer loading

curl -i -X POST \
  'https://docs.shipstation.com/_mock/apis/shipengine/openapi/v-beta/ltl/spot-quotes/{carrier_id}' \
  -H 'API-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "shipment": {
      "service_code": "stnd",
      "pickup_date": "2021-10-01",
      "packages": [
        {
          "code": "PKG",
          "freight_class": 60,
          "description": "Paperback books",
          "quantity": 3
        }
      ],
      "ship_from": {
        "name": "John Doe",
        "phone": "+1 204-253-9411 ext. 123",
        "email": "example@example.com",
        "company_name": "The Home Depot",
        "address_line1": "1999 Bishop Grandin Blvd.",
        "address_line2": "Unit 408",
        "address_line3": "Building #7",
        "city_locality": "Winnipeg",
        "state_province": "Manitoba",
        "postal_code": "78756-3717",
        "country_code": "CA",
        "address_residential_indicator": "no"
      },
      "ship_to": {
        "name": "John Doe",
        "phone": "+1 204-253-9411 ext. 123",
        "email": "example@example.com",
        "company_name": "The Home Depot",
        "address_line1": "1999 Bishop Grandin Blvd.",
        "address_line2": "Unit 408",
        "address_line3": "Building #7",
        "city_locality": "Winnipeg",
        "state_province": "Manitoba",
        "postal_code": "78756-3717",
        "country_code": "CA",
        "address_residential_indicator": "no"
      },
      "bill_to": {},
      "requested_by": {}
    },
    "shipment_measurements": {}
  }'

Responses

Spot quote successfully created

Bodyapplication/json
quote_idstring

Unique quote identifier (use for scheduling pickups)

Example: "se-123456"
quote_typestring

Type of quote

Example: "contract"
pickup_datestring(date)

Scheduled pickup date

Example: "2021-10-01"
estimated_delivery_daysinteger

Estimated days between pickup and delivery

Example: 5
chargesArray of objects

Itemized charges for the quote

Response
application/json
{ "quote_id": "se-123456", "quote_type": "contract", "pickup_date": "2021-10-01", "estimated_delivery_days": 5, "charges": [ {} ] }

Schedule a pickup

Request

Create a bill of lading and schedule a pickup with the carrier in one request. The BOL must be printed and given to the carrier at pickup.

Security
api_key
Bodyapplication/jsonrequired
carrier_idstring(uuid)required

The carrier to use for this pickup

Example: "aed2a8c0-7998-4fef-9a82-2cab5f527dc2"
carrierobject

Optional carrier instructions

optionsArray of objects

Accessorial services for the pickup

shipmentobjectrequired

Shipment details

shipment.​service_codestringrequired

Service level code

Example: "stnd"
shipment.​pickup_datestring(date)required

Pickup date (YYYY-MM-DD)

Example: "2021-10-01"
shipment.​pickup_windowobject

Pickup time window

shipment.​packagesArray of objectsrequired
shipment.​ship_fromobject(partial_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipment.​ship_from.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
shipment.​ship_from.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
shipment.​ship_from.​emailstring or null

Email for the address owner.

Example: "example@example.com"
shipment.​ship_from.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
shipment.​ship_from.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
shipment.​ship_from.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
shipment.​ship_from.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
shipment.​ship_from.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
shipment.​ship_from.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
shipment.​ship_from.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
shipment.​ship_from.​country_codestring(country_code)= 2 characters
Example: "CA"
shipment.​ship_from.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
shipment.​ship_toobject(partial_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipment.​ship_to.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
shipment.​ship_to.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
shipment.​ship_to.​emailstring or null

Email for the address owner.

Example: "example@example.com"
shipment.​ship_to.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
shipment.​ship_to.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
shipment.​ship_to.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
shipment.​ship_to.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
shipment.​ship_to.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
shipment.​ship_to.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
shipment.​ship_to.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
shipment.​ship_to.​country_codestring(country_code)= 2 characters
Example: "CA"
shipment.​ship_to.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
shipment.​bill_toobjectrequired
shipment.​requested_byobjectrequired
curl -i -X POST \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v-beta/ltl/pickups \
  -H 'API-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "carrier_id": "aed2a8c0-7998-4fef-9a82-2cab5f527dc2",
    "carrier": {
      "instructions": "Call 30 minutes before arrival",
      "test": false
    },
    "options": [
      {
        "code": "lftp",
        "attributes": {}
      }
    ],
    "shipment": {
      "service_code": "stnd",
      "pickup_date": "2021-10-01",
      "pickup_window": {
        "start_at": "08:00:00",
        "end_at": "12:00:00",
        "closing_at": "17:00:00"
      },
      "packages": [
        {}
      ],
      "ship_from": {
        "name": "John Doe",
        "phone": "+1 204-253-9411 ext. 123",
        "email": "example@example.com",
        "company_name": "The Home Depot",
        "address_line1": "1999 Bishop Grandin Blvd.",
        "address_line2": "Unit 408",
        "address_line3": "Building #7",
        "city_locality": "Winnipeg",
        "state_province": "Manitoba",
        "postal_code": "78756-3717",
        "country_code": "CA",
        "address_residential_indicator": "no"
      },
      "ship_to": {
        "name": "John Doe",
        "phone": "+1 204-253-9411 ext. 123",
        "email": "example@example.com",
        "company_name": "The Home Depot",
        "address_line1": "1999 Bishop Grandin Blvd.",
        "address_line2": "Unit 408",
        "address_line3": "Building #7",
        "city_locality": "Winnipeg",
        "state_province": "Manitoba",
        "postal_code": "78756-3717",
        "country_code": "CA",
        "address_residential_indicator": "no"
      },
      "bill_to": {},
      "requested_by": {}
    }
  }'

Responses

Pickup successfully scheduled

Bodyapplication/json
confirmation_numberstring

Carrier confirmation number

Example: "CONF123456"
pickup_idstring

Unique pickup identifier

Example: "se-pickup-123"
quote_idstring

Associated quote ID

Example: "se-quote-456"
pro_numberstring

PRO number assigned by carrier

Example: "PRO789012"
shipment_idstring

ShipEngine shipment ID

Example: "se-shipment-789"
messagestring

Optional carrier message

Example: "Pickup scheduled successfully"
documentsArray of objects

Generated documents (BOL)

warningsArray of objects

Any carrier warnings

Response
application/json
{ "confirmation_number": "CONF123456", "pickup_id": "se-pickup-123", "quote_id": "se-quote-456", "pro_number": "PRO789012", "shipment_id": "se-shipment-789", "message": "Pickup scheduled successfully", "documents": [ {} ], "warnings": [ {} ] }

Manifests

manifests

Operations

Package Pickups

Scheduled package pickups

Operations

Package Types

custom package types

Operations

Rates

Make sure you ship as cost-effectively as possible by quickly comparing rates using the ShipEngine Rates API. As long as you have the carrier connected to your account, you'll be able to see and compare different rates and services.

Operations

Service Points

Service points allow customers to pick up their packages at convenient locations.

Operations

Shipments

Shipments are at the center of the ShipEngine API. A shipment is the first step in creating a shipping label, or creating a manifest. It's also essential for getting shipping rates.

Operations

Tags

tags

Operations

Tokens

Manage authentication tokens for secure API access.

Operations

Tracking

Track packages across any of our 20+ supported carrier accounts and create tracking events to keep your customers up-to-date. Easily integrate real-time tracking information for shipments into your app, email, or SMS.

Operations

Warehouses

warehouses

Operations

Webhooks

Webhooks are a powerful feature of ShipEngine that can save you from sending repeated polling requests to check on the state of something. With webhooks, ShipEngine will automatically contact your servers when the state changes. This can include parcel tracking events, notification of the completion of a batch operation, or new sales orders.

Operations