# Preply Tutors Scraper (`parseforge/preply-tutors-scraper`) Actor

Scrapes Preply tutor profiles by subject and optional country filter. Returns each tutor's name, hourly rate, rating, review count, spoken languages, and video link as a flat row.

- **URL**: https://apify.com/parseforge/preply-tutors-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Education, Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.44 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### Preply Tutors Scraper

**Scrape tutor profiles from Preply by subject and country, up to a million per run.** Each profile returns the tutor's name, rate, rating, spoken languages, video intro, and availability. No login or API key. Export to CSV, JSON, Excel, or XML.

Preply does not offer a public API for its tutor marketplace, so gathering data at scale means clicking through pages by hand. This Actor reads the public tutor listings directly, filtered by the subject you teach or learn and the tutor's country, and returns every matching profile in one consistent dataset.

| Who uses it | What they scrape Preply for |
|---|---|
| Language learning platforms | Benchmark tutor pricing and availability across subjects to stay competitive. |
| Independent tutors | Analyze how top-rated tutors in your subject write their profiles and set their rates. |
| Edtech market analysts | Track the supply of online tutors by language and country over time. |
| Recruitment agencies | Build a lead list of highly rated tutors for potential partnership or hiring. |

### What it does

This Actor collects Preply tutor profiles by subject and optional country filter, and returns each one as a flat row.

- 🌍 **Subject and country filters:** Target tutors by the subject they teach and their country of origin, alone or together.
- 📊 **Structured profiles:** Every row includes the tutor's name, hourly rate, average rating, number of reviews, spoken languages, and a link to their video introduction.
- ⚡ **Scale on demand:** Pull up to 10 profiles on the free plan for a quick preview, or scale to a million on a paid plan for full market coverage.
- 📁 **Multiple export formats:** Download your dataset as CSV, JSON, Excel, or XML for direct use in spreadsheets, databases, or BI tools.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Preply data

**💰 Benchmark tutor pricing.**

An edtech startup scrapes English tutors in the United States to model the going hourly rate before launching its own marketplace.

**📝 Study top-performing profiles.**

A freelance Spanish tutor scrapes the highest-rated Spanish tutors to understand which keywords and video styles attract the most students.

**📈 Track tutor supply by region.**

A market researcher runs the Actor monthly for French tutors filtered by Canada to measure how the supply of native-speaking tutors changes.

**🔍 Build a recruitment shortlist.**

A language school scrapes German tutors with a 4.5+ rating and downloads the list to invite them to an in-person teaching opportunity.

### Why choose this scraper

| | What you get |
|---|---|
| **Consistent schema** | Every tutor profile lands in your dataset with the same columns, ready for analysis. |
| **No API key needed** | Reads the public Preply tutor pages, so there is no registration or approval process. |
| **Country-level targeting** | Narrow results to tutors based in a specific country, useful for localized pricing studies. |
| **Subject coverage** | Covers 15 subjects from English and Spanish to Math, Physics, and Chemistry. |

### How it compares

No other Store actor targets Preply the same way, so the honest comparison is with the alternatives teams actually weigh.

| | Preply Tutors Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When Preply changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Drive the Actor with a subject slug and an optional country name, and filters run as each profile is read so only matching tutors reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
 "maxItems": 10
}
```

A larger pull:

```json
{
 "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.0027 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $0.27 |
| 1,000 results | $2.70 |
| 10,000 results | $27.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Preply Tutors Scraper](https://apify.com/parseforge/preply-tutors-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Preply through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/preply-tutors-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check that the subject slug is spelled exactly as it appears in the input options, such as 'english' or 'math'. If you are using the country filter, verify the country name matches the format Preply uses on its site, like 'United States' rather than 'USA'.

**The run stopped after only 10 profiles.**

Free Apify accounts are limited to 10 items per run as a preview. Upgrade to a paid plan and set the 'Maximum tutors' field to a higher number to scrape more profiles.

**Some tutor profiles are missing their video link.**

Not every tutor uploads a video introduction. If the video field is empty in your dataset, that tutor does not have a video on their profile.

**The country filter is not returning the tutors I expect.**

Preply's country names may differ from common abbreviations. Try the full country name as it appears on the Preply website, such as 'United Kingdom' instead of 'UK' or 'England'.

**The run is taking a long time to complete.**

Scraping a large number of profiles requires reading many pages. Reduce the 'Maximum tutors' value or narrow your filters to a single subject and country combination to speed up the run.

### FAQ

| Question | Answer |
|---|---|
| Do I need a Preply account to scrape tutor profiles? | No. The Actor reads the publicly visible tutor listing pages, so no login, account, or API key is required. |
| How many tutor profiles can I scrape in one run? | Free Apify users can scrape up to 10 profiles for a preview. Paid users can set the maximum up to 1,000,000 profiles per run. |
| What subjects are available to filter by? | The Actor supports 15 subjects: English, Spanish, French, German, Italian, Portuguese, Chinese, Japanese, Korean, Arabic, Russian, Math, Physics, Chemistry, and Biology. |
| Can I filter tutors by country? | Yes. The optional country filter accepts an ISO country name as it appears on Preply, such as 'United States' or 'Mexico', to return only tutors based in that country. |
| What data fields does each tutor row include? | Each row returns the tutor's name, hourly rate, average rating, total review count, spoken languages, a video introduction link, and availability information. |
| Can I scrape multiple subjects in a single run? | The Actor accepts one subject per run. To scrape multiple subjects, run the Actor once per subject, either manually or scheduled in sequence. |
| What export formats are supported? | You can export your scraped tutor dataset to CSV, JSON, Excel, or XML from the Apify dataset tab. |
| Is this Actor affiliated with or endorsed by Preply? | No. This is an independent web scraping tool that reads publicly available data from Preply. It is not affiliated with, endorsed by, or connected to Preply, Inc. in any way. |
| Does the Actor scrape tutor reviews or student feedback? | The Actor collects the aggregate rating and total review count for each tutor. It does not scrape the full text of individual student reviews. |
| Can I schedule this Actor to run automatically? | Yes. Apify supports scheduled runs. You can set the Actor to run daily or weekly to track changes in tutor availability and pricing over time. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Preply, Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `subject` (type: `string`):

Subject slug as used on Preply URLs (english, spanish, french, math, etc.).

## `country` (type: `string`):

Optional tutor country filter passed to Preply (ISO country name as shown on the site).

## Actor input object example

```json
{
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/preply-tutors-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/preply-tutors-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10
}' |
apify call parseforge/preply-tutors-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/preply-tutors-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/viPxHb1acc7pgctKp/builds/5sfYNAG9PVTV2ZV8U/openapi.json
