list sales orders
Every order Tightly holds, whatever it came in by: a connected channel, a person, a file, this API, an EDI 850 or the buyer portal. status_numbers counts the whole filtered book per lifecycle, not the page, so a total shown above the rows can be relied on. Do not call this to find one order you already have the id for: GET /sales/orders/{order_id} serves that one whole, and this list deliberately carries no address.
Scope: orders:read.
Request
- Base URL: https://api.app.tightly.io
- URL: https://api.app.tightly.io/api/v1/sales/orders
- Auth: HTTP bearer
Query parameters
Case-insensitive literal match on product name, variant name or SKU. Returns whole orders containing a matching line; units and values remain whole-order totals.
Only orders in this state.
Only orders somebody has to answer for: a wholesale draft nobody has confirmed, or an order carrying an open queue row. Not expressible as a lifecycle, which is why it is a filter of its own.
Only orders that came in by this door.
True for orders an account placed, false for orders a shopper placed.
Only orders for this account.
Only orders on this channel.
Comma-separated serving warehouse IDs; order header location, not retailer destination door.
Comma-separated current recorded booking commitment IDs; whole orders, once each.
Matches an order's name, its reference, or the account it is for.
Only orders placed on or after this day.
How many orders to skip, for paging.
How many orders to return. Above the maximum the read is REFUSED rather than trimmed: a caller handed 500 of 4,000 rows with no warning has wrong data. filtered_max_size states the book's true size, so a caller can always tell a page from the whole of it.
Sort the whole filtered book by this column before paging, never only the drawn page. Omitted, wholesale drafts sort first, then orders by when they were placed, newest first.
Direction for sort_key. Ignored without it.
Headers
The date train to answer on. One train exists today, 2026-11, the one this reference describes and the one every key is minted on, so the call answers on it with or without this header. Send it anyway, so a client built now names its train from the start.
Response
The page of orders, and the counts the head ties to.
Changes
No recorded changes to this operation across all 1 revision of this API.