Facebook画像
3時間10分31秒
開発者向けドキュメント

Rapid Translate API

認証済み文書翻訳の注文をプログラムで発注・追跡できます。HTTPS経由のREST APIは、ベアラートークンで認証され、JSON形式で結果を返します。すべてのイベントに対して署名付きWebhookが提供されます。

ベースURL https://www.rapidtranslate.org/api/v1
バージョン v1
形式 JSON
create-order.sh
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へのアクセスは組織アカウントでのみ可能です。ダッシュボードでビジネスを追加し、 「ビジネス設定」→「APIキー」からキーを生成してください。ビジネスアカウントをお持ちでない場合は、 support@rapidtranslate.orgまでお問い合わせください。

郵便配達人コレクション

コードを書く前にAPIを実際に操作してみたいですか?Postmanコレクションには、認証情報、サンプルボディ、クエリパラメータなど、すべてのエンドポイントが事前に設定されています。

Postmanコレクションをダウンロード

  1. Postmanで、 「ファイル」→「インポート」を選択し、ダウンロードしたファイルを選択します。
  2. コレクションを開く 変数 そして設定する apiKey キーから ビジネス設定 → APIキー.
  3. (オプション)設定 ベースURL お使いの環境に合わせて、デフォルトでは本番環境に設定されています。
  4. リクエストを送信してください。サンドボックスキーを使用すると、課金対象となる注文を行わずにテストできます。

認証

すべてのリクエストを秘密の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-Signaturesha256=<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進数をヘッダー全体と比較しないでください。
  • 受信したリクエスト本文をそのままハッシュ化してください。解析済みのJSONを再シリアル化すると、空白文字やキーの順序が変わってしまうため、署名が一致しなくなります。JSONミドルウェアが解析する前に、リクエスト本文を読み取ってください。
  • 定数時間で比較する(ハッシュイコール / 暗号タイミング安全等) 決して == または ===.

の {タイムスタンプ} これは署名付き文字列の一部なので、ヘッダーから読み取ってハッシュ化の前に追加します。また、古い配信や再配信された配信(例えば、5分以上前のタイムスタンプを持つ配信)を拒否することもできます。

失敗した配信は指数バックオフ(最大5回)で再試行されます。 2xx 受領確認のステータス。