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 |