Ukrainian Frequency · word lookup · dictionary snapshot 2026-10-03

Look up a word

Stress, level, rank, gloss, audio and definitions for any of the 12,000 lemmas, inflected forms included, from memory.

GET /api/uk/lookup/<word>stress v1.0.09,100 of 12,000 lemmas defineddefinitions CC BY-SA 3.0nothing retained
try

Why it exists

Andrij Rudnitsky, who maintains the lang-uk stress dictionary this column is built on, described the reading problem exactly: a word you do not know stops the sentence, and opening a dictionary ends the reading. His answer was to containerize Daniel Klinger’s open Ukrainian-to-English dictionary, put an API on it, and read it from his watch. Dictate the word, see the meaning, keep going, under a second. This page is that idea run over this list’s own tiers, so the answer carries the stress, the validated level and the open recording as well as the definition, and so an inflected form lands on its headword: the text profiler’s form index knows 185,000 forms of the 12,000 lemmas, which is what speech to text hands over when a reader stops on операцію.

The dictionary

dmklinger/ukrainian is 30,111 Ukrainian headwords with stress marks, English definitions, gender and animacy, scraped by its author from the English Wiktionary and from DBnary (which carries definitions for words Wiktionary has no page for yet), with forms filled from the ULIF national dictionary. It is CC BY-SA 3.0, so every answer here that carries a definition carries that license and his name. The committed dmk-dictionary.json snapshot keeps the 9,444 entries whose headword is a list lemma (SHA-256 6a0769103618fd12 of the upstream file, fetched 2026-10-03), without the forms, which thread 04 already publishes for this list.

9,100
lemmas with an entry
75.8%
share of the list
2,900
lemmas without one

The 2,900 gaps, by frequency rank, are a generated worklist under contrib/dmklinger-ukrainian/, the same shape as the Wiktionary and dict_uk worklists: a maintainer can take the top of it and know which missing words would buy the most text.

A third reading of the stress column

The dictionary stresses its headwords, so it can be read against the stress column. It is not independent evidence: both read the English Wiktionary, so an agreement is mostly the same source seen twice. It is still a check that the column’s pipeline did not drop or move a mark on the way through, and the disagreements are a short list worth reading by eye.

8,486
polysyllables compared
8,470
agree
99.8%
agreement
16
disagree

Of the 9,100 covered lemmas, 613 are monosyllables and 1 is a headword the dictionary leaves unmarked, so 8,486 were compared. 13 agree on a variant the column lists second rather than its primary; 129 dictionary headwords carry Wiktionary’s either-stress notation (two marks, read here as two readings); hyphenated compounds are compared part by part, since the column marks the main stress alone where the dictionary marks every part.

ranklemmathe columnthe dictionarycolumn status
183проектпроє́ктпрое́ктspelling variant
925черговийчергови́йчерго́вийdictionary
1,276самоса́мосамо́dictionary
2,883все-такивсе́-такивсе-таки́dictionary
3,935унаслідокуна́слідокунаслі́докdictionary
4,321ДанилоДани́лоДанило́proper noun
4,766МиколайМикола́йМико́лайproper noun
5,923ОлійникОлі́йникОлійни́кproper noun
6,054нульовийнульови́йнульо́вийadjudicated
7,869АлінаА́лінаАлі́наproper noun
8,323ВолодарВо́лодарволо́да́рproper noun
8,778минулорічнийминулорі́чнийминулорічни́йadjudicated
9,316ПоділПоді́лпо́ділproper noun
9,630поверхпове́рхпо́верхadjudicated
10,524підданийпі́дданийпідда́нийdictionary
11,769черговийчергови́йчерго́вийdictionary
Six of the rows are proper nouns, which the column keeps out of scope; the rest are questions in both directions and go into the dictionary’s worklist as such. Nothing in the column changes on the dictionary’s say-so: a row moves only through the overrides ledger, with evidence.

On your wrist

The endpoint takes a word in the path or as q, and format=text returns the answer as plain text, three definitions at most, built to be read on a small screen. An Apple Shortcut, five actions:

  1. New Shortcut, named for the Watch.
  2. Dictate Text, language Ukrainian.
  3. URL: https://www.jakelawrence.xyz/api/uk/lookup?q= followed by the Dictated Text variable, then &format=text. (A text variable in the query string needs no escaping; in the path it would.)
  4. Get Contents of URL.
  5. Show Result.

What comes back:

curl -s 'https://www.jakelawrence.xyz/api/uk/lookup/операцію?format=text'

опера́ція  noun · B1 · rank 435
operation (a planned undertaking); surgery (procedure involving major incisions); transaction (finance: transfer of funds into, out of, or from an account)
female, inanimate

Speech to text sometimes hands over a phrase; the lookup answers the first word and says which. A word that is not one of the 12,000 lemmas, or a form the paradigm tables do not list, comes back as a plain miss rather than a guess; the lemmatizer is the tool for naming an unknown word’s headword.

The contract

The JSON answer, one entry shown:

{
  "query": "операцію",
  "key": "операцію",
  "via": "form",
  "entries": [
    {
      "rank": 435,
      "lemma": "операція",
      "pos": "NOUN",
      "level": "B1",
      "gloss": "operation",
      "ppm": 299.62,
      "stress": {
        "form": "опера́ція",
        "variants": [],
        "status": "dictionary"
      },
      "audio": "https://upload.wikimedia.org/wikipedia/commons/transcoded/d/dd/Uk-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D1%96%D1%8F.ogg/Uk-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D1%96%D1%8F.ogg.mp3",
      "dictionary": [
        {
          "head": "опера́ція",
          "pos": "noun",
          "info": "female, inanimate",
          "defs": [
            "operation (a planned undertaking)",
            "surgery (procedure involving major incisions)",
            "transaction (finance: transfer of funds into, out of, or from an account)"
          ]
        }
      ]
    }
  ],
  "text": "опера́ція  noun · B1 · rank 435\noperation (a planned undertaking); surgery (procedure involving major incisions); transaction (finance: transfer of funds into, out of, or from an account)\nfemale, inanimate",
  "meta": {
    "list": "v0.2.0",
    "column": "v1.0.0",
    "forms": "v1.2.0",
    "dictionary": {
      "source": "https://github.com/dmklinger/ukrainian",
      "license": "CC BY-SA 3.0",
      "fetched": "2026-10-03"
    },
    "ms": 0,
    "attribution": {}
  }
}

Per entry: rank and pos from the list, level and gloss from the validated course tier (null where the profile has no label; nothing is guessed), ppm (per million running words), stress with the primary form, the accepted variants and the column’s status, audio (a Wikimedia Commons recording or null), and dictionary, every dmklinger entry for the headword with its own label, gender and definitions in its order. via says whether the query matched a headword or an inflected form; text is the plain-text answer; meta names the tiers and carries the attribution.

limitvalueover it
query length64 characters413, one word at a time
requests per IP120 / minute, 2,000 / hour429 with Retry-After in seconds
empty query 400

Anonymous, no key, readable cross-origin. Answers are cacheable (a day at the edge, five minutes in a browser) because the data changes only with a deploy. The word is not logged; the only log line is whether it hit a headword, a form, or nothing. Answers that carry definitions are CC BY-SA 3.0 (dmklinger/ukrainian); the list fields are CC BY 4.0 and the stress fields CC BY-SA 4.0, as on the hub.

Elsewhere in the instrument

Back to the overview · All research

The crosswalk is CC-BY-NC-SA-4.0: every row carries a PULS level, and the PULS levels are CC BY-NC-SA 4.0 at the authors’ decision, so NonCommercial and share-alike propagate to the combined table. The Borodin volumes stay CC-BY-4.0 in their own right. Cite the sources it joins, not only the file.

  • Minimums (CC-BY-4.0): Borodin and Turkevych, A1, 10.18452/28236; Borodin and Lazarenko, A2, 10.11584/opus4-1448.
  • Validated levels (CC-BY-NC-SA-4.0, redistributed by the authors’ permission): Synchak, Starko, Burak and Svystun, Ukrainian Vocabulary Profile / PULS. Cite as: Профіль української лексики (ПУЛЬС) / О. Синчак, В. Старко, М. Бурак, М. Свистун та ін. Львів: Школа української мови та культури УКУ, 2026.
  • Frequency ranks (CC-BY-4.0): UberText 2.0, Chaplynskyi 2023, lang-uk.

Need something like this built?

I build the AI tools and automations a team adopts, and the full-stack apps and data pipelines under them, and ship them to production. Tell me the problem in a sentence and I'll give you an honest read on fit within a day.

Work with me →