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

Stores

Store configuration and management

Operations

Users

User management

Operations

Warehouses

Warehouse and fulfillment location management

Operations

List warehouses

Request

Retrieves a list of your Ship From Locations (formerly known as warehouses).

Note: In the API, the endpoint is called warehouse, but the process actually affects Ship From Locations in the UI.

Security
basicAuth
curl -i -X GET \
  -u <username>:<password> \
  https://docs.shipstation.com/_mock/apis/shipstation-v1/openapi/warehouses

Responses

List of warehouses retrieved successfully

Bodyapplication/jsonArray [
warehouseIdinteger
Example: 12345
warehouseNamestring
Example: "Headquarters"
originAddressobject(Address)

Physical address for shipping or billing

returnAddressAddress (object) or null
Any of:

Physical address for shipping or billing

isDefaultboolean
Example: true
]
Response
application/json
[ { "warehouseId": 12345, "warehouseName": "Headquarters", "originAddress": {}, "returnAddress": {}, "isDefault": true } ]

Get warehouse

Request

Returns a specific Ship From Location (formerly known as warehouse).

Note: In the API, the endpoint is called warehouse, but the process actually affects Ship From Locations in the UI.

Security
basicAuth
Path
warehouseIdintegerrequired

Warehouse ID

Example: 12345
curl -i -X GET \
  -u <username>:<password> \
  https://docs.shipstation.com/_mock/apis/shipstation-v1/openapi/warehouses/12345

Responses

Warehouse retrieved successfully

Bodyapplication/json
warehouseIdinteger
Example: 12345
warehouseNamestring
Example: "Headquarters"
originAddressobject(Address)

Physical address for shipping or billing

returnAddressAddress (object) or null
Any of:

Physical address for shipping or billing

isDefaultboolean
Example: true
Response
application/json
{ "warehouseId": 12345, "warehouseName": "Headquarters", "originAddress": { "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" }, "returnAddress": { "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" }, "isDefault": true }

Delete warehouse

Request

Removes a warehouse from ShipStation's UI and sets it to Inactive status. This is a "soft" delete action.

Note: In the API, the endpoint is called warehouse, but the process actually affects Ship From Locations in the UI.

Security
basicAuth
Path
warehouseIdintegerrequired

Warehouse ID to delete

Example: 12345
curl -i -X DELETE \
  -u <username>:<password> \
  https://docs.shipstation.com/_mock/apis/shipstation-v1/openapi/warehouses/12345

Responses

Warehouse deleted successfully

Bodyapplication/json
successboolean
Example: true
messagestring
Example: "The requested warehouse has been deleted."
Response
application/json
{ "success": true, "message": "The requested warehouse has been deleted." }

Create warehouse

Request

Adds a Ship From Location (formerly known as warehouse) to your account.

Note: In the API, the endpoint is called warehouse, but the process actually affects Ship From Locations in the UI.

Security
basicAuth
Bodyapplication/jsonrequired
warehouseNamestring

Name of Ship From Location

Example: "New Ship From Location"
originAddressobject(Address)required

Physical address for shipping or billing

originAddress.​namestring

Name of the recipient

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

Company name

Example: "Acme Corp"
Any of:

Company name

string
originAddress.​street1string

First line of the street address

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

Second line of the street address

Example: "Apt 4B"
Any of:

Second line of the street address

string
originAddress.​street3string or null

Third line of the street address

Example: "Building B"
Any of:

Third line of the street address

string
originAddress.​citystring

City name

Example: "Austin"
originAddress.​statestring

State or province code

Example: "TX"
originAddress.​postalCodestring

Postal or ZIP code

Example: "78701"
originAddress.​countrystring

Two-letter ISO country code

Example: "US"
originAddress.​phonestring or null

Phone number

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

Phone number

string
originAddress.​residentialboolean or null

Whether the address is residential

Example: true
Any of:

Whether the address is residential

boolean
originAddress.​addressVerifiedstring or null

Address verification status

Example: "Address validated successfully"
Any of:

Address verification status

string
returnAddressAddress (object) or null
Any of:

Physical address for shipping or billing

isDefaultboolean

Whether this will be the default Ship From Location

Example: false
curl -i -X POST \
  -u <username>:<password> \
  https://docs.shipstation.com/_mock/apis/shipstation-v1/openapi/warehouses/createwarehouse \
  -H 'Content-Type: application/json' \
  -d '{
    "warehouseName": "New Ship From Location",
    "originAddress": {
      "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"
    },
    "returnAddress": {
      "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"
    },
    "isDefault": false
  }'

Responses

Warehouse created successfully

Bodyapplication/json
warehouseIdinteger
Example: 12345
warehouseNamestring
originAddressobject(Address)

Physical address for shipping or billing

returnAddressAddress (object) or null
Any of:

Physical address for shipping or billing

isDefaultboolean
Response
application/json
{ "warehouseId": 12345, "warehouseName": "string", "originAddress": { "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" }, "returnAddress": { "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" }, "isDefault": true }

Update warehouse

Request

Updates an existing Ship From Location (formerly known as warehouse).

Note: In the API, the endpoint is called warehouse, but the process actually affects Ship From Locations in the UI.

Security
basicAuth
Bodyapplication/jsonrequired
warehouseIdintegerrequired

Unique identifier for the warehouse

Example: 17977
warehouseNamestring

Name of Ship From Location

Example: "Flagship Location"
originAddressobject(Address)required

Physical address for shipping or billing

originAddress.​namestring

Name of the recipient

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

Company name

Example: "Acme Corp"
Any of:

Company name

string
originAddress.​street1string

First line of the street address

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

Second line of the street address

Example: "Apt 4B"
Any of:

Second line of the street address

string
originAddress.​street3string or null

Third line of the street address

Example: "Building B"
Any of:

Third line of the street address

string
originAddress.​citystring

City name

Example: "Austin"
originAddress.​statestring

State or province code

Example: "TX"
originAddress.​postalCodestring

Postal or ZIP code

Example: "78701"
originAddress.​countrystring

Two-letter ISO country code

Example: "US"
originAddress.​phonestring or null

Phone number

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

Phone number

string
originAddress.​residentialboolean or null

Whether the address is residential

Example: true
Any of:

Whether the address is residential

boolean
originAddress.​addressVerifiedstring or null

Address verification status

Example: "Address validated successfully"
Any of:

Address verification status

string
returnAddressAddress (object) or null
Any of:

Physical address for shipping or billing

isDefaultboolean

Whether this will be the default Ship From Location

Example: true
curl -i -X PUT \
  -u <username>:<password> \
  https://docs.shipstation.com/_mock/apis/shipstation-v1/openapi/warehouses/updatewarehouse \
  -H 'Content-Type: application/json' \
  -d '{
    "warehouseId": 17977,
    "warehouseName": "Flagship Location",
    "originAddress": {
      "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"
    },
    "returnAddress": {
      "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"
    },
    "isDefault": true
  }'

Responses

Warehouse updated successfully

Bodyapplication/json
warehouseIdinteger
warehouseNamestring
originAddressobject(Address)

Physical address for shipping or billing

returnAddressAddress (object) or null
Any of:

Physical address for shipping or billing

isDefaultboolean
Response
application/json
{ "warehouseId": 0, "warehouseName": "string", "originAddress": { "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" }, "returnAddress": { "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" }, "isDefault": true }

Webhooks

Webhook subscription management

Operations