Coursera Scraper — Extract Courses, Ratings & Enrollment Data avatar

Coursera Scraper — Extract Courses, Ratings & Enrollment Data

Pricing

from $5.00 / 1,000 result items

Go to Apify Store
Coursera Scraper — Extract Courses, Ratings & Enrollment Data

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

Rifky Afriza

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

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.

Apify Store Pay Per Event No Auth Required


🚀 Why This Actor?

FeatureThis ActorCompetitors
Price per item$0.005 flat$0.02+ or Pay-per-compute
Compute CostsIncludedHidden (You pay for their slow code)
Speed & ArchUltra-Fast (Cheerio)Slow (Playwright/Puppeteer)
Data RichnessSkills, Badges, EnrollmentTitle & URL only
Input FieldsRich 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

AudienceApplications
EdTech FoundersIdentify trending skills, gaps in the market, and underserved course topics
Market ResearchersAnalyze MOOC trends, provider dominance, and rating distributions at scale
Lead GenerationFind top-rated instructors and universities for outreach and partnerships
Competitor AnalystsTrack enrollment growth, ratings, and pricing of rival courses over time

💡 Quick Start

1. Sign Up (Free $5 Credit)

Create Free Account

Uses our referral link — you get $5 free credit to test immediately. No credit card required.

{
"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

ParameterTypeRequiredDefaultDescription
searchKeywordsarrayNo*Keywords to search (e.g. ["python", "data science"]). *Required if no startUrls.
startUrlsarrayNo*Direct Coursera search or course page URLs.
languagestringNoAllFilter by language (English, Spanish, French…)
difficultyLevelstringNoAllFilter by level (Beginner, Intermediate, Advanced, Mixed)
durationstringNoAllFilter by duration (1-4 Weeks, 1-3 Months, 3-6 Months)
learningProductstringNoAllFilter by type (Courses, Specializations, Professional Certificates, Degrees)
deepScrapebooleanNofalseNavigate each course page for enrollment count, description & price
maxItemsintegerNo100Max items to return (1–10,000)
proxyConfigurationobjectYesApify ProxyProxies 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

FieldTypeDescription
titlestringCourse title
urlstringFull Coursera URL
productTypestringCOURSE, SPECIALIZATION, PROFESSIONAL_CERTIFICATE, or DEGREE
providerstringInstitution (Google, Stanford, University of Michigan…)
ratingnumberAverage star rating (0–5)
numRatingsnumberTotal number of reviews
difficultyLevelstringBeginner / Intermediate / Advanced / Mixed
durationstringEstimated time to complete
skillsarrayList of skills taught
languagesarrayAvailable languages
isPartOfCourseraPlusbooleanIncluded in Coursera Plus subscription
badgesarrayCourse badges (e.g. Free Trial)
enrollednumberLearners enrolled (deep scrape only)
descriptionstringCourse description (deep scrape only)
pricestringCourse price if visible (deep scrape only)
scrapedAtstringISO 8601 timestamp

Download the dataset in JSON, HTML, CSV, or Excel from the Dataset tab.


💰 Pricing (Pay Per Event)

EventRate
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 ApifyClient
client = 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().items
for item in items:
print(item["title"], item["provider"], item["rating"])

💡 Tips & Advanced Options

  • Optimize speed: Use deepScrape: false for fast bulk collection of search results. Enable deepScrape only when you need enrollment counts or descriptions.
  • Reduce costs: Start with maxItems: 10 to validate your keyword before scaling up.
  • Combine filters: Use difficultyLevel + duration + learningProduct together 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

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.