← Tutte le idee Strumenti online

1Lookup

Controlla in tempo reale se un'email o un numero di telefono sono veri

Incasso mensile: 272.483 USD (fonte indicata nella scheda)

Cosa fa

API che verifica in tempo reale email, numeri di telefono e indirizzi IP (validi, falsi, temporanei, a rischio) e offre altri 34 servizi di dati con un'unica chiave e un unico saldo di crediti.

Come guadagna

Crediti a consumo con 7 giorni di prova, 748 abbonati, quasi 5,7 milioni di dollari incassati in totale dal 2022. Incassi verificati con Stripe.

Rendilo tuo

  • Per l'Italia: controllo di codice fiscale, partita IVA (VIES) e PEC.
  • Plugin per WooCommerce e moduli di contatto: blocca le registrazioni false.
  • Pulizia di liste email da file Excel per chi fa newsletter.

Le frasi da scrivere all'AI

1. Base del sito e grafica

Crea un'app web in italiano chiamata "Dato Vero": un servizio di verifica dati per siti e negozi italiani: controlla email, telefono, partita IVA e codice fiscale via API o caricando un file, con crediti a consumo. Usa React, Vite, TypeScript e Tailwind CSS.

Pagine da creare:
1. Pagina iniziale con una prova gratuita e i prezzi dei crediti
2. Registrazione e chiave API
3. Verifica singola
4. Verifica di un file CSV
5. Documentazione dell'API e utilizzo

Stile: da sviluppatori: sfondo #0B1120, verde #22C55E per "valido", rosso #EF4444, carattere "JetBrains Mono" per il codice e "Inter" per il testo. Nessuna immagine generica di stock.

Tutto deve funzionare perfettamente da telefono. Tutti i testi in italiano, chiari e senza parole tecniche.

2. Database, account e sicurezza

Collega il progetto a Supabase e attiva la registrazione con email e password.

Crea queste tabelle:
- "chiavi_api": impronta della chiave, nome, attiva
- "verifiche": tipo, valore cifrato, esito, crediti, data
- "crediti": saldo e movimenti

Regole di sicurezza obbligatorie:
- ogni utente vede solo le sue chiavi e verifiche
- le chiavi si salvano solo come impronta (hash), mai in chiaro
- i crediti si scalano solo dal server

Usa esattamente il codice SQL che trovi nei "Dettagli tecnici" di questa scheda: eseguilo nel SQL Editor di Supabase prima di continuare, poi collega le pagine alle tabelle.

3. Le verifiche

Email: sintassi, dominio con record MX (accetta posta), dominio usa e getta (elenco aggiornato), errori comuni ("gmial.com"). Telefono: formato italiano e internazionale con libphonenumber. Partita IVA: controllo della cifra e verifica sul servizio europeo VIES. Codice fiscale: controllo del carattere finale (codice nei Dettagli tecnici).

L'API risponde in meno di un secondo con esito e motivo. Ogni verifica scala un credito con una funzione del database sicura anche con molte richieste insieme.

Privacy: i valori verificati si salvano cifrati e si cancellano dopo 30 giorni; nei log resta solo l'esito.

4. File CSV e chiavi API

Si carica un CSV di email o contatti: la verifica avviene in coda e si scarica il file con una colonna di esito. Utile per pulire le liste prima di una newsletter.

Pannello delle chiavi API: creazione, revoca, limite di richieste al minuto, grafico dell'utilizzo.

5. Pagamenti con Stripe

Aggiungi pacchetti di crediti: 1.000 verifiche a 9 €, 10.000 a 49 €, 100.000 a 299 €. Ogni nuovo utente riceve 100 crediti gratis. Ogni verifica costa un credito. Mostra sempre in alto quanti crediti restano e, quando finiscono, un riquadro per comprarne altri.

A pagamento riuscito il webhook aggiunge i crediti del pacchetto con la funzione aggiungi_crediti.

Per la sessione di pagamento e il webhook segui la guida "Pagamenti con Stripe" di Fattibile.

6. Controlli specifici di questo progetto

Oltre ai controlli della guida "Controllo finale", verifica in particolare:
1. Chiavi: controlla nel database che le chiavi API siano salvate solo come impronta e non in chiaro.
Correggi quello che non va e scrivimi cosa hai cambiato.

Dettagli tecnici

Controllo del codice fiscale

Il sedicesimo carattere del codice fiscale è un controllo calcolato dagli altri 15: se non torna, il codice è sbagliato.

const DISPARI: Record<string, number> = {
  "0": 1, "1": 0, "2": 5, "3": 7, "4": 9, "5": 13, "6": 15, "7": 17, "8": 19, "9": 21,
  A: 1, B: 0, C: 5, D: 7, E: 9, F: 13, G: 15, H: 17, I: 19, J: 21, K: 2, L: 4, M: 18,
  N: 20, O: 11, P: 3, Q: 6, R: 8, S: 12, T: 14, U: 16, V: 10, W: 22, X: 25, Y: 24, Z: 23,
};
const valorePari = (c: string) => (/\d/.test(c) ? Number(c) : c.charCodeAt(0) - 65);

export function codiceFiscaleValido(cf: string) {
  const c = cf.toUpperCase().trim();
  if (!/^[A-Z0-9]{16}$/.test(c)) return false;
  let somma = 0;
  for (let i = 0; i < 15; i++) somma += i % 2 === 0 ? DISPARI[c[i]] : valorePari(c[i]);
  return String.fromCharCode(65 + (somma % 26)) === c[15];
}

Email: il dominio accetta posta?

Una Edge Function controlla i record MX del dominio: se non ce ne sono, a quell'indirizzo non può arrivare posta.

const USA_E_GETTA = new Set(["mailinator.com", "10minutemail.com", "guerrillamail.com", "yopmail.com"]);

export async function verificaEmail(email: string) {
  const m = /^[^\s@]+@([^\s@]+\.[^\s@]+)$/.exec(email.trim().toLowerCase());
  if (!m) return { valida: false, motivo: "formato non valido" };
  const dominio = m[1];
  if (USA_E_GETTA.has(dominio)) return { valida: false, motivo: "email usa e getta" };
  try {
    const mx = await Deno.resolveDns(dominio, "MX");
    return mx.length ? { valida: true, motivo: "il dominio riceve posta" } : { valida: false, motivo: "il dominio non riceve posta" };
  } catch {
    return { valida: false, motivo: "dominio inesistente" };
  }
}

Pezzi comuni a tutti i progetti

Glossario

Record MX
L'indicazione, nel DNS di un dominio, di quale server riceve la sua posta: senza, le email non arrivano.
VIES
Il servizio europeo gratuito per verificare se una partita IVA è valida.