Udemy Scraper avatar

Udemy Scraper

Pricing

$13.99/month + usage

Go to Apify Store
Udemy Scraper

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

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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

IndustryApplication
EducationAnalyze course offerings and trends across programming topics
Market ResearchTrack course pricing, ratings, and student enrollment patterns
Competitive AnalysisMonitor instructor performance and course positioning
Content StrategyIdentify gaps in course coverage and trending subjects
HR & TrainingFind top-rated courses for employee upskilling programs

๐Ÿ“ฅ Input parameters

URL Scraping

ParameterTypeDescription
startUrlsarrayUdemy topic page URLs (e.g., /topic/python/) or individual course URLs
ParameterTypeDescription
searchesarrayKeywords to search (converted to topic pages, e.g., "python" โ†’ /topic/python/)

Limits

ParameterTypeDefaultDescription
maxItemsinteger50Maximum total number of courses to scrape
maxPagesinteger10Maximum pages per topic (12 courses per page)

Options

ParameterTypeDefaultDescription
includeDetailsbooleanfalseVisit each course detail page for additional data (description, syllabus)

Proxy

ParameterTypeDescription
proxyobjectProxy configuration. Residential proxies recommended for best results

Advanced

ParameterTypeDefaultDescription
requestTimeoutinteger30HTTP request timeout in seconds
debugModebooleanfalseEnable 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

CategoryFields
Basicid, title, url, headline, isPaid, price
RatingsavgRating, numReviews, numSubscribers
ContentnumPublishedLectures, contentInfo, contentInfoShort, instructionalLevel
InstructorinstructorName, instructorUrl
MediaimageUrl
DatespublishedTime, lastUpdateDate, created, scrapedAt
Classificationcategory, subcategory, locale
BadgesisBestseller, isHighlyRated, isNew
LearningobjectivesSummary, captionLanguages
Detail pagedescription, 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 ApifyClient
client = 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

MetricValue
Courses per page12
Speed (listing only)~12 courses/second
Speed (with details)~1 course every 2-3 seconds
Supported URL typesTopic pages (/topic/...)

๐Ÿ’ก Tips for best results

  1. Use topic pages: Topic pages (e.g., /topic/python/) provide the richest listing data including ratings, reviews, student counts, and learning objectives
  2. Start without detail enrichment: Listing data is already comprehensive โ€” enable includeDetails only if you need full descriptions and syllabus
  3. Keywords become topics: Search queries are converted to topic URLs (e.g., "web development" โ†’ /topic/web-development/)
  4. Combine multiple searches: Pass multiple keywords in searches to 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!