API di produzione

Esegui i controlli di accessibilità dal tuo flusso di lavoro

Usa una chiave API dell’organizzazione con ambiti limitati per avviare scansioni di singole pagine o dell’intero sito e leggere risultati strutturati e stabili.

Guida rapida

La Developer API usa chiavi con ambiti limitati, non l’endpoint di login del browser.

  1. Accedi a wcagc e crea una chiave in Impostazioni → Developer API.
  2. Copia la chiave completa quando viene mostrata, una sola volta, e conservala nel tuo gestore di segreti.
  3. Concedi solo gli ambiti necessari al tuo client. In Swagger scegli Authorize e incolla la chiave senza aggiungere la parola Bearer.
  4. Invia la chiave a https://api.wcagc.com come intestazione Authorization: Bearer.
curl https://api.wcagc.com/api/v1/sites \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $WCAGC_API_KEY"

Autenticazione

Le chiavi iniziano con wcagc_ e vengono mostrate per intero una sola volta. Conservale come segreti, concedi solo gli ambiti che ti servono e revocale subito se esposte.

Non vedrai /api/auth/login nella specifica pubblica: crea una sessione con cookie per l’app web e non è, per scelta, il metodo di autenticazione per gli script.

Limite di frequenza

Ogni chiave consente 120 richieste al minuto per impostazione predefinita. Una risposta 429 include Retry-After, così i client possono rallentare in sicurezza.

Ambiti

La maggior parte degli endpoint REST richiede la funzione Developer API del piano. La CI usa un ambito ci:check separato e una quota del piano; le credenziali per gli assistenti e per l’estensione del browser hanno una documentazione propria.

sites:read
Elenca i siti registrati nell’organizzazione della chiave.
scans:write
Avvia scansioni di singole pagine e dell’intero sito.
scans:read
Leggi stato, conteggi, avanzamento e problemi rilevati delle scansioni.
ci:check
Avvia e leggi controlli CI su più URL, con limiti, entro la quota CI dell’organizzazione.

Scegli l’operazione API che ti serve

Il riferimento è organizzato per operazioni stabili e non per gli endpoint interni dell’app web. Ogni risorsa è limitata al tenant dell’organizzazione che possiede la credenziale.

Individua i siti

Ottieni gli ID dei siti registrati prima di avviare una scansione dell’intero sito, leggere un andamento o selezionare un percorso salvato. Richiede sites:read.

GET /api/v1/sites

Controlla una pagina

Metti in coda una pagina di un sito registrato, controlla lo stato della scansione, poi leggi i record stabili dei problemi rilevati. Richiede scans:write e scans:read.

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

Analizza un sito registrato

Metti in coda una scansione dell’intero sito, leggi avanzamento, problemi rilevati e gruppi deterministici di cause principali. Richiede scans:write e 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

Esegui percorsi salvati e verifica le correzioni

Usa passaggi e credenziali salvati sul server; le richieste API non includono mai credenziali di accesso. Andamenti del sito e nuovi controlli mirati usano gli stessi ambiti di lettura e scrittura.

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

Blocca la CI

Controlla fino al numero di URL previsto dal piano su un sito verificato, leggi l’esito e recupera i problemi rilevati rispetto alla baseline. Richiede ci:check.

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

Crea, fai polling, poi leggi i problemi rilevati

La creazione di scansioni, esecuzioni, controlli CI, percorsi e verifiche delle correzioni è asincrona. Una POST riuscita restituisce 202 Accepted, un ID risorsa e un’intestazione Location.

Fai polling sulla risorsa Location con un backoff limitato finché non raggiunge uno stato finale. Leggi i problemi rilevati solo a completamento avvenuto; non trattare una risposta «in coda» o «in esecuzione» come un risultato.

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"

Gestisci i codici di errore stabili

Gli errori usano application/problem+json. Gestisci i casi in base a code, conserva traceId per il supporto e tratta detail come contesto leggibile da persone, che può cambiare.

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

Riferimento interattivo e leggibile da macchina

Swagger elenca ogni operazione supportata della Developer API v1, l’ambito richiesto, lo schema della richiesta, lo stato della risposta e un esempio. Il JSON OpenAPI 3.1 grezzo può essere importato nei client API e nei generatori di codice.

Webhook in uscita firmati

Iscrivi un endpoint HTTPS agli eventi di scansione terminata, regressione e correzione. Ogni consegna JSON include una firma HMAC-SHA256 con timestamp, un ID di consegna stabile e nuovi tentativi automatici.

Configura i webhook

Verifica X-Wcagc-Signature rispetto a timestamp + '.' + il corpo grezzo della richiesta, invariato. Rifiuta i timestamp troppo vecchi per ridurre il rischio di replay.

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