Repository navigation
[DEPR]: Contentstore and enrollment API versions superseded by FC-0118 #39128
Description
Activity
Abdul-Muqadim-Arbisoft commented on Sep 27, 2026
Entry for this ticket: contentstore video uploads. The replacement is in review in #39102; please add the lines below when it merges.
Rows for the Description table:
| Deprecated endpoint | Replacement | Standardization issue |
|---|---|---|
POST /api/contentstore/v0/videos/uploads/{course_id} |
POST /api/authoring/v1/courses/{course_key}/videos/ |
#39060 |
GET/DELETE /api/contentstore/v0/videos/uploads/{course_id}/{edx_video_id} |
GET /api/authoring/v1/courses/{course_key}/videos/ (the listing the v0 GET returns) and GET/DELETE /api/authoring/v1/courses/{course_key}/videos/{edx_video_id}/ |
#39060 |
Line for the Task List:
How it is marked: deprecated: true in the published OpenAPI schema. The superseded views are left untouched: no response header and no deprecation notes in code.
The timeline is this ticket's: removed one named release after the release this ships in.
Abdul-Muqadim-Arbisoft commented on Oct 4, 2026
Entry for this ticket: contentstore video management. The replacement is in review in #39186; please add the lines below when it merges.
Rows for the Description table:
| Deprecated endpoint | Replacement | Standardization issue |
|---|---|---|
GET /api/contentstore/v1/videos/{course_id}/{edx_video_id}/usage |
GET /api/authoring/v2/courses/{course_key}/video_usages/{edx_video_id}/ |
#39071 |
PUT /api/contentstore/v1/videos/{course_id}/download |
POST /api/authoring/v2/courses/{course_key}/video_archives/ |
#39071 |
Line for the Task List:
Removal step for this area: move VideoDownloadThrottle out of cms/djangoapps/contentstore/rest_api/v1/views/videos.py before that module is deleted. The v2 archive view and its tests import it from there, so deleting the module first breaks the import of cms/urls.py.
How it is marked: deprecated: true in the published OpenAPI schema. The superseded views are left untouched: no response header and no deprecation notes in code.
The timeline is this ticket's: removed one named release after the release this ships in.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDraft
RFC Start Date
N/A -- Already Accepted
Target Plan Accepted Date
N/A -- Already Accepted
Target Transition Unblocked Date
Immediately -- Transition Already Unblocked
Earliest Breaking Changes Unblocked Date
One named release after the release this deprecation ships in
Rationale
As part of FC-0118 (API standardization), a set of Studio contentstore
endpoints and the LMS enrollment API were re-issued at new versions rather than
changed in place. The standardization ADRs mandate changes that are breaking for
existing consumers:
{"developer_message": ..., "error_code": ...}error shape with an RFC 7807 envelope (
type,title,status,detail,instance). Any client parsing error responses would break.APIViewtoViewSet+DefaultRouter, changing URLpatterns (trailing slashes, router-managed routing).
BearerAuthentication, so Bearer-only consumers lose access.endpoints.
Issuing new versions let existing consumers migrate on their own timeline
instead of absorbing a silent breaking change. That migration window is what
this ticket closes: the old versions are now redundant, and keeping both means
every future change to these endpoints has to be made twice.
Description
All replacements are merged and available today via
#38755.
GET/POST /api/contentstore/v0/xblock/{course_id}and/{course_id}/{usage_key}GET/POST/PATCH/DELETE /api/contentstore/v1/xblock/{usage_key}//api/enrollment/v1/—enrollment,enrollments,course/{course_id},unenroll/,roles/,enrollment_allowed//api/enrollment/v2/GET/PUT /api/contentstore/v1/course_details/{course_id}GET/PUT /api/contentstore/v3/course_details/{course_key}/GET /api/contentstore/v1/homeGET /api/contentstore/v3/home/GET /api/contentstore/v2/home/coursesGET /api/contentstore/v4/home/POST /api/contentstore/v0/grading/{course_id}PATCH /api/contentstore/v3/authoring_grading/{course_key}/Consumers migrating should expect the RFC 7807 error envelope, router-managed
URLs (note the trailing slash), JWT or session auth in place of Bearer, and on
list endpoints the standardized pagination envelope.
Deprecation Schedule
The old versions are deprecated as of this ticket and will be removed one
named release after the release in which this deprecation ships, giving
operators and plugin authors a full release cycle on a supported version.
deprecated: truein the OpenAPIschema, a
Warningresponse header, and docs pointing at the replacements.Task List
This ticket is the umbrella for API deprecations arising from the FC-0118
standardization work. Further areas will be appended as their replacement
versions merge: