openedx / openedx/openedx-platform
Certificates API
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 8.2k
- Forks
- 4.4k
- Avg merge
- 6d 18h
- Merged PRs (30d)
- 42
Description
While /api/certificates/v0/ provides learner-facing certificate retrieval, these instructor-specific endpoints provide administrative operations (certificate generation, allowlist management, bulk operations) that require instructor permissions.
| Method | Endpoint | Services | Status | Existing API Path | Description |
|---|---|---|---|---|---|
| GET | /api/instructor/v1/courses/{course_key}/certificates | certificates | Partial | /courses/{course_id}/instructor/api/get_issued_certificates | List issued certificates for the course |
| POST | /api/instructor/v1/courses/{course_key}/certificates/generate | certificates, instructor_task | Exists | /courses/{course_id}/instructor/api/start_certificate_generation | Generate certificates for all eligible students |
| POST | /api/instructor/v1/courses/{course_key}/certificates/generate/{username} | certificates, student | Missing | N/A | Generate certificate for a specific student |
| POST | /api/instructor/v1/courses/{course_key}/certificates/generate_bulk | certificates, instructor_task | Exists | /courses/{course_id}/instructor/api/generate_bulk_certificate_exceptions | Bulk generate certificates for students on the allowlist |
| GET | /api/instructor/v1/courses/{course_key}/certificates/allowlist | certificates | Missing | N/A | List students on the certificate allowlist (students who can receive certs despite not passing) |
| POST | /api/instructor/v1/courses/{course_key}/certificates/allowlist | certificates, student | Partial | /courses/{course_id}/instructor/api/certificate_exception_view | Add student(s) to certificate allowlist |
| DELETE | /api/instructor/v1/courses/{course_key}/certificates/allowlist | certificates | Missing | N/A | Remove student(s) from certificate allowlist |
| GET | /api/instructor/v1/courses/{course_key}/certificates/{certificate_id}/status | certificates | Missing | N/A | Get generation status for a specific certificate |
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the existing /api/certificates/v0/ learner-facing API and the existing instructor routes listed in the table, then trace how instructor permissions are enforced. Use the endpoint table as the scope; done means the partial and missing certificate operations have corresponding behavior and coverage consistent with the stated descriptions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, authorization, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100