Preply Tutor Profiles Scraper
Pricing
from $3.00 / 1,000 results
Preply Tutor Profiles Scraper
Scrape Preply tutor profiles, search tutors by language, subject, price, and rating. Get name, country, hourly rate, rating, reviews, lessons count, bio, avatar, and more. Supports bulk tutor lookups by URL or ID.
Pricing
from $3.00 / 1,000 results
Rating
5.0
(7)
Developer
Crawler Bros
Maintained by CommunityActor stats
7
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extract comprehensive tutor profiles from Preply — the world's leading online tutoring marketplace with 40,000+ tutors across 50+ languages. Search by language, subject, price, rating, and availability. Perfect for market research, competitive analysis, and education platform insights.
What You Get
Each tutor profile includes:
| Field | Description |
|---|---|
tutorId | Unique Preply tutor identifier |
name | Tutor's display name |
bio | Tutor's self-description |
country | Tutor's country of origin |
nativeLanguage | Tutor's native language |
languagesTaught | List of languages this tutor teaches |
specialties | Specializations (e.g. Business English, IELTS, Conversation) |
hourlyRate | Price per hour in USD |
currency | Pricing currency |
rating | Average student rating (0–5) |
reviewCount | Total number of student reviews |
totalLessons | Number of lessons completed |
responseRate | Tutor's message response rate (e.g. "98%") |
profileUrl | Direct link to tutor's Preply profile |
avatarUrl | Profile photo URL |
videoUrl | Introduction video URL |
isPro | Whether the tutor is certified/professional |
education | Educational background (detail mode) |
certificates | Teaching certificates (detail mode) |
recordType | Always "tutor" |
scrapedAt | ISO 8601 timestamp of extraction |
Modes
searchTutors (default)
Search for tutors by language with optional filters. Paginates through Preply's tutor directory.
Example input:
{"mode": "searchTutors","language": "japanese","minRating": 4.5,"maxPrice": 30,"maxItems": 50}
getTutor
Fetch full profiles for specific tutors by their Preply profile URL or numeric ID. Returns detailed data including education history and certificates.
Example input:
{"mode": "getTutor","startUrls": ["https://preply.com/en/tutor/12345","https://preply.com/en/tutor/67890"]}
Or with numeric IDs:
{"mode": "getTutor","tutorIds": ["12345", "67890"]}
Input Reference
| Field | Type | Default | Description |
|---|---|---|---|
mode | select | searchTutors | Operation mode |
language | select | spanish | Language to search tutors for |
startUrls | array | — | Tutor profile URLs (mode=getTutor) |
tutorIds | array | — | Numeric tutor IDs (mode=getTutor) |
subject | string | — | Subject specialty (e.g. "Business English", "IELTS") |
sortBy | select | popularity | popularity / rating / reviews / price_lowest / price_highest |
minPrice | number | — | Minimum hourly rate (USD) |
maxPrice | number | — | Maximum hourly rate (USD) |
minRating | number | — | Minimum average rating (0–5) |
nativeOnly | boolean | false | Native speakers only |
proOnly | boolean | false | Certified/professional tutors only |
tutorCountry | string | — | ISO country codes to filter by (e.g. US, GB,US,CA) |
availabilityDay | select | — | Filter by available weekday |
useProxy | boolean | true | Use residential proxy (recommended for Cloudflare) |
maxItems | integer | 20 | Maximum profiles to return (1–5000) |
Supported Languages
English, Spanish, French, German, Italian, Portuguese, Chinese (Mandarin), Japanese, Korean, Russian, Arabic, Dutch, Polish, Turkish, Swedish, Norwegian, Danish, Finnish, Hebrew, Hindi, Ukrainian, Greek, Romanian, Czech, Hungarian, Catalan, Thai, Vietnamese, Indonesian, Malay, Persian (Farsi), Tagalog, Urdu, Bengali, Swahili
Output Example
{"tutorId": "12345","name": "Maria S.","country": "Spain","nativeLanguage": "Spanish","languagesTaught": ["Spanish"],"hourlyRate": 15.0,"currency": "USD","rating": 4.9,"reviewCount": 150,"totalLessons": 1200,"responseRate": "98%","isPro": true,"profileUrl": "https://preply.com/en/tutor/12345","avatarUrl": "https://cdn.preply.com/avatar/12345.jpg","recordType": "tutor","scrapedAt": "2026-05-17T10:00:00+00:00"}
Use Cases
- Market Research — Analyze tutor pricing, ratings, and availability across languages
- Competitive Analysis — Compare tutor profiles across online tutoring platforms
- Education Insights — Track trends in language learning demand and tutor supply
- Lead Generation — Build a dataset of specialized language tutors
- Academic Research — Study the gig economy in online education
Performance
- Processes 10 tutors per page via Preply's public API
- Supports up to 5,000 tutors per run
- Automatically handles Cloudflare protection via residential proxy rotation
- Retry logic on rate limits and server errors
Proxy Configuration
Preply uses Cloudflare protection. The actor first attempts direct HTTP access (which works for the public ChatGPT OpenAPI endpoint) and automatically falls back to Playwright with a residential proxy if blocked. Enabling useProxy: true (default) ensures maximum reliability.
FAQ
Q: Does this require a Preply account or API key? A: No. The actor uses Preply's public tutor directory and their publicly documented OpenAPI endpoint — no authentication required.
Q: Can I filter by availability?
A: Yes — use the availabilityDay field to filter by day of the week.
Q: Why use a proxy? A: Preply uses Cloudflare to protect against automated scraping. Residential proxies present requests as regular user traffic, significantly improving success rates.
Q: How fresh is the data? A: Each run fetches live data from Preply at the moment of execution. Tutor profiles, ratings, and prices reflect the current state of Preply's platform.
Q: How many tutors can I scrape? A: Up to 5,000 per run. For larger datasets, run the actor multiple times with different filter settings.
Q: Are education and certificate details available?
A: Yes — use mode=getTutor with specific tutor IDs/URLs to fetch full profiles including education history and certificates.