Course Discovery API
Multiple: /api/courses/v0/courses/
Returns a list of JSON representations of courses in the edX Platform, constrained by organization.
Single: /api/courses/v0/courses/{course_id}/
Returns the JSON representation for a single course
Available Query Parameters
| Parameter | Type | Values | Required | Default | Notes |
|---|---|---|---|---|---|
| org | string | various | no | ||
| display | string | brief | full | no | brief (multi), full (single) | |
| course_id | csv | strings | no | ||
| include_fields | csv | strings | no | Request additional fields, returns null for fields not found | |
| page | integer | 1-N | no | 1 | Django REST Framework parameter |
| page_size | integer | 1-N | no | 20 | Django REST Framework parameter |
| pacing | string | strings | no | Request only courses with the specified pacing | |
| mode | string | strings | no | Request only courses with specific modes | |
| subject | string | strings | no | Request only courses on specific subjects |
Detailed Examples
Course Metadata Endpoint, Multiple
GET /api/courses/v0/courses/?page_size=1
{
"count": 2,
"next": "http://0.0.0.0:8000/api/course_metadata/v0/courses/?org=edX&page=2&page_size=1,
"previous": null,
"num_pages": 2,
"results": [
{
"uri": "http://0.0.0.0:8000/api/course_metadata/v0/courses/MITx/4.605x_2/3T2014/",
"id": "MITx/4.605x_2/3T2014",
"org": "MITx",
"course": "4.605x_2",
"run": "3T2014",
"name": "A Global History of Architecture: Part 1",
"start_date": "2014-09-23T14:00:00Z",
"end_date": "2014-12-11T05:00:00Z",
"short_description": "This is the short description for the edX Demonstration Course",
"media": {
"video": {
"uri": "http://media.edx.org/courses/edX/Demo/Course/videos/promo.mov",
},
"image": {
"uri": "http://media.edx.org/courses/edX/Demo/Course/images/promo.png",
},
},
"purchase_url": "http://shop.edx.org/courses/edX/Demo/Course/purchase"
"due": null,
"staff":[
{
"name": "Professor Smith",
"image_url": "http://media.edx.org/courses/edX/Demo/Course/images/smith.png",
"description": "Professor Smith is the lead researcher for this topic."
},
{
"name": "Assistant Ben",
"image_url": "http://media.edx.org/courses/edX/Demo/Course/images/ben.png",
"description": "Assistant Ben does a lot of the day-to-day work."
}
],
"price": "999.00"
},
{...}
]
}
Course Metadata Endpoint, Single
GET /api/courses/v0/courses/MITx/4.605x_2/3T2014/
{
"uri": "http://0.0.0.0:8000/api/course_metadata/v0/courses/MITx/4.605x_2/3T2014/",
"id": "MITx/4.605x_2/3T2014",
"org": "MITx",
"course": "4.605x_2",
"run": "3T2014",
"name": "A Global History of Architecture: Part 1",
"start_date": "2014-09-23T14:00:00Z",
"end_date": "2014-12-11T05:00:00Z",
"short_description": "This is the short description for the edX Demonstration Course",
"media": {
"video": {
"uri": "http://media.edx.org/courses/edX/Demo/Course/videos/promo.mov",
},
"image": {
"uri": "http://media.edx.org/courses/edX/Demo/Course/images/promo.png",
},
},
"purchase_url": "http://shop.edx.org/courses/edX/Demo/Course/purchase"
"due": null,
"staff":[
{
"name": "Professor Smith",
"image_url": "http://media.edx.org/courses/edX/Demo/Course/images/smith.png",
"description": "Professor Smith is the lead researcher for this topic."
},
{
"name": "Assistant Ben",
"image_url": "http://media.edx.org/courses/edX/Demo/Course/images/ben.png",
"description": "Assistant Ben does a lot of the day-to-day work."
}
],
"price": "999.00"
}
Complete Field List
| Field | Type | Brief | Full | Notes |
|---|---|---|---|---|
| uri | string | x | x | Fully-qualified URL for the Course About page |
| course_id | string | x | x | Full course identifier (opaque key) |
| org | string | x | x | |
| course | string | x | x | |
| course_family | string | x | x | Combines org and course into a key that can be matched across runs |
| run | string | x | x | |
| name | string | x | x | |
| start | datetime | x | x | |
| end | datetime | x | x | |
| short_description | string | x | x | |
| media | dict | x | x | |
| media.xxxxx | dict | x | x | Ex: ''video', 'image' |
| media.xxxxx.uri | string | x | x | |
| media.xxxxx.name | string | x | x | |
| media.xxxxx.description | string | x | x | |
| media.xxxxx.type | string | x | x | Ex: 'youtube', 'brightcove' |
| staff | array | x | x | |
| staff[n].name | string | x | x | |
| staff[n].uri | string | x | x | |
| staff[n].media | dict | x | ||
| staff[n].media.xxxxx | dict | x | Ex: 'video', 'image' | |
| staff[n].media.xxxxx.uri | string | x | ||
| staff[n].media.xxxxx.name | string | x | ||
| staff[n].media.xxxxx.description | string | x | ||
| staff[n].media.xxxxx.type | string | x | Ex: 'youtube', 'large' | |
| price | string | x | x | Price of the course in US dollars |
| subjects | array | x | ||
| subjects[n].title | string | x | ||
| subjects[n].uri | string | x | ||
| subjects[n].language | string | x | ||
| level | dict | x | ||
| level.title | string | x | ||
| level.uri | string | x | ||
| languages | array | x | ||
| languages.xx | dict | x | ||
| languages.xx.title | string | x | ||
| languages.xx.uri | string | x | ||
| pacing | enum | x | x | Possible values: ("self", "instructor") |
| mode | enum | x | x | Possible values: ("honor", "audit", "verified", "credit") |
| xseries | string | x | x | Which Xseries this course is a part of, if any |
| length | string | x | ||
| effort | string | x | ||
| prerequisites | string | x |
, multiple selections available,