Convalidi e converta ISBN-10 e ISBN-13
Un ISBN può sembrare corretto pur contenendo una cifra trascritta male, e il passaggio tra dieci e tredici cifre richiede più che aggiungere o togliere un prefisso.
Esegui gratis nel browser
Questo validatore normalizza spazi e trattini comuni, identifica il formato dalla lunghezza, verifica l’intero checksum e restituisce valori ISBN-10 e ISBN-13 canonici. Rifiuta identificatori malformati e controlli errati, invece di generare una conversione plausibile ma inaffidabile. Il calcolo è deterministico, non usa la rete ed è adatto a cataloghi, importazioni, sistemi editoriali e inventari librari.
Convalidi prima di archiviare o convertire
Un ISBN è un identificatore dotato di una cifra di controllo matematica, non la prova che un determinato libro esista. Lo strumento rimuove prima spazi e trattini comuni, quindi applica la regola relativa alla lunghezza rilevata. Nell’ISBN-10 le dieci posizioni usano pesi decrescenti da dieci a uno e il carattere finale può essere X, che rappresenta dieci. Nell’ISBN-13 pesi alternati di uno e tre determinano l’ultima cifra decimale. Una discordanza produce un errore di input, così il codice successivo non riceve mai una conversione derivata da una fonte digitata male. Questo comportamento è particolarmente importante nelle importazioni massive, dove accettare in silenzio una cifra errata può creare record duplicati o associare le scorte all’edizione sbagliata. L’indicatore di validità conferma il calcolo, mentre il formato di input specifica la regola applicata. Entrambi gli identificatori sono restituiti come stringhe canoniche senza trattini, pronte per confronto, indicizzazione o trasmissione senza conservare la punteggiatura incoerente ricevuta.
Comprenda il funzionamento della conversione
La conversione da ISBN-10 a ISBN-13 parte dalle prime nove cifre, scarta il vecchio carattere di controllo, aggiunge il prefisso editoriale 978 e calcola una nuova cifra ISBN-13. L’operazione inversa è disponibile per i valori ISBN-13 che iniziano con 978: il prefisso e la cifra di controllo a tredici posizioni vengono rimossi, poi il checksum ISBN-10 viene ricalcolato dalle nove cifre rimanenti. Il nuovo carattere può essere una cifra decimale oppure X. Ecco perché non si deve convertire con un semplice ritaglio del testo o copiando il controllo esistente. Gli ISBN-13 che iniziano con 979 sono validi, ma non possiedono equivalenti ISBN-10. Lo strumento convalida prima il numero e poi restituisce un errore chiaro, poiché non può fornire onestamente entrambi i formati. Non inventa un valore di dieci cifre, non sostituisce 979 con 978 e non presenta una trasformazione con perdita come conversione. La distinzione preserva l’integrità degli identificatori quando compaiono intervalli editoriali più recenti.
Usi il risultato in flussi affidabili
Invii un campo isbn come testo. Forme stampate come 0-306-40615-2 e 978 0 306 40615 7 sono accettate perché spazi e trattini sono solo formattazione. Altre lettere, segni, lunghezze errate, caratteri X fuori posizione, prefissi EAN non librari e checksum non validi vengono rifiutati. In caso di successo, archivi i campi isbn10 e isbn13 restituiti invece di ricostruirli nell’applicazione. Può anche conservare il formato di input se deve sapere quale rappresentazione abbia fornito originariamente un distributore. La capacità non cerca titolo, autore, edizione, proprietà o disponibilità; la validità matematica stabilisce soltanto la coerenza interna. La abbini a una fonte bibliografica autorevole se deve confermare anche l’identità. Poiché l’algoritmo è pura aritmetica senza richieste di rete, lo stesso input produce sempre lo stesso output. Il browser è comodo per controlli singoli; l’API costa $0.002 per richiesta e consente di validare all’ingresso, prima che i record raggiungano un database, un indice di ricerca, una procedura di evasione o un report.
Casi d'uso
Ripulisca l’importazione di un catalogo editoriale
Rifiuti gli identificatori trascritti male e salvi campi ISBN-10 e ISBN-13 uniformi prima che le righe entrino nel database.
Normalizzi le inserzioni di un marketplace
Converta gli ISBN forniti dai venditori in valori canonici senza trattini, confrontabili senza differenze di punteggiatura.
Controlli l’identificatore di un libro stampato
Incolli l’ISBN dalla copertina o dal colophon per rilevare errori di trascrizione e ottenere il formato corrispondente.
Domande frequenti
Quanto costa questa capacità?
Ogni richiesta API costa $0.002. Può anche usare l’interfaccia del browser per un singolo controllo.
Un checksum valido dimostra che il libro esiste?
No. Dimostra soltanto che l’identificatore è ben formato e ha una cifra di controllo corrispondente; non viene consultato alcun catalogo.
Sono accettati spazi e trattini?
Sì. Gli spazi e i trattini comuni vengono rimossi prima della convalida e gli identificatori restituiti non contengono separatori.
Perché un ISBN-13 valido con 979 non è convertibile?
L’ISBN-10 ha un equivalente solo per l’intervallo ISBN-13 che inizia con 978. Un identificatore 979 non ha una rappresentazione veritiera a dieci cifre.
La X può comparire in un ISBN?
Sì, ma solo come ultimo carattere di controllo dell’ISBN-10, dove rappresenta il valore dieci. L’ISBN-13 usa esclusivamente cifre.
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/data/isbn-validate-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"isbn":"0-306-40615-2"}'const res = await fetch("https://api.kit.forhosting.com/data/isbn-validate-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"isbn": "0-306-40615-2"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/isbn-validate-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"isbn": "0-306-40615-2"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/isbn-validate-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"isbn":"0-306-40615-2"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"isbn":"0-306-40615-2"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/isbn-validate-convert", 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
{
"isbn": "0-306-40615-2"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.isbn_validate_convert",
"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 |
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. |