ABCDEFGHIJKLMNOPQRSTUVWXY
1
Component / AppFunctional Area ModuleAPI VersionResource / Endpoint (v2)HTTP MethodShort DescriptionCritical for AI / External Tools? (H/M/L)Priority (1 lower –5 higher) T shirt size Effort(s/m/l)Notes
2
CohortsCourse Cohortsv1/cohorts/v1/courses/{course_key_string}/cohorts/{cohort_id}GETGet details of a specific cohort or all cohortsM4SRequires course_key_string & cohort_id; returns cohort info
3
v1/cohorts/v1/courses/{course_key_string}/cohorts/{cohort_id}POSTCreate a new cohortM4SMust not include cohort_id in body; requires course_key_string
4
v1/cohorts/v1/courses/{course_key_string}/cohorts/{cohort_id}PATCHUpdate a cohort (name or assignment type)M4SRequires cohort_id; partial updates allowed
5
Cohort Usersv1/cohorts/v1/courses/{course_key_string}/cohorts/{cohort_id}/users/{username}GETList users in a specific cohortH5SReturns username, email, and name; path params required
6
v1/cohorts/v1/courses/{course_key_string}/cohorts/{cohort_id}/users/{username}POSTAdd a given user to a cohortH5SRequires username, cohort_id, course_key_string; body contains user info
7
v1/cohorts/v1/courses/{course_key_string}/cohorts/{cohort_id}/users/{username}DELETERemove a user from a cohortH5SPath params required; returns 204 on success
8
Bulk Cohort Assignmentv1/cohorts/v1/courses/{course_key_string}/usersPOSTUpload a CSV file to assign users to cohorts in bulk (processed via Celery)M4SRequires file upload (key: uploaded-file); async processing resulting in downloadable CSV
9
Cohort Settingsv1/cohorts/v1/settings/{course_key_string}GETFetch cohort configuration for the courseM4SUseful for AI tools to know cohorting rules; course_key_string required
10
v1/cohorts/v1/settings/{course_key_string}PUTUpdate cohort configuration for the courseM4SUpdates cohorting logic; body contains settings object
11
GradesCourse Gradesv1/grades/v1/courses/GETList course progress status (paginated)H5SSupports cursor + page_size; useful for AI progress analytics
12
v1/grades/v1/courses/{course_id}/GETGet progress status for a specific courseH5SRequires course_id; often used by AI to evaluate learner performance
13
Section Gradesv1/grades/v1/section_grades_breakdown/GETReturns detailed grades for all sections of a course, optionally filtered by course_id or usernamesH5SIncludes current_grade, passed status, section-level breakdowns; supports pagination and filtering; very useful for AI progress analysis
14
Subsection Gradesv1/grades/v1/subsection/{subsection_id}/GETReturns subsection grade, override grades, and history of changes for a specific userH5SUseful for AI analytics on granular learner performance; path param subsection_id required
15
Gradebookv1/grades/v1/gradebook/{course_id}/GETGet gradebook data if user has author/instructor accessM4SAccess controlled; useful for dashboards, not for learner AI
16
v1/grades/v1/gradebook/{course_id}/grading-infoGETRetrieves grading info for a course if the requesting user has author accessM4SSupports pagination via page and page_size; staff/instructor only
17
Gradebook Bulk Updatev1/grades/v1/gradebook/{course_id}/bulk-updatePOSTBulk update grades if user has author accessM4SHigh-risk endpoint; requires careful permission handling
18
Grading Policyv1/grades/v1/policy/courses/{course_id}/GETRetrieves grading policy for a course (assignment types, counts, weights, dropped items)H5SUseful for AI systems to compute expected grades or adaptive learning recommendations; pagination supported
19
Submission Historyv1/grades/v1/submission_history/{course_id}/GETRetrieves submission history for ProblemBlocks; supports optional username filteringH5SOnly ProblemBlocks supported; global staff can retrieve all users; useful for AI dashboards and progress analytics
20
UserAccount Managementv1/user/v1/account/password_reset/GETRetrieves the password reset form descriptionM3SUseful for AI or external tools guiding users through password reset
21
v1/user/v1/account/password_reset/token/validate/POSTValidates a password reset tokenM3SNeeded if AI tools provide password reset assistance
22
v1/user/v1/account/registration/GETRetrieves user registration form descriptionM3SUseful for AI-assisted onboarding or registration automation
23
v1/user/v1/account/registration/POSTCreates a new user accountH5SRequired fields must be sent; can optionally include course_id for analytics; critical for AI onboarding flows
24
v1/user/v1/accountsGETReturns a list of user detail objects; supports filtering by usernames, emails, or LMS IDsM4SStaff-only access for some filters; returns 404 if user not found
25
v1/user/v1/accounts/cancel_retirement/POSTCancels the retirement of a user's accountM3SHandles top-level error handling and permissions
26
v1/user/v1/accounts/deactivate_logout/POSTMarks user as having no password and logs them outM3SUsed for account deactivation and logout flows
27
v1/user/v1/accounts/name_change/POSTCreates a PendingNameChange request for profile name updateM3SName change is verified later; does not update profile immediately
28
v1/user/v1/accounts/name_change/{username}/confirm/POSTConfirms a pending name change request and updates user's profile nameH4SRequires path param 'username'; critical if AI workflows automate user profile updates
29
v1/user/v1/accounts/replace_usernames/POSTReplaces current usernames with desired usernames; returns mapping of successful and failed replacementsH5SCritical if AI tools or automated systems manage username migrations; data validation required
30
v1/user/v1/accounts/retire/POSTRetires a user account including username, email, and other PIIH5SCritical for AI-driven user lifecycle management or account deletion workflows
31
v1/user/v1/accounts/retire_misc/POSTRetires a user in the LMSH4SSimilar to retire endpoint, focused on LMS-specific data; relevant for automation
32
v1/user/v1/accounts/retirement_cleanup/POSTDeletes a batch of retirement requests by usernameM3SUseful for automated cleanup of retired accounts; staff or automated scripts only
33
v1/user/v1/accounts/retirement_partner_report/POSTReturns list of UserRetirementPartnerReportingStatus users and updates their processing statusM3SUsed for partner reporting and automated retirement pipelines; not critical for core AI dashboards
34
v1/user/v1/accounts/retirement_partner_report/PUTCreates a UserRetirementPartnerReportingStatus object for a user in the retirement pipelineM3SPart of retirement automation workflow; updates status for partner reporting
35
v1/user/v1/accounts/retirement_partner_report_cleanup/POSTDeletes UserRetirementPartnerReportingStatus objects for reported usersM3SCleans up processed retirement reports; staff/admin use
36
v1/user/v1/accounts/retirement_queue/GETReturns RetirementStatus users in specified states and cool-off periodM3SUseful for monitoring retirement queue; optional for AI automation
37
v1/user/v1/accounts/retirements_by_status_and_date/GETLists UserRetirementStatusSerializer rows filtered by status and date rangeM3SSupports reporting and analytics; useful for automated retirement monitoring
38
v1/user/v1/accounts/search_emailsPOSTReturns user information for a list of emails; staff-only accessM3SUseful for AI or scripts verifying user identities by email
39
v1/user/v1/accounts/update_retirement_status/PATCHUpdates the RetirementStatus for a user and appends messages to the logM3SUsed in retirement automation workflows; not directly critical for AI dashboards
40
v1/user/v1/accounts/{username}GETRetrieves a single detailed user objectH5SCritical for AI tools that need full user profile info; access depends on is_staff and ACCOUNT_VISIBILITY_CONFIGURATION
41
v1/user/v1/accounts/{username}PATCHUpdates user account/profile info (merge-patch supported)H5SSupports AI-driven updates or automated profile management; validation enforced
42
v1/user/v1/accounts/{username}/deactivate/POSTMarks user as having no password for deactivation purposesM3SUseful for automated account deactivation or AI-managed workflows
43
v1/user/v1/accounts/{username}/imagePOSTUpload/update user profile imageM3SSupports AI tools that manage or update profile images; optional
44
v1/user/v1/accounts/{username}/imageDELETEDeletes a user's profile imageM3SSupports AI tools that manage profile images; optional
45
v1/user/v1/accounts/{username}/retirement_status/GETReturns the RetirementStatus of a userM3SUseful for monitoring user retirement state; relevant for AI workflows managing lifecycle
46
v1/user/v1/accounts/{username}/verification_status/GETReturns ID verification status for a userH4SCritical for AI or automated systems validating user identity
47
v1/user/v1/accounts/{username}/verifications/GETRetrieves detailed ID verification information for a userH4SImportant for AI or automated verification workflows
48
v1/user/v1/meGETReturns the authenticated user's usernameH5SEssential for AI tools to identify current user context
49
Forum Managementv1/user/v1/forum_roles/{name}/users/GETLists users for a given forum roleM3SUseful for AI or admin tools analyzing forum roles
50
Preferences Managementv1/user/v1/preferences/email_opt_in/POSTUpdate or create user's email opt-in preferenceM3SUsed for AI/analytics email targeting; optional
51
v1/user/v1/preferences/time_zones/GETList all time zones or by countryM3SUseful for AI scheduling or localization; optional
52
v1/user/v1/preferences/{pref_key}/users/GETList a user's preferencesM3SSupports AI in analyzing user settings
53
v1/user/v1/preferences/{username}GETRetrieve all preferences for a userM3SUsed for AI personalization
54
v1/user/v1/preferences/{username}PATCHUpdate user preferencesM3SAllows AI personalization adjustments
55
v1/user/v1/preferences/{username}/{preference_key}GETRetrieve a specific preference for a userM3SUseful for AI checking individual preference state
56
v1/user/v1/preferences/{username}/{preference_key}PUTUpdate a specific preference for a userM3SSupports AI-driven preference updates
57
v1/user/v1/preferences/{username}/{preference_key}DELETEDelete a specific user preferenceM3SSupports AI cleanup of outdated preferences
58
v1/user/v1/user_prefs/GETList all user preferences via ORMM3SUseful for AI analytics or preference aggregation
59
v1/user/v1/user_prefs/{id}/GETRetrieve a single user preference via ORMM3SSupports AI checking individual preference state
60
User Managementv1/user/v1/users/GETList all users via ORMM3SAI systems may use for bulk analysis or personalization
61
v1/user/v1/users/{id}/GETRetrieve a single user object via ORMM3SSupports AI personalization or external tools
62
Validation & Registrationv1/user/v1/validation/registrationPOSTValidate registration form inputs before creating a new userH5SSupports AI automated account creation checks
63
Account Registrationv2/user/v2/account/registration/GETRetrieve registration endpoint infoM3SUseful for AI user onboarding analytics
64
v2/user/v2/account/registration/POSTCreate a new user accountH5SCritical for AI systems registering users in bulk
65
Login Sessionv1/user/{api_version}/account/login_session/GETGet login session infoM3SSupports AI session monitoring
66
v1/user/{api_version}/account/login_session/POSTAuthenticate user and create login sessionH5SEssential for AI / external tools requiring authenticated access
67
ContentstoreCourse ManagementAdvanced Settingsv0/contentstore/v0/advanced_settings/{course_id}GETRetrieves all advanced settings for a specific course, including display names, help text, current values, and deprecation status. Supports optional query parameters filter_fields (comma-separated list of fields to filter) and fetch_all (boolean to fetch all settings or only enabled ones). Returns a dictionary where each key is a setting name and the value contains display_name, help, value, deprecated, and other metadata. Handles authentication and authorization; returns 401 if unauthenticated, 403 if access denied, or 404 if course does not exist.H4SEssential for AI or external tools needing to read or analyze course configuration programmatically. Useful for generating course summaries, automated configuration audits, or integrating external systems with course settings.
68
Advanced Settingsv0/contentstore/v0/advanced_settings/{course_id}PATCHUpdates one or more advanced settings for a specific course. Accepts a JSON object where each key is a setting name and the value field is updated; all other fields in the payload are ignored. Multiple settings can be updated in a single request. Returns the updated course settings in the same format as the GET endpoint. Handles authentication and authorization; returns 401 if unauthenticated, 403 if access denied, or 404 if course does not exist.H4SEssential for AI or external systems performing automated course configuration, bulk updates, or tool integrations. Useful for enabling/disabling course modules, updating calculators, LTI integrations, course CSS, or other course-wide advanced settings. Validations are applied to ensure only allowed value updates.
69
File Assetsv0/contentstore/v0/file_assets/{course_id}GETRetrieves a list of all file assets associated with a specific course. Each asset object includes file (URI), title, and locked status. Handles authentication and authorization; returns 401 if unauthenticated, 403 if access denied, or 404 if course does not exist. Supports integration for AI or external tools that need to list course assets for analysis, auditing, or automated processing.M3SUseful for AI-driven course audits, automated asset management, or external tools syncing course files.
70
File Assetsv0/contentstore/v0/file_assets/{course_id}POSTCreates a new file asset for a specific course. Accepts a JSON body with locked status; the response returns the created asset with file URI, title, and locked status. Useful for programmatically adding assets to courses.H4SSupports AI or automation workflows that upload or provision course assets, ensuring consistent course content management.
71
File Assetsv0/contentstore/v0/file_assets/{course_id}/{asset_key_string}PUTUpdates an existing file asset completely for a given course and asset key. Accepts a JSON body (e.g., locked) and returns the full updated asset object.H4SImportant for AI/external tools managing course asset lifecycles, such as updating access control or syncing metadata.
72
File Assetsv0/contentstore/v0/file_assets/{course_id}/{asset_key_string}PATCHPartially updates an existing file asset for a given course and asset key. Only the fields provided in the body (e.g., locked) are updated; other fields remain unchanged. Returns the updated asset.H4SSupports AI/external systems performing incremental updates to course assets, reducing risk of overwriting unrelated fields.
73
File Assetsv0/contentstore/v0/file_assets/{course_id}/{asset_key_string}DELETEDeletes a specific file asset from a course based on asset_key_string. Returns HTTP 204 on success.H5SCritical for AI or automated workflows that clean up or retire course assets to maintain course hygiene or comply with content lifecycle rules.
74
Heartbeatv0/contentstore/v0/heartbeatGETReturns the current status of the Authoring API. Response contains authoring_api_enabled boolean. Useful for monitoring service availability.M3SUseful for AI/external monitoring systems to verify API availability before performing automated course operations.
75
Link Checkingv0/contentstore/v0/link_check/{course_id}POSTQueues a Celery task to scan a course for broken links. Returns LinkCheckStatus: "Pending". Handles authentication; 401 if unauthenticated, 403 if access denied, 404 if course not found.H4SEnables AI/external automation to verify course content integrity and prepare reports or trigger alerts for broken/missing links.
76
Link Checkingv0/contentstore/v0/link_check_status/{course_id}GETRetrieves the current status of a link check task for a course. Returns LinkCheckStatus (Uninitiated, Pending, In-Progress, Succeeded, Failed, Canceled, Retrying), LinkCheckCreatedAt, and optionally detailed output including sections, units, blocks, and previous run links. Useful for AI/external systems to monitor progress and gather detailed link integrity information.H4SEssential for AI/external tools tracking course content health, generating reports, or performing automated remediation of broken links.
77
Rerun Link Updatev0/contentstore/v0/rerun_link_update/{course_id}POSTQueues a Celery task to update course links to the latest course rerun. Accepts action (all to update all links or single for specific links) and optional data array with URLs, types, and block IDs. Returns status: "pending". Handles 400 for invalid payloads, 401/403/404 for auth/course errors.H4SEssential for AI or automated systems maintaining content consistency across course reruns, updating outdated links programmatically.
78
Rerun Link Updatev0/contentstore/v0/rerun_link_update_status/{course_id}GETRetrieves the status of a course rerun link update task. Returns status (pending, in_progress, completed, failed, uninitiated) and optionally results for completed tasks, including updated URLs and success flags.H4SEnables AI/external tools to monitor link update tasks and fetch updated link mappings for automated reporting or remediation.
79
Course Tabsv0/contentstore/v0/tabs/{course_id}GETRetrieves all tabs for a course, including hidden tabs. Each tab object includes tab_id, title, type, name, visibility flags (is_hidden, is_hideable, course_staff_only), movability, and custom settings. Useful for AI/external tools analyzing course structure.M3SSupports AI-driven course navigation audits, UI customization, or automation that needs to know tab layouts and visibility.
80
Course Tabsv0/contentstore/v0/tabs/{course_id}/reorderPOSTReorders tabs in a course. Accepts an array of objects with tab_locator identifying each tab’s Usage Key. Returns HTTP 204 on success. Handles auth and course access errors (401/403/404).H4SSupports AI/external tools performing automated tab layout updates, standardizing course navigation, or adjusting UI for accessibility/UX.
81
Course Tabsv0/contentstore/v0/tabs/{course_id}/settingsPOSTChanges the visibility of a course tab. Accepts is_hidden boolean in the body and identifies the tab either by tab_id or tab_location (Usage Key). Returns HTTP 204 on success. Useful for programmatically hiding or showing tabs for students or staff.H4SSupports AI or external automation that dynamically controls course navigation based on user roles, course states, or personalization workflows.
82
Video Transcriptsv0/contentstore/v0/video_transcripts/{course_id}GETRetrieves all video transcripts for a course. Each transcript includes file URI, edx_video_id, language_code, and optional new_language_code. Useful for AI tools analyzing content accessibility or generating localized versions.M3SEnables AI systems to check transcript availability, perform NLP or content analysis, or integrate with translation/localization pipelines.
83
Video Transcriptsv0/contentstore/v0/video_transcripts/{course_id}POSTUploads a new transcript for a course video. Accepts file (formData), edx_video_id, optional language_code, and optional new_language_code. Returns the uploaded transcript object with URI and metadata.H4SSupports AI/external automation workflows adding or updating transcripts, enabling accessibility compliance, or synchronizing content with video updates.
84
Video Transcriptsv0/contentstore/v0/video_transcripts/{course_id}DELETEDeletes all video transcripts for a course. Returns HTTP 204 on success.H4SUseful for AI or automated systems cleaning outdated or incorrect transcripts, maintaining content consistency.
85
Video Imagesv0/contentstore/v0/videos/images/{course_id}/{edx_video_id}POSTUploads an image for a specific course video. Accepts file (formData) and returns the uploaded file URI.H4SSupports AI/external tools managing video metadata, thumbnails, or automating content presentation updates.
86
Course VideosVideo Uploadsv0/contentstore/v0/videos/uploads/{course_id}POSTUpload one or multiple video files for a course. Returns info about uploaded files.H5MUseful for AI/external tools automating video management, ingestion, or synchronization workflows.
87
Video Uploadsv0/contentstore/v0/videos/uploads/{course_id}/{edx_video_id}GETFetch details of uploaded video assets for a specific video ID.M4SSupports AI/external systems checking video availability or validating uploads.
88
Video Uploadsv0/contentstore/v0/videos/uploads/{course_id}/{edx_video_id}DELETEDeletes a video asset from a course. Returns HTTP 204.H4SImportant for automated content cleanup, version management, or AI-driven content moderation.
89
YouTube TranscriptsTranscriptsv0/contentstore/v0/youtube_transcripts/{course_id}/checkGETChecks the status and differences of YouTube transcripts for a course. Returns JSON with keys like html5_local, html5_equal, is_youtube_mode, youtube_local, youtube_server, youtube_diff, current_item_subs, status, and command. Useful for AI or external tools that automate transcript validation, synchronization, or accessibility compliance.M3MSupports automated verification of YouTube transcript consistency across local and server sources.
90
Transcriptsv0/contentstore/v0/youtube_transcripts/{course_id}/uploadGETRetrieves upload status for YouTube transcripts associated with course videos. Returns edx_video_id and status. Useful for AI-driven automation for transcript uploads, monitoring, or video metadata analytics.M3MCan be integrated into automated workflows to ensure all video transcripts are uploaded correctly before course publishing.
91
CertificatesCourse Managementv1/contentstore/v1/certificates/{course_id}GETRetrieves all certificates associated with a course, including certificate_activation_handler_url, certificate_web_view_url, certificates array with details (course_title, description, signatories, is_active, etc.), course_modes, and other metadata. Useful for AI tools performing automated certificate verification, reporting, or analytics.H4LSupports AI-generated reporting dashboards, automated certificate tracking, or integration with external LMS/CRM systems.
92
ContainersContent Managementv1/contentstore/v1/container/{usage_key_string}/childrenGETRetrieves the children of a container/vertical block in a course. Returns a JSON object with children array (including name, block_id, block_type, user_partition_info, upstream_link, actions, validation_messages, render_error), is_published, can_paste_component, display_name, and upstream_ready_to_sync_children_info. Useful for AI or external tools analyzing course structure, component readiness, or automating content synchronization.H4LEnables AI-driven content management, automated validation, and syncing of course components. Critical for pipelines managing hierarchical course structures.
93
Container ManagementContainer Handlerv1/contentstore/v1/container_handler/{usage_key_string}GETRetrieves detailed vertical container data for a given usage_key_string. Returns a JSON object including display name, type, category, position, collapsible state, URLs for previous/next units, draft and published preview links, course sequence IDs, ancestor xblocks with children, component templates, xblock info, user clipboard content, and flags like is_unit_page and is_fullwidth_content. Supports AI tools in rendering course content dynamically, navigating course structure, and automating content analysis. Path parameter usage_key_string is required.H5MReturns comprehensive structure of vertical units; essential for AI-driven course rendering, navigation, and content extraction tools.
94
Course GradingCourse Gradingv1/contentstore/v1/course_grading/{course_id}GETRetrieves course grading configuration for a specific course ID. Returns JSON including graders (types, weights, minimum and drop counts), grade cutoffs, grace periods, minimum grade credit, course assignment lists, default grade designations, credit eligibility, and proctored exam settings URL. Path parameter course_id is required. Supports AI tools or external systems in calculating grades, monitoring credit eligibility, or integrating grading rules into analytics pipelines.H5MEssential for AI-driven course performance analysis, automated grade calculations, or integration with learning analytics systems.
95
Course GradingCourse Gradingv1/contentstore/v1/course_grading/{course_id}POSTUpdates the grading configuration for a given course. Accepts JSON body with graders, grade cutoffs, grace periods, minimum grade credit, and credit course flag. Returns updated grading configuration. Path parameter course_id is required. Useful for AI or external tools automating course grading rules, bulk updates, or synchronizing grading policies across multiple courses.H5MSupports AI-driven grading automation and consistency across courses; critical for external grading management tools.
96
Course IndexCourse Outlinev1/contentstore/v1/course_index/{course_id}GETRetrieves the course outline/index for a given course ID. Returns JSON including course release date, course structure, deprecated blocks info, proctoring URLs, discussions links, initial state of expanded locators, initial user clipboard, LMS link, reindex link, notification IDs, and custom relative dates status. Optional query parameter show can set initial expanded state of the outline. Supports AI tools in visualizing course hierarchy, analyzing course structure, or dynamically rendering content navigation.H5LEssential for AI tools performing course mapping, analytics, or external integrations that need full course structure and block references.
97
Course ManagementCourse Rerunv1/contentstore/v1/course_rerun/{course_id}GETRetrieves detailed information about a specific course rerun. Returns keys including allow_unicode_course_id, course_creator_status, number, display_name, org, and run. Requires course_id as path parameter. Handles 401, 403, 404 errors for authentication, permissions, or non-existent courses. Useful for AI tools to understand course versioning and plan content updates.M3SUseful for AI systems automating course recommendations or rerun monitoring.
98
Course Settingsv1/contentstore/v1/course_settings/{course_id}GETRetrieves all configurable settings for a course, including display name, credit eligibility, language options, marketing settings, LMS links, possible prerequisites, sidebar HTML, upgrade deadlines, and flags for entrance exams and extended details. Supports complex nested structures such as possible_pre_requisite_courses. Requires course_id path param. Returns 401/403/404 as per auth and access. Essential for AI systems that analyze course attributes, adapt content, or recommend courses based on eligibility and metadata.H5SCritical for AI dashboards or external systems managing course metadata; detailed nested response supports analytics.
99
Course Teamv1/contentstore/v1/course_team/{course_id}GETReturns the list of CMS users assigned as editors or instructors for a specific course. Includes flags show_transfer_ownership_hint and allow_actions. Each user object contains id, username, email, and role. Requires course_id. Returns 401/403/404 for auth or access issues. Important for AI tools coordinating workflow automation for course management, notifications, or instructor assignments.M3SUseful for AI systems managing course team assignments or automating instructor-related actions.
100
Waffle Flagsv1/contentstore/v1/course_waffle_flagsGETRetrieves the list of waffle feature flags for courses. No parameters required. Returns JSON with flag configurations to control experimental or feature-specific behavior for a course. Can be used by AI systems to adapt workflows based on active flags, e.g., enabling/disabling certain features dynamically.M3SOptional for AI tools; primarily used for adaptive feature management or experiments.