認証済み文書翻訳の注文をプログラムで発注・追跡できます。HTTPS経由のREST APIは、ベアラートークンで認証され、JSON形式で結果を返します。すべてのイベントに対して署名付きWebhookが提供されます。
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
}
のRapid Translate APIを利用することで、アプリケーションから認証翻訳の依頼文書を送信し、最新のステータスと料金を取得し、完了したファイルを受け取ることができます。お客様のチームが弊社の決済システムに触れる必要はありません。このAPIは、顧客に代わって翻訳を依頼する企業向けに設計されています。
すべてのリクエストは https://www.rapidtranslate.org/api/v1 HTTPS経由。リクエストとレスポンスはJSON形式ですが、注文作成ではファイルをアップロードします。 multipart/form-dataすべての金額は以下のように返されます 整数セント 金額は米ドル建てで、タイムスタンプはすべてUTC ISO-8601です。
コードを書く前にAPIを実際に操作してみたいですか?Postmanコレクションには、認証情報、サンプルボディ、クエリパラメータなど、すべてのエンドポイントが事前に設定されています。
apiKey キーから ビジネス設定 → APIキー.ベースURL お使いの環境に合わせて、デフォルトでは本番環境に設定されています。すべてのリクエストを秘密のAPIキーをベアラートークンとして使用して認証し、JSONレスポンスを要求してください。以下の2つのヘッダーは必須です。
認証: Bearer YOUR_API_KEY 承認: application/json
ダッシュボードの「ビジネス設定」→「APIキー」でキーを生成およびローテーションできます。キーは作成時に一度表示され、ハッシュ化されて保存されます。キーを紛失した場合は、ローテーションしてください。各キーは1つのモード(ライブまたはサンドボックス)に属し、固定されたスコープセットを持ちます。
各エンドポイントには、キーに対する特定の権限が必要です。必要なスコープを持たないキーは、 403 禁止範囲.
| 範囲 | 助成金 |
|---|---|
注文:書き込み | 注文の作成と承認 |
注文:読み取り | 注文を取得して一覧表示する |
価格:読む | 価格表をご覧ください |
テストモードはアカウントではなく、キーの特性です。サンドボックスキーは完全にシミュレートされた環境で実行され、ライブキーは実際の課金対象となる注文を行います。両方を同時に使用することも可能です。
サンドボックス注文では、同じ検証、フィールドマッピング、実際の価格設定が使用されますが、ファイルストレージ、OCR、およびフルフィルメントはスキップされます。作成時に、サンドボックス注文は自動的にライフサイクルをたどります(処理中 → 完了) 実際の注文と同じウェブフックを発火させ、最終的に静的なサンプルドキュメントを配信します。
すべてのレスポンスとウェブフックには ライブモード フラグを設定することで、キーを検査せずに統合処理を分岐させることができます。
ライブモード: true — 実際の請求対象注文ライブモード: false — サンドボックス/テスト注文リクエストは組織ごとにレート制限されています。デフォルトの許容値は 1分あたり120件のリクエストそれを超過すると 429 レート制限; 少し待ってから再試行します。統合でより高い制限が必要な場合は、お問い合わせください。 support@rapidtranslate.org.
すべての成功した応答はペイロードを データ キー。エンドポイントのリストを追加します メタ ページネーション付きのブロック。
{
"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
}
}
エラーは標準の HTTP ステータス コードを使用し、安定した機械可読な値を返します。 エラーコード 人間のメッセージと並んで。検証エラーはフィールドキーを追加します エラー 物体。
{
"message": "The given data was invalid.",
"error_code": "validation_failed",
"errors": {
"source_language": ["The selected source language is invalid."]
}
}
| HTTP | エラーコード | 意味 |
|---|---|---|
| 400 | 要求の形式が正しくありません | リクエストボディの形式が不正です |
| 401 | 認証されていない | キーが見つからない、無効、または取り消されています |
| 402 | 支払い失敗 | 注文は承認されましたが、支払いが回収できませんでした |
| 402 | クレジット保留 | ご注文金額がお客様のクレジット限度額を超えています |
| 403 | 禁止範囲 | キーに必要な範囲が欠けている |
| 403 | アカウント停止 | 未払い請求書のため組織が活動停止処分を受ける |
| 404 | 見つかりません | この組織にはそのような命令はありません |
| 409 | 重複参照 | 別の注文で参照が再利用されました |
| 409 | 承認待ちではない | ご注文は承認待ちではありません |
| 422 | 検証失敗 | 欠落または無効なフィールド |
| 429 | レート制限あり | レート制限を超過しました |
| 500 | サーバーエラー | 予期しないサーバーエラー |
| 503 | 処理失敗 | 下流処理(OCR/価格設定)が失敗しました |
注文の 状態 安定したライフサイクルに従います。これらの 5 つの価値観は、 状態 フィルター リスト注文:
| 状態 | 意味 |
|---|---|
保留中 | 受領しました。価格はまだ確定していません。 合計 多分 ヌル. |
承認待ち | 価格が表示され、合計金額の承認をお待ちしています(承認が必要な場合のみ)。 |
処理 | 承認済み、有効です。翻訳作業中です。 |
完了 | 完了しました。翻訳済みの文書が利用可能です。 |
キャンセル | 注文はキャンセルされました。 |
注文処理中は、より詳細なラベル(例: 翻訳者に割り当てられました, 翻訳, 発送済み)も表示されることがあります。承認が必要な場合、命令書には簡潔に報告されることがあります。 支払い失敗 または クレジット保留 料金の徴収ができなかった場合は、支払い方法を見直して再度承認してください。
得る /言語
サポートされているすべての言語を返します。 名前 値をそのまま ソース言語 / 対象言語 注文を作成する際、注文はコードではなく言語名に基づいて照合されます。
認証キーが必要です。
curl https://www.rapidtranslate.org/api/v1/languages \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
{
"data": [
{ "code": "english-uk", "name": "English (UK)", "active": true },
{ "code": "spanish", "name": "Spanish", "active": true }
]
}
得る 価格
ご注文の請求に適用される米国基準料金表(米ドル)を返します。金額は小数点以下の文字列です。価格は以下のようにグループ化されています。 翻訳 タイプ(それぞれ 通常 そして 急速な パー-ユニット 価格)、 配達 方法、および アポスティーユ —注文を作成する際に送信する値と同じです。
範囲: 価格:読む
{
"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" }
}
}
誓約価格。 宣誓翻訳の料金は言語ペアごとに設定されています。 言語ペア 宣誓資格のあるペアをすべてリストし、 通常/急速な 価格。英語のバリエーション(英語(米国/英国/オーストラリア/カナダ))はすべて受け入れられ、各ペアは、特定の条件を満たさない限り、双方向で機能します。 「双方向」: 偽.
役職 /注文
翻訳オーダーを作成し、ソースファイルをアップロードします。ファイルを扱うため、このエンドポイントは multipart/form-data (JSONではありません)。ネストされたフィールドは角括弧表記を使用します。例: 顧客[名前].
範囲: 注文:書き込み
| 分野 | タイプ | 注記 |
|---|---|---|
参照 | 文字列(必須) | あなた専用の固有の順序参照です。これを再利用すると、既存の順序が返されます(冪等性を参照)。 |
顧客[名前] | 文字列(必須) | 最終顧客の氏名(フルネーム) |
顧客[メールアドレス] | 文字列(必須) | エンドユーザーのメールアドレス。 |
ソース言語 | 文字列(必須) | 正確な表現 名前 から 言語一覧. |
対象言語 | 文字列(必須) | 正確な表現 名前 から 言語一覧. |
翻訳タイプ | 文字列(必須) | の 1 つ 認定済み, 標準, 専門, 宣誓した, ナーティ. |
振り向く | 文字列(必須) | 通常 または 急速な. |
配送[方法] | 文字列(必須) | の 1 つ メール, 公証済みメール, メール標準, 翌日配送. |
配達先[住所][...] | 物体 | 必要 メール標準 / 翌日配送: 通り, 市, 郵便番号, 国 (州 (任意)。 国 ISOコードです。例: 私たち. |
アポスティーユ[有効] | ブール値 | アポスティーユ認証手続きを追加してください。詳細は下記の規則をご覧ください。 |
アポスティーユ[文書] | 整数 | アポスティーユ認証を行う文書の数。有効にする場合は必須です。 |
アポスティーユ[渡航先国] | 弦 | アポスティーユが発行される国。 |
メモ | 弦 | 自由記述式の説明。 |
クーポンコード | 弦 | 適用する割引コード。明らかに無効または適用できないコードは作成時に拒否されます。 422 検証失敗割引額自体は、注文価格が確定した時点で確定します(下記の注記を参照)。 |
ファイル[] | ファイル[]必須 | ファイル数は1~20個。対応ファイル形式:pdf、jpg、jpeg、png、doc、docx、tiff、heic。各ファイルの最大サイズは20MB。 |
参照 組織ごとに固有です。 参照 既存の注文を返します 200 複製を作成する代わりに(新しい注文が返されます) 201)
メール標準 配送方法。 翌日配送 米国国内の住所のみ対象です。
curl -X POST https://www.rapidtranslate.org/api/v1/orders \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json" \ -F "reference=APO-10432" \ -F "customer[name]=Jane Doe" \ -F "customer[email]=jane@example.com" \ -F "source_language=Spanish" \ -F "target_language=English (US)" \ -F "translation_type=certified" \ -F "turnaround=regular" \ -F "delivery[method]=email" \ -F "files[]=@/path/to/birth-certificate.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"
}
}
新たに作成された注文は次のように始まります 保留中 と共に ヌル 価格計算中の合計金額。アンケート 注文を取得する または耳を澄ませて 注文ステータス 価格とステータスの更新を確認するためのウェブフック。
クーポン。 A クーポンコード は 2 段階でチェックされます。作成時に、ドキュメントの長さに依存しないもの (コードの有効性、使用制限、適用される翻訳/サービスの種類) を検証し、不正なコードは即座に拒否します。ページ数/単語数 (および割引額自体) に依存するルールは、ドキュメントがカウントされた後に解決されるため、割引は に表示されます。 価格 合計、初期値ではない 保留中 回答:数量が判明した時点でクーポンが適用されないことが判明した場合でも、注文は通常価格で処理され、弊社チームが確認するためにフラグが立てられます。
得る /orders/{id}
単一の注文をフェッチします ID (作成時に返されたUUID)。 404 見つかりません その注文があなたの組織のものでない場合。
範囲: 注文:読み取り
curl https://www.rapidtranslate.org/api/v1/orders/9b1c2d3e-...-uuid \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
得る /注文
組織の注文を新しい順でページネーション付きで返します。 メタすべてのクエリパラメータはオプションです。
範囲: 注文:読み取り
| クエリ | 注記 |
|---|---|
状態 | の 1 つ 保留中, 承認待ち, 処理, 完了, キャンセル. |
参照 | 参照番号で絞り込みましょう。 |
ソース言語 / 対象言語 | 言語名で絞り込む。 |
作成元 / 作成者 | 日付範囲(両端を含む)。 |
選別 | -作成日時 (デフォルト、最新順)または 作成日時 (古い順) |
ページあたり | 1~100。デフォルトは標準ページサイズです。 |
ページ | ページ番号。 |
curl "https://www.rapidtranslate.org/api/v1/orders?status=completed&per_page=50" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
役職 /orders/{id}/approve
計算された注文の合計金額を承認します。 承認待ち実行に移すには、この操作が必要です。これは、作業開始前にアカウントの承認が必要な場合にのみ必要です。この呼び出しは冪等です。
範囲: 注文:書き込み
curl -X POST https://www.rapidtranslate.org/api/v1/orders/9b1c2d3e-...-uuid/approve \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
成功すると、更新された注文が返されます。注文が承認待ちでない場合は、 409 承認待ちではありません; 料金が必要なのに失敗した場合、 402 支払い失敗 または 402 クレジット保留.
注文作成時に受け入れられる固定セット。
| 価値 | 説明 |
|---|---|
認定済み | 認証翻訳(ページ単位の料金)。 |
標準 | 標準翻訳(単語数に応じた料金設定)。 |
専門 | 専門翻訳/エキスパート翻訳(1ページあたり)。 |
宣誓した | 宣誓翻訳(1ページあたり) |
ナーティ | NAATI 認定翻訳 (ページごと)。 |
| 価値 | 説明 |
|---|---|
通常 | 標準的な納期です。 |
急速な | 迅速な対応。 |
| 価値 | 住所 | 説明 |
|---|---|---|
メール | いいえ | 電子メールによるデジタル配信(無料)。 |
公証済みメール | いいえ | 公証済みのデジタル配信。 |
メール標準 | はい | 郵送物。対応国へ発送します。 |
翌日配送 | はい | 翌営業日配達(米国住所のみ)。 |
ポーリングの代わりに、イベントが発生した時点で受信するWebhookエンドポイントを設定してください。URLを設定し、署名シークレットを確認するには、 「ビジネス設定」→「Webhook」をご覧ください。Webhookは便利な機能ですが、注文の取得は常に正式なものです。
| イベント | 送信時 |
|---|---|
注文ステータス | 注文のステータスが変更されました。 |
クライアントレビュー | ご注文は価格が確定し、お客様の承認をお待ちしております(承認モードのみ)。 |
文書配達 | 翻訳済みの文書が完成し、ダウンロードURLも用意されています。 |
支払い失敗 | 承認された注文の料金は徴収できませんでした。 失敗 ブロック (理由, メッセージウォレットカードを更新して、再度承認してください。 |
クレジット保留 | 承認された注文はあなたのクレジット限度額を超えます - は クレジット保留 ブロック (メッセージ請求書の支払いを行うか、限度額の引き上げを申請してください。 |
すべての配達物には同じ封筒が入っています。 イベント ブロック(含む) ライブモード)そしてイベント固有の データ ブロック。
{
"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"
}
}
}
の 文書配達 イベントは 文書 配列(それぞれ 名前, ダウンロードURL, バージョン, 状態)そして ポータル リンク。 クライアントレビュー イベントは項目を追加します 価格設定 ブロックと アクションを承認する 呼び出し先のURLを含むオブジェクト。
各リクエストには署名が付いているので、誰から来たのか確認できますRapid Translate 3つのヘッダーを送信します。
| ヘッダ | 価値 |
|---|---|
X-RapidTranslate-Signature | sha256=<hmac> |
X-RapidTranslate-Timestamp | 署名に使用されるUnixタイムスタンプ |
X-RapidTranslate-Event | 固有のイベントID |
文字列のHMAC-SHA256として期待される署名を計算します。 "{timestamp}.{raw_request_body}" ウェブフックの署名シークレットを使用して、ヘッダー値と比較します。
// PHP
$expected = 'sha256=' . hash_hmac(
'sha256',
$timestamp . '.' . $rawBody,
$webhookSecret
);
$valid = hash_equals($expected, $signatureHeader);
Node.js (Express) — 生のボディパーサーを使用してルートをマウントし、正確なバイト列を保持します。
// 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));
人々がつまずく3つのこと:
X-RapidTranslate-Signature ヘッダーは sha256= 接頭辞。比較対象 'sha256=' + yourHmac (上記のように)または比較する前にプレフィックスを削除します。むき出しの16進数をヘッダー全体と比較しないでください。ハッシュイコール / 暗号タイミング安全等) 決して == または ===.の {タイムスタンプ} これは署名付き文字列の一部なので、ヘッダーから読み取ってハッシュ化の前に追加します。また、古い配信や再配信された配信(例えば、5分以上前のタイムスタンプを持つ配信)を拒否することもできます。
失敗した配信は指数バックオフ(最大5回)で再試行されます。 2xx 受領確認のステータス。