Coursera Scraper
Pricing
from $0.69 / 1,000 courses
Coursera Scraper
Scrape Coursera search results: courses, Specializations, Professional Certificates, projects, and degrees with ratings, reviews, skills, providers, level, duration, languages, and free/Coursera Plus flags. Filter like the site. Export JSON, CSV, Excel.
Pricing
from $0.69 / 1,000 courses
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Coursera Scraper
Coursera Scraper extracts search results from Coursera: courses, Specializations, Professional Certificates, Guided Projects, and degrees, with ratings, review counts, skills, providers, level, duration, languages, and free or Coursera Plus status.
| Search Coursera by keyword or paste a search URL, filter by product type, level, duration, subject, language, educator, skill, free, or Coursera Plus, and get up to 10,000 results per search with 45+ fields each. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Use Apify Actor parsebird/coursera-scraper to scrape Coursera search results (courses, Specializations, Professional Certificates, projects, degrees). Example with ApifyClient (Python): client.actor("parsebird/coursera-scraper").call(run_input={"queries":["machine learning"],"productTypes":["Professional Certificates"],"levels":["Beginner"],"maxResults":200}). Inputs: queries array of strings (search terms, each searched separately); startUrls array of strings (coursera.org/search URLs; their query, filters, and sortBy are used); productTypes array (Courses, Specializations, Professional Certificates, Guided Projects, Projects, Degrees, Graduate Certificates, University Certificates, Postgraduate Diploma, MasterTrack® Certificates); levels array (Beginner, Intermediate, Advanced, Mixed); durations array (Less Than 2 Hours, 1-4 Weeks, 1-3 Months, 3-6 Months, 6-12 Months, 1-4 Years); topics array (Arts and Humanities, Business, Computer Science, Data Science, Health, Information Technology, Language Learning, Math and Logic, Personal Development, Physical Science and Engineering, Social Sciences); languages array of strings; partners array of strings (e.g. Google, IBM); skills array of strings; freeOnly boolean default false; courseraPlusOnly boolean default false; sortBy BEST_MATCH or NEW; maxResults integer default 100 (per search, max 10000); maxPages integer optional (100 results per page); deduplicate boolean default true (across searches); filters alone (no query) browse the whole catalog. Also accepts query, startUrl, results_wanted, max_pages. Output: one row per result: id, name, url, imageUrl, avgProductRating, numProductRatings, productDifficultyLevel, productDuration, productType, skills[], partners[], partnerLogos[], tagline, isCourseFree, isCreditEligible, isNewContent, isPartOfCourseraPlus, cobrandingEnabled, completions, duration, parentCourseName, parentLessonName, translatedName, translatedSkills, translatedParentCourseName, translatedParentLessonName, fullyTranslatedLanguages[], subtitlesOnlyLanguages[], videosInLesson, handsOnLearningTypes[], toolSoftwareSkillNames[], productCardId, canonicalType, marketingProductType, badges[], isPathwayContent, courseCardRating, courseCardReviewCount, searchQuery, searchRank, page, totalElements, totalPages, sourceIndexName, aiSearchSummaryEligible. API docs: https://docs.apify.com/api/client/python/ and https://docs.apify.com/api/client/js/. Token: https://console.apify.com/account/integrations.
What is Coursera Scraper?
Coursera Scraper is a Coursera course scraper that collects the same results you see on the Coursera search page, as structured data. For every course, Specialization, Professional Certificate, Guided Project, or degree it returns the name, link, image, average rating, number of ratings, skills, educators (universities and companies), level, duration, languages, badges, and whether it is free or part of Coursera Plus.
It works as a Coursera API alternative: you don't need a Coursera account, an API key, or a browser. The easiest way to try it is to open the actor, keep the prefilled search term python, and click Start. The prefilled run saves 20 results in a few seconds.
What can Coursera Scraper do?
- 🔍 Search Coursera by keyword: add any number of search terms and each one is searched separately, in Coursera's own ranking order.
- 🔗 Start from a Coursera search URL: paste a URL from your browser and the actor uses its search term, filters, and sort order.
- 🎯 Filter like the website: product type, level, duration, subject, language, educator, and skill. Turn on Free courses only or Coursera Plus only.
- 📚 Browse the catalog without a keyword: set only filters, for example every Professional Certificate in Data Science.
- 🆕 Sort by best match or newest to track new launches.
- ♻️ Skip duplicates when several search terms find the same course.
- 📈 Scale: up to 10,000 results per search, the most Coursera shows for one search.
- ⏱️ Automate with Apify schedules, the Apify API, webhooks, and integrations such as Google Sheets, Make, Zapier, and Slack.
- 📁 Export results as JSON, CSV, Excel, HTML, or XML.
What data can you extract from Coursera?
| Field | Description |
|---|---|
name, url, imageUrl, tagline | Title, link, image, and short description |
productType | COURSE, SPECIALIZATION, PROFESSIONAL_CERTIFICATE, GUIDED_PROJECT, PROJECT, degrees, and more |
avgProductRating, numProductRatings | Average star rating and number of ratings |
partners, partnerLogos | Universities or companies offering it, with logos |
skills, toolSoftwareSkillNames | Skills you gain and tools taught |
productDifficultyLevel, productDuration | Level (BEGINNER, INTERMEDIATE, ...) and time to complete (ONE_TO_THREE_MONTHS, ...) |
isCourseFree, isPartOfCourseraPlus, isCreditEligible, isNewContent | Free, Coursera Plus, credit-eligible, and new flags |
badges | Labels shown on the card, such as Free Trial |
fullyTranslatedLanguages, subtitlesOnlyLanguages | Languages the content is taught in, and subtitle-only languages |
handsOnLearningTypes | Hands-on formats such as Coding Labs or Guided Projects |
courseCardRating, courseCardReviewCount, isPathwayContent | Rating and reviews from the course card, and pathway membership |
searchQuery, searchRank, page, totalElements, totalPages | Which search found it, its position, and how many results the search has |
How to scrape Coursera
- Open Coursera Scraper and click Try for free or Start.
- Add search terms in Search terms, or paste Coursera search URLs in Coursera search URLs.
- Optionally pick filters: Learning product, Level, Duration, Subject, Language, Educator, Skills, Free courses only, or Coursera Plus only.
- Set Max results per search.
- Click Start, then open the Output tab or export the results as JSON, CSV, or Excel.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
queries | array of strings | No* | — | Search terms, each searched separately. Prefilled with python |
startUrls | array of strings | No* | — | Coursera search URLs; their query, filters, and sort order are used |
productTypes | array | No | — | Courses, Specializations, Professional Certificates, Guided Projects, Projects, Degrees, and more |
levels | array | No | — | Beginner, Intermediate, Advanced, Mixed |
durations | array | No | — | Less Than 2 Hours, 1-4 Weeks, 1-3 Months, 3-6 Months, 6-12 Months, 1-4 Years |
topics | array | No | — | Subjects such as Business, Computer Science, Data Science, Health |
languages | array of strings | No | — | Languages, e.g. English, Spanish |
partners | array of strings | No | — | Educators, e.g. Google, IBM, University of Michigan |
skills | array of strings | No | — | Skills, e.g. Python Programming |
freeOnly | boolean | No | false | Only results Coursera lists as free |
courseraPlusOnly | boolean | No | false | Only results included in Coursera Plus |
sortBy | string | No | best match | BEST_MATCH or NEW |
maxResults | integer | No | 100 | Results per search (max 10,000). Prefilled with 20 |
maxPages | integer | No | — | Optional cap on 100-result pages per search |
deduplicate | boolean | No | true | Save each course once across all searches |
proxyConfiguration | object | No | — | Optional. Not needed; Apify Proxy is used automatically if Coursera limits requests |
* Give at least one search term, search URL, or filter. With filters only, the actor browses the whole Coursera catalog. The actor also accepts query, startUrl, results_wanted, and max_pages, so inputs written for other Coursera scrapers work unchanged.
Input / Output
Example input: beginner Professional Certificates and Specializations from Google and IBM
{"queries": ["data science"],"productTypes": ["Professional Certificates", "Specializations"],"levels": ["Beginner"],"partners": ["Google", "IBM"],"maxResults": 200}
Example input: from a Coursera search URL
{"startUrls": ["https://www.coursera.org/search?query=data%20analytics&productDifficultyLevel=Beginner&sortBy=NEW"],"maxResults": 50}
Example input: every free course about Excel
{"queries": ["excel"],"freeOnly": true,"maxResults": 500}
Example output (a real row; subtitlesOnlyLanguages shortened)
{"id": "course~ejOz7RDUEei99hK0xs-tsg","name": "Python for Data Science, AI & Development","url": "https://www.coursera.org/learn/python-for-applied-data-science-ai","imageUrl": "https://s3.amazonaws.com/coursera-course-photos/b7/7cc18d8ade45138182ed8832a41860/V1_arc_scatter_PythonforDataScience-AI-Development_IBM.webp","avgProductRating": 4.62,"numProductRatings": 43831,"productDifficultyLevel": "BEGINNER","productDuration": "ONE_TO_THREE_MONTHS","productType": "COURSE","skills": ["Data Import/Export", "Python Programming", "NumPy", "Scripting", "Data Collection", "Data Analysis"],"partners": ["IBM"],"partnerLogos": ["http://coursera-university-assets.s3.amazonaws.com/bb/f5ced2bdd4437aa79f00eb1bf7fbf0/IBM-Logo-Blk---Square.png"],"tagline": null,"isCourseFree": false,"isCreditEligible": false,"isNewContent": false,"isPartOfCourseraPlus": true,"cobrandingEnabled": null,"completions": null,"duration": null,"parentCourseName": null,"parentLessonName": null,"translatedName": null,"translatedSkills": null,"translatedParentCourseName": null,"translatedParentLessonName": null,"fullyTranslatedLanguages": ["English"],"subtitlesOnlyLanguages": ["Arabic", "Azerbaijani", "Bengali", "Chinese"],"videosInLesson": null,"handsOnLearningTypes": [],"toolSoftwareSkillNames": [],"productCardId": "ejOz7RDUEei99hK0xs-tsg","canonicalType": "COURSE","marketingProductType": "COURSE","badges": ["Free Trial"],"isPathwayContent": false,"courseCardRating": 4.62,"courseCardReviewCount": 43831,"searchQuery": "python","searchRank": 2,"page": 1,"totalElements": 2152,"totalPages": 22,"sourceIndexName": "consumer_products_cohere_embed_english_v3_synonyms_alias:rt-search-heavy-ranker-e12r-prod","aiSearchSummaryEligible": true}
Download results from the Output tab in JSON, CSV, Excel, HTML, or XML. The Console also has a Skills & languages table view.
Python API example
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("parsebird/coursera-scraper").call(run_input={"queries": ["machine learning", "generative ai"],"productTypes": ["Professional Certificates"],"maxResults": 200,})for course in client.dataset(run["defaultDatasetId"]).iterate_items():print(course["name"], course["partners"], course["avgProductRating"], course["url"])
JavaScript API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('parsebird/coursera-scraper').call({queries: ['python'],freeOnly: true,maxResults: 300,});const { items } = await client.dataset(run.defaultDatasetId).listItems();const topRated = items.filter((c) => (c.numProductRatings ?? 0) > 1000).sort((a, b) => b.avgProductRating - a.avgProductRating);console.log(topRated.slice(0, 10).map((c) => `${c.avgProductRating} ${c.name}`));
See the Python client docs and JavaScript client docs for more options.
Use cases
- Course comparison and recommendation sites: keep a catalog of Coursera courses with ratings, skills, and providers.
- EdTech and market research: see which subjects, skills, and educators dominate a topic, and how many results each search has.
- Competitive tracking for universities and training companies: monitor which courses rank for your keywords and sort by Newest to catch launches.
- L&D and HR teams: build curated learning paths for skills such as Python, SQL, or project management, filtered by level and duration.
- SEO and content research: track search rank (
searchRank) of courses for target keywords over time with scheduled runs.
How it works
- The actor sends each search term or URL to Coursera's search, with your filters and sort order, the same way the Coursera website does.
- It reads results in pages of 100 until it reaches Max results per search, Max pages per search, or the end of the results.
- Each result becomes one row with an absolute URL and the search term, rank, and page it came from. Repeated results are dropped.
How much does it cost to scrape Coursera?
What is the price per Coursera result?
The actor uses pay-per-event pricing: you pay per result saved, and platform usage is included.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
course-scraped | $0.00089 ($0.89 / 1,000) | $0.00079 ($0.79 / 1,000) | $0.00069 ($0.69 / 1,000) | $0.00069 ($0.69 / 1,000) |
One course-scraped event is one row in the dataset. Duplicates that are skipped are not charged. The prefilled 20-result run costs about $0.02 on the Free plan, and 10,000 results cost $8.90. Apify's free plan includes monthly platform credits you can use to try the actor.
Is it legal to scrape Coursera?
Is scraping Coursera search results legal?
The actor only collects catalog information that Coursera shows publicly to anyone, without logging in, and it doesn't collect personal data. Scraping public data is generally legal in many jurisdictions, but respect Coursera's Terms of Use and don't republish copyrighted content such as course images without permission. Consult your lawyer if unsure. Read more in Apify's guide: Is web scraping legal?
Other scrapers and related Actors
| Actor | Best for |
|---|---|
| Indeed Jobs Scraper | Job postings, to match skills with demand |
| Dice Jobs Scraper | Tech job postings in the US |
| Djinni Jobs Scraper | Tech jobs in Ukraine and remote |
| YouTube Transcript Scraper | Transcripts of educational videos |
| Substack Scraper | Newsletter posts and publications |
FAQ
How many results can I get? Up to 10,000 per search term or URL, which is the most Coursera returns for one search. To collect more, split the work into several searches, for example one per subject or product type.
Why does a nonsense search still return results?
Coursera's search matches by meaning, not only exact words, so it returns the closest courses it can find. Check searchRank and the result names.
Why do I get fewer results than totalElements?
Coursera sometimes lists the same course on two pages. The actor saves each course once per search, so the saved count can be slightly below totalElements.
Does it scrape course details such as syllabus, instructors, or enrollment counts?
No. It returns the data shown in Coursera search results. Use the url field to open the course page.
Do I need a proxy? No. Requests go straight to Coursera. If Coursera starts limiting requests, the actor switches to Apify Proxy by itself.
Can I run it on a schedule or from my app? Yes. Use Apify schedules, call it from the API tab, or connect it to Make, Zapier, Google Sheets, or Slack through integrations.
Where can I report issues? Open the Issues tab on the actor page with your input and run ID.