ShipStation API v2 (2.0.0)

Download OpenAPI description
Overview
License MIT
Languages
Servers
Mock server
https://docs.shipstation.com/_mock/openapi/
Production
https://api.shipstation.com/

Batches

Process labels in bulk and receive a large number of labels and customs forms in bulk responses. Batching is ideal for workflows that need to process hundreds or thousands of labels quickly.

Operations

Carriers

Retreive useful details about the carriers connected to your accounts, including carrier IDs, service IDs, advanced options, and available carrier package types.

Operations

Downloads

Download your label files in PDF, PNG, and ZPL.

Operations

Fulfillments

Manage fulfillments which represent completed shipments. Create fulfillments to mark orders as shipped with tracking information and notify customers and marketplaces.

Operations

Inventory

Manage inventory, adjust quantities, and handle warehouses and locations.

Operations

Labels

Purchase and print shipping labels for any carrier active on your account. The labels endpoint also supports creating return labels, voiding labels, and getting label details like tracking.

Operations

Manifests

A manifest is a document that provides a list of the day's shipments. It typically contains a barcode that allows the pickup driver to scan a single document to register all shipments, rather than scanning each shipment individually.

Operations

Package Pickups

Scheduled pickups and manage pickup requests for supported carriers.

Operations

Package Types

Create custom package types to use for your shipments, rather than the carriers' default package types.

Operations

Products

Manage products in your ShipStation account. Products represent the items you sell and ship to customers.

Operations

Rates

Quickly compare rates using the Rates endpoint. You can see and compare rates for the carriers connected to your account (as long as they support sending rates).

Operations

Shipments

Shipments are at the core of most ShipStation capabilities. Shipment objects are required for cretaing labels and manifests, as well as getting rates.

Operations

Tags

Tags are text-based identifiers you can add to shipments to help in your shipment management workflows.

Operations

Totes

Manage totes (bins or containers) used in warehouse picking and packing operations. Create, update, delete totes and track tote quantities by warehouse.

Operations

List totes

Request

Get all totes for the seller, optionally filtered by warehouse.

Query
inventory_warehouse_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

Inventory Warehouse ID to filter totes

Example: inventory_warehouse_id=se-28529731
curl -i -X GET \
  'https://docs.shipstation.com/_mock/openapi/v2/totes?inventory_warehouse_id=se-28529731' \
  -H 'api-key: YOUR_API_KEY_HERE'

Responses

List of totes

Bodyapplication/json
totesArray of objects(tote)
Response
application/json
{ "totes": [ {} ] }

Create totes in batch

Request

Create multiple totes at once. Returns both successfully created totes and any failures.

Bodyapplication/jsonrequired
totesArray of objects(tote_create_request)required

Array of totes to create

totes[].​inventory_warehouse_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

A string that uniquely identifies a ShipStation resource, such as a carrier, label, shipment, etc.

Example: "se-28529731"
totes[].​tote_namestring<= 100 charactersrequired

Name for the new tote

Example: "Tote-B5"
totes[].​tote_barcodestring<= 100 characters

Barcode identifier for the tote (optional)

Example: "TOTE789012"
return_succeeded_totesboolean

Whether to include successfully created totes in the response. When false, only failed_totes will be returned.

Default false
Example: false
curl -i -X POST \
  https://docs.shipstation.com/_mock/openapi/v2/totes \
  -H 'Content-Type: application/json' \
  -H 'api-key: YOUR_API_KEY_HERE' \
  -d '{
    "totes": [
      {
        "inventory_warehouse_id": "se-789012",
        "tote_name": "Tote-B5",
        "tote_barcode": "TOTE789012"
      }
    ],
    "return_succeeded_totes": false
  }'

Responses

Batch creation response with succeeded and failed totes

Bodyapplication/json
succeeded_totesArray of objects(tote)

Totes that were successfully created

failed_totesArray of objects(failed_tote_response)

Totes that failed to be created

Response
application/json
{ "succeeded_totes": [ {} ], "failed_totes": [ {} ] }

Get tote quantities

Request

Get the number of totes in each warehouse.

curl -i -X GET \
  https://docs.shipstation.com/_mock/openapi/v2/totes/quantities \
  -H 'api-key: YOUR_API_KEY_HERE'

Responses

Tote quantities by warehouse

Bodyapplication/json
quantitiesArray of objects(tote_quantity_response)
Response
application/json
{ "quantities": [ {} ] }

Get tote by ID

Request

Retrieve details of a specific tote.

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

Tote ID

Example: se-28529731
curl -i -X GET \
  'https://docs.shipstation.com/_mock/openapi/v2/totes/{tote_id}' \
  -H 'api-key: YOUR_API_KEY_HERE'

Responses

Tote details

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

A string that uniquely identifies a ShipStation resource, such as a carrier, label, shipment, etc.

Example: "se-28529731"
inventory_warehouse_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

A string that uniquely identifies a ShipStation resource, such as a carrier, label, shipment, etc.

Example: "se-28529731"
tote_namestring<= 100 charactersrequired

Name of the tote

Example: "Tote-A1"
tote_barcodestring<= 100 characters

Barcode identifier for the tote

Example: "TOTE123456"
created_atstring(date-time)required

Date and time when the tote was created

Example: "2024-01-15T10:30:00Z"
Response
application/json
{ "tote_id": "se-123456", "inventory_warehouse_id": "se-789012", "tote_name": "Tote-A1", "tote_barcode": "TOTE123456", "created_at": "2024-01-15T10:30:00Z" }

Update tote

Request

Update the name or barcode of an existing tote.

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

Tote ID

Example: se-28529731
Bodyapplication/jsonrequired
inventory_warehouse_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

A string that uniquely identifies a ShipStation resource, such as a carrier, label, shipment, etc.

Example: "se-28529731"
tote_namestring<= 100 charactersrequired

Updated name for the tote

Example: "Tote-B5-Updated"
tote_barcodestring<= 100 characters

Updated barcode for the tote

Example: "TOTE789012-NEW"
curl -i -X PUT \
  'https://docs.shipstation.com/_mock/openapi/v2/totes/{tote_id}' \
  -H 'Content-Type: application/json' \
  -H 'api-key: YOUR_API_KEY_HERE' \
  -d '{
    "inventory_warehouse_id": "se-789012",
    "tote_name": "Tote-B5-Updated",
    "tote_barcode": "TOTE789012-NEW"
  }'

Responses

The request was successful.

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

Delete tote

Request

Delete a tote by its ID.

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

Tote ID

Example: se-28529731
curl -i -X DELETE \
  'https://docs.shipstation.com/_mock/openapi/v2/totes/{tote_id}' \
  -H 'api-key: YOUR_API_KEY_HERE'

Responses

The request was successful.

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

Tracking

Use the tracking endpoint to stop receiving tracking updates (more dedicated tracking endpoint methods coming soon).

Operations

Warehouses

Get warehouse details like warehouse ID and related addresses using the warehouses endpoint.

Operations

Users

Manage and retrieve user information for the ShipStation account. This endpoint allows you to list users with various filtering options.

Operations

Webhooks

Webhooks are a powerful feature that can save you from sending repeated polling requests to check on the state of something. With webhooks, ShipStation will automatically contact your servers when the stage changes. This can include parcel tracking events, notification when a batch operation completes, and more.

Operations