ISBN-10→ISBN-13変換
ISBN-10の0306406152はISBN-13の9780306406157になります。先頭に978が付き、チェックディジットは2から7に計算し直されます。どちらの形もハイフンの有無にかかわらず貼り付けられ、検証後に両方が得られます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- ISBN (国際標準図書番号)
- 0306406152
- 入力
- 0306406152
- 入力形式
- isbn10
- 方向
- isbn10_to_isbn13
- ISBN-10 (10桁)
- 0306406152
出版社、書店、図書館、カタログシステムは、同じ業務フローの中で十桁と十三桁の国際標準図書番号の両方にいまも出会います。ISBN-10は978で始まる対応するISBN-13と同じ版を指しますが、末尾のチェックディジットは同じ文字ではありません。変換とは、元のコードを検証し、先形式のチェックディジットを再計算することを意味します。本機能はどちらの形式も受け付け、任意のハイフンと空白を除去し、チェックディジットを確認し、変換が可能なときにISBN-10とISBN-13の両方の文字列を返します。どちらの経路も同一の純粋な算術を使い、書誌メタデータのネットワーク照会は行いません。
ISBN-10とISBN-13の関係とチェックディジットが変わる理由
International Standard Book Numberは、流通・図書館・小売向けに特定の図書版を識別します。旧形式のISBN-10は九桁の本体と、モジュロ十一の余りが十のときに数字または文字Xとなり得る単一のチェック文字を使います。
現行のISBN-13はGTIN型の十三桁で、図書取引ではほぼ常にGS1のブックランド接頭辞978または979で始まり、一と三の交互重みで計算するEAN型チェックディジットで終わります。
ISBN-10を接頭辞978のISBN-13へ書き換えるとき、九桁の本体は保たれ先頭に978が付きますが、旧チェック文字は捨てられ、十二桁のデータから新しい十三桁目が計算されます。逆方向では978接頭辞を外し次の九桁を残し、古典的な加重和モジュロ十一でISBN-10のチェック文字を再計算します。
接頭辞979のISBN-13はISBN-13規則上は有効な図書番号ですが対応するISBN-10がなく、変換器はその方向を拒否し、十桁文字列を捏造してはなりません。書名・出版社・登録メタデータは取得せず、無効な元コードを有効に見せるチェックディジットも決して生成しません。
実カタログ業務におけるISBN変換の位置づけ
書店のPOSは十三桁バーコードを読み取ることが多い一方、古い在庫行はまだ十桁形式を保持しています。チェックディジット検証付きの双方向変換は、重複SKUを作る前に入力ミスの取込みを検出します。
どちらの形式も受け付けるマーケットプレイス掲載ツールは、チャネル提出用に各タイトルをISBN-13へ正規化しつつ、古い表紙やCIPブロックに残るレガシーISBN-10も表示できます。図書館の移行スクリプトは大規模なMARCや表計算のエクスポートを書き換え、ゼロ埋めではなく誤ったチェックディジットを拒否する決定論的オラクルを必要とします。
GS1企業接頭辞の下でコードを発行する出版業務は十二桁のデータは既知でも、ハイフン付きISBN-10とコンパクトISBN-13が混在するパートナーフィード連携では小さな変換器が役立ちます。どのフローでも契約は同じです。変換成功を登録上の権利や在版の証明と見なさないでください。
証明されるのは、ISBN-10とISBN-13のチェック規則の下で両文字列が算術的に整合することだけです。
活用例
混在カタログ取込みの正規化
CSVからハイフン付きISBN-10またはコンパクトISBN-13を受け取り、検証済みチェックディジットで両形式へ変換し、版ごとに一つの正規ペアを保存します。
マーケットプレイスとPOSの二重表示
スキャン用に十三桁バーコード値を示しつつ、請求書や古いラベルテンプレートには従来の十桁ISBNを印刷し続けます。
公開前のデータ品質ゲート
チェックディジットが合わないISBNや、下流がまだISBN-10を要求するのに979接頭辞を使う行を拒否します。
よくある質問
なぜ979のISBN-13はISBN-10へ変換できないのですか?
接頭辞979の図書番号には標準マッピング上のISBN-10相当がありません。
ハイフンと空白は使えますか?
はい。 一般的な区切りは検証前に除去します。ISBN-10末尾のX以外の文字や誤った長さは不正として拒否します。
変換すると最後の桁が変わるのはなぜですか?
形式ごとに計算規則が違うためです。ISBN-10は11で割る重み付きの合計、ISBN-13は1と3を交互に掛けて10で割る方式なので、古いチェック文字を捨てて新しく計算します。
チェックディジットが間違っているとどうなりますか?
受け付けません。変換の前に元のコードを検証し、誤った番号を正しく見せるチェックディジットを作ることはないので、打ち間違いがもう一方の形に持ち越されません。
変換できれば本が実在すると言えますか?
いいえ。分かるのは、2つの番号がISBN-10とISBN-13の計算規則の上でつじつまが合っていることだけです。登録機関や書名の情報は照会しません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/isbn-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"isbn":"0306406152"}'const res = await fetch("https://api.kit.forhosting.com/enc/isbn-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"isbn": "0306406152"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/isbn-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"isbn": "0306406152"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/isbn-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"isbn":"0306406152"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"isbn":"0306406152"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/isbn-convert", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"isbn": "0306406152"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.isbn_convert",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
短すぎる・長すぎる、数字が必要な位置が非数字、またはチェックディジットが合わないコードは、黙って推測せず invalid_input で拒否します。ブラウザでは無料で実行でき、公開価格でKIT APIを呼び出すこともできます。
ISBN-10とISBN-13の関係とチェックディジットが変わる理由
本エンドポイントはまさにその規則を実装します。
入力契約・応答形・エラー時の挙動
値には可読用の空白やハイフンを含めてもよく、長さとチェックディジットの検査の前にそれらを除去します。必須フィールドisbn(別名はnumber、code、text、value)を含むJSONボディをPOSTしてください。正規化後、九桁の数字に数字またはXを加えた十文字はISBN-10として扱い、チェック文字を検証し、978と九桁本体の十二桁ペイロードを組み立て、ISBN-13チェックディジットを付与し、direction isbn10_to_isbn13 で両方の形式を返します。十三桁はISBN-13として扱い、EANチェックディジットを検証し、接頭辞は978または979である必要があり、978の場合のみdirection isbn13_to_isbn10 でISBN-10へ変換します。成功時のペイロードは常にinput(正規化済み)、input_format、direction、isbn10、isbn13、check_digit_isbn10、check_digit_isbn13、prefixを含みます。空文字、誤った長さ、ISBN-10末尾以外の文字、誤ったチェックディジット、bookland外の十三桁、979接頭辞でISBN-10を求める要求はいずれもinvalid_inputで失敗し課金されません。時計・乱数・ネットワークのない純粋なparse経路のため、同一入力は無料ブラウザとAPIの$0.002成功リクエストで常に同じJSONになります。
実カタログ業務におけるISBN変換の位置づけ
一つのisbn文字列、自動判定の方向、テストに固定できる構造化JSON、ブラウザ無料と前払いKIT残高で同一の挙動、そして整形式の変換可能なISBNでないときの正直な失敗です。
技術的な質問
ISBN-10をISBN-13へどう変換しますか?
十文字のISBN-10(ハイフンは任意)をisbnフィールドに送ってください。APIはチェックディジットを検証し、978を前置し、EANチェックディジットを再計算し、isbn13と元のisbn10を返します。
ISBN-13をISBN-10へ戻すには?
978で始まる十三桁のISBN-13を送ってください。APIはチェックディジットを検証し、978接頭辞を外し、ISBN-10チェック文字(0–9またはX)を再計算し、両方の形式を返します。
ISBN変換の料金はいくらですか?
ブラウザツールは無料です。APIは成功コールごとに前払いKIT残高から$0.002を使用し、無効または不正な入力は課金されません。