Fetch Etsy Inventory
POST/api/etsy/instances/:integrationInstance/inventory/fetch
Reads the live quantity of every mapped, non-archived Etsy listing variation from Etsy and stores it as the observed Etsy quantity (sales_channel_quantity) on the inventory comparison, so the comparison reflects what the shop actually holds rather than only what SKU.io last pushed. Read-only on Etsy — nothing is written to the shop, and the SKU.io quantity is never changed. Listings are read up to 100 at a time; if Etsy rejects a batch because one listing no longer exists, each listing in that batch is read individually and deleted listings are counted as missing.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Runs in the background. The response returns a tracked_job_log_id you can use to follow progress, cancel, or review the completion summary (listings_fetched, listings_missing, variations_updated).
Request body: none.
Authentication: Bearer token (Personal Access Token).
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 429
OK
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.
Not Found
Response Headers
Validation failed — the body is a field → messages map (Laravel shape) or the platform envelope with a stable machine-readable code. Fix the payload and resubmit.
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.