We extract tutor profiles, hourly rates, calendar availability, Super Tutor metrics, and student reviews from Preply. Delivered as clean JSON, CSV, or Parquet to S3, BigQuery, or Snowflake on your cadence.
Structured, schema-consistent data across all major object types — delivered clean, typed, and ready to query.
Complete list of extractable fields for Tutor Profiles objects from preply.com. All fields typed and schema-versioned.
"tutor_id": "394812", "name": "Maria S.", "country": "Spain", "hourly_rate": 25.0, "super_tutor": true, "rating": 4.9, "active_students": 14, "response_time": "1h"
| # | tutor_id | name | country | languages_taught | subjects | hourly_rate |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Calendar Availability objects from preply.com. All fields typed and schema-versioned.
"tutor_id": "394812", "date": "2026-05-12", "day_of_week": "Tuesday", "timezone": "Europe/Madrid", "available_slots": "['09:00', '10:00', '15:00']", "booked_slots": "['11:00', '14:00']", "last_updated": "2026-05-10T08:14:00Z"
| # | tutor_id | date | day_of_week | available_slots | booked_slots | timezone |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Reviews & Ratings objects from preply.com. All fields typed and schema-versioned.
"review_id": "REV-93814", "tutor_id": "394812", "student_name": "James T.", "rating": 5, "review_date": "2026-04-18", "language_learned": "Spanish", "verified_student": true
| # | review_id | tutor_id | student_name | rating | review_date | review_text |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Subject Categories objects from preply.com. All fields typed and schema-versioned.
"category_name": "Spanish", "tutor_count": 8492, "min_price": 5.0, "max_price": 100.0, "avg_price": 18.5, "url_slug": "/skype/spanish-tutors", "top_tutor_ids": "['394812', '102934']"
| # | category_id | category_name | tutor_count | min_price | max_price | avg_price |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Search Results objects from preply.com. All fields typed and schema-versioned.
"keyword": "business english", "position": 3, "tutor_id": "102934", "name": "David W.", "hourly_rate": 35.0, "super_tutor": true, "newly_joined": false, "scraped_at": "2026-05-12T09:14:33Z"
| # | keyword | position | tutor_id | name | hourly_rate | rating |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Our Preply scraper handles every layer of the platform: tutor profiles, dynamic pricing, calendar availability, and the review corpus - with JavaScript rendering, session management, and anti-bot circumvention built in.
Name, bio, location, languages taught, proficiency levels, and video introduction URLs extracted at the tutor level.
Capture standard hourly rates, trial lesson discounts, and currency normalisation across all tutor profiles.
Extract open and booked calendar slots via GraphQL interception, mapping tutor availability across specified timezones.
Track Super Tutor badge status, average response time, active student counts, and total lessons taught.
Full review text, star ratings, student names, and dates paginated across all review pages for a given tutor.
Track organic position for any subject, language, or keyword - capturing default sorting algorithms and filter impacts.
Support for localised Preply domains and subject slugs, ensuring accurate extraction regardless of target market.
Hash-based diffing ensures downstream systems only receive updates when a tutor changes their rate, bio, or availability.
Run one-off bulk exports or configure continuous pipelines at hourly or daily cadences for real-time market intelligence.
Brief in. Clean data out.
Provide tutor URLs, subject categories, or keyword sets. We design the extraction schema together.
We configure Scrapy / Playwright crawlers, proxy rotation, session management, and CAPTCHA handling for preply.com.
Schema validation, null-rate checks, price-outlier detection, and sample reviews before full launch.
JSON / CSV / Parquet pushed to your S3 bucket, BigQuery dataset, or Snowflake stage on agreed cadence.
Preply uses aggressive bot mitigation and dynamic GraphQL endpoints. Here is how we stay resilient - and why teams choose managed infrastructure over DIY.
Preply uses commercial bot detection that flags data center IPs and headless browsers. Our crawlers use residential ISP proxies with realistic browser fingerprints, randomised request timing, and full cookie session management.
Tutor availability is not present in the initial DOM. We intercept the backend GraphQL queries that hydrate the calendar widget, extracting structured slot data directly rather than attempting to parse complex frontend UI components.
Tutor introduction videos are hosted on third-party platforms and embedded dynamically. Our Playwright sessions execute the necessary JavaScript to resolve and extract the raw video URLs for downstream processing.
For large tutor catalogues, we maintain a hash index of last-seen values per field. Subsequent runs only push diffs - reducing compute cost, storage bloat, and downstream processing load.
Every run emits structured logs to our observability stack. We alert on null-rate spikes, schema drift in GraphQL payloads, and coverage drops - responding before you notice.
EdTech platforms and language schools monitor hourly rates and trial discounts to optimise their own pricing strategies.
Market analysts track tutor counts, active student metrics, and booked slots to identify trending languages and underserved categories.
Competing platforms identify high-performing Super Tutors with strong reviews and high active student counts for targeted recruitment.
Language learning startups use geographic and language proficiency data to identify regions with high tutor density and low hourly rates.
Machine learning teams use tutor bios, subject matter descriptions, and student reviews to train conversational AI and recommendation models.
Meta-search engines for education build unified catalogues of tutors across multiple platforms, relying on our API for fresh availability.
"Preply holds the most accurate supply-and-demand signals for global language learning - but extracting real-time calendar availability requires sophisticated GraphQL interception."
Scraping Preply requires bypassing advanced bot mitigation, handling dynamic GraphQL calendar payloads, and paginating through thousands of localised search results. DataFlirt manages the proxy rotation, session handling, and schema validation so your data engineering team receives normalised warehouse-ready records without the maintenance overhead.
Everything supported by our preply.com scraper — rendered SPA elements, auth walls, rate-limit evasion and beyond.
Open-source tooling on proven cloud infra — no vendor lock-in, full observability.
Scrapy handles crawl orchestration, deduplication, and retry logic. Playwright handles JavaScript rendering, GraphQL interception, and interaction flows.
We maintain pools of residential ISP proxies globally. Rotation happens per-request with sticky sessions where required to maintain GraphQL state.
Pipelines run on AWS Lambda and ECS. Airflow handles scheduling, dependency management, and SLA alerting. All state stored in managed Postgres.
Data delivered to where your team already works — no new tooling required.
About preply.com scraping, legality, and pipeline operations.
Ask us directly →Scraping publicly available information from Preply is generally permissible under applicable law. DataFlirt targets only public, non-authenticated tutor profiles, pricing, and review data. We do not extract personal student data or circumvent authentication walls.
We intercept the backend GraphQL requests that Preply uses to hydrate the frontend calendar UI. This allows us to extract precise, structured availability slots mapped to specific timezones without relying on fragile DOM parsing.
Yes. Our change detection system records the exact timestamp when a tutor gains or loses the Super Tutor badge, along with shifts in their active student counts and response times.
For targeted lists of high-priority tutors, we can configure pipelines to refresh availability data at sub-60-minute intervals. Full platform sweeps typically run on a 24-hour cadence.
We support all subject categories listed on Preply, including popular languages like English and Spanish, as well as niche subjects, test preparation, and academic tutoring.
Yes. We execute the necessary JavaScript to resolve the embedded media players and extract the raw video URLs provided by the tutors for their introduction videos.
Our smallest packages start at a defined list of 5,000 tutor profiles with weekly delivery. For full-category monitoring or custom schema requirements, we price based on volume and delivery frequency.
20-minute scoping call. Pilot dataset within the week. Production within two. Whether you need a full tutor catalogue dump or continuous availability monitoring across 50,000 profiles - we scope, build, and operate the pipeline.