Udemy Scraper
Pricing
$13.99/month + usage
Udemy Scraper
Scrape Udemy courses with 40+ fields: ratings, reviews, prices, discounts, instructors, subscribers, curriculum, objectives, prerequisites, and more. Search by keyword or browse topic and category pages. Export to JSON, CSV, Excel, or API for market research and education analytics.
Pricing
$13.99/month + usage
Rating
0.0
(0)
Developer

SilentFlow
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Udemy Courses Scraper
Extract course data from Udemy including titles, ratings, prices, instructors, student counts, learning objectives, and content details from topic pages.
โจ Why use this scraper?
- ๐ No login required: Scrape public course data without authentication
- ๐ Rich course data: Ratings, reviews, students, lectures, content hours, objectives, captions, and more
- ๐ท๏ธ Badges and categories: Identify bestsellers, highly rated, and new courses with their categories
- ๐ Flexible input: Search by keywords or provide topic page URLs directly
- โก High reliability: Automatic retry on failures
๐ฏ Use cases
| Industry | Application |
|---|---|
| Education | Analyze course offerings and trends across programming topics |
| Market Research | Track course pricing, ratings, and student enrollment patterns |
| Competitive Analysis | Monitor instructor performance and course positioning |
| Content Strategy | Identify gaps in course coverage and trending subjects |
| HR & Training | Find top-rated courses for employee upskilling programs |
๐ฅ Input parameters
URL Scraping
| Parameter | Type | Description |
|---|---|---|
startUrls | array | Udemy topic page URLs (e.g., /topic/python/) or individual course URLs |
Search
| Parameter | Type | Description |
|---|---|---|
searches | array | Keywords to search (converted to topic pages, e.g., "python" โ /topic/python/) |
Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
maxItems | integer | 50 | Maximum total number of courses to scrape |
maxPages | integer | 10 | Maximum pages per topic (12 courses per page) |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
includeDetails | boolean | false | Visit each course detail page for additional data (description, syllabus) |
Proxy
| Parameter | Type | Description |
|---|---|---|
proxy | object | Proxy configuration. Residential proxies recommended for best results |
Advanced
| Parameter | Type | Default | Description |
|---|---|---|---|
requestTimeout | integer | 30 | HTTP request timeout in seconds |
debugMode | boolean | false | Enable detailed logging |
๐ Output data
Course example
{"id": 2776760,"title": "100 Days of Code: The Complete Python Pro Bootcamp","url": "https://www.udemy.com/course/100-days-of-code/","headline": "Master Python by building 100 projects in 100 days. Learn data science, automation, build websites, games and apps!","isPaid": true,"avgRating": 4.69,"numReviews": 415028,"numSubscribers": 1748154,"numPublishedLectures": 600,"contentInfo": "56.5 total hours","contentInfoShort": "56.5 hours","instructionalLevel": "All Levels","instructorName": "Dr. Angela Yu, Developer and Lead Instructor","instructorUrl": "https://www.udemy.com/user/4b4368a3-b5c8-4529-aa65-2056ec31f37e/","imageUrl": "https://img-c.udemycdn.com/course/480x270/2776760_f176_10.jpg","publishedTime": "2020-10-30T17:18:33Z","lastUpdateDate": "2026-02-28","created": "2020-01-24T10:47:21Z","category": "Development","isBestseller": true,"isHighlyRated": false,"isNew": false,"objectivesSummary": ["You will master the Python programming language by building 100 unique projects over 100 days.","You will learn automation, game, app and web development, data science and machine learning all using Python.","You will be able to program in Python professionally"],"captionLanguages": ["English", "French [Auto]", "Spanish [Auto]", "..."],"scrapedAt": "2026-03-05T10:49:02Z","dataType": "course"}
๐๏ธ Data fields
| Category | Fields |
|---|---|
| Basic | id, title, url, headline, isPaid, price |
| Ratings | avgRating, numReviews, numSubscribers |
| Content | numPublishedLectures, contentInfo, contentInfoShort, instructionalLevel |
| Instructor | instructorName, instructorUrl |
| Media | imageUrl |
| Dates | publishedTime, lastUpdateDate, created, scrapedAt |
| Classification | category, subcategory, locale |
| Badges | isBestseller, isHighlyRated, isNew |
| Learning | objectivesSummary, captionLanguages |
| Detail page | description, author, educationalLevel, courseWorkload, syllabusSections, inLanguage, datePublished, availableLanguages |
๐ Examples
Search for Python courses
{"searches": ["python"],"maxItems": 50}
Scrape a specific topic
{"startUrls": [{"url": "https://www.udemy.com/topic/data-science/"}],"maxItems": 100,"maxPages": 10}
Multiple topics with detail enrichment
{"searches": ["machine learning", "web development", "javascript"],"maxItems": 30,"includeDetails": true}
๐ป Integrations
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("YOUR_USERNAME/udemy-scraper").call(run_input={"searches": ["python"],"maxItems": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['title']} - Rating: {item['avgRating']:.1f} ({item['numSubscribers']} students)")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('YOUR_USERNAME/udemy-scraper').call({searches: ['python'],maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => {console.log(`${item.title} - Rating: ${item.avgRating.toFixed(1)} (${item.numSubscribers} students)`);});
๐ Performance & limits
| Metric | Value |
|---|---|
| Courses per page | 12 |
| Speed (listing only) | ~12 courses/second |
| Speed (with details) | ~1 course every 2-3 seconds |
| Supported URL types | Topic pages (/topic/...) |
๐ก Tips for best results
- Use topic pages: Topic pages (e.g.,
/topic/python/) provide the richest listing data including ratings, reviews, student counts, and learning objectives - Start without detail enrichment: Listing data is already comprehensive โ enable
includeDetailsonly if you need full descriptions and syllabus - Keywords become topics: Search queries are converted to topic URLs (e.g., "web development" โ
/topic/web-development/) - Combine multiple searches: Pass multiple keywords in
searchesto collect courses across different topics in one run
โ FAQ
Q: What data is available without visiting detail pages? A: Listing pages provide title, headline, ratings, reviews, student count, lecture count, content hours, instructor, category, badges, objectives, and caption languages.
Q: Why don't category page URLs work?
A: Category pages (/courses/development/) load course data dynamically. Use topic pages (/topic/python/) instead, which include pre-rendered course data.
Q: How many courses can I scrape?
A: Each topic page shows 12 courses. With maxPages: 100, you can get up to 1,200 courses per topic.
Q: What happens if a page fails? A: The scraper automatically retries. If all attempts fail, it continues with the next page or search query.
๐ฌ Support
We're building this scraper for you, your feedback makes it better for everyone!
- ๐ Found a bug? Open an issue directly on this actor's page, we'll fix it fast
- ๐ก Need a feature? Tell us what's missing and we'll prioritize it
- โ๏ธ Custom solutions: Contact us for enterprise integrations or high-volume needs
We respond to every issue, usually within 24 hours. Don't hesitate, even small suggestions help!