italki Teacher & Tutor Directory Scraper
Pricing
Pay per event
italki Teacher & Tutor Directory Scraper
Scrapes the italki language-teacher marketplace directory. Extracts teacher profiles including pricing, ratings, lesson counts, teaching languages, and spoken languages from the italki SSR pages. Supports filtering by language and limiting result count.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Scrape the complete italki language-teacher marketplace — extract teacher profiles including pricing, ratings, lesson history, teaching languages, and spoken languages across 150+ languages.
What it does
italki is the world's largest online language-tutor marketplace. This actor fetches teacher directory pages at https://www.italki.com/en/teachers/<language>, extracts the full server-side rendered profile data embedded in each page's __NEXT_DATA__ JSON blob, and saves structured records to a dataset.
No JavaScript rendering required — italki embeds complete teacher data in the HTML response, so every fetch is a lightweight HTTP request.
Output fields
| Field | Type | Description |
|---|---|---|
teacher_id | integer | Unique italki user ID |
nickname | string | Teacher display name |
native_language | string | Teacher's native language (e.g. english, chinese) |
country | string | Origin country ISO code (e.g. AU, US, CN) |
teaching_languages | string | Comma-separated languages taught |
languages_spoken | string | Comma-separated additional spoken languages |
session_price_usd | number | Per-session price in USD |
trial_price_usd | number | Trial lesson price in USD (null if no trial) |
avg_rating | number | Overall rating (0.0–5.0) |
lesson_count | integer | Total lessons completed |
student_count | integer | Total students |
profile_url | string | Direct URL to the teacher's italki profile |
intro_video_url | string | YouTube embed URL for the teacher's introduction video |
tags | string | Comma-separated specialty tags |
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
language | string | english | Language to scrape teachers for (e.g. english, spanish, japanese). Leave empty to scrape all 341 available languages. |
maxItems | integer | — | Maximum number of teacher records to return. |
Example: scrape English teachers
{"language": "english","maxItems": 500}
Example: scrape all languages
Leave language empty to discover all 341 available languages from the italki directory and paginate through each one. The actor deduplicates teachers who teach multiple languages.
{"maxItems": 10000}
Use cases
- Lead generation — build outreach lists of qualified language tutors
- Competitive pricing analysis — track session and trial prices across languages and countries
- Market research — analyze teacher supply by language, country, and rating tier
- Content aggregation — monitor teaching language availability and tutor profiles
Notes
- Prices are shown in USD (italki stores them in cents internally; this actor converts automatically)
- Teachers who teach multiple languages appear once per language page; the actor deduplicates by
teacher_idwithin a single run - The italki directory is server-side rendered — no browser or JavaScript execution required
- Datacenter proxies are sufficient; no Cloudflare or bot protection detected on directory pages