Vocab Bloom Hub

Публичный API v1

Справочник read-only API словаря, сгенерированный из OpenAPI-документа, который публикует сервер, — того же контракта, из которого собраны SDK.

Read-only dictionary API under /api/v1 (contract version 1): no authentication, every answer in a { data, meta } envelope, errors as { statusCode, message, error: true }, X-API-Version on every response. The /api/compat/freedictionaryapi/v1 routes use freedictionaryapi.com objects, language lists and plain-text errors. The /api/compat/dictionaryapi routes use dictionaryapi.dev v1/v2 arrays and errors, with additive vocabBloom provenance. Compatibility lookups ending in /datasets wrap the responses from all installed datasets in { data, meta }; each group has dataset terms, status and response. Successful GET answers carry ETag, Last-Modified and Cache-Control. Documentation: https://vocab-bloom-hub.com/en/docs/api.

Базовый URLhttps://<instance>/api/v1
Каждый инстанс отдаёт API под своим origin; в примерах ниже — заглушка.
Контракт
Документ OpenAPI 3, каждый инстанс отдаёт его по адресу /api/v1/openapi.json; файл в репозитории
Дальше

Эндпоинты

GET/api/v1/meta

API and dataset versions, data license and counts of the served dictionary

Параметры

Без параметров.

Ответы

Пример

curl 'https://your-instance.example/api/v1/meta'

Попробовать в плейграунде

GET/api/v1/openapi.json

The OpenAPI 3 document of the public API (this contract)

Параметры

Без параметров.

Ответы

  • 200OK — object
  • 429Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the window — PublicApiErrorT
  • 503Not available: a selected dataset could not be read, the OpenAPI document is not ready, or the suggestion queue is full — PublicApiErrorT

Пример

curl 'https://your-instance.example/api/v1/openapi.json'

GET/api/v1/search/detailed

Search dictionary entries with pagination, meanings and translations

The detailed search: the same term and tiers, paged, with meanings and translations joined on request; the fields travel in the query string (`translation_languages` as a repeated key). Cacheable like every public GET.

Параметры

ИмяГдеТипОбязателенОписание
searchquerystringдаThe term to search for
typequerystring
wordgrammar_patternphrase
нетRestrict the answer to one entry type
limitqueryintegerнет
по умолчанию: 10
pagequeryintegerнет
по умолчанию: 1
with_meaningsquerybooleanнетJoin the meanings (with translations, synonyms, antonyms) of every item
по умолчанию: false
with_translationsquerybooleanнетJoin the short translations of every item
по умолчанию: false
translation_languagesquerystring[]
ruesfrdeptzhar
нетKeep only these translation languages (a repeated key); omit the key for all of them
datasetquerystringнетPublic dataset name; omitted = the active dataset. Unknown or closed targets return 404, never a fallback.

Ответы

  • 200OK — PublicSearchDetailedV1ResT
  • 400Invalid input: an unknown field, a value outside the allowed set, or a foreign cursor — PublicApiErrorT
  • 404Nothing matches — PublicApiErrorT
  • 429Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the window — PublicApiErrorT
  • 503Not available: a selected dataset could not be read, the OpenAPI document is not ready, or the suggestion queue is full — PublicApiErrorT

Пример

curl 'https://your-instance.example/api/v1/search/detailed'

Попробовать в плейграунде

GET/api/v1/words/{word}

All entries of a headword: parts of speech, forms, meanings, translations, links

Параметры

ИмяГдеТипОбязателенОписание
wordpathstringдаHeadword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry

Ответы

Пример

curl 'https://your-instance.example/api/v1/words/run'

Попробовать в плейграунде

GET/api/v1/words/{word}/meanings

The meanings of a headword across its entries

Параметры

ИмяГдеТипОбязателенОписание
wordpathstringдаHeadword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry

Ответы

Пример

curl 'https://your-instance.example/api/v1/words/run/meanings'

Попробовать в плейграунде

GET/api/v1/words/{word}/translations

The short and per-meaning translations of a headword

Параметры

ИмяГдеТипОбязателенОписание
wordpathstringдаHeadword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
languagequerystring[]
ruesfrdeptzhar
нетTranslation languages; no value means all of them

Ответы

Пример

curl 'https://your-instance.example/api/v1/words/run/translations'

Попробовать в плейграунде

GET/api/v1/words/{word}/forms

The inflected forms of a headword across its entries

Параметры

ИмяГдеТипОбязателенОписание
wordpathstringдаHeadword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry

Ответы

Пример

curl 'https://your-instance.example/api/v1/words/run/forms'

Попробовать в плейграунде

GET/api/v1/words/{word}/synonyms

The synonyms of a headword, per meaning

One item per linked headword and meaning; each names its `meaning_id`, `word_id` and `part_of_speech`.

Параметры

ИмяГдеТипОбязателенОписание
wordpathstringдаHeadword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry

Ответы

Пример

curl 'https://your-instance.example/api/v1/words/run/synonyms'

Попробовать в плейграунде

GET/api/v1/words/{word}/antonyms

The antonyms of a headword, per meaning

One item per linked headword and meaning; each names its `meaning_id`, `word_id` and `part_of_speech`.

Параметры

ИмяГдеТипОбязателенОписание
wordpathstringдаHeadword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry

Ответы

Пример

curl 'https://your-instance.example/api/v1/words/run/antonyms'

Попробовать в плейграунде

GET/api/v1/words/{word}/history

What was changed or added on the instance in the entries of a headword

The edits that still show in what is served, the latest first, with the values before and after: the entries of such a headword carry `modified: true`. Empty for a headword served as its source has it.

Параметры

ИмяГдеТипОбязателенОписание
wordpathstringдаHeadword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry

Ответы

Пример

curl 'https://your-instance.example/api/v1/words/run/history'

Попробовать в плейграунде

GET/api/v1/words/{word}/datasets

A headword as every open dataset of the instance has it, grouped by dataset

One group per open dataset, never merged: the terms of the dataset (`license`, `attribution`, `license_text`, …) and the entries `GET /words/{word}` would answer if that dataset were the served one. The spelling is matched inside each dataset, so a group has its own `word` and `variants`; a dataset without the headword answers an empty `entries`, and the request fails with 404 when no dataset holds it. Entries taken from several groups are bound by the terms of each. One request against the rate limit.

Параметры

ИмяГдеТипОбязателенОписание
wordpathstringдаHeadword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry

Ответы

Пример

curl 'https://your-instance.example/api/v1/words/run/datasets'

Попробовать в плейграунде

GET/api/v1/words/{word}/datasets/{dataset}/history

What was changed or added on the instance in the entries of a headword, in one dataset

The answer of `GET /words/{word}/history` for a dataset named by its `dataset`: the edits behind `modified: true` of the entries of that group. 404 for a closed dataset or a dataset the instance does not hold.

Параметры

ИмяГдеТипОбязателенОписание
wordpathstringдаHeadword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
datasetpathstringдаThe name of a dataset of the instance, as `dataset` of a group of `GET /words/{word}/datasets` says it

Ответы

Пример

curl 'https://your-instance.example/api/v1/words/run/datasets/default/history'

Попробовать в плейграунде

GET/api/v1/words/id/{id}

One dictionary entry by its numeric id

Параметры

ИмяГдеТипОбязателенОписание
idpathnumberда

Ответы

Пример

curl 'https://your-instance.example/api/v1/words/id/1'

Попробовать в плейграунде

GET/api/v1/words

List dictionary entries by filters, cursor-paged and ordered by (word, id)

Every enum filter accepts a repeated key; values of one filter are OR-ed, filters are AND-ed. `search` keeps the headwords starting with the prefix (an autocomplete or an A–Z browser: cacheable, unlike the search). Pass `meta.next_cursor` back as `cursor` to read the next page.

Параметры

ИмяГдеТипОбязателенОписание
searchquerystringнетHeadword prefix, case-insensitive (`ru` lists run, rung, runner, …)
is_obsoletequerybooleanнетtrue: obsolete entries only, false: current ones only
part_of_speechquerystring[]
nounverbmodal_verbadjectiveadverbpronounnumeralnumeral_fractionaldeterminerinterjectionarticleprepositionconjunctionletterphrasegrammar_pattern
нет
word_levelquerystring[]
A1A2B1B2C1C2
нет
language_registerquerystring[]
formalinformalslang
нет
categoryquerystring[]
scientifictechnicalmedicallegalbusinessITartpoliticalsportculinary
нетWords tagged with any of the categories
area_variantquerystring[]
commonbritishamericanaustralian
нет
form_of_wordquerystring[]
base_formplural_formpossessive_singular_formpossessive_plural_formpast_simplepast_participlepresent_participlethird_person_singularcomparative_formsuperlative_formobjectpossessive_adjectivepossessive_pronounreflexiveordinalmultiplicative
нетDefaults to base forms only
по умолчанию: ["base_form"]
cursorquerystringнетThe `meta.next_cursor` of the previous page; omit for the first page
limitqueryintegerнет
по умолчанию: 20
with_meaningsquerybooleanнетJoin the meanings of every word
по умолчанию: false
with_translationsquerybooleanнетJoin the short translations of every word
по умолчанию: false

Ответы

  • 200OK — PublicWordsV1ResT
  • 400Invalid input: an unknown field, a value outside the allowed set, or a foreign cursor — PublicApiErrorT
  • 429Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the window — PublicApiErrorT

Пример

curl 'https://your-instance.example/api/v1/words'

Попробовать в плейграунде

GET/api/v1/random

A random dictionary entry matching the filters (base forms unless form_of_word is given)

Параметры

ИмяГдеТипОбязателенОписание
searchquerystringнетHeadword prefix, case-insensitive (`ru` lists run, rung, runner, …)
is_obsoletequerybooleanнетtrue: obsolete entries only, false: current ones only
part_of_speechquerystring[]
nounverbmodal_verbadjectiveadverbpronounnumeralnumeral_fractionaldeterminerinterjectionarticleprepositionconjunctionletterphrasegrammar_pattern
нет
word_levelquerystring[]
A1A2B1B2C1C2
нет
language_registerquerystring[]
formalinformalslang
нет
categoryquerystring[]
scientifictechnicalmedicallegalbusinessITartpoliticalsportculinary
нетWords tagged with any of the categories
area_variantquerystring[]
commonbritishamericanaustralian
нет
form_of_wordquerystring[]
base_formplural_formpossessive_singular_formpossessive_plural_formpast_simplepast_participlepresent_participlethird_person_singularcomparative_formsuperlative_formobjectpossessive_adjectivepossessive_pronounreflexiveordinalmultiplicative
нетDefaults to base forms only
по умолчанию: ["base_form"]

Ответы

Пример

curl 'https://your-instance.example/api/v1/random'

Попробовать в плейграунде

GET/api/v1/search/semantic/status

Whether the instance enables semantic search

Reflects only SEMANTIC_SEARCH_ENABLED. Performs no inference and does not promise model/vector availability. Never cached.

Параметры

Без параметров.

Ответы

Пример

curl 'https://your-instance.example/api/v1/search/semantic/status'

Попробовать в плейграунде

GET/api/v1/search/semantic

Find existing meanings from a description

Separate from spelling search; no lexical fallback. Requires SEMANTIC_SEARCH_ENABLED, PostgreSQL/pgvector, imported current vectors and a matching Ollama model. Disabled = 404 semantic_search_disabled; missing infrastructure, busy service or incompatible model = 503. Returns up to 20 meanings, ordered by cosine similarity then meaning ID. Scores are not confidence probabilities; no calibrated no-answer threshold. No pagination or cross-dataset ranking. Uses the shared public rate budget. Responses are no-store.

Параметры

ИмяГдеТипОбязателенОписание
queryquerystringдаA description of the intended meaning, in English or another language supported by the model.
datasetquerystringнетOne public dataset; omitted = active dataset. Closed/unknown targets return 404.
limitqueryintegerнет
по умолчанию: 10

Ответы

  • 200OK — PublicSemanticSearchV1ResT
  • 400Invalid input: an unknown field, a value outside the allowed set, or a foreign cursor — PublicApiErrorT
  • 404Nothing matches — PublicApiErrorT
  • 429Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the window — PublicApiErrorT
  • 503Not available: a selected dataset could not be read, the OpenAPI document is not ready, or the suggestion queue is full — PublicApiErrorT

Пример

curl 'https://your-instance.example/api/v1/search/semantic'

Попробовать в плейграунде

GET/api/compat/dictionaryapi/v2/entries/{language}/{word}/datasets

dictionaryapi.dev v2 responses from every open dataset

One group per installed dataset with its terms, status and response in the adapter format. Missing words have status 404 and the adapter error in response. The outer request returns 200 even when no dataset matches. English only; the usual headword and inflection rules apply in each dataset. No query parameters. Does not activate any dataset. One public rate-limit unit; cached across all datasets.

Параметры

ИмяГдеТипОбязателенОписание
languagepathstring
enen_USen_GB
да
wordpathstringдаHeadword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry

Ответы

Пример

curl 'https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run/datasets'

Попробовать в плейграунде

GET/api/compat/dictionaryapi/v1/entries/{language}/{word}/datasets

dictionaryapi.dev v1 responses from every open dataset

One group per installed dataset with its terms, status and response in the adapter format. Missing words have status 404 and the adapter error in response. The outer request returns 200 even when no dataset matches. English only; the usual headword and inflection rules apply in each dataset. No query parameters. Does not activate any dataset. One public rate-limit unit; cached across all datasets.

Параметры

ИмяГдеТипОбязателенОписание
languagepathstring
enen_USen_GB
да
wordpathstringдаHeadword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry

Ответы

Пример

curl 'https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run/datasets'

Попробовать в плейграунде

GET/api/compat/freedictionaryapi/v1/entries/{language}/{word}/datasets

freedictionaryapi.com responses from every open dataset

One group per installed dataset with its terms, status 200 and the adapter object in response. Exact spelling; en and all read English. Missing words and other languages have empty response.entries. The outer request returns 200 even when no dataset matches. Does not activate any dataset. One public rate-limit unit; cached across all datasets. Empty source links point here rather than active-only /meta.

Параметры

ИмяГдеТипОбязателенОписание
languagepathstringдаen or all; other values return empty entries
wordpathstringдаExact case-sensitive spelling, encoded as one URL segment
prettyquerybooleanнетIndent the whole response with two spaces; default false.
translationsquerybooleanнетInclude supported translations; default false. Only true/false, first occurrence wins.

Ответы

  • 200OK — FreeDictionaryDatasetsResT
  • 400Invalid input: an unknown field, a value outside the allowed set, or a foreign cursor
  • 429Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the window

Пример

curl 'https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run/datasets'

Попробовать в плейграунде

GET/api/compat/dictionaryapi/v2/entries/{language}/{word}

dictionaryapi.dev v2 lookup in the active dataset

Array response, with lossless provenance in vocabBloom. English only; native headword and inflection resolution. No dataset query parameter.

Параметры

ИмяГдеТипОбязателенОписание
languagepathstring
enen_USen_GB
да
wordpathstringдаHeadword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry

Ответы

Пример

curl 'https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run'

Попробовать в плейграунде

GET/api/compat/dictionaryapi/v1/entries/{language}/{word}

dictionaryapi.dev legacy v1 lookup in the active dataset

Same entries and terms as v2, with a meaning object keyed by part of speech instead of meanings. English only.

Параметры

ИмяГдеТипОбязателенОписание
languagepathstring
enen_USen_GB
да
wordpathstringдаHeadword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry

Ответы

Пример

curl 'https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run'

Попробовать в плейграунде

GET/api/compat/freedictionaryapi/v1/entries/{language}/{word}

freedictionaryapi.com lookup in the active dataset

Exact spelling. en and all read the English database; other languages and missing spellings return empty entries. Full terms in vocabBloom.

Параметры

ИмяГдеТипОбязателенОписание
languagepathstringдаen or all; other values return empty entries
wordpathstringдаExact case-sensitive spelling, encoded as one URL segment
prettyquerybooleanнетIndent JSON with two spaces; default false.
translationsquerybooleanнетInclude supported translations; default false. Only true/false, first occurrence wins.

Ответы

  • 200OK — FreeDictionaryEntriesResT
  • 400Invalid input: an unknown field, a value outside the allowed set, or a foreign cursor
  • 429Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the window

Пример

curl 'https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run'

Попробовать в плейграунде

GET/api/compat/freedictionaryapi/v1/languages

Available headword languages and readable spelling counts

English only. Counts include phrases, inflections and alternative-only entry rows in the active dataset, once per readable spelling; unlinked placeholders are excluded.

Параметры

ИмяГдеТипОбязателенОписание
prettyquerybooleanнетIndent JSON with two spaces; default false.

Ответы

  • 200OK — FreeDictionaryLanguagesResT
  • 400Invalid input: an unknown field, a value outside the allowed set, or a foreign cursor
  • 429Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the window

Пример

curl 'https://your-instance.example/api/compat/freedictionaryapi/v1/languages'

Попробовать в плейграунде

GET/api/v1/search/datasets

Search up to five public datasets, in separate groups

Repeat datasets for each target (1–5 unique names). Groups follow installation order. The detailed search filters, limit (1–20) and page (1–20) apply independently to every group. Relevance scores are local to each dataset. Empty matches have status ok and an empty data array; failed readers have status unavailable and no results/pagination. Unknown or closed targets reject the entire request with 404. Partial failures return 200 with meta.partial and Cache-Control: no-store. Each selected dataset costs one unit of the shared public rate budget, including failed reads. Selected searches revalidate their ETag on every use.

Параметры

ИмяГдеТипОбязателенОписание
searchquerystringдаThe term to search for
typequerystring
wordgrammar_patternphrase
нетRestrict the answer to one entry type
limitqueryintegerнет
по умолчанию: 10
pagequeryintegerнет
по умолчанию: 1
with_meaningsquerybooleanнетJoin the meanings (with translations, synonyms, antonyms) of every item
по умолчанию: false
with_translationsquerybooleanнетJoin the short translations of every item
по умолчанию: false
translation_languagesquerystring[]
ruesfrdeptzhar
нетKeep only these translation languages (a repeated key); omit the key for all of them
datasetsquerystring[]даPublic dataset names as repeated keys. Groups follow installation order. Each selected dataset costs one unit of the shared public rate budget.

Ответы

Пример

curl 'https://your-instance.example/api/v1/search/datasets?search=run&datasets=default'

Попробовать в плейграунде

GET/api/v1/datasets

Publicly readable datasets and their terms, in installation order

Параметры

Без параметров.

Ответы

Пример

curl 'https://your-instance.example/api/v1/datasets'

Попробовать в плейграунде

POST/api/v1/words/batch

Up to 50 headwords in one request

Every spelling is matched like `GET /words/{word}`; the answer keeps the request order, collapses duplicates, and lists the spellings without an entry under `meta.not_found` instead of failing. One request against the rate limit, whatever the size of the batch.

Тело запроса · WordsBatchV1ReqDTO

ИмяТипОбязателенОписание
wordsstring[]даHeadword spellings, 50 at most, each matched like GET /words/{word} (case-insensitively; an inflected form resolves to its base entry)

Ответы

Пример

curl -X POST 'https://your-instance.example/api/v1/words/batch' \
  -H 'Content-Type: application/json' \
  -d '{"words":["run","walk","nonexistentword"]}'

Попробовать в плейграунде

POST/api/v1/suggestions

Report a mistake in the dictionary data

Files a report for the instance admin to review: what is wrong with a headword (optionally one specific entry of it) and, ideally, what would be right. The headword must exist in the selected publicly open dataset. Pass dataset to target a viewed dataset; omitted means the active dataset. All IDs must belong to that dataset and headword. Closed, unknown or removed targets answer 404 without fallback. Rate limits are shared across datasets; a full target queue answers 503.

Тело запроса · CreateSuggestionV1ReqDTO

ИмяТипОбязателенОписание
datasetstringнетInstalled, publicly open dataset containing the headword and all supplied IDs. Omit to use the active dataset.
headwordstringдаThe headword the report is about; must exist in the dictionary
word_idobjectнетId of the entry (part of speech) the report points at, from the word answers
kindstring
reportedit
нет
по умолчанию: "report"
messageobjectнетWhat is wrong and, ideally, what would be right. Required for a report; an optional comment on an edit
editsSuggestionEditV1DTO[]нетEdit flow: every touched target of the word form with its proposed values
author_nameobjectнетThe name the sender wants to be credited by (issue #531). Kept only together with `author_consent: true`: once the correction is applied the name is shown next to it and travels with the copies of the data
author_consentobjectнетThe sender agrees that `author_name` is shown and exported; required when a name is given

Ответы

Пример

curl -X POST 'https://your-instance.example/api/v1/suggestions' \
  -H 'Content-Type: application/json' \
  -d '{"headword":"run","message":"Please check the definition of this word."}'

Попробовать в плейграунде

Схемы

SuggestionEditV1DTO

ИмяТипОбязателенОписание
target_typestring
wordmeaningmeaning_translationshort_translation
да
target_idnumberдаId of the targeted row, from the word answers
changesobjectдаThe proposed field values, e.g. { "definition": "…" }. The accepted fields depend on target_type; unknown fields, empty values and values equal to the current ones are rejected

CreateSuggestionV1ReqDTO

ИмяТипОбязателенОписание
datasetstringнетInstalled, publicly open dataset containing the headword and all supplied IDs. Omit to use the active dataset.
headwordstringдаThe headword the report is about; must exist in the dictionary
word_idobjectнетId of the entry (part of speech) the report points at, from the word answers
kindstring
reportedit
нет
по умолчанию: "report"
messageobjectнетWhat is wrong and, ideally, what would be right. Required for a report; an optional comment on an edit
editsSuggestionEditV1DTO[]нетEdit flow: every touched target of the word form with its proposed values
author_nameobjectнетThe name the sender wants to be credited by (issue #531). Kept only together with `author_consent: true`: once the correction is applied the name is shown next to it and travels with the copies of the data
author_consentobjectнетThe sender agrees that `author_name` is shown and exported; required when a name is given

WordsBatchV1ReqDTO

ИмяТипОбязателенОписание
wordsstring[]даHeadword spellings, 50 at most, each matched like GET /words/{word} (case-insensitively; an inflected form resolves to its base entry)

PublicSearchV1MetaT

ИмяТипОбязателенОписание
datasetstringнетPresent only for an explicitly selected dataset.
countintegerда
fuzzybooleanда
short_termbooleanда

PublicSearchV1ResT

ИмяТипОбязателенОписание
dataPublicSearchWordV1T[]да
metaPublicSearchV1MetaTда

PublicSearchWordV1T

ИмяТипОбязателенОписание
alternativesstring[]нетAlternative spellings of this headword, shared by all its parts of speech.
originsOriginT[]нет
contributionsOriginT[]нетTerms of the datasets whose edits still contribute to this word.
licensesWordLicenseT[]нет
idintegerда
wordstringда
part_of_speechEnPartOfSpeechEда
form_of_wordEnWordFormsEда
is_obsoletebooleanда
is_abbreviationbooleanда
word_levelWordLevelE | nullда
area_variantEnAreaVariantsE | nullда
categoriesCategoryE[]да
language_registerLanguageRegisterE | nullда
descriptionstring | nullда
transcriptionstring | nullда
pronunciationsPronunciationT[]нетOrdered pronunciations, with legacy transcription and base-form fallback.
patternstring[] | nullда
noun___irregular_pluralboolean | nullда
noun___uncountableboolean | nullда
noun___is_properboolean | nullда
noun___always_pluralboolean | nullда
verb___is_irregularboolean | nullда
verb___transitivityEnVerbTransitivityE | nullда
verb___is_phrasalboolean | nullда
verb___phrasal_object_patternEnPhrasalObjectPatternE | nullда
base_phrasalstring | nullда
formsPublicWordV1FormT[]да
similaritynumberнет
sourcestringнет
modifiedbooleanнет

OriginT

ИмяТипОбязателенОписание
idstringда
namestringда
versionstring | nullда
urlstringнет
record_urlstringнет
licensesOriginLicenseT[]да
license_relationstring
allany
даAll obligations apply, or the source explicitly offers a choice.
attributionstringда
noticesstring[]да
scopestring
worddataset
даDataset means that distribution between individual words is unknown.
methodstring
datasetmanual
да
recorded_atstring | nullда
acquisitionsOriginAcquisitionT[]нетCopy/fork events belonging to this source snapshot; absent before any acquisition.
inheritedbooleanдаAutomatically inherited terms cannot be removed by ordinary editing.

OriginLicenseT

A durable statement of terms, not a pointer to a mutable dataset registry.

ИмяТипОбязателенОписание
spdxstringнет
namestringда
urlstringда
textstringнетRequired for custom licenses; preserved verbatim when supplied.

OriginAcquisitionT

An acquisition of a source snapshot, without repeating its license terms.

ИмяТипОбязателенОписание
idstringда
methodstring
copyfork
да
recorded_atstring | nullда
revisionstringнет
viaobjectнетThe intermediate dataset the material passed through; this adds no license obligations.

WordLicenseT

One license can occur more than once; origin_id refers to origins or contributions.

ИмяТипОбязателенОписание
origin_idstringда
spdxstringнет
namestringда
urlstringда
textstringнетRequired for custom licenses; preserved verbatim when supplied.

EnPartOfSpeechE

Одно из: noun, verb, modal_verb, adjective, adverb, pronoun, numeral, numeral_fractional, determiner, interjection, article, preposition, conjunction, letter, phrase, grammar_pattern

EnWordFormsE

Одно из: base_form, plural_form, possessive_singular_form, possessive_plural_form, past_simple, past_participle, present_participle, third_person_singular, comparative_form, superlative_form, object, possessive_adjective, possessive_pronoun, reflexive, ordinal, multiplicative

WordLevelE

Одно из: A1, A2, B1, B2, C1, C2

EnAreaVariantsE

Одно из: common, british, american, australian

CategoryE

Одно из: scientific, technical, medical, legal, business, IT, art, political, sport, culinary

LanguageRegisterE

Одно из: formal, informal, slang

PronunciationT

Portable pronunciation; database IDs never travel in datasets or public responses.

ИмяТипОбязателенОписание
audioPronunciationAudioT[]нетRecordings carry their own terms, independent of the word's text.
typestring
ipaenpr
да
textstring | nullда
area_variantEnAreaVariantsEда
sort_orderintegerда

PronunciationAudioT

External recordings only; missing license metadata is an empty list, never the text license.

ИмяТипОбязателенОписание
urlstringда
source_urlstring | nullнет
attributionstring | nullнет
licensesOriginLicenseT[]да
sort_orderintegerда

EnVerbTransitivityE

Одно из: transitive, intransitive, both

EnPhrasalObjectPatternE

Одно из: no_object, inseparable, separable, separable_pronoun_only

PublicWordV1FormT

ИмяТипОбязателенОписание
alternativesstring[]нет
idintegerда
wordstringда
form_of_wordEnWordFormsEда
area_variantEnAreaVariantsEда
transcriptionstring | nullда
pronunciationsPronunciationT[]нетOrdered pronunciations, with legacy transcription and base-form fallback.

PublicSearchDetailedV1MetaT

ИмяТипОбязателенОписание
datasetstringнетPresent only for an explicitly selected dataset.
pageintegerда
limitintegerда
has_morebooleanда
fuzzybooleanда
short_termbooleanда

PublicSearchDetailedV1ResT

ИмяТипОбязателенОписание
dataPublicWordV1T[]да
metaPublicSearchDetailedV1MetaTда

PublicWordV1T

ИмяТипОбязателенОписание
etymologiesobject[]нет
meaningsPublicWordV1MeaningT[]да
short_translationsPublicWordV1ShortTranslationT[]да
phrasal_variantsstring[]нет
alternativesstring[]нетAlternative spellings of this headword, shared by all its parts of speech.
originsOriginT[]нет
contributionsOriginT[]нетTerms of the datasets whose edits still contribute to this word.
licensesWordLicenseT[]нет
idintegerда
wordstringда
part_of_speechEnPartOfSpeechEда
form_of_wordEnWordFormsEда
is_obsoletebooleanда
is_abbreviationbooleanда
word_levelWordLevelE | nullда
area_variantEnAreaVariantsE | nullда
categoriesCategoryE[]да
language_registerLanguageRegisterE | nullда
descriptionstring | nullда
transcriptionstring | nullда
pronunciationsPronunciationT[]нетOrdered pronunciations, with legacy transcription and base-form fallback.
patternstring[] | nullда
noun___irregular_pluralboolean | nullда
noun___uncountableboolean | nullда
noun___is_properboolean | nullда
noun___always_pluralboolean | nullда
verb___is_irregularboolean | nullда
verb___transitivityEnVerbTransitivityE | nullда
verb___is_phrasalboolean | nullда
verb___phrasal_object_patternEnPhrasalObjectPatternE | nullда
base_phrasalstring | nullда
formsPublicWordV1FormT[]да
similaritynumberнет
sourcestringнет
modifiedbooleanнет

PublicWordV1MeaningT

ИмяТипОбязателенОписание
etymology_numberinteger | nullнетLocal number of the owning word etymology; null when unknown.
idintegerда
sort_orderintegerда
titlestringда
definitionstringда
is_obsoletebooleanда
examplesstring[]да
quotesMeaningQuoteT[]нет
categoriesCategoryE[]да
meaning_levelWordLevelE | nullда
area_variantEnAreaVariantsEда
language_registerLanguageRegisterE | nullда
translationsPublicWordV1MeaningTranslationT[]да
synonymsstring[]да
antonymsstring[]да

MeaningQuoteT

A sourced quotation, in authored array order. Missing attribution is explicit.

ИмяТипОбязателенОписание
textstringда
referencestring | nullда
source_urlstring | nullнет

PublicWordV1MeaningTranslationT

ИмяТипОбязателенОписание
idintegerда
languageAvailableTranslationLanguagesEда
titlestringда
definitionstringда
variants_of_wordsstring[]да

AvailableTranslationLanguagesE

Одно из: ru, es, fr, de, pt, zh, ar

PublicWordV1ShortTranslationT

ИмяТипОбязателенОписание
idintegerда
languageAvailableTranslationLanguagesEда
descriptionstringда
variants_of_wordsstring[]да

PublicWordV1ResT

ИмяТипОбязателенОписание
dataPublicWordV1Tда

PublicHeadwordV1MetaT

ИмяТипОбязателенОписание
wordstringда
countintegerда
variantsstring[]нет

PublicHeadwordV1ResT

ИмяТипОбязателенОписание
dataPublicWordV1T[]да
metaPublicHeadwordV1MetaTда

PublicMeaningV1T

ИмяТипОбязателенОписание
originsOriginT[]нет
contributionsOriginT[]нет
licensesWordLicenseT[]нет
word_idintegerда
part_of_speechEnPartOfSpeechEда
sourcestringнет
modifiedbooleanнет
etymology_numberinteger | nullнетLocal number of the owning word etymology; null when unknown.
idintegerда
sort_orderintegerда
titlestringда
definitionstringда
is_obsoletebooleanда
examplesstring[]да
quotesMeaningQuoteT[]нет
categoriesCategoryE[]да
meaning_levelWordLevelE | nullда
area_variantEnAreaVariantsEда
language_registerLanguageRegisterE | nullда
translationsPublicWordV1MeaningTranslationT[]да
synonymsstring[]да
antonymsstring[]да

PublicHeadwordMeaningsV1ResT

ИмяТипОбязателенОписание
dataPublicMeaningV1T[]да
metaPublicHeadwordV1MetaTда

PublicWordFormV1T

ИмяТипОбязателенОписание
originsOriginT[]нет
contributionsOriginT[]нет
licensesWordLicenseT[]нет
word_idintegerда
part_of_speechEnPartOfSpeechEда
sourcestringнет
modifiedbooleanнет
alternativesstring[]нет
idintegerда
wordstringда
form_of_wordEnWordFormsEда
area_variantEnAreaVariantsEда
transcriptionstring | nullда
pronunciationsPronunciationT[]нетOrdered pronunciations, with legacy transcription and base-form fallback.

PublicHeadwordFormsV1ResT

ИмяТипОбязателенОписание
dataPublicWordFormV1T[]да
metaPublicHeadwordV1MetaTда

PublicShortTranslationV1T

ИмяТипОбязателенОписание
originsOriginT[]нет
contributionsOriginT[]нет
licensesWordLicenseT[]нет
word_idintegerда
part_of_speechEnPartOfSpeechEда
sourcestringнет
modifiedbooleanнет
idintegerда
languageAvailableTranslationLanguagesEда
descriptionstringда
variants_of_wordsstring[]да

PublicMeaningTranslationV1T

ИмяТипОбязателенОписание
meaning_idintegerда
originsOriginT[]нет
contributionsOriginT[]нет
licensesWordLicenseT[]нет
word_idintegerда
part_of_speechEnPartOfSpeechEда
sourcestringнет
modifiedbooleanнет
idintegerда
languageAvailableTranslationLanguagesEда
titlestringда
definitionstringда
variants_of_wordsstring[]да

PublicWordLinkV1T

ИмяТипОбязателенОписание
meaning_idintegerда
wordstringда
originsOriginT[]нет
contributionsOriginT[]нет
licensesWordLicenseT[]нет
word_idintegerда
part_of_speechEnPartOfSpeechEда
sourcestringнет
modifiedbooleanнет

PublicHeadwordLinksV1ResT

ИмяТипОбязателенОписание
dataPublicWordLinkV1T[]да
metaPublicHeadwordV1MetaTда

PublicChangeV1T

ИмяТипОбязателенОписание
inherited_fromOriginT | nullнет
contributionOriginT | nullнетTerms captured when this edit was made, independent of later dataset changes.
reasonstring | nullнет
created_atstringда
wordstringда
part_of_speechstring | nullда
entityChangeEntityEда
actionChangeActionEда
recordChangeRecordT | nullда
diffChangeDiffTда
originChangeOriginEда
authorstring | nullда
sourcestringнет

ChangeEntityE

What was edited

Одно из: word, word_form, meaning, meaning_translation, short_translation

ChangeActionE

Одно из: create, update, delete

ChangeRecordT

The record of an entry an edit is about, by what it says rather than by its id: ids change when a dataset is updated and differ between instances. Null for the word itself — the headword and the part of speech name it.

ИмяТипОбязателенОписание

ChangeFormRecordT

ИмяТипОбязателенОписание
wordstringда
form_of_wordstringда

ChangeMeaningRecordT

ИмяТипОбязателенОписание
titlestringда
sort_orderintegerда

ChangeTranslationRecordT

ИмяТипОбязателенОписание
meaningChangeMeaningRecordTда
languagestringда
titlestringда

ChangeShortTranslationRecordT

ИмяТипОбязателенОписание
languagestringда
descriptionstringда

ChangeDiffT

The values an edit changed: `{ field: { before, after } }`; a creation has no `before`, a deletion no `after`

ИмяТипОбязателенОписание

ChangeOriginE

Where an edit came from

Одно из: admin, suggestion, revert

PublicHeadwordHistoryV1MetaT

ИмяТипОбязателенОписание
wordstringда
countintegerда
variantsstring[]нет

PublicHeadwordHistoryV1ResT

ИмяТипОбязателенОписание
dataPublicChangeV1T[]да
metaPublicHeadwordHistoryV1MetaTда

PublicDatasetTermsV1T

ИмяТипОбязателенОписание
originsOriginT[]нет
licensesWordLicenseT[]нет
descriptionstring | nullнет
datasetstringда
titlestringнет
activebooleanда
sourcestringда
dataset_versionstring | nullда
licensestringда
license_urlstringда
attributionstringда
attribution_urlstring | nullда
noticestringда
license_textstringда

PublicWordDatasetV1T

ИмяТипОбязателенОписание
wordstringда
variantsstring[]да
countintegerда
entriesPublicWordV1T[]да
originsOriginT[]нет
licensesWordLicenseT[]нет
descriptionstring | nullнет
datasetstringда
titlestringнет
activebooleanда
sourcestringда
dataset_versionstring | nullда
licensestringда
license_urlstringда
attributionstringда
attribution_urlstring | nullда
noticestringда
license_textstringда

PublicWordDatasetsV1MetaT

ИмяТипОбязателенОписание
wordstringда
datasetsintegerда
foundintegerда

PublicWordDatasetsV1ResT

ИмяТипОбязателенОписание
dataPublicWordDatasetV1T[]да
metaPublicWordDatasetsV1MetaTда

PublicHeadwordTranslationsV1T

ИмяТипОбязателенОписание
short_translationsPublicShortTranslationV1T[]да
meaning_translationsPublicMeaningTranslationV1T[]да

PublicHeadwordTranslationsV1ResT

ИмяТипОбязателенОписание
metaPublicHeadwordV1MetaTда
dataPublicHeadwordTranslationsV1Tда

PublicWordsBatchItemV1T

ИмяТипОбязателенОписание
wordstringда
countintegerда
entriesPublicWordV1T[]да

PublicWordsBatchV1MetaT

ИмяТипОбязателенОписание
countintegerда
not_foundstring[]да

PublicWordsBatchV1ResT

ИмяТипОбязателенОписание
dataPublicWordsBatchItemV1T[]да
metaPublicWordsBatchV1MetaTда

PublicWordsV1MetaT

ИмяТипОбязателенОписание
limitintegerда
has_morebooleanда
next_cursorstring | nullда

PublicWordsV1ResT

ИмяТипОбязателенОписание
dataPublicWordV1T[]да
metaPublicWordsV1MetaTда

PublicDatasetCountsV1T

ИмяТипОбязателенОписание
entriesintegerда
wordsintegerда
phrasesintegerда
grammar_patternsintegerда
word_formsintegerда
meaningsintegerда
meaning_translationsintegerда
short_translationsintegerда

PublicMetaV1T

ИмяТипОбязателенОписание
originsOriginT[]нет
licensesWordLicenseT[]нет
descriptionstring | nullнет
api_versionstringда
app_versionstringда
dataset_versionstring | nullда
licensestringда
license_urlstringда
attributionstringда
noticestringда
datasetstringнет
titlestringнет
sourcestringнет
attribution_urlstring | nullнет
license_textstringнет
modified_entriesintegerнет
countsPublicDatasetCountsV1Tда
available_languagesPublicAvailableLanguagesV1Tда

PublicAvailableLanguagesV1T

ИмяТипОбязателенОписание
sourcestring[]да
translationsAvailableTranslationLanguagesE[]да

PublicMetaV1ResT

ИмяТипОбязателенОписание
dataPublicMetaV1Tда

PublicSuggestionCreatedV1T

ИмяТипОбязателенОписание
idintegerда
statusstringда

PublicSuggestionCreatedV1ResT

ИмяТипОбязателенОписание
dataPublicSuggestionCreatedV1Tда

PublicApiErrorT

ИмяТипОбязателенОписание
statusCodenumberда
messagestringда
errorbooleanда

DictionaryApiV1DatasetsResT

ИмяТипОбязателенОписание
dataobject[]да
metaobjectдаfound counts datasets with entries, including for adapters whose misses are HTTP 200.

DictionaryApiV1ResT

ИмяТипОбязателенОписание

DictionaryApiDefinitionT

ИмяТипОбязателенОписание
definitionstringда
examplestringнет
synonymsstring[]да
antonymsstring[]да

DictionaryApiPhoneticT

ИмяТипОбязателенОписание
textstringнет
audiostringда
sourceUrlstringнет
licenseDictionaryApiLicenseTнет
vocabBloomobjectнетLossless recording terms; the upstream singular license cannot express all of these.

DictionaryApiLicenseT

ИмяТипОбязателенОписание
namestringда
urlstringда

DictionaryApiErrorT

ИмяТипОбязателенОписание
titlestringда
messagestringда
resolutionstringда

DictionaryApiV2DatasetsResT

ИмяТипОбязателенОписание
dataobject[]да
metaobjectдаfound counts datasets with entries, including for adapters whose misses are HTTP 200.

DictionaryApiV2ResT

ИмяТипОбязателенОписание

DictionaryApiMeaningT

ИмяТипОбязателенОписание
partOfSpeechstringда
definitionsDictionaryApiDefinitionT[]да
synonymsstring[]да
antonymsstring[]да

FreeDictionaryDatasetsResT

ИмяТипОбязателенОписание
dataobject[]да
metaobjectдаfound counts datasets with entries, including for adapters whose misses are HTTP 200.

FreeDictionaryEntriesResT

ИмяТипОбязателенОписание
wordstringда
entriesFreeDictionaryEntryT[]да
sourceobjectда
vocabBloomPublicDatasetTermsV1TдаTerms of the dataset read. Word-specific origins are retained on each entry.

FreeDictionaryEntryT

ИмяТипОбязателенОписание
languageFreeDictionaryLanguageTда
partOfSpeechstringда
pronunciationsobject[]да
formsobject[]да
sensesFreeDictionarySenseT[]да
synonymsstring[]да
antonymsstring[]да
vocabBloomobjectдаNative entry identity and lossless terms; additive to the upstream format.

FreeDictionaryLanguageT

ИмяТипОбязателенОписание
codestringда
namestringда

FreeDictionarySenseT

ИмяТипОбязателенОписание
definitionstringда
tagsstring[]да
examplesstring[]да
quotesobject[]да
synonymsstring[]да
antonymsstring[]да
translationsobject[]нет
subsensesFreeDictionarySenseT[]да

FreeDictionaryErrorT

Upstream parameter errors are plain text, not the native error envelope.

ИмяТипОбязателенОписание

FreeDictionaryLanguagesResT

ИмяТипОбязателенОписание

PublicDatasetsV1ResT

Public selector inventory, in installation order; no dictionary connections or counts.

ИмяТипОбязателенОписание
dataPublicDatasetTermsV1T[]да
metaobjectда

PublicSearchDatasetResultV1T

ИмяТипОбязателенОписание
statusstring
ok
да
dataPublicWordV1T[]да
metaPublicSearchDetailedV1MetaTда
originsOriginT[]нет
licensesWordLicenseT[]нет
descriptionstring | nullнет
datasetstringда
titlestringнет
activebooleanда
sourcestringда
dataset_versionstring | nullда
licensestringда
license_urlstringда
attributionstringда
attribution_urlstring | nullда
noticestringда
license_textstringда

PublicSearchDatasetUnavailableV1T

A failed reader has no result list or paging metadata; it is not an empty match.

ИмяТипОбязателенОписание
statusstring
unavailable
да
errorstring
dataset_unavailable
да
originsOriginT[]нет
licensesWordLicenseT[]нет
descriptionstring | nullнет
datasetstringда
titlestringнет
activebooleanда
sourcestringда
dataset_versionstring | nullда
licensestringда
license_urlstringда
attributionstringда
attribution_urlstring | nullда
noticestringда
license_textstringда

PublicSearchDatasetV1T

ИмяТипОбязателенОписание

PublicSearchDatasetsV1ResT

ИмяТипОбязателенОписание
dataPublicSearchDatasetV1T[]да
metaobjectда

PublicSemanticMatchV1T

A matching existing sense, with cosine similarity (not a confidence probability).

ИмяТипОбязателенОписание
wordPublicSearchWordV1Tда
meaningobjectда
scorenumberдаCosine similarity from -1 to 1; no calibrated no-answer threshold.

PublicSemanticSearchV1ResT

ИмяТипОбязателенОписание
dataPublicSemanticMatchV1T[]да
metaobjectда

PublicSemanticStatusV1ResT

ИмяТипОбязателенОписание
dataobjectда