API pública v1 La referencia de la API de solo lectura del diccionario, generada a partir del documento OpenAPI que publica el servidor — el mismo contrato del que se construyen los SDK.
Read-only dictionary API under /api/v1 (contract version 1): no authentication, every answer in a { data, meta } envelope, errors as { statusCode, message, error: true }, X-API-Version on every response. The /api/compat/freedictionaryapi/v1 routes use freedictionaryapi.com objects, language lists and plain-text errors. The /api/compat/dictionaryapi routes use dictionaryapi.dev v1/v2 arrays and errors, with additive vocabBloom provenance. Compatibility lookups ending in /datasets wrap the responses from all installed datasets in { data, meta }; each group has dataset terms, status and response. Successful GET answers carry ETag, Last-Modified and Cache-Control. Documentation: https://vocab-bloom-hub.com/en/docs/api.
URL base https://<instance>/api/v1Cada instancia sirve la API bajo su propio origen; los ejemplos usan un marcador.
Endpoints GET /api/v1/openapi.json The OpenAPI 3 document of the public API (this contract)
Parámetros Sin parámetros.
Respuestas 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 Ejemplo 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 Nombre En Tipo Obligatorio Descripción searchquery stringsí The term to search for typequery stringwordgrammar_patternphrase
no Restrict the answer to one entry type limitquery integerno por defecto: 10
datasetquery stringno Public dataset name; omitted = the active dataset. Unknown or closed targets return 404, never a fallback.
Respuestas 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 Ejemplo 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 )Probar en el 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 Nombre En Tipo Obligatorio Descripción searchquery stringsí The term to search for typequery stringwordgrammar_patternphrase
no Restrict the answer to one entry type limitquery integerno por defecto: 10
pagequery integerno por defecto: 1
with_meaningsquery booleanno Join the meanings (with translations, synonyms, antonyms) of every itempor defecto: false
with_translationsquery booleanno Join the short translations of every itempor defecto: false
translation_languagesquery string[]ruesfrdeptzhar
no Keep only these translation languages (a repeated key); omit the key for all of them datasetquery stringno Public dataset name; omitted = the active dataset. Unknown or closed targets return 404, never a fallback.
Respuestas Ejemplo 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 ,
)Probar en el playground
GET /api/v1/words/{word} All entries of a headword: parts of speech, forms, meanings, translations, links
Parámetros Nombre En Tipo Obligatorio Descripción wordpath stringsí Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respuestas Ejemplo 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 )Probar en el playground
GET /api/v1/words/{word}/meanings The meanings of a headword across its entries
Parámetros Nombre En Tipo Obligatorio Descripción wordpath stringsí Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respuestas Ejemplo 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 )Probar en el playground
GET /api/v1/words/{word}/translations The short and per-meaning translations of a headword
Parámetros Nombre En Tipo Obligatorio Descripción wordpath stringsí Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry languagequery string[]ruesfrdeptzhar
no Translation languages; no value means all of them
Respuestas Ejemplo 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 )Probar en el 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 Nombre En Tipo Obligatorio Descripción wordpath stringsí Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respuestas Ejemplo 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])Probar en el 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 Nombre En Tipo Obligatorio Descripción wordpath stringsí Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respuestas Ejemplo 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])Probar en el 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 Nombre En Tipo Obligatorio Descripción wordpath stringsí Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respuestas Ejemplo 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)Probar en el 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 Nombre En Tipo Obligatorio Descripción wordpath stringsí Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respuestas Ejemplo 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))Probar en el 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 Nombre En Tipo Obligatorio Descripción wordpath stringsí Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry datasetpath stringsí The name of a dataset of the instance, as `dataset` of a group of `GET /words/{word}/datasets` says it
Respuestas Ejemplo 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)Probar en el playground
GET /api/v1/words/id/{id} One dictionary entry by its numeric id
Parámetros Nombre En Tipo Obligatorio Descripción idpath numbersí
Respuestas Ejemplo 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)Probar en el 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 Nombre En Tipo Obligatorio Descripción searchquery stringno Headword prefix, case-insensitive (`ru` lists run, rung, runner, …) is_obsoletequery booleanno true: obsolete entries only, false: current ones only part_of_speechquery string[]nounverbmodal_verbadjectiveadverbpronounnumeralnumeral_fractionaldeterminerinterjectionarticleprepositionconjunctionletterphrasegrammar_pattern
no word_levelquery string[]A1A2B1B2C1C2
no language_registerquery string[]formalinformalslang
no categoryquery string[]scientifictechnicalmedicallegalbusinessITartpoliticalsportculinary
no Words tagged with any of the categories area_variantquery string[]commonbritishamericanaustralian
no form_of_wordquery string[]base_formplural_formpossessive_singular_formpossessive_plural_formpast_simplepast_participlepresent_participlethird_person_singularcomparative_formsuperlative_formobjectpossessive_adjectivepossessive_pronounreflexiveordinalmultiplicative
no Defaults to base forms onlypor defecto: ["base_form"]
cursorquery stringno The `meta.next_cursor` of the previous page; omit for the first page limitquery integerno por defecto: 20
with_meaningsquery booleanno Join the meanings of every wordpor defecto: false
with_translationsquery booleanno Join the short translations of every wordpor defecto: false
Respuestas 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 Ejemplo 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 ]])
Probar en el playground
GET /api/v1/random A random dictionary entry matching the filters (base forms unless form_of_word is given)
Parámetros Nombre En Tipo Obligatorio Descripción searchquery stringno Headword prefix, case-insensitive (`ru` lists run, rung, runner, …) is_obsoletequery booleanno true: obsolete entries only, false: current ones only part_of_speechquery string[]nounverbmodal_verbadjectiveadverbpronounnumeralnumeral_fractionaldeterminerinterjectionarticleprepositionconjunctionletterphrasegrammar_pattern
no word_levelquery string[]A1A2B1B2C1C2
no language_registerquery string[]formalinformalslang
no categoryquery string[]scientifictechnicalmedicallegalbusinessITartpoliticalsportculinary
no Words tagged with any of the categories area_variantquery string[]commonbritishamericanaustralian
no form_of_wordquery string[]base_formplural_formpossessive_singular_formpossessive_plural_formpast_simplepast_participlepresent_participlethird_person_singularcomparative_formsuperlative_formobjectpossessive_adjectivepossessive_pronounreflexiveordinalmultiplicative
no Defaults to base forms onlypor defecto: ["base_form"]
Respuestas Ejemplo 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)Probar en el 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 Sin parámetros.
Respuestas Ejemplo 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)Probar en el 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 Nombre En Tipo Obligatorio Descripción queryquery stringsí A description of the intended meaning, in English or another language supported by the model. datasetquery stringno One public dataset; omitted = active dataset. Closed/unknown targets return 404. limitquery integerno por defecto: 10
Respuestas Ejemplo 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 )Probar en el 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 Nombre En Tipo Obligatorio Descripción languagepath stringenen_USen_GB
sí wordpath stringsí Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respuestas Ejemplo 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)Probar en el 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 Nombre En Tipo Obligatorio Descripción languagepath stringenen_USen_GB
sí wordpath stringsí Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respuestas Ejemplo 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)Probar en el 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 Nombre En Tipo Obligatorio Descripción languagepath stringsí en or all; other values return empty entries wordpath stringsí Exact case-sensitive spelling, encoded as one URL segment prettyquery booleanno Indent the whole response with two spaces; default false. translationsquery booleanno Include supported translations; default false. Only true/false, first occurrence wins.
Respuestas 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 Ejemplo 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)Probar en el 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 Nombre En Tipo Obligatorio Descripción languagepath stringenen_USen_GB
sí wordpath stringsí Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respuestas Ejemplo 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)Probar en el 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 Nombre En Tipo Obligatorio Descripción languagepath stringenen_USen_GB
sí wordpath stringsí Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Respuestas Ejemplo 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)Probar en el 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 Nombre En Tipo Obligatorio Descripción languagepath stringsí en or all; other values return empty entries wordpath stringsí Exact case-sensitive spelling, encoded as one URL segment prettyquery booleanno Indent JSON with two spaces; default false. translationsquery booleanno Include supported translations; default false. Only true/false, first occurrence wins.
Respuestas 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 Ejemplo 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)Probar en el 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 Nombre En Tipo Obligatorio Descripción prettyquery booleanno Indent JSON with two spaces; default false.
Respuestas 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 Ejemplo 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)Probar en el 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 Nombre En Tipo Obligatorio Descripción searchquery stringsí The term to search for typequery stringwordgrammar_patternphrase
no Restrict the answer to one entry type limitquery integerno por defecto: 10
pagequery integerno por defecto: 1
with_meaningsquery booleanno Join the meanings (with translations, synonyms, antonyms) of every itempor defecto: false
with_translationsquery booleanno Join the short translations of every itempor defecto: false
translation_languagesquery string[]ruesfrdeptzhar
no Keep only these translation languages (a repeated key); omit the key for all of them datasetsquery string[]sí Public dataset names as repeated keys. Groups follow installation order. Each selected dataset costs one unit of the shared public rate budget.
Respuestas Ejemplo 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)Probar en el playground
GET /api/v1/datasets Publicly readable datasets and their terms, in installation order
Parámetros Sin parámetros.
Respuestas Ejemplo 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])Probar en el 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.
Nombre Tipo Obligatorio Descripción wordsstring[]sí Headword spellings, 50 at most, each matched like GET /words/{word} (case-insensitively; an inflected form resolves to its base entry)
Respuestas Ejemplo 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)Probar en el 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.
Nombre Tipo Obligatorio Descripción datasetstringno Installed, publicly open dataset containing the headword and all supplied IDs. Omit to use the active dataset. headwordstringsí The headword the report is about; must exist in the dictionary word_idobjectno Id of the entry (part of speech) the report points at, from the word answers kindstringreportedit
no por defecto: "report"
messageobjectno What is wrong and, ideally, what would be right. Required for a report; an optional comment on an edit editsSuggestionEditV1DTO[] no Edit flow: every touched target of the word form with its proposed values author_nameobjectno 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_consentobjectno The sender agrees that `author_name` is shown and exported; required when a name is given
Respuestas Ejemplo 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)Probar en el playground
Esquemas SuggestionEditV1DTO Nombre Tipo Obligatorio Descripción target_typestringwordmeaningmeaning_translationshort_translation
sí target_idnumbersí Id of the targeted row, from the word answers changesobjectsí 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 Nombre Tipo Obligatorio Descripción datasetstringno Installed, publicly open dataset containing the headword and all supplied IDs. Omit to use the active dataset. headwordstringsí The headword the report is about; must exist in the dictionary word_idobjectno Id of the entry (part of speech) the report points at, from the word answers kindstringreportedit
no por defecto: "report"
messageobjectno What is wrong and, ideally, what would be right. Required for a report; an optional comment on an edit editsSuggestionEditV1DTO[] no Edit flow: every touched target of the word form with its proposed values author_nameobjectno 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_consentobjectno The sender agrees that `author_name` is shown and exported; required when a name is given
WordsBatchV1ReqDTO Nombre Tipo Obligatorio Descripción wordsstring[]sí Headword spellings, 50 at most, each matched like GET /words/{word} (case-insensitively; an inflected form resolves to its base entry)
OriginT Nombre Tipo Obligatorio Descripción idstringsí namestringsí versionstring | nullsí urlstringno record_urlstringno licensesOriginLicenseT[] sí license_relationstringallany
sí All obligations apply, or the source explicitly offers a choice. attributionstringsí noticesstring[]sí scopestringworddataset
sí Dataset means that distribution between individual words is unknown. methodstringdatasetmanual
sí recorded_atstring | nullsí acquisitionsOriginAcquisitionT[] no Copy/fork events belonging to this source snapshot; absent before any acquisition. inheritedbooleansí Automatically inherited terms cannot be removed by ordinary editing.
OriginLicenseT A durable statement of terms, not a pointer to a mutable dataset registry.
Nombre Tipo Obligatorio Descripción spdxstringno namestringsí urlstringsí textstringno Required for custom licenses; preserved verbatim when supplied.
OriginAcquisitionT An acquisition of a source snapshot, without repeating its license terms.
Nombre Tipo Obligatorio Descripción idstringsí methodstringcopyfork
sí recorded_atstring | nullsí revisionstringno viaobjectno 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.
Nombre Tipo Obligatorio Descripción origin_idstringsí spdxstringno namestringsí urlstringsí textstringno Required for custom licenses; preserved verbatim when supplied.
EnPartOfSpeechE Uno de: noun, verb, modal_verb, adjective, adverb, pronoun, numeral, numeral_fractional, determiner, interjection, article, preposition, conjunction, letter, phrase, grammar_pattern
WordLevelE Uno de: A1, A2, B1, B2, C1, C2
EnAreaVariantsE Uno de: common, british, american, australian
CategoryE Uno de: scientific, technical, medical, legal, business, IT, art, political, sport, culinary
LanguageRegisterE Uno de: formal, informal, slang
PronunciationT Portable pronunciation; database IDs never travel in datasets or public responses.
Nombre Tipo Obligatorio Descripción audioPronunciationAudioT[] no Recordings carry their own terms, independent of the word's text. typestringipaenpr
sí textstring | nullsí area_variantEnAreaVariantsE sí sort_orderintegersí
PronunciationAudioT External recordings only; missing license metadata is an empty list, never the text license.
Nombre Tipo Obligatorio Descripción urlstringsí source_urlstring | nullno attributionstring | nullno licensesOriginLicenseT[] sí sort_orderintegersí
EnVerbTransitivityE Uno de: transitive, intransitive, both
EnPhrasalObjectPatternE Uno de: no_object, inseparable, separable, separable_pronoun_only
PublicSearchDetailedV1ResT MeaningQuoteT A sourced quotation, in authored array order. Missing attribution is explicit.
Nombre Tipo Obligatorio Descripción textstringsí referencestring | nullsí source_urlstring | nullno
PublicWordV1MeaningTranslationT AvailableTranslationLanguagesE Uno de: ru, es, fr, de, pt, zh, ar
PublicWordV1ShortTranslationT PublicHeadwordMeaningsV1ResT PublicShortTranslationV1T PublicMeaningTranslationV1T PublicHeadwordLinksV1ResT ChangeEntityE What was edited
Uno de: word, word_form, meaning, meaning_translation, short_translation
ChangeActionE Uno 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.
Nombre Tipo Obligatorio Descripción
ChangeMeaningRecordT Nombre Tipo Obligatorio Descripción titlestringsí sort_orderintegersí
ChangeShortTranslationRecordT Nombre Tipo Obligatorio Descripción languagestringsí descriptionstringsí
ChangeDiffT The values an edit changed: `{ field: { before, after } }`; a creation has no `before`, a deletion no `after`
Nombre Tipo Obligatorio Descripción
ChangeOriginE Where an edit came from
Uno de: admin, suggestion, revert
PublicHeadwordHistoryV1MetaT Nombre Tipo Obligatorio Descripción wordstringsí countintegersí variantsstring[]no
PublicHeadwordHistoryV1ResT PublicDatasetTermsV1T Nombre Tipo Obligatorio Descripción originsOriginT[] no licensesWordLicenseT[] no descriptionstring | nullno datasetstringsí titlestringno activebooleansí sourcestringsí dataset_versionstring | nullsí licensestringsí license_urlstringsí attributionstringsí attribution_urlstring | nullsí noticestringsí license_textstringsí
PublicWordDatasetV1T Nombre Tipo Obligatorio Descripción wordstringsí variantsstring[]sí countintegersí entriesPublicWordV1T[] sí originsOriginT[] no licensesWordLicenseT[] no descriptionstring | nullno datasetstringsí titlestringno activebooleansí sourcestringsí dataset_versionstring | nullsí licensestringsí license_urlstringsí attributionstringsí attribution_urlstring | nullsí noticestringsí license_textstringsí
PublicHeadwordTranslationsV1T PublicHeadwordTranslationsV1ResT PublicWordsBatchItemV1T Nombre Tipo Obligatorio Descripción wordstringsí countintegersí entriesPublicWordV1T[] sí
PublicDatasetCountsV1T Nombre Tipo Obligatorio Descripción entriesintegersí wordsintegersí phrasesintegersí grammar_patternsintegersí word_formsintegersí meaningsintegersí meaning_translationsintegersí short_translationsintegersí
PublicAvailableLanguagesV1T PublicSuggestionCreatedV1T Nombre Tipo Obligatorio Descripción idintegersí statusstringsí
PublicSuggestionCreatedV1ResT PublicApiErrorT Nombre Tipo Obligatorio Descripción statusCodenumbersí messagestringsí errorbooleansí
DictionaryApiV1DatasetsResT Nombre Tipo Obligatorio Descripción dataobject[]sí metaobjectsí found counts datasets with entries, including for adapters whose misses are HTTP 200.
DictionaryApiV1ResT Nombre Tipo Obligatorio Descripción
DictionaryApiDefinitionT Nombre Tipo Obligatorio Descripción definitionstringsí examplestringno synonymsstring[]sí antonymsstring[]sí
DictionaryApiPhoneticT Nombre Tipo Obligatorio Descripción textstringno audiostringsí sourceUrlstringno licenseDictionaryApiLicenseT no vocabBloomobjectno Lossless recording terms; the upstream singular license cannot express all of these.
DictionaryApiLicenseT Nombre Tipo Obligatorio Descripción namestringsí urlstringsí
DictionaryApiErrorT Nombre Tipo Obligatorio Descripción titlestringsí messagestringsí resolutionstringsí
DictionaryApiV2DatasetsResT Nombre Tipo Obligatorio Descripción dataobject[]sí metaobjectsí found counts datasets with entries, including for adapters whose misses are HTTP 200.
DictionaryApiV2ResT Nombre Tipo Obligatorio Descripción
FreeDictionaryDatasetsResT Nombre Tipo Obligatorio Descripción dataobject[]sí metaobjectsí found counts datasets with entries, including for adapters whose misses are HTTP 200.
FreeDictionaryEntriesResT FreeDictionaryEntryT Nombre Tipo Obligatorio Descripción languageFreeDictionaryLanguageT sí partOfSpeechstringsí pronunciationsobject[]sí formsobject[]sí sensesFreeDictionarySenseT[] sí synonymsstring[]sí antonymsstring[]sí vocabBloomobjectsí Native entry identity and lossless terms; additive to the upstream format.
FreeDictionaryLanguageT Nombre Tipo Obligatorio Descripción codestringsí namestringsí
FreeDictionarySenseT Nombre Tipo Obligatorio Descripción definitionstringsí tagsstring[]sí examplesstring[]sí quotesobject[]sí synonymsstring[]sí antonymsstring[]sí translationsobject[]no subsensesFreeDictionarySenseT[] sí
FreeDictionaryErrorT Upstream parameter errors are plain text, not the native error envelope.
Nombre Tipo Obligatorio Descripción
FreeDictionaryLanguagesResT Nombre Tipo Obligatorio Descripción
PublicDatasetsV1ResT Public selector inventory, in installation order; no dictionary connections or counts.
PublicSearchDatasetResultV1T Nombre Tipo Obligatorio Descripción statusstringok
sí dataPublicWordV1T[] sí metaPublicSearchDetailedV1MetaT sí originsOriginT[] no licensesWordLicenseT[] no descriptionstring | nullno datasetstringsí titlestringno activebooleansí sourcestringsí dataset_versionstring | nullsí licensestringsí license_urlstringsí attributionstringsí attribution_urlstring | nullsí noticestringsí license_textstringsí
PublicSearchDatasetUnavailableV1T A failed reader has no result list or paging metadata; it is not an empty match.
Nombre Tipo Obligatorio Descripción statusstringunavailable
sí errorstringdataset_unavailable
sí originsOriginT[] no licensesWordLicenseT[] no descriptionstring | nullno datasetstringsí titlestringno activebooleansí sourcestringsí dataset_versionstring | nullsí licensestringsí license_urlstringsí attributionstringsí attribution_urlstring | nullsí noticestringsí license_textstringsí
PublicSearchDatasetV1T Nombre Tipo Obligatorio Descripción
PublicSearchDatasetsV1ResT PublicSemanticMatchV1T A matching existing sense, with cosine similarity (not a confidence probability).
Nombre Tipo Obligatorio Descripción wordPublicSearchWordV1T sí meaningobjectsí scorenumbersí Cosine similarity from -1 to 1; no calibrated no-answer threshold.
PublicSemanticSearchV1ResT PublicSemanticStatusV1ResT Nombre Tipo Obligatorio Descripción dataobjectsí