The RME API lets your own tools upload and update courses, check processing status, and manage review comments directly in your Review My eLearning account. It's a REST API built for course builders, automation platforms and scripts, so you can move a course into RME without downloading a zip and uploading it by hand.

What you can do with it:

  • Upload a SCORM or HTML5 course as a file, or give RME an https URL to fetch it from

  • Issue an upload ticket so another tool can upload a course without receiving your API credentials

  • Check processing status until the course is active (usually within a minute)

  • Read comments, update their status, and reply in comment threads

  • Re-publish an updated course under the same external ID, which adds a new review cycle instead of a duplicate

To authenticate, create an API key in RME under Organization Settings > API Keys, or connect through OAuth if you're building an app or extension. For course uploads, API keys use courses.write (or api.write), and OAuth uses courses.write. Status can also be read with api.read for API keys or mcp.read for OAuth. API and MCP access is included on every plan.

Quick reference

Action or setting

Endpoint or behavior

Push a course

POST /api/v1/courses/ingest (multipart file or JSON file_url) → 202

Push without sharing credentials

POST /api/v1/courses/upload-ticket → ticket, then POST /api/v1/courses/ingest-ticket with X-Upload-Ticket

Check progress

GET /api/v1/courses/:id/status → wait for status: "active"

Read comments

GET /api/v1/courses/:id/comments (?cycle= ?since=)

Update a comment

PATCH /api/v1/courses/:id/comments/:commentId (status, approved)

Reply to a comment

POST /api/v1/courses/:id/comments/:commentId/discussions (body)

Comment statuses

New · Pending · Complete · Declined

:id accepts

The RME course_id or your external_id

API key scope

courses.write (or api.write); read status also with api.read

OAuth scope

courses.write (status also readable with mcp.read)

Dedupe/version

Send a stable external_id (+ external_source) on every push

Size limit

500 MB (default)

URL rules

https only, no private-network addresses

Full reference, with endpoints, examples and error codes: Course Ingest API guide

Questions? Email support@reviewmyelearning.com.