Vocab Bloom Hub

واجهة API العامة v1

مرجع واجهة القاموس للقراءة فقط، مولَّد من مستند 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. Successful GET answers carry ETag, Last-Modified and Cache-Control. Documentation: https://vocab-bloom-hub.com/en/docs/api.

عنوان URL الأساسيhttps://<instance>/api/v1
تقدّم كل نسخة واجهة API تحت أصلها الخاص؛ تستخدم الأمثلة أدناه عنوانًا بديلًا.
العقد
مستند 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)

المعاملات

لا معاملات.

الاستجابات

  • 200OKobject
  • 429Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the windowPublicApiErrorT
  • 503Not available: the OpenAPI document is not ready, or the suggestion queue is fullPublicApiErrorT

مثال

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

الاستجابات

مثال

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/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

الاستجابات

  • 200OKPublicWordsV1ResT
  • 400Invalid input: an unknown field, a value outside the allowed set, or a foreign cursorPublicApiErrorT
  • 429Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the windowPublicApiErrorT

مثال

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'

جرّبها في ساحة التجربة

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":["example"]}'

جرّبها في ساحة التجربة

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 dictionary. Strictly rate-limited; once too many reports are waiting for the admin the endpoint answers 503 until the queue is worked down.

جسم الطلب · CreateSuggestionV1ReqDTO

الاسمالنوعمطلوبالوصف
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

الاستجابات

مثال

curl -X POST 'https://your-instance.example/api/v1/suggestions' \
  -H 'Content-Type: application/json' \
  -d '{"headword":"example"}'

جرّبها في ساحة التجربة

المخططات

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

الاسمالنوعمطلوبالوصف
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

WordsBatchV1ReqDTO

الاسمالنوعمطلوبالوصف
wordsstring[]نعمHeadword spellings, 50 at most, each matched like GET /words/{word} (case-insensitively; an inflected form resolves to its base entry)

PublicSearchV1MetaT

الاسمالنوعمطلوبالوصف
countintegerنعم
fuzzybooleanنعم
short_termbooleanنعم

PublicSearchV1ResT

الاسمالنوعمطلوبالوصف
dataPublicSearchWordV1T[]نعم
metaPublicSearchV1MetaTنعم

PublicSearchWordV1T

الاسمالنوعمطلوبالوصف
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نعم
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لا

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

EnVerbTransitivityE

واحد من: transitive, intransitive, both

EnPhrasalObjectPatternE

واحد من: no_object, inseparable, separable, separable_pronoun_only

PublicWordV1FormT

الاسمالنوعمطلوبالوصف
idintegerنعم
wordstringنعم
form_of_wordEnWordFormsEنعم
area_variantEnAreaVariantsEنعم
transcriptionstring | nullنعم

PublicSearchDetailedV1MetaT

الاسمالنوعمطلوبالوصف
pageintegerنعم
limitintegerنعم
has_morebooleanنعم
fuzzybooleanنعم
short_termbooleanنعم

PublicSearchDetailedV1ResT

الاسمالنوعمطلوبالوصف
dataPublicWordV1T[]نعم
metaPublicSearchDetailedV1MetaTنعم

PublicWordV1T

الاسمالنوعمطلوبالوصف
meaningsPublicWordV1MeaningT[]نعم
short_translationsPublicWordV1ShortTranslationT[]نعم
phrasal_variantsstring[]لا
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نعم
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لا

PublicWordV1MeaningT

الاسمالنوعمطلوبالوصف
idintegerنعم
sort_orderintegerنعم
titlestringنعم
definitionstringنعم
is_obsoletebooleanنعم
examplesstring[]نعم
categoriesCategoryE[]نعم
meaning_levelWordLevelE | nullنعم
area_variantEnAreaVariantsEنعم
language_registerLanguageRegisterE | nullنعم
translationsPublicWordV1MeaningTranslationT[]نعم
synonymsstring[]نعم
antonymsstring[]نعم

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نعم

PublicHeadwordV1ResT

الاسمالنوعمطلوبالوصف
dataPublicWordV1T[]نعم
metaPublicHeadwordV1MetaTنعم

PublicMeaningV1T

الاسمالنوعمطلوبالوصف
word_idintegerنعم
part_of_speechEnPartOfSpeechEنعم
idintegerنعم
sort_orderintegerنعم
titlestringنعم
definitionstringنعم
is_obsoletebooleanنعم
examplesstring[]نعم
categoriesCategoryE[]نعم
meaning_levelWordLevelE | nullنعم
area_variantEnAreaVariantsEنعم
language_registerLanguageRegisterE | nullنعم
translationsPublicWordV1MeaningTranslationT[]نعم
synonymsstring[]نعم
antonymsstring[]نعم

PublicHeadwordMeaningsV1ResT

الاسمالنوعمطلوبالوصف
dataPublicMeaningV1T[]نعم
metaPublicHeadwordV1MetaTنعم

PublicWordFormV1T

الاسمالنوعمطلوبالوصف
word_idintegerنعم
part_of_speechEnPartOfSpeechEنعم
idintegerنعم
wordstringنعم
form_of_wordEnWordFormsEنعم
area_variantEnAreaVariantsEنعم
transcriptionstring | nullنعم

PublicHeadwordFormsV1ResT

الاسمالنوعمطلوبالوصف
dataPublicWordFormV1T[]نعم
metaPublicHeadwordV1MetaTنعم

PublicShortTranslationV1T

الاسمالنوعمطلوبالوصف
word_idintegerنعم
part_of_speechEnPartOfSpeechEنعم
idintegerنعم
languageAvailableTranslationLanguagesEنعم
descriptionstringنعم
variants_of_wordsstring[]نعم

PublicMeaningTranslationV1T

الاسمالنوعمطلوبالوصف
meaning_idintegerنعم
word_idintegerنعم
part_of_speechEnPartOfSpeechEنعم
idintegerنعم
languageAvailableTranslationLanguagesEنعم
titlestringنعم
definitionstringنعم
variants_of_wordsstring[]نعم

PublicWordLinkV1T

الاسمالنوعمطلوبالوصف
meaning_idintegerنعم
wordstringنعم
word_idintegerنعم
part_of_speechEnPartOfSpeechEنعم

PublicHeadwordLinksV1ResT

الاسمالنوعمطلوبالوصف
dataPublicWordLinkV1T[]نعم
metaPublicHeadwordV1MetaTنعم

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

الاسمالنوعمطلوبالوصف
api_versionstringنعم
app_versionstringنعم
dataset_versionstring | nullنعم
licensestringنعم
license_urlstringنعم
attributionstringنعم
noticestringنعم
countsPublicDatasetCountsV1Tنعم
available_languagesPublicAvailableLanguagesV1Tنعم

PublicAvailableLanguagesV1T

الاسمالنوعمطلوبالوصف
sourcestring[]نعم
translationsAvailableTranslationLanguagesE[]نعم

PublicMetaV1ResT

الاسمالنوعمطلوبالوصف
dataPublicMetaV1Tنعم

PublicSuggestionCreatedV1T

الاسمالنوعمطلوبالوصف
idintegerنعم
statusstringنعم

PublicSuggestionCreatedV1ResT

الاسمالنوعمطلوبالوصف
dataPublicSuggestionCreatedV1Tنعم

PublicApiErrorT

الاسمالنوعمطلوبالوصف
statusCodenumberنعم
messagestringنعم
errorbooleanنعم