# ShipStation V1 API (Legacy) 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](/apis/@shipstation-v2/openapi.yaml) whenever possible. This V1 API is maintained for existing integrations. Version: 1.0.0 License: MIT ## Servers Production Server ``` https://ssapi.shipstation.com ``` ## Security ### basicAuth HTTP Basic Authentication using ShipStation API Key and Secret Type: http Scheme: basic ## Download OpenAPI description [ShipStation V1 API (Legacy)](https://docs.shipstation.com/_bundle/apis/@shipstation-v1/openapi.yaml) ## Accounts Account management and tag operations ### List account tags - [GET /accounts/listtags](https://docs.shipstation.com/apis/shipstation-v1/openapi/accounts/list_account_tags.md): List all tags defined for this account ## Carriers Carrier information and package/service listings ### List carriers - [GET /carriers](https://docs.shipstation.com/apis/shipstation-v1/openapi/carriers/list_carriers.md): List all shipping providers connected to this account ### Add funds to carrier account - [POST /carriers/addfunds](https://docs.shipstation.com/apis/shipstation-v1/openapi/carriers/add_funds_to_carrier.md): Adds funds to a carrier account using the payment information on file. IMPORTANT: Requires approval from apisupport@shipstation.com before use. ### Get carrier by code - [GET /carriers/getcarrier](https://docs.shipstation.com/apis/shipstation-v1/openapi/carriers/get_carrier.md): Retrieves the shipping carrier account details for the specified carrierCode. Use this method to determine a carrier's account balance. ### List packages - [GET /carriers/listpackages](https://docs.shipstation.com/apis/shipstation-v1/openapi/carriers/list_packages.md): Retrieves a list of packages for the specified carrier ### List services - [GET /carriers/listservices](https://docs.shipstation.com/apis/shipstation-v1/openapi/carriers/list_services.md): Retrieves the list of available shipping services provided by the specified carrier ## Customers Customer management ### List customers - [GET /customers](https://docs.shipstation.com/apis/shipstation-v1/openapi/customers/list_customers.md): Obtains a list of customers that match the specified criteria ### Get customer - [GET /customers/{customerId}](https://docs.shipstation.com/apis/shipstation-v1/openapi/customers/get_customer.md): Retrieves a single customer by ID ## Fulfillments Fulfillment operations ### List fulfillments - [GET /fulfillments](https://docs.shipstation.com/apis/shipstation-v1/openapi/fulfillments/list_fulfillments.md): Obtains a list of fulfillments that match the specified criteria. Note: Orders that have been marked as shipped either through the UI or API will appear in the response as they are considered fulfillments. ## Orders Order management and operations ### Create or update order - [POST /orders/createorder](https://docs.shipstation.com/apis/shipstation-v1/openapi/orders/create_update_order.md): Create a new order or update an existing order. If the orderKey is specified, ShipStation will attempt to locate the order with that key. If found, the existing order will be updated. If not found, a new order will be created with that orderKey. Note: This call does not currently support partial updates. The entire resource must be provided in the body of the request. Only orders in an open status (awaiting_payment, awaiting_shipment, on_hold) can be updated. Orders in cancelled and shipped states may not be updated. ### List orders - [GET /orders](https://docs.shipstation.com/apis/shipstation-v1/openapi/orders/list_orders.md): Obtains a list of orders that match the specified criteria. All filters are optional. If no filters are provided, recent orders will be returned. ### Get order - [GET /orders/{orderId}](https://docs.shipstation.com/apis/shipstation-v1/openapi/orders/get_order.md): Retrieves a single order by its ID ### Delete order - [DELETE /orders/{orderId}](https://docs.shipstation.com/apis/shipstation-v1/openapi/orders/delete_order.md): Removes order from ShipStation's UI. This is a "soft" delete action so the order will still exist in the database, but will be set to inactive. ### Create or update multiple orders - [POST /orders/createorders](https://docs.shipstation.com/apis/shipstation-v1/openapi/orders/create_update_multiple_orders.md): Create or update multiple orders in one request. If the orderKey is specified, ShipStation will attempt to locate the order with that key. If found, the existing order will be updated. If not found, a new order will be created. For split orders, the orderKey is always required when creating or updating orders, and the orderId is always required for updates. This call does not currently support partial updates; the entire resource must be provided in the body of the request. Only orders in an open status (awaiting_payment, awaiting_shipment, pending_fulfillment, on_hold) can be updated. Orders in cancelled or shipped status may not be updated. ### Add tag to order - [POST /orders/addtag](https://docs.shipstation.com/apis/shipstation-v1/openapi/orders/add_tag_to_order.md): Adds a tag to an order ### Remove tag from order - [POST /orders/removetag](https://docs.shipstation.com/apis/shipstation-v1/openapi/orders/remove_tag_from_order.md): Removes a tag from the specified order ### Assign user to order - [POST /orders/assignuser](https://docs.shipstation.com/apis/shipstation-v1/openapi/orders/assign_user_to_order.md): Assigns a user to an order. If ANY of the orders within the array are not found, no orders will have a user assigned to them. ### Unassign user from order - [POST /orders/unassignuser](https://docs.shipstation.com/apis/shipstation-v1/openapi/orders/unassign_user_from_order.md): Unassigns a user from an order. If ANY of the orders within the array are not found, no orders will have their users unassigned. ### Hold order until date - [POST /orders/holduntil](https://docs.shipstation.com/apis/shipstation-v1/openapi/orders/hold_order_until.md): Changes the status of the order to On Hold until the specified date, when the status will automatically change to Awaiting Shipment. ### Restore order from hold - [POST /orders/restorefromhold](https://docs.shipstation.com/apis/shipstation-v1/openapi/orders/restore_order_from_hold.md): Changes the status of the order from On Hold to Awaiting Shipment. This endpoint is used when a holdUntilDate is attached to an order. ### Mark order as shipped - [POST /orders/markasshipped](https://docs.shipstation.com/apis/shipstation-v1/openapi/orders/mark_order_as_shipped.md): Marks an order as Shipped without creating a label in ShipStation ### List orders by tag - [GET /orders/listbytag](https://docs.shipstation.com/apis/shipstation-v1/openapi/orders/list_orders_by_tag.md): Obtains a list of orders that have been tagged with the specified tagId ## Products Product catalog management ### List products - [GET /products](https://docs.shipstation.com/apis/shipstation-v1/openapi/products/list_products.md): Obtains a list of products that match the specified criteria ### Get product - [GET /products/{productId}](https://docs.shipstation.com/apis/shipstation-v1/openapi/products/get_product.md): Retrieves a single product by its ID ### Update product - [PUT /products/{productId}](https://docs.shipstation.com/apis/shipstation-v1/openapi/products/update_product.md): Updates an existing product. This call does not currently support partial updates. The entire resource must be provided in the body of the request. ## Shipments Shipment operations and rate shopping ### Get shipping rates - [POST /shipments/getrates](https://docs.shipstation.com/apis/shipstation-v1/openapi/shipments/get_rates.md): Retrieves shipping rates for the specified shipping details. Use this endpoint to compare rates across different carriers and services before creating a label. ### Create shipping label - [POST /shipments/createlabel](https://docs.shipstation.com/apis/shipstation-v1/openapi/shipments/create_shipment_label.md): 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. ### Void shipment label - [POST /shipments/voidlabel](https://docs.shipstation.com/apis/shipstation-v1/openapi/shipments/void_label.md): Voids the specified label by shipmentId ### List shipments - [GET /shipments](https://docs.shipstation.com/apis/shipstation-v1/openapi/shipments/list_shipments.md): 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. ## Stores Store configuration and management ### List stores - [GET /stores](https://docs.shipstation.com/apis/shipstation-v1/openapi/stores/list_stores.md): Retrieve the list of installed stores on the account ### Get store - [GET /stores/{storeId}](https://docs.shipstation.com/apis/shipstation-v1/openapi/stores/get_store.md): Retrieves information for a specific store by its ID ### Update store - [PUT /stores/{storeId}](https://docs.shipstation.com/apis/shipstation-v1/openapi/stores/update_store.md): Updates an existing store. This call does not currently support partial updates. The entire resource must be provided in the body of the request. ### Deactivate store - [POST /stores/deactivate](https://docs.shipstation.com/apis/shipstation-v1/openapi/stores/deactivate_store.md): Deactivates the specified store ### Reactivate store - [POST /stores/reactivate](https://docs.shipstation.com/apis/shipstation-v1/openapi/stores/reactivate_store.md): Reactivates the specified store. Note: Stores are active by default. ### Refresh store - [POST /stores/refreshstore](https://docs.shipstation.com/apis/shipstation-v1/openapi/stores/refresh_store.md): Initiates a store refresh. If storeId is not specified, a store refresh will be initiated for all refreshable stores on that account. ### Get store refresh status - [GET /stores/getrefreshstatus](https://docs.shipstation.com/apis/shipstation-v1/openapi/stores/get_store_refresh_status.md): Retrieves the refresh status of a given store ### List marketplaces - [GET /stores/marketplaces](https://docs.shipstation.com/apis/shipstation-v1/openapi/stores/list_marketplaces.md): Lists the marketplaces that can be integrated with ShipStation ## Users User management ### List users - [GET /users](https://docs.shipstation.com/apis/shipstation-v1/openapi/users/list_users.md): Retrieves a list of users for the account ## Warehouses Warehouse and fulfillment location management ### List warehouses - [GET /warehouses](https://docs.shipstation.com/apis/shipstation-v1/openapi/warehouses/list_warehouses.md): 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. ### Get warehouse - [GET /warehouses/{warehouseId}](https://docs.shipstation.com/apis/shipstation-v1/openapi/warehouses/get_warehouse.md): 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. ### Delete warehouse - [DELETE /warehouses/{warehouseId}](https://docs.shipstation.com/apis/shipstation-v1/openapi/warehouses/delete_warehouse.md): 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. ### Create warehouse - [POST /warehouses/createwarehouse](https://docs.shipstation.com/apis/shipstation-v1/openapi/warehouses/create_warehouse.md): 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. ### Update warehouse - [PUT /warehouses/updatewarehouse](https://docs.shipstation.com/apis/shipstation-v1/openapi/warehouses/update_warehouse.md): 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. ## Webhooks Webhook subscription management ### List webhooks - [GET /webhooks](https://docs.shipstation.com/apis/shipstation-v1/openapi/webhooks/list_webhooks.md): Retrieves a list of registered webhooks for the account ### Subscribe to webhook - [POST /webhooks/subscribe](https://docs.shipstation.com/apis/shipstation-v1/openapi/webhooks/subscribe_webhook.md): Subscribes to a specific type of webhook. If a store_id is passed in, the webhooks will only be triggered for that specific store_id. Note: Webhooks can only be modified through the ShipStation UI under Account Settings. ### Unsubscribe from webhook - [DELETE /webhooks/{webhookId}](https://docs.shipstation.com/apis/shipstation-v1/openapi/webhooks/unsubscribe_webhook.md): Unsubscribes from a certain webhook