Coursera Courses, Ratings & Instructors Scraper
Pricing
from $6.80 / 1,000 results
Coursera Courses, Ratings & Instructors Scraper
Scrape Coursera courses by keyword or URL. Extract title, partner, instructors, rating, reviews, enrollment, skills, price, level and certificate type. Export to JSON, CSV or Excel.
Pricing
from $6.80 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Coursera Courses, Ratings & Instructors Scraper
Here is one real result, with every field the actor returns (this record has withDetails and all three AI add-ons enabled; the long subtitleLanguages list and description are trimmed with a note, values real):
{"imageUrl": "https://s3.amazonaws.com/coursera-course-photos/3c/77927732934dc0a10a44bd3306833d/1200x1200px_1001823008.jpg","title": "Machine Learning with Python","url": "https://www.coursera.org/learn/machine-learning-with-python","id": "course~8UjeMk-mEeit4g4GsxE4dg","productType": "COURSE","partner": "IBM","partners": ["IBM"],"partnerLogo": "http://coursera-university-assets.s3.amazonaws.com/bb/f5ced2bdd4437aa79f00eb1bf7fbf0/IBM-Logo-Blk---Square.png","rating": 4.67,"reviewCount": 18448,"difficultyLevel": "Intermediate","durationCategory": "1 to 3 months","certificateType": "Course Certificate","isFree": false,"isPartOfCourseraPlus": true,"isCreditEligible": false,"tagline": "Offered by IBM","skills": ["Unsupervised Learning", "Supervised Learning", "Model Evaluation", "Regression Analysis", "Scikit Learn (Machine Learning Library)", "Machine Learning Methods", "Applied Machine Learning", "Model Training", "Predictive Modeling", "Machine Learning Algorithms", "Statistical Methods", "Machine Learning", "Dimensionality Reduction", "Python Programming", "Logistic Regression", "Model Optimization", "Classification Algorithms"],"tools": null,"languages": ["English"],"subtitleLanguages": ["Arabic", "Azerbaijani", "Bengali", "Chinese", "Dutch", "French", "German", "..."],"enrollmentCount": 703534,"instructors": ["Joseph Santarcangelo", "SAEED AGHABOZORGI"],"workload": "5-6 weeks of study, 3-6 hours per week","description": "Python is a core skill in machine learning, and this course equips you with the tools to apply it effectively. You'll learn key ML concepts, build models with scikit-learn, and gain hands-on experience using Jupyter Notebooks. ...","aiSummary": "This intermediate course on Machine Learning with Python, offered by IBM, teaches you essential machine learning concepts and techniques using Python and scikit-learn. It's designed for learners who want to deepen their understanding of both supervised and unsupervised learning methods, and by the end, you'll be able to build and evaluate machine learning models confidently, culminating in a final project on rainfall prediction.","aiTags": ["machine learning", "python", "scikit learn", "supervised learning", "unsupervised learning", "model evaluation", "regression", "classification", "dimensionality reduction", "applied machine learning", "predictive modeling", "intermediate course"],"aiCategory": {"category": "Data Science","subcategory": "Machine Learning","level": "Intermediate"},"sourceQuery": "machine learning","observedAt": "2026-08-14T07:06:50.486Z","error": null}
The most complete Coursera catalog scraper available. It returns every field the Coursera search exposes, including rating, review count, skills, partner, difficulty and pricing signals, plus detail-page enrichment (full description, instructors, workload, enrollment count) and three optional AI add-ons, and gives you three filters to target exactly the courses you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches the public Coursera catalog for each keyword or URL you pass, applies the filters you set, paginates through the matching products, and writes one normalized record per course to the run's dataset. Enum values are turned into readable labels, ratings are rounded, and when withDetails is on the actor opens each product to add the full description, instructor names, workload and total enrollment count. Missing source values are returned as null, never invented.
Data covers the entire public Coursera catalog: individual courses, specializations, professional certificates, guided projects and degrees. Three optional AI add-ons (withAiSummary, withAiTags, withAiCategorize) can enrich each record; they are opt-in, billed only when they produce output, and disabled on free Apify plans.
Quickstart
Open the actor, paste this into the input, and press Run. It returns 2 machine learning courses with detail pages.
{"searchQueries": ["machine learning"],"maxCourses": 2,"withDetails": true}
Instead of searchQueries, you can pass startUrls (course, specialization or search URLs). Leave the AI add-ons off (default) for the raw course fields.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchQueries | array | no* | (empty) | One or more keywords to search, for example machine learning, python, project management. Each keyword runs its own search. |
startUrls | array | no* | (empty) | Coursera course, specialization or search URLs. Product URLs return that single product; search URLs run the keyword behind them. |
maxCourses | integer | no | 10 | Maximum courses to collect across the run. Free Apify plans are capped at 25 per run. |
withDetails | boolean | no | true | Open each product to add the full description, instructors, workload and enrollment count. |
productType | enum | no | (all) | Restrict to one type: Courses, Specializations, Professional Certificates, Guided Projects, Degrees. Applies to keyword searches. |
difficultyLevel | enum | no | (all) | Restrict to one level: Beginner, Intermediate, Advanced, Mixed. |
language | enum | no | (all) | Only courses available in this language (audio or subtitles), for example English, Spanish, Portuguese. |
withAiSummary | boolean | no | false | Add a plain-English AI summary of each course. Paid add-on, disabled on free plans. |
withAiTags | boolean | no | false | Generate concise topic/keyword tags via AI. Paid add-on, disabled on free plans. |
withAiCategorize | boolean | no | false | Classify each course into a subject category, subcategory and level via AI. Paid add-on, disabled on free plans. |
* Provide at least one searchQueries entry or one startUrls entry.
Output reference
One dataset item per course. Types: string, number, boolean, string[], object, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
imageUrl | string | Course cover image URL. |
title | string | Course or program name. |
url | string | Direct link to the Coursera product page. |
id | string | Coursera product ID. |
productType | string | COURSE, SPECIALIZATION, PROFESSIONAL_CERTIFICATE, GUIDED_PROJECT or DEGREE. |
partner | string | Primary university or company offering the product. |
partners | string[] | Every institution credited on the product. |
partnerLogo | string | Logo image of the primary partner. |
rating | number | Average learner rating out of 5, or null. |
reviewCount | number | Number of ratings behind the score, or null. |
difficultyLevel | string | Beginner, Intermediate, Advanced or Mixed. |
durationCategory | string | Expected time to complete, for example 1 to 3 months. |
certificateType | string | Credential the product awards. |
isFree | boolean | Whether the course can be taken free, or null. |
isPartOfCourseraPlus | boolean | Whether it is included in a Coursera Plus subscription. |
isCreditEligible | boolean | Whether it can count toward academic credit. |
tagline | string | Short marketing tagline. |
skills | string[] | Skills the course teaches, or null. |
tools | string[] | Named software or tools taught, or null. |
languages | string[] | Languages with full audio and subtitles. |
subtitleLanguages | string[] | Languages available as subtitles only. |
enrollmentCount | number | Total learners enrolled. Present with withDetails. |
instructors | string[] | Instructor names. Present with withDetails. |
workload | string | Recommended study time and length. Present with withDetails. |
description | string | Full course description. Present with withDetails. |
aiSummary | string | AI plain-English summary. Present only when withAiSummary is enabled. |
aiTags | string[] | AI topic tags. Present only when withAiTags is enabled. |
aiCategory | object | AI category, subcategory, level. Present only when withAiCategorize is enabled. |
sourceQuery | string | The keyword or URL that produced this record. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"searchQueries":["machine learning"],"maxCourses":2,"withDetails":true}), with the long description trimmed for readability:
{"title": "Machine Learning with Python","url": "https://www.coursera.org/learn/machine-learning-with-python","id": "course~8UjeMk-mEeit4g4GsxE4dg","productType": "COURSE","partner": "IBM","rating": 4.67,"reviewCount": 18448,"difficultyLevel": "Intermediate","durationCategory": "1 to 3 months","certificateType": "Course Certificate","isFree": false,"isPartOfCourseraPlus": true,"tagline": "Offered by IBM","languages": ["English"],"enrollmentCount": 703534,"instructors": ["Joseph Santarcangelo", "SAEED AGHABOZORGI"],"workload": "5-6 weeks of study, 3-6 hours per week","description": "Python is a core skill in machine learning, and this course equips you with the tools to apply it effectively. ...","sourceQuery": "machine learning","observedAt": "2026-08-14T07:06:50.486Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~coursera-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQueries":["machine learning"],"maxCourses":25,"withDetails":true}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~coursera-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQueries":["python"],"productType":"Professional Certificates","difficultyLevel":"Beginner","maxCourses":100}'
Apify CLI:
apify call scrapers_lat/coursera-scraper \--input '{"startUrls":["https://www.coursera.org/learn/machine-learning-with-python"]}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per course returned (
resultevent). See the pricing tab for the current per-result price. - Detail enrichment billed separately. With
withDetailson, adetailsevent is charged per course only when the detail fetch succeeds. - AI add-ons billed separately.
withAiSummary,withAiTagsandwithAiCategorizeeach charge their own event only when they produce output, and are disabled on free plans. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 25 records per run. Upgrade for higher
maxCourses.
FAQ and troubleshooting
A run returned 0 records. Why?
The keyword matched nothing under the chosen filters. Loosen productType, difficultyLevel or language, or broaden the keyword. Zero-result runs are not charged.
Can I scrape a specific course instead of searching?
Yes. Paste one or more course, specialization or search URLs into startUrls. Product URLs return that single product; a search URL runs the keyword behind it.
Where do enrollment numbers and instructor names come from?
enrollmentCount, instructors, description and workload are collected when withDetails is enabled. The listing fields like rating, skills and pricing signals are always included.
Why is a field like workload or rating null?
Some products do not expose every field (for example workload on a specialization, or a rating on a brand new course). Missing source values are returned as null, never guessed.
Do the AI add-ons work on a free plan? No. The AI add-ons require a paid Apify plan and are disabled automatically for free users. The base course fields are always returned.
Is this an official Coursera tool? No. This actor is independent and has no affiliation with Coursera. It reads only data that is publicly available on the platform. Use it in accordance with Coursera's terms of service.
Related scrapers
- Chrome Web Store Extensions Scraper: extensions, ratings, users and publisher data from the Chrome Web Store.
- arXiv Research Papers & Abstracts Scraper: titles, authors and abstracts from the arXiv research archive.
- Apple App Store Reviews & Ratings Scraper: user reviews, ratings and versions from the Apple App Store.
- Clinical Trials Scraper: studies, sponsors and conditions from the public clinical trials registry.
- US Patents Scraper: patents with assignee, inventor and claims data.
- Amazon Product Price & Reviews Scraper: product prices, ratings and reviews from Amazon.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Coursera. Accesses only publicly available course data. Use in accordance with Coursera's terms of service.
