Coursera Course Search Scraper

Scrape public Coursera search results with course titles, partners, ratings, reviews, skills, levels, durations, images, and URLs.

Data fields

FieldTypeDescription
querystring | nullValue exported as query.
courseTitlestringValue exported as courseTitle.
urlstringValue exported as url.
partnerNamesarrayValue exported as partnerNames.
productTypestring | nullValue exported as productType.
ratingnumber | nullValue exported as rating.
reviewCountinteger | nullValue exported as reviewCount.
reviewCountTextstring | nullValue exported as reviewCountText.

Input preview

queriesSearch queries
startUrlsCoursera search URLs
languageLanguage filter
productTypeProduct type filter
maxItemsMaximum course results per query
maxPagesPerQueryMaximum pages per query

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Extract public Coursera course search results for market research, catalog monitoring, lead generation, SEO analysis, and learning-content intelligence.

What does Coursera Course Search Scraper do?

Coursera Course Search Scraper collects public course cards from Coursera search pages.

It turns search phrases such as data science, python, or project management into structured dataset rows.

Each row includes the course courseTitle, provider, URL, image, rating, review text, level, duration, skills, type, position, and timestamp.

Use it when you need repeatable course catalog data without manually copying search pages.

Who is it for?

  • ๐ŸŽ“ L&D teams comparing learning vendors and course coverage.
  • ๐Ÿ“Š Edtech analysts tracking course supply in fast-moving skill categories.
  • ๐Ÿง‘โ€๐Ÿซ Course creators researching competitive course titles and positioning.
  • ๐Ÿงฉ Course aggregators building searchable education catalogs.
  • ๐Ÿ”Ž SEO teams monitoring Coursera result pages for topic clusters.
  • ๐Ÿข Talent teams mapping skills to available learning options.

Why use this actor?

Coursera has a large public education catalog.

Manual research is slow when you need many topics.

This actor gives you clean rows that are easy to filter, export, enrich, and compare.

You can run the same query list weekly or monthly and watch changes in course availability.

What data can you extract?

Field Description
query Search phrase connected to the course result.
courseTitle Course, certificate, degree, or project title.
partnerNames Coursera partners or institutions when visible.
url Absolute Coursera URL.
imageUrl Public card image URL when visible.
rating Numeric rating when visible.
reviewCount Parsed numeric review count when visible.
reviewCountText Review count text, for example 44K reviews.
enrollmentText Enrollment text when present on the card.
level Beginner, Intermediate, Advanced, or related level text.
duration Duration shown on the card.
skills Skills listed on the search result card.
descriptionSnippet Short course description or summary when visible.
tags Additional public tags or metadata labels from the result card.
sourceUrl Search results page URL that produced the record.
productType Course, Specialization, Professional Certificate, Degree, or related type.
position Saved result order.
scrapedAt ISO timestamp for the scrape.

How to use it

  1. Open the actor on Apify.
  2. Add one or more Coursera search queries.
  3. Optionally add direct Coursera search URLs.
  4. Set maxItems to the number of course results you need.
  5. Run the actor.
  6. Export the dataset as JSON, CSV, Excel, XML, or HTML.

Input settings

Setting JSON key What it does
Search queries queries One or more course-market phrases.
Direct search URLs startUrls Optional public Coursera /search URLs.
Language language Optional Coursera language filter.
Product type productType Optional course, specialization, certificate, project, or degree filter.
Result cap maxItems Maximum saved rows per query or direct URL.
Page cap maxPagesPerQuery Pagination safety limit for each query.
Run-time cap maxRunSeconds Whole-run time limit including retries and saving.
Connection proxyConfiguration Optional Apify Proxy configuration.

Search queries

Add course-market phrases such as:

  • data science
  • python
  • project management
  • generative ai
  • cybersecurity

Coursera search URLs

You can also paste Coursera search URLs.

This is useful when you already have a filtered public search page.

Language filter

Use the optional language field when you want Coursera language-filtered results.

Maximum course results

maxItems controls the maximum saved records for each query or direct search URL.

The default is intentionally small so first runs stay inexpensive.

Maximum pages and run time

maxPagesPerQuery caps pagination for each query. maxRunSeconds caps the whole run, including retries. Near the time limit the Actor stops accepting new pages, saves completed rows, and records any unfinished source in the run summary.

Proxy configuration

The default run uses a direct connection.

Enable Apify Proxy only if your network path is blocked or unreliable.

Example input

{
  "queries": ["data science", "python"],
  "maxItems": 25,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}

Example output

{
  "query": "data science",
  "courseTitle": "Python for Data Science, AI & Development",
  "partnerNames": ["IBM"],
  "url": "https://www.coursera.org/learn/python-for-applied-data-science-ai",
  "imageUrl": "https://d3njjcbhbojbot.cloudfront.net/...",
  "rating": 4.6,
  "reviewCount": 44000,
  "reviewCountText": "44K reviews",
  "enrollmentText": null,
  "level": "Beginner",
  "duration": "1 - 3 Months",
  "skills": ["Data Import/Export", "Python Programming", "NumPy"],
  "descriptionSnippet": "Build data science and AI skills with Python.",
  "tags": ["Course"],
  "sourceUrl": "https://www.coursera.org/search?query=data%20science",
  "productType": "Course",
  "position": 1,
  "scrapedAt": "2026-07-03T15:00:00.000Z"
}

Tips for better results

  • Use specific skill phrases rather than very broad single words.
  • Run separate queries for separate market segments.
  • Keep a fixed query list for recurring trend monitoring.
  • Export CSV for spreadsheet review.
  • Export JSON for downstream enrichment pipelines.

Use cases

Course catalog monitoring

Track how many Coursera results exist for important skills.

Compare titles, providers, durations, and levels across topics.

Competitive intelligence

Course creators can inspect competing course titles and positioning.

Analysts can monitor how partner institutions appear across keywords.

Skill supply research

Learning teams can identify which skills are well-covered and which are underserved.

SEO and content planning

Content teams can discover course vocabulary, provider names, and skill clusters.

Integrations

Send results to Google Sheets for editorial review.

Load JSON into a warehouse for recurring catalog snapshots.

Use the Apify API to trigger scheduled weekly runs.

Connect the dataset to Make, Zapier, or n8n for automated alerts.

API examples

Node.js

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/coursera-course-search-scraper').call({
  queries: ['data science'],
  maxItems: 25
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/coursera-course-search-scraper').call(run_input={
    'queries': ['python'],
    'maxItems': 25,
})
print(run['defaultDatasetId'])

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~coursera-course-search-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"queries":["project management"],"maxItems":25}'

MCP usage

Use the Apify MCP server to run this actor from AI tools.

Claude Code example URL:

https://mcp.apify.com/?tools=fetch_cat/coursera-course-search-scraper

Claude Code command:

claude mcp add apify-coursera "https://mcp.apify.com/?tools=fetch_cat/coursera-course-search-scraper"

Claude Desktop JSON configuration:

{
  "mcpServers": {
    "apify-coursera": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.apify.com/?tools=fetch_cat/coursera-course-search-scraper"]
    }
  }
}

Example prompts:

  • "Run Coursera Course Search Scraper for data science and summarize common providers."
  • "Collect 50 Coursera cybersecurity courses and group them by level."
  • "Compare Python and Java course search results from Coursera."

Scheduling

Create a scheduled Apify task for recurring monitoring.

Weekly or monthly schedules are useful for market research.

Keep query lists stable when you want trend comparisons.

Limits

The actor extracts public search-result data visible on Coursera pages.

It does not log in.

It does not enroll in courses.

It does not extract private learner data.

It may return fewer rows than requested if Coursera has fewer public results for a query.

If Coursera temporarily blocks a request or a source fails, completed rows are retained and the RUN_SUMMARY key-value record explains the affected source. A run with no matching public cards can validly finish with zero rows; a run where every requested source fails reports an error instead.

Troubleshooting

The run returns fewer items than expected

Coursera may have fewer visible results for your query, or duplicate courses may appear across pages.

Try a broader query or multiple related queries.

The run fails with connection errors

Retry with Apify Proxy enabled.

If the issue persists, reduce maxItems and test with one query.

Some fields are empty

Coursera does not show every field on every result card.

Fields such as enrollment count or image URL can be missing for some courses.

Data quality notes

Values are normalized from public result cards.

Ratings are numbers when visible.

Review counts are preserved as display text because Coursera may abbreviate them.

Skills are split into arrays for easier filtering.

Legality

This actor collects publicly available course search information.

You are responsible for using the data legally and respecting Coursera's terms, privacy rules, and applicable laws.

Do not use the actor to collect private account data.

Support

If a run fails or the output looks wrong, use the Actor page to report a bug. Include the Apify run ID or run URL, input JSON, expected output, actual output, and one reproducible public URL (for example, a public Coursera search URL). Do not include account credentials or private learner data.

Privacy and data handling

This Actor only requests the permissions needed to run the input you provide. It uses your input (such as URLs, search terms, identifiers, filters, and limits) only to fetch the requested public data from the relevant source site or API for this Actor, then writes results to your Apify dataset/key-value store.

Data may pass through Apify platform services and Apify Proxy during the run, and requests are sent only to the target site or public data provider required for this Actor's results. FetchCat does not send your inputs or outputs to advertising networks, data brokers, or model-training services, and does not retain run data outside Apify storage after the run except when you explicitly share run details for transient support debugging.

You are responsible for using this Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs. Review the output before storing, sharing, or combining it with other data.

Common questions

Questions and answers reused from the canonical actor README.

Can I search multiple Coursera topics in one run?

Yes. Add multiple values to queries and set a large enough maxItems.

Can I scrape a direct Coursera search URL?

Yes. Paste it into startUrls.

Does this actor need a Coursera account?

No. It targets public search results only.

Can I get course reviews?

No. This version extracts search result cards, not detailed review pages.

Can I use proxies?

Yes. Use the proxy configuration field if needed.