Logo Site EngageLab Full Black
営業担当に相談する

Web サイトドメイン追加 API

VIP WebPush アプリにドメインを 1 件追加します。SDK、Service Worker の配置とユーザーの許可は別途必要です。

同じデータセンターの AppKey と MasterSecret で Basic 認証を行います。必須の domain は portalweb の保存検証を基本とし、https:// を明示して小文字のみで指定します。ドメインと IPv4 は数値ポートの有無にかかわらず受け付け、IPv6 は拒否します。確認済みの受入規則ではポート 65536 も受け付けるため、65535 を受付上限としません。0 と先頭ゼロのポートは拒否します。末尾の単独の / は受け付け、重複判定ではスラッシュなしと同一視します。/page などのパス、クエリ、フラグメント、空白、localhost(サブドメインや末尾のドットを含む)、HTTP、ワイルドカードは拒否します。IPv4 は形式のみ検証し、用途制限や DNS、到達性、証明書の検査は行いません。有効な入力はそのまま保存します。request_id は任意で最大 128 バイトです。返却条件は後述します。

Basic Auth

POST /v4/web/domains

DC Base URL
Singapore https://webpushapi-sgp.engagelab.com
Hong Kong https://webpushapi-hk.engagelab.com
Frankfurt https://webpushapi-defra.engagelab.com
Virginia https://webpushapi-usva.engagelab.com
curl -X POST https://webpushapi-sgp.engagelab.com/v4/web/domains \ -u APP_KEY:MASTER_SECRET \ -H "Content-Type: application/json" \ -d '{ "domain": "https://shop-001.example.com", "request_id": "req-001" }'
              
              curl -X POST https://webpushapi-sgp.engagelab.com/v4/web/domains \
  -u APP_KEY:MASTER_SECRET \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "https://shop-001.example.com",
    "request_id": "req-001"
  }'

            
このコードブロックはフローティングウィンドウ内に表示されます

HTTP 200:

{ "request_id": "req-001", "domain_id": "wd_<sha256>", "domain": "https://shop-001.example.com", "integration_status": "pending", "config_status": "ready" }
              
              {
  "request_id": "req-001",
  "domain_id": "wd_<sha256>",
  "domain": "https://shop-001.example.com",
  "integration_status": "pending",
  "config_status": "ready"
}

            
このコードブロックはフローティングウィンドウ内に表示されます

integration_status: pending / integrated. config_status: ready (pending: reserved).

HTTP Code Message
400 21003 Invalid request
400 23010 Rate limit exceeded for the API
400 27600 INVALID_DOMAIN
400 27601 DOMAIN_ALREADY_EXISTS
403 27602 DOMAIN_ADD_FORBIDDEN
403 27603 DOMAIN_QUOTA_EXCEEDED
401 21004 Authentication failed
503 21030 Retry the same domain
{ "error": { "code": 27601, "message": "DOMAIN_ALREADY_EXISTS" }, "request_id": "req-001", "domain_id": "wd_<sha256>", "domain": "https://shop-001.example.com", "integration_status": "pending", "config_status": "ready" }
              
              {
  "error": {
    "code": 27601,
    "message": "DOMAIN_ALREADY_EXISTS"
  },
  "request_id": "req-001",
  "domain_id": "wd_<sha256>",
  "domain": "https://shop-001.example.com",
  "integration_status": "pending",
  "config_status": "ready"
}

            
このコードブロックはフローティングウィンドウ内に表示されます

順次送信した重複リクエストでは割当は重複消費されません。比較時は大文字小文字、末尾のスラッシュ、既定の443ポートを区別しません。新しいドメインは検証済みの小文字ホスト名と指定したポートを保持します。既存ドメインの保存形式と接続状態は保持されます。重複時は HTTP 400 と既存情報を返します。API はコンソールと割当を共有します。追加は順次実行し、コンソールでの同時変更を避けてください。同時書き込みは互いに上書きする場合があります。設定の反映は従来のコンソールの動作に従い、遅延する場合があります。API 操作はサービスログに記録され、コンソールの操作履歴には表示されません。タイムアウトや 5xx の後は同じドメインで再試行してください。削除、変更、一括追加、割当購入は非対応です。この API は deviceapi の既存のアプリケーション QPS 割当を使用し、未設定の場合はシステムの既定値を使用します。AppKey と API ごとに個別に計数し、重複リクエストも QPS を消費します。上限を超えると HTTP 400、コード 23010(Rate limit exceeded for the API)を返します。バックオフしてから再試行してください。

リクエスト検証、エラーコードと request_id の返却

本文の上限は 4 KiB です。domain は空でない文字列が必要です。未指定、null、空文字列、数値、真偽値、配列、オブジェクト、不正または複数の JSON、本文上限超過、request_id の 128 バイト超過は HTTP 400 / 21003 Invalid request を返し、request_id は含みません。空でない文字列がドメイン形式の検証に進み、形式が不正な場合は HTTP 400 / 27600 INVALID_DOMAIN を返します。

構造検証に成功した後、有効で空でない request_id は後続の業務レスポンスにそのまま返されます。27600、27601、QPS 制限の 23010 も対象です。未指定または空の場合はフィールドを省略します。本文解析前に不正な Basic 認証ヘッダーで拒否された場合も request_id は返しません。

QPS 制限はアプリの app_qps を使用し、未設定または 0 の場合は業務の既定値に戻ります。全アプリ共通の固定値ではありません。AppKey + /v4/web/domains ごとに計数し、重複リクエストも QPS を消費します。制限の判定はドメイン重複確認より先です。超過時は HTTP 429 ではなく HTTP 400 / 23010 Rate limit exceeded for the API を返します。バックオフして再試行してください。

{"error":{"code":21003,"message":"Invalid request"}}
              
              {"error":{"code":21003,"message":"Invalid request"}}

            
このコードブロックはフローティングウィンドウ内に表示されます
{"request_id":"invalid-domain","error":{"code":27600,"message":"INVALID_DOMAIN"}}
              
              {"request_id":"invalid-domain","error":{"code":27600,"message":"INVALID_DOMAIN"}}

            
このコードブロックはフローティングウィンドウ内に表示されます
{"request_id":"qps-example","error":{"code":23010,"message":"Rate limit exceeded for the API"}}
              
              {"request_id":"qps-example","error":{"code":23010,"message":"Rate limit exceeded for the API"}}

            
このコードブロックはフローティングウィンドウ内に表示されます
Icon Solid Transparent White Qiyu
営業担当に相談する