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 バイトです。返却条件は後述します。
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"
}'
HTTP 200:
{
"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"
}
順次送信した重複リクエストでは割当は重複消費されません。比較時は大文字小文字、末尾のスラッシュ、既定の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"}}
{"request_id":"invalid-domain","error":{"code":27600,"message":"INVALID_DOMAIN"}}
{"request_id":"qps-example","error":{"code":23010,"message":"Rate limit exceeded for the API"}}










