Errori API e soluzioni

I codici di errore dell'API v2 di Zornade, con il messaggio esatto restituito, la causa e come risolverlo. Le risposte di errore usano sempre il formato JSON: campo error (codice) e campo message (testo).

Torna alla documentazione
401

API_KEY_REQUIRED

An API key is required for all endpoints. Get a free key at https://app.zornade.com/api

Causa: La richiesta non include il header x-api-key.

Soluzione: Aggiungi il header x-api-key con un token creato su app.zornade.com/api. L'unico endpoint pubblico è /api/v2/health.

401

INVALID_API_KEY

Invalid or expired API key.

Causa: Il token non esiste, è stato revocato oppure è scaduto.

Soluzione: Controlla di aver copiato il token completo (inizia con zrn_) e che non sia scaduto o revocato nella lista token.

429

TOO_MANY_ATTEMPTS

Too many failed authentication attempts. Try again later.

Causa: Troppi tentativi di autenticazione falliti dallo stesso indirizzo IP.

Soluzione: Attendi il periodo indicato nel campo retry_after_seconds (900 secondi) e verifica il token prima di riprovare.

429

RATE_LIMITED

Rate limit exceeded: 10000 requests/hour. Try again later.

Causa: Il token ha superato le 10.000 richieste nell'ora corrente.

Soluzione: Attendi il reset orario (header X-RateLimit-Reset) oppure distribuisci il carico tra più token, fino a 5 per utente.

400

OUT_OF_BOUNDS

Coordinates must be within Italy.

Causa: Le coordinate inviate sono fuori dall'area italiana coperta.

Soluzione: Usa coordinate italiane: latitudine 35.5-47.5, longitudine 6.0-19.0.

400

INVALID_PARAMS

Es. "comune is required", "bbox format: minLng,minLat,maxLng,maxLat", "points format: lat1,lng1;lat2,lng2 (max 10 points)."

Causa: Parametri mancanti o nel formato sbagliato.

Soluzione: Controlla la firma dell'endpoint nella documentazione: comune obbligatorio in parcels/search, bbox e points separati da virgole e punto e virgola.

400

BBOX_TOO_LARGE

Bounding box too large. Max span: 0.05° per side (~5.5 km).

Causa: Il bounding box supera l'estensione massima di 0.05 gradi per lato.

Soluzione: Dividi l'area in più richieste bbox più piccole oppure usa la modalità multi-punto.

403

INSUFFICIENT_SCOPE

This endpoint requires the "<scope>" scope. Your token has: [...]

Causa: Il token non ha lo scope richiesto dall'endpoint (parcels:read, geocoding:read o admin_data:read).

Soluzione: Crea un nuovo token con lo scope mancante oppure rigenera il token esistente con gli scopes corretti.

404

NOT_FOUND

Parcel "<id>" not found.

Causa: Il fid o gml_id richiesto non esiste nel dataset.

Soluzione: Verifica l'id con una ricerca per comune o coordinate, poi ripeti la richiesta di dettaglio.

502

QUERY_ERROR

Messaggio dell'errore interno del database.

Causa: Errore temporaneo nella risoluzione della query lato server.

Soluzione: Riprova dopo qualche secondo. Se l'errore persiste, segnala il messaggio completo al supporto.

Headers di rate limit

Ogni risposta autenticata include gli header X-RateLimit-Limit (10000), X-RateLimit-Remaining e X-RateLimit-Reset (timestamp del prossimo reset orario) per monitorare il consumo senza arrivare al 429.