Estrarre i dati da un modulo compilato
Strumento per estrarre i dati da un modulo compilato: carichi la scansione o la foto del modulo e ricevi ogni campo con la sua etichetta e il valore inserito, in forma ordinata. Pensato per chi raccoglie moduli cartacei — iscrizioni, adesioni, questionari — e deve riversarli in un foglio senza ridigitare campo per campo.
Esegui online
Esegui questo sui nostri server con il tuo account. Gli strumenti gratuiti girano nel tuo browser; questo viene addebitato sul tuo saldo KIT al prezzo indicato sopra.
Come legge un modulo
Un modulo abbina etichette fisse a valori compilati: il motore tiene insieme la coppia, così ottieni «Nome: Marco Rossi», «Data: 14/07/2026», «Importo: 1.234,56 €» e non solo un testo sfuso. Gestisce campi dattiloscritti e, con la cautela del caso, quelli scritti a mano; riconosce anche caselle da spuntare e opzioni selezionate. Legge moduli in italiano con i loro campi tipici, compresi codice fiscale e partita IVA, e accetta immagini e PDF fino a 25 MB, con conteggio a pagina.
Dai moduli cartacei alla tabella
Carichi il modulo dal browser o via API e ricevi i campi separati, pronti da mettere in una riga di Excel o da passare a un gestionale. Se raccogli lo stesso modulo da tante persone — un'iscrizione, un consenso, un questionario — ogni risposta diventa una riga e costruisci la tabella senza battitura manuale. Per un blocco di moduli uguali scrivici: ti aiutiamo a impostare l'invio insieme così processi tutto in una passata.
Prezzo
Prezzo pubblicato e a consumo: $0.010 a richiesta più $0.0575 a pagina, senza abbonamento né minimo. Duecento moduli di una pagina costano intorno agli $11.50 più le richieste: poco rispetto alle ore che porta via inserire a mano centinaia di schede, con il rischio di saltare un campo o battere male un codice fiscale. Paghi solo le pagine che elabori davvero.
Casi d'uso
Iscrizioni di un'associazione
Un'associazione raccoglie i moduli di iscrizione cartacei e li estrae in un foglio con nome, contatti e quota, invece di ricopiare a mano ogni scheda.
Consensi e questionari
Uno studio medico digitalizza i moduli di consenso e i questionari dei pazienti estraendo i campi compilati, per archiviarli in forma ordinata.
Schede clienti di un negozio
Chiara Romano trasforma le schede cartacee di adesione alla raccolta punti in righe di un foglio, con contatti e preferenze già separati.
Domande frequenti
Tiene insieme etichetta e valore?
Sì: restituisce la coppia campo-valore, cioè «Nome: Marco Rossi», «Data: 14/07/2026», non un testo sfuso. Così ogni dato finisce nella colonna giusta della tua tabella.
Riconosce le caselle spuntate?
Sì, individua caselle da spuntare e opzioni selezionate, oltre ai campi di testo. Sui segni ambigui o poco marcati conviene una verifica veloce.
Legge i campi compilati a mano?
Gestisce il dattiloscritto con affidabilità alta; sul manoscritto la resa dipende dalla calligrafia, quindi su campi scritti a penna consigliamo un controllo, in particolare su numeri e codici.
Posso elaborare tanti moduli uguali insieme?
Sì. Per un blocco dello stesso modulo scrivici a [email protected] o su WhatsApp: impostiamo l'invio in blocco così ogni risposta diventa una riga senza digitazione.
I dati dei moduli restano riservati?
Sì: il modulo viene elaborato per estrarne i campi e poi eliminato, non viene conservato. Il trattamento è conforme al GDPR, cosa importante se raccogli dati personali.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/ocr/form \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/ocr/form", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ocr/form",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ocr/form", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ocr/form", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"input": "…"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ocr.form",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 25 |
max_pages | 10 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
413 | input_too_large | Il file o il testo inviato supera il limite di questo strumento. |
422 | task_failed | L'attività non è andata a buon fine: non ti viene addebitato nulla. |