Skip to Content

Chapters

Chapter CRUD and ordering within courses.

Create chapter

POST/api/v1/chapters/
API tokencoursechapters:createor user session

Create a new chapter inside an existing course.

Request bodyapplication/jsonrequired

namestringrequired
descriptionstring | null
thumbnail_imagestring | null
lock_typeLockType
publicauthenticatedrestricted
org_idintegerrequired
course_idintegerrequired
extra_metadataExtra Metadata | null

Returns

ChapterRead — Chapter created successfully

namestringrequired
descriptionstring | null
thumbnail_imagestring | null
lock_typeLockType
publicauthenticatedrestricted
org_idintegerrequired
course_idintegerrequired
idintegerrequired
activitiesActivityRead[]required
Show child attributes
namestringrequired
activity_typeActivityTypeEnumrequired
TYPE_VIDEOTYPE_DOCUMENTTYPE_DYNAMICTYPE_ASSIGNMENTTYPE_CUSTOMTYPE_SCORM
activity_sub_typeActivitySubTypeEnumrequired
SUBTYPE_DYNAMIC_PAGESUBTYPE_DYNAMIC_MARKDOWNSUBTYPE_DYNAMIC_EMBEDSUBTYPE_DYNAMIC_RESOURCESUBTYPE_VIDEO_YOUTUBESUBTYPE_VIDEO_HOSTEDSUBTYPE_DOCUMENT_PDFSUBTYPE_DOCUMENT_DOCSUBTYPE_ASSIGNMENT_ANYSUBTYPE_CUSTOMSUBTYPE_SCORM_12SUBTYPE_SCORM_2004
contentContent
detailsDetails | null
publishedboolean
lock_typeActivityLockType
publicauthenticatedrestricted
idintegerrequired
org_idintegerrequired
course_idintegerrequired
activity_uuidstringrequired
creation_datestringrequired
update_datestringrequired
extra_metadataExtra Metadata | null
current_versioninteger
last_modified_by_idinteger | null
last_modified_by_usernamestring | null
is_lockedboolean
chapter_uuidstringrequired
creation_datestringrequired
update_datestringrequired
extra_metadataExtra Metadata | null
is_lockedboolean
Error responses
  • 403 User lacks permission to create chapters on this course
  • 404 Course not found
  • 422 Invalid chapter payload
Request
Response
{
  "name": "Example name",
  "description": "An example description",
  "thumbnail_image": "string",
  "lock_type": "public",
  "org_id": 1,
  "course_id": 1,
  "id": 1,
  "activities": [
    {
      "name": "Example name",
      "activity_type": "TYPE_VIDEO",
      "activity_sub_type": "SUBTYPE_DYNAMIC_PAGE",
      "content": {},
      "details": {},
      "published": false,
      "lock_type": "public",
      "id": 1,
      "org_id": 1,
      "course_id": 1,
      "activity_uuid": "string",
      "creation_date": "string",
      "update_date": "string",
      "extra_metadata": {},
      "current_version": 1,
      "last_modified_by_id": 1,
      "last_modified_by_username": "string",
      "is_locked": false
    }
  ],
  "chapter_uuid": "string",
  "creation_date": "string",
  "update_date": "string",
  "extra_metadata": {},
  "is_locked": false
}

Get chapter by ID

GET/api/v1/chapters/{chapter_id}
API tokencoursechapters:reador user session

Retrieve a single chapter by its numeric ID.

Path parameters

chapter_idintegerrequired

Returns

ChapterRead — Chapter retrieved successfully

namestringrequired
descriptionstring | null
thumbnail_imagestring | null
lock_typeLockType
publicauthenticatedrestricted
org_idintegerrequired
course_idintegerrequired
idintegerrequired
activitiesActivityRead[]required
Show child attributes
namestringrequired
activity_typeActivityTypeEnumrequired
TYPE_VIDEOTYPE_DOCUMENTTYPE_DYNAMICTYPE_ASSIGNMENTTYPE_CUSTOMTYPE_SCORM
activity_sub_typeActivitySubTypeEnumrequired
SUBTYPE_DYNAMIC_PAGESUBTYPE_DYNAMIC_MARKDOWNSUBTYPE_DYNAMIC_EMBEDSUBTYPE_DYNAMIC_RESOURCESUBTYPE_VIDEO_YOUTUBESUBTYPE_VIDEO_HOSTEDSUBTYPE_DOCUMENT_PDFSUBTYPE_DOCUMENT_DOCSUBTYPE_ASSIGNMENT_ANYSUBTYPE_CUSTOMSUBTYPE_SCORM_12SUBTYPE_SCORM_2004
contentContent
detailsDetails | null
publishedboolean
lock_typeActivityLockType
publicauthenticatedrestricted
idintegerrequired
org_idintegerrequired
course_idintegerrequired
activity_uuidstringrequired
creation_datestringrequired
update_datestringrequired
extra_metadataExtra Metadata | null
current_versioninteger
last_modified_by_idinteger | null
last_modified_by_usernamestring | null
is_lockedboolean
chapter_uuidstringrequired
creation_datestringrequired
update_datestringrequired
extra_metadataExtra Metadata | null
is_lockedboolean
Error responses
  • 403 User lacks read access to this chapter
  • 404 Chapter not found
  • 409 Chapter does not exist
  • 422 Validation ErrorHTTPValidationError
Request
Response
{
  "name": "Example name",
  "description": "An example description",
  "thumbnail_image": "string",
  "lock_type": "public",
  "org_id": 1,
  "course_id": 1,
  "id": 1,
  "activities": [
    {
      "name": "Example name",
      "activity_type": "TYPE_VIDEO",
      "activity_sub_type": "SUBTYPE_DYNAMIC_PAGE",
      "content": {},
      "details": {},
      "published": false,
      "lock_type": "public",
      "id": 1,
      "org_id": 1,
      "course_id": 1,
      "activity_uuid": "string",
      "creation_date": "string",
      "update_date": "string",
      "extra_metadata": {},
      "current_version": 1,
      "last_modified_by_id": 1,
      "last_modified_by_username": "string",
      "is_locked": false
    }
  ],
  "chapter_uuid": "string",
  "creation_date": "string",
  "update_date": "string",
  "extra_metadata": {},
  "is_locked": false
}

Update chapter

PUT/api/v1/chapters/{chapter_id}
API tokencoursechapters:updateor user session

Update the name or other metadata of a chapter by its ID.

Path parameters

chapter_idintegerrequired

Request bodyapplication/jsonrequired

namestring | null
descriptionstring | null
thumbnail_imagestring | null
lock_typeenum | null
publicauthenticatedrestricted
extra_metadataExtra Metadata | null

Returns

ChapterRead — Chapter updated successfully

namestringrequired
descriptionstring | null
thumbnail_imagestring | null
lock_typeLockType
publicauthenticatedrestricted
org_idintegerrequired
course_idintegerrequired
idintegerrequired
activitiesActivityRead[]required
Show child attributes
namestringrequired
activity_typeActivityTypeEnumrequired
TYPE_VIDEOTYPE_DOCUMENTTYPE_DYNAMICTYPE_ASSIGNMENTTYPE_CUSTOMTYPE_SCORM
activity_sub_typeActivitySubTypeEnumrequired
SUBTYPE_DYNAMIC_PAGESUBTYPE_DYNAMIC_MARKDOWNSUBTYPE_DYNAMIC_EMBEDSUBTYPE_DYNAMIC_RESOURCESUBTYPE_VIDEO_YOUTUBESUBTYPE_VIDEO_HOSTEDSUBTYPE_DOCUMENT_PDFSUBTYPE_DOCUMENT_DOCSUBTYPE_ASSIGNMENT_ANYSUBTYPE_CUSTOMSUBTYPE_SCORM_12SUBTYPE_SCORM_2004
contentContent
detailsDetails | null
publishedboolean
lock_typeActivityLockType
publicauthenticatedrestricted
idintegerrequired
org_idintegerrequired
course_idintegerrequired
activity_uuidstringrequired
creation_datestringrequired
update_datestringrequired
extra_metadataExtra Metadata | null
current_versioninteger
last_modified_by_idinteger | null
last_modified_by_usernamestring | null
is_lockedboolean
chapter_uuidstringrequired
creation_datestringrequired
update_datestringrequired
extra_metadataExtra Metadata | null
is_lockedboolean
Error responses
  • 403 User lacks permission to modify this chapter
  • 404 Chapter not found
  • 409 Chapter does not exist
  • 422 Invalid chapter payload
Request
Response
{
  "name": "Example name",
  "description": "An example description",
  "thumbnail_image": "string",
  "lock_type": "public",
  "org_id": 1,
  "course_id": 1,
  "id": 1,
  "activities": [
    {
      "name": "Example name",
      "activity_type": "TYPE_VIDEO",
      "activity_sub_type": "SUBTYPE_DYNAMIC_PAGE",
      "content": {},
      "details": {},
      "published": false,
      "lock_type": "public",
      "id": 1,
      "org_id": 1,
      "course_id": 1,
      "activity_uuid": "string",
      "creation_date": "string",
      "update_date": "string",
      "extra_metadata": {},
      "current_version": 1,
      "last_modified_by_id": 1,
      "last_modified_by_username": "string",
      "is_locked": false
    }
  ],
  "chapter_uuid": "string",
  "creation_date": "string",
  "update_date": "string",
  "extra_metadata": {},
  "is_locked": false
}

Delete chapter

DELETE/api/v1/chapters/{chapter_id}
API tokencoursechapters:deleteor user session

Delete a chapter and detach its activities from the course.

Path parameters

chapter_idintegerrequired
Error responses
  • 403 User lacks permission to delete this chapter
  • 404 Chapter not found
  • 409 Chapter does not exist
  • 422 Validation ErrorHTTPValidationError
Request
Response
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Get chapters metadata (deprecated)deprecated

GET/api/v1/chapters/course/{course_uuid}/meta
API tokencoursechapters:reador user session

Deprecated endpoint returning chapter metadata for a course. Use /course/{course_uuid}/meta on the courses router instead.

Path parameters

course_uuidstringrequired
Error responses
  • 403 User lacks read access to the course
  • 404 Course not found
  • 422 Validation ErrorHTTPValidationError
Request
Response
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Reorder chapters and activities

PUT/api/v1/chapters/course/{course_uuid}/order
API tokencoursechapters:updateor user session

Update the ordering of chapters and the activities nested inside them for a given course.

Path parameters

course_uuidstringrequired

Request bodyapplication/jsonrequired

chapter_order_by_idsChapterOrder[]required
Show child attributes
chapter_idintegerrequired
activities_order_by_idsActivityOrder[]required
Show child attributes
activity_idintegerrequired
Error responses
  • 403 User lacks permission to modify this course
  • 404 Course not found
  • 409 Course does not exist
  • 422 Invalid order payload
Request

List course chapters

GET/api/v1/chapters/course/{course_id}/page/{page}/limit/{limit}
API tokencoursechapters:reador user session

Paginated list of chapters for the specified course.

Path parameters

course_idintegerrequired
pageintegerrequired
limitintegerrequired

Returns

ChapterRead[] — Paginated list of chapters

namestringrequired
descriptionstring | null
thumbnail_imagestring | null
lock_typeLockType
publicauthenticatedrestricted
org_idintegerrequired
course_idintegerrequired
idintegerrequired
activitiesActivityRead[]required
Show child attributes
namestringrequired
activity_typeActivityTypeEnumrequired
TYPE_VIDEOTYPE_DOCUMENTTYPE_DYNAMICTYPE_ASSIGNMENTTYPE_CUSTOMTYPE_SCORM
activity_sub_typeActivitySubTypeEnumrequired
SUBTYPE_DYNAMIC_PAGESUBTYPE_DYNAMIC_MARKDOWNSUBTYPE_DYNAMIC_EMBEDSUBTYPE_DYNAMIC_RESOURCESUBTYPE_VIDEO_YOUTUBESUBTYPE_VIDEO_HOSTEDSUBTYPE_DOCUMENT_PDFSUBTYPE_DOCUMENT_DOCSUBTYPE_ASSIGNMENT_ANYSUBTYPE_CUSTOMSUBTYPE_SCORM_12SUBTYPE_SCORM_2004
contentContent
detailsDetails | null
publishedboolean
lock_typeActivityLockType
publicauthenticatedrestricted
idintegerrequired
org_idintegerrequired
course_idintegerrequired
activity_uuidstringrequired
creation_datestringrequired
update_datestringrequired
extra_metadataExtra Metadata | null
current_versioninteger
last_modified_by_idinteger | null
last_modified_by_usernamestring | null
is_lockedboolean
chapter_uuidstringrequired
creation_datestringrequired
update_datestringrequired
extra_metadataExtra Metadata | null
is_lockedboolean
Error responses
  • 403 User lacks read access to the course
  • 404 Course not found
  • 422 Validation ErrorHTTPValidationError
Request
Response
[
  {
    "name": "Example name",
    "description": "An example description",
    "thumbnail_image": "string",
    "lock_type": "public",
    "org_id": 1,
    "course_id": 1,
    "id": 1,
    "activities": [
      {
        "name": "Example name",
        "activity_type": "TYPE_VIDEO",
        "activity_sub_type": "SUBTYPE_DYNAMIC_PAGE",
        "content": {},
        "details": {},
        "published": false,
        "lock_type": "public",
        "id": 1,
        "org_id": 1,
        "course_id": 1,
        "activity_uuid": "string",
        "creation_date": "string",
        "update_date": "string",
        "extra_metadata": {},
        "current_version": 1,
        "last_modified_by_id": 1,
        "last_modified_by_username": "string",
        "is_locked": false
      }
    ],
    "chapter_uuid": "string",
    "creation_date": "string",
    "update_date": "string",
    "extra_metadata": {},
    "is_locked": false
  }
]

List user groups assigned to a locked chapter

GET/api/v1/chapters/{chapter_uuid}/usergroups
API tokencoursechapters:reador user session

Return the user groups that can access this chapter when lock_type is 'restricted'.

Path parameters

chapter_uuidstringrequired
Error responses
  • 422 Validation ErrorHTTPValidationError
Request
Response
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Grant a user group access to a locked chapter

POST/api/v1/chapters/{chapter_uuid}/usergroups/{usergroup_uuid}
API tokencoursechapters:createor user session

Associate a user group with this chapter so its members can access it when lock_type is 'restricted'.

Path parameters

chapter_uuidstringrequired
usergroup_uuidstringrequired
Error responses
  • 422 Validation ErrorHTTPValidationError
Request
Response
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Revoke a user group's access to a locked chapter

DELETE/api/v1/chapters/{chapter_uuid}/usergroups/{usergroup_uuid}
API tokencoursechapters:deleteor user session

Remove the association between a user group and this chapter.

Path parameters

chapter_uuidstringrequired
usergroup_uuidstringrequired
Error responses
  • 422 Validation ErrorHTTPValidationError
Request
Response
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}