Coursera Course & Specialization Catalog Scraper
Search Coursera's course and specialization catalog by keyword, difficulty or partner university, with rating, learner count, enrollment type and course links.
Open in Apify Store$0.99 / 1K on Free
Short answer
Coursera Course & Specialization Catalog Scraper is an Apify Store Actor that returns 7 published output fields, including name, partnerName, difficultyLevel, avgRating. It lists $0.99 per 1,000 results on the Free plan (pay per event), $0.49 on the Business plan. It takes 21 input settings; one is required (mode). Last updated Nov 10, 2026.
From the public Store listing and published build schema, synced 2026-11-12.What it returns
7 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.
recordTypenamepartnerNamedifficultyLevelavgRatinglearnerCountcourseUrl
Input
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| mode | string | Yes | search | What to fetch. `bySlug`, `byUrl` and `byIds` always return detail fields for the looked-up products. |
| query | string | No | – | Keyword search (mode=search, searchSpecializations). Optional narrowing keyword for byCategory and byPartner. |
| startUrls | array | No | [] | Course, specialization, professional certificate, guided project, degree or certificate page, or a Coursera search / courses URL. Search URLs are converted into catalog filters. |
| slugs | array | No | [] | Course or specialization slugs, e.g. `machine-learning`. A full Coursera URL is also accepted. |
| productIds | array | No | [] | Coursera product IDs such as `course~8UjeMk-mEeit4g4GsxE4dg` or `s12n~nOOfCDWeEeuiZgo2K4rorQ`. Bare course IDs are also accepted. |
| productTypes | array | No | [] | Limit results to these Coursera product types. Leave empty for every type. |
| difficulties | array | No | [] | Only include products at these difficulty levels. |
| durations | array | No | [] | Only include products in these duration bands. |
| costs | array | No | [] | Only include products with these cost labels. |
| topics | array | No | [] | Only include products in these subject areas (mode=byCategory requires at least one). |
Show the other 11 settings
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| languages | array | No | [] | Only include products available in these content languages. |
| subtitleLanguages | array | No | [] | Only include products with subtitles in these languages. |
| handsOnLearningTypes | array | No | [] | Only include products with these hands-on learning formats. |
| tools | array | No | [] | Only include products that teach these tools or software skills. |
| partners | array | No | [] | Partner or university names, e.g. `IBM`, `Google`, `Stanford Online`, `DeepLearning.AI`. Matched to the live Coursera partner filter; partial names such as `Stanford` are resolved to the closest partner. |
| skills | array | No | [] | Skill names, e.g. `Python Programming`, `Machine Learning`. Matched to the live skill filter; partial names are resolved when possible. |
| courseraPlusStatus | string | No | – | Filter by Coursera Plus inclusion. |
| freeOnly | boolean | No | false | Only return products whose Coursera cost label is Free. The older audit/verified filter is no longer exposed by Coursera; access flags are included in every record. |
| sortBy | string | No | BEST_MATCH | Result order for search, browse, byCategory and byPartner modes. |
| maxItems | integer | No | 50 | Maximum number of records to return (1-1000). |
| includeDetails | boolean | No | false | Fetch each product page to add instructors, syllabus/modules, total enrollment, page views, rating breakdown, top reviews, learning objectives, recommended background and membership. Slower: one extra request per record. Lookup modes (bySlug/byUrl/byIds) always return detail fields. |
Example input
Built from the input form's published example values and defaults.
{
"mode": "search",
"query": "machine learning",
"startUrls": [],
"slugs": [],
"productIds": [],
"productTypes": [
"COURSE"
],
"difficulties": [],
"durations": [],
"costs": [],
"topics": [],
"languages": [],
"subtitleLanguages": [],
"handsOnLearningTypes": [],
"tools": [],
"partners": [],
"skills": [],
"freeOnly": false,
"sortBy": "BEST_MATCH",
"maxItems": 3,
"includeDetails": false
} Run it from code or an AI agent
The same run through the Apify API, with the example input. You need an Apify API token; the run is billed to your account at the Store price.
Python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "search",
"query": "machine learning",
"startUrls": [],
"slugs": [],
"productIds": [],
"productTypes": [
"COURSE"
],
"difficulties": [],
"durations": [],
"costs": [],
"topics": [],
"languages": [],
"subtitleLanguages": [],
"handsOnLearningTypes": [],
"tools": [],
"partners": [],
"skills": [],
"freeOnly": False,
"sortBy": "BEST_MATCH",
"maxItems": 3,
"includeDetails": False
}
run = client.actor("nimbryxo-studio/coursera-course-and-specialization-catalog-scraper").call(run_input=run_input)
if run is None:
raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item) pip install apify-client
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
"mode": "search",
"query": "machine learning",
"startUrls": [],
"slugs": [],
"productIds": [],
"productTypes": [
"COURSE"
],
"difficulties": [],
"durations": [],
"costs": [],
"topics": [],
"languages": [],
"subtitleLanguages": [],
"handsOnLearningTypes": [],
"tools": [],
"partners": [],
"skills": [],
"freeOnly": false,
"sortBy": "BEST_MATCH",
"maxItems": 3,
"includeDetails": false
};
const run = await client.actor("nimbryxo-studio/coursera-course-and-specialization-catalog-scraper").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items); npm install apify-client
cURL
curl -X POST "https://api.apify.com/v2/actors/nimbryxo-studio~coursera-course-and-specialization-catalog-scraper/run-sync-get-dataset-items" -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" -d '{"mode":"search","query":"machine learning","startUrls":[],"slugs":[],"productIds":[],"productTypes":["COURSE"],"difficulties":[],"durations":[],"costs":[],"topics":[],"languages":[],"subtitleLanguages":[],"handsOnLearningTypes":[],"tools":[],"partners":[],"skills":[],"freeOnly":false,"sortBy":"BEST_MATCH","maxItems":3,"includeDetails":false}' Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).
MCP (AI agents)
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=nimbryxo-studio/coursera-course-and-specialization-catalog-scraper",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
} Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.
What a run costs
The result rate falls on higher Apify plans. Each figure is the published per-result rate times the number of results.
| Apify plan | Per 1,000 | 10,000 results | 100,000 results |
|---|---|---|---|
| Free plan | $0.99 | $9.90 | $99 |
| Starter plan | $0.82 | $8.20 | $82 |
| Scale plan | $0.66 | $6.60 | $66 |
| Business plan | $0.49 | $4.90 | $49 |
- Every run also has a start event, charged per GB of memory (minimum one): $0.10 on Free, $0.03 on Business. At its default memory of 4 GB a run starts at $0.40 on Free. Fewer, larger runs keep this small.
- The Free plan includes $5 of monthly usage (Apify pricing, checked 2026-11-11); at the Free rate that covers at most about 5,050 results, less start events and platform usage.
- Worked example: 10,000 results in one run on the Free plan cost $10.30 ($9.90 for results + $0.40 start), plus Apify platform usage (compute), billed separately by Apify.
- Pay per event. Platform usage (compute) is billed by Apify on top of the event prices. Compare other tools in the cost estimator.
What people use it for
- catalog course offerings
- filter learning programs
Similar Actors
Udemy Course Catalog & Rating Finder
Search Udemy courses by keyword, category, or instructor, with rating, subscriber count, price, curriculum size, and level filters.
LinkedIn Learning Course & Learning Path Finder
Search the LinkedIn Learning catalog by keyword for courses, learning paths or videos, with instructor, duration, difficulty, topics and skills…
Amazon Third-Party Seller Profile & Storefront Catalog
Look up an Amazon third-party seller's public business details, feedback history and ratings histogram, plus every product listed in their…
Domain-Scoped Site Crawler for Markdown Datasets
Crawl a website from one or more start URLs, staying on the same domain, and get back clean Markdown, text, or HTML per page with title,…
Google Maps Business Search & Reviews MCP Server
Search Google Maps businesses or pull reviews for a specific place through one actor, usable as a normal run or as an MCP tool for AI agents.…
Google Scholar Paper & Citation Search Scraper
Search Google Scholar by keyword and get structured records for papers and citations, with author, venue, year, citation counts, and links to PDFs…
Questions people ask
How much does Coursera Course & Specialization Catalog Scraper cost?
The published result rate depends on your Apify plan: $0.99 per 1,000 on Free, $0.82 per 1,000 on Starter, $0.66 per 1,000 on Scale, $0.49 per 1,000 on Business. So 10,000 results cost about $9.90 on the Free plan and $4.90 on Business, plus a start fee of $0.10 per run per GB of memory on Free. Platform usage is billed separately.
What data does Coursera Course & Specialization Catalog Scraper return?
Its published output schema lists 7 fields: recordType, name, partnerName, difficultyLevel, avgRating, learnerCount, courseUrl. A listed field is not guaranteed to be filled in every row.
What input does Coursera Course & Specialization Catalog Scraper need?
Required: mode. Optional settings include query, startUrls, slugs, productIds, productTypes, difficulties.
How do I run Coursera Course & Specialization Catalog Scraper from Python or the API?
Use the Apify API client: in Python, ApifyClient(token).actor("nimbryxo-studio/coursera-course-and-specialization-catalog-scraper").call(run_input=...), then read the run's default dataset (run.default_dataset_id); in JavaScript the same call is client.actor("nimbryxo-studio/coursera-course-and-specialization-catalog-scraper").call(input). Without a client, POST the input JSON to https://api.apify.com/v2/actors/nimbryxo-studio~coursera-course-and-specialization-catalog-scraper/run-sync-get-dataset-items with your API token. Ready-to-paste code with the example input is on this page.
Sources
- Coursera Course & Specialization Catalog Scraper on Apify Store
- Published build with input and output schema (JSON)
Cite this page
Scraper Finder. "Coursera Course & Specialization Catalog Scraper." https://scraperfinder.com/catalogue/coursera-course-and-specialization-catalog-scraper/ (data checked 2026-11-12).
Run Coursera Course & Specialization Catalog Scraper
$0.99 per 1,000 results. Paste the example input above, set your target query, then export the dataset.