Skip to content

katana_public_api_client.models.sales_order_search_request

katana_public_api_client.models.sales_order_search_request

Classes

SalesOrderSearchRequest

Structured filter body for POST /sales_orders/search. Returns the same paginated {"data": [...]} shape as GET /sales_orders plus an X-Pagination header. Beta — request/response shape may evolve before GA.

Example:
    {'filter': {'and': [{'status': {'inq': ['NOT_SHIPPED', 'PACKED']}}, {'created_at': {'gte':
        '2026-01-01T00:00:00.000Z'}}, {'custom_fields.0c8f1d6e-3c2a-4f5b-9d77-12ab34cd56ef': 2}]}, 'order': ['created_at
        DESC', 'id DESC'], 'limit': 50, 'page': 1}

Attributes:
    filter_ (SalesOrderSearchFilter | Unset): ``filter`` clause for ``POST /sales_orders/search``. Only the fields
        listed here may appear; unknown fields are rejected with 422.
        Custom field values are addressable via additional
        ``custom_fields.<uuid>`` keys (snake_case, matching the
        request/response body), where ``<uuid>`` is the custom field
        definition id — its value is a bare value or a ``SearchComparator``
        like any other predicate (for ``singleSelect`` the value is the
        integer choice ``id``). Compose with ``and`` / ``or`` (max nesting
        depth 2).
    order (list[str] | str | Unset): Sort directive(s). Each entry is ``<field> ASC|DESC``
        (direction defaults to ASC). Only filterable fields may be
        used; ``custom_fields.<uuid>`` paths are orderable.
    limit (int | Unset): Page size; maximum 200. Omit to let the server apply its
        default of 50 (the client omits the key when unset rather than
        sending a default, so direct construction and round-tripped
        ``from_dict`` payloads behave identically).
    page (int | Unset): 1-based page number. Omit to let the server default to 1.