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
| Codice | Significato |
|---|---|
401 | Chiave API mancante o non valida |
403 | Chiave valida ma l'account non è sul piano Agency |
400 | url mancante o vuoto |
422 | L'URL di destinazione non è stato scansionabile (irraggiungibile, bloccato, troppo grande, ecc.) |
429 | Limite di frequenza superato (60 richieste/minuto per chiave) |
503 | Servizio 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.