API Usage
The examples below use Javascript, but you can use any programming language. Language bindings for many programming languages are also available.
Simple Translation
Section titled “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!"}
Auto Detection of Source Language
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “Supported Languages”https://libretranslate.com/languages
Language Bindings
Section titled “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/suuft/libretranslate-java
- Ruby: https://github.com/noesya/libretranslate
- R: https://github.com/myanesp/libretranslateR