Coursera Course Scraper
Pricing
from $1.50 / 1,000 course results
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
Maintained by CommunityActor 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 get | Features |
|---|---|
|
|
How to use Coursera Course Scraper
- Create a free Apify account.
- Open Coursera Course Scraper in Apify Console.
- Paste one or more course URLs into Course URLs — the field is prefilled with a working example.
- Optionally turn off the Full syllabus, Top reviews, or Related courses sections, or lower Max related courses.
- Click Save & Start.
- 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
- Add the course URLs you are considering to
targets. - Run with the defaults and open the Engagement dataset view.
- Compare
rating,rating_count,enrollment_count, andcontent_satisfaction_score, then export the shortlist to CSV.
2. Rebuild a course outline in your own LMS
- Add the course URL to
targetsand keep Full syllabus on. - Read
syllabus— each module haslectures,assessments, andsupplementswithname,type, andduration. - Map the modules into your LMS structure, using
total_lecture_durationfor time estimates.
3. Build a searchable training catalog
- Paste your catalog's course URLs into
targets. - Use
skills,domains,partners, anddifficulty_levelas facets. - Feed the JSON into your search index or recommendation engine with
skills[].nameandrelated_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, andpage_views_last_monthchange over time. - Some fields can be empty when the course has none — for example
dubbed_languages,recommended_background, orreviews.
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.