メインコンテンツまでスキップ

2.1 全体説明

2.1.1 アクセスアドレス

テスト環境
本番環境https://api.racent.com/

2.1.2 インターフェース署名認証

インターフェースはAPI署名ベースの認証メカニズムを採用しており、リクエストの完全性とセキュリティを確保します。インターフェースを呼び出すたびに署名パラメータを付与する必要があり、サーバー側で署名の正当性を検証します。

共通パラメータ

以下のパラメータは、すべての インターフェースリクエストのQuery Stringに含める必要があります:

パラメータ名パラメータ型説明サンプル値
access_keyStringアカウントID。呼び出し元の識別に使用します1000000059
signature_nonceString署名用の一意な乱数。リプレイ攻撃防止のため、
リクエストごとに異なる乱数値を使用する必要があります
2206561-6450-430e-8b0a-26980754c0de
timestampStringリクエスト送信時のタイムスタンプ(単位:秒)1673418729
signature_versionString署名アルゴリズムのバージョン。固定値「1.0」1.0
signature_methodString署名アルゴリズム。固定値「md5」md5
signatureString今回のリクエストの署名値。他のパラメータと秘密鍵から算出します85ef54421c69edeb098c7b557c6c5cd5
説明:
  • access_keyAccessSecret(秘密鍵)は、ログイン後に インターフェース管理-APIアクセス認証情報 から取得できます。
  • signature_nonce 毎回のリクエストが一意になるよう、UUIDまたは十分にランダムな文字列の使用を推奨します。
  • timestamp サーバー時刻との差が一定範囲(例:5分)を超えるリクエストは拒否されます。

署名メカニズム

ステップ1:正規化されたリクエスト文字列を構築する

1.パラメータのソート

すべての共通パラメータ(signature を除く)とインターフェースカスタムパラメータを、パラメータ名の辞書順昇順で並べ替えます。

2.パラメータのエンコード

各パラメータの名前と値を UTF-8 でエンコードし、RFC3986 ルールに従ってURLエンコードを行います:

  • エンコードしない文字:A-Z a-z 0-9 - _ . ~
  • その他の文字(スペース/?=など)は%XX形式にエンコードする必要があります。例えばスペースは%20にエンコードされます。
3.パラメータの連結
  • エンコード後のパラメータ名とパラメータ値を = で連結します
  • すべてのパラメータペアを & で連結し、辞書順を維持します

最終的に得られる文字列をstringToSignと呼びます。


ステップ2:署名文字列を構築して署名を計算する

リクエストタイプに応じて、署名の計算方法は以下の通りです:

GET 请求
signature = md5(AccessSecret + md5( HTTPMethod + stringToSign ))
POST / PUT 请求(含 Body 参数)
signature = md5(AccessSecret + md5( HTTPMethod + stringToSign ) + md5( jsonStringToBody ))
説明:
  • HTTPMethod は大文字で指定する必要があります。例:GET、POST
  • jsonStringToBody はリクエストBodyの元のJSON文字列です(スペースと改行を除去し、フィールドをソートする必要があります)
  • 数式内の + は文字列の連結を意味し、計算には使用されません

パラメータエンコーディング規則(RFC3986)

文字種別処理方法
A-Z, a-z, 0-9, -, _, ., ~エンコードしないabc123abc123
スペース%20 としてエンコードa ba%20b
その他の ASCII 文字%XX(16進数)としてエンコード"%22

GETリクエストの例

前提:

  • access_key = "1000000059"
  • AccessSecret = "19938c89c13ddf5da7636333a5aa4c0e"
  • signature_nonce = "iobzx72w63"
  • timestamp = "1755597512"

ステップ1: stringToSignを構築する

access_key=1000000059&signature_method=md5&signature_nonce=iobzx72w63&signature_version=1.0&timestamp=1755597512

Step2: 署名の計算

temp = md5("GET" + stringToSign)  // 结果为"9bc92e0f3e239dc628ebc416294422ba"
signature = md5(AccessSecret + temp) // 结果为"a33bdb81ea79eb4ebbac9da043309c00"

最終リクエストURL:

https://api.racent.com/api/v1/domain/tld?access_key=1000000059&signature_nonce=iobzx72w63&timestamp=1755597512&signature_version=1.0&signature_method=md5&signature=a33bdb81ea79eb4ebbac9da043309c00

POST リクエストの例(Body を含む)

Body が以下の内容であると仮定します:

{"domain":"example.com"}

その MD5 値は次のとおりです:640c69595341436be9b0d1516d3d37ac

Step1: stringToSign を作成する

access_key=1000000059&signature_method=md5&signature_nonce=abjipo5ar5a&signature_version=1.0&timestamp=1755598851

Step2: 署名の計算

temp = md5("POST" + stringToSign)  // 结果为 "5aba63e4af1b7a4080eaf47d0fc56efe"
signature = md5(AccessSecret + temp + "640c69595341436be9b0d1516d3d37ac") // 结果为 "29487fd8ae5b828415d05b691caf015c"

最終的なリクエストURL:

https://api.racent.com/v1/domain/query-domain?access_key=1000000059&signature_nonce=abjipo5ar5a&timestamp=1755598851&signature_version=1.0&signature_method=md5&signature=29487fd8ae5b828415d05b691caf015c

2.1.3 インターフェースのレート制限

デフォルトのレート制限ルールでは、同一ユーザーによる同一インターフェースへのアクセスについて、以下の回数制限が適用されます:

  • 1分あたり60回
  • 1時間あたり500回
  • 1日あたり1000回

2.1.4 インターフェース戻りパラメータ

パラメータの説明

パラメータ名パラメータ型説明サンプル値
dataObject業務データ。インターフェースがエラーを返した場合、値はnullとなります
codeIntエラーコード。成功時は0を返し、エラー時は対応するエラーコードを返します010001001
messageStringエラー内容の説明情報。インターフェースが成功した場合は"Success"を返しますover-rate-limit
errorsObject一部のエラーでは、このフィールドを通じてより具体的なエラーの説明が提供されます
request_idStringリクエストID。主に問題の調査を支援するために使用されます039ecdca-44d5-430f-8521-020f4953bcc5