Coursera API
The Coursera API returns online-course 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 specializations with id, name, URL, type, difficulty, duration, rating, review count, partners and skills, and you can pull a detail, reviews, partners and subjects. It is built for education apps, course-aggregators and learning tools that need Coursera 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/coursera/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "machine learning"
}
}{
"ok": true,
"meta": {
"api": "coursera",
"endpoint": "search",
"mode": "live",
"latency_ms": 2354.7,
"record_count": 12,
"bytes": 835853,
"cache_hit": false,
"stop_reason": "complete",
"method": "ssr_apollo_state",
"page": 1,
"total_count": null,
"total_pages": null,
"has_more": false,
"next_page": null
},
"data": {
"results": [
{
"id": "8UjeMk-mEeit4g4GsxE4dg",
"name": "[redacted-name]",
"url": "https://www.coursera.org/learn/machine-learning-with-python",
"slug": "machine-learning-with-python",
"type": "COURSE",
"difficulty": "INTERMEDIATE",
"duration": "ONE_TO_THREE_MONTHS",
"rating": 4.67,
"review_count": 18429,
"partners": [
"IBM"
],
"skills": [
"Unsupervised Learning",
"Supervised Learning",
"Model Evaluation"
],
"is_free": false,
"is_coursera_plus": true,
"image": "https://s3.amazonaws.com/coursera-course-photos/3c/[redacted-phone]dc0a10a44bd3306833d/1200x1200px_[redacted-phone].jpg",
"tagline": "Offered by IBM"
},
{
"id": "T7hf5jWeEeuGCBL8_hyTUQ",
"name": "[redacted-name]",
"url": "https://www.coursera.org/learn/machine-learning",
"slug": "machine-learning",
"type": "COURSE",
"difficulty": "BEGINNER",
"duration": "ONE_TO_FOUR_WEEKS",
"rating": 4.89,
"review_count": 32679,
"partners": [
"DeepLearning.AI",
"Stanford University"
],
"skills": [
"Supervised Learning",
"Applied Machine Learning",
"Jupyter"
],
"is_free": false,
"is_coursera_plus": false,
"image": "https://s3.amazonaws.com/coursera-course-photos/9c/90ae67ecdb4185a4ae79ec9a5ae0b6/Course-Logo--1.png",
"tagline": "Offered by DeepLearning.AI, and Stanford University"
},
{
"id": "e3wiTwXMEeim8hI7AVpI6A",
"name": "[redacted-name]",
"url": "https://www.coursera.org/specializations/mathematics-machine-learning",
"slug": "mathematics-machine-learning",
"type": "SPECIALIZATION",
"difficulty": "BEGINNER",
"duration": "THREE_TO_SIX_MONTHS",
"rating": 4.58,
"review_count": 15077,
"partners": [
"Imperial College London"
],
"skills": [
"Dimensionality Reduction",
"Linear Algebra",
"Regression Analysis"
],
"is_free": false,
"is_coursera_plus": true,
"image": "https://d15cw65ipctsrr.cloudfront.net/3e/3974e00aa311e8840ea7bed5c70ad0/Specialization-logo.jpg",
"tagline": "Mathematics for Machine Learning\nOffered by Imperial College London"
}
]
}
}What the Coursera API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search Coursera by keyword (any topic, skill, tool or title). Returns a paginated list of result cards — name, url, type (course / specialization / professional certificate / guided project), partner, rating, review count, difficulty, duration, skills and free status — most-relevant first. Optional filters: level, type, language, sort. Feed a result's slug/url into the detail action. Page with `page`; meta.has_more / meta.total_count tell you how many. | Content platforms call search to search Coursera by keyword (any topic, skill, tool or title). | query, level, type, language, sort, ... |
| detail | Full detail for one Coursera course OR program (specialization / professional certificate) by slug or URL. For a course: description, difficulty, estimated workload, rating (average, count, by-star), total enrollments, languages, certificates, what-you'll-learn, recommended background, skills, instructors and partners. For a program: the same plus the list of courses inside it. Pass a search result's url, or a slug with type='specialization' to force the program path. | Research tools call detail to get full detail for one Coursera course OR program (specialization / professional certificate) by…. | slug, url, type |
| reviews | Top public student reviews for a Coursera course or program by slug/url: star rating, review text, author and date. Returns the most-helpful reviews Coursera surfaces on the page (top reviews — Coursera does not expose deep review pagination without login). Use meta.review_count for the total number of ratings. | Community analysts call reviews to get top public student reviews for a Coursera course or program by slug/url. | slug, url, type |
| partners | Browse the universities and companies that partner with Coursera (Stanford, University of Michigan, Google, IBM, …). Returns partner id, name and logo. Use it to map who publishes on Coursera. | Media monitors call partners to get browse the universities and companies that partner with Coursera (Stanford, University of Mic…. | none |
| subjects | Browse Coursera's subject catalogue — the top-level domains (Data Science, Business, Computer Science, Arts & Humanities, …) with their slug and description. Use a subject slug as the search `subject` filter. | Content platforms call subjects to get browse Coursera's subject catalogue. | none |
Call search from your stack
curl -X POST https://api.reefapi.com/coursera/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"machine learning"}'import requests
r = requests.post(
"https://api.reefapi.com/coursera/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "machine learning"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/coursera/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "machine learning"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.coursera.search with {"query":"machine learning"}.Who uses this API and why
- Course-aggregators call search to list Coursera courses by subject, level and rating.
- Learning apps use detail and reviews to show course info and learner feedback.
- Skills-mapping tools use skills and subjects to match courses to a career path.
Questions developers ask before integrating
What is the Coursera API?
Coursera API is a ReefAPI endpoint group for coursera It returns live JSON through POST requests under /coursera/v1.
Is the Coursera API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Coursera calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Coursera login or account?
No login to Coursera 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 Coursera 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 Coursera API use?
Coursera 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 Coursera from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call coursera actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Coursera API a Coursera scraper?
It is the managed alternative to a DIY Coursera 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 coursera back as clean JSON.
Why does my Coursera scraper keep getting blocked?
Most Coursera 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.