Cree integraciones para Skysnag con tokens de API con permisos limitados.
Autentíquese con X-Api-Token Encabezado — no es autenticación Bearer. Todas las respuestas son JSON con formatos de error predecibles.
Descargar el entorno — Skysnag-API-v1.postman_environment.json (completado previamente con la URL base de esta aplicación: https://developers.skysnag.com/api/v1)
Importar ambos archivos en Postman → Importar → arrastra los archivos JSON o búscalos.
Configure su token — En el entorno, establezca api_token con su token completo de Tokens de API.
Ejecutar solicitudes — Comience con System → Health, luego Authentication → Get Me.
Pegue un token para habilitar la consola Pruébalo en los endpoints Obtener a continuación (solo lectura). Las solicitudes se ejecutan contra su cuenta en producción en https://developers.skysnag.com/api/v1. El token se guarda solo en este navegador (localStorage) y nunca se envía a ningún otro lugar excepto a esta API.
Clave no establecida
URL base y encabezados
Todas las rutas v1 son relativas a la URL base indicada a continuación.
https://developers.skysnag.com/api/v1
https://api.skysnag.com/v1
Encabezado
Valor
Notas
Aceptar
application/json
Siempre
Tipo de contenido
application/json
al enviar un cuerpo
X-Api-Token
Su token de API
Puntos finales protegidos
X-Request-Id
UUID (opcional)
Correlacionar registros; reflejado en errores
Respuestas
Success payloads are wrapped in a data envelope.
JSON — envoltorio de éxito
{
"data": { ... }
}
JSON — GET /health
{
"data": {
"status": "ok",
"version": "v1"
}
}
Errores
Errors return a stable code, human message, and request_id for support.
Each token is limited to 60 requests per minute by default.
Si se supera el límite, la API devuelve HTTP 429. Implemente un backoff exponencial. Póngase en contacto con el soporte para obtener límites más altos.
Permisos
Los tokens reciben permisos con alcance. Los endpoints rechazan las solicitudes cuando falta el alcance requerido.
API v1 scopes
Alcance
Descripción
account:read
Read account and token metadata
me:read
Read current user profile, permissions, domains, and security
me:write
Update current user profile
users:read
List account users and domain access
users:write
Create, update, and delete account users
tokens:read
List active API tokens
tokens:write
Create and revoke API tokens
domains:read
List and read domains
domains:write
Create, update, and delete domains
Legacy scopes
Válido para tokens existentes de integraciones antiguas. No es necesario para los nuevos endpoints de autenticación v1.
Alcance
Descripción
email-trust:read
Read DMARC/SPF/BIMI trust data
reports:read
Read aggregate and compliance reports
integrations:read
Read integration settings
integrations:write
Manage integrations
Referencia de la API
Documentación de los endpoints para la superficie v1 actual.
Revisión de salud
GET/health
Comprobación pública del estado. No se requiere autenticación.
Gestionar los miembros del equipo de la cuenta. Requiere que la cuenta autenticada sea la propietaria del equipo. Esquemas: users, roles, teams, domain_accesses, password_securities, webauthn_credentials, user_detail_changes_history.
GET/rolesusers:read
Enumera los roles que se pueden asignar al invitar o actualizar a miembros del equipo. Propietario, Administrador y Editor están excluidos.
GET/roles/{role_id}users:read
Obtener detalles de un solo rol asignable.
GET/usersusers:read
Listar usuarios de la cuenta en el equipo actual.
POST/usersusers:write
Crear una invitación para un miembro de la cuenta. De forma predeterminada se envía un correo electrónico de invitación.
GET/users/{user_id}users:read
Obtener detalles del usuario.
PATCH/users/{user_id}users:write
Actualizar datos del usuario.
DELETE/users/{user_id}users:write
Eliminar a un miembro del equipo.
PATCH/users/{user_id}/statususers:write
Alternar el estado del usuario. Cuerpo: {"enabled": true}
PATCH/users/{user_id}/roleusers:write
Cambiar rol. Cuerpo: {"role_id": 5}
PATCH/users/{user_id}/enforce-2fausers:write
Alternar la aplicación de la autenticación de dos factores (2FA). Cuerpo: {"enabled": true}
POST/users/{user_id}/reinvite-userusers:write
Reenviar el correo electrónico de invitación de la cuenta a un miembro del equipo existente.
GET/users/{user_id}/domainsusers:read
Listar accesos a dominios de un usuario.
API de gestión de dominios
Administrar dominios de la cuenta. Las operaciones de escritura requieren la cuenta del propietario del equipo. Esquemas: domains, domain_groups, domain_accesses, domain_states, domain_snapshot, parked_domains, license_domain, domains_services, cloudflare_records.
GET/domainsdomains:read
Enumera los dominios visibles para la cuenta. Admite page y limit.
POST/domainsdomains:write
Crear un dominio. Cuerpo: {"fqdn": "example.com", "parent_domain_id": null}
POST/domains/bulkdomains:write
Añadir dominios en bloque. Cuerpo: {"domains": ["example.com", "example.org"]}. Devuelve un ID de trabajo.
GET/domains/bulk/{job_id}domains:read
Obtener el estado del trabajo de adición masiva y los resultados por dominio.
GET/domains/{domain_id}domains:read
Obtener detalles del dominio, incluidos DNS y estado de verificación.
PATCH/domains/{domain_id}domains:write
Editar metadatos del dominio (grupo, estado, estado de incorporación, dominio padre)
DELETE/domains/{domain_id}domains:write
Eliminar un dominio y los registros alojados relacionados.
POST/domains/{domain_id}/verifydomains:write
Verificar los registros DNS del dominio. Campos opcionales del cuerpo: dmarc_record, spf_record, bimi_record, tls_rpt_record, mta_sts_record.
POST/domains/{domain_id}/check-dnsdomains:write
Realizar una consulta/comprobación DNS y almacenar el resultado para su recuperación.
Obtiene el último resultado de obtención de DNS almacenado por check-dns (caché durante 7 días). El cuerpo de la respuesta de check-dns ya incluye el resultado completo; use este endpoint para recuperarlo más tarde sin volver a ejecutar la comprobación.
GET/domains/{domain_id}/statusdomains:read
Obtener estado de verificación de protocolos (DMARC, SPF, MTA-STS, TLS-RPT, BIMI).
GET/domains/{domain_id}/servicesdomains:read
Obtener servicios adjuntos de envío de correo electrónico.
Organizar dominios en grupos. Los grupos son propiedad del equipo de la cuenta; se requiere un propietario del equipo para las operaciones de escritura.
GET/domain-groupsdomains:read
Listar grupos de dominios de la cuenta con el número de dominios.
POST/domain-groupsdomains:write
Crear un grupo de dominios. Cuerpo: {"name": "Production", "status": "active"} (status opcional).
GET/domain-groups/{group_id}domains:read
Obtener un único grupo de dominios.
PATCH/domain-groups/{group_id}domains:write
Editar un grupo de dominios. Cuerpo: {"name": "New name", "status": "active"} (ambos opcionales).
DELETE/domain-groups/{group_id}domains:write
Eliminar un grupo de dominios. Los dominios miembros se desagrupan, no se eliminan.
Eliminar un dominio del grupo (el dominio dejará de estar agrupado)
API DMARC alojada
Administre los registros DNS DMARC alojados por Skysnag, la política de aplicación, el historial y las recomendaciones para un dominio. Se requiere ser propietario del equipo para realizar operaciones de escritura.
GET/domains/{domain_id}/hosted-dmarcdomains:read
Devuelve el nombre del registro alojado, el valor, el estado de habilitación y la política actual.
Nivel de aplicación sugerido basado en las estadísticas de alineación y el período de supervisión.
API de SPF alojada
Gestionar registros SPF alojados en Skysnag, inclusiones (include), acciones de autorización de IP y flattening para un dominio. Se requiere ser propietario del equipo para operaciones de escritura.
GET/domains/{domain_id}/hosted-spfdomains:read
Devuelve el nombre/valor del registro SPF alojado, el registro que debe publicarse en su dominio, el estado de habilitación, el calificador terminal all y el número de consultas.
POST/domains/{domain_id}/hosted-spfdomains:write
Configure el registro SPF alojado por Skysnag para el dominio.
PATCH/domains/{domain_id}/hosted-spfdomains:write
Editar configuración avanzada de SPF. Cuerpo: {"all": "~all"} (una de las opciones -all, ~all, ?all, +all).
Autorizar o bloquear una IP. Body: {"ip": "203.0.113.10", "type": "Allow"} (type = Allow o Reject).
POST/domains/{domain_id}/spf/flattendomains:read
Genera un registro SPF aplanado resolviendo los includes en rangos de IP. Devuelve el registro aplanado, las listas IPv4/IPv6 y el recuento de consultas DNS frente al límite.
API de BIMI / VMC
Administrar registros BIMI, logotipos SVG, certificados VMC y comprobaciones de preparación. Se requiere el propietario del equipo para las operaciones de escritura.
GET/bimi/registrationsaccount:read
Listar solicitudes de registro BIMI de socios para el equipo de cuentas.
GET/domains/{domain_id}/bimidomains:read
Devuelve detalles del registro BIMI, destinos DNS, estado del logo/VMC y resultados de la inspección SVG.
POST/domains/{domain_id}/bimidomains:write
Provisionar BIMI alojado para el dominio.
PATCH/domains/{domain_id}/bimidomains:write
Volver a sincronizar o editar BIMI. Vuelve a publicar desde los archivos subidos, o proporcione record_value para una anulación manual.
DELETE/domains/{domain_id}/bimidomains:write
Eliminar la configuración BIMI, los archivos alojados y el registro de Route53.
Lista de verificación de preparación BIMI/VMC con puntuación, estado del protocolo y aprobado/fallado por comprobación
API de MTA-STS
Gestionar MTA-STS y TLS-RPT alojados para un dominio. Se requiere el propietario del equipo para operaciones de escritura.
GET/domains/{domain_id}/mta-stsdomains:read
Devuelve el estado de MTA-STS, el modo de la política, los objetivos CNAME del cliente, los registros DNS alojados y los metadatos de la comprobación de sincronización.
Provisionar registros MTA-STS y TLS-RPT alojados. Crea una política predeterminada (mode: none) a partir de los registros MX en vivo cuando sea necesario.
Ejecute la validación MTA-STS y TLS-RPT mediante el servicio de comprobación. Cuerpo opcional: verify_dns, require_caa, deploy_policy (predeterminado true al verificar DNS).
API de TLS-RPT
Configurar TLS-RPT alojado y consultar los informes TLS recibidos. Se requiere el propietario del equipo para las operaciones de escritura.
GET/domains/{domain_id}/tls-rptdomains:read
Devuelve la configuración TLS-RPT, los objetivos DNS, el estado de verificación y el recuento total de informes.
Filas paginadas con errores TLS (recuentos de errores distintos de cero o códigos de motivo de error)
API de puntuación de salud y seguridad del dominio
Read-only domain health, email security score, mail volume, sending services, failing sources, and cached dashboard data. All endpoints are scoped to {domain_id} and require domains:read. Volume/source endpoints accept optional start_date/end_date (YYYY-MM-DD, default last 30 days).
Obtener estado del dominio
get/domains/{domain_id}/healthdomains:read
Instantánea del estado actual del dominio: un mapa de aprobado/fallado por protocolo, una etiqueta cualitativa result, el proveedor de correo detectado y el registro DMARC en vivo. Proviene del último escaneo de Domain Guard; si no existe escaneo, se recurre a las verificaciones en vivo (el campo source indica cuál).
Devoluciones
source (guard_history | live), result, mail_provider, un mapa protocols de valores booleanos, protocols_passing/total_protocols, el dmarc_record y scanned_at.
Historial paginado de instantáneas de estado de Domain Guard, las más recientes primero. Cada fila captura el estado de éxito/fallo del protocolo y la etiqueta de resultado en el momento del escaneo, permitiéndole trazar la protección a lo largo del tiempo.
Parámetros de consulta
start_date:
OPCIONALstring · date
Inicio inclusivo de la ventana (YYYY-MM-DD). Por defecto, hace 30 días.
end_date:
OPCIONALstring · date
Fin de la ventana inclusiva (YYYY-MM-DD). Por defecto, hoy.
page:
OPCIONALinteger
Número de página, basado en 1 (predeterminado: 1).
limit:
OPCIONALinteger
Elementos por página (1–100, predeterminado 25).
Devoluciones
Un array paginado de filas de snapshot (id, result, mail_provider, mapa protocols, protocols_passing/total_protocols, scanned_at) además de pagination.
La puntuación actual de seguridad del correo electrónico (0–10) con una interpretación y un mensaje legibles por humanos. Se calcula bajo demanda a partir de resultados en caché de comprobadores externos, por lo que la primera llamada tras un fallo de caché puede ser más lenta. Devuelve 503score_unavailable si no puede calcularse.
Devoluciones
score, max_score (10), interpretation (p. ej. excellent), un message y computed_at.
Una serie de puntuación de seguridad derivada calculada a partir de instantáneas de Domain Guard, donde derived_score = passing protocols / 5 × 10. Úsela para una línea de tendencia cuando no necesite la puntuación completa del live-checker.
Parámetros de consulta
start_date:
OPCIONALstring · date
Inicio inclusivo de la ventana (YYYY-MM-DD). Por defecto, hace 30 días.
end_date:
OPCIONALstring · date
Fin de la ventana inclusiva (YYYY-MM-DD). Por defecto, hoy.
limit:
OPCIONALinteger
Número máximo de filas a devolver (1–100, valor predeterminado: 10).
Devoluciones
max_score, una note explicativa y un array history de puntos (derived_score, protocols_passing/total_protocols, result, scanned_at).
Historial diario del volumen de correo derivado de datos agregados DMARC: recuentos de entregados / en cuarentena / rechazados y resultado DMARC (aprobado/denegado) por día, además de totales acumulados para todo el periodo.
Parámetros de consulta
start_date:
OPCIONALstring · date
Inicio inclusivo de la ventana (YYYY-MM-DD). Por defecto, hace 30 días.
end_date:
OPCIONALstring · date
Fin de la ventana inclusiva (YYYY-MM-DD). Por defecto, hoy.
Devoluciones
Un objeto totals y un arreglo timeline, cada entrada indexada por date con volumen y recuentos de aprobados/no aprobados.
Envío de fuentes con volumen, métricas DMARC, un porcentaje de compliance y un status de compliant, partial o failing. El indicador is_registered_threat marca fuentes conocidas como maliciosas.
Parámetros de consulta
start_date:
OPCIONALstring · date
Inicio inclusivo de la ventana (YYYY-MM-DD). Por defecto, hace 30 días.
end_date:
OPCIONALstring · date
Fin de la ventana inclusiva (YYYY-MM-DD). Por defecto, hoy.
limit:
OPCIONALinteger
Número máximo de filas a devolver (1–100, valor predeterminado: 10).
Devoluciones
Un array de services, cada uno con source_name, el objeto de métricas, compliance, status y is_registered_threat.
Fuentes que no cumplieron la alineación DMARC en el período, ordenadas por volumen de fallos. Estas son las fuentes de mayor prioridad para investigar: remitentes legítimos cuya autenticación debe corregirse, o suplantadores.
Parámetros de consulta
start_date:
OPCIONALstring · date
Inicio inclusivo de la ventana (YYYY-MM-DD). Por defecto, hace 30 días.
end_date:
OPCIONALstring · date
Fin de la ventana inclusiva (YYYY-MM-DD). Por defecto, hoy.
limit:
OPCIONALinteger
Número máximo de filas a devolver (1–100, valor predeterminado: 10).
Devoluciones
Una matriz de failed_sources con la misma estructura que sending-services, ordenada por volumen de fallos de mayor a menor.
Devuelve la carga útil (payload) de la instantánea del panel precomputada para el dominio, si existe. Esta es la forma más rápida de renderizar un panel sin volver a recalcular los agregados. Cuando no existe ninguna instantánea, cached es false y data es null.
Parámetros de consulta
start_date:
OPCIONALstring · date
Inicio inclusivo de la ventana (YYYY-MM-DD). Por defecto, hace 30 días.
end_date:
OPCIONALstring · date
Fin de la ventana inclusiva (YYYY-MM-DD). Por defecto, hoy.
Devoluciones
cached (booleano), cached_at, la ventana solicitada y la carga útil (payload) de la instantánea data (o null).
Read-only DNS connect/disconnect timeline, current records, record-value history, change events, and stored snapshots. All endpoints are scoped to {domain_id} and require domains:read. Filterable by record_type and start_date/end_date (YYYY-MM-DD).
Obtener la línea de tiempo del DNS
get/domains/{domain_id}/dns/timelinedomains:read
Un resumen de estado por protocolo (estado actual, marcas de tiempo de la última conexión/desconexión y recuentos de conexiones) más los eventos más recientes de conexión/desconexión. Esta es la vista principal de cómo cada registro de protocolo se ha conectado y desconectado a lo largo del tiempo.
Parámetros de consulta
record_type:
OPCIONALstring
Filtra eventos por uno de los siguientes: dmarc, spf, mta_sts, tls_rpt, bimi.
action:
OPCIONALstring
Filtrar por connected o disconnected.
start_date:
OPCIONALstring · date
Inicio inclusivo de la ventana (YYYY-MM-DD). Por defecto, hace 30 días.
end_date:
OPCIONALstring · date
Fin de la ventana inclusiva (YYYY-MM-DD). Por defecto, hoy.
limit:
OPCIONALinteger
Número máximo de filas a devolver (1–100, valor predeterminado: 10).
Devoluciones
Un summary indexado por protocolo y un array events (id, record_type, action, record_value, status_before/status_after, occurred_at).
El estado actual de cada registro de protocolo: estado de conexión, indicador de verificación, marcas de tiempo de última conexión/desconexión y el último valor conocido del registro. SPF además informa su DNS lookup_count (el límite de 10 consultas DNS influye en la validez).
Devoluciones
Un mapa protocols indexado por protocolo, cada entrada con current_status, verified, status, last_connected/last_disconnected y record_value.
Un historial unificado, paginado y cronológico de los valores de los registros — fusionando instantáneas de DMARC y SPF para que pueda ver exactamente qué contenía cada registro en cada momento. Las filas SPF incluyen lookup_count.
Parámetros de consulta
record_type:
OPCIONALstring
Limitar a dmarc o spf (por defecto: ambos).
start_date:
OPCIONALstring · date
Inicio inclusivo de la ventana (YYYY-MM-DD). Por defecto, hace 30 días.
end_date:
OPCIONALstring · date
Fin de la ventana inclusiva (YYYY-MM-DD). Por defecto, hoy.
page:
OPCIONALinteger
Número de página, basado en 1 (predeterminado: 1).
limit:
OPCIONALinteger
Elementos por página (1–100, predeterminado 25).
Devoluciones
Un array paginado de filas de historial (record_type, record_value, occurred_at; SPF añade lookup_count) más pagination.
Un feed paginado de eventos de conexión/desconexión de cambio a través de todos los protocolos, con la transición de estado (status_before → status_after). Use esto para un feed de actividad estilo auditoría sobre la salud del DNS.
Parámetros de consulta
record_type:
OPCIONALstring
Uno de dmarc, spf, mta_sts, tls_rpt, bimi.
action:
OPCIONALstring
Filtrar por connected o disconnected.
start_date:
OPCIONALstring · date
Inicio inclusivo de la ventana (YYYY-MM-DD). Por defecto, hace 30 días.
end_date:
OPCIONALstring · date
Fin de la ventana inclusiva (YYYY-MM-DD). Por defecto, hoy.
page:
OPCIONALinteger
Número de página, basado en 1 (predeterminado: 1).
limit:
OPCIONALinteger
Elementos por página (1–100, predeterminado 25).
Devoluciones
Un array paginado de eventos de cambio (id, record_type, action, record_value, status_before/status_after, occurred_at) además de pagination.
Las filas crudas de snapshot almacenadas, agrupadas por tipo de registro. A diferencia de /dns/history (que fusiona y pagina), esto devuelve por separado los arrays de snapshot subyacentes dmarc y spf.
Parámetros de consulta
record_type:
OPCIONALstring
Limitar a dmarc o spf (por defecto: ambos).
start_date:
OPCIONALstring · date
Inicio inclusivo de la ventana (YYYY-MM-DD). Por defecto, hace 30 días.
end_date:
OPCIONALstring · date
Fin de la ventana inclusiva (YYYY-MM-DD). Por defecto, hoy.
limit:
OPCIONALinteger
Número máximo de filas a devolver (1–100, valor predeterminado: 10).
Devoluciones
Un array dmarc y un array spf de filas de instantánea (id, record_value, occurred_at; SPF añade lookup_count).
Read-only account API audit logs — every mutating API request (POST/PUT/PATCH/DELETE) plus sensitive reads are recorded with method, path, status, IP, token, and timestamp. Scoped to the token owner's account and require the account:read scope.
The audit log object
Cada endpoint en esta sección devuelve filas con esta forma. action es una etiqueta estable y legible por humanos para la operación; request_id coincide con la request_id que se refleja en el sobre de respuesta de la llamada original.
Registros de auditoría paginados para la cuenta, los más recientes primero. Combine filtros para restringir el feed — p. ej., todas las escrituras fallidas en un rango de fechas.
Parámetros de consulta
method:
OPCIONALstring
Método HTTP, p. ej. POST.
action:
OPCIONALstring
Etiqueta de acción exacta, por ejemplo: domain.hosted_spf.update.
path:
OPCIONALstring
Coincidencia de subcadena en la ruta de la solicitud.
status_code:
OPCIONALinteger
Estado HTTP exacto, p. ej. 200.
status_class:
OPCIONALstring
Familia de códigos de estado: 2xx, 3xx, 4xx, 5xx.
ip_address:
OPCIONALstring
IP exacta del cliente
token_id:
OPCIONALinteger
Filtrar por un único token de API.
q:
OPCIONALstring
Búsqueda de texto libre en acción, ruta y dirección IP.
start_date:
OPCIONALstring · date
Inicio de ventana inclusivo (YYYY-MM-DD).
end_date:
OPCIONALstring · date
Fin de ventana inclusivo (YYYY-MM-DD).
page:
OPCIONALinteger
Número de página (predeterminado: 1).
limit:
OPCIONALinteger
Elementos por página (1–100, predeterminado 25).
Devoluciones
Un array paginado de objetos de registro de auditoría más un objeto pagination.
Busca registros de auditoría mediante un cuerpo JSON usando los mismos filtros que el endpoint de lista. Prefiere esto sobre la lista por query-string cuando necesites pasar method como un array o construir consultas largas y estructuradas.
Parámetros del cuerpo (JSON)
q:
OPCIONALstring
Búsqueda de texto libre en acción, ruta y dirección IP.
method:
OPCIONALstring | array
Un único método o un array, por ejemplo ["POST","PATCH","DELETE"].
action:
OPCIONALstring
Etiqueta exacta de la acción.
path:
OPCIONALstring
Coincidencia de subcadena en la ruta de la solicitud.
Recupera una única entrada del registro de auditoría por ID, limitada a la cuenta. Devuelve 404not_found si la entrada no pertenece a la cuenta autenticada.
Parámetros de ruta
log_id:
requeridointeger
El identificador de la entrada del registro de auditoría.