Skip to content

Filter Products

Request

Filters and returns a paginated collection of Product resources using OData query options.

Authentication

Requires a valid API key in the X-API-KEY header.

Headers

Accept-Language

Indicates the preferred natural language and locale for localized content.

  • omitted / null: content in the tenant's default culture.
  • culture-code (e.g. en-US, es): content localized in the specified culture.
  • * and q-factor weighting are currently not supported.

OData Query Support

$select

Comma-separated list of root-resource property names to include in the response. See /Products/$metadata for the available properties. Selecting properties of embedded resources is not supported.

Example: $select=prod_description,prod_tags

$expand

Comma-separated list of embedded collections to include (e.g. Variants). By default, embedded collections are not included. Only embedded collections (not embedded resources) are supported.

Example: $expand=Variants

$filter

OData v4.01 URI conventions. Filtering is restricted to properties of the root resource (Product).

Comparison operators: eq, ne, gt, ge, lt, le

Logical operators: and, or, not

Set operator: in

String functions: contains, startswith, endswith

Examples:

  • $filter=prod_ref eq 'SKU-001'
  • $filter=contains(prod_description, 'pro')
  • $filter=prod_id in (1, 2, 3)
  • $filter=prod_id gt 100 and contains(prod_description, 'pro')

$orderby

Single property, ascending by default. Multi-property ordering and ordering on embedded properties are not supported.

Examples:

  • $orderby=prod_description (asc by default)
  • $orderby=prod_description asc
  • $orderby=prod_ref desc

Pagination — $top, $skip, $skipToken

  • $top — maximum number of items returned.
  • $skip — number of items to skip (offset paging).
  • $skipToken — continuation-token paging. Recommended when no $orderby is applied (faster than offset paging).

Paging applies only to the root resource (Product), never to embedded collections.

Response

200 OKCollectionRepresentation with the matching Product resources, pagination metadata (Count, Skip, Top, HasNext, continuation token) and the cultures echoed from Accept-Language.

Error Responses

  • 400 Bad Request — Invalid OData expression or unsupported $orderby/$filter field (returns ValidationFailureRepresentation).
  • 401 Unauthorized — Missing or invalid API key. Returned by the API gateway as { "message": "Unauthorized", "request_id": "d8aafa5b8f3e400b60bea0123dd33317" }.
  • 404 Not Found — Tenant or model not found.
  • 500 Internal Server Error — Unexpected technical error.

Example

Request:

GET /Products?$filter=contains(prod_description,'pro')&$orderby=prod_description asc&$top=20 HTTP/1.1
X-API-KEY: your-api-key-here
Accept-Language: en-US

Response:

HTTP/1.1 200 OK
Content-Type: application/json
Query
$filterstring
$orderbystring
$skipinteger, (int64)
$skipTokenstring
$topinteger, (int64)
$selectstring
$expandstring
Headers
X-API-KEYstring

Tenant's API key (required)

Accept-Languagestring

Preferred localization culture (Accept-Language header)

GET
/Products
curl -i -X GET \
  'https://api2.saleslayer.com/catalog/Products?%24filter=string&%24orderby=string&%24skip=0&%24skipToken=string&%24top=0&%24select=string&%24expand=string' \
  -H 'Accept-Language: string' \
  -H 'X-API-KEY: string'

Responses

OK

Bodyapplication/json
@contextstring or null
valueany or null
@countinteger or null, (int64)
Response
{ "@readLink": "string", "@nextLink": "string", "@deltaLink": "string", "@context": "string", "value": null, "@count": 0 }