List all content IDs in a group catalog: Migration guide

This guide details how the List all content IDs in a group catalog endpoint has replaced the v1 getGroupCatalog.

💡

Key changes

  • Content type: The v2 endpoint retrieves content for a single, specified content type (e.g., course or path-session), whereas the v1 endpoint returned all content types in one request.
  • Pagination: The v2 endpoint is paginated, returning a maximum of 10,000 unique content IDs per page.
  • Behavior: The v2 endpoint returns only a list of IDs, not full content objects.

Documentation links

Here are the links to the API reference for:

Endpoint mapping

Here's the direct correlation between the v1 and v2 endpoint URLs:

  • API v1: /api/v1/groups/:group_id/catalog
  • API v2: /api/v2/groups/{groupId}/catalog/{contentType}-ids

Input changes

This section details the specific alterations to the input requirements between API versions.

API v1 input example

curl --location -g 'https://{{host}}/api/v1/groups/:group_id/catalog?company={{company}}&apiKey={{apiKey}}'

API v2 input example

curl --request GET \
     --url https://app.360learning.com/api/v2/groups/507f1f77bcf86cd799439011/catalog/course-ids \
     --header '360-api-version: v2.0' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer your_access_token'

Main input differences

Change type

API v1

API v2

Modified
Path parameter

group_id (Required): The unique ID of the group.


groupId (Required): Modified name. The unique ID of the group.

Added
Header parameter


360-api-version (Required): API version identifier. Example: v2.0.

Added
Path parameter


contentType (Required): The type of content IDs to retrieve. Allowed values: path-session, course.

Output changes

This section details the specific alterations to the successful output returned between API versions.

API v1 output example

{
  "courses": [
    {
      "_id": "5ca4abe60a6bab14ff7bcd9b",
      "name": "My First Course"
    },
    {
      "_id": "5bf6dcbde08846890714ba87",
      "name": "My Second Course"
    }
  ],
  "paths": [
    {
      "_id": "5ca4abe60a6bab14ff7bcd9b",
      "name": "My First Path"
    }
  ]
}

API v2 output example

[
  "5ca4abe60a6bab14ff7bcd9b",
  "5bf6dcbde08846890714ba87"
]

Main output differences

API v2 output structure has shifted from a complex object containing arrays of full content objects (ID and Name) for all content types, to a simple, paginated array of unique content IDs for a single specified content type.

Change type

API v1

API v2

Removed
Output property

courses: Top-level array properties containing course IDs and names.

Removed in v2. The content type is now specified in the URL path.

Removed
Output property

paths: Top-level array properties containing path IDs and names.

Removed in v2. The content type is now specified in the URL path.

Removed
Output property

name: Name of the course or path.

Removed in v2. v2 only returns IDs.

Modified
Success output

200: Returns all items in the body.

200: Returns one page of 10,000 unique content IDs.

Added
Header


Link: String. URL (between < >) to fetch the immediate next page of results. Only included if there are additional pages of results.