サーバー間OAuth

APIリクエストを実行する際は、サーバー間OAuthを使用してWhoisXML APIの認証を行います。これは、認証や認可にユーザーの操作を必要としない2段階のプロセスであることから、two-legged OAuthとも呼ばれます。処理の流れは以下のとおりです。

  • サーバー間OAuthクライアントは、WhoisXML APIの認証サーバーにアクセストークンをリクエストします。
  • クライアントは、アクセストークンを使用してAPIリクエストを実行します。

Server-Side SSOでWHOIS APIを使用する方法の例については、GitHubのこちらのスクリプトもご覧ください。

アクセストークンの生成

accessToken グラントタイプを使用してアクセストークンを生成します。このグラントタイプの特徴は以下のとおりです。

  • トークンの有効期間は、1800秒(30分)、3600秒(1時間)、7200秒(2時間)、10800秒(3時間)のいずれかです。初期値は3600秒(1時間)です。
  • リフレッシュトークンはありません。
  • 複数のアクセストークンを生成して使用できます。
  • 新しいAPIキーが生成されると、それまでに生成されたすべてのアクセストークンが無効になります。
  • 生成されたアクセストークンは、アクセス権のあるすべての商品で使用できます。

生成された accessToken は、APIリクエストでは apiKey パラメータの代わりに使用されます。

APIエンドポイント

POST https://main.whoisxmlapi.com/oauth/token
curl --location 'https://main.whoisxmlapi.com/oauth/token' \
--header 'Authorization: Bearer %base64_encoded_API_key%' \
--header 'Content-Type: application/json' \
--data '{
    "grantType": "access_token",
    "expiresIn": 7200
}'

ヘッダー

認証

必須。Base64でエンコードされたAPIキー。

認証方式:Bearer

個人用APIキーは「My products」ページで取得できます。

入力パラメータ

grantType

必須。アクセストークンを生成するためのグラントタイプ。

指定可能な値:access_token。

expiresIn

任意。アクセストークンの有効期間(秒)。

指定可能な値:1800、3600、7200、10800。

初期値:3600。

outputFormat

任意。レスポンスの出力形式。

指定可能な値:JSON|XML

初期値:JSON

応答

{
    "accessToken": "G2OIE2AKRCVDYFUJCV5PXXXXXXXXXXXX",
    "expiresIn": 7200
}

レスポンスの accessToken の値を使用して、APIリクエストを認証します。OAuthを使用しない通常のAPIキーと同様に、取得した値を apiKey フィールドに指定してください。

エラー

{
    "code": 401,
    "messages": "Access restricted. Check the credits balance or enter the correct API key."
}
{
    "code": 422,
    "messages": {
        "grantType": [
            "The selected grant type is invalid."
        ]
    }
}

アクセストークンを使用したcURL WHOIS API GETリクエストの例

curl --location 'https://www.whoisxmlapi.com/whoisserver/WhoisService?domainName=google.com' \ --header 'Authorization: Bearer %accessToken%'

アクセストークンを使用したcURL WHOIS API POSTリクエストの例

curl --location 'https://www.whoisxmlapi.com/whoisserver/WhoisService' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer %accessToken%' \
    --data '{
        "domainName": "google.com"
    }'