# Superprof Scraper $1💰 Tutors, Lessons, Prices & Ratings (`abotapi/superprof-tutor-scraper`) Actor

From $1/1K. Scrape Superprof tutors by subject and location, or paste tutor URLs. One rich record per tutor: name, photo, price, rating, reviews count, subjects, city, geo, response time, lesson type and more. Filter by price, rating and lesson type.

- **URL**: https://apify.com/abotapi/superprof-tutor-scraper.md
- **Developed by:** [AbotAPI](https://apify.com/abotapi) (community)
- **Categories:** Jobs, Lead generation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Superprof Tutor Scraper

Collect private tutors and their lesson listings from Superprof at scale. Search by subject and location, or paste tutor and results URLs, and get one clean, structured record per tutor: name, photo, hourly price, average rating and review count, subjects taught, city, geo coordinates, lesson type, response time and more.

### Why This Scraper?

- One rich record per tutor with name, price, rating, reviews count, badge, response time, lesson type, photo variants and geo coordinates.
- Dual input: search by subject and location, or paste specific tutor pages and results URLs.
- Filter by hourly price, minimum rating, lesson type, webcam availability and free first lesson.
- Collects results across the available result pages with one overall item cap.
- Optional per-tutor enrichment adds geo coordinates, city, country, subjects taught and the full description.
- Push results straight into Notion, Linear, Airtable or Apify through MCP connectors.
- Runs on any Apify plan, including the free tier.

### Data You Get

> Sample shape: values are illustrative placeholders, not from a live listing.

| Field | Example |
| --- | --- |
| id_annonce | "0000000" |
| teacherName | "Jane Doe" |
| title | "Personalized math lessons for all levels" |
| url | "https://www.superprof.com/sample-tutor-headline.html" |
| price | 30 |
| price_1H | 30 |
| type | "webcam" |
| teacherCity | "New York" |
| city | "New York" |
| country | "US" |
| lat | 40.712800 |
| lng | -74.006000 |
| rating_score | 5 |
| rating_count | 120 |
| rating_label | "120 reviews" |
| badge | "Ambassador" |
| is_ambassador | true |
| subjects | ["Mathematics", "Physics"] |
| firstHourFree | 1 |
| firstFreeDuration | "0hr30" |
| offer_lesson_first_is_free | true |
| price_5H | 100 |
| price_10H | 200 |
| price_webcam | 30 |
| offers | [{"type": "hourly", "price": 30}] |
| stat_stars | 5 |
| stat_count_reviews | 120 |
| stat_count_recommendations | 15 |
| status | "Ambassador" |
| is_superprof | true |
| is_verified_member | true |
| has_valid_diploma | true |
| has_video | true |
| video | "https://www.youtube.com/watch?v=XXXXXXXXXXX" |
| has_interview | true |
| interview | [{"question": "1) ...", "answer": "..."}] |
| levels | ["All Levels"] |
| has_all_levels | true |
| native_language | "English" |
| languages | ["English"] |
| experience | "Hi, I'm Jane ..." |
| teaching | "I teach algebra ..." |
| reviews | [{"author": "Sam", "text": "Great tutor!"}] |
| gallery | ["https://example.com/photo.jpg"] |
| venue_can_move | false |
| venue_can_receive | true |
| sex | "female" |
| responseTimeDesc | "Responds within 5 hours" |
| response_time_sec | 18000 |
| webcam | true |
| faceToFace | false |
| teacherPhoto | "https://example.com/photo.jpg" |
| search_url | "https://www.superprof.com/s/mathematics,New-York,,,,.html" |

### How to Use

Search a subject in a location:

```json
{
  "mode": "search",
  "subjects": ["Mathematics"],
  "locations": ["New York"],
  "maxItems": 20
}
````

Search with filters:

```json
{
  "mode": "search",
  "subjects": ["Guitar"],
  "locations": ["London"],
  "lessonType": "online",
  "minRating": 5,
  "maxPrice": 40,
  "onlyFirstLessonFree": true,
  "maxItems": 50
}
```

Scrape specific URLs:

```json
{
  "mode": "url",
  "urls": [
    "https://www.superprof.com/s/mathematics,United-States,,,,.html",
    "https://www.superprof.com/sample-tutor-headline.html"
  ],
  "fetchDetails": true
}
```

### Input Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| mode | select | "search" for subject/location searches, "url" to scrape pasted URLs. |
| subjects | array | Subjects to search, e.g. "Mathematics", "Guitar". Search mode only. |
| locations | array | Places to search, e.g. "New York". Empty means country-wide. Search mode only. |
| lessonType | select | Restrict to "any", "online" or "face\_to\_face". |
| minPrice | integer | Only tutors charging at least this much per hour. |
| maxPrice | integer | Only tutors charging at most this much per hour. |
| minRating | integer | Only tutors with an average rating at or above this value (1 to 5). |
| onlyWebcam | boolean | Only tutors who offer lessons by webcam. |
| onlyFirstLessonFree | boolean | Only tutors who offer a free first lesson. |
| sortBy | select | Result order: "relevance" or "distance". |
| urls | array | Tutor page URLs or results URLs to scrape. URL mode only. |
| fetchDetails | boolean | Enrich each tutor from its profile page (geo, city, country, subjects, description). |
| maxPages | integer | Safety ceiling on result pages per search. Empty or 0 is unlimited. Does not cap items. |
| maxItems | integer | Maximum tutors collected across the whole run. The single overall limit. 0 is unlimited. |
| proxy | object | Connection settings. The default works on every plan. |
| mcpConnectors | array | Optional MCP servers (Notion, Linear, Airtable, Apify) to receive the results. |
| notionParentPageUrl | string | Optional Notion page URL under which a results database is created. |
| maxNotifyListings | integer | Optional cap on how many tutors are pushed to the connected apps. |

### Output Example

> Sample shape: values are illustrative placeholders, not from a live listing.

```json
{
  "id_annonce": "0000000",
  "teacherName": "Jane Doe",
  "title": "Personalized math lessons for all levels",
  "url": "https://www.superprof.com/sample-tutor-headline.html",
  "landing_url": "https://www.superprof.com/s/mathematics,United-States,,,,.html",
  "type": "webcam",
  "price": 30,
  "price_1H": 30,
  "prices": { "hourly": 30, "firstHour": 30, "currency_hint": null },
  "teacherCity": "New York",
  "city": "New York",
  "country": "US",
  "lat": 40.712800,
  "lng": -74.006000,
  "subjects": ["Mathematics", "Physics"],
  "badge": "Ambassador",
  "is_ambassador": true,
  "is_available": true,
  "teacherId": "00000000",
  "teacherPhoto": "https://example.com/photo.jpg",
  "teacherRating": { "average": 5, "count": 120, "label": "120 reviews" },
  "rating_score": 5,
  "rating_count": 120,
  "rating_label": "120 reviews",
  "firstHourFree": 1,
  "firstFreeDuration": "0hr30",
  "offer_lesson_first_is_free": true,
  "price_5H": 100,
  "price_10H": 200,
  "price_webcam": 30,
  "offers": [{ "type": "hourly", "price": 30 }, { "type": "pack_5h", "price": 100 }],
  "stat_stars": 5,
  "stat_count_reviews": 120,
  "stat_count_recommendations": 15,
  "status": "Ambassador",
  "is_superprof": true,
  "is_verified_member": true,
  "has_valid_diploma": true,
  "has_video": true,
  "video": "https://www.youtube.com/watch?v=XXXXXXXXXXX",
  "has_interview": true,
  "interview": [{ "question": "1) When did you start tutoring?", "answer": "..." }],
  "levels": ["All Levels"],
  "has_all_levels": true,
  "native_language": "English",
  "languages": ["English"],
  "experience": "Hi, I'm Jane ...",
  "teaching": "I teach algebra ...",
  "reviews": [{ "author": "Sam", "text": "Great tutor!" }],
  "gallery": ["https://example.com/photo.jpg"],
  "venue_can_move": false,
  "venue_can_receive": true,
  "sex": "female",
  "is_feminin": 1,
  "verified": 1,
  "webcam": true,
  "faceToFace": false,
  "responseTime": 5,
  "responseTimeDesc": "Responds within 5 hours",
  "response_time_sec": 18000,
  "search_url": "https://www.superprof.com/s/mathematics,New-York,,,,.html",
  "description": "Sample description placeholder.",
  "scrapedAt": "2026-01-01T00:00:00+00:00"
}
```

### Send results into your apps (MCP connectors)

Connect one or more MCP servers to push the scraped tutors straight into your tools after a run finishes. Set `mcpConnectors` to the servers you want (Notion, Linear, Airtable, Apify). For Notion, set `notionParentPageUrl` to the page under which a results database is created, and use `maxNotifyListings` to cap how many tutors are sent. The export is a side channel: it never changes or blocks the dataset output.

### Connection and proxy

The only connection setting you control is the standard **Proxy** object. Everything else is handled automatically. There are no extra proxy tuning fields to set.

- **Defaults that just work.** The default proxy setting enables Apify Proxy and is recommended for the most reliable results. You can leave it as is.
- **Automatic IP handling.** Each request uses a fresh exit IP, and a failing exit is replaced automatically, so a single bad IP does not stall the run.
- **Cost stays bounded.** The actor keeps connection usage within a sensible internal budget for the run, so a large run cannot run up unbounded proxy cost.
- **Runs without paid proxy.** If Apify Proxy access is not available, the actor logs a clear message and still completes the run; results may be less reliable.

### Plan Requirement

This actor runs on any Apify plan, including the free tier.

# Actor input Schema

## `mode` (type: `string`):

Choose how to find tutors. 'search' runs subject and location searches with filters. 'url' scrapes the tutor pages or results URLs you paste.

## `subjects` (type: `array`):

One or more subjects to search, e.g. 'Mathematics', 'Guitar', 'Spanish'. Each subject is searched independently against each location.

## `locations` (type: `array`):

One or more places to search, e.g. 'New York', 'London', 'United States'. Leave empty for a country-wide search. Each location is paired with each subject.

## `lessonType` (type: `string`):

Restrict to a lesson format.

## `minPrice` (type: `integer`):

Only return tutors charging at least this much per hour (in the local currency of the search location).

## `maxPrice` (type: `integer`):

Only return tutors charging at most this much per hour.

## `minRating` (type: `integer`):

Only return tutors with an average rating at or above this value (1 to 5).

## `onlyWebcam` (type: `boolean`):

When on, only tutors who offer lessons by webcam are returned.

## `onlyFirstLessonFree` (type: `boolean`):

When on, only tutors who offer a free first lesson are returned.

## `sortBy` (type: `string`):

Order of the results returned by the search.

## `urls` (type: `array`):

Multi-URL mode: paste Superprof tutor page URLs (e.g. https://www.superprof.com/some-tutor-headline.html) or results URLs. Filter fields are ignored. A results URL collects across its available pages up to Max items.

## `fetchDetails` (type: `boolean`):

When on, each tutor is enriched from its profile page with geo coordinates, city, country, subjects taught and the full description. When off, only the rich results fields are returned (no per-tutor fetch).

## `maxPages` (type: `integer`):

Safety ceiling on how many result pages to walk per search. Empty or 0 means unlimited. This does NOT cap the number of items; the run still stops at Max items.

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

Maximum number of tutors to collect across the whole run. The single overall limit. Set 0 for unlimited.

## `proxy` (type: `object`):

Connection settings. The default enables Apify Proxy and works on every plan; leaving it as is gives the most reliable results.

## `mcpConnectors` (type: `array`):

Optional. Connect MCP servers (Notion, Linear, Airtable, Apify) to push the scraped tutors straight into your tools after the run.

## `notionParentPageUrl` (type: `string`):

Optional. When a Notion MCP connector is set, the URL of the Notion page under which a results database is created.

## `maxNotifyListings` (type: `integer`):

Optional. Cap on how many tutors are pushed to the connected MCP apps.

## Actor input object example

```json
{
  "mode": "search",
  "subjects": [
    "Mathematics"
  ],
  "locations": [
    "United States"
  ],
  "lessonType": "any",
  "onlyWebcam": false,
  "onlyFirstLessonFree": false,
  "sortBy": "relevance",
  "urls": [
    "https://www.superprof.com/s/mathematics,United-States,,,,.html"
  ],
  "fetchDetails": true,
  "maxItems": 20,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `overview` (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 = {
    "subjects": [
        "Mathematics"
    ],
    "locations": [
        "United States"
    ],
    "urls": [
        "https://www.superprof.com/s/mathematics,United-States,,,,.html"
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/superprof-tutor-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 = {
    "subjects": ["Mathematics"],
    "locations": ["United States"],
    "urls": ["https://www.superprof.com/s/mathematics,United-States,,,,.html"],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/superprof-tutor-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "subjects": [
    "Mathematics"
  ],
  "locations": [
    "United States"
  ],
  "urls": [
    "https://www.superprof.com/s/mathematics,United-States,,,,.html"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call abotapi/superprof-tutor-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=abotapi/superprof-tutor-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Superprof Scraper $1💰 Tutors, Lessons, Prices & Ratings",
        "description": "From $1/1K. Scrape Superprof tutors by subject and location, or paste tutor URLs. One rich record per tutor: name, photo, price, rating, reviews count, subjects, city, geo, response time, lesson type and more. Filter by price, rating and lesson type.",
        "version": "1.0",
        "x-build-id": "kR8TBJEwRzaZbqsCB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~superprof-tutor-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-superprof-tutor-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/abotapi~superprof-tutor-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-superprof-tutor-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/abotapi~superprof-tutor-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-superprof-tutor-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "url"
                        ],
                        "type": "string",
                        "description": "Choose how to find tutors. 'search' runs subject and location searches with filters. 'url' scrapes the tutor pages or results URLs you paste.",
                        "default": "search"
                    },
                    "subjects": {
                        "title": "Subjects",
                        "type": "array",
                        "description": "One or more subjects to search, e.g. 'Mathematics', 'Guitar', 'Spanish'. Each subject is searched independently against each location.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "locations": {
                        "title": "Locations",
                        "type": "array",
                        "description": "One or more places to search, e.g. 'New York', 'London', 'United States'. Leave empty for a country-wide search. Each location is paired with each subject.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "lessonType": {
                        "title": "Lesson type",
                        "enum": [
                            "any",
                            "online",
                            "face_to_face"
                        ],
                        "type": "string",
                        "description": "Restrict to a lesson format.",
                        "default": "any"
                    },
                    "minPrice": {
                        "title": "Min hourly price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only return tutors charging at least this much per hour (in the local currency of the search location)."
                    },
                    "maxPrice": {
                        "title": "Max hourly price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only return tutors charging at most this much per hour."
                    },
                    "minRating": {
                        "title": "Min rating",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Only return tutors with an average rating at or above this value (1 to 5)."
                    },
                    "onlyWebcam": {
                        "title": "Webcam tutors only",
                        "type": "boolean",
                        "description": "When on, only tutors who offer lessons by webcam are returned.",
                        "default": false
                    },
                    "onlyFirstLessonFree": {
                        "title": "First lesson free only",
                        "type": "boolean",
                        "description": "When on, only tutors who offer a free first lesson are returned.",
                        "default": false
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "relevance",
                            "distance"
                        ],
                        "type": "string",
                        "description": "Order of the results returned by the search.",
                        "default": "relevance"
                    },
                    "urls": {
                        "title": "Tutor or results URLs",
                        "type": "array",
                        "description": "Multi-URL mode: paste Superprof tutor page URLs (e.g. https://www.superprof.com/some-tutor-headline.html) or results URLs. Filter fields are ignored. A results URL collects across its available pages up to Max items.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "fetchDetails": {
                        "title": "Fetch full tutor profiles",
                        "type": "boolean",
                        "description": "When on, each tutor is enriched from its profile page with geo coordinates, city, country, subjects taught and the full description. When off, only the rich results fields are returned (no per-tutor fetch).",
                        "default": true
                    },
                    "maxPages": {
                        "title": "Max pages per search",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Safety ceiling on how many result pages to walk per search. Empty or 0 means unlimited. This does NOT cap the number of items; the run still stops at Max items."
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of tutors to collect across the whole run. The single overall limit. Set 0 for unlimited.",
                        "default": 20
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Connection settings. The default enables Apify Proxy and works on every plan; leaving it as is gives the most reliable results.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    },
                    "mcpConnectors": {
                        "title": "Export to your apps (MCP)",
                        "type": "array",
                        "description": "Optional. Connect MCP servers (Notion, Linear, Airtable, Apify) to push the scraped tutors straight into your tools after the run."
                    },
                    "notionParentPageUrl": {
                        "title": "Notion parent page URL",
                        "type": "string",
                        "description": "Optional. When a Notion MCP connector is set, the URL of the Notion page under which a results database is created."
                    },
                    "maxNotifyListings": {
                        "title": "Max items to export",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Optional. Cap on how many tutors are pushed to the connected MCP apps."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
