API Usage
How to translate with LibreTranslate.
The examples below use Javascript, but you can use any programming language. Language bindings for many programming languages are also available.
Simple Translation
Request:
const res = await fetch("https://libretranslate.com/translate", {
method: "POST",
body: JSON.stringify({
q: "Hello!",
source: "en",
target: "es",
api_key: "xxxxxx" // can be optional with self-hosting
}),
headers: { "Content-Type": "application/json" },
});
console.log(await res.json());Response:
{
"translatedText": "¡Hola!"
}Note
The api_key parameter is only required when using an instance configured with API keys, such as libretranslate.com. Self-hosted instances do not require it.
Auto Detection of Source Language
Request:
const res = await fetch("https://libretranslate.com/translate", {
method: "POST",
body: JSON.stringify({
q: "Bonjour!",
source: "auto",
target: "en",
api_key: "xxxxxx"
}),
headers: { "Content-Type": "application/json" },
});
console.log(await res.json());Response:
{
"detectedLanguage": {
"confidence": 90.0,
"language": "fr"
},
"translatedText": "Hello!"
}Translate HTML/Markup
Request:
const res = await fetch("https://libretranslate.com/translate", {
method: "POST",
body: JSON.stringify({
q: '<p class="green">Hello!</p>',
source: "en",
target: "es",
format: "html",
api_key: "xxxxxx"
}),
headers: { "Content-Type": "application/json" },
});
console.log(await res.json());Response:
{
"translatedText": "<p class=\"green\">¡Hola!</p>"
}Alternative Translations
Request:
const res = await fetch("https://libretranslate.com/translate", {
method: "POST",
body: JSON.stringify({
q: "Hello",
source: "en",
target: "it",
format: "text",
alternatives: 3,
api_key: "xxxxxx"
}),
headers: { "Content-Type": "application/json" },
});
console.log(await res.json());Response:
{
"alternatives": [
"Salve",
"Pronto"
],
"translatedText": "Ciao"
}Language Detection
Request:
const res = await fetch("https://libretranslate.com/detect", {
method: "POST",
body: JSON.stringify({
q: "Bonjour!",
}),
headers: { "Content-Type": "application/json" },
});
console.log(await res.json());Response:
[{
"confidence": 90.0,
"language": "fr"
}]Supported Languages
https://libretranslate.com/languages
Language Bindings
You can use the LibreTranslate API using the following bindings:
- Rust: https://github.com/DefunctLizard/libretranslate-rs
- Node.js: https://github.com/franciscop/translate
- TypeScript: https://github.com/tderflinger/libretranslate-ts
- .Net: https://github.com/sigaloid/LibreTranslate.Net
- Go: https://github.com/SnakeSel/libretranslate
- Python: https://github.com/argosopentech/LibreTranslate-py
- PHP: https://github.com/jefs42/libretranslate
- C++: https://github.com/argosopentech/LibreTranslate-cpp
- Swift: https://github.com/wacumov/libretranslate
- Unix: https://github.com/argosopentech/LibreTranslate-sh
- Shell: https://github.com/Hayao0819/Hayao-Tools/tree/master/libretranslate-sh
- Java: https://github.com/stokito/libretranslate-java
- Ruby: https://github.com/noesya/libretranslate
- R: https://github.com/myanesp/libretranslateR