Preply Tutor Scraper
Pricing
from $2.00 / 1,000 results
Preply Tutor Scraper
Extract tutor profiles, prices, ratings, and availability data from Preply.com. Filter by subject, country, native speaker status, availability, and more. Perfect for market research, competitor analysis, and lead generation in online tutoring.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Epic Scrapers
Maintained by CommunityActor stats
0
Bookmarked
20
Total users
6
Monthly active users
13 days ago
Last modified
Categories
Share
Preply Tutor Scraper: tutor profiles, prices, ratings, languages and availability by subject
Preply Tutor Scraper turns a Preply tutor search into a spreadsheet with one row per tutor. It is for language-learning companies, market researchers, tutors pricing their own lessons, and anyone comparing the online tutoring market. Each row has the hourly price, rating, review count, lessons taught, languages and levels, country, short bio, super tutor and professional flags, and the next available time slots.
- Pricing and demand data.
priceValue,currencyCode,pricePerHourUsd,averageScore,numberReviews,totalLessons,activeStudentsCountandlessonsBookedLast48hshow what tutors charge and how busy they are. - Search the way Preply does. Filter by subject, city (or
online), sort order, free-text search and price range. - Flattened fields next to the raw ones. Fields such as
tutorName,languages,countryName,isOnlineandsubjectAliasesare added so you don't have to dig into nested objects. - Availability.
nearestAvailableTimeslotslists the next open lesson slots. - Pay per tutor, no subscription. No Preply account is needed. Export to JSON, CSV, Excel or Google Sheets. Preply may block anonymous requests, so you can optionally supply a cookie string (see the FAQ).
Scope: This actor lists tutors from a Preply search. It does not read reviews text or book lessons. For other freelancer marketplaces, see Upwork Scraper.
What can you do with Preply Tutor Scraper?
| Goal | How |
|---|---|
| Benchmark tutor prices | Compare priceValue and pricePerHourUsd by subject, country (countryName) or rating. |
| Find top-rated tutors | Sort by averageScore and numberReviews, or set sort to RATING. |
| Measure demand | Use totalLessons, activeStudentsCount, lessonsBookedLast48h and recentLeadsAmount. |
| Study the competition | Check isSuperTutor, isProfessionalTutor, yearsOfExperience, headline and shortBio. |
| Map native speakers | Filter languages and countryName for native or high-level speakers. |
| Check when tutors are free | Read nearestAvailableTimeslots and canBookInstantly. |
How it compares
| What you need | Preply Tutor Scraper | Manual browsing | Page-by-page scrapers |
|---|---|---|---|
| Tutors per run | Up to everything Preply lists for a search | A few per page by hand | Varies |
| Data source | Preply's app JSON API | Website pages | Often parsed from page layout |
| Fields | Price, ratings, lessons, languages, slots | What you copy | Varies |
| Output | JSON, CSV, Excel, API | Whatever you type | Varies |
Quick start
- Click Try for free and sign in to Apify.
- Set Subject (for example
spanish) and leave City asonline. - For a first run, set Max Tutors to
20. - Click Start, then open the Output tab and export the data.
{"subject": "spanish","city": "online","maxTutors": 20,"sort": "RATING","priceRange": "10-30"}
Track Preply over time with scheduled runs
Most of the value comes from running the same input again and comparing. Apify can run the actor for you on a schedule and send the results wherever you need them.
1. Save your input as a task
Open the actor, set your subject, filters and limits, then click Save as a new task. A task is a saved input you can run again with one click or on a schedule.
2. Schedule the task
In Apify Console, go to Schedules, click Create new, choose how often to run (for example daily at 06:00 in your time zone), and add your task. See Schedules and How to create a schedule.
Watch how to schedule an Actor:
Or schedule a saved task:
Common schedules:
| Use case | Frequency | Cron expression |
|---|---|---|
| Price benchmarking | Weekly (Monday) | 0 6 * * 1 |
| Demand tracking | Daily | 0 6 * * * |
3. Send the results to a spreadsheet
Connect Google in the task's Integrations tab to save every run to Google Sheets or Google Drive automatically:
4. Compare runs
- Price moves:
priceValueper tutorid. - Demand:
lessonsBookedLast48h,totalLessonsandactiveStudentsCountperid. - Reputation:
averageScoreandnumberReviewsperid. - New tutors:
ids that appear for the first time.
Every row has the tutor id and publicUrl, so runs are easy to join.
Input reference
| Field | Type | Default | Effect |
|---|---|---|---|
subject | String | "english" | Subject alias as in Preply URLs, such as spanish, french, german, math. Required. |
city | String | "online" | A city, or online for online tutors. |
maxPages | Integer | 5 | Result pages to fetch, about 20 tutors each. 0 means no limit. |
maxTutors | Integer | 0 | Maximum tutors saved. 0 means no limit. |
sort | String | "" | POPULAR, PRICE_ASC, PRICE_DESC, NEWEST, RATING or RELEVANCE. Empty uses Preply's default. |
searchText | String | "" | Free-text filter, such as business English. |
priceRange | String | "" | min-max, for example 10-30. |
currencyFactor | String | "1" | Conversion factor relative to USD. 1 means USD. |
filters | Array of strings | Preset list | Filter categories requested from the API. Normally leave as is. |
cookies | String | Empty | Optional cookie header from your browser, for when Preply blocks anonymous requests. |
proxyConfiguration | Object | No proxy | Optional Apify Proxy settings. |
Output
Each row has the fields returned by Preply plus the flattened fields below. Prices and totalResults come from your chosen currencyFactor.
Main fields: id, publicUrl, headline, shortBio, averageScore, numberReviews, totalLessons, pricePerHourUsd, price, canBookInstantly, isSuperTutor, isProfessionalTutor, verifiedTutor, yearsOfExperience, activeStudentsCount, lessonsBookedLast48h, recentLeadsAmount, videoIntro, multiLanguages, attributes, nearestAvailableTimeslots, tutorTaughtLearnersWithGoals, tutorTaughtLearnersWithLevels, metadataTags.
Added by the actor: tutorName, tutorFirstName, avatarUrl, isOnline, countryName, currencyCode, priceValue, languages (name, levelCode, language), attributesList, subjectAliases, metadataTagSlugs.
Notes:
priceValueis a number incurrencyCode.pricePerHourUsdis always USD.- Some nested fields, such as
tutorTaughtLearnersWithGoals, can benull. - A run also saves a
SUMMARYrecord withtotalTutorsFound,tutorsScrapedandpagesScraped.
FAQ
How many tutors can I get?
totalResults for a search can be tens of thousands. Each page has 20 tutors. Raise maxPages or set it to 0, and use maxTutors to cap the run.
Do I need cookies or a proxy?
Preply sits behind Cloudflare and may reject anonymous requests. If a run fails with an HTTP error, copy the Cookie header from your browser's developer tools (Network tab, a request to preply.com) into cookies. Proxies are optional.
Why did the run stop early?
The actor stops at the last page, at your limits, or when a page request fails (the error is in the log). Rows already saved are kept.
Is there an official API?
Preply has no public tutor-search API. This actor uses the same JSON API as Preply's mobile app.
Is it legal?
The actor collects public tutor profile data. Tutor names and photos are personal data, so check GDPR and similar rules for your use, and Preply's Terms of Service.
Cost
Pay per event: a tiny start fee per run plus a price per tutor. Per tutor it is $0.003 on the Free plan and $0.002 on paid plans, so 1,000 tutors cost about $3 on Free or $2 on paid plans. See the Pricing tab for current prices.
Related Actors
| Actor | What it does |
|---|---|
| Upwork Scraper | Freelancer and job data from another marketplace |
Support
Found a bug or a missing field? Open an issue in the Issues tab and include the run ID and your input.
This actor is not affiliated with, endorsed by, or sponsored by Preply. Preply is a trademark of its owner.