Cohorts API
A practical guide to the business rules behind the Cohorts Public API v6. This is not an endpoint reference — it explains what a cohort is, how it behaves, and the rules the API enforces so you know what to expect before you call it.
Reference vs. this guide
Endpoint paths, parameters, and payloads live in the separate Learning API Reference. The paths shown here are logical; the gateway/proxy may rewrite them.
Overview
A cohort is a time-boxed, structured learning program that lives inside a community. It organizes learning content into ordered sections, enrolls members, and is managed by authors. The API lets you create and manage cohorts, arrange their content, enroll and track learners, and read completion progress.
The object model is a simple tree:
community
└── cohort
├── sections
│ └── contents (learning objects / cards)
├── members (learners)
└── authors (managers, incl. one creator)
Access requirements
Two conditions must hold before any cohort call succeeds:
- The feature must be enabled for the organization. Controlled by the
EnableSocialLearningCohortscorp setting. When off, every cohort endpoint returns 403 (cohorts_not_enabled). - The community must be topic-based. Cohorts can only exist in topic-based communities. Any other community type returns 422 (
community_not_topic_based); a missing community returns 404 (community_not_found).
On top of that, every action is authorized per role — see Roles and permissions.
In this guide
- Key concepts — the vocabulary used throughout the API.
- OAuth2 scopes — which scope guards which endpoint.
- Managing cohorts — create, update, and delete rules.
- Sections and content — arranging learning objects.
- Members and authors — enrollment, invitations, roles.
- Completion tracking — stats, statuses, progress.
- Pagination, filtering and sorting — list conventions.
- Errors — the error envelope and status codes.