Learn API — bRRAIn Docs

Programmatic API for learn.brrain.io — courses, lessons, exams, certifications, paths.

Learn API

The Learn API exposes the bRRAIn certification platform — courses, lessons, exam state, certifications — for programmatic access. Useful for embedding course catalog into intranets, syncing certification state to your HRIS, or building custom learning pipelines.

Base path

https://learn.brrain.io/api

Catalog (public)

List courses

GET /courses?discipline=&role=&level=&limit=50&cursor=

Disciplines: bRRAInCells, bRRAInOps, bRRAInCare, bRRAInDev.

Levels: foundational, proficient, advanced, master.

Get a course

GET /courses/{slug}

Returns full course detail — modules, lessons, exam configuration.

List paths

GET /paths

Certification paths — sequenced courses that lead to a named certification.

List certifications

GET /certifications

The catalog of issuable certifications across all four disciplines.

My learning (authenticated)

Authenticated as the learner.

Enrollments

GET /me/enrollments
POST /me/enrollments
Content-Type: application/json

{ "course_slug": "..." }

Lesson progress

GET /me/courses/{slug}/progress
PUT /me/courses/{slug}/progress
Content-Type: application/json

{
  "completed_lessons": ["m1-l1", "m1-l2", ...]
}

Exam attempts

POST /me/exams/{exam_id}/attempts

Returns:

{
  "attempt_id": "att_...",
  "questions": [ ... ],
  "time_limit_seconds": 3600,
  "started_at": "..."
}

Submit exam answers

POST /me/exams/{exam_id}/attempts/{attempt_id}/submit
Content-Type: application/json

{
  "answers": { "q1": "B", "q2": "AC", ... }
}

Returns the result and, on pass, a certification link.

My certifications

GET /me/certifications

Returns earned certifications with verification URLs.

Organization-level (authenticated, Architect+)

Bulk enroll

POST /api/console/learn/enrollments
Content-Type: application/json

{
  "course_slug": "...",
  "members": ["usr_1", "usr_2", ...]
}

Enroll multiple members at once.

Track team progress

GET /api/console/learn/progress?course=&path=&since=

Aggregate progress across the organization. Useful for L&D reporting.

Issue internal certificates

POST /api/console/learn/internal-certs
Content-Type: application/json

{
  "name": "...",
  "issued_to": "usr_1",
  "valid_until": "2027-05-13"
}

For organizations issuing their own internal credentials in addition to bRRAIn-issued ones.

Webhooks

  • learn.enrolled
  • learn.lesson_completed
  • learn.course_completed
  • learn.exam_passed
  • learn.exam_failed
  • learn.certification_issued

Errors

  • course_not_found
  • enrollment_required
  • prerequisite_not_met
  • attempt_in_progress — start a new attempt only after the previous one is submitted or expired.
  • exam_locked — failed attempts trigger a cool-down before the next attempt.

Where to next