This document catalogs every ShipStation endpoint the ShipStation integration calls, grouped by the workflow each one serves. Use it to check whether a published ShipStation deprecation notice affects the integration, to whitelist the correct hosts in your firewall, and as a reference when troubleshooting data flow.
API Endpoints Intro
The integration calls two generations of the ShipStation REST API, both exchanging JSON:
ShipStation API V2 creates and updates the shipments that iPaaS.com orders become, and resolves the Ship From Location and carrier services those shipments reference. Every V2 request carries your V2 API Access Key in an API-Key request header. The base URL is the V2 API Base URL configured in your subscription settings; the standard host is:
https://api.shipstation.com/v2
ShipStation API V1 reads shipments and carrier services from your account and resolves the store a shipment belongs to. Every V1 request uses HTTP Basic authentication, with your ShipStation API Key as the username and your ShipStation API Secret as the password. The base URL is the API Url configured in your subscription settings; the standard host is:
https://ssapi.shipstation.com
In the endpoint patterns below, [V2 Base URL] and [V1 Base URL] stand in for those hosts. Replace them with the V2 API Base URL and API Url from your subscription settings.
NOTE: Earlier releases of the integration created ShipStation orders through the V1 order endpoints. Those endpoints are no longer called: orders sent from iPaaS.com are now created as ShipStation shipments through the V2 API, and no label endpoint is called.
Table of Contents
Shipment Endpoints
These V2 endpoints support the outbound workflow that sends orders from iPaaS.com into ShipStation. Each destination address on an order becomes one shipment, created in its own request; an order that ships to several addresses produces several requests, never one bulk request.
Create a Shipment (POST)
[V2 Base URL]/shipments
Creates one shipment for one destination address, carrying the ship-to address, the line items for that destination, the package weight, and the store and Ship From Location the shipment belongs to. The integration asks ShipStation to create the matching sales order in the same request so the shipment is visible in ShipStation. ShipStation limits the shipment number and the external shipment id to 50 characters and truncates longer values.
Update a Shipment (PUT)
[V2 Base URL]/shipments/{shipment_id}Updates an existing shipment with the current order data when an order that already produced a shipment is transferred again. ShipStation treats the shipment id, status, tags, total weight, and batch assignments as read-only on this call; the integration updates the address, items, package, and amounts.
Get a Shipment by External Shipment Id (GET)
[V2 Base URL]/shipments/external_shipment_id/{external_shipment_id}Retrieves the shipment ShipStation already holds for a destination, using the iPaaS.com Transaction Address ID the integration stores as the external shipment id. The integration calls it before creating a shipment so a retried or repeated transfer updates the existing shipment instead of creating a duplicate.
Get a Shipment by Id (GET)
[V2 Base URL]/shipments/{shipment_id}Retrieves a single shipment by its ShipStation shipment id. The integration calls it when it reads an order back from ShipStation, rebuilding the order from the shipments it was created as.
Lookup Endpoints
These endpoints are called by the mapping functions that resolve ShipStation identifiers from names in your formulas (see the ShipStation Mapping Functions article). Results are cached for the duration of a transfer, so a name is looked up once per transfer rather than once per shipment.
List Ship From Locations (GET)
[V2 Base URL]/warehouses
Retrieves the Ship From Locations (warehouses) configured in the ShipStation account. The integration matches the name in the address's ShipStation Ship From Location custom field against each location's name, ignoring letter case, to obtain the identifier a shipment must reference.
List Carriers and Services (GET)
[V2 Base URL]/carriers?page={page}&page_size=100&include_extended_details=trueRetrieves the carriers connected to the ShipStation account together with each carrier's services. The integration pages through the results until it finds the service whose name matches your formula, returning that service's carrier identifier or service code.
page and page_size: page through the connected carriers, 100 per page.
include_extended_details: includes each carrier's services in the response.
List Stores (GET)
[V1 Base URL]/stores
Retrieves the stores configured in the ShipStation account. The integration matches the name in the order's ShipStation Store custom field against each store's name, ignoring letter case, to obtain the store identifier a shipment is filed under.
Inbound Shipment Endpoints
These V1 endpoints support the inbound workflow that brings shipment records into iPaaS.com. Shipments are retrieved by polling on a schedule and by Manual Sync; the integration does not rely on live shipment webhooks. ShipStation returns only shipments for which a label has been generated in ShipStation.
Get Shipments (GET)
[V1 Base URL]/shipments
Retrieves shipment records. The integration applies query parameters to scope and page the results, for example:
[V1 Base URL]/shipments?includeShipmentItems=true&shipmentId={shipmentId}[V1 Base URL]/shipments?createDateStart={lastPollDate}&page={page}&pageSize={limit}includeShipmentItems: when set to
true, includes the items contained in each returned shipment.shipmentId: returns the single shipment with the specified ShipStation shipment id, used by Manual Sync.
createDateStart: returns shipments created on or after the supplied date, used when polling for shipments created since the last successful run.
page and pageSize: page through large result sets.
Shipping Method Endpoints
These V1 endpoints support the inbound workflow that brings carriers and their services into iPaaS.com as shipping methods. They run during Initialization and on Manual Sync.
Get Carriers (GET)
[V1 Base URL]/carriers
Retrieves the list of carriers configured in the ShipStation account.
Get Carrier Services (GET)
[V1 Base URL]/carriers/listservices?carrierCode={code}Retrieves the services available for a single carrier.
carrierCode: the code of the carrier whose services are being requested, taken from the carrier list returned by the Get Carriers endpoint above.
Pagination
V1 shipments are paged with the page and pageSize query parameters; the integration advances page until ShipStation returns fewer records than the page size.
V2 carriers are paged with the page and page_size query parameters; the response reports the total number of pages and the integration advances page until it finds a match or reaches the last page.
The V2 shipment endpoints and the V1 stores and carriers endpoints return a single record or the full list and are not paged.
Rate Limits
At the time this documentation was written, ShipStation publishes the following limits:
ShipStation API V1: 40 requests per minute for each API Key and API Secret combination. Responses carry the
X-Rate-Limit-Limit,X-Rate-Limit-Remaining, andX-Rate-Limit-Resetheaders, and a request over the limit receives HTTP 429 Too Many Requests.ShipStation API V2: 200 requests per minute. A request over the limit receives HTTP 429 Too Many Requests with a
Retry-Afterheader stating how many seconds to wait.
The integration's Concurrent Batch Executions setting caps how many transfers run at the same time. If you see rate-limit errors in the iPaaS.com Dashboard under Integration Monitoring, reduce that setting or the API Throttle values in your subscription settings.
Authorization
Neither ShipStation API generation uses a separate authorization or token endpoint, so there is no token-exchange URL to whitelist.
V1 uses HTTP Basic authentication on every request. The integration sends your ShipStation API Key and API Secret (configured in your subscription settings) as the Basic authentication credentials with each V1 call listed above.
V2 uses API-key authentication on every request. The integration sends your V2 API Access Key (configured in your subscription settings) in the API-Key request header with each V2 call listed above.
