API-dokumentaatio
Integroi tehokas käännös sovelluksiisi yksinkertaisella REST API -rajapinnallamme.
Aloittaminen
TranslateAPI tarjoaa yksinkertaisen REST-rajapinnan tekstin kääntämiseen 180+ kielen välillä. Kaikki API-päätteet palauttavat JSON-vastaukset.
https://api.translateapi.ai/api/v1/
Pikakäynnistys
Tee ensimmäinen käännöspyyntösi:
curl -X POST https://api.translateapi.ai/api/v1/translate/ \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"text": "Hello, world!",
"target_language": "es"
}'
import requests
response = requests.post(
"https://api.translateapi.ai/api/v1/translate/",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"text": "Hello, world!",
"target_language": "es"
}
)
result = response.json()
print(result["translated_text"]) # "Hola, mundo!"
const response = await fetch("https://api.translateapi.ai/api/v1/translate/", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
text: "Hello, world!",
target_language: "es"
})
});
const result = await response.json();
console.log(result.translated_text); // "Hola, mundo!"
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
static async Task Main()
{
var client = new HttpClient();
client.DefaultRequestHeaders.Add(
"Authorization", "Bearer YOUR_API_KEY"
);
var content = new StringContent(
JsonConvert.SerializeObject(new {
text = "Hello, world!",
target_language = "es"
}),
Encoding.UTF8,
"application/json"
);
var response = await client.PostAsync(
"https://api.translateapi.ai/api/v1/translate/",
content
);
var result = await response.Content.ReadAsStringAsync();
var data = JsonConvert.DeserializeObject<dynamic>(result);
Console.WriteLine(data.translated_text); // "Hola, mundo!"
}
}
Todentaminen
Toteuta pyyntösi API-avaimella. Voit luoda API-avaimet kojelauta.
Otsake Authentication (suositeltu)
Authorization: Bearer ta_your_api_key_here
Kyselyparametri
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Käännä teksti
Käännä teksti yhdelle kohdekielelle.
POST https://api.translateapi.ai/api/v1/translate/
Pyynnön esittävä elin
| Muuttuja | Tyyppi | Vaadittu | Tavaran kuvaus |
|---|---|---|---|
text |
string | Kyllä | Käännettävä teksti (enintään 50 000 merkkiä) |
target_language |
string | Kyllä | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Ei tarvitse. | Source language code. Default: "auto" (auto-detect) |
* Käytä target_language (String) yhdellä kielellä tai target_languages Moninkertainen. Ks. Multi-Target-käännös.
Vaste
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
Multi-Target-käännös
Käännä tekstiä usealle kielelle yhdellä pyynnöllä. Käyttää samaa päätepistettä kuin yksi käännös.
POST https://api.translateapi.ai/api/v1/translate/
Pyynnön esittävä elin
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
Käyttö target_languages Sen sijaan, että target_language Useita kohteita.
Vaste
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
Erän käännös
Käännä useita tekstejä kerralla async-käsittelyllä. Lähetä erä ja kysely tulokset.
POST https://api.translateapi.ai/api/v1/translate/batch/
Vaihe 1: Lähetä erä
curl -X POST https://api.translateapi.ai/api/v1/translate/batch/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"texts": ["Hello", "Goodbye", "Thank you"],
"target_language": "es",
"source_language": "en"
}'
Vaste (HTTP 202 hyväksytty)
{
"job_id": "67535b2b-c9e3-4f82-9499-e237edbc1dd8",
"status": "pending",
"total_texts": 3,
"queue_position": 1,
"source_language": "en",
"target_languages": ["es"],
"character_count": 22,
"credits_remaining": -1,
"poll_url": "https://api.translateapi.ai/api/v1/jobs/67535b2b-c9e3-4f82-9499-e237edbc1dd8/"
}
Vaihe 2: Tuloskysely
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Pölyesimerkki (Python)
import time, requests
job_id = response.json()["job_id"]
total = response.json()["total_texts"]
headers = {"Authorization": "Bearer YOUR_API_KEY"}
print(f"Batch submitted: {total} texts (job {job_id})")
while True:
result = requests.get(f"https://api.translateapi.ai/api/v1/jobs/{job_id}/", headers=headers).json()
status = result["status"]
processed = result.get("processed_texts", 0)
progress = result.get("progress_percentage", 0)
if status == "completed":
print(f"Completed: {processed}/{total} texts in {result.get('processing_time', 0):.1f}s")
translations = result["result_data"]["translations"]
break
elif status == "failed":
print(f"Failed at {processed}/{total}: {result.get('error_message', 'unknown')}")
raise Exception(result.get("error_message", "Translation failed"))
elif status == "pending":
queue_pos = result.get("queue_position", "?")
print(f"Queued (position {queue_pos}) — waiting for GPU worker...")
else:
print(f"[{status}] {processed}/{total} ({progress:.0f}%)")
time.sleep(3)
Vastaus (mitattuna – jonotettuna, odottamassa GPU:ta)
{
"job_id": "67535b2b-...",
"status": "pending",
"processed_texts": 0,
"total_texts": 3,
"progress_percentage": 0.0,
"queue_position": 3
}
Vaste (käsittelyn aikana)
{
"job_id": "67535b2b-...",
"status": "processing",
"processed_texts": 1,
"total_texts": 3,
"progress_percentage": 33.33,
"queue_position": null
}
Vaste (täydellinen)
{
"job_id": "67535b2b-...",
"status": "completed",
"processed_texts": 3,
"total_texts": 3,
"progress_percentage": 100.0,
"processing_time": 10.65,
"result_data": {
"translations": ["Hola", "Adiós", "Gracias"],
"source_language": "en",
"target_language": "es",
"character_count": 22,
"processing_time": 10.65
}
}
Reaaliaikainen edistymisseuranta
Jokainen kyselyn vastaus sisältää reaaliaikaiset edistyskentät, jotta voit seurata tarkasti, mitä erälle on tapahtumassa:
| Kenttä | Tavaran kuvaus |
|---|---|
status |
Nykyinen työn tila: pending (odottaen GPU:n työntekijää) processing (kääntäminen aktiivisesti), completed, failed |
processed_texts |
Tähän mennessä suoritettujen yksittäisten käännösten määrä. Päivityksiä reaaliajassa, kun jokainen teksti käännetään. |
total_texts |
Käännösten kokonaismäärä tässä erässä (tekstit × kohdekielet). |
progress_percentage |
Valmistumisprosentti (0-100). Laskettu jalostetuista teksteistä / kokonaistekstistä. |
queue_position |
Asemasi jonossa, kun status on "menossa" (1 = seuraava ylös). Null, kun käsittelet tai valmistut. Käytä tätä arvioidaksesi odotusaikaa ja näyttääksesi jonotilan käyttäjillesi. |
processing_time |
Kokonaiskäsittelyaika sekunteina (saatavilla valmistuttuaan). |
status is "pending"GPU:n työntekijät ovat kiireisiä muiden erien kanssa. queue_position Katso, kuinka monta työpaikkaa sinulla on edessä (1 = olet seuraava). Työsi alkaa automaattisesti – mitään toimia ei tarvita, jatka vain kyselyjä.
Parhaita käytäntöjä suurille työtahdille
- Lähetä 1 kohdekieli per eräpyyntö. Tämä pitää jokaisen erän nopeana ja tekee etenemisestä helppoa seurata.
- Pidä erät 50-100 teksteissä. Pienemmät erät valmistuvat nopeammin ja antavat sinulle useammin edistyspäivityksiä.
- Suorita enintään kaksi samanaikaista erätyötä. GPU käsittelee kaksi erää rinnakkain – lisää työjonoa, eikä käynnisty nopeammin.
- Aikalisällä toimita sama työ_id uuden erän lähettämisen sijaan. Alkuperäinen työ saattaa vielä olla GPU:n käsittelyssä.
- Kysely 3-5 sekunnin välein. Useammat kyselyt eivät nopeuta käsittelyä.
Useita kieliä sisältävä erä
Käännä useita tekstejä usealle kielelle kerralla:
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
Täytetty tulos_data
{
"translations": [
{"es": "Hola", "fr": "Bonjour"},
{"es": "Adiós", "fr": "Au revoir"}
],
"source_language": "en",
"target_languages": ["es", "fr"],
"character_count": 24,
"processing_time": 2.45
}
Pyydä parametreja
| Muuttuja | Tyyppi | Vaadittu | Tavaran kuvaus |
|---|---|---|---|
texts |
array | Kyllä | Käännettäviä naruja säe |
target_language |
string | Kyllä | Yhden kielen kohdekielikoodi |
target_languages |
array | Kyllä | Usean kielen kohdekielikoodien kuvaus |
source_language |
string | Ei tarvitse. | Source language code. Default: "auto" |
* Tarjoa jompaakumpaa target_language tai target_languagesEi molempia.
job_id. Kysely GET /api/v1/jobs/{job_id}/ kunnes status is "completed"Lue sitten result_data Käännöksille. progress_percentage edistyksen seuraamiseksi.
Asiakirjan käännös
Käännä kokonaisia asiakirjoja säilyttäen muotoilemisen. Tukee useita tiedostomuotoja.
POST https://api.translateapi.ai/api/v1/translate/document/
Pyyntö (moniosainen/muodollinen tieto)
| Muuttuja | Tyyppi | Vaadittu | Tavaran kuvaus |
|---|---|---|---|
file |
file | Kyllä | Käännettävä asiakirja (max. 10MB) |
target_language |
string | Kyllä | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Ei tarvitse. | Source language code. Default: "auto" (auto-detect) |
Tuetut tiedostotyypit
.txt- Pelkkiä tekstitiedostoja.docx- Sanakirjat.pdf- PDF-dokumentit (mukaan lukien skannatut).json- JSON-tiedostot (kääntää merkkijonon arvot).xml- XML-tiedostot
.srt- Suomennos: Michael T. Francis Pinmontagne SUBHEAVEN.ORG.po/.pot- Hae tekstikäännöstiedostot.jpg/.jpeg- JPEG-kuvat (OCR).png- PNG-kuvat (OCR).tiff/.tif- TIFF-kuvat (OCR).bmp- BMP-kuvat (OCR).webp- WebP-kuvat (OCR)
Esimerkki (curl)
# Translate a Word document
curl -X POST https://api.translateapi.ai/api/v1/translate/document/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@document.docx" \
-F "target_language=es" \
-F "source_language=en"
# Translate text from an image (OCR)
curl -X POST https://api.translateapi.ai/api/v1/translate/document/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@scanned_page.jpg" \
-F "target_language=es" \
-F "source_language=en"
.txt Kansio.
Vaste
{
"id": 123,
"original_filename": "document.docx",
"file_type": "docx",
"source_language": "en",
"target_language": "es",
"status": "completed",
"character_count": 5420,
"translated_file_url": "/media/translated/document_es.docx",
"created_at": "2024-01-15T10:30:00Z",
"completed_at": "2024-01-15T10:30:05Z"
}
Tila-arvot
pending |
Ladattu tiedosto odottaa käsittelyä |
processing |
Kääntäminen käynnissä |
completed |
Käännös valmis, ladattavissa |
failed |
Käännös epäonnistui (tarkista virhe_viesti) |
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
Tarkista asiakirjakäännöksen tila tai hae ladattava URL.
Vaste
{
"id": 123,
"original_filename": "document.docx",
"status": "completed",
"translated_file_url": "/media/translated/document_es.docx",
"character_count": 5420
}
Kielidetektio
Kielentunnistus on sisäänrakennettu jokaiseen käännöspyyntöön. source_language to "auto" (tai jättää sen pois) ja havaittu kieli palautetaan vastauksessa.
POST https://api.translateapi.ai/api/v1/translate/
Pyynnön esittävä elin
{
"text": "Bonjour, comment allez-vous?",
"target_language": "en"
}
Vaste
{
"translated_text": "Hello, how are you?",
"source_language": "fr",
"target_language": "en",
"translations": {
"en": "Hello, how are you?"
},
"character_count": 28,
"translation_time": 0.52
}
Erytropoietiini source_language Vastauksen kentässä näkyy havaittu kieli, kun automaattihavaitsemista käytetään.
Tuetut kielet
Hanki lista kaikista tuetuista kielistä.
GET https://api.translateapi.ai/api/v1/translate/languages/
Vaste
{
"count": 186,
"results": [
{"iso": "en", "name": "English", "en_label": "English"},
{"iso": "es", "name": "Español", "en_label": "Spanish"},
{"iso": "fr", "name": "Français", "en_label": "French"},
...
]
}
Käännösmallit
Käytämme huippuluokan avoimen lähdekoodin käännösmalleja, jotka toimivat omassa GPU-infrastruktuurissamme. Kaikki mallit ovat kaupallisesti luvanvaraisia (Apache 2.0).
| Malli | Kielet | Paras |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ kieliparia | Yhteiset kielet (EN, ES, FR, DE, IT, PT, RU, ZH, JA jne.) |
| Google MADLAD-400 | 400+ kieltä | Harvinaiset kielet, kattava uutisointi |
API valitsee kieliparisi parhaan mallin automaattisesti. Voit määrittää valinnaisesti engine parametri:
| Moottori | Tavaran kuvaus |
|---|---|
"auto" |
Oletus. Yrittää ensin HuggingFacea, putoaa takaisin MADLAD-400:aan |
"huggingface" |
Force HuggingFace/MarianMT (nopein, 50+ kieltä) |
"madlad" |
Force MADLAD-400 (400+ kieltä) |
Virheiden käsittely
API käyttää tavanomaisia HTTP-tilakoodeja osoittaakseen onnistuneensa tai epäonnistuneensa.
| Koodi | Tavaran kuvaus |
|---|---|
200 |
Onnistuminen |
400 |
Huono pyyntö - virheelliset parametrit |
401 |
Luvaton - Virheellinen tai puuttuva API-näppäin |
402 |
Vaadittu maksu - Päiväkohtainen merkkikiintiö ylittyi |
429 |
Liikaa pyyntöjä - Määrä ylittyi |
503 |
Palvelu ei saatavilla - Kääntäjän moottori tilapäisesti pois päältä |
Virheen vastausmuoto
{
"error": "daily_limit_exceeded",
"credits_remaining": 0,
"daily_limit": 100000
}
Raja-arvot
Raja-arvot vaihtelevat suunnitelmallisesti. Ks. hinnoittelu täydelliset tiedot:
| Suunnitelma | Hahmot/Kuukausi | Hinta | |
|---|---|---|---|
| Vapaa | 250,000 | $0 | Rekisteröidy ilmaiseksi |
| Käynnistin | 2,500,000 | $9/m | Tilaa |
| Pro | 10,000,000 | $29/m | Tilaa |
| Bisnekset | 40,000,000 | $79/m | Tilaa |
| Skaala | 125,000,000 | $199/m | Tilaa |
Kun ylität rajasi, saat 429 Too Many Requests vastaa seuraavaan kuukauteen tai päivität.
Automaattiskaalautuva pilviinfrastruktuuri
TranslateAPI toimii erityisissä NVIDIA A100 GPU -tapahtumissa, joissa on automaattinen horisontaalinen skaalaus. Kun kysyntä kasvaa, uudet GPU-tapahtumat käynnistyvät muutamassa minuutissa nopean reagointiajan ylläpitämiseksi. Tämä tarkoittaa, että API pystyy käsittelemään lähes rajattomasti samanaikaisia pyyntöjä ilman heikkenemistä – yhdestä pyynnöstä tuhansiin minuuttiin.