Logo Site EngageLab Full Black
Ventas

API para añadir un dominio web

Añade un dominio a una aplicación WebPush VIP. El SDK, el Service Worker y el permiso del usuario se configuran por separado.

Usa Basic Auth con AppKey y MasterSecret en el centro de datos correcto. domain es obligatorio, usa la validación de guardado de portalweb como base y exige https:// explícito y solo minúsculas. Se admiten dominios e IPv4 con o sin puerto numérico; IPv6 se rechaza. Las reglas confirmadas aceptan también el puerto 65536: 65535 no es un límite de admisión. Se siguen rechazando 0 y los ceros iniciales. Se permite una / raíz final, equivalente a la forma sin barra al comprobar duplicados. Se rechazan segmentos como /page, consultas, fragmentos, espacios, localhost con subdominios y variantes con punto final, HTTP y comodines. IPv4 solo se comprueba por formato, sin restricciones de uso ni comprobaciones de DNS, accesibilidad o certificados. La entrada válida se guarda sin cambios. request_id es opcional, de hasta 128 bytes; las reglas de devolución se explican abajo.

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"
  }'

            
Este bloque de código se muestra en una ventana flotante

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"
}

            
Este bloque de código se muestra en una ventana flotante

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"
}

            
Este bloque de código se muestra en una ventana flotante

Los duplicados enviados de forma secuencial no consumen cuota adicional. La comparación ignora mayúsculas, barras finales y el puerto predeterminado 443. Los dominios nuevos conservan el host validado en minúsculas y el puerto enviado. Los existentes conservan su forma almacenada y estado de integración. Los duplicados devuelven HTTP 400 con los datos existentes. La API utiliza la cuota de la consola. Envía las solicitudes de forma secuencial y evita cambios simultáneos en la consola; las escrituras concurrentes pueden sobrescribirse. La configuración sigue el proceso habitual de la consola y puede tardar en aplicarse. Las operaciones de API se registran en los registros del servicio, sin entrada en el historial de operaciones de la consola. Tras un tiempo de espera o 5xx, reintenta el mismo dominio. No se ofrecen eliminación, modificación, altas por lotes ni compra de cuota. Esta API reutiliza la cuota QPS de la aplicación configurada en deviceapi; si no está configurada, usa el valor predeterminado del sistema. El recuento es independiente por AppKey y API; las llamadas duplicadas también consumen QPS. Al superar el límite, devuelve HTTP 400 con el código 23010 (Rate limit exceeded for the API). Reintenta más tarde con espera progresiva.

Validación de solicitudes, códigos de error y request_id

El cuerpo de la solicitud admite hasta 4 KiB. domain debe ser una cadena no vacía. Un valor ausente, null, vacío, numérico, booleano, matriz u objeto, JSON mal formado o múltiple, un cuerpo demasiado grande o request_id de más de 128 bytes devuelve HTTP 400 / 21003 Invalid request sin request_id. Una cadena no vacía cuyo formato de dominio sea inválido devuelve HTTP 400 / 27600 INVALID_DOMAIN.

Tras validar la estructura, un request_id válido y no vacío se devuelve sin cambios en las respuestas de negocio, incluidos 27600, 27601 y el error de límite QPS 23010. El campo se omite si falta o está vacío. Un encabezado Basic inválido rechazado antes de analizar el cuerpo tampoco devuelve request_id.

El límite usa app_qps de la aplicación y recurre al valor predeterminado del negocio si falta o vale 0; no existe un umbral fijo universal. El recuento es independiente por AppKey + /v4/web/domains. Los duplicados consumen QPS y el límite se comprueba antes de buscar dominios duplicados. Al superarlo se devuelve HTTP 400 / 23010 Rate limit exceeded for the API, no HTTP 429. Reintenta con espera progresiva.

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

            
Este bloque de código se muestra en una ventana flotante
{"request_id":"invalid-domain","error":{"code":27600,"message":"INVALID_DOMAIN"}}
              
              {"request_id":"invalid-domain","error":{"code":27600,"message":"INVALID_DOMAIN"}}

            
Este bloque de código se muestra en una ventana flotante
{"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"}}

            
Este bloque de código se muestra en una ventana flotante
Icon Solid Transparent White Qiyu
Contactar con ventas