Languages with the API
List the languages on your account and add a new one to study.
By YalangoUpdated October 7, 2026
Reading needs a key with the languages:read scope. Adding a language needs languages:write.
List your languages
curl https://yalango.com/api/v1/languages \
-H "Authorization: Bearer yal_your_key_here"
{
"languages": [
{
"target_language": "es",
"source_language": "en",
"level": "A2",
"currently_studying": true,
"name": { "en": "Spanish" },
"created_timestamp": "2026-01-14T09:22:31.000Z",
"last_updated_timestamp": "2026-03-02T18:05:12.000Z"
}
],
"last_active_language": "es"
}
target_languageis the language you are learning.source_languageis the language you already know - use it when creating decks, texts, tables or notebooks.last_active_languageis the target language you last used in the app. It isnullif you have never opened one.
Add a language
curl -X POST https://yalango.com/api/v1/languages \
-H "Authorization: Bearer yal_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"target_language": "fr",
"source_language": "en",
"level": "A1"
}'
| Field | Required | Notes |
|---|---|---|
target_language | Yes | The language you want to learn, for example es |
source_language | Yes | The language you already know. Must be different from target_language |
level | No | One of zero, native, A1, A2, B1, B2, C1, C2. Defaults to A1. Use zero for a wishlist language |
Both codes must be languages Yalango supports. An unknown code returns 400 unsupported_language. Adding a language you already study returns 409 language_exists.
POST /v1/languages accepts an Idempotency-Key header, so a retry after a timeout does not create a second entry.
What this does not cover
Removing a language, changing its level, or switching which one is active are only possible in the Yalango app. The API is for listing what you study and adding a new language when an assistant or script needs one.