Składaj i śledź zamówienia na tłumaczenia dokumentów certyfikowanych programowo. Interfejs API REST przez HTTPS, uwierzytelniany tokenem nośnika i zwracający JSON — z podpisanymi webhookami dla każdego zdarzenia.
curl -X POST https://www.rapidtranslate.org/api/v1/orders \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "reference=APO-10432" \
-F "source_language=Spanish" \
-F "target_language=English (US)" \
-F "translation_type=certified" \
-F "files[]=@document.pdf"
→ {
"id": "9b1c2d3e-…",
"status": "pending",
"livemode": true
}
Ten Rapid Translate API pozwala Twojej aplikacji przesyłać dokumenty do tłumaczenia uwierzytelnionego, sprawdzać aktualny status i ceny oraz odbierać gotowe pliki – bez konieczności kontaktowania się Twojego zespołu z naszym zespołem. API jest przeznaczone dla firm, które zlecają tłumaczenia w imieniu swoich klientów.
Wszystkie prośby są kierowane do https://www.rapidtranslate.org/api/v1 przez HTTPS. Żądania i odpowiedzi są w formacie JSON, z wyjątkiem tworzenia zamówienia, które przesyła pliki jako multipart/form-data. Wszystkie kwoty są zwracane w formie centy całkowite w USD, a wszystkie znaczniki czasu podano w formacie UTC ISO‑8601.
Wolisz klikać w API przed napisaniem kodu? Nasza kolekcja Postman zawiera wszystkie wstępnie skonfigurowane punkty końcowe — uwierzytelnianie, przykładowe treści i parametry zapytania.
klucz API do klucza od Ustawienia biznesowe → Klucze API.adres URL bazowy dla Twojego środowiska — domyślnie jest to środowisko produkcyjne.Uwierzytelniaj każde żądanie za pomocą swojego tajnego klucza API jako tokenu nośnika i poproś o odpowiedź JSON. Wymagane są oba nagłówki:
Autoryzacja: Nośnik YOUR_API_KEY Akceptacja: application/json
Generuj i rotuj klucze w panelu sterowania w Ustawieniach firmowych → Klucze API . Klucze są wyświetlane jednorazowo podczas tworzenia i przechowywane w postaci hashowanej — jeśli zgubisz klucz, możesz go rotować. Każdy klucz należy do jednego trybu (Live lub Sandbox) i zawiera stały zestaw zakresów.
Każdy punkt końcowy wymaga określonej zdolności klucza. Klucz, który nie spełnia wymaganego zakresu, zwraca 403 zabroniony_zakres.
| Zakres | Dotacje |
|---|---|
zamówienia: napisz | Tworzenie i zatwierdzanie zamówień |
zamówienia:przeczytaj | Pobieranie i wyświetlanie zamówień |
cena:przeczytane | Przeczytaj cennik |
Tryb testowy jest właściwością klucza , a nie Twojego konta. Klucz Sandbox działa w w pełni symulowanym środowisku, natomiast klucz Live składa rzeczywiste, rozliczane zamówienia. Możesz używać obu jednocześnie.
Zamówienia w trybie sandbox korzystają z tych samych procedur walidacji, mapowania pól i rzeczywistych cen, ale pomijają przechowywanie plików, OCR i realizację. Po utworzeniu zamówienie w trybie sandbox automatycznie przechodzi przez cykl życia (przetwarzanie → ukończone), uruchamiając te same webhooki, co zamówienie na żywo i na koniec dostarczając statyczny przykładowy dokument.
Każda odpowiedź i webhook niesie ze sobą tryb na żywo flagę, dzięki której integracja będzie mogła się rozgałęziać bez konieczności sprawdzania klucza:
tryb na żywo: prawda — rzeczywiste, płatne zamówienietryb na żywo: fałsz — piaskownica / kolejność testowaniaLiczba żądań jest ograniczona do organizacji. Domyślny limit wynosi 120 żądań na minutę. Przekroczenie go zwraca 429 rate_limited; spróbuj ponownie po krótkim odczekaniu. Jeśli Twoja integracja wymaga wyższego limitu, skontaktuj się z wsparcie@rapidtranslate.org.
Każda pomyślna odpowiedź zawiera swój ładunek dane klucz. Lista punktów końcowych dodaje meta blok z paginacją.
{
"data": {
"id": "9b1c...-uuid",
"reference": "APO-10432",
"status": "processing",
"total": 11270,
"currency": "USD"
}
}
{
"data": [ ... ],
"meta": {
"current_page": 1,
"per_page": 25,
"total": 134,
"last_page": 6
}
}
Błędy korzystają ze standardowych kodów stanu HTTP i zwracają stabilny, czytelny dla maszyny kod. kod_błędu obok wiadomości ludzkiej. Błędy walidacji dodają pole z kluczem błędy obiekt.
{
"message": "The given data was invalid.",
"error_code": "validation_failed",
"errors": {
"source_language": ["The selected source language is invalid."]
}
}
| HTTP | kod_błędu | Oznaczający |
|---|---|---|
| 400 | złe_żądanie | Nieprawidłowo sformatowana treść żądania |
| 401 | nieuwierzytelniony | Brakujący, nieprawidłowy lub odwołany klucz |
| 402 | płatność_nieudana | Zamówienie zatwierdzone, ale nie można pobrać płatności |
| 402 | wstrzymanie_kredytu | Zamówienie przekracza Twój limit kredytowy |
| 403 | zakres_zakazany | Klucz nie ma wymaganego zakresu |
| 403 | konto_zawieszone | Organizacja zawieszona z powodu niezapłaconych faktur |
| 404 | nie znaleziono | Nie ma takiego zamówienia dla tej organizacji |
| 409 | duplikat_odniesienia | Odniesienie wykorzystane ponownie w innym zamówieniu |
| 409 | nie_oczekuje_na_zatwierdzenie | Zamówienie nie oczekuje na Twoją akceptację |
| 422 | walidacja_nieudana | Brakujące lub nieprawidłowe pola |
| 429 | stawka_ograniczona | Przekroczono limit szybkości |
| 500 | błąd_serwera | Nieoczekiwany błąd serwera |
| 503 | przetwarzanie_nie powiodło się | Przetwarzanie w dół strumienia (OCR/cena) nie powiodło się |
Zamówienie status podąża za stabilnym cyklem życia. Te pięć wartości to również te akceptowane przez status filtruj na Zamówienia na liście:
| Status | Oznaczający |
|---|---|
aż do | Otrzymano; ustalanie cen nie zostało jeszcze zakończone. całkowity Może nieważny. |
oczekujące_zatwierdzenie | Wyceniono i oczekuje się na akceptację całości przez Ciebie (tylko jeśli akceptacja jest wymagana). |
przetwarzanie | Zatwierdzone i aktywne; tłumaczenie w toku. |
zakończony | Zakończono; dostępne są przetłumaczone dokumenty. |
odwołany | Zamówienie zostało anulowane. |
W trakcie realizacji zamówienia mogą być potrzebne bardziej szczegółowe etykiety (np. Przypisane do tłumacza, Tłumaczenie, Wysłany) może również się pojawić. W przypadku konieczności zatwierdzenia zamówienie może zawierać krótki raport płatność_nieudana Lub wstrzymanie_kredytu jeśli nie udało się pobrać opłaty — wybierz metodę płatności i zatwierdź ją ponownie.
DOSTAWAĆ /języki
Zwraca wszystkie obsługiwane języki. Użyj nazwa wartość dosłownie jako język_źródłowy / język_docelowy podczas tworzenia zamówienia — zamówienia są dopasowywane na podstawie nazwy języka, a nie kodu.
Wymaga uwierzytelnionego klucza.
curl https://www.rapidtranslate.org/api/v1/languages \ -H "Autoryzacja: Nośnik YOUR_API_KEY" \ -H "Akceptuj: application/json"
{
"data": [
{ "code": "english-uk", "name": "English (UK)", "active": true },
{ "code": "spanish", "name": "Spanish", "active": true }
]
}
DOSTAWAĆ /ceny
Zwraca amerykańską tabelę stawek bazowych w USD, na podstawie której rozliczane są zamówienia. Kwoty są ciągami dziesiętnymi. Ceny są grupowane według tłumaczenie typ (każdy z regularny I szybki za-jednostka cena), dostawa metoda i apostille — te same wartości, które podajesz podczas tworzenia zamówienia.
Zakres: cena:przeczytane
{
"data": {
"country": { "code": "US", "name": "United States" },
"currency": { "code": "USD", "symbol": "$" },
"translation": {
"certified": { "unit": "page", "regular": "27.99", "rapid": "37.99" },
"standard": { "unit": "word", "regular": "0.11", "rapid": "0.15" },
"specialized": { "unit": "page", "regular": "47.99", "rapid": "57.99" },
"naati": { "unit": "page", "regular": "42.99", "rapid": "52.99" },
"sworn": {
"unit": "page",
"note": "Sworn pricing depends on the language pair.",
"language_pairs": [
{ "languages": ["Spanish","English"], "unit": "page", "regular": "57.99", "rapid": "67.99" },
{ "languages": ["Polish","English"], "unit": "page", "regular": "46.99", "rapid": "56.99" }
]
}
},
"delivery": {
"email": "0.00", "notarized_email": "19.99",
"mail_standard": "29.99", "mail_next_day": "55.00"
},
"apostille": { "base": "79.00", "additional_document": "15.00" }
}
}
Potwierdzone ceny. Ceny tłumaczeń przysięgłych ustalane są za parę językową. pary_językowe wymienia każdą parę uprawnioną do zaprzysiężenia wraz z własną regularny/szybki cena. Akceptowana jest każda odmiana języka angielskiego (angielski (USA/Wielka Brytania/Australia/Kanada)), a każda para działa w obie strony, chyba że jest przetłumaczona „dwukierunkowy”: fałsz.
POST /święcenia
Tworzy zlecenie tłumaczenia i przesyła pliki źródłowe. Ponieważ przenosi pliki, ten punkt końcowy używa multipart/form-data (nie JSON). Pola zagnieżdżone używają notacji nawiasowej, np. klient[nazwa].
Zakres: zamówienia: napisz
| Pole | Typ | Notatki |
|---|---|---|
odniesienie | wymagany ciąg znaków | Twój własny, unikalny numer zamówienia. Ponowne jego użycie zwraca istniejącą kolejność (patrz idempotentność). |
klient[nazwa] | wymagany ciąg znaków | Pełne imię i nazwisko klienta końcowego. |
klient[email] | wymagany ciąg znaków | Adres e-mail klienta końcowego. |
język_źródłowy | wymagany ciąg znaków | Dokładny język nazwa z Wyświetl języki. |
język_docelowy | wymagany ciąg znaków | Dokładny język nazwa z Wyświetl języki. |
typ_tłumaczenia | wymagany ciąg znaków | Jeden z atestowany, standard, specjalistyczny, przysięgły, naati. |
zwrot akcji | wymagany ciąg znaków | regularny Lub szybki. |
dostawa[metoda] | wymagany ciąg znaków | Jeden z e-mail, notarialnie potwierdzony adres e-mail, standard_poczty, mail_next_day. |
dostawa[adres][...] | obiekt | Wymagane dla standard_poczty / mail_next_day: ulica, miasto, kod pocztowy, kraj (państwo fakultatywny). kraj jest kodem ISO, np. NAS. |
apostille[włączone] | wartość logiczna | Dodaj przetwarzanie apostille. Zobacz zasady poniżej. |
apostille[dokumenty] | liczba całkowita | Liczba dokumentów do apostille. Wymagana, gdy ta opcja jest włączona. |
apostille[kraj_docelowy] | smyczkowy | Kraj, którego dotyczy apostille. |
notatki | smyczkowy | Instrukcje w formie tekstu swobodnego. |
kod_kuponu | smyczkowy | Kod rabatowy do zastosowania. Kody ewidentnie nieprawidłowe lub nieodpowiednie są odrzucane podczas tworzenia. 422 walidacja_nieudana; sama zniżka zostaje sfinalizowana po ustaleniu ceny zamówienia (patrz uwaga poniżej). |
akta[] | plik[] wymagany | 1–20 plików. Dozwolone formaty: pdf, jpg, jpeg, png, doc, docx, tiff, heic. Maksymalny rozmiar każdego pliku: 20 MB. |
odniesienie jest unikalny dla każdej organizacji. Powtarzanie tworzenia z tą samą odniesienie zwraca istniejące zamówienie z 200 zamiast tworzyć duplikat (zwracane jest nowe zamówienie) 201).
standard_poczty sposób dostawy. mail_next_day dotyczy tylko adresów w USA.
curl -X POST https://www.rapidtranslate.org/api/v1/orders \ -H "Autoryzacja: Nośnik TWOJEGO_KLUCZA_API" \ -H "Akceptuj: application/json" \ -F "odniesienie=APO-10432" \ -F "klient[nazwa]=Jane Doe" \ -F "klient[email]=jane@example.com" \ -F "język_źródłowy=Hiszpański" \ -F "język_docelowy=Angielski (USA)" \ -F "typ_tłumaczenia=certyfikowany" \ -F "obrót=regularny" \ -F "dostarczenie[metoda]=email" \ -F "pliki[]=@/ścieżka/do/aktu-urodzenia.pdf"
{
"data": {
"id": "9b1c2d3e-...-uuid",
"reference": "APO-10432",
"livemode": true,
"status": "pending",
"source_language": "Spanish",
"target_language": "English (US)",
"translation_type": "certified",
"turnaround": "regular",
"total": null,
"currency": "USD",
"created_at": "2026-08-28T10:15:00+00:00"
}
}
Nowo utworzone zamówienie rozpoczyna się jako aż do z nieważny suma podczas obliczania ceny. Ankieta Pobierz zamówienie lub posłuchaj status_zamówienia webhook umożliwiający sprawdzenie ceny i aktualizacji statusu.
Kupony. A kod_kuponu Sprawdzanie odbywa się dwuetapowo. Podczas tworzenia weryfikujemy to, co nie zależy od długości dokumentu – poprawność kodu, limity użycia i typy tłumaczeń/usług, do których się odnosi – i natychmiast odrzucamy błędny kod. Reguły zależne od liczby stron/słów (i samej kwoty rabatu) są rozstrzygane po zliczeniu dokumentu, więc rabat pojawia się na ceniony całkowita, nie początkowa aż do odpowiedź. Jeśli po ustaleniu liczby kuponów okaże się, że nie mają one zastosowania, zamówienie i tak zostanie złożone po pełnej cenie i oznaczone do weryfikacji przez nasz zespół.
DOSTAWAĆ /zamówienia/{id}
Pobiera pojedyncze zamówienie według jego id (UUID zwrócony podczas tworzenia). Zwraca 404 nie znaleziono jeśli zamówienie nie należy do Twojej organizacji.
Zakres: zamówienia:przeczytaj
curl https://www.rapidtranslate.org/api/v1/orders/9b1c2d3e-...-uuid \ -H "Autoryzacja: Nośnik YOUR_API_KEY" \ -H "Akceptuj: application/json"
DOSTAWAĆ /święcenia
Zwraca zamówienia Twojej organizacji, od najnowszych na początku, z paginacją metaWszystkie parametry zapytania są opcjonalne.
Zakres: zamówienia:przeczytaj
| Zapytanie | Notatki |
|---|---|
status | Jeden z aż do, oczekujące_zatwierdzenie, przetwarzanie, zakończony, odwołany. |
odniesienie | Filtruj według odniesienia. |
język_źródłowy / język_docelowy | Filtruj według nazwy języka. |
utworzone z / created_to | Zakres dat (włącznie). |
sortować | -utworzono_w (domyślnie, najnowsze na początku) lub created_at (najstarsze na początku). |
na stronę | 1–100. Domyślnie jest to standardowy rozmiar strony. |
strona | Numer strony. |
curl "https://www.rapidtranslate.org/api/v1/orders?status=completed&per_page=50" \ -H "Autoryzacja: Nośnik YOUR_API_KEY" \ -H "Akceptuj: application/json"
POST /orders/{id}/approve
Zatwierdza obliczoną sumę dla zamówienia, które jest oczekujące_zatwierdzenie, aktywując go do realizacji. Jest to potrzebne tylko wtedy, gdy Twoje konto wymaga zatwierdzenia przed rozpoczęciem pracy. Wywołanie jest idempotentne.
Zakres: zamówienia: napisz
curl -X POST https://www.rapidtranslate.org/api/v1/orders/9b1c2d3e-...-uuid/approve \ -H "Autoryzacja: Nośnik YOUR_API_KEY" \ -H "Akceptuj: application/json"
W przypadku powodzenia zaktualizowane zamówienie zostanie zwrócone. Jeśli zamówienie nie oczekuje na zatwierdzenie, otrzymasz 409 nie_oczekuje_na_zatwierdzenie; jeśli wymagana jest opłata, ale się nie powiedzie, otrzymasz 402 płatność_nieudana Lub 402 wstrzymanie kredytu.
Zestawy stałe akceptowane są podczas tworzenia zamówienia.
| Wartość | Opis |
|---|---|
atestowany | Tłumaczenie poświadczone (cena za stronę). |
standard | Tłumaczenie standardowe (cena za słowo). |
specjalistyczny | Tłumaczenie specjalistyczne / eksperckie (za stronę). |
przysięgły | Tłumaczenie przysięgłe (za stronę). |
naati | Tłumaczenie poświadczone NAATI (za stronę). |
| Wartość | Opis |
|---|---|
regularny | Standardowy czas realizacji. |
szybki | Szybka realizacja. |
| Wartość | Adres | Opis |
|---|---|---|
e-mail | NIE | Dostawa cyfrowa pocztą elektroniczną (bezpłatna). |
notarialnie potwierdzony adres e-mail | NIE | Poświadczona notarialnie dostawa cyfrowa. |
standard_poczty | Tak | Poczta tradycyjna; wysyłka do obsługiwanych krajów. |
mail_next_day | Tak | Przesyłka pocztowa następnego dnia roboczego (tylko adresy w USA). |
Zamiast sondowania, skonfiguruj punkt końcowy webhooka, aby odbierać zdarzenia w momencie ich wystąpienia. Ustaw swój adres URL i wyświetl swój klucz podpisu w Ustawieniach firmowych → Webhooki . Webhooki to wygoda — pobranie zamówienia jest zawsze autoryzowane.
| Wydarzenie | Wysłane kiedy |
|---|---|
status_zamówienia | Zmiana statusu zamówienia. |
recenzja_klienta | Zamówienie jest wycenione i czeka na Twoją akceptację (tylko w trybie akceptacji). |
dostawa_dokumentu | Przetłumaczone dokumenty są już gotowe i zawierają adresy URL umożliwiające pobranie. |
płatność_nieudana | Nie można pobrać opłaty za zatwierdzone zamówienie — niesie ze sobą awaria blok (powód, wiadomość). Zaktualizuj kartę portfela i zatwierdź ponownie. |
wstrzymanie_kredytu | Zatwierdzone zamówienie przekroczy Twój limit kredytowy — niesie ze sobą wstrzymanie_kredytu blok (wiadomość). Rozlicz faktury lub poproś o wyższy limit. |
Każda przesyłka ma taką samą kopertę: wydarzenie blok (w tym tryb na żywo) i wydarzenie specyficzne dla danego wydarzenia dane blok.
{
"event": {
"type": "order_status",
"id": "evt_9b1c...",
"livemode": true,
"sent_at": "2026-08-28T10:20:00+00:00"
},
"data": {
"order": {
"id": "9b1c2d3e-...-uuid",
"reference": "APO-10432",
"status": "completed"
}
}
}
Ten dostawa_dokumentu wydarzenie dodaje dokumenty tablica (każda z nazwa, adres_url_pobierania, wersja, status) i portal łącze. recenzja_klienta wydarzenie dodaje wyszczególniony wycena blok i działania.zatwierdź obiekt z adresem URL do wywołania.
Każde żądanie jest podpisane, dzięki czemu możesz potwierdzić, że pochodzi od Rapid Translate Wysyłamy trzy nagłówki:
| Chodnikowiec | Wartość |
|---|---|
X-RapidTranslate-Podpis | sha256=<hmac> |
X-RapidTranslate-Znacznik czasu | Znak czasu Unix używany w podpisie |
Wydarzenie X-RapidTranslate | Unikalny identyfikator zdarzenia |
Oblicz oczekiwany podpis jako HMAC‑SHA256 ciągu "{znacznik czasu}.{surowa_treść_żądania}" używając tajnego klucza podpisu webhooka, a następnie porównaj go z wartością nagłówka:
// PHP
$expected = 'sha256=' . hash_hmac(
'sha256',
$timestamp . '.' . $rawBody,
$webhookSecret
);
$valid = hash_equals($expected, $signatureHeader);
Node.js (Express) — zamontuj trasę za pomocą surowego parsera treści, aby zachować dokładne bajty:
// app.use('/webhooks/rapidtranslate', express.raw({ type: 'application/json' }))
const crypto = require('crypto');
const timestamp = req.get('X-RapidTranslate-Timestamp');
const received = req.get('X-RapidTranslate-Signature'); // "sha256=..."
const rawBody = req.body; // Buffer, untouched
const expected = 'sha256=' + crypto
.createHmac('sha256', WEBHOOK_SECRET)
.update(`${timestamp}.${rawBody}`)
.digest('hex');
const valid = received &&
crypto.timingSafeEqual(Buffer.from(received), Buffer.from(expected));
Są trzy rzeczy, które ludziom przeszkadzają:
X-RapidTranslate-Podpis nagłówek zawiera sha256= prefiks. Porównaj z 'sha256=' + twójHmac (jak powyżej) lub usuń prefiks przed porównaniem — nie dopasowuj gołego kodu szesnastkowego do całego nagłówka.hash_equals / crypto.timingSafeEqual), nigdy z == Lub ===.Ten {znacznik czasu} jest częścią podpisanego ciągu, więc odczytaj go z nagłówka i dodaj przed haszowaniem. Pozwala to również odrzucać nieaktualne lub powtarzane przesyłki — np. te ze znacznikiem czasu starszym niż pięć minut.
Nieudane dostawy są ponawiane z wykładniczym opóźnieniem (do 5 prób). Odpowiedz 2xx status potwierdzenia odbioru.