
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape Udemy courses by keyword, category, topic, instructor or course URL: price, rating, students, duration, level, language, curriculum and reviews.
Scrape Udemy courses by keyword, category, topic, instructor or course URL and get clean rows with price, rating, number of students, duration, lectures, level, language, instructors, what you'll learn, the full curriculum and student reviews. No login, no browser: results arrive in seconds and cost a fraction of a cent per course.
python) or paste Udemy URLs (search, category, topic, instructor or course pages).| Field | What it does |
|---|---|
searchQueries | Keywords to search, one search per keyword |
startUrls | Udemy search, category, subcategory, topic, instructor or course URLs |
maxItems | Courses per query or URL (default 20, up to 10,000) |
sortBy | relevance, most-reviewed, highest-rated or newest |
price, minRating, levels, languages, durations | Udemy's own search filters |
includeDetails | Description, requirements, category, topics and more (default on) |
includeCurriculum | Full course outline (default off) |
includeReviews, maxReviewsPerCourse | Student reviews as extra rows (default off) |
{
"searchQueries": ["python"],
"startUrls": [
{ "url": "https://www.udemy.com/courses/development/web-development/?price=price-free" },
{ "url": "https://www.udemy.com/course/complete-python-bootcamp/" }
],
"maxItems": 20,
"minRating": "4.5",
"levels": ["beginner"],
"includeReviews": false
}
| Field | Description |
|---|---|
id, url, slug | Udemy course id and link |
title, headline, description | Course texts |
instructors, instructorNames | Instructor names, job titles and profile links |
price, listPrice, discountPercent, currency, priceText, isFree | Current price and discount |
rating, reviewsCount, ratingDistribution | Average stars, number of ratings and stars breakdown |
studentsCount | Enrolled students |
durationSeconds, durationHours, lecturesCount, quizzesCount, codingExercisesCount, articlesCount | Course size |
level, language, locale, captionLanguages | Audience and language |
lastUpdated, publishedAt | Dates |
category, subcategory, topics, badges, isBestseller | Classification |
learningOutcomes, requirements, targetAudience | What you'll learn, prerequisites, who it's for |
curriculum, sectionsCount | Sections with lectures and durations (when enabled) |
searchQuery, sourceUrl, position, scrapedAt | Where the row came from |
Review rows (recordType: "review") hold reviewId, courseId, courseTitle, rating, content, created, userName, instructorResponse and instructorResponseDate.
{
"id": "2776760",
"url": "https://www.udemy.com/course/100-days-of-code/",
"title": "100 Days of Code™: The Complete Python Pro Bootcamp",
"headline": "Master Python by building 100 projects in 100 days. Learn data science, automation, build websites, games and apps!",
"instructors": [{ "id": "31334738", "name": "Dr. Angela Yu, Developer and Lead Instructor", "jobTitle": "Developer and Lead Instructor", "url": "https://www.udemy.com/user/4b4368a3-b5c8-4529-aa65-2056ec31f37e/" }],
"price": 109.99,
"listPrice": 109.99,
"discountPercent": 0,
"currency": "USD",
"isFree": false,
"rating": 4.68,
"reviewsCount": 438250,
"studentsCount": 1891632,
"durationHours": 56.8,
"lecturesCount": 604,
"level": "All Levels",
"language": "English",
"lastUpdated": "2026-09-29",
"category": "Development",
"subcategory": "Programming Languages",
"topics": ["Python", "Data Science", "Flask", "Web Scraping"],
"badges": ["Bestseller"],
"learningOutcomes": ["You will master the Python programming language by building 100 unique projects over 100 days."],
"requirements": ["No programming experience needed - I'll teach you everything you need to know"],
"ratingDistribution": { "1": 3033, "2": 3197, "3": 18418, "4": 109291, "5": 304311 },
"searchQuery": "python",
"position": 1
}
You pay $2.50 per 1,000 courses and $2.50 per 1,000 reviews, plus a small amount of platform usage (compute and datacenter proxy traffic, typically well under one cent per 1,000 courses). Example: 1,000 courses with details ≈ $2.51. There is no start fee.
Is it legal to scrape Udemy? The actor only reads public course pages that anyone can open without an account. Check Udemy's terms and your local laws for your use case, and handle any personal data (reviewer names) responsibly.
Do I need a Udemy account or a proxy? No account. The default datacenter proxy works; switch to residential only if you see blocked requests.
How many courses can I get? Udemy shows at most 10,000 courses for one search or category. Split big jobs into several queries or subcategories to go further.
Why is a field empty? Not every course fills every field (for example free courses have no discount, and some courses have no requirements). Prices and currency follow the proxy country: US dollars by default, or pick a proxy country to get local prices.
Can I schedule it or use the API? Yes. Schedule runs in the console and read results through the API, webhooks or integrations.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch queries
Keywords to search on Udemy, as you would type them in the search box (for example "python", "excel", "ux design"). Each query runs its own search.
startUrlsarrayOptionalUdemy URLs
Udemy search, category, subcategory, topic, instructor or course pages, for example https://www.udemy.com/courses/search/?q=excel&ratings=4.5, https://www.udemy.com/courses/development/web-development/, https://www.udemy.com/topic/python/, https://www.udemy.com/user/joseportilla/ or https://www.udemy.com/course/complete-python-bootcamp/. Filters written in a search or category URL are used too.
maxItemsintegerOptionaldefault 20Max courses per input
Upper limit of courses for each query or URL. Udemy shows at most 10,000 courses per search or category.
sortByenumOptionalSort by
Order of search results. Category and topic pages support relevance (popularity), highest rated and newest.
priceenumOptionalPrice
Only free or only paid courses.
minRatingenumOptionalMinimum rating
Only courses rated at least this many stars.
levelsarrayOptionalLevels
Only courses for these levels. Leave empty for all.
languagesarrayOptionalLanguages
Two-letter course language codes, for example en, es, de, pt, fr, ja. Leave empty for all languages.
durationsarrayOptionalVideo duration
Only courses with this much video. Leave empty for any length.
includeDetailsbooleanOptionaldefault trueInclude course details
Adds description, requirements, target audience, category, topics, instructor job titles, rating distribution, captions and content counts (one extra request per course).
includeCurriculumbooleanOptionaldefault falseInclude curriculum
Adds the full course outline: sections with their lectures, quizzes and durations.
includeReviewsbooleanOptionaldefault falseInclude reviews
Also saves student reviews for every course as extra rows (recordType "review"), charged per review.
maxReviewsPerCourseintegerOptionaldefault 20Max reviews per course
Upper limit of reviews for each course (Udemy shows at most 10,000).
reviewsSortenumOptionalReview order
Newest first, oldest first or Udemy's default order.
reviewsRatingenumOptionalReview stars
Only reviews with this star rating.
textReviewsOnlybooleanOptionaldefault falseOnly reviews with text
Skip star-only ratings that have no written comment.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work for Udemy. Prices and currency follow the proxy country: United States by default, pick another country to get its local prices.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| recordType | string | null | |
| id | string | null | |
| title | string | null | |
| url | string | null | |
| price | number | null | |
| rating | number | null | |
| studentsCount | number | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Course | One Udemy course with price, rating, students, duration, level, language, instructors and course details. | $0.0025 |
| Review | One student review (only when reviews are included). | $0.0025 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/udemy-scraper').call({
"searchQueries": [
"python"
],
"startUrls": [],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/udemy-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/udemy-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Courses with details and 2 reviews each.
Newest courses rated 4.5+ from category URLs.
Course list with title, price and rating.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.