Skip to main content
GET
Search Courses
A Course is a structured learning module published to customers through the Members Portal. Courses are organised into sections (milestones) and lessons (individual content units). They can be used for internal training, community building, or self-learning offers. Courses belong to a Location and are assigned a Host (a customer or administrator) who is responsible for its content. You can control who can access a course using the Visibility field: Courses can optionally display a community discussion group (HasCommunityGroup), be featured on the portal home page (ShowInHomePage), and be grouped together under a GroupName for easier navigation.

Authentication

This endpoint requires OAuth2 authentication. Include a valid bearer token in the Authorization header. The authenticated user must be a full unrestricted administrator or have the Course-List role.

Enums

Query Parameters

Pagination & Sorting

integer
default:"1"
The page number to retrieve.
integer
default:"25"
The number of records per page.
string
The property name to sort results by (e.g. Name, CreatedOn).
integer
Sort direction. 0 for ascending, 1 for descending.

Filters

integer
Filter by iD of the Location this course belongs to.
string
Filter by location name.
string
Filter by location address.
string
Filter by location town or city.
string
Filter by location postal code.
integer
Filter by iD of the coworker or administrator who hosts this course.
string
Filter by host full name.
string
Filter by host company name.
string
Filter by comma-separated list of teams the host belongs to.
string
Filter by course title displayed on the Members Portal.
string
Filter by short summary displayed under the course title on the Members Portal (up to ~400 characters).
string
Filter by full course description shown in the ‘What’s this course about?’ section when customers open the course.
boolean
Filter by whether to display the overview section on the course page.
boolean
Filter by whether the course has an associated community discussion group on the Members Portal.
string
Filter by overview text displayed below the full description on the course page.
string
Filter by stored filename of the course thumbnail image (read-only; use NewImageUrl to set).
string
Filter by uRL of a new thumbnail image to upload (JPG/JPEG, PNG, or GIF, max 10 MB).
boolean
Filter by set to true to remove the existing thumbnail image.
string
Filter by stored filename of the course banner/large image (read-only; use NewLargeImageUrl to set).
string
Filter by uRL of a new banner/large image to upload (JPG/JPEG, PNG, or GIF, max 10 MB).
boolean
Filter by set to true to remove the existing banner/large image.
boolean
Filter by whether the course is active and available to customers.
string
Filter by optional group label used to cluster related courses together on the Members Portal.
integer
Filter by position of the course in listing pages; lower numbers appear first.
boolean
Filter by whether the course is featured on the Members Portal home page.
integer
Filter by access control for the course: Public (1), Hidden from listing but accessible via link (2), Private/invite-only (3), or Paid via TariffId (4).
integer
Filter by iD of the pricing plan (tariff) required to access this course when Visibility is Paid.
string
Filter by pricing plan name.
integer
Filter by billing frequency of the pricing plan (in months).
integer
Filter by billing frequency of the pricing plan (in weeks).
number
Filter by price of the pricing plan.
string
Filter by currency code of the pricing plan (e.g. USD, GBP).

Range Filters

integer
Filter by position of the course in listing pages; lower numbers appear first greater than or equal to this value.
integer
Filter by position of the course in listing pages; lower numbers appear first less than or equal to this value.
integer
Filter by billing frequency of the pricing plan (in months) greater than or equal to this value.
integer
Filter by billing frequency of the pricing plan (in months) less than or equal to this value.
integer
Filter by billing frequency of the pricing plan (in weeks) greater than or equal to this value.
integer
Filter by billing frequency of the pricing plan (in weeks) less than or equal to this value.
number
Filter by price of the pricing plan greater than or equal to this value.
number
Filter by price of the pricing plan less than or equal to this value.
string
Filter records created on or after this date. Format: YYYY-MM-DDTHH:mm.
string
Filter records created on or before this date. Format: YYYY-MM-DDTHH:mm.
string
Filter records updated on or after this date. Format: YYYY-MM-DDTHH:mm.
string
Filter records updated on or before this date. Format: YYYY-MM-DDTHH:mm.

Code Examples

Simple listing

Filtering by Title

Range filters

Response

200

Course[]
The list of Course records matching the query. See the Get one Course endpoint for the full list of properties returned for each record.
Partial records — The listing endpoint returns a summary representation of each Course. The following fields are not populated in the Records[] response: FullDescription, ShowOverview, OverviewText, Active, ShowInHomePage, Visibility.To get all fields, fetch the full record using the Get one Course endpoint.Important for updates: When updating a record via PUT, always retrieve the full record with a GET request first, apply your changes to that complete data, and then send the updated record. Do not use data from a listing response as the base for a PUT request, as missing fields may be unintentionally cleared.
integer
Current page number.
integer
Number of records per page.
string
The field used for sorting.
integer
The sort direction (0 = ascending, 1 = descending).
integer
Index of the first item on the current page.
integer
Index of the last item on the current page.
integer
Total number of matching records across all pages.
integer
Total number of pages.
boolean
Whether there is a next page of results.
boolean
Whether there is a previous page of results.
Example Response