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 |
|
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 |
|