List Etsy Orders
GET/api/etsy/instances/:integrationInstance/orders
Lists Etsy orders (receipts) mirrored for this instance, with their line items and linked SKU.io sales order. Archived orders are excluded. Newest Etsy order first by default.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Pagination: page, per_page (default 10).
Search: filter[search] matches ID, Etsy receipt ID, buyer name, buyer email, and tracking number.
Text filters — filter[<field>] (exact) or filter[<field>.<operator>] with operators: contains, does_not_contain, is, is_not, is_one_of, is_not_one_of, starts_with, does_not_start_with, ends_with, does_not_end_with, is_empty, is_not_empty.
Fields: status, receipt_id, name (buyer), country_iso, currency_code, tracking_codes, tracking_carriers, tracking_submission_status.
Numeric filters — filter[<field>] or filter[<field>.<operator>] with operators: is, is_not, is_one_of, is_not_one_of, greater_than, less_than, greater_than_or_equal, less_than_or_equal, between, is_empty, is_not_empty.
Fields: grandtotal, subtotal, total_shipping_cost.
Date-time filters — filter[<field>] or filter[<field>.<operator>] with operators: is, is_not, before, after, on_or_before, on_or_after, between, is_empty, is_not_empty, today, yesterday, tomorrow, past_week, past_month, past_year, next_week, next_month, next_year. Use YYYY-MM-DD; between takes two comma-separated dates.
Fields: etsy_created_at, etsy_updated_at, created_at.
Yes/no filters (true/false): filter[is_paid.is], filter[is_shipped.is], filter[is_gift.is], filter[pre_start_date_import.is], filter[has_sku_order], filter[has_unmapped_items], filter[address_withheld] (the last three also accept a .is suffix).
Order statuses: paid, completed, open, payment processing, canceled, fully refunded, partially refunded.
Sort: sort — prefix with - for descending. Allowed: id, receipt_id, status, name, grandtotal, subtotal, total_shipping_cost, etsy_created_at, etsy_updated_at, created_at, updated_at, country_iso. Default: -etsy_created_at.
Grouped filters: instead of filter[...] params you can send filter_groups — a base64-encoded JSON tree such as {"conjunction":"and","children":[{"type":"condition","condition":{"column":"status","operator":"is","value":"paid"}}]}. Each condition's column + operator must be one of the filters listed above.
Authentication: Bearer token (Personal Access Token).
Request
Responses
- 200
- 401
- 403
- 404
- 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
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.