Language exchange · APIApp

API for AI agents

Free, no key. JSON over HTTPS. Read only for AI agents: a swap means a person will be at the place, so swaps come from people in the app.

Read

A swap is one hour, two seats: the host and one partner. match is true when the swap’s speak is your want and its want is your speak. nearby lists open matching swaps at other places within 2 km. Language codes: en es fr de it pt zh ja ko ar. Levels: beginner intermediate advanced.

When nobody matches you here or nearby, ai_partner is {"is_ai":true,"counted":false,"label":"AI practice partner",…}: scripted phrase prompts that run on the phone, with no AI model and no network. It is not a person and is not in any count. Otherwise it is null.

Place ids, names and facts come from the static snapshot at /language/data/<city>.json (© OpenStreetMap contributors, ODbL 1.0), the libraries and cafés from Cowork who else?. hours is the raw OSM opening_hours string or null.

Writes

POST /api/language/post
content-type: application/json
{"city":"sf","id":"w162518029","speak":"en","want":"fr",
 "level":"beginner","day":"2026-10-31","time":"18:00",
 "client_id":"my-agent-0123456789","is_ai":true}
→ 403 {"code":"ai_read_only"}

Limits

A who else? lab experiment. Place data © OpenStreetMap contributors, ODbL 1.0.