Udemy Course Scraper avatar

Udemy Course Scraper

Pricing

from $2.30 / 1,000 results

Go to Apify Store
Udemy Course Scraper

Udemy Course Scraper

Udemy scraper that extracts course data from topic pages and course URLs: titles, ratings, review counts, students, prices, instructors, objectives, requirements, curriculum and caption languages. Our 2026 test run returned 18 courses in 63 seconds, 51 fields each. Export to JSON, CSV or Excel.

Pricing

from $2.30 / 1,000 results

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

1

Bookmarked

57

Total users

13

Monthly active users

2 days ago

Last modified

Share

Udemy Courses Scraper - Pay Per Event

Udemy courses, 49 fields each. Search terms or links. 36% cheaper than the top alternative.

From SilentFlow. Creators of Facebook Search Scraper and JD Products Scraper (#1 for “jd scraper” in Apify Store search), with 890,000+ combined lifetime runs.

Pay only for the data you get! Proxies included, no compute costs.

Extract course data from Udemy including titles, ratings, prices, instructors, student counts, learning objectives, and content details from topic pages.

✨ Why use this scraper?

  • 💰 Pay per result: No compute costs - only pay for data you get
  • 🌐 Proxies included: No need to configure or pay for proxies separately
  • 📚 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

Try Udemy Course Scraper free

SilentFlow · Udemy Course suite
  Udemy Course Scraper
You are here
  Udemy Scraper
Udemy Scraper

🎯 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

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,
"objectives": [
"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, description, isPaid, price, priceAmount, priceCurrency
RatingsavgRating, rating, numReviews, numSubscribers
ContentnumPublishedLectures, numQuizzes, contentInfo, contentInfoShort, contentLengthVideo, estimatedContentLength, instructionalLevel, curriculum
InstructorinstructorName, instructorTitle, instructorUrl, instructorImage
MediaimageUrl, previewUrl
DatespublishedTime, lastUpdateDate, created, scrapedAt
Classificationcategory, categoryUrl, subcategory, subcategoryUrl, topicLabel, locale
BadgesisBestseller, isHighlyRated, isNew, hasCertificate, hasClosedCaption
Learningobjectives, prerequisites, requirements, targetAudiences, captionLanguages

🚀 Examples

Search for Python courses

{
"searches": ["python"],
"maxItems": 50
}

Scrape a specific topic

{
"startUrls": [{"url": "https://www.udemy.com/topic/data-science/"}],
"maxItems": 100
}

Multiple topics in one run

{
"searches": ["machine learning", "web development", "javascript"],
"maxItems": 30
}

💻 Integrations

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("YOUR_USERNAME/udemy-scraper-ppe").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-ppe').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 topicThe courses the topic page lists (5 per topic on our latest run)
SpeedAbout 3.5 seconds per course, each course read in full
Supported URL typesTopic pages (/topic/...) and course pages (/course/...)

💡 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. Every row is complete: Each course comes with its description, objectives, requirements and curriculum, there is nothing to switch on
  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 does each course include? A: Title, headline, full description, price, ratings, reviews, student count, lecture and quiz counts, content hours, level, instructor, category and subcategory, badges, objectives, requirements, target audience, caption languages and the curriculum.

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 gives the courses its page lists, 5 per topic on our latest run. Add more keywords to searches or more topic URLs to startUrls to collect more, and use maxItems to cap the total.

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.

More SilentFlow scrapers

🛒 E-commerce

💼 Jobs

🏠 Real estate

📣 Social media

🏢 Business data

✈️ Travel

🎯 Lead generation

🔎 SEO

🎬 Video

📰 News

🧰 More tools

📬 Support

We're building this scraper for you, your feedback makes it better for everyone!

  • 💡 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!