edX API
The edX API returns online-course catalog data as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary search endpoint returns courses and programs with id, name, URL, type, program type, partner(s), level, languages and subject, and you can pull a detail, partners and subjects. It is built for education apps, course-aggregators and learning tools that need edX catalog data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/edx/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "python"
}
}{
"ok": true,
"meta": {
"api": "edx",
"endpoint": "search",
"mode": "live",
"latency_ms": 1079.4,
"record_count": 20,
"bytes": 165729,
"cache_hit": false,
"stop_reason": "limit_reached",
"method": "algolia_product_index",
"page": 1,
"total_count": 324,
"total_pages": 17,
"has_more": true,
"next_page": 2
},
"data": {
"results": [
{
"id": "2cc794d0-316d-42f7-bbfd-25c34e4cd5df",
"object_id": "course-2cc794d0-316d-42f7-bbfd-25c34e4cd5df",
"name": "[redacted-name]",
"type": "Course",
"program_type": "Professional Certificate",
"url": "https://www.edx.org/learn/python/harvard-university-cs50-s-introduction-to-programming-with-python",
"slug": null,
"partner": "Harvard University",
"partners": [
"Harvard University"
],
"level": "Introductory",
"languages": [
"English"
],
"subjects": [
"Computer Science",
"Data Analysis & Statistics"
],
"availability": [
"Available now"
],
"weeks_to_complete": 10,
"min_effort": 3,
"max_effort": 9,
"subscription_eligible": null,
"recent_enrollment_count": 163337,
"skills": [
"Debugging",
"Python (Programming Language)",
"Boolean Expression"
],
"image": "https://prod-discovery.edx-cdn.org/media/course/image/2cc794d0-316d-42f7-bbfd-25c34e4cd5df-033e46d516c0.png",
"short_description": "An introduction to programming using Python, a popular language for general-purpose programming, data science, web programming, and more."
},
{
"id": "381a0046-5d[redacted-phone]d59f48e",
"object_id": "course-381a0046-5d[redacted-phone]d59f48e",
"name": "[redacted-name]",
"type": "Course",
"program_type": "Professional Certificate",
"url": "https://www.edx.org/learn/python/ibm-python-basics-for-data-science",
"slug": null,
"partner": "IBM",
"partners": [
"IBM"
],
"level": "Intermediate",
"languages": [
"English"
],
"subjects": [
"Data Analysis & Statistics",
"Engineering",
"Computer Science"
],
"availability": [
"Available now"
],
"weeks_to_complete": 3,
"min_effort": 4,
"max_effort": 10,
"subscription_eligible": null,
"recent_enrollment_count": 10162,
"skills": [
"Data Science",
"Python (Programming Language)",
"Machine Learning"
],
"image": "https://prod-discovery.edx-cdn.org/media/course/image/381a0046-5d[redacted-phone]d59f48e-e2e7f4677ce2.jpeg",
"short_description": "This Python course provides a beginner-friendly introduction to Python for Data Science. Practice through lab exercises, and you'll be ready to create your first Python scripts on your own!"
},
{
"id": "956319ec-[redacted-phone]bc6-32c9a9aea5e9",
"object_id": "course-956319ec-[redacted-phone]bc6-32c9a9aea5e9",
"name": "[redacted-name]",
"type": "Course",
"program_type": "XSeries",
"url": "https://www.edx.org/learn/computer-science/massachusetts-institute-of-technology-introduction-to-computer-science-and-programming-using-python",
"slug": null,
"partner": "Massachusetts Institute of Technology",
"partners": [
"Massachusetts Institute of Technology"
],
"level": "Introductory",
"languages": [
"English"
],
"subjects": [
"Computer Science",
"Engineering",
"Science"
],
"availability": [
"Archived"
],
"weeks_to_complete": 9,
"min_effort": 14,
"max_effort": 16,
"subscription_eligible": null,
"recent_enrollment_count": 7213,
"skills": [
"Data Science",
"Python (Programming Language)",
"Sales"
],
"image": "https://prod-discovery.edx-cdn.org/media/course/image/956319ec-[redacted-phone]bc6-32c9a9aea5e9-885268c71902.jpg",
"short_description": "An introduction to computer science as a tool to solve real-world analytical problems using Python 3.5."
}
]
}
}What the edX API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search the edX catalogue by keyword (any topic, skill, tool or course/program title — 'python', 'machine learning', 'data science', 'cybersecurity', 'finance'). Returns a paginated list of result cards: name, url, type (course / program / executive education / degree), partner, level, languages, subjects, duration, effort, price, skills and enrollment. Optional filters: level, type, program_type, language, subject, partner, availability. Page with `page` (20 per page); meta.has_more / meta.total_count tell you how many. Feed a result's slug/url into the detail action. | Content platforms call search to search the edX catalogue by keyword (any topic, skill, tool or course/program title. | query, level, type, program_type, language, ... |
| detail | Full detail for one edX course OR program by slug or URL. For a course: level, languages, duration, effort, price, enrollment count, full description, what-you'll-learn, overview, prerequisites, syllabus, skills, subjects, partners, instructors (faculty) and course runs (sessions). For a program (professional certificate / MicroMasters / XSeries / degree): the same plus the list of courses inside it. Pass a search result's url or slug. | Research tools call detail to get full detail for one edX course OR program by slug or URL. | slug, url |
| partners | Browse every school, university and company that publishes on edX (Harvard, MIT, IBM, Google Cloud, Stanford, Delft, …) with the number of courses/programs each offers. Use a partner name as the search `partner` filter. | Community analysts call partners to get browse every school, university and company that publishes on edX (Harvard, MIT, IBM, Google…. | none |
| subjects | Browse edX's subject areas (Computer Science, Business & Management, Data Analysis & Statistics, Engineering, Economics & Finance, …) with the number of courses in each. Use a subject name as the search `subject` filter. | Media monitors call subjects to get browse edX's subject areas (Computer Science, Business & Management, Data Analysis & Statisti…. | none |
Call search from your stack
curl -X POST https://api.reefapi.com/edx/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"python"}'import requests
r = requests.post(
"https://api.reefapi.com/edx/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "python"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/edx/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "python"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.edx.search with {"query":"python"}.Who uses this API and why
- Course-aggregators call search to list edX courses and programs by subject and level.
- Learning apps use detail to show course info, partner and language options.
- Skills tools use subjects and partners to map learning paths across providers.
Questions developers ask before integrating
What is the edX API?
edX API is a ReefAPI endpoint group for edx It returns live JSON through POST requests under /edx/v1.
Is the edX API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. edX calls use the same shared credit balance as every other ReefAPI engine.
Do I need a edX login or account?
No login to edX is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the edX data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the edX API use?
edX actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call edX from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call edx actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the edX API a edX scraper?
It is the managed alternative to a DIY edX scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same edx back as clean JSON.
Why does my edX scraper keep getting blocked?
Most edX scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.