Open edX
by Axim Collaborative (open source)
The open-source platform behind edX. REST APIs with OAuth2/JWT, an internal event bus (openedx-events), LTI, and a large plugin ecosystem. No first-party hosted webhooks in core.
Direct integrations
Native integrations you connect from inside the LMS — typically an OAuth "Connect" flow, with no external middleware.
Supported — Extended through Django plugins, LTI, and XBlocks; integrations are typically self-hosted/configured.
| Integration | Category | Type | Notes |
|---|---|---|---|
| LTI 1.3 / LTI Advantage | Interoperability | lti |
Consume external tools as LTI components. |
| Ecommerce / payment processors | Payments | plugin |
Stripe/PayPal via the ecommerce service or Commerce Coordinator. |
| SAML 2.0 / OAuth SSO | Identity | saml |
Third-party auth via the SSO pipeline. |
| Zoom / BigBlueButton | Video conferencing | plugin |
Live sessions via XBlocks/plugins. |
Middleware support
Third-party automation platforms (iPaaS) that connect this LMS to thousands of other apps without code.
Supported — Integrations connect through the REST APIs; no first-party iPaaS app (it is self-hosted/open source).
| Platform | Supported | Details |
|---|---|---|
| Zapier | No | Integrate via the REST APIs / event bus. |
| Make | Yes | Via HTTP modules against the REST APIs. |
| Pabbly Connect | Yes | Via HTTP against the REST APIs. |
| n8n | Yes | Via the HTTP Request node against the REST APIs. |
| Microsoft Power Automate | No | |
| Workato | No | |
| Tray.io | No |
API
Programmatic access to the LMS. Endpoints below are a documented subset — always check the vendor's official reference for the complete, current list.
Supported — Multiple per-service REST APIs (enrollment, user/accounts, courses, grades, etc.). Use the OAuthAPIClient for service-to-service calls. Paths below are representative.
| Type | REST |
|---|---|
| Version | per-service (v1) |
| Authentication | OAuth 2.0 (POST /oauth2/access_token → JWT bearer token) |
| Base URL | https://<your-lms-host>/api |
| Format | JSON |
| Rate limit | Deployment-configurable. |
| Docs | https://docs.openedx.org/projects/edx-platform/en/latest/how-tos/use_the_api.html |
Endpoints
Auth
| Method | Endpoint | Description |
|---|---|---|
| POST | /oauth2/access_token |
Obtain an OAuth2 JWT access token |
Enrollment
| Method | Endpoint | Description |
|---|---|---|
| GET | /enrollment/v1/enrollments/ |
List enrollments |
| GET | /enrollment/v1/enrollment/{username},{course_id} |
Check a user's enrollment in a course |
| POST | /enrollment/v1/enrollment |
Enroll a user in a course |
Users
| Method | Endpoint | Description |
|---|---|---|
| GET | /user/v1/accounts/{username} |
Get a user's account |
Courses
| Method | Endpoint | Description |
|---|---|---|
| GET | /courses/v1/courses/ |
List courses |
Grades
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/grades/v1/courses/{course_id} |
Get grades for a course |
Webhooks
Outbound HTTP callbacks the LMS sends to your endpoint when events occur, with their supported event types and security model.
Not supported — Core Open edX has no hosted outbound webhook product. It provides 'openedx-events' (a Django/Kafka event bus) and Django signals that plugins use to push notifications; community plugins (e.g. webhook/event-routing backends) add outbound HTTP callbacks. For SaaS-style webhooks, deploy a plugin or poll the REST APIs.