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

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

List webhooks

Request

List all webhooks currently enabled for the account.

Security
api_key
curl -i -X GET \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/environment/webhooks \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

The request was a success.

Bodyapplication/jsonArray [
webhook_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-only

A string that uniquely identifies the webhook

Example: "se-28529731"
urlstring(url)(url)non-empty

The url that the webhook sends the request to

Example: "http://api.shipengine.com/v1/labels/se-28529731"
eventstring(webhook_event)

The possible webhook event values

Enum"batch""carrier_connected""order_source_refresh_complete""rate""report_complete""sales_orders_imported""track"
headersArray of objects(webhook_header)

Array of custom webhook headers

namestring

The name of the webhook

Example: "My Webhook"
store_idinteger(int32)

Store ID

Example: 123456
]
Response
application/json
[ { "webhook_id": "se-28529731", "url": "https://your-endpoint.x.requestbin.com", "event": "batch", "headers": [], "name": "My Webhook", "store_id": 123456 } ]

Create a webhook

Request

Create a webhook for specific events in the environment.

Security
api_key
Bodyapplication/jsonrequired
eventstring(webhook_event)required

The possible webhook event values

Enum"batch""carrier_connected""order_source_refresh_complete""rate""report_complete""sales_orders_imported""track"
urlstring(url)(url)non-emptyrequired

The url that the webhook sends the request to

Example: "http://api.shipengine.com/v1/labels/se-28529731"
headersArray of objects(webhook_header)

Array of custom webhook headers

namestring

The name of the webhook

Example: "My New Webhook"
store_idinteger(int32)

Store ID

Example: 123456
curl -i -X POST \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/environment/webhooks \
  -H 'API-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "event": "batch",
    "url": "https://your-endpoint.x.requestbin.com",
    "headers": [
      {
        "key": "custom-key",
        "value": "custom-value"
      }
    ],
    "name": "My New Webhook",
    "store_id": 123456
  }'

Responses

The request was a success.

Bodyapplication/json
webhook_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-onlyrequired

A string that uniquely identifies the webhook

Example: "se-28529731"
urlstring(url)(url)non-emptyrequired

The url that the webhook sends the request to

Example: "http://api.shipengine.com/v1/labels/se-28529731"
eventstring(webhook_event)required

The possible webhook event values

Enum"batch""carrier_connected""order_source_refresh_complete""rate""report_complete""sales_orders_imported""track"
headersArray of objects(webhook_header)

Array of custom webhook headers

namestring

The name of the webhook

Example: "My Webhook"
store_idinteger(int32)

Store ID

Example: 123456
Response
application/json
{ "webhook_id": "se-28529731", "url": "https://your-endpoint.x.requestbin.com", "event": "batch", "headers": [ {} ], "name": "My Webhook", "store_id": 123456 }

Get webhook by ID

Request

Retrieve individual webhook by an ID

Security
api_key
Path
webhook_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

Webhook ID

Example: se-28529731
curl -i -X GET \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/environment/webhooks/se-28529731 \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

The request was a success.

Bodyapplication/json
webhook_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-onlyrequired

A string that uniquely identifies the webhook

Example: "se-28529731"
urlstring(url)(url)non-emptyrequired

The url that the webhook sends the request to

Example: "http://api.shipengine.com/v1/labels/se-28529731"
eventstring(webhook_event)required

The possible webhook event values

Enum"batch""carrier_connected""order_source_refresh_complete""rate""report_complete""sales_orders_imported""track"
headersArray of objects(webhook_header)

Array of custom webhook headers

namestring

The name of the webhook

Example: "My Webhook"
store_idinteger(int32)

Store ID

Example: 123456
Response
application/json
{ "webhook_id": "se-28529731", "url": "https://your-endpoint.x.requestbin.com", "event": "batch", "headers": [ {} ], "name": "My Webhook", "store_id": 123456 }

Update a webhook

Request

Update the webhook url property

Security
api_key
Path
webhook_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

Webhook ID

Example: se-28529731
Bodyapplication/jsonrequired
urlstring(url)(url)non-empty

The url that the wehbook sends the request

Example: "http://api.shipengine.com/v1/labels/se-28529731"
headersArray of objects(webhook_header)

Array of custom webhook headers

namestring

The name of the webhook

Example: "My Updated Webhook"
store_idinteger(int32)

Store ID

Example: 123456
curl -i -X PUT \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/environment/webhooks/se-28529731 \
  -H 'API-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "url": "https://your-endpoint.x.requestbin.com",
    "headers": [
      {
        "key": "custom-key",
        "value": "custom-value"
      }
    ],
    "name": "My Updated Webhook",
    "store_id": 123456
  }'

Responses

The request was successful.

Body
string(empty_response_body)= 0 characters
Response
No response example

Delete webhook by ID

Request

Delete a webhook

Security
api_key
Path
webhook_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

Webhook ID

Example: se-28529731
curl -i -X DELETE \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/environment/webhooks/se-28529731 \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

The request was successful.

Body
string(empty_response_body)= 0 characters
Response
No response example