Preply Tutor Scraper avatar

Preply Tutor Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Preply Tutor Scraper

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

Epic Scrapers

Maintained by Community

Actor stats

0

Bookmarked

20

Total users

6

Monthly active users

13 days ago

Last modified

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, activeStudentsCount and lessonsBookedLast48h show 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, isOnline and subjectAliases are added so you don't have to dig into nested objects.
  • Availability. nearestAvailableTimeslots lists 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?

GoalHow
Benchmark tutor pricesCompare priceValue and pricePerHourUsd by subject, country (countryName) or rating.
Find top-rated tutorsSort by averageScore and numberReviews, or set sort to RATING.
Measure demandUse totalLessons, activeStudentsCount, lessonsBookedLast48h and recentLeadsAmount.
Study the competitionCheck isSuperTutor, isProfessionalTutor, yearsOfExperience, headline and shortBio.
Map native speakersFilter languages and countryName for native or high-level speakers.
Check when tutors are freeRead nearestAvailableTimeslots and canBookInstantly.

How it compares

What you needPreply Tutor ScraperManual browsingPage-by-page scrapers
Tutors per runUp to everything Preply lists for a searchA few per page by handVaries
Data sourcePreply's app JSON APIWebsite pagesOften parsed from page layout
FieldsPrice, ratings, lessons, languages, slotsWhat you copyVaries
OutputJSON, CSV, Excel, APIWhatever you typeVaries

Quick start

  1. Click Try for free and sign in to Apify.
  2. Set Subject (for example spanish) and leave City as online.
  3. For a first run, set Max Tutors to 20.
  4. 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 caseFrequencyCron expression
Price benchmarkingWeekly (Monday)0 6 * * 1
Demand trackingDaily0 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: priceValue per tutor id.
  • Demand: lessonsBookedLast48h, totalLessons and activeStudentsCount per id.
  • Reputation: averageScore and numberReviews per id.
  • 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

FieldTypeDefaultEffect
subjectString"english"Subject alias as in Preply URLs, such as spanish, french, german, math. Required.
cityString"online"A city, or online for online tutors.
maxPagesInteger5Result pages to fetch, about 20 tutors each. 0 means no limit.
maxTutorsInteger0Maximum tutors saved. 0 means no limit.
sortString""POPULAR, PRICE_ASC, PRICE_DESC, NEWEST, RATING or RELEVANCE. Empty uses Preply's default.
searchTextString""Free-text filter, such as business English.
priceRangeString""min-max, for example 10-30.
currencyFactorString"1"Conversion factor relative to USD. 1 means USD.
filtersArray of stringsPreset listFilter categories requested from the API. Normally leave as is.
cookiesStringEmptyOptional cookie header from your browser, for when Preply blocks anonymous requests.
proxyConfigurationObjectNo proxyOptional 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:

  • priceValue is a number in currencyCode. pricePerHourUsd is always USD.
  • Some nested fields, such as tutorTaughtLearnersWithGoals, can be null.
  • A run also saves a SUMMARY record with totalTutorsFound, tutorsScraped and pagesScraped.

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.

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.

ActorWhat it does
Upwork ScraperFreelancer 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.