Öffentliche API v1 Die Referenz der nur lesenden Wörterbuch-API, generiert aus dem OpenAPI-Dokument, das der Server veröffentlicht — derselbe Vertrag, aus dem die SDKs gebaut werden.
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.
Basis-URL https://<instance>/api/v1Jede Instanz liefert die API unter ihrem eigenen Ursprung aus; die Beispiele unten verwenden einen Platzhalter.
Endpunkte GET /api/v1/openapi.json The OpenAPI 3 document of the public API (this contract)
Parameter Keine Parameter.
Antworten 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 Beispiel 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.
Parameter Name In Typ Erforderlich Beschreibung searchquery stringja The term to search for typequery stringwordgrammar_patternphrase
nein Restrict the answer to one entry type limitquery integernein Standard: 10
datasetquery stringnein Public dataset name; omitted = the active dataset. Unknown or closed targets return 404, never a fallback.
Antworten 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 Beispiel 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 )Im Playground ausprobieren
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.
Parameter Name In Typ Erforderlich Beschreibung searchquery stringja The term to search for typequery stringwordgrammar_patternphrase
nein Restrict the answer to one entry type limitquery integernein Standard: 10
pagequery integernein Standard: 1
with_meaningsquery booleannein Join the meanings (with translations, synonyms, antonyms) of every itemStandard: false
with_translationsquery booleannein Join the short translations of every itemStandard: false
translation_languagesquery string[]ruesfrdeptzhar
nein Keep only these translation languages (a repeated key); omit the key for all of them datasetquery stringnein Public dataset name; omitted = the active dataset. Unknown or closed targets return 404, never a fallback.
Antworten Beispiel 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 ,
)Im Playground ausprobieren
GET /api/v1/words/{word} All entries of a headword: parts of speech, forms, meanings, translations, links
Parameter Name In Typ Erforderlich Beschreibung wordpath stringja Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Antworten Beispiel 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 )Im Playground ausprobieren
GET /api/v1/words/{word}/meanings The meanings of a headword across its entries
Parameter Name In Typ Erforderlich Beschreibung wordpath stringja Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Antworten Beispiel 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 )Im Playground ausprobieren
GET /api/v1/words/{word}/translations The short and per-meaning translations of a headword
Parameter Name In Typ Erforderlich Beschreibung wordpath stringja Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry languagequery string[]ruesfrdeptzhar
nein Translation languages; no value means all of them
Antworten Beispiel 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 )Im Playground ausprobieren
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`.
Parameter Name In Typ Erforderlich Beschreibung wordpath stringja Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Antworten Beispiel 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])Im Playground ausprobieren
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`.
Parameter Name In Typ Erforderlich Beschreibung wordpath stringja Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Antworten Beispiel 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])Im Playground ausprobieren
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.
Parameter Name In Typ Erforderlich Beschreibung wordpath stringja Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Antworten Beispiel 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)Im Playground ausprobieren
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.
Parameter Name In Typ Erforderlich Beschreibung wordpath stringja Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Antworten Beispiel 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))Im Playground ausprobieren
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.
Parameter Name In Typ Erforderlich Beschreibung wordpath stringja Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry datasetpath stringja The name of a dataset of the instance, as `dataset` of a group of `GET /words/{word}/datasets` says it
Antworten Beispiel 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)Im Playground ausprobieren
GET /api/v1/words/id/{id} One dictionary entry by its numeric id
Parameter Name In Typ Erforderlich Beschreibung idpath numberja
Antworten Beispiel 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)Im Playground ausprobieren
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.
Parameter Name In Typ Erforderlich Beschreibung searchquery stringnein Headword prefix, case-insensitive (`ru` lists run, rung, runner, …) is_obsoletequery booleannein true: obsolete entries only, false: current ones only part_of_speechquery string[]nounverbmodal_verbadjectiveadverbpronounnumeralnumeral_fractionaldeterminerinterjectionarticleprepositionconjunctionletterphrasegrammar_pattern
nein word_levelquery string[]A1A2B1B2C1C2
nein language_registerquery string[]formalinformalslang
nein categoryquery string[]scientifictechnicalmedicallegalbusinessITartpoliticalsportculinary
nein Words tagged with any of the categories area_variantquery string[]commonbritishamericanaustralian
nein form_of_wordquery string[]base_formplural_formpossessive_singular_formpossessive_plural_formpast_simplepast_participlepresent_participlethird_person_singularcomparative_formsuperlative_formobjectpossessive_adjectivepossessive_pronounreflexiveordinalmultiplicative
nein Defaults to base forms onlyStandard: ["base_form"]
cursorquery stringnein The `meta.next_cursor` of the previous page; omit for the first page limitquery integernein Standard: 20
with_meaningsquery booleannein Join the meanings of every wordStandard: false
with_translationsquery booleannein Join the short translations of every wordStandard: false
Antworten 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 Beispiel 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 ]])
Im Playground ausprobieren
GET /api/v1/random A random dictionary entry matching the filters (base forms unless form_of_word is given)
Parameter Name In Typ Erforderlich Beschreibung searchquery stringnein Headword prefix, case-insensitive (`ru` lists run, rung, runner, …) is_obsoletequery booleannein true: obsolete entries only, false: current ones only part_of_speechquery string[]nounverbmodal_verbadjectiveadverbpronounnumeralnumeral_fractionaldeterminerinterjectionarticleprepositionconjunctionletterphrasegrammar_pattern
nein word_levelquery string[]A1A2B1B2C1C2
nein language_registerquery string[]formalinformalslang
nein categoryquery string[]scientifictechnicalmedicallegalbusinessITartpoliticalsportculinary
nein Words tagged with any of the categories area_variantquery string[]commonbritishamericanaustralian
nein form_of_wordquery string[]base_formplural_formpossessive_singular_formpossessive_plural_formpast_simplepast_participlepresent_participlethird_person_singularcomparative_formsuperlative_formobjectpossessive_adjectivepossessive_pronounreflexiveordinalmultiplicative
nein Defaults to base forms onlyStandard: ["base_form"]
Antworten Beispiel 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)Im Playground ausprobieren
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.
Parameter Keine Parameter.
Antworten Beispiel 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)Im Playground ausprobieren
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.
Parameter Name In Typ Erforderlich Beschreibung queryquery stringja A description of the intended meaning, in English or another language supported by the model. datasetquery stringnein One public dataset; omitted = active dataset. Closed/unknown targets return 404. limitquery integernein Standard: 10
Antworten Beispiel 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 )Im Playground ausprobieren
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.
Parameter Name In Typ Erforderlich Beschreibung languagepath stringenen_USen_GB
ja wordpath stringja Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Antworten Beispiel 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)Im Playground ausprobieren
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.
Parameter Name In Typ Erforderlich Beschreibung languagepath stringenen_USen_GB
ja wordpath stringja Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Antworten Beispiel 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)Im Playground ausprobieren
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.
Parameter Name In Typ Erforderlich Beschreibung languagepath stringja en or all; other values return empty entries wordpath stringja Exact case-sensitive spelling, encoded as one URL segment prettyquery booleannein Indent the whole response with two spaces; default false. translationsquery booleannein Include supported translations; default false. Only true/false, first occurrence wins.
Antworten 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 Beispiel 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)Im Playground ausprobieren
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.
Parameter Name In Typ Erforderlich Beschreibung languagepath stringenen_USen_GB
ja wordpath stringja Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Antworten Beispiel 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)Im Playground ausprobieren
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.
Parameter Name In Typ Erforderlich Beschreibung languagepath stringenen_USen_GB
ja wordpath stringja Headword spelling, case-insensitive (spaces URL-encoded for phrases). An inflected form resolves to its base entry
Antworten Beispiel 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)Im Playground ausprobieren
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.
Parameter Name In Typ Erforderlich Beschreibung languagepath stringja en or all; other values return empty entries wordpath stringja Exact case-sensitive spelling, encoded as one URL segment prettyquery booleannein Indent JSON with two spaces; default false. translationsquery booleannein Include supported translations; default false. Only true/false, first occurrence wins.
Antworten 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 Beispiel 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)Im Playground ausprobieren
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.
Parameter Name In Typ Erforderlich Beschreibung prettyquery booleannein Indent JSON with two spaces; default false.
Antworten 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 Beispiel 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)Im Playground ausprobieren
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.
Parameter Name In Typ Erforderlich Beschreibung searchquery stringja The term to search for typequery stringwordgrammar_patternphrase
nein Restrict the answer to one entry type limitquery integernein Standard: 10
pagequery integernein Standard: 1
with_meaningsquery booleannein Join the meanings (with translations, synonyms, antonyms) of every itemStandard: false
with_translationsquery booleannein Join the short translations of every itemStandard: false
translation_languagesquery string[]ruesfrdeptzhar
nein Keep only these translation languages (a repeated key); omit the key for all of them datasetsquery string[]ja Public dataset names as repeated keys. Groups follow installation order. Each selected dataset costs one unit of the shared public rate budget.
Antworten Beispiel 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)Im Playground ausprobieren
GET /api/v1/datasets Publicly readable datasets and their terms, in installation order
Parameter Keine Parameter.
Antworten Beispiel 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])Im Playground ausprobieren
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.
Name Typ Erforderlich Beschreibung wordsstring[]ja Headword spellings, 50 at most, each matched like GET /words/{word} (case-insensitively; an inflected form resolves to its base entry)
Antworten Beispiel 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)Im Playground ausprobieren
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.
Name Typ Erforderlich Beschreibung datasetstringnein Installed, publicly open dataset containing the headword and all supplied IDs. Omit to use the active dataset. headwordstringja The headword the report is about; must exist in the dictionary word_idobjectnein Id of the entry (part of speech) the report points at, from the word answers kindstringreportedit
nein Standard: "report"
messageobjectnein What is wrong and, ideally, what would be right. Required for a report; an optional comment on an edit editsSuggestionEditV1DTO[] nein Edit flow: every touched target of the word form with its proposed values author_nameobjectnein 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_consentobjectnein The sender agrees that `author_name` is shown and exported; required when a name is given
Antworten Beispiel 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)Im Playground ausprobieren
Schemas SuggestionEditV1DTO Name Typ Erforderlich Beschreibung target_typestringwordmeaningmeaning_translationshort_translation
ja target_idnumberja Id of the targeted row, from the word answers changesobjectja 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 Name Typ Erforderlich Beschreibung datasetstringnein Installed, publicly open dataset containing the headword and all supplied IDs. Omit to use the active dataset. headwordstringja The headword the report is about; must exist in the dictionary word_idobjectnein Id of the entry (part of speech) the report points at, from the word answers kindstringreportedit
nein Standard: "report"
messageobjectnein What is wrong and, ideally, what would be right. Required for a report; an optional comment on an edit editsSuggestionEditV1DTO[] nein Edit flow: every touched target of the word form with its proposed values author_nameobjectnein 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_consentobjectnein The sender agrees that `author_name` is shown and exported; required when a name is given
WordsBatchV1ReqDTO Name Typ Erforderlich Beschreibung wordsstring[]ja Headword spellings, 50 at most, each matched like GET /words/{word} (case-insensitively; an inflected form resolves to its base entry)
PublicSearchWordV1T Name Typ Erforderlich Beschreibung alternativesstring[]nein Alternative spellings of this headword, shared by all its parts of speech. originsOriginT[] nein contributionsOriginT[] nein Terms of the datasets whose edits still contribute to this word. licensesWordLicenseT[] nein idintegerja wordstringja part_of_speechEnPartOfSpeechE ja form_of_wordEnWordFormsE ja is_obsoletebooleanja is_abbreviationbooleanja word_levelWordLevelE | null ja area_variantEnAreaVariantsE | null ja categoriesCategoryE[] ja language_registerLanguageRegisterE | null ja descriptionstring | nullja transcriptionstring | nullja pronunciationsPronunciationT[] nein Ordered pronunciations, with legacy transcription and base-form fallback. patternstring[] | nullja noun___irregular_pluralboolean | nullja noun___uncountableboolean | nullja noun___is_properboolean | nullja noun___always_pluralboolean | nullja verb___is_irregularboolean | nullja verb___transitivityEnVerbTransitivityE | null ja verb___is_phrasalboolean | nullja verb___phrasal_object_patternEnPhrasalObjectPatternE | null ja base_phrasalstring | nullja formsPublicWordV1FormT[] ja similaritynumbernein sourcestringnein modifiedbooleannein
OriginT Name Typ Erforderlich Beschreibung idstringja namestringja versionstring | nullja urlstringnein record_urlstringnein licensesOriginLicenseT[] ja license_relationstringallany
ja All obligations apply, or the source explicitly offers a choice. attributionstringja noticesstring[]ja scopestringworddataset
ja Dataset means that distribution between individual words is unknown. methodstringdatasetmanual
ja recorded_atstring | nullja acquisitionsOriginAcquisitionT[] nein Copy/fork events belonging to this source snapshot; absent before any acquisition. inheritedbooleanja Automatically inherited terms cannot be removed by ordinary editing.
OriginLicenseT A durable statement of terms, not a pointer to a mutable dataset registry.
Name Typ Erforderlich Beschreibung spdxstringnein namestringja urlstringja textstringnein Required for custom licenses; preserved verbatim when supplied.
OriginAcquisitionT An acquisition of a source snapshot, without repeating its license terms.
Name Typ Erforderlich Beschreibung idstringja methodstringcopyfork
ja recorded_atstring | nullja revisionstringnein viaobjectnein 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.
Name Typ Erforderlich Beschreibung origin_idstringja spdxstringnein namestringja urlstringja textstringnein Required for custom licenses; preserved verbatim when supplied.
EnPartOfSpeechE Eines von: noun, verb, modal_verb, adjective, adverb, pronoun, numeral, numeral_fractional, determiner, interjection, article, preposition, conjunction, letter, phrase, grammar_pattern
WordLevelE Eines von: A1, A2, B1, B2, C1, C2
EnAreaVariantsE Eines von: common, british, american, australian
CategoryE Eines von: scientific, technical, medical, legal, business, IT, art, political, sport, culinary
LanguageRegisterE Eines von: formal, informal, slang
PronunciationT Portable pronunciation; database IDs never travel in datasets or public responses.
Name Typ Erforderlich Beschreibung audioPronunciationAudioT[] nein Recordings carry their own terms, independent of the word's text. typestringipaenpr
ja textstring | nullja area_variantEnAreaVariantsE ja sort_orderintegerja
PronunciationAudioT External recordings only; missing license metadata is an empty list, never the text license.
Name Typ Erforderlich Beschreibung urlstringja source_urlstring | nullnein attributionstring | nullnein licensesOriginLicenseT[] ja sort_orderintegerja
EnVerbTransitivityE Eines von: transitive, intransitive, both
EnPhrasalObjectPatternE Eines von: no_object, inseparable, separable, separable_pronoun_only
PublicSearchDetailedV1ResT MeaningQuoteT A sourced quotation, in authored array order. Missing attribution is explicit.
Name Typ Erforderlich Beschreibung textstringja referencestring | nullja source_urlstring | nullnein
PublicWordV1MeaningTranslationT AvailableTranslationLanguagesE Eines von: ru, es, fr, de, pt, zh, ar
PublicWordV1ShortTranslationT PublicHeadwordMeaningsV1ResT PublicShortTranslationV1T PublicMeaningTranslationV1T PublicHeadwordLinksV1ResT ChangeEntityE What was edited
Eines von: word, word_form, meaning, meaning_translation, short_translation
ChangeActionE Eines von: 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.
Name Typ Erforderlich Beschreibung
ChangeMeaningRecordT Name Typ Erforderlich Beschreibung titlestringja sort_orderintegerja
ChangeShortTranslationRecordT Name Typ Erforderlich Beschreibung languagestringja descriptionstringja
ChangeDiffT The values an edit changed: `{ field: { before, after } }`; a creation has no `before`, a deletion no `after`
Name Typ Erforderlich Beschreibung
ChangeOriginE Where an edit came from
Eines von: admin, suggestion, revert
PublicHeadwordHistoryV1MetaT Name Typ Erforderlich Beschreibung wordstringja countintegerja variantsstring[]nein
PublicHeadwordHistoryV1ResT PublicDatasetTermsV1T Name Typ Erforderlich Beschreibung originsOriginT[] nein licensesWordLicenseT[] nein descriptionstring | nullnein datasetstringja titlestringnein activebooleanja sourcestringja dataset_versionstring | nullja licensestringja license_urlstringja attributionstringja attribution_urlstring | nullja noticestringja license_textstringja
PublicWordDatasetV1T Name Typ Erforderlich Beschreibung wordstringja variantsstring[]ja countintegerja entriesPublicWordV1T[] ja originsOriginT[] nein licensesWordLicenseT[] nein descriptionstring | nullnein datasetstringja titlestringnein activebooleanja sourcestringja dataset_versionstring | nullja licensestringja license_urlstringja attributionstringja attribution_urlstring | nullja noticestringja license_textstringja
PublicHeadwordTranslationsV1T PublicHeadwordTranslationsV1ResT PublicWordsBatchItemV1T Name Typ Erforderlich Beschreibung wordstringja countintegerja entriesPublicWordV1T[] ja
PublicDatasetCountsV1T Name Typ Erforderlich Beschreibung entriesintegerja wordsintegerja phrasesintegerja grammar_patternsintegerja word_formsintegerja meaningsintegerja meaning_translationsintegerja short_translationsintegerja
PublicAvailableLanguagesV1T PublicSuggestionCreatedV1T Name Typ Erforderlich Beschreibung idintegerja statusstringja
PublicSuggestionCreatedV1ResT PublicApiErrorT Name Typ Erforderlich Beschreibung statusCodenumberja messagestringja errorbooleanja
DictionaryApiV1DatasetsResT Name Typ Erforderlich Beschreibung dataobject[]ja metaobjectja found counts datasets with entries, including for adapters whose misses are HTTP 200.
DictionaryApiV1ResT Name Typ Erforderlich Beschreibung
DictionaryApiDefinitionT Name Typ Erforderlich Beschreibung definitionstringja examplestringnein synonymsstring[]ja antonymsstring[]ja
DictionaryApiPhoneticT Name Typ Erforderlich Beschreibung textstringnein audiostringja sourceUrlstringnein licenseDictionaryApiLicenseT nein vocabBloomobjectnein Lossless recording terms; the upstream singular license cannot express all of these.
DictionaryApiLicenseT Name Typ Erforderlich Beschreibung namestringja urlstringja
DictionaryApiErrorT Name Typ Erforderlich Beschreibung titlestringja messagestringja resolutionstringja
DictionaryApiV2DatasetsResT Name Typ Erforderlich Beschreibung dataobject[]ja metaobjectja found counts datasets with entries, including for adapters whose misses are HTTP 200.
DictionaryApiV2ResT Name Typ Erforderlich Beschreibung
FreeDictionaryDatasetsResT Name Typ Erforderlich Beschreibung dataobject[]ja metaobjectja found counts datasets with entries, including for adapters whose misses are HTTP 200.
FreeDictionaryEntriesResT FreeDictionaryEntryT Name Typ Erforderlich Beschreibung languageFreeDictionaryLanguageT ja partOfSpeechstringja pronunciationsobject[]ja formsobject[]ja sensesFreeDictionarySenseT[] ja synonymsstring[]ja antonymsstring[]ja vocabBloomobjectja Native entry identity and lossless terms; additive to the upstream format.
FreeDictionaryLanguageT Name Typ Erforderlich Beschreibung codestringja namestringja
FreeDictionarySenseT Name Typ Erforderlich Beschreibung definitionstringja tagsstring[]ja examplesstring[]ja quotesobject[]ja synonymsstring[]ja antonymsstring[]ja translationsobject[]nein subsensesFreeDictionarySenseT[] ja
FreeDictionaryErrorT Upstream parameter errors are plain text, not the native error envelope.
Name Typ Erforderlich Beschreibung
FreeDictionaryLanguagesResT Name Typ Erforderlich Beschreibung
PublicDatasetsV1ResT Public selector inventory, in installation order; no dictionary connections or counts.
PublicSearchDatasetResultV1T Name Typ Erforderlich Beschreibung statusstringok
ja dataPublicWordV1T[] ja metaPublicSearchDetailedV1MetaT ja originsOriginT[] nein licensesWordLicenseT[] nein descriptionstring | nullnein datasetstringja titlestringnein activebooleanja sourcestringja dataset_versionstring | nullja licensestringja license_urlstringja attributionstringja attribution_urlstring | nullja noticestringja license_textstringja
PublicSearchDatasetUnavailableV1T A failed reader has no result list or paging metadata; it is not an empty match.
Name Typ Erforderlich Beschreibung statusstringunavailable
ja errorstringdataset_unavailable
ja originsOriginT[] nein licensesWordLicenseT[] nein descriptionstring | nullnein datasetstringja titlestringnein activebooleanja sourcestringja dataset_versionstring | nullja licensestringja license_urlstringja attributionstringja attribution_urlstring | nullja noticestringja license_textstringja
PublicSearchDatasetV1T Name Typ Erforderlich Beschreibung
PublicSearchDatasetsV1ResT PublicSemanticMatchV1T A matching existing sense, with cosine similarity (not a confidence probability).
Name Typ Erforderlich Beschreibung wordPublicSearchWordV1T ja meaningobjectja scorenumberja Cosine similarity from -1 to 1; no calibrated no-answer threshold.
PublicSemanticSearchV1ResT PublicSemanticStatusV1ResT Name Typ Erforderlich Beschreibung dataobjectja