Skip to content

ShipStation V1 API (Legacy) (1.0.0)

The ShipStation V1 API (Legacy) provides comprehensive functionality for managing orders, shipments, carriers, and more within the ShipStation platform.

Getting Started

New integrations should use ShipStation API V2 whenever possible. This V1 API is maintained for existing integrations.

Download OpenAPI description
Languages
Servers
Mock server
https://docs.shipstation.com/_mock/apis/shipstation-v1/openapi/
Production Server
https://ssapi.shipstation.com/

Accounts

Account management and tag operations

Operations

Carriers

Carrier information and package/service listings

Operations

Customers

Customer management

Operations

Fulfillments

Fulfillment operations

Operations

Orders

Order management and operations

Operations

Products

Product catalog management

Operations

Shipments

Shipment operations and rate shopping

Operations

Get shipping rates

Request

Retrieves shipping rates for the specified shipping details. Use this endpoint to compare rates across different carriers and services before creating a label.

Security
basicAuth
Bodyapplication/jsonrequired
carrierCodestringrequired

Carrier code to get rates from

Example: "fedex"
serviceCodestring or null

Specific service code (optional)

Any of:

Specific service code (optional)

string
packageCodestring or null

Package type code (optional)

Any of:

Package type code (optional)

string
fromPostalCodestringrequired

Origin postal code

Example: "78703"
toCountrystringrequired

Destination country (two-letter ISO code)

Example: "US"
toPostalCodestringrequired

Destination postal code

Example: "20500"
toStatestring

Destination state (required for UPS)

Example: "DC"
toCitystring

Destination city (optional)

Example: "Washington"
weightobject(Weight)required

Weight measurement

weight.​valuenumberrequired

Weight value

Example: 24
weight.​unitsstringrequired

Weight unit of measurement

Enum"pounds""ounces""grams"
Example: "ounces"
dimensionsDimensions (object) or null
Any of:

Package dimensions

confirmationstring

Delivery confirmation type

Enum"none""delivery""signature""adult_signature""direct_signature"
Example: "delivery"
residentialboolean

Whether destination is residential

Example: false
curl -i -X POST \
  -u <username>:<password> \
  https://docs.shipstation.com/_mock/apis/shipstation-v1/openapi/shipments/getrates \
  -H 'Content-Type: application/json' \
  -d '{
    "carrierCode": "fedex",
    "serviceCode": "string",
    "packageCode": "string",
    "fromPostalCode": "78703",
    "toCountry": "US",
    "toPostalCode": "20500",
    "toState": "DC",
    "toCity": "Washington",
    "weight": {
      "value": 24,
      "units": "ounces"
    },
    "dimensions": {
      "length": 7,
      "width": 5,
      "height": 6,
      "units": "inches"
    },
    "confirmation": "delivery",
    "residential": false
  }'

Responses

List of available shipping rates

Bodyapplication/jsonArray [
serviceNamestring
Example: "FedEx Ground®"
serviceCodestring
Example: "fedex_ground"
shipmentCostnumber
Example: 8.25
otherCostnumber
Example: 0.33
]
Response
application/json
[ { "serviceName": "FedEx Ground®", "serviceCode": "fedex_ground", "shipmentCost": 8.25, "otherCost": 0.33 } ]

Create shipping label

Request

Creates a shipping label. The labelData field returned in the response is a base64 encoded PDF value. You can decode and save the output as a PDF file to retrieve a printable label.

IMPORTANT: You must have at least one active Manual Store on your ShipStation account to create labels with this endpoint.

Security
basicAuth
Bodyapplication/jsonrequired
carrierCodestringrequired

Carrier code

Example: "fedex"
serviceCodestringrequired

Service code

Example: "fedex_ground"
packageCodestringrequired

Package type code

Example: "package"
confirmationstring

Delivery confirmation type

Enum"none""delivery""signature""adult_signature""direct_signature"
Example: "delivery"
shipDatestring(date)required

Ship date

Example: "2014-04-03"
weightobject(Weight)required

Weight measurement

weight.​valuenumberrequired

Weight value

Example: 24
weight.​unitsstringrequired

Weight unit of measurement

Enum"pounds""ounces""grams"
Example: "ounces"
dimensionsDimensions (object) or null
Any of:

Package dimensions

shipFromobject(Address)required

Physical address for shipping or billing

shipFrom.​namestring

Name of the recipient

Example: "John Doe"
shipFrom.​companystring or null

Company name

Example: "Acme Corp"
Any of:

Company name

string
shipFrom.​street1string

First line of the street address

Example: "123 Main St"
shipFrom.​street2string or null

Second line of the street address

Example: "Apt 4B"
Any of:

Second line of the street address

string
shipFrom.​street3string or null

Third line of the street address

Example: "Building B"
Any of:

Third line of the street address

string
shipFrom.​citystring

City name

Example: "Austin"
shipFrom.​statestring

State or province code

Example: "TX"
shipFrom.​postalCodestring

Postal or ZIP code

Example: "78701"
shipFrom.​countrystring

Two-letter ISO country code

Example: "US"
shipFrom.​phonestring or null

Phone number

Example: "512-555-1234"
Any of:

Phone number

string
shipFrom.​residentialboolean or null

Whether the address is residential

Example: true
Any of:

Whether the address is residential

boolean
shipFrom.​addressVerifiedstring or null

Address verification status

Example: "Address validated successfully"
Any of:

Address verification status

string
shipToobject(Address)required

Physical address for shipping or billing

shipTo.​namestring

Name of the recipient

Example: "John Doe"
shipTo.​companystring or null

Company name

Example: "Acme Corp"
Any of:

Company name

string
shipTo.​street1string

First line of the street address

Example: "123 Main St"
shipTo.​street2string or null

Second line of the street address

Example: "Apt 4B"
Any of:

Second line of the street address

string
shipTo.​street3string or null

Third line of the street address

Example: "Building B"
Any of:

Third line of the street address

string
shipTo.​citystring

City name

Example: "Austin"
shipTo.​statestring

State or province code

Example: "TX"
shipTo.​postalCodestring

Postal or ZIP code

Example: "78701"
shipTo.​countrystring

Two-letter ISO country code

Example: "US"
shipTo.​phonestring or null

Phone number

Example: "512-555-1234"
Any of:

Phone number

string
shipTo.​residentialboolean or null

Whether the address is residential

Example: true
Any of:

Whether the address is residential

boolean
shipTo.​addressVerifiedstring or null

Address verification status

Example: "Address validated successfully"
Any of:

Address verification status

string
insuranceOptionsInsuranceOptions (object) or null
Any of:

Shipping insurance options

internationalOptionsInternationalOptions (object) or null
Any of:

International shipping options

advancedOptionsAdvancedOptions (object) or null
Any of:

Advanced shipping options

testLabelboolean

Whether to create a test label

Example: false
curl -i -X POST \
  -u <username>:<password> \
  https://docs.shipstation.com/_mock/apis/shipstation-v1/openapi/shipments/createlabel \
  -H 'Content-Type: application/json' \
  -d '{
    "carrierCode": "fedex",
    "serviceCode": "fedex_ground",
    "packageCode": "package",
    "confirmation": "delivery",
    "shipDate": "2014-04-03",
    "weight": {
      "value": 24,
      "units": "ounces"
    },
    "dimensions": {
      "length": 7,
      "width": 5,
      "height": 6,
      "units": "inches"
    },
    "shipFrom": {
      "name": "John Doe",
      "company": "Acme Corp",
      "street1": "123 Main St",
      "street2": "Apt 4B",
      "street3": "Building B",
      "city": "Austin",
      "state": "TX",
      "postalCode": "78701",
      "country": "US",
      "phone": "512-555-1234",
      "residential": true,
      "addressVerified": "Address validated successfully"
    },
    "shipTo": {
      "name": "John Doe",
      "company": "Acme Corp",
      "street1": "123 Main St",
      "street2": "Apt 4B",
      "street3": "Building B",
      "city": "Austin",
      "state": "TX",
      "postalCode": "78701",
      "country": "US",
      "phone": "512-555-1234",
      "residential": true,
      "addressVerified": "Address validated successfully"
    },
    "insuranceOptions": {
      "provider": "carrier",
      "insureShipment": true,
      "insuredValue": 200
    },
    "internationalOptions": {
      "contents": "merchandise",
      "customsItems": [
        {
          "customsItemId": 11558268,
          "description": "Cotton T-Shirt",
          "quantity": 2,
          "value": 49.99,
          "harmonizedTariffCode": "6109.10.0012",
          "countryOfOrigin": "US"
        }
      ],
      "nonDelivery": "return_to_sender"
    },
    "advancedOptions": {
      "warehouseId": 98765,
      "nonMachinable": false,
      "saturdayDelivery": false,
      "containsAlcohol": false,
      "mergedOrSplit": false,
      "mergedIds": [
        0
      ],
      "parentId": 93348442,
      "storeId": 12345,
      "customField1": "Custom data that you can add to an order",
      "customField2": "Per UI settings, this can appear on some carrier labels",
      "customField3": "https://help.shipstation.com/hc/en-us/articles/206639957",
      "source": "Webstore",
      "billToParty": "third_party",
      "billToAccount": "123456789",
      "billToPostalCode": "78701",
      "billToCountryCode": "US"
    },
    "testLabel": false
  }'

Responses

Label created successfully

Bodyapplication/json
shipmentIdinteger
Example: 123456789
shipmentCostnumber
Example: 8.25
insuranceCostnumber
Example: 0
trackingNumberstring
Example: "9405511899564298878910"
labelDatastring

Base64 encoded PDF label data

Example: "JVBERi0xLjQKJeLjz9MKMiAwIG9iago..."
formDatastring or null

Base64 encoded form data if applicable

Any of:

Base64 encoded form data if applicable

string
Response
application/json
{ "shipmentId": 123456789, "shipmentCost": 8.25, "insuranceCost": 0, "trackingNumber": "9405511899564298878910", "labelData": "JVBERi0xLjQKJeLjz9MKMiAwIG9iago...", "formData": "string" }

Void shipment label

Request

Voids the specified label by shipmentId

Security
basicAuth
Bodyapplication/jsonrequired
shipmentIdintegerrequired

ID of the shipment to void

Example: 12345
curl -i -X POST \
  -u <username>:<password> \
  https://docs.shipstation.com/_mock/apis/shipstation-v1/openapi/shipments/voidlabel \
  -H 'Content-Type: application/json' \
  -d '{
    "shipmentId": 12345
  }'

Responses

Label voided successfully

Bodyapplication/json
approvedboolean
Example: true
messagestring
Example: "Label voided successfully"
Response
application/json
{ "approved": true, "message": "Label voided successfully" }

List shipments

Request

Obtains a list of shipments that match the specified criteria.

Note: Only valid shipments with labels generated in ShipStation will be returned. Orders that have been marked as Shipped through the UI or API will not appear as they are considered external shipments.

Security
basicAuth
Query
recipientNamestring

Returns shipments shipped to the specified recipient name

recipientCountryCodestring

Returns shipments shipped to the specified country code (two-letter ISO)

orderNumberstring

Returns shipments whose orders have the specified order number

orderIdinteger

Returns shipments whose orders have the specified order ID

carrierCodestring

Returns shipments shipped with the specified carrier

serviceCodestring

Returns shipments shipped with the specified shipping service

trackingNumberstring

Returns shipments with the specified tracking number

createDateStartstring(date-time)

Returns shipments created on or after the specified date

createDateEndstring(date-time)

Returns shipments created on or before the specified date

shipDateStartstring(date)

Returns shipments with shipDate on or after the specified date

shipDateEndstring(date)

Returns shipments with shipDate on or before the specified date

voidDateStartstring(date-time)

Returns shipments voided on or after the specified date

voidDateEndstring(date-time)

Returns shipments voided on or before the specified date

storeIdinteger

Returns shipments whose orders belong to the specified store ID

includeShipmentItemsboolean

Specifies whether to include shipment items with results

Default false
sortBystring

Sort the responses by a set value. If left empty, the response will be sorted by ascending createDate.

Enum"ShipDate""CreateDate"
sortDirstring

Sort direction

Default "ASC"
Enum"ASC""DESC"
pageinteger>= 1

Page number

Default 1
pageSizeinteger[ 1 .. 500 ]

Number of results per page. Maximum 500.

Default 100
curl -i -X GET \
  -u <username>:<password> \
  'https://docs.shipstation.com/_mock/apis/shipstation-v1/openapi/shipments?recipientName=string&recipientCountryCode=string&orderNumber=string&orderId=0&carrierCode=string&serviceCode=string&trackingNumber=string&createDateStart=2019-08-24T14%3A15%3A22Z&createDateEnd=2019-08-24T14%3A15%3A22Z&shipDateStart=2019-08-24&shipDateEnd=2019-08-24&voidDateStart=2019-08-24T14%3A15%3A22Z&voidDateEnd=2019-08-24T14%3A15%3A22Z&storeId=0&includeShipmentItems=false&sortBy=ShipDate&sortDir=ASC&page=1&pageSize=100'

Responses

List of shipments retrieved successfully

Bodyapplication/json
shipmentsArray of objects
totalinteger

Total number of shipments

Example: 2
pageinteger

Current page number

Example: 1
pagesinteger

Total number of pages

Example: 1
Response
application/json
{ "shipments": [ {} ], "total": 2, "page": 1, "pages": 1 }

Stores

Store configuration and management

Operations

Users

User management

Operations

Warehouses

Warehouse and fulfillment location management

Operations

Webhooks

Webhook subscription management

Operations