Coursera Scraper [Only $0.5/1K💰] | Course Catalog | Syllabus
Pricing
from $0.20 / 1,000 reviews
Coursera Scraper [Only $0.5/1K💰] | Course Catalog | Syllabus
Scrape the Coursera catalogue — courses, specializations, professional certificates and guided projects — with syllabus modules, skills, difficulty, duration, ratings, reviews and pricing flags. HTTP-only, no browser, no API key. $0.0005 per product.
Pricing
from $0.20 / 1,000 reviews
Rating
0.0
(0)
Developer
Ahmed Jasarevic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 days ago
Last modified
Categories
Features
Share
Coursera Scraper
Extract structured course, specialization, professional-certificate and guided-project data from the Coursera catalogue — including syllabus modules with per-module durations, skills, difficulty, exact duration, ratings, reviews, partners and pricing flags — using pure HTTP requests with no browser, no API key and no anti-bot costs. At $0.0005 per product + $0.0002 per review, this is the cheapest per-product Coursera scraper on the Apify Store.
Built for edtech founders, universities benchmarking peers, course affiliates, L&D teams and skills-gap researchers.
Main Use Cases
- Coursera course catalog database — one dataset covering courses, specializations, professional certificates and guided projects, each tagged with its
productType - Skills gap analysis data — pivot on the
skillsarray per product to see which offerings cover a capability and which partners dominate it - Course syllabus data — module-by-module breakdown with per-module duration (ISO 8601 + normalised minutes), not just a headline "1–3 months"
- E-learning market research — ratings, review counts, total historical enrolment, languages and pricing flags normalised across all partners
- Edtech competitor analysis / university benchmarking — filter
partnerto a specific university and compare catalogue, ratings and module counts - Course affiliate and L&D planning — free vs Coursera Plus flags,
credentialAwarded, and exact durations for curriculum comparison
How It Works

Looking for a Coursera scraper or a practical course-catalogue data alternative? Add search queries or direct product URLs, set page and product limits, then choose whether to fetch full detail and embedded reviews. Each product row includes title, URL, slug, Coursera ID, product type, partner, skills, difficulty, duration, rating, review count, free and Coursera Plus flags, price category, badges, syllabus modules and durations, instructors, languages, description, image, financial-aid eligibility and credential.
Use the dataset for course-catalogue research, university benchmarking, skills-gap analysis, affiliate planning and L&D curriculum comparison. Export as JSON, CSV or Excel, or pull results through the Apify API. Pay from $0.50 per 1,000 products plus $0.20 per 1,000 reviews.
Build an Online Course Database Without the Coursera API
Coursera's official catalogue API supports no free-text search and only ever exposes id, slug, name and courseType (/api/courses.v1 ignores the fields parameter), and the search backend (Cohere) is issued server-side with no client-side key. The server-rendered pages are the reachable, free surface — and they carry the internal product id in each result card's data-click-value.objectID (course~… / s12n~…), so no catalogue-API scan is needed. A JSON catalogue index exists but costs up to 130 extra requests per run and is not used. The result: the same field depth browser actors sell at $0.012/result, at $0.0005/product, with a second reviews dataset (up to 5 embedded reviews per product) that costs no extra HTTP requests.
Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
searchQueries | array | No | ["data science"] | Catalogue search terms; category-shaped terms auto-redirect to /browse/... |
startUrls | array | No | [] | Direct product URLs (/learn/..., /specializations/..., /professional-certificates/...), as {"url": "..."} objects; merged with searchQueries |
maxPages | integer | No | 5 | Result pages per query (12 products each), capped at 50 |
maxItems | integer | No | 100 | Total products to emit, capped at 2000 (free accounts: 10-product preview) |
fetchDetails | boolean | No | true | Load each detail page for syllabus modules, exact duration, difficulty, instructors; false = listing-only (1 request per 12 products) |
scrapeReviews | boolean | No | false | Also collect embedded reviews into a second reviews dataset — no extra requests; a sample, not the full list (see FAQ) |
maxRequestsPerCrawl | integer | No | 400 | Hard cap on total HTTP requests |
proxy | object | No | useApifyProxy: false | Optional; not needed to get unblocked |
Output — Coursera Catalogue Records for Market Research
default dataset (one row per product):
| Field | Description |
|---|---|
title, url, slug, courseraId | Canonical identity + internal product id (always populated, prefix stripped) |
productType | Course, Specialization, Professional Certificate, Certificate, Guided Project |
partner, partnerUrl | University or company offering the product |
skills | Coursera's own skill tags, 6–22 per product |
difficulty, duration, durationHours | Beginner/Intermediate/Advanced/Mixed; exact duration for courses, range (1 - 3 Months) for certificates |
rating, reviewCount | Averaged and exact counts (not rounded card values) |
isFree, isCourseraPlus, priceCategory | Pricing flags: Free, Partially Free, Paid, Subscription; Plus enrolment where shown |
syllabusModules, syllabusModuleCount | Module name + duration (courses); constituent /learn/ courses (specializations/certificates) |
instructors, learnersEnrolled, languages, description, image | From the detail-page JSON-LD |
financialAidEligible, credentialAwarded, badges | Aid eligibility, credential, listing badges |
searchQuery, scrapedAt, detailFetched | Provenance + run metadata |
reviews dataset (when scrapeReviews: true): productUrl, productSlug, productTitle, productType, courseraId, reviewer, rating, date, text, scrapedAt.
Two views are preconfigured: Coursera catalogue (default table) and Syllabus modules (one row per module, for curriculum analysis).
Example Input
{"searchQueries": ["machine learning", "artificial intelligence"],"maxPages": 3,"maxItems": 200,"fetchDetails": true}
Direct URLs are merged with search — e.g. add "startUrls": [{ "url": "https://www.coursera.org/learn/what-is-datascience" }].
Example Output — Product Record (trimmed)
{"title": "Introduction to Artificial Intelligence (AI)","url": "https://www.coursera.org/learn/introduction-to-ai","slug": "introduction-to-ai","courseraId": "ejOz7RDUEei99hK0xs-tsg","productType": "Course","partner": "IBM","skills": ["Responsible AI", "Machine Learning Methods", "Generative AI", "AI literacy"],"difficulty": "Beginner","duration": "13 hours 26 minutes","durationHours": 13.43,"rating": 4.7,"reviewCount": 23395,"isFree": true,"isCourseraPlus": true,"priceCategory": "Subscription","syllabusModules": [{ "name": "Introduction and Applications of AI", "durationIso": "PT3H45M38S", "durationMinutes": 225.63 }],"syllabusModuleCount": 4,"instructors": [{ "name": "Antonio Cangiano" }],"learnersEnrolled": 956714,"languages": ["ar", "de", "es", "fr", "pt", "zh"],"financialAidEligible": false,"credentialAwarded": "Coursera Certificate","searchQuery": "artificial intelligence","scrapedAt": "2026-09-26T09:11:24.438Z"}
Course Catalogue Data at $0.0005 Per Product
$0.0005 per product (scraped_product), $0.0002 per review row (scraped_review), plus Apify's standard $0.00005 actor start — and reviews are charged only for rows successfully written. fetchDetails: true (default) adds one detail request per product but does not change the price per row. A 100-product run at maxPages: 5 is about 110 requests on the default 512 MB container — a fraction of one compute unit; fetchDetails: false drops it to ~5 requests for a broad listing sweep. The closest competitor with syllabus data charges $0.012/result + $0.01 start, so a 1,000-product catalogue here costs ~$0.55 vs ~$13 there.
Integrations & Automation
- API — run and fetch via the Apify REST API, or call it from AI agents through the Apify MCP server
- Scheduling — monthly catalogue refreshes to track new products, price-flag changes and rating drift
- Webhooks — push new course matches (by query or partner) to your app, Sheets or Slack
- Export — JSON, CSV, Excel, HTML (both datasets)
Recommended schedule: weekly for skills-gap research and peer benchmarking; monthly for full-catalogue database refreshes.
Related Actors
- Coursera Scraper —
antonionduarte/coursera-scraper— the most-used Coursera actor (247 users, 4.47★); $0.012/result + $0.01 start, no syllabus modules - Coursera Scraper 🎓 —
shahidirfan/coursera-scraper— $0.00093/result + $0.0005 start, 5.0★ - Coursera Search Scraper —
piotrv1001/coursera-search-scraper— search-surface only, $0.001/course - Coursera Scraper | All In One —
fatihtahta/coursera-scraper— $0.001/result, course + review data - Coursera Transcript Scraper — Lecture Subtitles (No Login) —
scrapersdelight/coursera-transcript-scraper— transcript-specific, $0.001/lecture
This actor is the cheapest per product ($0.0005), the only one with syllabus modules + per-module durations + product-type tagging, and the only one with a zero-extra-cost reviews dataset.
FAQ
Why use this actor instead of the official Coursera API?
The public catalogue endpoint (/api/courses.v1) has no free-text search, ignores the fields parameter, and only ever returns id, slug, name and courseType; partner-facing APIs are gated. The actor reads server-rendered pages — the surface every logged-out visitor gets — and never triggers anti-bot protection.
What are alternatives to this actor for course catalogue data?
On the Store: antonionduarte/coursera-scraper ($0.012 + $0.01 start), shahidirfan/coursera-scraper ($0.00093 + $0.0005 start), piotrv1001/coursera-search-scraper ($0.001/course), fatihtahta/coursera-scraper ($0.001/result). Ours is the cheapest per product and the only one emitting syllabus modules and product-type tags.
Does it need a paid anti-bot service or residential proxy?
No. All three endpoints return 200 to a plain HTTP client. The proxy input is optional (IP rotation/geo-targeting only) — this is not a browser actor, so you pay only for compute.
How many courses does it return per query?
Search pages return 11–12 products per page with proper &page= pagination; category pages (infinite scroll) return the first server-rendered batch (typically 20–70 products). To enumerate the full catalogue (~24,500 products documented), crawl /browse/... and feed the URLs in as startUrls.
Why are the reviews just a sample?
Coursera embeds only ~5 reviews per /learn/ course in the server-rendered HTML (none on specializations/certificates/guided projects); the full list loads client-side from endpoints that return API Route Does Not Exist over plain HTTP. reviewCount on each product is the true total; the reviews dataset holds the individual texts actually served. Extracting every review would require a headless browser, which this actor deliberately avoids.
Why is isCourseraPlus null on some products?
It is null when the logged-out page does not surface a Plus marker — this is expected, not a bug. instructors and learnersEnrolled are often empty on specialization and certificate pages because those JSON-LD nodes carry no teaches/totalHistoricalEnrollment; individual /learn/ pages populate both.
Why is 512 MB the default memory?
The detail pages embed 1–3 MB of SSR JSON each; at 100 products a 256 MB container was OOM-killed (exit 137), and measured peak is 318 MB. HTTP-only keeps it ~10–20x cheaper than a browser actor anyway; raise it for very large runs (capped at 1024 MB).
For AI Agents & LLM Apps
- Purpose: given search queries (or direct product URLs), returns one row per Coursera product — course/specialization/professional certificate/guided project — with syllabus modules, per-module durations, skills, difficulty, exact duration, rating, review count, enrolment, instructors, languages, pricing flags and credential; optionally a second
reviewsdataset. - Minimal working input:
{ "searchQueries": ["data science"], "maxItems": 100, "fetchDetails": true }
- Variant inputs — listing-only sweep:
{ "searchQueries": ["python"], "fetchDetails": false }; direct products:{ "startUrls": [{ "url": "https://www.coursera.org/learn/what-is-datascience" }] }; with reviews: add"scrapeReviews": true; full catalogue: crawl/browse/...URLs viastartUrls. - Output fields:
title, url, slug, courseraId, productType, partner, partnerUrl, skills, difficulty, duration, durationHours, rating, reviewCount, isFree, isCourseraPlus, badges, priceCategory, syllabusModules, syllabusModuleCount, instructors, learnersEnrolled, languages, description, image, financialAidEligible, credentialAwarded, searchQuery, scrapedAt, detailFetched(+reviewsdataset:productUrl, productSlug, productTitle, productType, courseraId, reviewer, rating, date, text, scrapedAt). - Behaviors an agent should know:
searchQueriesandstartUrlsrun in the same crawl and results are merged. Category-shaped queries (machine learning) 301-redirect to/browse/...which has no server-side pagination — expect the first batch (20–70 products); free-text queries paginate 12/page.scrapeReviewscosts no extra requests but returns only the ~5 embedded reviews per course (never the full list — usereviewCountfor totals).fetchDetails: falseproduces title/partner/skills/rating-only rows 12-per-request and leavessyllabusModules,instructors,learnersEnrolledempty. Free accounts are capped at 10 products.durationHoursis exact for courses andnull/range-formatted for certificates. If a run returnsnulldetail rows, Coursera may be A/B-testing — a re-run usually fixes it. Billing notes: reviews are charged ($0.0002) only when written; product rows are $0.0005 each; there is no per-page or per-GB fee. - Billing: pay-per-event — $0.0005 per product + $0.0002 per review + standard $0.00005 actor start; no anti-bot or proxy charges unless you enable proxy yourself.
Legal & Compliance Disclaimer
This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Coursera, Inc. It requests only publicly available catalogue pages — the same content any logged-out visitor's browser receives — and does not log in, bypass paywalls, access personal data or circumvent access controls; pricing flags such as isFree/isCourseraPlus describe the public offer, not an entitlement to course content. Users are responsible for their own compliance with Coursera's Terms of Use, robots.txt and applicable law. The data is intended for legitimate purposes such as market research, curriculum benchmarking and skills-gap analysis.
SEO Keywords
coursera scraper, coursera course catalog, coursera api alternative, online course data, e-learning market research, skills gap analysis data, coursera skills taxonomy, mooc database, course syllabus data, edtech competitor analysis, coursera ratings and reviews, professional certificate data, coursera guided projects, university course benchmarking, online learning trends, coursera course pricing data, machine learning courses dataset, python courses data, coursera partners data, l&d curriculum data