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

List manifests

Request

Similar to querying shipments, we allow you to query manifests since there will likely be a large number over a long period of time.

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

Warehouse ID

Example: warehouse_id=se-28529731
ship_date_startstring(date-time)

ship date start range

Example: ship_date_start=2018-09-23T15:00:00.000Z
ship_date_endstring(date-time)

ship date end range

Example: ship_date_end=2018-09-23T15:00:00.000Z
created_at_startstring(date-time)

Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)

Example: created_at_start=2019-03-12T19:24:13.657Z
created_at_endstring(date-time)

Used to create a filter for when a resource was created, (ex. A shipment that was created before a certain time)

Example: created_at_end=2019-03-12T19:24:13.657Z
carrier_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

Carrier ID

Example: carrier_id=se-28529731
pageinteger(int32)>= 1

Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned.

Default 1
Example: page=2
page_sizeinteger(int32)>= 1

The number of results to return per response.

Default 25
Example: page_size=50
label_idsArray of strings(se_id)

Array of label ids

Example: label_ids=se-28529731
curl -i -X GET \
  'https://docs.shipstation.com/_mock/openapi/v2/manifests?carrier_id=se-28529731&created_at_end=2019-08-24T14%3A15%3A22Z&created_at_start=2019-08-24T14%3A15%3A22Z&label_ids=se-28529731&page=1&page_size=25&ship_date_end=2019-08-24T14%3A15%3A22Z&ship_date_start=2019-08-24T14%3A15%3A22Z&warehouse_id=se-28529731' \
  -H 'api-key: YOUR_API_KEY_HERE'

Responses

The request was a success.

Bodyapplication/json
manifestsArray of objects(manifest)read-onlyrequired

The list of available manifests

Default []
manifests[].​manifest_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-only

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

Example: "se-28529731"
manifests[].​form_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-only

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

Example: "se-28529731"
manifests[].​created_atstring(date-time)non-emptyread-only

The date-time that the manifest was created

Example: "2019-07-12T13:37:39.05Z"
manifests[].​ship_datestring(date-time)non-emptyread-only

The date-time that the manifests shipments will be picked up

Example: "2019-07-12T13:37:39.05Z"
manifests[].​shipmentsinteger(int32)>= 1read-only

The number of shipments that are included in this manifest

Example: 100
manifests[].​label_idsArray of strings(se_id)read-only

An array of the label ids used in this manifest.

Example: ["se-28529731"]
manifests[].​warehouse_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-only

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

Example: "se-28529731"
manifests[].​submission_idstringnon-emptyread-only

A string that uniquely identifies the submission

Example: "9475711899564878915476"
manifests[].​carrier_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-only

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

Example: "se-28529731"
manifests[].​manifest_downloadobject(manifest_download)read-only

Object containing the href link to download the manifest file

totalinteger(int64)>= 0read-onlyrequired

The total number of manifests returned

Example: 3
pageinteger(int32)>= 1read-onlyrequired

Current page of the list manifests results

Example: 3
pagesinteger(int32)>= 1read-onlyrequired

Total number of pages for list manifests results

Example: 4
linksobject(pagination_link)read-onlyrequired

Helpful links to other pages of results

links.​firstobject(link)required

A link to a related resource, or an empty object if there is no resource to link to

links.​first.​hrefstring(url)(url)non-emptyrequired

A URL

Example: "http://api.shipstation.com/v2/labels/se-28529731"
links.​first.​typestringnon-empty

The type of resource, or the type of relationship to the parent resource

Example: "child"
links.​lastobject(link)required

A link to a related resource, or an empty object if there is no resource to link to

links.​last.​hrefstring(url)(url)non-emptyrequired

A URL

Example: "http://api.shipstation.com/v2/labels/se-28529731"
links.​last.​typestringnon-empty

The type of resource, or the type of relationship to the parent resource

Example: "child"
links.​prevobject(optional_link)required

A link to a related resource, or an empty object if there is no resource to link to

links.​prev.​hrefstring(url)(url)non-empty

A URL

Example: "http://api.shipstation.com/v2/labels/se-28529731"
links.​prev.​typestringnon-empty

The type of resource, or the type of relationship to the parent resource

Example: "child"
links.​nextobject(optional_link)required

A link to a related resource, or an empty object if there is no resource to link to

links.​next.​hrefstring(url)(url)non-empty

A URL

Example: "http://api.shipstation.com/v2/labels/se-28529731"
links.​next.​typestringnon-empty

The type of resource, or the type of relationship to the parent resource

Example: "child"
Response
application/json
{ "manifests": [], "total": 3, "page": 3, "pages": 4, "links": { "first": {}, "last": {}, "prev": {}, "next": {} } }

Create manifest

Request

Each ShipStation manifest is created for a specific warehouse, so you'll need to provide the warehouse_id rather than the ship_from address. You can create a warehouse for each location that you want to create manifests for.

Bodyapplication/jsonrequired
One of:

A create manifest request body

carrier_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"
excluded_label_idsArray of strings(se_id)

The list of label ids to exclude from the manifest

Example: ["se-28529731"]
label_idsArray of strings(se_id)

The list of label ids to include for the manifest

Example: ["se-28529731"]
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"
ship_datestring(date-time)non-emptyrequired

The ship date that the shipment will be sent out on

Example: "2018-09-23T15:00:00.000Z"
curl -i -X POST \
  https://docs.shipstation.com/_mock/openapi/v2/manifests \
  -H 'Content-Type: application/json' \
  -H 'api-key: YOUR_API_KEY_HERE' \
  -d '{
    "carrier_id": "se-1234567",
    "excluded_label_ids": [
      "se-28529731"
    ],
    "label_ids": [
      "se-28529731"
    ],
    "warehouse_id": "se-28529731",
    "ship_date": "2018-09-23T15:00:00.000Z"
  }'

Responses

The request was a success.

Bodyapplication/json
manifestsArray of objects(manifest)

Resulting Manifests

manifest_request_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-only

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

Example: "se-28529731"
statusstring(manifest_request_status)

The possible statuses of a manifest request

Enum"in_progress""completed"
request_idstring(uuid)(uuid)= 36 characters^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...required

A UUID (a.k.a. GUID) that uniquely identifies a resource

Example: "aa3d8e8e-462b-4476-9618-72db7f7b7009"
errorsArray of objects(error)read-onlyrequired

The errors associated with the failed API call

errors[].​error_sourcestring(error_source)required

The source of the error, as indicated by the name this informs us if the API call failed because of the carrier, the order source, or the ShipStation API itself.

Enum"carrier""order_source""ShipStation"
errors[].​error_typestring(error_type)required

The type of error

Enum"account_status""business_rules""validation""security""system""integrations"
errors[].​error_codestring(error_code)required

The error code specified for the failed API Call

Enum"auto_fund_not_supported""batch_cannot_be_modified""carrier_conflict""carrier_disconnected""carrier_not_connected""carrier_not_supported""confirmation_not_supported""default_warehouse_cannot_be_deleted""field_conflict""field_value_required"
errors[].​messagestringnon-emptyread-onlyrequired

An error message associated with the failed API call

Example: "Body of request cannot be null."
errors[].​label_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-only

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

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

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

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

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

Example: "se-28529731"
created_atstring(date-time)non-emptyDeprecatedrequired

The date-time that the manifest was created

Example: "2019-07-12T13:37:39.05Z"
ship_datestring(date-time)non-emptyDeprecatedrequired

The date-time that the manifests shipments will be picked up

Example: "2019-07-12T13:37:39.05Z"
shipmentsinteger(int32)>= 1Deprecatedread-onlyrequired

The number of shipments that are included in this manifest

Example: 100
warehouse_idstring(se_id)[ 1 .. 25 ] charactersDeprecated^se(-[a-z0-9]+)+$required

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

Example: "se-28529731"
submission_idstringnon-emptyDeprecatedrequired

A string that uniquely identifies the submission

Example: "9475711899564878915476"
carrier_idstring(se_id)[ 1 .. 25 ] charactersDeprecated^se(-[a-z0-9]+)+$required

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

Example: "se-28529731"
manifest_downloadobject(manifest_download)Deprecatedrequired

Object containing the href link to download the manifest file

manifest_download.​hrefstring(url)(url)non-empty

A URL

Example: "http://api.shipstation.com/v2/labels/se-28529731"
label_idsArray of strings(se_id)Deprecatedread-only

An array of the label ids used in this manifest.

Example: ["se-28529731"]
Response
application/json
{ "manifests": [ {} ], "manifest_request_id": "se-28529731", "status": "in_progress", "manifest_id": "se-28529731", "form_id": "se-28529731", "created_at": "2019-07-12T13:37:39.05Z", "ship_date": "2019-07-12T13:37:39.05Z", "shipments": 100, "warehouse_id": "se-28529731", "submission_id": "9475711899564878915476", "carrier_id": "se-1234567", "manifest_download": { "href": "http://api.shipstation.com/v2/labels/se-28529731" }, "label_ids": [ "se-28529731" ], "request_id": "aa3d8e8e-462b-4476-9618-72db7f7b7009", "errors": [ {} ] }

Get manifest by id

Request

Get Manifest By Id

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

The Manifest Id

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

Responses

The request was a success.

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

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

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

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

Example: "se-28529731"
created_atstring(date-time)non-emptyread-onlyrequired

The date-time that the manifest was created

Example: "2019-07-12T13:37:39.05Z"
ship_datestring(date-time)non-emptyread-onlyrequired

The date-time that the manifests shipments will be picked up

Example: "2019-07-12T13:37:39.05Z"
shipmentsinteger(int32)>= 1read-onlyrequired

The number of shipments that are included in this manifest

Example: 100
label_idsArray of strings(se_id)read-onlyrequired

An array of the label ids used in this manifest.

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

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

Example: "se-28529731"
submission_idstringnon-emptyread-onlyrequired

A string that uniquely identifies the submission

Example: "9475711899564878915476"
carrier_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-onlyrequired

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

Example: "se-28529731"
manifest_downloadobject(manifest_download)read-onlyrequired

Object containing the href link to download the manifest file

manifest_download.​hrefstring(url)(url)non-empty

A URL

Example: "http://api.shipstation.com/v2/labels/se-28529731"
Response
application/json
{ "manifest_id": "se-28529731", "form_id": "se-28529731", "created_at": "2019-07-12T13:37:39.05Z", "ship_date": "2019-07-12T13:37:39.05Z", "shipments": 100, "label_ids": [ "se-28529731" ], "warehouse_id": "se-28529731", "submission_id": "9475711899564878915476", "carrier_id": "se-1234567", "manifest_download": { "href": "http://api.shipstation.com/v2/labels/se-28529731" } }

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

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