Codecademy Course & Learning Path Scraper avatar
Codecademy Course & Learning Path Scraper

Pricing

Pay per usage

Go to Apify Store
Codecademy Course & Learning Path Scraper

Codecademy Course & Learning Path Scraper

Scrape Codecademy courses and learning paths with titles, descriptions, skill levels, durations, syllabi, and pricing. Great for EdTech research and curriculum analysis.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Fortuitous Pirate

Fortuitous Pirate

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Categories

Share

Codecademy Course Scraper

Apify actor to scrape Codecademy course catalog, courses, and learning paths.

Features

  • Scrape course catalog with JSON-LD extraction
  • Filter by programming language or subject category
  • Optional detailed scraping (visits individual course pages)
  • Filter for free courses only
  • Extracts: name, description, duration, pricing, ratings, syllabus, instructor, skills

Bot Protection

Status: MEDIUM RISK - Cloudflare detected but allows basic requests

The site uses Cloudflare but the JSON-LD data is accessible via standard HTTP requests.

Data Sources

JSON-LD Structured Data

Codecademy embeds excellent structured data in catalog and course pages:

Catalog pages (/catalog, /catalog/language/python):

  • ItemList with Course entries
  • Basic info: name, url, description, duration, free/paid status

Course detail pages (/learn/learn-python-3):

  • Full Course schema with syllabus (hasPart)
  • Instructor info (Person schema)
  • Aggregate ratings
  • Pricing details
  • Skills taught (teaches)
  • Prerequisites

URL Patterns

Catalog: https://www.codecademy.com/catalog
Language: https://www.codecademy.com/catalog/language/{language}
Subject: https://www.codecademy.com/catalog/subject/{subject}
Course: https://www.codecademy.com/learn/{course-slug}
Path: https://www.codecademy.com/learn/paths/{path-slug}

Available Categories

Languages: bash, c, c-plus-plus, c-sharp, flutter, go, html-css, java, javascript, kotlin, php, python, r, ruby, sql, swift

Subjects: artificial-intelligence, cloud-computing, code-foundations, computer-science, cybersecurity, data-analytics, data-engineering, data-science, data-visualization, developer-tools, devops, game-development, information-technology, interview-prep, machine-learning, math, mobile-development, web-design, web-development

Input Schema

{
"scrapeMode": "catalog | courses | paths | all",
"categories": ["python", "javascript"],
"categoryType": "language | subject",
"maxCourses": 100,
"scrapeDetails": false,
"filterFreeOnly": false,
"proxyConfiguration": { "useApifyProxy": true }
}

Output Schema

{
"id": "learn-python-3",
"name": "Learn Python 3",
"url": "https://www.codecademy.com/learn/learn-python-3",
"description": "Learn the basics of Python 3...",
"type": "course | path",
"category": {
"language": "python",
"subject": null
},
"duration": {
"hours": 24,
"iso8601": "PT24H"
},
"pricing": {
"model": "Free | Partially Free | Subscription",
"price": 29.99,
"currency": "USD"
},
"isAccessibleForFree": false,
"rating": {
"average": 4.58,
"count": 11915
},
"instructor": {
"name": "Alisha Grama",
"title": "Senior Instructional Designer",
"bio": "..."
},
"syllabus": [
{ "module": "Hello World", "description": "Get started with Python..." },
{ "module": "Control Flow", "description": "..." }
],
"skills": ["Python", "Data Types", "..."],
"prerequisites": null,
"educationalLevel": "Beginner",
"enrollments": 3216707,
"scrapedAt": "2026-01-28T..."
}

Usage Examples

Scrape main catalog (quick)

{
"scrapeMode": "catalog",
"maxCourses": 50
}

Scrape Python courses with full details

{
"scrapeMode": "catalog",
"categories": ["python"],
"categoryType": "language",
"scrapeDetails": true,
"maxCourses": 100
}

Scrape all free courses

{
"scrapeMode": "catalog",
"filterFreeOnly": true,
"maxCourses": 0
}

Scrape Data Science category

{
"scrapeMode": "catalog",
"categories": ["data-science"],
"categoryType": "subject",
"scrapeDetails": true
}

Local Testing

npm install
node src/main.js
# Check output
ls storage/datasets/default/
cat storage/datasets/default/*.json | head -100

Deploy to Apify

$apify push