Skip to content

katana_public_api_client.api.customer.search_customers

katana_public_api_client.api.customer.search_customers

Classes

Functions

asyncio(*, client, body) async

Search customers

Searches customers using a structured filter body with nested logical operators (and / or) and per-field comparators. Only the fields in the filter schema may appear; unknown fields return 422. Custom field values are addressable via custom_fields.<uuid> nested paths. Returns the same shape as GET /customers — a paginated list of records.

Parameters:

  • body (CustomerSearchRequest) –

    Structured search body for POST /customers/search. Returns the same paginated {"data": [...]} shape as the corresponding list endpoint, plus an X-Pagination header. Example: {'filter': {'and': [{'category': None, 'eq': 'Wholesale'}]}, 'order': ['name ASC'], 'limit': 50, 'page': 1}.

Raises:

  • UnexpectedStatus –

    If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.

  • TimeoutException –

    If the request takes longer than Client.timeout.

Returns:

Source code in katana_public_api_client/api/customer/search_customers.py
async def asyncio(
    *,
    client: AuthenticatedClient | Client,
    body: CustomerSearchRequest,
) -> CustomerListResponse | DetailedErrorResponse | ErrorResponse | None:
    """Search customers

     Searches customers using a structured filter body with nested
    logical operators (``and`` / ``or``) and per-field comparators.
    Only the fields in the filter schema may appear; unknown fields
    return 422. Custom field values are addressable via
    ``custom_fields.<uuid>`` nested paths. Returns the same shape as
    ``GET /customers`` — a paginated list of records.

    Args:
        body (CustomerSearchRequest): Structured search body for ``POST /customers/search``.
            Returns the
            same paginated ``{"data": [...]}`` shape as the corresponding list
            endpoint, plus an ``X-Pagination`` header.
             Example: {'filter': {'and': [{'category': None, 'eq': 'Wholesale'}]}, 'order': ['name
            ASC'], 'limit': 50, 'page': 1}.


    Raises:
        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
        httpx.TimeoutException: If the request takes longer than Client.timeout.


    Returns:
        CustomerListResponse | DetailedErrorResponse | ErrorResponse
    """

    return (
        await asyncio_detailed(
            client=client,
            body=body,
        )
    ).parsed

asyncio_detailed(*, client, body) async

Search customers

Searches customers using a structured filter body with nested logical operators (and / or) and per-field comparators. Only the fields in the filter schema may appear; unknown fields return 422. Custom field values are addressable via custom_fields.<uuid> nested paths. Returns the same shape as GET /customers — a paginated list of records.

Parameters:

  • body (CustomerSearchRequest) –

    Structured search body for POST /customers/search. Returns the same paginated {"data": [...]} shape as the corresponding list endpoint, plus an X-Pagination header. Example: {'filter': {'and': [{'category': None, 'eq': 'Wholesale'}]}, 'order': ['name ASC'], 'limit': 50, 'page': 1}.

Raises:

  • UnexpectedStatus –

    If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.

  • TimeoutException –

    If the request takes longer than Client.timeout.

Returns:

Source code in katana_public_api_client/api/customer/search_customers.py
async def asyncio_detailed(
    *,
    client: AuthenticatedClient | Client,
    body: CustomerSearchRequest,
) -> Response[CustomerListResponse | DetailedErrorResponse | ErrorResponse]:
    """Search customers

     Searches customers using a structured filter body with nested
    logical operators (``and`` / ``or``) and per-field comparators.
    Only the fields in the filter schema may appear; unknown fields
    return 422. Custom field values are addressable via
    ``custom_fields.<uuid>`` nested paths. Returns the same shape as
    ``GET /customers`` — a paginated list of records.

    Args:
        body (CustomerSearchRequest): Structured search body for ``POST /customers/search``.
            Returns the
            same paginated ``{"data": [...]}`` shape as the corresponding list
            endpoint, plus an ``X-Pagination`` header.
             Example: {'filter': {'and': [{'category': None, 'eq': 'Wholesale'}]}, 'order': ['name
            ASC'], 'limit': 50, 'page': 1}.


    Raises:
        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
        httpx.TimeoutException: If the request takes longer than Client.timeout.


    Returns:
        Response[CustomerListResponse | DetailedErrorResponse | ErrorResponse]
    """

    kwargs = _get_kwargs(
        body=body,
    )

    response = await client.get_async_httpx_client().request(**kwargs)

    return _build_response(client=client, response=response)

sync(*, client, body)

Search customers

Searches customers using a structured filter body with nested logical operators (and / or) and per-field comparators. Only the fields in the filter schema may appear; unknown fields return 422. Custom field values are addressable via custom_fields.<uuid> nested paths. Returns the same shape as GET /customers — a paginated list of records.

Parameters:

  • body (CustomerSearchRequest) –

    Structured search body for POST /customers/search. Returns the same paginated {"data": [...]} shape as the corresponding list endpoint, plus an X-Pagination header. Example: {'filter': {'and': [{'category': None, 'eq': 'Wholesale'}]}, 'order': ['name ASC'], 'limit': 50, 'page': 1}.

Raises:

  • UnexpectedStatus –

    If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.

  • TimeoutException –

    If the request takes longer than Client.timeout.

Returns:

Source code in katana_public_api_client/api/customer/search_customers.py
def sync(
    *,
    client: AuthenticatedClient | Client,
    body: CustomerSearchRequest,
) -> CustomerListResponse | DetailedErrorResponse | ErrorResponse | None:
    """Search customers

     Searches customers using a structured filter body with nested
    logical operators (``and`` / ``or``) and per-field comparators.
    Only the fields in the filter schema may appear; unknown fields
    return 422. Custom field values are addressable via
    ``custom_fields.<uuid>`` nested paths. Returns the same shape as
    ``GET /customers`` — a paginated list of records.

    Args:
        body (CustomerSearchRequest): Structured search body for ``POST /customers/search``.
            Returns the
            same paginated ``{"data": [...]}`` shape as the corresponding list
            endpoint, plus an ``X-Pagination`` header.
             Example: {'filter': {'and': [{'category': None, 'eq': 'Wholesale'}]}, 'order': ['name
            ASC'], 'limit': 50, 'page': 1}.


    Raises:
        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
        httpx.TimeoutException: If the request takes longer than Client.timeout.


    Returns:
        CustomerListResponse | DetailedErrorResponse | ErrorResponse
    """

    return sync_detailed(
        client=client,
        body=body,
    ).parsed

sync_detailed(*, client, body)

Search customers

Searches customers using a structured filter body with nested logical operators (and / or) and per-field comparators. Only the fields in the filter schema may appear; unknown fields return 422. Custom field values are addressable via custom_fields.<uuid> nested paths. Returns the same shape as GET /customers — a paginated list of records.

Parameters:

  • body (CustomerSearchRequest) –

    Structured search body for POST /customers/search. Returns the same paginated {"data": [...]} shape as the corresponding list endpoint, plus an X-Pagination header. Example: {'filter': {'and': [{'category': None, 'eq': 'Wholesale'}]}, 'order': ['name ASC'], 'limit': 50, 'page': 1}.

Raises:

  • UnexpectedStatus –

    If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.

  • TimeoutException –

    If the request takes longer than Client.timeout.

Returns:

Source code in katana_public_api_client/api/customer/search_customers.py
def sync_detailed(
    *,
    client: AuthenticatedClient | Client,
    body: CustomerSearchRequest,
) -> Response[CustomerListResponse | DetailedErrorResponse | ErrorResponse]:
    """Search customers

     Searches customers using a structured filter body with nested
    logical operators (``and`` / ``or``) and per-field comparators.
    Only the fields in the filter schema may appear; unknown fields
    return 422. Custom field values are addressable via
    ``custom_fields.<uuid>`` nested paths. Returns the same shape as
    ``GET /customers`` — a paginated list of records.

    Args:
        body (CustomerSearchRequest): Structured search body for ``POST /customers/search``.
            Returns the
            same paginated ``{"data": [...]}`` shape as the corresponding list
            endpoint, plus an ``X-Pagination`` header.
             Example: {'filter': {'and': [{'category': None, 'eq': 'Wholesale'}]}, 'order': ['name
            ASC'], 'limit': 50, 'page': 1}.


    Raises:
        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
        httpx.TimeoutException: If the request takes longer than Client.timeout.


    Returns:
        Response[CustomerListResponse | DetailedErrorResponse | ErrorResponse]
    """

    kwargs = _get_kwargs(
        body=body,
    )

    response = client.get_httpx_client().request(
        **kwargs,
    )

    return _build_response(client=client, response=response)