Coursera API scraper
Coursera API scraper
/coursera/v1/search1 creditSearch 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.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| query | required | — | What to search Coursera for — a topic, skill, tool or course/program title ('machine learning', 'python', 'excel', 'project management', 'aws'). Returns courses, specializations, professional certificates and guided projects, most-relevant first. |
| level | optional | — | Filter by difficulty. One of: Beginner, Intermediate, Advanced, Mixed. |
| type | optional | — | Filter by product type. One of: Courses, Specializations, Professional Certificates, Guided Projects, Degrees. |
| language | optional | — | Filter by course language (e.g. English, Spanish, French, Arabic). |
| sort | optional | — | Result order: Relevance (default) or Newest. |
| page = 1 | optional | 1–80 | Result page (12 per page). Page until meta.has_more is false; meta.total_count / meta.total_pages tell you how many. |
| subject | optional | — | Optional subject/topic slug to bias the search (e.g. data-science, business, computer-science). |
/coursera/v1/detail1 creditFull 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.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| slug | optional | — | The course/program slug (the last path segment of a Coursera URL, e.g. 'machine-learning' from /learn/machine-learning, or 'machine-learning-introduction' from /specializations/…). From a search result's slug. |
| url | optional | — | Alternatively a full Coursera course/specialization URL (a search result's `url`). The path selects course vs program automatically. |
| type | optional | — | Optional, only when passing a bare slug: 'course' (default) or 'specialization' / 'professional certificate' to force the program path. |
/coursera/v1/reviews1 creditTop 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.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| slug | optional | — | The course/program slug to pull top reviews for (from a search result's slug). |
| url | optional | — | Alternatively a full Coursera course/program URL. |
| type | optional | — | Optional, only with a bare slug: 'course' (default) or 'specialization'. |
/coursera/v1/partnersfreeBrowse 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.
Try in playground →/coursera/v1/subjectsfreeBrowse 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.
Try in playground →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"}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}