Coursera Courses, Ratings & Instructors Scraper avatar

Coursera Courses, Ratings & Instructors Scraper

Pricing

from $6.80 / 1,000 results

Go to Apify Store
Coursera Courses, Ratings & Instructors Scraper

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

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Coursera Courses, Ratings & Instructors Scraper

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

Apify Coverage Output Billing

Table of contents

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

FieldTypeRequiredDefaultDescription
searchQueriesarrayno*(empty)One or more keywords to search, for example machine learning, python, project management. Each keyword runs its own search.
startUrlsarrayno*(empty)Coursera course, specialization or search URLs. Product URLs return that single product; search URLs run the keyword behind them.
maxCoursesintegerno10Maximum courses to collect across the run. Free Apify plans are capped at 25 per run.
withDetailsbooleannotrueOpen each product to add the full description, instructors, workload and enrollment count.
productTypeenumno(all)Restrict to one type: Courses, Specializations, Professional Certificates, Guided Projects, Degrees. Applies to keyword searches.
difficultyLevelenumno(all)Restrict to one level: Beginner, Intermediate, Advanced, Mixed.
languageenumno(all)Only courses available in this language (audio or subtitles), for example English, Spanish, Portuguese.
withAiSummarybooleannofalseAdd a plain-English AI summary of each course. Paid add-on, disabled on free plans.
withAiTagsbooleannofalseGenerate concise topic/keyword tags via AI. Paid add-on, disabled on free plans.
withAiCategorizebooleannofalseClassify 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.

FieldTypeDescription
imageUrlstringCourse cover image URL.
titlestringCourse or program name.
urlstringDirect link to the Coursera product page.
idstringCoursera product ID.
productTypestringCOURSE, SPECIALIZATION, PROFESSIONAL_CERTIFICATE, GUIDED_PROJECT or DEGREE.
partnerstringPrimary university or company offering the product.
partnersstring[]Every institution credited on the product.
partnerLogostringLogo image of the primary partner.
ratingnumberAverage learner rating out of 5, or null.
reviewCountnumberNumber of ratings behind the score, or null.
difficultyLevelstringBeginner, Intermediate, Advanced or Mixed.
durationCategorystringExpected time to complete, for example 1 to 3 months.
certificateTypestringCredential the product awards.
isFreebooleanWhether the course can be taken free, or null.
isPartOfCourseraPlusbooleanWhether it is included in a Coursera Plus subscription.
isCreditEligiblebooleanWhether it can count toward academic credit.
taglinestringShort marketing tagline.
skillsstring[]Skills the course teaches, or null.
toolsstring[]Named software or tools taught, or null.
languagesstring[]Languages with full audio and subtitles.
subtitleLanguagesstring[]Languages available as subtitles only.
enrollmentCountnumberTotal learners enrolled. Present with withDetails.
instructorsstring[]Instructor names. Present with withDetails.
workloadstringRecommended study time and length. Present with withDetails.
descriptionstringFull course description. Present with withDetails.
aiSummarystringAI plain-English summary. Present only when withAiSummary is enabled.
aiTagsstring[]AI topic tags. Present only when withAiTags is enabled.
aiCategoryobjectAI category, subcategory, level. Present only when withAiCategorize is enabled.
sourceQuerystringThe keyword or URL that produced this record.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull 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:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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 (result event). See the pricing tab for the current per-result price.
  • Detail enrichment billed separately. With withDetails on, a details event is charged per course only when the detail fetch succeeds.
  • AI add-ons billed separately. withAiSummary, withAiTags and withAiCategorize each 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 error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on 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.

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.