Coursera: scrapers and the official API, compared
Course and specialization listings, partner schools, difficulty, ratings and learner counts from Coursera.
Short answer
For most Coursera jobs, start with Coursera Course & Specialization Catalog Scraper: it covers 3 of 6 core fields (name, partner, learner) at $0.99 per 1,000 results on Apify's Free plan. The top published score for Coursera goes to Coursera Scraper by shahidirfan (76 of 100), a Store tool from another publisher, listed for reference.
From published Store listings, output schemas and the official documentation. Checked 2026-11-12. How the ranking works.Coursera Course & Specialization Catalog Scraper: inputs, code and costOpen in Apify Store
Route map
Each line is one way to get Coursera data; each stop is a field you probably need. Green lines are catalogue Actors, ranked by the published formula.
- 1 Coursera Course & Specialization Catalog Scraper 7 output fields, pay per event 3 of 6 core fields
$0.99 / 1K - + 5 other Store tools, combined Reference only 3 of 6 core fields
from $0.05 / 1K - API Coursera Developer Portal (Coursera for Business APIs) Limited access fields not compared
Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.
Catalogue Actors for Coursera
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…
Field matrix: who returns what
Every tool with a published output schema, against the 6 fields most Coursera jobs need. A dot means the field name appears in the schema; rows can still leave it empty.
| Tool | name | partner | difficulty | avg | learner | course | Fields |
|---|---|---|---|---|---|---|---|
| Coursera Course & Specialization Catalog Scraper | ● | ● | – | – | ● | – | 3/6 |
| Coursera ScraperReference only, by shahidirfan | ● | ● | – | – | – | – | 2/6 |
| Coursera Course ScraperReference only, by scrapestorm | ● | ● | – | – | – | – | 2/6 |
| Coursera Transcript ScraperReference only, by scrapersdelight | ● | – | – | – | – | ● | 2/6 |
| Coursera Search ScraperReference only, by piotrv1001 | ● | – | – | – | – | – | 1/6 |
| Coursera ScraperReference only, by antonionduarte | ● | ● | – | – | – | – | 2/6 |
| Tools returning it | 6 | 4 | 0 | 0 | 1 | 1 |
Field dictionary: the exact keys
The same core field has a different key in each Actor's output. Map these before you merge datasets; a dash means the published schema has no matching key. Need a field that is not listed here, such as email? Search every Coursera Actor by field.
| Core field | Coursera Course & Specializati… |
|---|---|
| name | name, partnerName |
| partner | partnerName |
| difficulty | – |
| avg | – |
| learner | learnerCount |
| course | – |
Download this comparison: CSV · JSON (every tool with a published schema, matching keys per core field, price and score).
All 9 tools, scored
Catalogue Actors link to their detail pages; the score (0 to 100) is the published formula, identical for every tool. Other Store tools follow in their own table, for reference. Price is the published primary-result rate per 1,000 (the Free-plan rate where the price is tiered; higher Apify plans pay less); start events and platform usage are excluded.
| Sample fields | ||||||
|---|---|---|---|---|---|---|
| 71 | Coursera Course & Specialization Catalog Scraper Catalogue Actor, pay per event | name, partnerName, learnerCount | 7 | $0.99 | 2 runs, too few to rate | Nov 2026 |
Other Store tools, for reference
Scored with the same published formula and listed for comparison only; this site does not link or recommend them.
| Sample fields | ||||||
|---|---|---|---|---|---|---|
| 76 | Coursera Scraper Reference only, by shahidirfan | name, partners, avgProductRating | 10 | $1.00 | 100% of 117 runs | Aug 2026 |
| 73 | Coursera Course Scraper Reference only, by scrapestorm | name, partners, id | 11 | $0.05 | 97% of 29 runs | Mar 2025 |
| 73 | Coursera Transcript Scraper Reference only, by scrapersdelight | course_title, course_slug, course_id | 17 | $1.00 | 100% of 30 runs | Jul 2026 |
| 71 | Coursera Search Scraper Reference only, by piotrv1001 | name, imageUrl, avgProductRating | 8 | $1.00 | 100% of 29 runs | Oct 2026 |
| 68 | Coursera Scraper Reference only, by fatihtahta | No published schema | – | $1.00 | 100% of 29 runs | Apr 2026 |
| 60 | Coursera Search Scraper Reference only, by powerai | No published schema | – | $4.99 | 100% of 28 runs | Nov 2025 |
| 59 | Coursera Scraper Reference only, by antonionduarte | name, partners, id | 14 | $12 | 100% of 717 runs | Jul 2026 |
| 55 | Coursera Course Scraper Spider Reference only, by getdataforme | No published schema | – | $10 | 100% of 29 runs | Aug 2026 |
What to check before you choose
Learning catalog planners can organize Coursera courses and specializations by partner, difficulty and learner interest. These records help build program shortlists and compare offerings without mixing catalog metadata with learner activity.
Catalog extraction suits research into publicly listed learning programs where collection is authorized. Coursera for Business APIs serve an organization's own programs and learner data, while the legacy public catalog endpoint has an unresolved documentation gap.
Checklist
- Use recordType to distinguish courses from specializations in Coursera Course & Specialization Catalog Scraper before combining ratings or learner counts.
- Check how partnerName, difficultyLevel, avgRating and learnerCount are populated; their published descriptions leave normalization and missing-value rules unexplained.
- Match the API route to your access: customer integrations use the developer portal and contract-based credentials, while the legacy catalog endpoint lacks its former documentation site.
Where the data is incomplete
Coursera Course & Specialization Catalog Scraper lists catalog names, partners, difficulty, ratings, learner counts and course links. Its published schema omits instructor details, syllabus content, transcripts, pricing and individual learner progress.
The legacy public Catalog API endpoint answered at the latest check, but its former documentation site no longer resolves. Confirm its current behavior before depending on it, and use the customer API documentation for integrations involving your organization's programs and learners.
Official API route
Coursera Developer Portal (Coursera for Business APIs)
Coursera's developer portal lists the Coursera For Business API, OAuth credentials and an xAPI integration, which use OAuth client-credential tokens and serve an organization's own programs and learner data. The legacy public Catalog API endpoint (api.coursera.org/api/courses.v1) still answered on 2026-11-11, but its former documentation site build.coursera.org no longer resolves.
Price. No public self-serve price is published; access is tied to an enterprise, campus or government Coursera contract.
Limits. Limits are not published. App keys are created in the developer portal by signed-in customer accounts.
Free, open-source and no-code routes
- Free monthly credit. Apify's Free plan includes $5 of usage a month (Apify pricing, checked 2026-11-11). At the Free-plan rate of Coursera Course & Specialization Catalog Scraper ($0.99 per 1,000 results) that covers at most about 5,050 results a month, less start events and platform usage.
- No code. Every catalogue Actor runs from a form in Apify Console, and the results download as CSV, Excel or JSON (Apify datasets). The scored tool table links each one.
- Open source. Popular public GitHub repositories named after Coursera that scrape, download or export its data (plain names; not run or endorsed here):
- coursera-dl/coursera-dl: 9,672 stars, last push May 11, 2024, LGPL-3.0 licence, Python.
Can I scrape Coursera?
It depends on what you collect and how. Coursera's terms prohibit scraping and text or data mining, including for AI training, without prior written consent. Obtain that consent before collecting catalog content through scraping. Here is what Coursera's own files say, with the date each was read. This is general information, not legal advice.
- robots.txt
- It lists 25 disallowed paths for all crawlers, including /maestro/api/, /api/, /search, /business/xmlrpc.php, /business/wp-content/uploads/, /business/search, /business/teams/search, /organizations/. 12 crawlers get their own rules. Read November 13, 2026: coursera.org/robots.txt. robots.txt is a crawling convention, not a contract.
- Terms
- Read Coursera's terms for the clauses on automated access; they could not be quoted here from a plain request.
- Before you collect
- Keep to public data, do not bypass logins or access controls, and check whether personal data is involved. The access checklist walks through it.
How to scrape Coursera
- Open Coursera Course & Specialization Catalog Scraper and review the Store listing for its accepted catalog selection inputs.
- After obtaining the required collection permission, configure a narrow catalog request using the documented controls and start the collection.
- Inspect recordType, partnerName, difficultyLevel and courseUrl, then export the records that fit your learning catalog.
Call Coursera Course & Specialization Catalog Scraper from code
The example input uses the Actor's published defaults; set your own Coursera query before you run it. You need an Apify API token.
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.
Questions people ask
Can I separate courses from specializations?
Coursera Course & Specialization Catalog Scraper covers both and includes recordType in its published schema. Inspect the returned labels before splitting the export into separate catalogs.
Does the catalog export include transcripts or syllabuses?
The published schema lists catalog metadata without transcripts or syllabus content. Look for explicit content coverage and the required permissions if your project needs learning materials.
Can the business API report learner activity?
Coursera for Business APIs and the xAPI integration serve an organization's own programs and learner data. Access uses customer credentials and is tied to an enterprise, campus or government contract.
Can I build a new integration on the legacy catalog endpoint?
The legacy public Catalog API endpoint answered at the latest check, while its former documentation site no longer resolves. Verify the behavior your integration needs and account for the documentation gap before depending on it.
What is the cheapest catalogue Actor for Coursera data?
Coursera Course & Specialization Catalog Scraper lists $0.99 per 1,000 results (pay per event), with 7 fields in its published output schema. Start events and platform usage are billed separately. Checked 2026-11-12.
Which Coursera scraper returns the most core fields?
Coursera Course & Specialization Catalog Scraper covers 3 of the 6 core Coursera fields this page tracks (name, partner, difficulty, avg, learner, course), based on its published output schema.
Does Coursera have an official API?
Limited access: Coursera's developer portal lists the Coursera For Business API, OAuth credentials and an xAPI integration, which use OAuth client-credential tokens and serve an organization's own programs and learner data. The legacy public Catalog API endpoint (api.coursera.org/api/courses.v1) still answered on 2026-11-11, but its former documentation site build.coursera.org no longer resolves. No public self-serve price is published; access is tied to an enterprise, campus or government Coursera contract.
Is it legal to scrape Coursera?
It depends on what you collect and how. Coursera's terms prohibit scraping and text or data mining, including for AI training, without prior written consent. Obtain that consent before collecting catalog content through scraping. Read Coursera's terms (https://www.coursera.org/about/terms) before you collect, and check whether personal data is involved. This is general information, not legal advice.
More on Coursera
Related websites
Sources
- Coursera Course & Specialization Catalog Scraper on Apify Store
- Coursera Developer Portal (Coursera for Business APIs) documentation
- Official source, checked 2026-11-11
- Coursera terms
Cite this page
Scraper Finder. "How to get Coursera data." https://scraperfinder.com/sites/coursera/ (data checked 2026-11-12).
Highest-scoring catalogue Actor
Coursera Course & Specialization Catalog Scraper: 3 of 6 core fields, $0.99 per 1,000 results, score 71. The highest score overall is 76 (Coursera Scraper, a Store tool from another publisher); both are in the table above.