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

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

List custom package types

Request

List the custom package types associated with the account

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

Responses

The request was a success.

Bodyapplication/json
packagesArray of objects(package_type)read-only

An array of custom package types

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

Create custom package type

Request

Create a custom package type to better assist in getting accurate rate estimates

Bodyapplication/jsonrequired
package_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

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

Example: "se-28529731"
package_codestring(package_code)[ 1 .. 50 ] characters^[a-z0-9]+(_[a-z0-9]+)*$required

A [package type] , such as thick_envelope, small_flat_rate_box, large_package, etc. Use the code package for custom or unknown package types.

Example: "small_flat_rate_box"
namestring[ 1 .. 50 ] charactersrequired
Example: "laptop_box"
dimensionsobject(dimensions)

The dimensions of a package

descriptionstring or null<= 500 characters

Provides a helpful description for the custom package.

Example: "Packaging for laptops"
curl -i -X POST \
  https://docs.shipstation.com/_mock/openapi/v2/packages \
  -H 'Content-Type: application/json' \
  -H 'api-key: YOUR_API_KEY_HERE' \
  -d '{
    "package_id": "se-28529731",
    "package_code": "small_flat_rate_box",
    "name": "laptop_box",
    "dimensions": {
      "unit": "inch",
      "length": 2,
      "width": 2,
      "height": 1
    },
    "description": "Packaging for laptops"
  }'

Responses

The request was a success.

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

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

Example: "se-28529731"
package_codestring(package_code)[ 1 .. 50 ] characters^[a-z0-9]+(_[a-z0-9]+)*$required

A [package type] , such as thick_envelope, small_flat_rate_box, large_package, etc. Use the code package for custom or unknown package types.

Example: "small_flat_rate_box"
namestring[ 1 .. 50 ] charactersrequired
Example: "laptop_box"
dimensionsobject(dimensions)

The dimensions of a package

descriptionstring or null<= 500 characters

Provides a helpful description for the custom package.

Example: "Packaging for laptops"
Response
application/json
{ "package_id": "se-28529731", "package_code": "small_flat_rate_box", "name": "laptop_box", "dimensions": { "unit": "inch", "length": 2, "width": 2, "height": 1 }, "description": "Packaging for laptops" }

Get custom package type by id

Request

Get Custom Package Type by ID

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

Package ID

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

Responses

The request was a success.

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

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

Example: "se-28529731"
package_codestring(package_code)[ 1 .. 50 ] characters^[a-z0-9]+(_[a-z0-9]+)*$required

A [package type] , such as thick_envelope, small_flat_rate_box, large_package, etc. Use the code package for custom or unknown package types.

Example: "small_flat_rate_box"
namestring[ 1 .. 50 ] charactersrequired
Example: "laptop_box"
dimensionsobject(dimensions)

The dimensions of a package

descriptionstring or null<= 500 characters

Provides a helpful description for the custom package.

Example: "Packaging for laptops"
Response
application/json
{ "package_id": "se-28529731", "package_code": "small_flat_rate_box", "name": "laptop_box", "dimensions": { "unit": "inch", "length": 2, "width": 2, "height": 1 }, "description": "Packaging for laptops" }

Update custom package type by id

Request

Update the custom package type object by ID

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

Package ID

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

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

Example: "se-28529731"
package_codestring(package_code)[ 1 .. 50 ] characters^[a-z0-9]+(_[a-z0-9]+)*$required

A [package type] , such as thick_envelope, small_flat_rate_box, large_package, etc. Use the code package for custom or unknown package types.

Example: "small_flat_rate_box"
namestring[ 1 .. 50 ] charactersrequired
Example: "laptop_box"
dimensionsobject(dimensions)

The dimensions of a package

descriptionstring or null<= 500 characters

Provides a helpful description for the custom package.

Example: "Packaging for laptops"
curl -i -X PUT \
  'https://docs.shipstation.com/_mock/openapi/v2/packages/{package_id}' \
  -H 'Content-Type: application/json' \
  -H 'api-key: YOUR_API_KEY_HERE' \
  -d '{
    "package_id": "se-28529731",
    "package_code": "small_flat_rate_box",
    "name": "laptop_box",
    "dimensions": {
      "unit": "inch",
      "length": 2,
      "width": 2,
      "height": 1
    },
    "description": "Packaging for laptops"
  }'

Responses

The request was successful.

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

Delete a custom package by id

Request

Delete a custom package using the ID

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

Package ID

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

Responses

The request was successful.

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

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

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

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