Refresh Inventory
POST/api/shiphero/integration-instances/:integration_instance/inventory/refresh
Queue a background job that refreshes this integration's inventory from ShipHero.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
The refresh is asynchronous: the endpoint returns 202 Accepted immediately with a tracked_job_log_id, and the catalogue is paged and stored in the background. Poll the tracked job log with that id to follow progress, cancellation and the completion summary. The response body does not contain inventory records.
Only one refresh may run per integration at a time. If a refresh is already in flight the endpoint returns 409 Conflict and does not queue a second one.
warehouse_id is optional. Omit it to refresh every mapped warehouse. It accepts either a SKU.io warehouse id or the ShipHero warehouse identifier; a numeric value is resolved to the mapped ShipHero warehouse automatically. When supplied, only that warehouse's records are refreshed and other warehouses are left untouched.
Rows are updated in place as each page arrives, so inventory is never empty part-way through a refresh. Records not seen during the run are removed once it completes.
Authentication: Requires Bearer token.
Requires the integrations.sync permission.
Request
Responses
- 202
- 401
- 403
- 404
- 409
- 422
- 429
Accepted
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden
Response Headers
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Conflict
Response Headers
Unprocessable Content
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.