Che aspetto ha una risposta di errore?
La maggior parte degli errori dell’API Enrow restituisce un semplice oggetto JSON con un unico campomessage:
reason insieme a success:
error, status o retry_after. Leggi il codice di stato HTTP per ramificare la tua logica e leggi message (o reason) per la descrizione leggibile.
Quali sono gli errori più comuni e come li risolvo?
Gli errori riportati di seguito coprono la stragrande maggioranza delle richieste fallite. Ciascuno è accompagnato dal corpo della risposta restituito dall’API e dalla relativa soluzione.Perché ricevo un 400 Bad Request?
Un400 significa che il payload della richiesta è malformato o manca un parametro obbligatorio:
fullname più company_domain oppure company_name.
Perché ricevo un 401 Unauthorized?
Un401 significa che la chiave API è mancante o non valida:
x-api-key (non Authorization). Consulta Autenticazione per sapere come passare la chiave a ogni richiesta.
Perché ricevo un 402 Insufficient Credits?
Un402 significa che l’account non dispone di credito sufficiente per eseguire la richiesta:
402 viene restituito con la struttura standard { "message": "..." }.
Soluzione: controlla il saldo del credito nella Dashboard o tramite GET /account/info. Ricarica i crediti o passa a un piano superiore su enrow.io/pricing. Consulta Crediti e fatturazione per sapere come vengono consumati i crediti per ciascun endpoint.
Perché ricevo un 429 Rate Limit Exceeded?
Un429 significa che sono state inviate troppe richieste in un breve intervallo:
Perché ricevo un 500 Internal Server Error?
Un500 significa che qualcosa è andato storto sul lato di Enrow:
Come gestisco gli errori nel codice?
Controlla il codice di stato HTTP prima di analizzare il corpo della risposta di successo, quindi solleva un errore che riporti il codice di stato, in modo che la tua logica di retry possa ramificarsi su di esso. Il campomessage contiene la descrizione per la maggior parte degli errori, mentre reason la contiene per le risposte 402 degli endpoint singoli.
Come riprovo le richieste fallite?
Riprova solo gli errori che vale la pena riprovare —429 e 5xx — e applica un backoff esponenziale tra i tentativi. Gli errori client nell’intervallo 4xx (eccetto 429) segnalano un problema con la richiesta stessa, quindi riprovarli non serve.
Best practice
- Non riprovare gli errori 4xx (eccetto il 429) — correggi invece la richiesta
- Riprova gli errori 429 — applica un backoff con ritardi esponenziali prima di riprovare
- Riprova gli errori 5xx — con backoff esponenziale
- Usa i webhook invece del polling per evitare di raggiungere inutilmente i limiti di frequenza — consulta Come funzionano i webhook
- Registra gli errori con il contesto — includi l’endpoint, i parametri e il timestamp per il debugging
FAQ
Come distinguo un 402 sugli endpoint singoli rispetto a quelli bulk?
Come distinguo un 402 sugli endpoint singoli rispetto a quelli bulk?
Sugli endpoint singoli (find singolo email/phone, verify singolo), un
402 restituisce { "reason": "Insufficient credits", "success": false }. Sugli endpoint bulk, lo stesso 402 restituisce la struttura standard { "message": "..." }. Leggere sia message sia reason (come fanno gli esempi di codice) gestisce entrambi i casi.Quali errori dovrei riprovare automaticamente?
Quali errori dovrei riprovare automaticamente?
Riprova gli errori
429 (limite di frequenza) e 5xx (server) con backoff esponenziale. Non riprovare altri errori 4xx come 400, 401 o 402 — indicano un problema con la richiesta, la chiave API o il saldo del credito che il solo riprovare non risolve.Esiste un header retry_after che mi indichi quanto attendere?
Esiste un header retry_after che mi indichi quanto attendere?
No. Le risposte di errore non includono mai i campi
retry_after, error o status. Usa il tuo backoff esponenziale tra i tentativi. Consulta Limiti di frequenza per i limiti applicabili al tuo piano.Dove leggo il messaggio di errore nella risposta?
Dove leggo il messaggio di errore nella risposta?
Per la maggior parte degli errori, la descrizione si trova nel campo
message. Per un 402 di credito insufficiente su un endpoint singolo, si trova invece nel campo reason. Ramifica sempre la tua logica sul codice di stato HTTP anziché analizzare il testo del messaggio.Passaggi successivi
Codici di stato
L’elenco completo dei codici di stato HTTP e dei loro significati.
Limiti di frequenza
Comprendi i limiti di richieste per ciascun piano per evitare gli errori 429.
Autenticazione
Come passare la tua chiave API nell’header x-api-key.
Crediti e fatturazione
Scopri come vengono consumati i crediti per ciascun endpoint.

