API de producción

Ejecuta comprobaciones de accesibilidad desde tu propio flujo de trabajo

Usa una clave de API de organización con ámbitos para iniciar análisis de una página o de todo el sitio y leer resultados estables y estructurados.

Inicio rápido

La API para desarrolladores usa claves con ámbitos, no el endpoint de inicio de sesión del navegador.

  1. Inicia sesión en wcagc y crea una clave en Configuración → API para desarrolladores.
  2. Copia la clave completa cuando se muestre (solo una vez) y guárdala en tu gestor de secretos.
  3. Concede solo los ámbitos que necesita tu cliente. En Swagger, elige Authorize y pega la clave sin añadir la palabra Bearer.
  4. Envía la clave a https://api.wcagc.com como cabecera Authorization: Bearer.
curl https://api.wcagc.com/api/v1/sites \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $WCAGC_API_KEY"

Autenticación

Las claves empiezan por wcagc_ y se muestran completas una sola vez. Guárdalas como secretos, concede solo los ámbitos que necesites y revócalas de inmediato si quedan expuestas.

No verás /api/auth/login en la especificación pública: crea una sesión con cookie para la aplicación web y, de forma intencionada, no es el método de autenticación para scripts.

Límite de solicitudes

Cada clave permite 120 solicitudes por minuto de forma predeterminada. Una respuesta 429 incluye Retry-After para que los clientes reduzcan el ritmo sin riesgo.

Ámbitos

La mayoría de las rutas REST requieren la función API para desarrolladores del plan. CI usa un ámbito ci:check y una cuota de plan aparte; las credenciales de asistentes y de la extensión de navegador tienen su propia documentación.

sites:read
Listar los sitios registrados en la organización de la clave.
scans:write
Iniciar análisis de una página y de todo el sitio.
scans:read
Leer el estado, los recuentos, el progreso y los hallazgos de los análisis.
ci:check
Iniciar y leer comprobaciones de CI acotadas de varias URL dentro de la cuota de CI de la organización.

Elige la tarea de API que necesitas

La referencia se organiza en torno a tareas estables, no a los endpoints internos de la aplicación web. Cada recurso está limitado a la organización propietaria de la credencial.

Descubrir sitios

Obtén los ID de los sitios registrados antes de iniciar una ejecución de todo el sitio, leer una tendencia o seleccionar un recorrido guardado. Requiere sites:read.

GET /api/v1/sites

Comprobar una página

Pon en cola una página de un sitio registrado, consulta el análisis y lee sus registros estables de hallazgos. Requiere scans:write y scans:read.

POST /api/v1/scans GET /api/v1/scans/{id} GET /api/v1/scans/{id}/violations

Rastrear un sitio registrado

Pon en cola una ejecución de todo el sitio y lee el progreso, los hallazgos y los grupos deterministas de causas raíz. Requiere scans:write y scans:read.

POST /api/v1/scan-runs GET /api/v1/scan-runs/{id} GET /api/v1/scan-runs/{id}/violations GET /api/v1/scan-runs/{id}/root-causes

Ejecutar recorridos guardados y verificar correcciones

Usa pasos y credenciales guardados en el servidor; las solicitudes a la API nunca llevan secretos de inicio de sesión. Las tendencias del sitio y las recomprobaciones específicas usan los ámbitos normales de lectura y escritura.

GET /api/v1/sites/{id}/journeys POST /api/v1/journeys/{id}/runs GET /api/v1/sites/{id}/trend POST /api/v1/remediation-items/{id}/verifications

Puerta de calidad en CI

Comprueba hasta el límite de URL del plan en un sitio verificado, lee el veredicto y obtén hallazgos con referencia a la línea base. Requiere ci:check.

POST /api/v1/ci/checks GET /api/v1/ci/checks/{id} GET /api/v1/ci/checks/{id}/violations

Crea, consulta y después lee los hallazgos

La creación de análisis, ejecuciones, comprobaciones de CI, recorridos y verificaciones de correcciones es asíncrona. Un POST correcto devuelve 202 Accepted, un ID de recurso y una cabecera Location.

Consulta el recurso de Location con espera progresiva acotada hasta que alcance un estado final. Lee los hallazgos solo cuando haya terminado; no trates una respuesta en cola o en curso como un resultado.

curl -X POST https://api.wcagc.com/api/v1/scans \
  -H "Authorization: Bearer $WCAGC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/checkout"}'
curl https://api.wcagc.com/api/v1/scans/{id} \
  -H "Authorization: Bearer $WCAGC_API_KEY"

curl https://api.wcagc.com/api/v1/scans/{id}/violations \
  -H "Authorization: Bearer $WCAGC_API_KEY"

Gestiona códigos de error estables

Los errores usan application/problem+json. Decide según code, conserva traceId para soporte y trata detail como contexto legible que puede cambiar.

  • 401 API_KEY_INVALID
  • 403 API_KEY_SCOPE_MISSING / FEATURE_NOT_IN_PLAN
  • 404 *_NOT_FOUND
  • 409 *_ALREADY_RUNNING
  • 422 VALIDATION_FAILED / INVALID_URL
  • 429 RATE_LIMITED + Retry-After
{
  "type": "https://wcagc.com/problems/api-key-scope-missing",
  "title": "API key scope missing",
  "status": 403,
  "detail": "The API key does not grant the required scope.",
  "instance": "/api/v1/sites",
  "code": "API_KEY_SCOPE_MISSING",
  "traceId": "019c…",
  "timestamp": "2026-08-19T20:57:19Z"
}

Referencia interactiva y legible por máquina

Swagger lista cada operación compatible de la API para desarrolladores v1, el ámbito requerido, el esquema de la solicitud, el estado de la respuesta y un ejemplo. El JSON OpenAPI 3.1 sin procesar se puede importar en clientes de API y generadores de código.

Webhooks salientes firmados

Suscribe un endpoint HTTPS a eventos de análisis finalizados, de regresión y de corrección. Cada envío JSON incluye una firma HMAC-SHA256 con marca de tiempo, un ID de entrega estable y reintentos automáticos.

Configurar webhooks

Verifica X-Wcagc-Signature con timestamp + '.' + el cuerpo sin procesar e intacto de la solicitud. Rechaza marcas de tiempo antiguas para reducir el riesgo de repetición.

X-Wcagc-Event: scan_run.completed
X-Wcagc-Delivery: 019f…
X-Wcagc-Timestamp: 178406…
X-Wcagc-Signature: v1=<hmac-sha256>