Coursera Scraper avatar

Coursera Scraper

Pricing

from $0.69 / 1,000 courses

Go to Apify Store
Coursera Scraper

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

ParseBird

Maintained by Community

Actor 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?

FieldDescription
name, url, imageUrl, taglineTitle, link, image, and short description
productTypeCOURSE, SPECIALIZATION, PROFESSIONAL_CERTIFICATE, GUIDED_PROJECT, PROJECT, degrees, and more
avgProductRating, numProductRatingsAverage star rating and number of ratings
partners, partnerLogosUniversities or companies offering it, with logos
skills, toolSoftwareSkillNamesSkills you gain and tools taught
productDifficultyLevel, productDurationLevel (BEGINNER, INTERMEDIATE, ...) and time to complete (ONE_TO_THREE_MONTHS, ...)
isCourseFree, isPartOfCourseraPlus, isCreditEligible, isNewContentFree, Coursera Plus, credit-eligible, and new flags
badgesLabels shown on the card, such as Free Trial
fullyTranslatedLanguages, subtitlesOnlyLanguagesLanguages the content is taught in, and subtitle-only languages
handsOnLearningTypesHands-on formats such as Coding Labs or Guided Projects
courseCardRating, courseCardReviewCount, isPathwayContentRating and reviews from the course card, and pathway membership
searchQuery, searchRank, page, totalElements, totalPagesWhich search found it, its position, and how many results the search has

How to scrape Coursera

  1. Open Coursera Scraper and click Try for free or Start.
  2. Add search terms in Search terms, or paste Coursera search URLs in Coursera search URLs.
  3. Optionally pick filters: Learning product, Level, Duration, Subject, Language, Educator, Skills, Free courses only, or Coursera Plus only.
  4. Set Max results per search.
  5. Click Start, then open the Output tab or export the results as JSON, CSV, or Excel.

Input parameters

ParameterTypeRequiredDefaultDescription
queriesarray of stringsNo*—Search terms, each searched separately. Prefilled with python
startUrlsarray of stringsNo*—Coursera search URLs; their query, filters, and sort order are used
productTypesarrayNo—Courses, Specializations, Professional Certificates, Guided Projects, Projects, Degrees, and more
levelsarrayNo—Beginner, Intermediate, Advanced, Mixed
durationsarrayNo—Less Than 2 Hours, 1-4 Weeks, 1-3 Months, 3-6 Months, 6-12 Months, 1-4 Years
topicsarrayNo—Subjects such as Business, Computer Science, Data Science, Health
languagesarray of stringsNo—Languages, e.g. English, Spanish
partnersarray of stringsNo—Educators, e.g. Google, IBM, University of Michigan
skillsarray of stringsNo—Skills, e.g. Python Programming
freeOnlybooleanNofalseOnly results Coursera lists as free
courseraPlusOnlybooleanNofalseOnly results included in Coursera Plus
sortBystringNobest matchBEST_MATCH or NEW
maxResultsintegerNo100Results per search (max 10,000). Prefilled with 20
maxPagesintegerNo—Optional cap on 100-result pages per search
deduplicatebooleanNotrueSave each course once across all searches
proxyConfigurationobjectNo—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 ApifyClient
client = 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

  1. 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.
  2. It reads results in pages of 100 until it reaches Max results per search, Max pages per search, or the end of the results.
  3. 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.

EventFree planBronzeSilverGold
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 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?

ActorBest for
Indeed Jobs ScraperJob postings, to match skills with demand
Dice Jobs ScraperTech job postings in the US
Djinni Jobs ScraperTech jobs in Ukraine and remote
YouTube Transcript ScraperTranscripts of educational videos
Substack ScraperNewsletter 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.