Публичный 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.
Базовый URL https://<instance>/api/v1Каждый инстанс отдаёт API под своим origin; в примерах ниже — заглушка.
Контракт Документ OpenAPI 3, каждый инстанс отдаёт его по адресу
/api/v1/openapi.json;
файл в репозитории Эндпоинты GET /api/v1/openapi.json The OpenAPI 3 document of the public API (this contract)
Параметры Без параметров.
Ответы 200 OK — object 429 Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the window — PublicApiErrorT 503 Not available: a selected dataset could not be read, the OpenAPI document is not ready, or the suggestion queue is full — PublicApiErrorT Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/openapi.json' const res = await fetch ('https://your-instance.example/api/v1/openapi.json' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/openapi.json" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/openapi.json" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/openapi.json' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/openapi.json"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/openapi.json" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/openapi.json' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const document = await client.openapi ();
const info = document .info ;
if (info && typeof info === 'object' && 'version' in info) {
console .log (info.version );
}from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
document = client.openapi()
print (document["info" ]["version" ])GET /api/v1/search Search dictionary entries (flat list, no meanings)
Tiers in relevance order: exact, phrasal, starts-with, phrases, ends-with, contains. When none matches, a trigram similarity tier answers typos (`meta.fuzzy: true`, `similarity` on every item; Postgres instances only). A term shorter than 3 characters searches the exact and prefix tiers only (`meta.short_term: true`). Cacheable: the answer carries `ETag`, `Last-Modified` and `Cache-Control` like every public GET.
Параметры Имя Где Тип Обязателен Описание searchquery stringда The term to search for typequery stringwordgrammar_patternphrase
нет Restrict the answer to one entry type limitquery integerнет по умолчанию: 10
datasetquery stringнет Public dataset name; omitted = the active dataset. Unknown or closed targets return 404, never a fallback.
Ответы 200 OK — PublicSearchV1ResT 400 Invalid input: an unknown field, a value outside the allowed set, or a foreign cursor — PublicApiErrorT 404 Nothing matches — PublicApiErrorT 429 Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the window — PublicApiErrorT 503 Not available: a selected dataset could not be read, the OpenAPI document is not ready, or the suggestion queue is full — PublicApiErrorT Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/search' const res = await fetch ('https://your-instance.example/api/v1/search' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/search" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/search" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/search' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/search"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/search" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/search' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data, meta } = await client.search ({ search : 'run' });
console .log (meta.fuzzy , data[0 ]?.word );from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.search("run" )
print (answer.meta.fuzzy, answer.data[0 ].word if answer.data else None )Попробовать в плейграунде
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.
Параметры Имя Где Тип Обязателен Описание searchquery stringда The term to search for typequery stringwordgrammar_patternphrase
нет Restrict the answer to one entry type limitquery integerнет по умолчанию: 10
pagequery integerнет по умолчанию: 1
with_meaningsquery booleanнет Join the meanings (with translations, synonyms, antonyms) of every itemпо умолчанию: false
with_translationsquery booleanнет Join the short translations of every itemпо умолчанию: false
translation_languagesquery string[]ruesfrdeptzhar
нет Keep only these translation languages (a repeated key); omit the key for all of them datasetquery stringнет Public dataset name; omitted = the active dataset. Unknown or closed targets return 404, never a fallback.
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/search/detailed' const res = await fetch ('https://your-instance.example/api/v1/search/detailed' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/search/detailed" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/search/detailed" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/search/detailed' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/search/detailed"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/search/detailed" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/search/detailed' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.searchDetailed ({ search : 'run' , with_meanings : true });
const first = data[0 ];
console .log (first?.part_of_speech , first?.meanings ?.[0 ]?.title );from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.search_detailed("run" , with_meanings=True )
first = answer.data[0 ] if answer.data else None
print (
first.part_of_speech.value if first else None ,
first.meanings[0 ].title if first and first.meanings else None ,
)Попробовать в плейграунде
GET /api/v1/words/{word} All entries of a headword: parts of speech, forms, meanings, translations, links
Параметры Имя Где Тип Обязателен Описание wordpath stringда Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/words/run' const res = await fetch ('https://your-instance.example/api/v1/words/run' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/words/run" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/words/run" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/words/run' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/words/run"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/words/run" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/words/run' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.word ('run' );
console .log (data[0 ]?.meanings ?.[0 ]?.definition );from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.word("run" )
first = answer.data[0 ] if answer.data else None
print (first.meanings[0 ].definition if first and first.meanings else None )Попробовать в плейграунде
GET /api/v1/words/{word}/meanings The meanings of a headword across its entries
Параметры Имя Где Тип Обязателен Описание wordpath stringда Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/words/run/meanings' const res = await fetch ('https://your-instance.example/api/v1/words/run/meanings' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/words/run/meanings" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/words/run/meanings" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/words/run/meanings' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/words/run/meanings"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/words/run/meanings" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/words/run/meanings' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.meanings ('run' );
console .log (data[0 ]?.definition );from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.meanings("run" )
print (answer.data[0 ].definition if answer.data else None )Попробовать в плейграунде
GET /api/v1/words/{word}/translations The short and per-meaning translations of a headword
Параметры Имя Где Тип Обязателен Описание wordpath stringда Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry languagequery string[]ruesfrdeptzhar
нет Translation languages; no value means all of them
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/words/run/translations' const res = await fetch ('https://your-instance.example/api/v1/words/run/translations' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/words/run/translations" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/words/run/translations" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/words/run/translations' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/words/run/translations"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/words/run/translations" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/words/run/translations' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.translations ('run' );
const first = data.meaning_translations [0 ];
console .log (first?.title , first?.language );from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.translations("run" )
first = answer.data.meaning_translations[0 ] if answer.data.meaning_translations else None
print (first.title if first else None , first.language.value if first else None )Попробовать в плейграунде
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`.
Параметры Имя Где Тип Обязателен Описание wordpath stringда Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/words/run/synonyms' const res = await fetch ('https://your-instance.example/api/v1/words/run/synonyms' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/words/run/synonyms" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/words/run/synonyms" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/words/run/synonyms' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/words/run/synonyms"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/words/run/synonyms" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/words/run/synonyms' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.synonyms ('run' );
console .log (data.map ((link ) => link.word ));from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.synonyms("run" )
print ([link.word for link in answer.data])Попробовать в плейграунде
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`.
Параметры Имя Где Тип Обязателен Описание wordpath stringда Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/words/run/antonyms' const res = await fetch ('https://your-instance.example/api/v1/words/run/antonyms' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/words/run/antonyms" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/words/run/antonyms" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/words/run/antonyms' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/words/run/antonyms"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/words/run/antonyms" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/words/run/antonyms' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.antonyms ('run' );
console .log (data.map ((link ) => link.word ));from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.antonyms("run" )
print ([link.word for link in answer.data])Попробовать в плейграунде
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.
Параметры Имя Где Тип Обязателен Описание wordpath stringда Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby
curl 'https://your-instance.example/api/v1/words/run/history' const res = await fetch ('https://your-instance.example/api/v1/words/run/history' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/words/run/history" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/words/run/history" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/words/run/history' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/words/run/history"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/words/run/history" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/words/run/history' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)Попробовать в плейграунде
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.
Параметры Имя Где Тип Обязателен Описание wordpath stringда Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/words/run/datasets' const res = await fetch ('https://your-instance.example/api/v1/words/run/datasets' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/words/run/datasets" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/words/run/datasets" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/words/run/datasets' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/words/run/datasets"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/words/run/datasets" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/words/run/datasets' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data, meta } = await client.wordDatasets ('run' );
console .log (`${meta.found} of ${meta.datasets} datasets hold the word` );
for (const group of data) {
console .log (group.dataset , group.license , group.attribution , group.entries .length );
}from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.word_datasets("run" )
print (f"{answer.meta.found} of {answer.meta.datasets} datasets hold the word" )
for group in answer.data:
print (group.dataset, group.license, group.attribution, len (group.entries))Попробовать в плейграунде
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.
Параметры Имя Где Тип Обязателен Описание wordpath stringда Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry datasetpath stringда The name of a dataset of the instance, as `dataset` of a group of `GET /words/{word}/datasets` says it
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/words/run/datasets/default/history' const res = await fetch ('https://your-instance.example/api/v1/words/run/datasets/default/history' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/words/run/datasets/default/history" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/words/run/datasets/default/history" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/words/run/datasets/default/history' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/words/run/datasets/default/history"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/words/run/datasets/default/history" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/words/run/datasets/default/history' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.datasetHistory ('run' , 'default' );
for (const change of data) {
console .log (change.created_at , change.entity , change.action , change.diff );
}from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
history = client.dataset_history("run" , "default" )
for change in history.data:
print (change.created_at, change.entity.value, change.action.value, change.diff)Попробовать в плейграунде
GET /api/v1/words/id/{id} One dictionary entry by its numeric id
Параметры Имя Где Тип Обязателен Описание idpath numberда
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/words/id/1' const res = await fetch ('https://your-instance.example/api/v1/words/id/1' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/words/id/1" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/words/id/1" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/words/id/1' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/words/id/1"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/words/id/1" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/words/id/1' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.wordById (1 );
console .log (data.word , data.part_of_speech );from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.word_by_id(1 )
print (answer.data.word, answer.data.part_of_speech.value)Попробовать в плейграунде
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.
Параметры Имя Где Тип Обязателен Описание searchquery stringнет Headword prefix, case-insensitive (`ru` lists run, rung, runner, …) is_obsoletequery booleanнет true: obsolete entries only, false: current ones only part_of_speechquery string[]nounverbmodal_verbadjectiveadverbpronounnumeralnumeral_fractionaldeterminerinterjectionarticleprepositionconjunctionletterphrasegrammar_pattern
нет word_levelquery string[]A1A2B1B2C1C2
нет language_registerquery string[]formalinformalslang
нет categoryquery string[]scientifictechnicalmedicallegalbusinessITartpoliticalsportculinary
нет Words tagged with any of the categories area_variantquery string[]commonbritishamericanaustralian
нет form_of_wordquery string[]base_formplural_formpossessive_singular_formpossessive_plural_formpast_simplepast_participlepresent_participlethird_person_singularcomparative_formsuperlative_formobjectpossessive_adjectivepossessive_pronounreflexiveordinalmultiplicative
нет Defaults to base forms onlyпо умолчанию: ["base_form"]
cursorquery stringнет The `meta.next_cursor` of the previous page; omit for the first page limitquery integerнет по умолчанию: 20
with_meaningsquery booleanнет Join the meanings of every wordпо умолчанию: false
with_translationsquery booleanнет Join the short translations of every wordпо умолчанию: false
Ответы 200 OK — PublicWordsV1ResT 400 Invalid input: an unknown field, a value outside the allowed set, or a foreign cursor — PublicApiErrorT 429 Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the window — PublicApiErrorT Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/words' const res = await fetch ('https://your-instance.example/api/v1/words' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/words" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/words" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/words' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/words"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/words" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/words' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.words ({ word_level : ['A1' ] });
console .log (data.slice (0 , 5 ).map ((entry ) => entry.word ));
from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.words(word_level=["A1" ])
print ([entry.word for entry in answer.data[:5 ]])
Попробовать в плейграунде
GET /api/v1/random A random dictionary entry matching the filters (base forms unless form_of_word is given)
Параметры Имя Где Тип Обязателен Описание searchquery stringнет Headword prefix, case-insensitive (`ru` lists run, rung, runner, …) is_obsoletequery booleanнет true: obsolete entries only, false: current ones only part_of_speechquery string[]nounverbmodal_verbadjectiveadverbpronounnumeralnumeral_fractionaldeterminerinterjectionarticleprepositionconjunctionletterphrasegrammar_pattern
нет word_levelquery string[]A1A2B1B2C1C2
нет language_registerquery string[]formalinformalslang
нет categoryquery string[]scientifictechnicalmedicallegalbusinessITartpoliticalsportculinary
нет Words tagged with any of the categories area_variantquery string[]commonbritishamericanaustralian
нет form_of_wordquery string[]base_formplural_formpossessive_singular_formpossessive_plural_formpast_simplepast_participlepresent_participlethird_person_singularcomparative_formsuperlative_formobjectpossessive_adjectivepossessive_pronounreflexiveordinalmultiplicative
нет Defaults to base forms onlyпо умолчанию: ["base_form"]
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/random' const res = await fetch ('https://your-instance.example/api/v1/random' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/random" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/random" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/random' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/random"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/random" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/random' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.random ();
console .log (data.word );from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.random()
print (answer.data.word)Попробовать в плейграунде
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 JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/search/semantic/status' const res = await fetch ('https://your-instance.example/api/v1/search/semantic/status' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/search/semantic/status" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/search/semantic/status" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/search/semantic/status' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/search/semantic/status"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/search/semantic/status" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/search/semantic/status' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.semanticStatus ();
console .log (data.enabled );from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.semantic_status()
print (answer.data.enabled)Попробовать в плейграунде
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.
Параметры Имя Где Тип Обязателен Описание queryquery stringда A description of the intended meaning, in English or another language supported by the model. datasetquery stringнет One public dataset; omitted = active dataset. Closed/unknown targets return 404. limitquery integerнет по умолчанию: 10
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/search/semantic' const res = await fetch ('https://your-instance.example/api/v1/search/semantic' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/search/semantic" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/search/semantic" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/search/semantic' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/search/semantic"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/search/semantic" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/search/semantic' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.searchSemantic ({ query : 'A scientist who studies birds' });
console .log (data[0 ]?.word .word , data[0 ]?.meaning .definition );from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.search_semantic("A scientist who studies birds" )
print (answer.data[0 ].meaning.definition if answer.data else None )Попробовать в плейграунде
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.
Параметры Имя Где Тип Обязателен Описание languagepath stringenen_USen_GB
да wordpath stringда Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby
curl 'https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run/datasets' const res = await fetch ('https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run/datasets' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run/datasets" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run/datasets" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run/datasets' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run/datasets"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run/datasets" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run/datasets' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)Попробовать в плейграунде
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.
Параметры Имя Где Тип Обязателен Описание languagepath stringenen_USen_GB
да wordpath stringда Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby
curl 'https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run/datasets' const res = await fetch ('https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run/datasets' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run/datasets" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run/datasets" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run/datasets' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run/datasets"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run/datasets" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run/datasets' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)Попробовать в плейграунде
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.
Параметры Имя Где Тип Обязателен Описание languagepath stringда en or all; other values return empty entries wordpath stringда Exact case-sensitive spelling, encoded as one URL segment prettyquery booleanнет Indent the whole response with two spaces; default false. translationsquery booleanнет Include supported translations; default false. Only true/false, first occurrence wins.
Ответы 200 OK — FreeDictionaryDatasetsResT 400 Invalid input: an unknown field, a value outside the allowed set, or a foreign cursor 429 Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the window Пример curl JavaScript Python Go PHP Rust Java Ruby
curl 'https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run/datasets' const res = await fetch ('https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run/datasets' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run/datasets" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run/datasets" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run/datasets' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run/datasets"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run/datasets" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run/datasets' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)Попробовать в плейграунде
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.
Параметры Имя Где Тип Обязателен Описание languagepath stringenen_USen_GB
да wordpath stringда Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby
curl 'https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run' const res = await fetch ('https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/compat/dictionaryapi/v2/entries/en/run' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)Попробовать в плейграунде
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.
Параметры Имя Где Тип Обязателен Описание languagepath stringenen_USen_GB
да wordpath stringда Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby
curl 'https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run' const res = await fetch ('https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/compat/dictionaryapi/v1/entries/en/run' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)Попробовать в плейграунде
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.
Параметры Имя Где Тип Обязателен Описание languagepath stringда en or all; other values return empty entries wordpath stringда Exact case-sensitive spelling, encoded as one URL segment prettyquery booleanнет Indent JSON with two spaces; default false. translationsquery booleanнет Include supported translations; default false. Only true/false, first occurrence wins.
Ответы 200 OK — FreeDictionaryEntriesResT 400 Invalid input: an unknown field, a value outside the allowed set, or a foreign cursor 429 Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the window Пример curl JavaScript Python Go PHP Rust Java Ruby
curl 'https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run' const res = await fetch ('https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/compat/freedictionaryapi/v1/entries/example/run' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)Попробовать в плейграунде
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.
Параметры Имя Где Тип Обязателен Описание prettyquery booleanнет Indent JSON with two spaces; default false.
Ответы 200 OK — FreeDictionaryLanguagesResT 400 Invalid input: an unknown field, a value outside the allowed set, or a foreign cursor 429 Rate limit of the public prefix exceeded (PUBLIC_API_RATE_LIMIT); retry after the window Пример curl JavaScript Python Go PHP Rust Java Ruby
curl 'https://your-instance.example/api/compat/freedictionaryapi/v1/languages' const res = await fetch ('https://your-instance.example/api/compat/freedictionaryapi/v1/languages' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/compat/freedictionaryapi/v1/languages" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/compat/freedictionaryapi/v1/languages" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/compat/freedictionaryapi/v1/languages' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/compat/freedictionaryapi/v1/languages"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/compat/freedictionaryapi/v1/languages" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/compat/freedictionaryapi/v1/languages' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)Попробовать в плейграунде
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.
Параметры Имя Где Тип Обязателен Описание searchquery stringда The term to search for typequery stringwordgrammar_patternphrase
нет Restrict the answer to one entry type limitquery integerнет по умолчанию: 10
pagequery integerнет по умолчанию: 1
with_meaningsquery booleanнет Join the meanings (with translations, synonyms, antonyms) of every itemпо умолчанию: false
with_translationsquery booleanнет Join the short translations of every itemпо умолчанию: false
translation_languagesquery string[]ruesfrdeptzhar
нет Keep only these translation languages (a repeated key); omit the key for all of them datasetsquery string[]да Public dataset names as repeated keys. Groups follow installation order. Each selected dataset costs one unit of the shared public rate budget.
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/search/datasets?search=run&datasets=default' const res = await fetch ('https://your-instance.example/api/v1/search/datasets?search=run&datasets=default' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/search/datasets?search=run&datasets=default" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/search/datasets?search=run&datasets=default" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/search/datasets?search=run&datasets=default' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/search/datasets?search=run&datasets=default"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/search/datasets?search=run&datasets=default" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/search/datasets?search=run&datasets=default' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.searchDatasets ({ search : 'run' , datasets : ['default' ] });
for (const group of data) {
if (group.status === 'ok' ) console .log (group.dataset , group.data , group.meta .has_more );
else console .log (group.dataset , group.error );
}from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
from vocab_bloom_hub import SearchDatasetResult
answer = client.search_datasets("run" , ["default" ])
for group in answer.data:
if isinstance (group, SearchDatasetResult):
print (group.dataset, group.data, group.meta.has_more)
else :
print (group.dataset, group.error)Попробовать в плейграунде
GET /api/v1/datasets Publicly readable datasets and their terms, in installation order
Параметры Без параметров.
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl 'https://your-instance.example/api/v1/datasets' const res = await fetch ('https://your-instance.example/api/v1/datasets' );
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.get("https://your-instance.example/api/v1/datasets" )
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
)
resp, err := http.Get("https://your-instance.example/api/v1/datasets" )
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/datasets' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let answer : Value = client
.get (r#"https://your-instance.example/api/v1/datasets"# )
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/datasets" ))
.GET()
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/datasets' )
request = Net::HTTP::Get .new(uri)
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.datasets ();
console .log (data.map (dataset => dataset.dataset ));from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.datasets()
print ([dataset.dataset for dataset in answer.data])Попробовать в плейграунде
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.
Имя Тип Обязателен Описание wordsstring[]да Headword spellings, 50 at most, each matched like GET /words/{word} (case-insensitively; an inflected form resolves to its base entry)
Ответы Пример curl JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
curl -X POST 'https://your-instance.example/api/v1/words/batch' \
-H 'Content-Type: application/json' \
-d '{"words":["run","walk","nonexistentword"]}' const res = await fetch ('https://your-instance.example/api/v1/words/batch' , {
method : 'POST' ,
headers : { 'Content-Type' : 'application/json' },
body : JSON .stringify ({
words : ['run' , 'walk' , 'nonexistentword' ]
}),
});
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.post("https://your-instance.example/api/v1/words/batch" , json={
"words" : ["run" , "walk" , "nonexistentword" ]
})
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
"strings"
)
resp, err := http.Post("https://your-instance.example/api/v1/words/batch" , "application/json" , strings.NewReader(`{"words":["run","walk","nonexistentword"]}` ))
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/words/batch' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_CUSTOMREQUEST => 'POST' ,
CURLOPT_HTTPHEADER => ['Content-Type: application/json' ],
CURLOPT_POSTFIELDS => json_encode ([
'words' => ['run' , 'walk' , 'nonexistentword' ]
]),
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let body : Value = serde_json::from_str (r#"{"words":["run","walk","nonexistentword"]}"# )?;
let answer : Value = client
.post (r#"https://your-instance.example/api/v1/words/batch"# )
.json (&body)
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/words/batch" ))
.header("Content-Type" , "application/json" )
.POST(HttpRequest.BodyPublishers.ofString("{\"words\":[\"run\",\"walk\",\"nonexistentword\"]}" ))
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/words/batch' )
request = Net::HTTP::Post .new(uri)
request['Content-Type' ] = 'application/json'
request.body = JSON .generate({
'words' => ['run' , 'walk' , 'nonexistentword' ]
})
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data, meta } = await client.wordsBatch (['run' , 'walk' , 'nonexistentword' ]);
console .log (data.map ((item ) => item.word ), meta.not_found );from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.words_batch(["run" , "walk" , "nonexistentword" ])
print ([item.word for item in answer.data], answer.meta.not_found)Попробовать в плейграунде
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.
Имя Тип Обязателен Описание 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 kindstringreportedit
нет по умолчанию: "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 JavaScript Python Go PHP Rust Java Ruby Node.js SDK Python SDK
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."}' const res = await fetch ('https://your-instance.example/api/v1/suggestions' , {
method : 'POST' ,
headers : { 'Content-Type' : 'application/json' },
body : JSON .stringify ({
headword : 'run' ,
message : 'Please check the definition of this word.'
}),
});
if (!res.ok ) throw new Error (`HTTP ${res.status} ` );
const answer = await res.json ();import requests
res = requests.post("https://your-instance.example/api/v1/suggestions" , json={
"headword" : "run" ,
"message" : "Please check the definition of this word."
})
res.raise_for_status()
answer = res.json()import (
"encoding/json"
"log"
"net/http"
"strings"
)
resp, err := http.Post("https://your-instance.example/api/v1/suggestions" , "application/json" , strings.NewReader(`{"headword":"run","message":"Please check the definition of this word."}` ))
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var answer map [string ]any
if err := json.NewDecoder(resp.Body).Decode(&answer); err != nil {
log.Fatal(err)
}$ch = curl_init ('https://your-instance.example/api/v1/suggestions' );
curl_setopt_array ($ch , [
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_CUSTOMREQUEST => 'POST' ,
CURLOPT_HTTPHEADER => ['Content-Type: application/json' ],
CURLOPT_POSTFIELDS => json_encode ([
'headword' => 'run' ,
'message' => 'Please check the definition of this word.'
]),
]);
$answer = json_decode (curl_exec ($ch ), true );
curl_close ($ch );
use reqwest::blocking::Client;
use serde_json::Value;
fn main () -> Result <(), Box <dyn std::error::Error>> {
let client = Client::new ();
let body : Value = serde_json::from_str (r#"{"headword":"run","message":"Please check the definition of this word."}"# )?;
let answer : Value = client
.post (r#"https://your-instance.example/api/v1/suggestions"# )
.json (&body)
.send ()?
.error_for_status ()?
.json ()?;
println! ("{answer}" );
Ok (())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main (String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://your-instance.example/api/v1/suggestions" ))
.header("Content-Type" , "application/json" )
.POST(HttpRequest.BodyPublishers.ofString("{\"headword\":\"run\",\"message\":\"Please check the definition of this word.\"}" ))
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}require 'net/http'
require 'json'
uri = URI ('https://your-instance.example/api/v1/suggestions' )
request = Net::HTTP::Post .new(uri)
request['Content-Type' ] = 'application/json'
request.body = JSON .generate({
'headword' => 'run' ,
'message' => 'Please check the definition of this word.'
})
response = Net ::HTTP .start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https' ) do |http |
http.request(request)
end
response.value
answer = JSON .parse(response.body)
puts JSON .pretty_generate(answer)import { VocabBloomClient } from '@vocab-bloom-hub/client' ;
const client = new VocabBloomClient ({ baseUrl : 'https://your-instance.example' });
const { data } = await client.suggest ({
headword : 'run' ,
message : 'Please check the definition of this word.'
});
console .log (data.id , data.status );from vocab_bloom_hub import VocabBloomClient
client = VocabBloomClient("https://your-instance.example" )
answer = client.suggest(**{
"headword" : "run" ,
"message" : "Please check the definition of this word."
})
print (answer.data.id , answer.data.status)Попробовать в плейграунде
Схемы SuggestionEditV1DTO Имя Тип Обязателен Описание target_typestringwordmeaningmeaning_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 kindstringreportedit
нет по умолчанию: "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)
OriginT Имя Тип Обязателен Описание idstringда namestringда versionstring | nullда urlstringнет record_urlstringнет licensesOriginLicenseT[] да license_relationstringallany
да All obligations apply, or the source explicitly offers a choice. attributionstringда noticesstring[]да scopestringworddataset
да Dataset means that distribution between individual words is unknown. methodstringdatasetmanual
да 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да methodstringcopyfork
да 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
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. typestringipaenpr
да 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
PublicSearchDetailedV1ResT MeaningQuoteT A sourced quotation, in authored array order. Missing attribution is explicit.
Имя Тип Обязателен Описание textstringда referencestring | nullда source_urlstring | nullнет
PublicWordV1MeaningTranslationT AvailableTranslationLanguagesE Одно из: ru, es, fr, de, pt, zh, ar
PublicWordV1ShortTranslationT PublicHeadwordMeaningsV1ResT PublicShortTranslationV1T PublicMeaningTranslationV1T PublicHeadwordLinksV1ResT 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.
ChangeMeaningRecordT Имя Тип Обязателен Описание titlestringда sort_orderintegerда
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 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да
PublicHeadwordTranslationsV1T PublicHeadwordTranslationsV1ResT PublicDatasetCountsV1T Имя Тип Обязателен Описание entriesintegerда wordsintegerда phrasesintegerда grammar_patternsintegerда word_formsintegerда meaningsintegerда meaning_translationsintegerда short_translationsintegerда
PublicAvailableLanguagesV1T PublicSuggestionCreatedV1T Имя Тип Обязателен Описание idintegerда statusstringда
PublicSuggestionCreatedV1ResT PublicApiErrorT Имя Тип Обязателен Описание statusCodenumberда messagestringда errorbooleanда
DictionaryApiV1DatasetsResT Имя Тип Обязателен Описание dataobject[]да metaobjectда found counts datasets with entries, including for adapters whose misses are HTTP 200.
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.
FreeDictionaryDatasetsResT Имя Тип Обязателен Описание dataobject[]да metaobjectда found counts datasets with entries, including for adapters whose misses are HTTP 200.
FreeDictionaryEntriesResT 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.
PublicSearchDatasetResultV1T Имя Тип Обязателен Описание statusstringok
да 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.
Имя Тип Обязателен Описание statusstringunavailable
да errorstringdataset_unavailable
да originsOriginT[] нет licensesWordLicenseT[] нет descriptionstring | nullнет datasetstringда titlestringнет activebooleanда sourcestringда dataset_versionstring | nullда licensestringда license_urlstringда attributionstringда attribution_urlstring | nullда noticestringда license_textstringда
PublicSearchDatasetsV1ResT 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 PublicSemanticStatusV1ResT Имя Тип Обязателен Описание dataobjectда