List products
List of products (not archived) that can be granted to a contact
Pagination
Use page[number] and page[size] parameters to paginate results:
Get first page of 10 items
GET /v1/products?page[number]=1&page[size]=10
Get second page of 25 items
GET /v1/products?page[number]=2&page[size]=25
The response includes pagination links and meta data:
Sorting
Use the sort parameter to sort the results:
Sort by title in ascending order
GET /v1/products?sort=title
Sort by title in descending order
GET /v1/products?sort=-title
Response will include products sorted by the specified field
Sparse Fields
Use the fields[products] parameter to request only specific attributes:
Get only title and publish_status fields
GET /v1/products?fields[products]=title,publish_status
Response will only include the requested fields
Filter by Site ID
Use the filter[site_id] parameter to get products for a specific site:
Get products for site with ID 123
GET /v1/products?filter[site_id]=123
Response will only include products for that site
Filter by Title Contains
Use the filter[title_cont] parameter to find products where the title contains specific text:
Get products with titles containing “course”
GET /v1/products?filter[title_cont]=course
Response will include products with matching titles
Filter by Description Contains
Use the filter[description_cont] parameter to find products where the description contains specific text:
Get products with descriptions containing “training”
GET /v1/products?filter[description_cont]=training
Response will include products with matching descriptions
Filter by Status
Use the filter[status_eq] parameter to find products with a specific status:
Get ready products
GET /v1/products?filter[status_eq]=ready
Response will include products with matching status
Filter by Excluded Product Types
Use the filter[exclude_product_types][] parameter to exclude products by productizable_type (fully-qualified class name):
Exclude CohortCourse products
GET /v1/products?filter[exclude_product_types][]=Courses::CohortCourse
Response will exclude products with the specified productizable_type while keeping legacy evergreen courses visible.
Using Multiple Parameters Together
You can combine pagination, sorting, sparse fields and filtering in a single request:
Get page 2 of products for site 123, sorted by title descending, including only title and publish_status fields
GET /v1/products?page[number]=2&page[size]=10&sort=-title&filter[site_id]=123&fields[products]=title,publish_status
Response will include paginated and filtered products with sparse fields
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Sort order, use: title, description, status, for descending order use '-' e.g. &sort=-title
Number of documents
Partial attributes as specified, e.g. fields[products]=title,publish_status
Filter by site_id, for example ?filter[site_id]=111
Filter by title contains, for example ?filter[title_cont]=marketing
Filter by description contains, for example ?filter[description_cont]=marketing
Filter by status equals, for example ?filter[status_eq]=ready
Exclude products by productizable_type (fully-qualified, e.g. Courses::CohortCourse). Repeatable.