Create Integration Instance
POST/api/shippo/instances
Connects a Shippo account. The token is verified live with Shippo first — an invalid token creates nothing. Only one Shippo connection is allowed per account.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
On success the instance is created with default settings (auto_push_orders true, record_shipping_costs true, label_file_type PDF_4x6, sync_start_date as given or today), the Shippo webhooks are registered in the background, and initial carrier, order and label syncs are queued.
Body fields:
- name (string, required): a label for this connection. Max 255 characters.
- api_token (string, required): the Shippo API token. 20–255 characters, must start with shippo_test_ or shippo_live_. Surrounding whitespace is trimmed.
- sync_start_date (string, optional, nullable): earliest date the initial order and label import covers, as Y-m-d (a calendar day in the account timezone). Cannot be in the future. Defaults to today.
Returns 201 with the created instance. The API token is never returned — only a masked form (api_token_masked). Returns 422 with code already_connected when Shippo is already connected, 422 with field errors on validation failure, and 422 with a Shippo error code when the token is rejected. Shippo failures return 422 with a stable code: invalid_token (Shippo rejected the API token), rate_limited (Shippo is throttling — retry in a minute), api_error (Shippo refused the request; message carries its reason) or unreachable (Shippo could not be reached).
Authentication: Requires a Bearer token.
Request
Responses
- 201
- 401
- 403
- 422
- 429
Created
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Unprocessable Entity
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.