{"openapi":"3.1.0","info":{"title":"Old Norse dictionary access","version":"2.0.0"},"paths":{"/api/health":{"get":{"tags":["norse"],"summary":"Liveness probe","operationId":"health_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"type":"object","title":"Response Health Api Health Get"}}}}}}},"/api":{"get":{"tags":["norse"],"summary":"API usage","operationId":"index_api_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Index Api Get"}}}}}}},"/api/search":{"get":{"tags":["norse"],"summary":"Look an Old Norse word up","operationId":"search_api_search_get","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":80,"description":"The word to look up. non (default): a single Old Norse word — any form; an inflected form is resolved to its lemma via cached paradigms (see search_method in the response); diacritics are optional once a paradigm is cached ('madr' and 'mathr' both find maðr, 'monnum' finds mǫnnum). eng: the English word whose Old Norse equivalents you want — multiword entries like 'apple tree' work.","title":"Query"},"description":"The word to look up. non (default): a single Old Norse word — any form; an inflected form is resolved to its lemma via cached paradigms (see search_method in the response); diacritics are optional once a paradigm is cached ('madr' and 'mathr' both find maðr, 'monnum' finds mǫnnum). eng: the English word whose Old Norse equivalents you want — multiword entries like 'apple tree' work."},{"name":"search_language","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SearchLanguage","description":"Query language: non looks the Old Norse word up directly; eng finds an English word's per-sense Old Norse equivalents (the translations block) and expands them into full entries.","default":"non"},"description":"Query language: non looks the Old Norse word up directly; eng finds an English word's per-sense Old Norse equivalents (the translations block) and expands them into full entries."},{"name":"include_forms","in":"query","required":false,"schema":{"type":"boolean","description":"Attach each match's full inflection table inline. Bounded by the per-search cap. Defaults to false here — the MCP tool defaults to true.","default":false,"title":"Include Forms"},"description":"Attach each match's full inflection table inline. Bounded by the per-search cap. Defaults to false here — the MCP tool defaults to true."},{"name":"max_forms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":12,"minimum":0},{"type":"null"}],"description":"Override the number of inline tables this request (0–12).","title":"Max Forms"},"description":"Override the number of inline tables this request (0–12)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/inflections":{"get":{"tags":["norse"],"summary":"Inflection table","operationId":"inflections_api_inflections_get","parameters":[{"name":"entry_id","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Za-zÁáÉéÍíÓóÚúÝýÆæÐðÞþǪǫØøŒœǾǿÖö][A-Za-zÁáÉéÍíÓóÚúÝýÆæÐðÞþǪǫØøŒœǾǿÖö\\-']{0,79}$","description":"Page title (the lemma) from a handle.","title":"Entry Id"},"description":"Page title (the lemma) from a handle."},{"name":"word_class","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":24,"pattern":"^[a-z ]+$","description":"Part-of-speech section from a handle, e.g. verb, noun.","title":"Word Class"},"description":"Part-of-speech section from a handle, e.g. verb, noun."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NorseNominalParadigm"},{"$ref":"#/components/schemas/NorseVerbalParadigm"},{"$ref":"#/components/schemas/ParadigmNotFound"}],"discriminator":{"propertyName":"category","mapping":{"nominal":"#/components/schemas/NorseNominalParadigm","verbal":"#/components/schemas/NorseVerbalParadigm","not_found":"#/components/schemas/ParadigmNotFound"}},"title":"Response Inflections Api Inflections Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Entry":{"properties":{"headword":{"type":"string","title":"Headword"},"part_of_speech":{"type":"string","title":"Part Of Speech","default":""},"entry_id":{"type":"string","title":"Entry Id","description":"Page title — feed to get_inflections.","default":""},"word_class":{"type":"string","title":"Word Class","description":"POS section — feed to get_inflections.","default":""},"senses":{"items":{"$ref":"#/components/schemas/Sense"},"type":"array","title":"Senses"}},"type":"object","required":["headword"],"title":"Entry","description":"One Old Norse entry on the page: the headword (page title) with one\npart-of-speech section's senses."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InflectionHandle":{"properties":{"entry_id":{"type":"string","title":"Entry Id","description":"Wiktionary page title — the lemma itself."},"word_class":{"type":"string","title":"Word Class","description":"Part-of-speech section, e.g. 'verb', 'noun'."},"context":{"type":"string","title":"Context","description":"Nearby headword / hint.","default":""},"pos_hint":{"type":"string","title":"Pos Hint","description":"Part-of-speech hint.","default":""},"forms":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/NorseNominalParadigm"},{"$ref":"#/components/schemas/NorseVerbalParadigm"},{"$ref":"#/components/schemas/ParadigmNotFound"}],"discriminator":{"propertyName":"category","mapping":{"nominal":"#/components/schemas/NorseNominalParadigm","not_found":"#/components/schemas/ParadigmNotFound","verbal":"#/components/schemas/NorseVerbalParadigm"}}},{"type":"null"}],"title":"Forms","description":"The full paradigm, populated when a search is asked to include forms. None when not requested or beyond the cap."}},"type":"object","required":["entry_id","word_class"],"title":"InflectionHandle","description":"A structured anchor for fetching a full paradigm: feed ``entry_id`` (the page\ntitle) + ``word_class`` (the POS section) to ``get_inflections`` — or ask\n``search`` to include the table inline (``forms``)."},"NorseNominalParadigm":{"properties":{"category":{"type":"string","const":"nominal","title":"Category","default":"nominal"},"entry_id":{"type":"string","title":"Entry Id"},"word_class":{"type":"string","title":"Word Class"},"found":{"type":"boolean","const":true,"title":"Found","default":true},"cases":{"additionalProperties":{"$ref":"#/components/schemas/NorseNumberForms"},"type":"object","title":"Cases","description":"Case key (lower-case: 'nominative', 'genitive', …; nouns prefix the definiteness — 'indefinite nominative'; adjectives prefix the caption-derived declension class/degree and suffix the gender — 'strong nominative feminine') → its singular/plural forms, in table order."},"source":{"type":"string","title":"Source","default":"Wiktionary, the free dictionary (en.wiktionary.org), Old Norse entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)"}},"type":"object","required":["entry_id","word_class","cases"],"title":"NorseNominalParadigm","description":"Declension of a noun/adjective/etc.: case key → {singular, plural}.\n\nNoun tables split by definiteness, folded into the key as a prefix:\n'indefinite nominative', 'definite genitive'. Adjective tables split by gender\n(suffixed: 'nominative feminine') and come one per declension class and degree,\nfolded in as a caption-derived prefix: 'strong nominative feminine',\n'weak superlative accusative neuter', 'comparative dative masculine'.\n``category`` discriminates this from the verbal and not-found shapes — switch\non it before reading the body."},"NorseNumberForms":{"properties":{"singular":{"type":"string","title":"Singular","default":""},"plural":{"type":"string","title":"Plural","default":""}},"type":"object","title":"NorseNumberForms","description":"A declension cell: the two number forms of one case key. Forms are verbatim\nnormalized Old Norse; alternates stay comma-separated as Wiktionary renders\nthem. A number the table doesn't give (defective paradigms) is an empty\nstring."},"NorseVerbalParadigm":{"properties":{"category":{"type":"string","const":"verbal","title":"Category","default":"verbal"},"entry_id":{"type":"string","title":"Entry Id"},"word_class":{"type":"string","title":"Word Class"},"found":{"type":"boolean","const":true,"title":"Found","default":true},"finite":{"additionalProperties":{"additionalProperties":{"type":"string"},"type":"object"},"type":"object","title":"Finite","description":"Mood and tense (lower-case: 'indicative present', 'subjunctive past', 'imperative present'; the mediopassive table's keys are prefixed — 'mediopassive indicative past') → person and number ('first singular' … 'third plural') → the form. Alternates are comma-separated; an em-dash cell (no such form) is omitted."},"nonfinite":{"additionalProperties":{"additionalProperties":{"type":"string"},"type":"object"},"type":"object","title":"Nonfinite","description":"Non-finite form ('infinitive', 'present participle', 'past participle'; mediopassive-prefixed for that voice) → {'form': <the form>}."},"source":{"type":"string","title":"Source","default":"Wiktionary, the free dictionary (en.wiktionary.org), Old Norse entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)"}},"type":"object","required":["entry_id","word_class","finite","nonfinite"],"title":"NorseVerbalParadigm","description":"Conjugation of a verb, grouped the way Wiktionary's tables are: finite cells\nkeyed by mood and tense → person-and-number → form, plus the non-finite forms\n(infinitive and the participles). The mediopassive voice renders as its own\ntable and its keys carry a 'mediopassive ' prefix; active keys are bare."},"ParadigmNotFound":{"properties":{"category":{"type":"string","const":"not_found","title":"Category","default":"not_found"},"entry_id":{"type":"string","title":"Entry Id"},"word_class":{"type":"string","title":"Word Class"},"found":{"type":"boolean","const":false,"title":"Found","default":false},"source":{"type":"string","title":"Source","default":"Wiktionary, the free dictionary (en.wiktionary.org), Old Norse entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)"}},"type":"object","required":["entry_id","word_class"],"title":"ParadigmNotFound","description":"No inflection table for this page/POS (no Old Norse section, no table, or\nthe page doesn't exist). ``found`` is False and there is no body."},"SearchLanguage":{"type":"string","enum":["non","eng"],"title":"SearchLanguage","description":"The query language. ``non`` looks an Old Norse word up directly (any of its\nforms — an inflected query resolves via cached paradigms). ``eng`` searches in\nreverse: the English Wiktionary page for the query word lists per-sense Old\nNorse translations, and each distinct lemma is then looked up normally."},"SearchResult":{"properties":{"query":{"type":"string","title":"Query"},"language":{"$ref":"#/components/schemas/SearchLanguage"},"found":{"type":"boolean","title":"Found","description":"False when nothing matched. For an eng query, True means Old Norse translations were found — entries may still be empty when none of them could be expanded (see translations)."},"handles":{"items":{"$ref":"#/components/schemas/InflectionHandle"},"type":"array","title":"Handles"},"entries":{"items":{"$ref":"#/components/schemas/Entry"},"type":"array","title":"Entries"},"forms_truncated":{"type":"integer","title":"Forms Truncated","description":"How many handles did NOT get an inline table because the per-search cap was reached.","default":0},"translations":{"items":{"$ref":"#/components/schemas/TranslationSense"},"type":"array","title":"Translations","description":"Populated only for eng queries (always [] for non): the Old Norse terms each English sense translates to, in sense order. Entries/handles below are the expanded dictionary entries of those terms."},"translations_truncated":{"type":"integer","title":"Translations Truncated","description":"How many distinct translated lemmas were NOT expanded into entries because the per-search expansion cap was reached (they still appear under translations).","default":0},"search_method":{"type":"string","enum":["direct","lemma_index","translations"],"title":"Search Method","description":"How the match was found: 'direct' = the query itself matched; 'lemma_index' = an inflected form resolved via a previously cached paradigm; 'translations' = an English query resolved via Wiktionary translation tables.","default":"direct"},"resolved_from":{"type":"string","title":"Resolved From","description":"The original inflected query when resolved; else empty. non queries only — always empty for eng results.","default":""},"resolved_lemma":{"type":"string","title":"Resolved Lemma","description":"The lemma actually searched when resolved; else empty. non queries only — always empty for eng results.","default":""},"source":{"type":"string","title":"Source","default":"Wiktionary, the free dictionary (en.wiktionary.org), Old Norse entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)"}},"type":"object","required":["query","language","found"],"title":"SearchResult","description":"The result of a dictionary search."},"Sense":{"properties":{"label":{"type":"string","title":"Label","default":""},"gloss":{"type":"string","title":"Gloss"},"examples":{"items":{"type":"string"},"type":"array","title":"Examples"}},"type":"object","required":["gloss"],"title":"Sense","description":"One sense of an entry: the (HTML-stripped) Wiktionary definition line."},"TranslationSense":{"properties":{"sense":{"type":"string","title":"Sense","description":"The sense gloss the source table carries."},"terms":{"items":{"$ref":"#/components/schemas/TranslationTerm"},"type":"array","title":"Terms"}},"type":"object","required":["sense"],"title":"TranslationSense","description":"One English sense (a translations table) and the Old Norse terms it offers."},"TranslationTerm":{"properties":{"word":{"type":"string","title":"Word","description":"Wiktionary page title — the lemma itself."},"display":{"type":"string","title":"Display","description":"Rendered form when it differs from the title.","default":""},"gender":{"type":"string","title":"Gender","description":"Grammatical gender as marked, e.g. 'n'.","default":""},"qualifier":{"type":"string","title":"Qualifier","description":"Usage qualifier as marked, e.g. 'poetic'; else empty.","default":""}},"type":"object","required":["word"],"title":"TranslationTerm","description":"One Old Norse word a translations table offers for an English sense.\n``word`` is the Wiktionary page title (what an ``eng`` search re-searches and\nwhat ``get_inflections`` needs)."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}