Dokumentacja API

Integruj potężne tłumaczenie do aplikacji z naszym prostym REST API.

Rozpoczęcie

TranslateAPI zapewnia prosty interfejs REST do tłumaczenia tekstu między 180+ językami. Wszystkie punkty końcowe API zwracają odpowiedzi JSON.

1. Weź klucz API

Utwórz bezpłatne konto i wygeneruj klucz API z panelu deski:

  1. Zarejestruj się. translateapi.ai/signup
  2. Idź do Panel → Klucze API
  3. Kliknij "Stwórz klucz API" i skopiuj klucz

Klucze API rozpoczynają się od ta_ a następnie 56 hex znaków.

Podstawowy URL: https://api.translateapi.ai/api/v1/
2. Zrób swoje pierwsze żądanie

Zastąpić VAŠE_API_KEY kluczem z panelu deskowego:

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!"
$ch = curl_init("https://api.translateapi.ai/api/v1/translate/");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer YOUR_API_KEY",
        "Content-Type: application/json"
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "text" => "Hello, world!",
        "target_language" => "es"
    ])
]);

$result = json_decode(curl_exec($ch), true);
echo $result["translated_text"];  // "Hola, mundo!"
payload := strings.NewReader(`{
    "text": "Hello, world!",
    "target_language": "es"
}`)

req, _ := http.NewRequest("POST", "https://api.translateapi.ai/api/v1/translate/", payload)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")

resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result["translated_text"])  // "Hola, mundo!"
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");

var content = new StringContent(
    JsonSerializer.Serialize(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 = JsonSerializer.Deserialize<JsonElement>(
    await response.Content.ReadAsStringAsync()
);
Console.WriteLine(result.GetProperty("translated_text"));  // "Hola, mundo!"
Odpowiedź
{
    "translated_text": "Hola, mundo!",
    "source_language": "en",
    "target_language": "es",
    "translations": {
        "es": "Hola, mundo!"
    },
    "character_count": 13,
    "translation_time": 0.45
}

Uwierzytelnienie

Uwierzytelniaj swoje żądania za pomocą klucza API. Możesz utworzyć klawisze API z Twojego Panel.

Uwierzytelnianie nagłówka (zalecane)
Authorization: Bearer ta_your_api_key_here
Nagłówek ApiKey
Authorization: ApiKey ta_your_api_key_here
Parametr zapytania
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Trzymaj klucze API bezpieczne! Nie ujawniać ich w kodie klienta ani w składniach publicznych.

Przetłumacz tekst

Przetłumacz tekst na jeden język docelowy.

POST https://api.translateapi.ai/api/v1/translate/
Organ wniosku
Parametr Rodzaj Wymagane Opis
text string Tak. Tekst do przetłumaczenia (max 50 000 znaków)
target_language string Tak* Target language code (e.g., "es", "fr", "de")
source_language string Nie. Source language code. Default: "auto" (auto-detect)
engine string Nie. Silnik tłumaczenia: "auto" (domyślnie), "huggingface" lub "madlad". Zobacz modele tłumaczenia. Modele tłumaczenia.

* Użyj target_language (wiersz) dla jednego języka lub target_languages (masy) dla wielokrotnego. Patrz Tłumaczenie Multi-Target.

Odpowiedź
{
    "translated_text": "Hola, mundo!",
    "source_language": "en",
    "target_language": "es",
    "translations": {
        "es": "Hola, mundo!"
    },
    "character_count": 13,
    "translation_time": 0.45
}
Automatyczne wykrywanie: Omiń source_language lub ustawić na "auto" do automatycznego wykrywania języka źródłowego. Wykryty język jest zwracany w source_language Pole odpowiedzi.

Tłumaczenie Multi-Target

Przetłumacz tekst na wiele języków w jednym żądaniu. Używa tego samego punktu końcowego co pojedyncze tłumaczenie.

POST https://api.translateapi.ai/api/v1/translate/
Organ wniosku
{
    "text": "Hello, world!",
    "target_languages": ["es", "fr", "de", "ja"],
    "source_language": "en"
}

Użyj target_languages (Ras) zamiast target_language (string) dla wielu celów.

Odpowiedź
{
    "source_language": "en",
    "translations": {
        "es": "Hola, mundo!",
        "fr": "Bonjour, monde!",
        "de": "Hallo, Welt!",
        "ja": "こんにちは、世界!"
    },
    "character_count": 52,
    "translation_time": 2.31
}
Wskazówka: Można przetłumaczyć do 50 języków w jednym żądaniu.

Tłumaczenie serii

Przetłumacz kilka tekstów naraz przy przetwarzaniu async. Wyślij partię i ankiet o wyniki.

Limity: Maksymalnie 100 tekstów na serię, maksymalnie 300 pozycji całkowitych (teksty × języki docelowe). Czas pracy wygasł 45 minut po rozpoczęciu przetwarzania.
Prędkość: Języki wspólne (ES, FR, DE) używają szybkich modeli (~0.1s/text). Mniej powszechne języki używają naszego wielojęzycznego modelu (~1-3s/text).
POST https://api.translateapi.ai/api/v1/translate/batch/
Krok 1: Wyślij serię
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"
}'
Odpowiedź (HTTP 202 akceptowana)
{
    "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/"
}
Krok 2: Analiza wyników
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Przykład badania (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"Done: {processed}/{total} in {result.get('processing_time', 0):.1f}s")
        translations = result["result_data"]["translations"]
        break
    elif status == "failed":
        raise Exception(result.get("error_message", "Translation failed"))
    elif status == "pending":
        print(f"Queued (position {result.get('queue_position', '?')})")
    else:
        print(f"[{status}] {processed}/{total} ({progress:.0f}%)")

    time.sleep(3)
Odpowiedź (zakończona)
{
    "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
    }
}
Śledzenie postępów w czasie rzeczywistym
Pole Opis
status pending (polecony, czekający na pracownika GPU), processing (aktywnie tłumaczenie), completed, failed
processed_texts Liczba indywidualnych tłumaczeń zakończonych dotychczas. Aktualizacje w czasie rzeczywistym, jak każdy tekst jest tłumaczony.
progress_percentage Odsetek zakończeń (0-100). Wyliczony z przetworzonych_tekstów / total_texts.
queue_position Twoja pozycja w kolejce, gdy status jest "wstrzymujący" (1 = następny). Null po przetwarzaniu lub zakończeniu. Użyj tego, aby oszacować czas poczekania i pokazać status kolejki użytkownikom.
processing_time Całkowity czas przetwarzania w sekundach (dostępny po zakończeniu).
Seria wielojęzyczna

Przetłumacz wiele tekstów na wiele języków naraz:

{
    "texts": ["Hello", "Goodbye"],
    "target_languages": ["es", "fr"],
    "source_language": "en"
}
Zakończone wyniki_ danych
{
    "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
}
Parametry żądania
Parametr Rodzaj Wymagane Opis
texts array Tak. Array strun do przetłumaczenia
target_language string Tak* Kod języka docelowego dla jednego języka
target_languages array Tak* Przestrzeń kodów języka docelowego dla wielu języków
source_language string Nie. Source language code. Default: "auto"

* Upewnić się, że którykolwiek z nich target_language lub target_languagesNie oboje.

Najlepsze praktyki dla dużych obciążeń roboczych
  • Wyślij 1 język docelowy na zapytanie serii. Utrzymuje to każdą partię szybko i łatwo śledzić postępy.
  • Przechowywać partie na 50-100 tekstów. Mniejsze partie zakończą się szybciej i zapewniają częstsze aktualizacje postępów.
  • Wyślij tyle miejsc pracy serii, ile potrzebujesz – nasza klastra GPU automatyczna obsługa popytu. Prace są przetwarzane równolegle w wielu przypadkach.
  • Po przekroczeniu czasu, ponownie pobrać ten sam job_id zamiast składać nową partię. Oryginalne zadanie może nadal przetwarzać na GPU.
  • Badanie co 3-5 sekund. Bardziej częste badania nie przyspiesza przetwarzania.

Tłumaczenie dokumentu

Przetłumacz całe dokumenty przy zachowaniu formatu. Obsługuje wiele formatów plików.

POST https://api.translateapi.ai/api/v1/translate/document/
Wniosek (multipart/form-data)
Parametr Rodzaj Wymagane Opis
file file Tak. Dokument do przetłumaczenia (max. 10MB)
target_language string Tak. Target language code (e.g., "es", "fr", "de")
source_language string Nie. Source language code. Default: "auto" (auto-detect)
Obsługiwane typy plików
Dokumenty
  • .txt - Pliki tekstowe
  • .docx - Dokumenty słowowe
  • .pdf - Dokumenty PDF (w tym skanowane)
& Lokalizacja danych
  • .json - Pliki JSON (tłumaczone wartości stringowe)
  • .xml - Pliki XML
  • .srt - Pliki napisów
  • .po / .pot - Pliki tłumaczeń Gettext
Obrazy (OCR)
  • .jpg / .jpeg - Zdjęcia JPEG (OCR)
  • .png - Zdjęcia PNG (OCR)
  • .tiff / .tif - Obrazy TIFF (OCR)
  • .bmp - Zdjęcia BMP (OCR)
  • .webp - Zdjęcia WebP (OCR)
Przykład (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"
Odpowiedź
{
    "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"
}
Wsparcie OCR: Pliki obrazów i skanowane PDF są przetwarzane z optyczną rozpoznawczością znaków (OCR), aby wyciągnąć tekst przed tłumaczeniem. Dla najlepszych wyników, użyj czyste, wysokiej rozdzielczości obrazy.
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

Sprawdź stan tłumaczenia dokumentu lub odbierz URL pobierania.

Wartości stanu
pending Plik wysłany, czekający na przetwarzanie
processing Tłumaczenie w toku
completed Tłumaczenie zakończone, pobierz dostępne
failed Tłumaczenie nie powiodło się (poprawka błędu_ wiadomości)

Języki obsługiwane

Pobierz listę wszystkich obsługiwanych języków.

GET https://api.translateapi.ai/api/v1/translate/languages/
Odpowiedź
{
    "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"},
        ...
    ]
}

Zobacz wszystkie 186 języków

Modele tłumaczenia

Używamy najnowocześniejszych modeli tłumaczenia otwartego źródła działających na naszej własnej infrastrukturze GPU. Wszystkie modele są licencjonowane komercyjne (Apache 2.0).

Wzór Języki Najlepsze dla
Helsinki-NLP/opus-mt 50+ par językowych Języki wspólne (EN, ES, FR, DE, IT, PT, RU, ZH, JA itp.)
Google MADLAD-400 400+ języków Rzadkie języki, kompleksowy zakres

API automatycznie wybiera najlepszy model dla pary języków. Można opcjonalnie określić engine parametr:

Silnik Opis
"auto" Domyślnie. Próbuje najpierw HuggingFace, zwraca się do MADLAD-400
"huggingface" Force HuggingFace/MarianMT (najszybsze, 50+ języków)
"madlad" Siła MADLAD-400 (400+ języków)

Rozwiązanie błędów

API wykorzystuje standardowe kody stanu HTTP, aby wskazywać sukces lub porażkę.

Kod Opis
200 Sukces
202 Pomyślnie zaakceptowano zadanie serii
400 Złe żądanie — nieprawidłowe parametry (brak tekstu, niepodtrzymywany język itp.)
401 Nieuprawniony - nieprawidłowy lub brakuje klucza API
402 Wymagana płatność — Kredyty charakterystyczne wyczerpane. Uaktualnij swój plan lub zakup top-up.
403 Zakazane – klucz API brakuje wymaganego zakresu lub IP nie w białej liście
503 Usługa Niedostępna - Silnik tłumaczeń tymczasowo obniżony
Format odpowiedzi na błąd
{
    "error": "insufficient_credits",
    "credits_remaining": 0
}

Ograniczenia użytkowania

TranslateAPI has no request rate limits. All requests are queued and processed by our auto-scaling GPU cluster. Your plan determines your monthly character allowance:

Plan Znaki/miesiąc Seria API Dokumenty Cena
Darmowe 250,000 $0 Zarejestruj się za darmo
Rozpoczynacz 2,500,000 $9/Mo Subskrypcja
Prof. 10,000,000 $29/Mo Subskrypcja
Biznes 40,000,000 $79/Mo Subskrypcja
Skaluj 125,000,000 $199/Mo Subskrypcja
Enterprise Unlimited $499/Mo Contact Sales

Kiedy przekroczysz granicę, otrzymasz 402 Payment Required Odpowiedź do następnego miesiąca lub uaktualnij.

Infrastruktura chmury automatycznej wyskalowania

TranslateAPI uruchamia na dedykowanej NVIDIA A100 instancji GPU z automatyczną skalizacją poziomą. Gdy popyt wzrasta, dodatkowe przypadki GPU są uruchamiane w ciągu kilku minut, aby utrzymać czas szybkiej reakcji. Wszystkie żądania są w kolejce i przetwarzane — wysłać setki jednoczesnych zapytań i wszystkie będą obsługiwane. Tłumaczenia w czasie rzeczywistym mają priorytet, pakietowy proces pracy w tle.

Potrzebujesz więcej kredytów?

Kończy się znaki w połowie miesiąca? Zakup jednorazowego zakupu kredytu bez zmiany planu. Widok opakowań top-up

Oszacuj tę stronę
Dziękuję za ocenę!
/5 w oparciu o: ratingi