Coursera Course Scraper avatar

Coursera Course Scraper

Pricing

from $1.50 / 1,000 course results

Go to Apify Store
Coursera Course Scraper

Coursera Course Scraper

Extract complete Coursera course details from any course URL - description, instructors, ratings, reviews, and the full module-by-module syllabus.

Pricing

from $1.50 / 1,000 course results

Rating

0.0

(0)

Developer

Harpoon

Harpoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Coursera Course Scraper — turn any Coursera course URL into a complete, structured record

Paste one or more Coursera course URLs and get back everything the course page shows: the full description, level, workload and duration, instructors, partner university or company, skills, subject areas, ratings and review counts, the star breakdown, learner reviews, FAQs, and the complete module-by-module syllabus. Each URL produces exactly one clean row in the dataset — ready to export to JSON, CSV, Excel, or XML, or pull straight into your own app.

What can Coursera Course Scraper do?

  • Extract a complete course profile from a single course URL
  • Capture the full syllabus — every module with its lectures, assessments, and supplements
  • Collect instructors, partners, skills, and subject domains
  • Include ratings, the five-star breakdown, review counts, and the top learner reviews
  • List the programs the course belongs to and the related courses shown alongside it
  • De-duplicate URLs and scrape several courses in parallel
  • Export results to JSON, CSV, Excel, or XML
  • Run via the API, schedule runs, and integrate through webhooks or MCP

What data can I extract?

What you getFeatures
  • Course — id, slug, url, name, full description, type, status, difficulty level, estimated workload, total duration, lecture duration, certificate types, languages (primary, subtitle, translated, dubbed)
  • Instructors — name, title, department, courses taught, learners reached, photo, website
  • Partners — university/company name, short name, description, website, logos
  • Subjects & skills — domains and subdomains, skill tags with a tool/software flag, learning objectives, recommended background
  • Ratings & reviews — average rating, rating count, review count, five-to-one-star breakdown, content-satisfaction score, instructor rating, top reviews
  • Syllabus — modules with lectures, assessments, and supplements, each with id, name, slug, type, and duration
  • Programs — the wrapping specialization/professional certificate and its course count
  • Related courses — names, slugs, and URLs of nearby courses
  • Media — course image and thumbnail URLs
  • One row per course URL — no pagination, no filters to configure
  • Everything on by default; toggle the heavy sections off to shrink rows
  • Cap the related-courses list per row
  • Export to JSON, CSV, Excel, XML
  • Dataset views: Overview and Engagement
  • API access, webhooks, SDKs
  • LLM-ready output for MCP, ChatGPT, Claude

How to use Coursera Course Scraper

  1. Create a free Apify account.
  2. Open Coursera Course Scraper in Apify Console.
  3. Paste one or more course URLs into Course URLs — the field is prefilled with a working example.
  4. Optionally turn off the Full syllabus, Top reviews, or Related courses sections, or lower Max related courses.
  5. Click Save & Start.
  6. Open the Storage tab and download the dataset as JSON, CSV, Excel, or XML.

Input

There is one way to run it: course URLs. Each URL yields exactly one row, so the form needs nothing else to run. The detail toggles only control how much each row contains.

  • targets — the Coursera course URLs (or bare course slugs), one per line. Duplicates are removed.
  • include_syllabus — keep the module-by-module syllabus (on by default).
  • include_reviews — keep the learner reviews (on by default).
  • include_related_courses — keep the related-courses list (on by default).
  • max_related_courses — how many related courses to keep per row (default 12).

Example input

{
"targets": [
"https://www.coursera.org/learn/cybersecurity-job-search-resume-and-interview-prep"
],
"include_syllabus": true,
"include_reviews": true,
"include_related_courses": true,
"max_related_courses": 12
}

See the Input tab above for every parameter.

Output

Results land in the default dataset under the Storage tab. View them as a table (use the Overview or Engagement view), or download as JSON, CSV, Excel, or XML.

Real, trimmed output for one course (arrays shortened and some long text fields omitted for readability):

{
"id": "05KvWJnaEe6ZVg6lscp7ZQ",
"slug": "cybersecurity-job-search-resume-and-interview-prep",
"url": "https://www.coursera.org/learn/cybersecurity-job-search-resume-and-interview-prep",
"name": "Cybersecurity Job Search, Resume, and Interview Prep",
"course_type": "STANDARD_COURSE",
"course_status": "LAUNCHED",
"difficulty_level": "BEGINNER",
"estimated_workload": "4 weeks of study, 2-3 hours/week",
"duration": "PT10H53M35S",
"total_lecture_duration": "PT3H18M35S",
"certificate_types": ["SPECIALIZATION", "VERIFIED_CERTIFICATE"],
"primary_languages": ["en"],
"enrollment_count": 11052,
"page_views_last_month": 23560,
"launched_at": "2024-04-10T00:25:14.6Z",
"rating": 4.844444444444444,
"rating_count": 135,
"review_count": 33,
"rating_breakdown": {
"five_star": 122,
"four_star": 11,
"three_star": 3,
"two_star": 0,
"one_star": 1
},
"content_satisfaction_score": 95.22184300341297,
"content_satisfaction_ratings_count": 1758,
"average_instructor_rating": 4.62,
"instructor_rating_count": 27,
"instructors": [
{
"id": "101259896",
"name": "IBM Skills Network Team",
"short_name": "ibm-skills-network",
"courses_taught": 99,
"learners_reached": 3086621,
"photo_url": "https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera-instructor-photos.s3.amazonaws.com/37/77670911ef45c38688f2987b943f78/SN_200x200_V3.jpg"
}
],
"partners": [
{
"id": "348",
"name": "IBM",
"short_name": "ibm-skills-network",
"website": "http://ibm.com/training",
"logo_url": "https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/http://coursera-university-assets.s3.amazonaws.com/54/a2cad57ff54d7ca2b771edc7572b46/IBM-Logo-Blk.png",
"square_logo_url": "http://coursera-university-assets.s3.amazonaws.com/bb/f5ced2bdd4437aa79f00eb1bf7fbf0/IBM-Logo-Blk---Square.png"
}
],
"domains": [
{
"domain_id": "information-technology",
"domain_name": "Information Technology",
"subdomain_id": "security",
"subdomain_name": "Security"
}
],
"skills": [
{ "id": "writing", "name": "Writing", "is_tool_software": false },
{ "id": "presentations", "name": "Presentations", "is_tool_software": false },
{ "id": "job-analysis", "name": "Job Analysis", "is_tool_software": false }
],
"learning_objectives": [
"Explain cybersecurity roles, titles, responsibilities, and required skills and competencies, and explore the NICE framework",
"Create a resume, portfolio, elevator pitch, and cover letter and apply best practices to prepare for a cybersecurity job interview"
],
"primary_specialization": {
"id": "child~lT6-h5CdRjm1hGmNxH5tOw",
"name": "IBM Cybersecurity Analyst",
"slug": "ibm-cybersecurity-analyst",
"product_variant": "PROFESSIONAL_CERTIFICATE",
"headline": "Launch your career as a cybersecurity professional",
"subheader": "Build job-ready skills and prep for the CompTIA Security+ exam with this program. ",
"course_count": 14
},
"syllabus": [
{
"id": "Xi6px",
"name": "Getting Ready for a Cybersecurity Career",
"total_duration": "PT3H29M38S",
"total_lecture_duration": "PT1H4M38S",
"lectures": [
{
"id": "af836",
"name": "Course Introduction",
"slug": "course-introduction",
"type": "LECTURE",
"duration": "PT3M38S",
"contains_ai_grading": false
}
],
"assessments": [
{
"id": "X2uMj",
"name": "Lesson 1 Practice Quiz: Cybersecurity as a Career",
"slug": "lesson-1-practice-quiz-cybersecurity-as-a-career",
"type": "ASSIGNMENT",
"duration": "PT10M",
"contains_ai_grading": false
}
],
"supplements": [
{
"id": "kpS3m",
"name": "Prerequisites and Course Syllabus",
"slug": "prerequisites-and-course-syllabus",
"type": "SUPPLEMENT",
"duration": "PT2M",
"contains_ai_grading": false
}
]
}
],
"faqs": [
{
"question": "When will I have access to the lectures and assignments?",
"answer": "To access course materials, assignments, and earn a Certificate, you'll need to purchase the Certificate experience when you enroll in a course."
}
],
"reviews": [
{
"id": "25637895~COURSE!~05KvWJnaEe6ZVg6lscp7ZQ",
"author_name": "CC",
"rating": 5,
"comment": "This was so filled with awesome-ness!! Happy I stuck with it! You will be too;-)",
"created_at": "2025-09-22T00:00:00Z"
}
],
"related_courses": [
{
"id": "YlfzdXJKEeyKjA79ESMRTQ",
"name": "Introduction to Cybersecurity Essentials",
"slug": "introduction-to-cybersecurity-essentials",
"url": "https://www.coursera.org/learn/introduction-to-cybersecurity-essentials",
"product_type": "COURSE"
},
{
"id": "0FMl8S8GEemvsQrYkluC5g",
"name": "Introduction to Cybersecurity Tools & Cyberattacks",
"slug": "introduction-cybersecurity-cyber-attacks",
"url": "https://www.coursera.org/learn/introduction-cybersecurity-cyber-attacks",
"product_type": "COURSE"
}
],
"image_url": "https://s3.amazonaws.com/coursera-course-photos/d5/c1028bad674b91a4f4cac6b63340cf/200700-Cybersecurity-Careers-Logo-Image.png",
"thumbnail_url": "https://s3.amazonaws.com/coursera_assets/meta_images/generated/XDP/XDP~COURSE!~cybersecurity-job-search-resume-and-interview-prep/XDP~COURSE!~cybersecurity-job-search-resume-and-interview-prep.jpeg"
}

Field names are lowercase snake_case, and the input keys match them.

What can you do with the data?

Each recipe names the exact input and fields to use.

1. Shortlist courses for a curriculum

  1. Add the course URLs you are considering to targets.
  2. Run with the defaults and open the Engagement dataset view.
  3. Compare rating, rating_count, enrollment_count, and content_satisfaction_score, then export the shortlist to CSV.

2. Rebuild a course outline in your own LMS

  1. Add the course URL to targets and keep Full syllabus on.
  2. Read syllabus — each module has lectures, assessments, and supplements with name, type, and duration.
  3. Map the modules into your LMS structure, using total_lecture_duration for time estimates.

3. Build a searchable training catalog

  1. Paste your catalog's course URLs into targets.
  2. Use skills, domains, partners, and difficulty_level as facets.
  3. Feed the JSON into your search index or recommendation engine with skills[].name and related_courses.

How much does Coursera Course Scraper cost?

There is no per-course fee — runs are billed as standard Apify platform usage based on the compute they consume. Fetching one course is a single lightweight request, so a run of a few hundred course URLs typically finishes in under a minute on the default 1 GB memory and uses only a fraction of a compute unit.

TODO: confirm the exact platform-usage rate and any pay-per-result pricing on the Pricing tab before publishing.

See the Pricing tab for current rates and plan discounts.

FAQ

Do I need an account, cookies, or an API key? No Coursera account, cookies, or keys are needed — only a free Apify account. Public course data only.

Can I scrape private, paid, or restricted content? No. The Actor returns the public information shown on a course page; it does not access paid materials, videos, quizzes, or anything behind a login.

How many courses can I get? One row per course URL. There is no fixed cap — add as many URLs as you like. Courses are fetched several at a time, so very large lists simply take longer.

Why did one of my URLs return nothing? A URL must point at a single course (for example coursera.org/learn/<slug>). Pages for specializations, professional certificates, or degrees are not single courses and will be skipped with a message in the run log. Removed or renamed courses are skipped too — one bad URL never stops the rest of the run.

Are the reviews complete? No. reviews contains the reviews shown on the course page, not every review ever left.

What do duration and total_lecture_duration mean? They are ISO 8601 duration strings, e.g. PT10H53M35S is 10 hours, 53 minutes, 35 seconds.

Is it legal to scrape Coursera? The Actor reads publicly available course pages. You are responsible for how you use the data and for complying with Coursera's terms and applicable laws. See Apify's guidance on legal and ethical scraping.

Can I use it with the API / SDKs / MCP? Yes — see the API tab above, or connect through the Apify MCP server. Field names and input keys are lowercase snake_case, so they map cleanly into LLM and agent workflows.

Something isn't working. Open an issue in the Issues tab with the course URL and a copy of the run log. Individual failures are logged and skipped, so a partial dataset usually means one or more URLs were invalid or unavailable.

Notes and limitations

  • One course per URL. Specialization, professional-certificate, and degree pages are not single courses and are not supported — use the URLs of the individual courses inside them.
  • Reviews are a subset. Only the reviews displayed on the course page are returned.
  • Related courses are capped by max_related_courses (default 12).
  • Durations are ISO 8601 strings, not seconds.
  • Counts are point-in-time. rating, rating_count, enrollment_count, and page_views_last_month change over time.
  • Some fields can be empty when the course has none — for example dubbed_languages, recommended_background, or reviews.

Run locally

go run ./cmd/actor

Input is read from the Apify key-value store; see INPUT_SCHEMA.json.

Support

Found a bug or have feedback? Open an issue in the Issues tab of the Actor.