[DEPR]: Contentstore and enrollment API versions superseded by FC-0118

Author: Faraz32123Created Sep 18, 2026Updated Sep 18, 2026
Labelsdepr

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:

  • ADR 0029 replaces the legacy {"developer_message": ..., "error_code": ...} error shape with an RFC 7807 envelope (type, title, status, detail, instance). Any client parsing error responses would break.
  • ADR 0028 moves from APIView to ViewSet + DefaultRouter, changing URL patterns (trailing slashes, router-managed routing).
  • ADR 0026 standardizes authentication and removes the deprecated BearerAuthentication, so Bearer-only consumers lose access.
  • ADR 0032 standardizes pagination, changing the response envelope on list 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.

Deprecated endpoint Replacement Standardization issue
GET/POST /api/contentstore/v0/xblock/{course_id} and /{course_id}/{usage_key} GET/POST/PATCH/DELETE /api/contentstore/v1/xblock/{usage_key}/ #38368
/api/enrollment/v1/enrollment, enrollments, course/{course_id}, unenroll/, roles/, enrollment_allowed/ /api/enrollment/v2/ #38369
GET/PUT /api/contentstore/v1/course_details/{course_id} GET/PUT /api/contentstore/v3/course_details/{course_key}/ #38370
GET /api/contentstore/v1/home GET /api/contentstore/v3/home/ #38371
GET /api/contentstore/v2/home/courses GET /api/contentstore/v4/home/ #38372
POST /api/contentstore/v0/grading/{course_id} PATCH /api/contentstore/v3/authoring_grading/{course_key}/ #38373

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.

  1. Now — endpoints marked deprecated: deprecated: true in the OpenAPI schema, a Warning response header, and docs pointing at the replacements.
  2. Next named release — both versions ship; the deprecated ones still work.
  3. The release after — old versions removed.

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:

  • contentstore xblock, course_details, home (v1 and v2), grading; LMS enrollment v1 — #38755

Source: openedx/openedx-platform