Coursera Scraper — Extract Courses, Ratings & Enrollment Data
Pricing
from $5.00 / 1,000 result items
Coursera Scraper — Extract Courses, Ratings & Enrollment Data
Scrape Coursera courses, specializations & certificates. Get title, provider, rating, skills, enrollment count & more. No login required. Flat $0.005/item.
Pricing
from $5.00 / 1,000 result items
Rating
0.0
(0)
Developer
Rifky Afriza
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
📚 Coursera Scraper — Extract Courses, Ratings & Enrollment Data
Extract structured course data from Coursera — search by keyword, apply powerful filters, or use start URLs. Get title, provider, rating, skills, enrollment count, difficulty & duration per course. Flat $0.005/item — simple, predictable, and scalable pricing.
🚀 Why This Actor?
| Feature | This Actor | Competitors |
|---|---|---|
| Price per item | $0.005 flat | $0.02+ or Pay-per-compute |
| Compute Costs | Included | Hidden (You pay for their slow code) |
| Speed & Arch | Ultra-Fast (Cheerio) | Slow (Playwright/Puppeteer) |
| Data Richness | Skills, Badges, Enrollment | Title & URL only |
| Input Fields | Rich Filters (Lang, Level) | Confusing and broken |
✨ Features
- 🔍 2 Search Modes — keyword search (e.g.
"python","data science") or direct Coursera search URLs. - 📄 Rich Output — title, provider, rating, # reviews, difficulty, duration, skills list, badges, Coursera Plus flag.
- 🌐 Powerful Filters — Language, Difficulty Level, Duration, and Product Type (Course, Specialization, Certificate, Degree).
- 🔬 Deep Scrape Mode — navigate each course page to extract enrollment count, full description, and price.
- 💰 Flat Pricing — ~$0.00005 Base + $0.005/item. No hidden compute fees.
- 📦 Multiple Export Formats — JSON, CSV, Excel, XML, HTML Table.
🎯 Use Cases
| Audience | Applications |
|---|---|
| EdTech Founders | Identify trending skills, gaps in the market, and underserved course topics |
| Market Researchers | Analyze MOOC trends, provider dominance, and rating distributions at scale |
| Lead Generation | Find top-rated instructors and universities for outreach and partnerships |
| Competitor Analysts | Track enrollment growth, ratings, and pricing of rival courses over time |
💡 Quick Start
1. Sign Up (Free $5 Credit)
Uses our referral link — you get $5 free credit to test immediately. No credit card required.
2. Run Your First Search
{"searchKeywords": ["python"],"maxItems": 50,"difficultyLevel": "Beginner","proxyConfiguration": {"useApifyProxy": true}}
3. Download Results
Results appear in the Dataset tab. Export as JSON, CSV, Excel, XML, or HTML Table.
⚙️ Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchKeywords | array | No* | — | Keywords to search (e.g. ["python", "data science"]). *Required if no startUrls. |
startUrls | array | No* | — | Direct Coursera search or course page URLs. |
language | string | No | All | Filter by language (English, Spanish, French…) |
difficultyLevel | string | No | All | Filter by level (Beginner, Intermediate, Advanced, Mixed) |
duration | string | No | All | Filter by duration (1-4 Weeks, 1-3 Months, 3-6 Months) |
learningProduct | string | No | All | Filter by type (Courses, Specializations, Professional Certificates, Degrees) |
deepScrape | boolean | No | false | Navigate each course page for enrollment count, description & price |
maxItems | integer | No | 100 | Max items to return (1–10,000) |
proxyConfiguration | object | Yes | Apify Proxy | Proxies are required for Coursera |
📊 Output Example
Each item in the dataset contains the following fields:
{"title": "Crash Course on Python","url": "https://www.coursera.org/learn/python-crash-course","productType": "COURSE","provider": "Google","rating": 4.77,"numRatings": 40492,"difficultyLevel": "Beginner","duration": "1-3 months","skills": ["Python Programming", "Computer Programming", "Data Structures", "Debugging"],"languages": ["English"],"imageUrl": "https://s3.amazonaws.com/coursera-course-photos/...","isPartOfCourseraPlus": true,"badges": ["Free Trial"],"description": "Offered by Google. Learn Python foundations to write simple programs...","enrolled": 41419421,"price": null,"scrapedAt": "2026-07-04T13:14:02.696Z"}
Data Fields
| Field | Type | Description |
|---|---|---|
title | string | Course title |
url | string | Full Coursera URL |
productType | string | COURSE, SPECIALIZATION, PROFESSIONAL_CERTIFICATE, or DEGREE |
provider | string | Institution (Google, Stanford, University of Michigan…) |
rating | number | Average star rating (0–5) |
numRatings | number | Total number of reviews |
difficultyLevel | string | Beginner / Intermediate / Advanced / Mixed |
duration | string | Estimated time to complete |
skills | array | List of skills taught |
languages | array | Available languages |
isPartOfCourseraPlus | boolean | Included in Coursera Plus subscription |
badges | array | Course badges (e.g. Free Trial) |
enrolled | number | Learners enrolled (deep scrape only) |
description | string | Course description (deep scrape only) |
price | string | Course price if visible (deep scrape only) |
scrapedAt | string | ISO 8601 timestamp |
Download the dataset in JSON, HTML, CSV, or Excel from the Dataset tab.
💰 Pricing (Pay Per Event)
| Event | Rate |
|---|---|
Actor Start (apify-actor-start) | $0.00005 (Apify default) |
Result Item (apify-default-dataset-item) | $0.005 |
Examples:
- 100 items: ~$0.00005 + 100 × $0.005 = $0.50
- 1,000 items: ~$0.00005 + 1,000 × $0.005 = $5.00
- 10,000 items: ~$0.00005 + 10,000 × $0.005 = $50.00
🔧 Integration (API)
Node.js
$npm install apify-client
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('forlex/coursera-scraper').call({searchKeywords: ['machine learning'],difficultyLevel: 'Beginner',maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
$pip install apify-client
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("forlex/coursera-scraper").call(run_input={"searchKeywords": ["data science"],"maxItems": 100,"deepScrape": False,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsfor item in items:print(item["title"], item["provider"], item["rating"])
💡 Tips & Advanced Options
- Optimize speed: Use
deepScrape: falsefor fast bulk collection of search results. EnabledeepScrapeonly when you need enrollment counts or descriptions. - Reduce costs: Start with
maxItems: 10to validate your keyword before scaling up. - Combine filters: Use
difficultyLevel+duration+learningProducttogether to narrow down exactly what you need. - Start URLs: For precise scraping, paste a Coursera search URL directly into
startUrls(e.g.,https://www.coursera.org/search?query=python&productDifficultyLevel=Beginner).
❓ FAQ, Disclaimers & Support
Is it legal to scrape Coursera?
Web scraping of publicly available data is generally legal. This Actor only extracts publicly visible course information and does not bypass any login walls or access private data. Always review the target website's Terms of Service before scraping.
What if the Actor stops working?
Websites change their structure regularly. If you encounter issues, please report them in the Issues tab and we'll fix it promptly.
Can I get a custom solution?
Yes! If you need additional fields, scheduled runs, or a scraper for a different platform, reach out through the Issues tab.