API pública v1 A referência da API somente leitura do dicionário, gerada a partir do documento OpenAPI publicado pelo servidor — o mesmo contrato a partir do qual os SDKs são construídos.
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 base https://<instance>/api/v1Cada instância serve a API na sua própria origem; os exemplos abaixo usam um marcador.
Endpoints GET /api/v1/openapi.json The OpenAPI 3 document of the public API (this contract)
Parâmetros Sem parâmetros.
Respostas 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 Exemplo 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.
Parâmetros Nome Em Tipo Obrigatório Descrição searchquery stringsim The term to search for typequery stringwordgrammar_patternphrase
não Restrict the answer to one entry type limitquery integernão padrão: 10
datasetquery stringnão Public dataset name; omitted = the active dataset. Unknown or closed targets return 404, never a fallback.
Respostas 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 Exemplo 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 )Testar no playground
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.
Parâmetros Nome Em Tipo Obrigatório Descrição searchquery stringsim The term to search for typequery stringwordgrammar_patternphrase
não Restrict the answer to one entry type limitquery integernão padrão: 10
pagequery integernão padrão: 1
with_meaningsquery booleannão Join the meanings (with translations, synonyms, antonyms) of every itempadrão: false
with_translationsquery booleannão Join the short translations of every itempadrão: false
translation_languagesquery string[]ruesfrdeptzhar
não Keep only these translation languages (a repeated key); omit the key for all of them datasetquery stringnão Public dataset name; omitted = the active dataset. Unknown or closed targets return 404, never a fallback.
Respostas Exemplo 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 ,
)Testar no playground
GET /api/v1/words/{word} All entries of a headword: parts of speech, forms, meanings, translations, links
Parâmetros Nome Em Tipo Obrigatório Descrição wordpath stringsim Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respostas Exemplo 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 )Testar no playground
GET /api/v1/words/{word}/meanings The meanings of a headword across its entries
Parâmetros Nome Em Tipo Obrigatório Descrição wordpath stringsim Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respostas Exemplo 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 )Testar no playground
GET /api/v1/words/{word}/translations The short and per-meaning translations of a headword
Parâmetros Nome Em Tipo Obrigatório Descrição wordpath stringsim Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry languagequery string[]ruesfrdeptzhar
não Translation languages; no value means all of them
Respostas Exemplo 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 )Testar no playground
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`.
Parâmetros Nome Em Tipo Obrigatório Descrição wordpath stringsim Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respostas Exemplo 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])Testar no playground
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`.
Parâmetros Nome Em Tipo Obrigatório Descrição wordpath stringsim Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respostas Exemplo 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])Testar no playground
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.
Parâmetros Nome Em Tipo Obrigatório Descrição wordpath stringsim Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respostas Exemplo 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)Testar no playground
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.
Parâmetros Nome Em Tipo Obrigatório Descrição wordpath stringsim Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respostas Exemplo 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))Testar no playground
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.
Parâmetros Nome Em Tipo Obrigatório Descrição wordpath stringsim Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry datasetpath stringsim The name of a dataset of the instance, as `dataset` of a group of `GET /words/{word}/datasets` says it
Respostas Exemplo 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)Testar no playground
GET /api/v1/words/id/{id} One dictionary entry by its numeric id
Parâmetros Nome Em Tipo Obrigatório Descrição idpath numbersim
Respostas Exemplo 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)Testar no playground
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.
Parâmetros Nome Em Tipo Obrigatório Descrição searchquery stringnão Headword prefix, case-insensitive (`ru` lists run, rung, runner, …) is_obsoletequery booleannão true: obsolete entries only, false: current ones only part_of_speechquery string[]nounverbmodal_verbadjectiveadverbpronounnumeralnumeral_fractionaldeterminerinterjectionarticleprepositionconjunctionletterphrasegrammar_pattern
não word_levelquery string[]A1A2B1B2C1C2
não language_registerquery string[]formalinformalslang
não categoryquery string[]scientifictechnicalmedicallegalbusinessITartpoliticalsportculinary
não Words tagged with any of the categories area_variantquery string[]commonbritishamericanaustralian
não form_of_wordquery string[]base_formplural_formpossessive_singular_formpossessive_plural_formpast_simplepast_participlepresent_participlethird_person_singularcomparative_formsuperlative_formobjectpossessive_adjectivepossessive_pronounreflexiveordinalmultiplicative
não Defaults to base forms onlypadrão: ["base_form"]
cursorquery stringnão The `meta.next_cursor` of the previous page; omit for the first page limitquery integernão padrão: 20
with_meaningsquery booleannão Join the meanings of every wordpadrão: false
with_translationsquery booleannão Join the short translations of every wordpadrão: false
Respostas 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 Exemplo 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 ]])
Testar no playground
GET /api/v1/random A random dictionary entry matching the filters (base forms unless form_of_word is given)
Parâmetros Nome Em Tipo Obrigatório Descrição searchquery stringnão Headword prefix, case-insensitive (`ru` lists run, rung, runner, …) is_obsoletequery booleannão true: obsolete entries only, false: current ones only part_of_speechquery string[]nounverbmodal_verbadjectiveadverbpronounnumeralnumeral_fractionaldeterminerinterjectionarticleprepositionconjunctionletterphrasegrammar_pattern
não word_levelquery string[]A1A2B1B2C1C2
não language_registerquery string[]formalinformalslang
não categoryquery string[]scientifictechnicalmedicallegalbusinessITartpoliticalsportculinary
não Words tagged with any of the categories area_variantquery string[]commonbritishamericanaustralian
não form_of_wordquery string[]base_formplural_formpossessive_singular_formpossessive_plural_formpast_simplepast_participlepresent_participlethird_person_singularcomparative_formsuperlative_formobjectpossessive_adjectivepossessive_pronounreflexiveordinalmultiplicative
não Defaults to base forms onlypadrão: ["base_form"]
Respostas Exemplo 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)Testar no playground
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.
Parâmetros Sem parâmetros.
Respostas Exemplo 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)Testar no playground
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.
Parâmetros Nome Em Tipo Obrigatório Descrição queryquery stringsim A description of the intended meaning, in English or another language supported by the model. datasetquery stringnão One public dataset; omitted = active dataset. Closed/unknown targets return 404. limitquery integernão padrão: 10
Respostas Exemplo 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 )Testar no playground
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.
Parâmetros Nome Em Tipo Obrigatório Descrição languagepath stringenen_USen_GB
sim wordpath stringsim Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respostas Exemplo 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)Testar no playground
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.
Parâmetros Nome Em Tipo Obrigatório Descrição languagepath stringenen_USen_GB
sim wordpath stringsim Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respostas Exemplo 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)Testar no playground
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.
Parâmetros Nome Em Tipo Obrigatório Descrição languagepath stringsim en or all; other values return empty entries wordpath stringsim Exact case-sensitive spelling, encoded as one URL segment prettyquery booleannão Indent the whole response with two spaces; default false. translationsquery booleannão Include supported translations; default false. Only true/false, first occurrence wins.
Respostas 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 Exemplo 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)Testar no playground
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.
Parâmetros Nome Em Tipo Obrigatório Descrição languagepath stringenen_USen_GB
sim wordpath stringsim Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respostas Exemplo 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)Testar no playground
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.
Parâmetros Nome Em Tipo Obrigatório Descrição languagepath stringenen_USen_GB
sim wordpath stringsim Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respostas Exemplo 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)Testar no playground
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.
Parâmetros Nome Em Tipo Obrigatório Descrição languagepath stringsim en or all; other values return empty entries wordpath stringsim Exact case-sensitive spelling, encoded as one URL segment prettyquery booleannão Indent JSON with two spaces; default false. translationsquery booleannão Include supported translations; default false. Only true/false, first occurrence wins.
Respostas 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 Exemplo 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)Testar no playground
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.
Parâmetros Nome Em Tipo Obrigatório Descrição prettyquery booleannão Indent JSON with two spaces; default false.
Respostas 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 Exemplo 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)Testar no playground
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.
Parâmetros Nome Em Tipo Obrigatório Descrição searchquery stringsim The term to search for typequery stringwordgrammar_patternphrase
não Restrict the answer to one entry type limitquery integernão padrão: 10
pagequery integernão padrão: 1
with_meaningsquery booleannão Join the meanings (with translations, synonyms, antonyms) of every itempadrão: false
with_translationsquery booleannão Join the short translations of every itempadrão: false
translation_languagesquery string[]ruesfrdeptzhar
não Keep only these translation languages (a repeated key); omit the key for all of them datasetsquery string[]sim Public dataset names as repeated keys. Groups follow installation order. Each selected dataset costs one unit of the shared public rate budget.
Respostas Exemplo 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)Testar no playground
GET /api/v1/datasets Publicly readable datasets and their terms, in installation order
Parâmetros Sem parâmetros.
Respostas Exemplo 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])Testar no playground
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.
Nome Tipo Obrigatório Descrição wordsstring[]sim Headword spellings, 50 at most, each matched like GET /words/{word} (case-insensitively; an inflected form resolves to its base entry)
Respostas Exemplo 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)Testar no playground
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.
Nome Tipo Obrigatório Descrição datasetstringnão Installed, publicly open dataset containing the headword and all supplied IDs. Omit to use the active dataset. headwordstringsim The headword the report is about; must exist in the dictionary word_idobjectnão Id of the entry (part of speech) the report points at, from the word answers kindstringreportedit
não padrão: "report"
messageobjectnão What is wrong and, ideally, what would be right. Required for a report; an optional comment on an edit editsSuggestionEditV1DTO[] não Edit flow: every touched target of the word form with its proposed values author_nameobjectnão 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_consentobjectnão The sender agrees that `author_name` is shown and exported; required when a name is given
Respostas Exemplo 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)Testar no playground
Esquemas SuggestionEditV1DTO Nome Tipo Obrigatório Descrição target_typestringwordmeaningmeaning_translationshort_translation
sim target_idnumbersim Id of the targeted row, from the word answers changesobjectsim 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 Nome Tipo Obrigatório Descrição datasetstringnão Installed, publicly open dataset containing the headword and all supplied IDs. Omit to use the active dataset. headwordstringsim The headword the report is about; must exist in the dictionary word_idobjectnão Id of the entry (part of speech) the report points at, from the word answers kindstringreportedit
não padrão: "report"
messageobjectnão What is wrong and, ideally, what would be right. Required for a report; an optional comment on an edit editsSuggestionEditV1DTO[] não Edit flow: every touched target of the word form with its proposed values author_nameobjectnão 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_consentobjectnão The sender agrees that `author_name` is shown and exported; required when a name is given
WordsBatchV1ReqDTO Nome Tipo Obrigatório Descrição wordsstring[]sim Headword spellings, 50 at most, each matched like GET /words/{word} (case-insensitively; an inflected form resolves to its base entry)
PublicSearchWordV1T Nome Tipo Obrigatório Descrição alternativesstring[]não Alternative spellings of this headword, shared by all its parts of speech. originsOriginT[] não contributionsOriginT[] não Terms of the datasets whose edits still contribute to this word. licensesWordLicenseT[] não idintegersim wordstringsim part_of_speechEnPartOfSpeechE sim form_of_wordEnWordFormsE sim is_obsoletebooleansim is_abbreviationbooleansim word_levelWordLevelE | null sim area_variantEnAreaVariantsE | null sim categoriesCategoryE[] sim language_registerLanguageRegisterE | null sim descriptionstring | nullsim transcriptionstring | nullsim pronunciationsPronunciationT[] não Ordered pronunciations, with legacy transcription and base-form fallback. patternstring[] | nullsim noun___irregular_pluralboolean | nullsim noun___uncountableboolean | nullsim noun___is_properboolean | nullsim noun___always_pluralboolean | nullsim verb___is_irregularboolean | nullsim verb___transitivityEnVerbTransitivityE | null sim verb___is_phrasalboolean | nullsim verb___phrasal_object_patternEnPhrasalObjectPatternE | null sim base_phrasalstring | nullsim formsPublicWordV1FormT[] sim similaritynumbernão sourcestringnão modifiedbooleannão
OriginT Nome Tipo Obrigatório Descrição idstringsim namestringsim versionstring | nullsim urlstringnão record_urlstringnão licensesOriginLicenseT[] sim license_relationstringallany
sim All obligations apply, or the source explicitly offers a choice. attributionstringsim noticesstring[]sim scopestringworddataset
sim Dataset means that distribution between individual words is unknown. methodstringdatasetmanual
sim recorded_atstring | nullsim acquisitionsOriginAcquisitionT[] não Copy/fork events belonging to this source snapshot; absent before any acquisition. inheritedbooleansim Automatically inherited terms cannot be removed by ordinary editing.
OriginLicenseT A durable statement of terms, not a pointer to a mutable dataset registry.
Nome Tipo Obrigatório Descrição spdxstringnão namestringsim urlstringsim textstringnão Required for custom licenses; preserved verbatim when supplied.
OriginAcquisitionT An acquisition of a source snapshot, without repeating its license terms.
Nome Tipo Obrigatório Descrição idstringsim methodstringcopyfork
sim recorded_atstring | nullsim revisionstringnão viaobjectnão 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.
Nome Tipo Obrigatório Descrição origin_idstringsim spdxstringnão namestringsim urlstringsim textstringnão Required for custom licenses; preserved verbatim when supplied.
EnPartOfSpeechE Um de: noun, verb, modal_verb, adjective, adverb, pronoun, numeral, numeral_fractional, determiner, interjection, article, preposition, conjunction, letter, phrase, grammar_pattern
WordLevelE Um de: A1, A2, B1, B2, C1, C2
EnAreaVariantsE Um de: common, british, american, australian
CategoryE Um de: scientific, technical, medical, legal, business, IT, art, political, sport, culinary
LanguageRegisterE Um de: formal, informal, slang
PronunciationT Portable pronunciation; database IDs never travel in datasets or public responses.
Nome Tipo Obrigatório Descrição audioPronunciationAudioT[] não Recordings carry their own terms, independent of the word's text. typestringipaenpr
sim textstring | nullsim area_variantEnAreaVariantsE sim sort_orderintegersim
PronunciationAudioT External recordings only; missing license metadata is an empty list, never the text license.
Nome Tipo Obrigatório Descrição urlstringsim source_urlstring | nullnão attributionstring | nullnão licensesOriginLicenseT[] sim sort_orderintegersim
EnVerbTransitivityE Um de: transitive, intransitive, both
EnPhrasalObjectPatternE Um de: no_object, inseparable, separable, separable_pronoun_only
PublicSearchDetailedV1ResT MeaningQuoteT A sourced quotation, in authored array order. Missing attribution is explicit.
Nome Tipo Obrigatório Descrição textstringsim referencestring | nullsim source_urlstring | nullnão
PublicWordV1MeaningTranslationT AvailableTranslationLanguagesE Um de: ru, es, fr, de, pt, zh, ar
PublicWordV1ShortTranslationT PublicHeadwordMeaningsV1ResT PublicShortTranslationV1T PublicMeaningTranslationV1T PublicHeadwordLinksV1ResT ChangeEntityE What was edited
Um de: word, word_form, meaning, meaning_translation, short_translation
ChangeActionE Um de: 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.
Nome Tipo Obrigatório Descrição
ChangeMeaningRecordT Nome Tipo Obrigatório Descrição titlestringsim sort_orderintegersim
ChangeShortTranslationRecordT Nome Tipo Obrigatório Descrição languagestringsim descriptionstringsim
ChangeDiffT The values an edit changed: `{ field: { before, after } }`; a creation has no `before`, a deletion no `after`
Nome Tipo Obrigatório Descrição
ChangeOriginE Where an edit came from
Um de: admin, suggestion, revert
PublicHeadwordHistoryV1MetaT Nome Tipo Obrigatório Descrição wordstringsim countintegersim variantsstring[]não
PublicHeadwordHistoryV1ResT PublicDatasetTermsV1T Nome Tipo Obrigatório Descrição originsOriginT[] não licensesWordLicenseT[] não descriptionstring | nullnão datasetstringsim titlestringnão activebooleansim sourcestringsim dataset_versionstring | nullsim licensestringsim license_urlstringsim attributionstringsim attribution_urlstring | nullsim noticestringsim license_textstringsim
PublicWordDatasetV1T Nome Tipo Obrigatório Descrição wordstringsim variantsstring[]sim countintegersim entriesPublicWordV1T[] sim originsOriginT[] não licensesWordLicenseT[] não descriptionstring | nullnão datasetstringsim titlestringnão activebooleansim sourcestringsim dataset_versionstring | nullsim licensestringsim license_urlstringsim attributionstringsim attribution_urlstring | nullsim noticestringsim license_textstringsim
PublicHeadwordTranslationsV1T PublicHeadwordTranslationsV1ResT PublicWordsBatchItemV1T Nome Tipo Obrigatório Descrição wordstringsim countintegersim entriesPublicWordV1T[] sim
PublicDatasetCountsV1T Nome Tipo Obrigatório Descrição entriesintegersim wordsintegersim phrasesintegersim grammar_patternsintegersim word_formsintegersim meaningsintegersim meaning_translationsintegersim short_translationsintegersim
PublicAvailableLanguagesV1T PublicSuggestionCreatedV1T Nome Tipo Obrigatório Descrição idintegersim statusstringsim
PublicSuggestionCreatedV1ResT PublicApiErrorT Nome Tipo Obrigatório Descrição statusCodenumbersim messagestringsim errorbooleansim
DictionaryApiV1DatasetsResT Nome Tipo Obrigatório Descrição dataobject[]sim metaobjectsim found counts datasets with entries, including for adapters whose misses are HTTP 200.
DictionaryApiV1ResT Nome Tipo Obrigatório Descrição
DictionaryApiDefinitionT Nome Tipo Obrigatório Descrição definitionstringsim examplestringnão synonymsstring[]sim antonymsstring[]sim
DictionaryApiPhoneticT Nome Tipo Obrigatório Descrição textstringnão audiostringsim sourceUrlstringnão licenseDictionaryApiLicenseT não vocabBloomobjectnão Lossless recording terms; the upstream singular license cannot express all of these.
DictionaryApiLicenseT Nome Tipo Obrigatório Descrição namestringsim urlstringsim
DictionaryApiErrorT Nome Tipo Obrigatório Descrição titlestringsim messagestringsim resolutionstringsim
DictionaryApiV2DatasetsResT Nome Tipo Obrigatório Descrição dataobject[]sim metaobjectsim found counts datasets with entries, including for adapters whose misses are HTTP 200.
DictionaryApiV2ResT Nome Tipo Obrigatório Descrição
FreeDictionaryDatasetsResT Nome Tipo Obrigatório Descrição dataobject[]sim metaobjectsim found counts datasets with entries, including for adapters whose misses are HTTP 200.
FreeDictionaryEntriesResT FreeDictionaryEntryT Nome Tipo Obrigatório Descrição languageFreeDictionaryLanguageT sim partOfSpeechstringsim pronunciationsobject[]sim formsobject[]sim sensesFreeDictionarySenseT[] sim synonymsstring[]sim antonymsstring[]sim vocabBloomobjectsim Native entry identity and lossless terms; additive to the upstream format.
FreeDictionaryLanguageT Nome Tipo Obrigatório Descrição codestringsim namestringsim
FreeDictionarySenseT Nome Tipo Obrigatório Descrição definitionstringsim tagsstring[]sim examplesstring[]sim quotesobject[]sim synonymsstring[]sim antonymsstring[]sim translationsobject[]não subsensesFreeDictionarySenseT[] sim
FreeDictionaryErrorT Upstream parameter errors are plain text, not the native error envelope.
Nome Tipo Obrigatório Descrição
FreeDictionaryLanguagesResT Nome Tipo Obrigatório Descrição
PublicDatasetsV1ResT Public selector inventory, in installation order; no dictionary connections or counts.
PublicSearchDatasetResultV1T Nome Tipo Obrigatório Descrição statusstringok
sim dataPublicWordV1T[] sim metaPublicSearchDetailedV1MetaT sim originsOriginT[] não licensesWordLicenseT[] não descriptionstring | nullnão datasetstringsim titlestringnão activebooleansim sourcestringsim dataset_versionstring | nullsim licensestringsim license_urlstringsim attributionstringsim attribution_urlstring | nullsim noticestringsim license_textstringsim
PublicSearchDatasetUnavailableV1T A failed reader has no result list or paging metadata; it is not an empty match.
Nome Tipo Obrigatório Descrição statusstringunavailable
sim errorstringdataset_unavailable
sim originsOriginT[] não licensesWordLicenseT[] não descriptionstring | nullnão datasetstringsim titlestringnão activebooleansim sourcestringsim dataset_versionstring | nullsim licensestringsim license_urlstringsim attributionstringsim attribution_urlstring | nullsim noticestringsim license_textstringsim
PublicSearchDatasetV1T Nome Tipo Obrigatório Descrição
PublicSearchDatasetsV1ResT PublicSemanticMatchV1T A matching existing sense, with cosine similarity (not a confidence probability).
Nome Tipo Obrigatório Descrição wordPublicSearchWordV1T sim meaningobjectsim scorenumbersim Cosine similarity from -1 to 1; no calibrated no-answer threshold.
PublicSemanticSearchV1ResT PublicSemanticStatusV1ResT Nome Tipo Obrigatório Descrição dataobjectsim