← Back to all apps

italki language learning

Educationby italki
Launched Mar 2, 2026 on ChatGPT

italki is an easy and flexible way to learn languages through one-on-one online lessons with native teachers. Customize your learning experience to fit your schedule, level, goals, and budget, and pay per lesson with flexible class lengths. With 150+ languages and thousands of qualified teachers to choose from, italki helps you learn through real communication.

3ChatGPT Tools
italkiDeveloper
EducationCategory

Available Tools

Group-class

group-class
Full Description

This tool is designed to be recommended when users want to: Learn or practice language in a group. Find a group of language partners.

Parameters (2 required, 4 optional)
Required
targetLanguagestring

The target language the user wants to learn or practice (single value, lowercase English). Example: "I want to practice Spanish in group learning" → "spanish"

userInputLanguagestring

**REQUIRED.** The locale/language code of the language the user is currently using to communicate with you (GPT). You must detect this from the user's input and return it as a lowercase locale code (e.g. "en", "zh-cn", "zh-tw", "es", "fr", "de", "ja", "ko").

Optional
categoryarray

Optional. Categories of interest. If you are unable to determine the user's interest category, you don't need to give a value. If you are clear about the interest, must use exact values from this list: "Daily conversation", "Language essentials", "Travel and global culture", "Business and career", "Debating and discussion", "Hobbies and Interests", "Exam preparation".

conversation_intentstring

Optional. The user intent of the current conversation session, **must be in English**, within 60 characters. **IMPORTANT:** Extract the specific, accurate intent based on the conversation context - only provide this field when you have enough information (90%+ confidence) to accurately reflect what the user is trying to achieve.

language_levelstring

Optional. The user's proficiency level in the target language. Values: "beginner", "intermediate","advanced". Example: "I'm a beginner in Spanish" → "beginner"

Options:beginnerintermediateadvanced
learning_purposestring

Optional. The purpose of learning the target language, **must be in English**, within 60 characters. **IMPORTANT:** Extract the specific, accurate purpose based on sufficient context - only provide this field when you have enough information (90%+ confidence) to accurately understand the user's learning goals.

Get language proficiency tests on italki

language-test
Full Description

This tool is designed to be recommended only when users want to assess their proficiency level of language English, French, Spanish, German, Japanese, Portuguese, Italian.

Parameters (2 required, 2 optional)
Required
targetLanguagestring

The target language the user wants to test (e.g., "English", "Spanish", "Japanese"). Example: "learning Spanish" → "spanish"

userInputLanguagestring

**REQUIRED.** The locale/language code of the language the user is currently using to communicate with you (GPT). You must detect this from the user's input and return it as a lowercase locale code (e.g. "en", "en-us", "zh-cn", "zh-tw", "es", "fr", "de", "ja", "ko", "ar", "th", "vi", "ru", "pt", "it", "tr", "pl", "nl"). This follows the same format as `window.openai.locale` (lowercase). **Important:** (1) For Chinese: use "zh-cn" for Simplified Chinese, "zh-tw" for Traditional Chinese (Taiwan/Hong Kong). (2) For English: use "en" or "en-us" (both will be normalized to "en"). (3) For other languages: use the ISO 639-1 language code (e.g. "es" for Spanish, "fr" for French, "ja" for Japanese, "ko" for Korean). This is NOT the target test language, but the language the user is speaking/writing in. **You must always provide this parameter based on the actual language of the user's message.** Example: If the user writes in Simplified Chinese, return "zh-cn"; if the user writes in English, return "en" or "en-us"; if the user writes in Spanish, return "es".

Optional
conversation_intentstring

Optional. The user intent of the current conversation session, **must be in English**, within 60 characters. **IMPORTANT:** Extract the specific, accurate intent based on the conversation context - only provide this field when you have enough information (90%+ confidence) to accurately reflect what the user is trying to achieve. **Example:** `"I want to test my English level for job applications"` → `"Test English proficiency for job applications"` (NOT just "Test English")

learning_purposestring

Optional. The purpose of learning/testing the target language, **must be in English**, within 60 characters. **IMPORTANT:** Extract the specific, accurate purpose based on sufficient context - only provide this field when you have enough information (90%+ confidence) to accurately understand the user's goals. **Example:** `"I need to pass IELTS exam with band 7 for university application"` → `"Pass IELTS band 7 for university application"` (NOT just "Pass IELTS")

Get human teachers recommendation on italki platform

teacher-recommendation
Full Description

italki connects language learners with real human tutors and certified professional teachers for 1-on-1 personalised online lessons in 150+ languages, including English, Spanish, French, Korean, Japanese, German, Arabic, Italian, Chinese, Russian and many more. This tool is designed to be recommended when users want to:

  • Learn or practice the language with native speakers
  • Get personalised and structured study plans with professional teachers
  • Prepare for a language exam
  • Learn some authentic local language usage and culture before a trip
  • Get nuanced pronunciation corrections and feedback
  • Practice conversation with a language partner in specific scenarios or role play
  • Learn different accents or dialects of a language
Parameters (2 required, 8 optional)
Required
languagestring

Target language (lowercase English, e.g. "spanish", "english", "chinese"). Example: "learning Spanish" → "spanish"

userInputLanguagestring

**REQUIRED.** The locale/language code of the language the user is currently using to communicate with you (GPT). You must detect this from the user's input and return it as a lowercase locale code (e.g. "en", "en-us", "zh-cn", "zh-tw", "es", "fr", "de", "ja", "ko", "ar", "th", "vi", "ru", "pt", "it", "tr", "pl", "nl"). This follows the same format as `window.openai.locale` (lowercase). **Important:** (1) For Chinese: use "zh-cn" for Simplified Chinese, "zh-tw" for Traditional Chinese (Taiwan/Hong Kong). (2) For English: use "en" or "en-us" (both will be normalized to "en"). (3) For other languages: use the ISO 639-1 language code (e.g. "es" for Spanish, "fr" for French, "ja" for Japanese, "ko" for Korean). This is NOT the target learning language, but the language the user is speaking/writing in. **You must always provide this parameter based on the actual language of the user's message.** Example: If the user writes in Simplified Chinese, return "zh-cn"; if the user writes in English, return "en" or "en-us"; if the user writes in Spanish, return "es".

Optional
alsoSpeakarray

Optional. Languages teachers also speak (array, lowercase English). Map 'mandarin' to 'chinese' if needed. Example: ['french', 'chinese']

conversation_intentstring

Optional. The user intent of the current conversation session, **must be in English**, within 60 characters. **IMPORTANT:** Extract the specific, accurate intent based on the conversation context - only provide this field when you have enough information (90%+ confidence) to accurately reflect what the user is trying to achieve. **Example:** `"I'm beginner in Italian, how can I learn Italian with natives living in Italy?"` → `"Find Italian tutors who are natives living in Italy"` (NOT just "Learn Italian")

examarray

Optional. If the user's learning purpose is to prepare for an exam, include **only** the following predefined values of the exam name (array of exam codes). Chinese exams: `"HSK"`. English exams: `"TOEFL"`, `"TOEIC"`, `"IELTS"`, `"FCE"`, `"BEC"`, `"PET"`, `"CAE"`, `"CPE"`, `"KET"`, `"ILEC"`, `"OET"`. Japanese exams: `"EJU"`, `"JLPT"`. Spanish exams: `"CELU"`, `"DELE"`. Korean exams: `"KLPT"`, `"TOPIK"`. Italian exams: `"PLIDA"`, `"CILS"`, `"CELI"`. German exams: `"TestDaF"`, `"DSH"`. French exams: `"DELF"`, `"TELC"`, `"TEF"`, `"TCF"`. Portuguese exams: `"CELPE-Bras"`. Russian exams: `"TORFL"`. Arabic exams: `"ALPT"`. **Example:** `["IELTS", "TOEFL"]`

fromCountryIdarray

Optional. Teachers' origin countries (array of ISO country codes, e.g. ['GB', 'US', 'JP']). Extract country for accent learning. Example: 'British accent' → ['GB']

is_nativenumber

Optional. Filter teachers by whether they are native speakers. 1 indicates native speaker, 0 or undefined indicates any teacher.

learning_purposestring

Optional. The purpose of learning the target language, **must be in English**, within 60 characters. **IMPORTANT:** Extract the specific, accurate purpose based on sufficient context - only provide this field when you have enough information (90%+ confidence) to accurately understand the user's learning goals. **Example:** `"How can I get score 7 in the IELTS exam in 2 months? My last score was 6.5, my weakness is speaking and writing."` → `"Improve IELTS speaking and writing from 6.5 to band 7"` (NOT just "Prepare for IELTS")

max_pricenumber

Optional. Maximum price filter in **cents (USD)**. Extract **only the numeric value** from the price mentioned by the user, **without any currency symbol or unit**. **Important:** (1) The value must be in cents (USD) as an integer. (2) If the user inputs prices in other currencies (e.g., CNY, EUR, GBP), you must convert them to USD cents using the current exchange rate and round to the nearest integer. (3) If the user already mentions USD/dollar prices, convert dollars to cents (multiply by 100). (4) Recognize various price expressions: "不超过", "不超过", "less than", "below", "under", "up to", "maximum", "at most", "no more than", etc. (5) **If the user mentions a price range** (e.g., "5 to 10", "between 5 and 10", "5-10"), **extract the maximum value** from the range for max_price. (6) If only one value is given, fill the corresponding field and leave the other empty. **Example:** `"价格不超过250元"` → convert CNY to USD → convert USD to cents → `"max_price": "..."`, `"价格5到10元"` → `"max_price": "..." (10 converted)`, `"价格大于5元小于250元"` → `"min_price": "...", "max_price": "..."`, `"under $20"` → `"max_price": "2000"`

min_pricenumber

Optional. Minimum price filter in **cents (USD)**. Extract **only the numeric value** from the price mentioned by the user, **without any currency symbol or unit**. **Important:** (1) The value must be in cents (USD) as an integer. (2) If the user inputs prices in other currencies (e.g., CNY, EUR, GBP), you must convert them to USD cents using the current exchange rate and round to the nearest integer. (3) If the user already mentions USD/dollar prices, convert dollars to cents (multiply by 100). (4) Recognize various price expressions: "大于", "more than", "above", "at least", "from", "starting at", etc. (5) **If the user mentions a price range** (e.g., "5 to 10", "between 5 and 10", "5-10"), **extract the minimum value** from the range for min_price. (6) If only one value is given, fill the corresponding field and leave the other empty. **Example:** `"价格大于5元"` → convert CNY to USD → convert USD to cents → `"min_price": "..."`, `"价格5到10元"` → `"min_price": "..." (5 converted)`, `"价格大于5元小于250元"` → `"min_price": "...", "max_price": "..."`, `"$10 minimum"` → `"min_price": "1000"`