Sviluppatori

API e integrazione CI/CD

Scansiona qualsiasi URL pubblico con una singola richiesta e fai fallire la pipeline CI quando il punteggio di accessibilità scende sotto la tua soglia.

Autenticazione

Invia la tua chiave API come Bearer token (Authorization: Bearer nh_live_...) oppure come header x-api-key. Le richieste senza una chiave valida restituiscono 401.

L'accesso API è una funzione del piano Agency. Genera la tua chiave da la pagina del tuo account.

Endpoint

POST https://normharbor.com/api/v1/scan oppure GET https://normharbor.com/api/v1/scan?url=...

Invia un URL, ricevi un risultato di scansione in JSON — punteggio, grado, totali per gravità e l'elenco dei problemi rilevati.

Esempio di richiesta (curl)

curl -s -X POST "https://normharbor.com/api/v1/scan" \
  -H "Authorization: Bearer nh_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'

Esempio di risposta

{
  "url": "https://example.com",
  "score": 87,
  "grade": "B",
  "totals": { "critical": 0, "serious": 1, "moderate": 2, "minor": 3, "elements": 6 },
  "issues": [
    { "id": "img-alt", "wcag": "1.1.1", "level": "A", "impact": "critical", "count": 2 }
  ],
  "scannedAt": "2026-09-23T10:00:00.000Z"
}

Errori

CodiceSignificato
401Chiave API mancante o non valida
403Chiave valida ma l'account non è sul piano Agency
400url mancante o vuoto
422L'URL di destinazione non è stato scansionabile (irraggiungibile, bloccato, troppo grande, ecc.)
429Limite di frequenza superato (60 richieste/minuto per chiave)
503Servizio momentaneamente occupato — riprova a breve

Limite di frequenza: 60 richieste al minuto per chiave API.

GitHub Action (gate di accessibilità CI)

Aggiungi un gate di accessibilità alla tua pipeline: scansiona un URL e fa fallire la build se il punteggio è sotto min-score.

- uses: normharbor/scan-action@v1
  with:
    api-key: ${{ secrets.NORMHARBOR_API_KEY }}
    url: https://example.com
    min-score: "90"

Vedi la cartella github-action/ nel repository NormHarbor per l'action.yml completa e le istruzioni.

← Torna all'account