← ablaut

The ablaut API

Verb conjugation for 20+ languages over HTTP or MCP. Every form is verified against two independent lexicons per language; answers are computed in microseconds by a native Rust engine.

New

ablaut now speaks MCP — use it from Claude Code, Cursor, or any MCP-capable agent, with the same key and limits. See the setup ↓

Quickstart

curl -H "x-api-key: YOUR_KEY" \
  "https://api.ablaut.dev/v1/conjugate?verb=appeler&lang=fr"
{
  "verb": "appeler",
  "lang": "fr",
  "us": 42,
  "table": {
    "infinitive": "appeler",
    "present": ["appelle", "appelles", "appelle",
                "appelons", "appelez", "appellent"],
    "auxiliary": "avoir",
    ...
  }
}

Authentication

Every /v1 request needs an x-api-key header. Create a key in your account — the free tier allows 2,000 requests/day and 60/minute, shared across the API and MCP. Requests without a valid key get 401; over the limit returns 429.

Endpoints

GET /v1/conjugate

ParameterDescription
verbThe infinitive (or citation form) to conjugate. Required. Whitespace, casing, and zu-/a-style particles are normalized.
langISO 639-1 (fr), ISO 639-3 (fra), or an English name (French), case-insensitive. Defaults to German.

Responses include us, the engine compute time in microseconds. Errors: 400 missing verb, 401 bad key, 429 rate limit reached, 422 unknown language or a string that is not an infinitive of the requested language — ablaut only conjugates real verbs, it never invents forms:

{ "error": "not a supported French verb" }

GET /v1/lemma

Reverse lookup: ?form=suis&lang=fr returns every lemma whose paradigm contains the form, with the slots it occupies — ambiguity included (suis matches both être and suivre). Productive coverage for French, Spanish, German, and English; irregular forms reverse in all 14 languages. Every match is verified by forward conjugation, so a cited slot always really contains the form.

{ "form": "suis", "matches": [
  { "infinitive": "être",   "slots": ["present 1sg"] },
  { "infinitive": "suivre", "slots": ["present 1sg", "present 2sg", "imperative 2sg"] } ] }

GET /v1/languages

The 20+ languages with ISO codes and maturity status (beta: verified at 100% agreement against two gold lexicons; wip: known gaps under active work).

Response shapes per language

Each language's table mirrors its real morphology instead of forcing one template: German carries both Konjunktiv rows and separable-prefix forms, Czech carries aspect and its counterpart, Spanish the Rioplatense voseo, Irish returns fully composed and mutated rows, Swedish tenses are single forms rather than person arrays. The reference below is generated from live engine output at build time, so it cannot drift. Person arrays run 1sg → 3pl (German adds the polite Sie row on the site only). Analytic tenses composed from auxiliaries (passé composé, passato prossimo, perfekti) are part of the API response for every language except Danish, whose auxiliary coverage is still partial.

Catalan — ca, sample: parlar, 11 fields
FieldTypeExample (parlar)
infinitivestringparlar
gerundstringparlant
pastParticiplestringparlat
imperativearray[5]parla, …
presentarray[6]parlo, …
imperfectarray[6]parlava, …
preteritearray[6]parlí, …
futurearray[6]parlaré, …
conditionalarray[6]parlaria, …
subjunctivePresentarray[6]parli, …
subjunctiveImperfectarray[6]parlés, …
Ukrainian — uk, sample: робити, 4 fields
FieldTypeExample (робити)
infinitivestringробити
presentarray[6]роблю, …
imperativearray[3]роби, …
pastarray[4]робив, …
Icelandic — is, sample: kalla, 8 fields
FieldTypeExample (kalla)
infinitivestringkalla
supinestringkallað
presentParticiplestringkallandi
imperativearray[2]kalla, …
presentarray[6]kalla, …
pastarray[6]kallaði, …
subjunctivePresentarray[6]kalli, …
subjunctivePastarray[6]kallaði, …
Japanese — ja, sample: 食べる, 6 fields
FieldTypeExample (食べる)
terminalstring食べる
continuativestring食べ
irrealisstring食べ
hypotheticalstring食べれ
imperativestring食べろ
paststring食べた
Korean — ko, sample: 먹다, 5 fields
FieldTypeExample (먹다)
infinitivestring먹다
intimatestring먹어
connectiveNistring먹으니
adnominalPresentstring먹는
formalPresentstring먹습니다
Dutch — nl, sample: werken, 6 fields
FieldTypeExample (werken)
infinitivestringwerken
presentarray[6]werk, …
pastarray[2]werkte, …
imperativestringwerk
presentParticiplestringwerkend
pastParticiplestringgewerkt
Russian — ru, sample: делать, 5 fields
FieldTypeExample (делать)
infinitivestringделать
nonPastarray[6]делаю, …
pastSingulararray[3]делал, …
pastPluralstringделали
imperativearray[2]делай, …
German — de, sample: aufstehen, 21 fields
FieldTypeExample (aufstehen)
infinitivestringaufstehen
zuInfinitivestringaufzustehen
perfectInfinitivestringaufgestanden sein
auxiliarystringsein
presentParticiplestringaufstehend
pastParticiplestringaufgestanden
imperativearray[2]steh auf, …
imperativeExtendedarray[2]stehen wir auf, …
presentarray[6]stehe auf, …
preteritearray[6]stand auf, …
konjunktiv1array[6]stehe auf, …
konjunktiv2array[6]stünde auf, …
perfectarray[6]bin aufgestanden, …
pluperfectarray[6]war aufgestanden, …
future1array[6]werde aufstehen, …
future2array[6]werde aufgestanden sein, …
wuerdearray[6]würde aufstehen, …
konj1Perfectarray[6]sei aufgestanden, …
konj1Futurearray[6]werde aufstehen, …
konj2Pluperfectarray[6]wäre aufgestanden, …
konj2Future2array[6]würde aufgestanden sein, …
French — fr, sample: appeler, 19 fields
FieldTypeExample (appeler)
infinitivestringappeler
auxiliarystringavoir
presentParticiplestringappelant
pastParticiplestringappelé
imperativearray[3]appelle, …
presentarray[6]appelle, …
imperfectarray[6]appelais, …
pastHistoricarray[6]appelai, …
futurearray[6]appellerai, …
conditionalarray[6]appellerais, …
subjunctivePresentarray[6]appelle, …
subjunctiveImperfectarray[6]appelasse, …
passeComposearray[6]ai appelé, …
plusQueParfaitarray[6]avais appelé, …
passeAnterieurarray[6]eus appelé, …
futurAnterieurarray[6]aurai appelé, …
conditionnelPassearray[6]aurais appelé, …
subjonctifPassearray[6]aie appelé, …
subjonctifPlusQueParfaitarray[6]eusse appelé, …
Spanish — es, sample: hablar, 21 fields
FieldTypeExample (hablar)
infinitivestringhablar
gerundstringhablando
pastParticiplestringhablado
presentVosstringhablás
imperativeVosstringhablá
imperativearray[5]habla, …
presentarray[6]hablo, …
imperfectarray[6]hablaba, …
preteritearray[6]hablé, …
futurearray[6]hablaré, …
conditionalarray[6]hablaría, …
subjunctivePresentarray[6]hable, …
subjunctiveImperfectarray[6]hablara, …
subjunctiveFuturearray[6]hablare, …
perfectoCompuestoarray[6]he hablado, …
pluscuamperfectoarray[6]había hablado, …
preteritoAnteriorarray[6]hube hablado, …
futuroPerfectoarray[6]habré hablado, …
condicionalPerfectoarray[6]habría hablado, …
subjuntivoPerfectoarray[6]haya hablado, …
subjuntivoPluscuamperfectoarray[6]hubiera hablado, …
Portuguese — pt, sample: falar, 20 fields
FieldTypeExample (falar)
infinitivestringfalar
gerundstringfalando
pastParticiplestringfalado
imperativearray[5]fala, …
personalInfinitivearray[6]falar, …
presentarray[6]falo, …
imperfectarray[6]falava, …
preteritearray[6]falei, …
pluperfectarray[6]falara, …
futurearray[6]falarei, …
conditionalarray[6]falaria, …
subjunctivePresentarray[6]fale, …
subjunctiveImperfectarray[6]falasse, …
subjunctiveFuturearray[6]falar, …
perfeitoCompostoarray[6]tenho falado, …
maisQuePerfeitoCompostoarray[6]tinha falado, …
futuroCompostoarray[6]terei falado, …
condicionalCompostoarray[6]teria falado, …
conjuntivoPerfeitoarray[6]tenha falado, …
conjuntivoMaisQuePerfeitoarray[6]tivesse falado, …
Italian — it, sample: parlare, 19 fields
FieldTypeExample (parlare)
infinitivestringparlare
auxiliarystringavere
gerundstringparlando
presentParticiplestringparlante
pastParticiplestringparlato
imperativearray[5]parla, …
presentarray[6]parlo, …
imperfectarray[6]parlavo, …
pastHistoricarray[6]parlai, …
futurearray[6]parlerò, …
conditionalarray[6]parlerei, …
subjunctivePresentarray[6]parli, …
subjunctiveImperfectarray[6]parlassi, …
passatoProssimoarray[6]ho parlato, …
trapassatoProssimoarray[6]avevo parlato, …
futuroAnteriorearray[6]avrò parlato, …
condizionalePassatoarray[6]avrei parlato, …
congiuntivoPassatoarray[6]abbia parlato, …
congiuntivoTrapassatoarray[6]avessi parlato, …
Swedish — sv, sample: tala, 15 fields
FieldTypeExample (tala)
infinitivestringtala
presentstringtalar
paststringtalade
supinestringtalat
imperativestringtala
infinitivePassivestringtalas
presentPassivestringtalas
pastPassivestringtalades
supinePassivestringtalats
presensRowarray[6]talar, …
preteritumRowarray[6]talade, …
perfektRowarray[6]har talat, …
pluskvamperfektRowarray[6]hade talat, …
futurumRowarray[6]ska tala, …
konditionalisRowarray[6]skulle tala, …
Romanian — ro, sample: a vorbi, 15 fields
FieldTypeExample (a vorbi)
infinitivestringvorbi
gerundstringvorbind
participlestringvorbit
imperativearray[2]vorbește, …
presentarray[6]vorbesc, …
imperfectarray[6]vorbeam, …
simplePerfectarray[6]vorbii, …
pluperfectarray[6]vorbisem, …
subjunctivearray[6]vorbesc, …
perfectCompusarray[6]am vorbit, …
viitorarray[6]voi vorbi, …
conditionalPrezentarray[6]aș vorbi, …
subjunctivePerfectarray[6]fi vorbit, …
conditionalPerfectarray[6]aș fi vorbit, …
viitorAnteriorarray[6]voi fi vorbit, …
English — en, sample: run, 11 fields
FieldTypeExample (run)
infinitivestringrun
paststringran
pastParticiplestringrun
presentParticiplestringrunning
thirdSingularstringruns
presentRowarray[6]run, …
pastRowarray[6]ran, …
presentPerfectRowarray[6]have run, …
pastPerfectRowarray[6]had run, …
futureRowarray[6]will run, …
futurePerfectRowarray[6]will have run, …
Danish — da, sample: virke, 9 fields
FieldTypeExample (virke)
infinitivestringvirke
presentstringvirker
paststringvirkede
pastParticiplestringvirket
imperativestringvirk
presentParticiplestringvirkende
infinitivePassivestringvirkes
presentPassivestringvirkes
pastPassivestringvirkedes
Czech — cs, sample: mluvit, 9 fields
FieldTypeExample (mluvit)
infinitivestringmluvit
aspectstringimperfective
presentarray[6]mluvím, …
imperativearray[3]mluv, …
pastParticiplearray[6]mluvil, …
passiveParticiplearray[6]mluven, …
transgressivearray[3]mluvě, …
minulyCasarray[6]mluvil jsem, …
kondicionalarray[6]mluvil bych, …
Slovenian — sl, sample: delati, 8 fields
FieldTypeExample (delati)
infinitivestringdelati
supinestringdelat
presentarray[9]delam, …
imperativearray[5]delaj, …
participlearray[9]delal, …
preteklikarray[9]sem delal, …
prihodnjikarray[9]bom delal, …
pogojnikarray[9]bi delal, …
Estonian — et, sample: rääkima, 14 fields
FieldTypeExample (rääkima)
infinitivestringrääkima
daInfinitivestringrääkida
presentarray[6]räägin, …
pastarray[6]rääkisin, …
conditionalarray[6]räägiksin, …
imperativearray[4]räägi, …
presentImpersonalstringräägitakse
pastImpersonalstringräägiti
quotativestringrääkivat
presentParticiplestringrääkiv
nudParticiplestringrääkinud
tudParticiplestringräägitud
perfectarray[6]olen rääkinud, …
pluperfectarray[6]olin rääkinud, …
Finnish — fi, sample: puhua, 17 fields
FieldTypeExample (puhua)
infinitivestringpuhua
presentarray[6]puhun, …
pastarray[6]puhuin, …
conditionalarray[6]puhuisin, …
potentialarray[6]puhunen, …
imperativearray[5]puhu, …
presentPassivestringpuhutaan
pastPassivestringpuhuttiin
conditionalPassivestringpuhuttaisiin
potentialPassivestringpuhuttaneen
imperativePassivestringpuhuttakoon
presentParticiplestringpuhuva
pastParticiplestringpuhunut
presentPassiveParticiplestringpuhuttava
pastPassiveParticiplestringpuhuttu
perfektiarray[6]olen puhunut, …
pluskvamperfektiarray[6]olin puhunut, …
Irish — ga, sample: glan, 10 fields
FieldTypeExample (glan)
infinitivestringglan
verbalNounstringglanadh
verbalAdjectivestringglanta
presentarray[7]glanaim, …
pastarray[7]ghlan mé, …
pastHabitualarray[7]ghlanainn, …
futurearray[7]glanfaidh mé, …
conditionalarray[7]ghlanfainn, …
imperativearray[7]glanaim, …
subjunctivearray[7]glana mé, …
Turkish — tr, sample: gitmek, 8 fields
FieldTypeExample (gitmek)
infinitivestringgitmek
aoristarray[6]giderim, …
progressivearray[6]gidiyorum, …
futurearray[6]gideceğim, …
pastarray[6]gittim, …
evidentialarray[6]gitmişim, …
necessitativearray[6]gitmeliyim, …
imperativearray[2]git, …
Hindi — hi, sample: करना, 8 fields
FieldTypeExample (करना)
infinitivestringकरना
obliqueInfinitivestringकरने
imperativearray[3]कर, …
subjunctivearray[6]करूं, …
futureMasculinearray[6]करूंगा, …
futureFemininearray[6]करूंगी, …
imperfectivearray[3]करता, …
perfectivearray[3]किया, …
Swahili — sw, sample: kusoma, 11 fields
FieldTypeExample (kusoma)
infinitivestringkusoma
infinitiveNegativestringkutosoma
imperativearray[2]soma, …
habitualstringhusoma
presentarray[6]ninasoma, …
presentNegativearray[6]sisomi, …
pastarray[6]nilisoma, …
futurearray[6]nitasoma, …
perfectarray[6]nimesoma, …
subjunctivearray[6]nisome, …
gnomicarray[6]nasoma, …
Tamil — ta, sample: படி, 11 fields
FieldTypeExample (படி)
rootstringபடி
presentarray[10]படிகிறேன், …
pastarray[10]படித்தேன், …
futurearray[10]படிப்பேன், …
infinitivestringபடிக்க
adverbialstringபடித்து
relativePaststringபடித்த
relativePresentstringபடிகிற
relativeFuturestringபடியும்
conditionalstringபடித்தால்
imperativearray[2]படி, …
Telugu — te, sample: చేయు, 5 fields
FieldTypeExample (చేయు)
infinitivestringచేయు
pastarray[8]చేశాను, …
presentDurativearray[8]చేస్తున్నాను, …
futurearray[8]చేస్తాను, …
imperativearray[2]చేయు, …
Tagalog — tl, sample: kain, 3 fields
FieldTypeExample (kain)
infinitivestringkain
actorarray[3]kumain, …
patientarray[3]kinain, …
Armenian — hy, sample: գրել, 22 fields
FieldTypeExample (գրել)
infinitivestringգրել
presentarray[6]գրում եմ, …
imperfectarray[6]գրում էի, …
aoristarray[6]գրեցի, …
perfectarray[6]գրել եմ, …
pluperfectarray[6]գրել էի, …
futurearray[6]գրելու եմ, …
futureInPastarray[6]գրելու էի, …
subjunctiveFuturearray[6]գրեմ, …
subjunctivePastarray[6]գրեի, …
conditionalarray[6]կգրեմ, …
conditionalPastarray[6]կգրեի, …
imperativearray[2]գրիր, …
converbImperfectivestringգրում
converbPerfectivestringգրել
converbFuturestringգրելու
converbSimultaneousstringգրելիս
connegativestringգրի
participleSubjectstringգրող
participleResultativestringգրած
passivestringգրվել
causativestringգրեցնել
Persian — fa, sample: کردن, 15 fields
FieldTypeExample (کردن)
infinitivestringکردن
aoristarray[6]کنم, …
presentarray[6]میکنم, …
subjunctivearray[6]بکنم, …
pastarray[6]کردم, …
imperfectarray[6]میکردم, …
perfectarray[6]کردهام, …
pluperfectarray[6]کرده بودم, …
futurearray[6]خواهم کرد, …
perfectSubjunctivearray[6]کرده باشم, …
presentProgressivearray[6]دارم میکنم, …
pastProgressivearray[6]داشتم میکردم, …
imperativearray[2]بکن, …
pastParticiplestringکرده
presentParticiplestringکننده
Kannada — kn, sample: ಮಾಡು, 5 fields
FieldTypeExample (ಮಾಡು)
infinitivestringಮಾಡು
pastarray[10]ಮಾಡಿದೆನು, …
presentarray[10]ಮಾಡುತ್ತೇನೆ, …
futurearray[10]ಮಾಡುವೆನು, …
imperativearray[2]ಮಾಡು, …
Gujarati — gu, sample: કરવું, 10 fields
FieldTypeExample (કરવું)
infinitivestringકરવું
verbalNounstringકરવાનું
conjunctivestringકરી
consecutivestringકરીને
presentarray[5]કરું, …
futurearray[5]કરીશ, …
imperativearray[4]કર, …
perfectivearray[5]કર્યો, …
imperfectivearray[5]કરતો, …
presentProgressivearray[5]કરું છું, …
Urdu — ur, sample: کرنا, 8 fields
FieldTypeExample (کرنا)
infinitivestringکرنا
obliqueInfinitivestringکرنے
imperativearray[3]کر, …
subjunctivearray[6]کروں, …
futureMasculinearray[6]کروں گا, …
futureFemininearray[6]کروں گی, …
imperfectivearray[3]کرتا, …
perfectivearray[3]کیا, …
Bengali — bn, sample: করা, 14 fields
FieldTypeExample (করা)
infinitivestringকরা
verbalInfinitivestringকরতে
perfectivestringকরে
habitualParticiplestringকরে
progressiveParticiplestringকরতে
conditionalstringকরলে
presentarray[5]করি, …
pastarray[5]করলাম, …
futurearray[5]করবো, …
habitualarray[5]করতাম, …
presentProgressivearray[5]করছি, …
pastProgressivearray[5]করছিলাম, …
presentPerfectarray[5]করেছি, …
pastPerfectarray[5]করেছিলাম, …
Marathi — mr, sample: बसणे, 11 fields
FieldTypeExample (बसणे)
infinitivestringबसणे
completivestringबसून
purposivestringबसायला
prospectivestringबसणार
presentMasculinearray[6]बसतो, …
presentFemininearray[6]बसते, …
perfectiveMasculinearray[6]बसलो, …
perfectiveFemininearray[6]बसले, …
subjunctivearray[6]बसावा, …
futurearray[6]बसेन, …
imperativearray[5]बस, …
Afrikaans — af, sample: loop, 6 fields
FieldTypeExample (loop)
infinitivestringloop
presentstringloop
perfectstringhet geloop
pastParticiplestringgeloop
presentParticiplestringlopende
imperativestringloop
Norwegian Bokmål — nb, sample: kaste, 7 fields
FieldTypeExample (kaste)
infinitivestringkaste
presentstringkaster
paststringkastet
pastParticiplestringkastet
imperativestringkast
presentParticiplestringkastende
presentPassivestringkastes
Macedonian — mk, sample: работи, 8 fields
FieldTypeExample (работи)
lemmastringработи
presentarray[6]работам, …
imperfectarray[6]работев, …
imperfectParticiplearray[4]работел, …
imperativearray[2]работи, …
passiveParticiplestringработен
converbstringработејќи
verbalNounstringработење
Bulgarian — bg, sample: гледам, 10 fields
FieldTypeExample (гледам)
presentstringгледам
presentAllarray[6]гледам, …
aoristarray[6]гледах, …
imperfectarray[6]гледах, …
imperativearray[2]гледаи, …
pastParticiplearray[4]гледал, …
presentParticiplearray[4]гледащ, …
passiveParticiplearray[4]гледан, …
verbalAdverbstringгледаики
verbalNounstringгледане
Greek — el, sample: γράφω, 6 fields
FieldTypeExample (γράφω)
presentstringγράφω
presentAllarray[6]γράφω, …
imperfectarray[6]έγραφα, …
aoristarray[6]έγραψα, …
imperativearray[2]γράφ', …
gerundstringγράφοντας
Albanian — sq, sample: punoj, 7 fields
FieldTypeExample (punoj)
presentstringpunoj
presentAllarray[6]punoj, …
imperfectarray[6]punoja, …
aoristarray[6]punova, …
admirativearray[6]punuakam, …
imperativearray[2]puno, …
participlestringpunuar
Polish — pl, sample: robić, 5 fields
FieldTypeExample (robić)
infinitivestringrobić
presentarray[6]robię, …
futurearray[6]będziemy robiły, …
pastarray[5]robił, …
imperativearray[3]rób, …
Azerbaijani — az, sample: sevmək, 6 fields
FieldTypeExample (sevmək)
infinitivestringsevmək
presentarray[6]sevirəm, …
pastarray[6]sevdim, …
futurearray[6]sevəcəyəm, …
aoristarray[6]sevərəm, …
imperativearray[2]sev, …
Uzbek — uz, sample: ishlamoq, 6 fields
FieldTypeExample (ishlamoq)
infinitivestringishlamoq
presentarray[2]ishlaydi, …
pastarray[2]ishladi, …
futurearray[2]ishlayajak, …
aoristarray[2]ishlar, …
imperativearray[2]ishlasin, …
Turkmen — tk, sample: atmak, 5 fields
FieldTypeExample (atmak)
infinitivestringatmak
presentarray[6]atýaryn, …
pastarray[6]atdym, …
aoristarray[6]ataryn, …
imperativearray[2]at, …
Belarusian — be, sample: чытаць, 5 fields
FieldTypeExample (чытаць)
infinitivestringчытаць
presentarray[6]чытаю, …
futurearray[6]чытаю, …
pastarray[4]чытаў, …
imperativearray[2]чытай, …
Welsh — cy, sample: canu, 8 fields
FieldTypeExample (canu)
verbalNounstringcanu
presentarray[7]canaf, …
imperfectarray[7]canwn, …
preteritearray[7]cenais, …
pluperfectarray[7]canaswn, …
subjunctivearray[7]canwyf, …
imperativearray[6]cân, …
participlestringcanedigcanadwy
Faroese — fo, sample: kasta, 7 fields
FieldTypeExample (kasta)
infinitivestringkasta
presentarray[4]kasti, …
pastarray[4]kastaði, …
imperativearray[2]kasta, …
supinestringkastað
presentParticiplestringkastandi
pastParticiplestringkastaður
Galician — gl, sample: falar, 14 fields
FieldTypeExample (falar)
infinitivestringfalar
gerundstringfalando
participlearray[4]falado, …
presentarray[6]falo, …
imperfectarray[6]falaba, …
preteritearray[6]falei, …
pluperfectarray[6]falara, …
futurearray[6]falarei, …
conditionalarray[6]falaría, …
presentSubjunctivearray[6]fale, …
imperfectSubjunctivearray[6]falase, …
futureSubjunctivearray[6]falar, …
personalInfinitivearray[6]falar, …
imperativearray[2]fala, …
Kazakh — kk, sample: алу, 5 fields
FieldTypeExample (алу)
infinitivestringалу
aoristarray[8]аламын, …
pastarray[8]алдым, …
futurearray[8]алармын, …
imperativearray[3]ал, …
Latin — la, sample: amō, 6 fields
FieldTypeExample (amō)
citationstringamō
infinitivestringamāre
presentarray[6]amō, …
imperfectarray[6]amābam, …
futurearray[6]amābō, …
imperativearray[2]amā, …
Luxembourgish — lb, sample: schaffen, 4 fields
FieldTypeExample (schaffen)
infinitivestringschaffen
presentarray[6]schaffen, …
imperativearray[2]schaff, …
pastParticiplestringgeschafft
Occitan — oc, sample: parlar, 11 fields
FieldTypeExample (parlar)
infinitivestringparlar
presentarray[6]parle, …
imperfectarray[6]parlava, …
preteritearray[6]parlei, …
futurearray[6]parlarai, …
conditionalarray[6]parlariá, …
presentSubjunctivearray[6]parle, …
imperfectSubjunctivearray[6]parlesse, …
imperativearray[3]parla, …
pastParticiplestringparlat
gerundstringparlant
Tatar — tt, sample: язу, 6 fields
FieldTypeExample (язу)
infinitivestringязу
presentarray[6]язам, …
pastarray[6]яздым, …
futurearray[6]язармын, …
conditionalarray[6]язсам, …
imperativearray[2]яз, …
Yiddish — yi, sample: שרײַבן, 5 fields
FieldTypeExample (שרײַבן)
infinitivestringשרײַבן
presentarray[6]שרײַב, …
imperativearray[2]שרײַב, …
presentParticiplestringשרײַבנדיק
pastParticiplestringגעשריבן
Arabic — ar, sample: كتب, 10 fields
FieldTypeExample (كتب)
lemmastringكتب
perfectarray[13]كَتَبْتُ, …
imperfectarray[13]أَكْتُبُ, …
subjunctivearray[13]أَكْتُبَ, …
jussivearray[13]أَكْتُبْ, …
imperativearray[5]اُكْتُبْ, …
perfectPassivearray[13]كُتِبْتُ, …
imperfectPassivearray[13]أُكْتَبُ, …
subjunctivePassivearray[13]أُكْتَبَ, …
jussivePassivearray[13]أُكْتَبْ, …
Hebrew — he, sample: שמר, 6 fields
FieldTypeExample (שמר)
lemmastringשמר
pastarray[10]שמרתי, …
presentarray[4]שומר, …
futurearray[10]אשמור, …
imperativearray[4]שמור, …
infinitivestringלשמור
Amharic — am, sample: ሄደ, 6 fields
FieldTypeExample (ሄደ)
lemmastringሄደ
perfectivearray[8]ሄድኩ, …
perfectarray[8]ሄጃለሁ, …
imperfectivearray[8]እሄዳለሁ, …
imperfectiveNfinarray[8]እሄድ, …
jussivearray[8]ልሂድ, …
Indonesian — id, sample: tulis, 4 fields
FieldTypeExample (tulis)
rootstringtulis
activearray[3]menulis, …
passivearray[3]ditulis, …
derivedarray[3]tertulis, …
Zulu — zu, sample: hamba, 9 fields
FieldTypeExample (hamba)
infinitivestringukuhamba
imperativearray[2]hamba, …
presentarray[6]ngihamba, …
presentLongarray[6]ngiyahamba, …
futurearray[6]ngizohamba, …
recentPastarray[6]ngihambile, …
remotePastarray[6]ngahamba, …
subjunctivearray[6]ngihambe, …
participlearray[6]ngihamba, …

MCP

The same engine as an MCP server, for Claude Code, Cursor, or any MCP-capable agent:

claude mcp add ablaut --env ABLAUT_API_KEY=YOUR_KEY -- npx -y @v4nn4/ablaut-mcp
{
  "mcpServers": {
    "ablaut": {
      "command": "npx",
      "args": ["-y", "@v4nn4/ablaut-mcp"],
      "env": { "ABLAUT_API_KEY": "YOUR_KEY" }
    }
  }
}

Tools: conjugate(verb, language) returning the same table as the HTTP API, and list_languages(). Set ABLAUT_API_URL to point at another instance.

Machine-readable spec

OpenAPI 3.1: https://api.ablaut.dev/openapi.json. The library behind the API is open source: ablaut-dev/ablaut (Rust, Python, WebAssembly).