国立国会図書館サーチが提供する書影API
1. 書影APIについて
1-1. 概要
国立国会図書館サーチ(NDLサーチ)では、図書館の蔵書検索システム(OPAC)等でご活用いただけるよう書影APIを提供しています。
書影APIは図書のISBNまたはJP-eコードを引数としてリクエストすることで、書影画像(資料の表紙の画像)を返戻するAPIです。
※NDLサーチでは、資料がJP-eコードを持つ場合、「デジタル」の書誌情報にコードを記載しています。
1-2. データプロバイダ
書影APIで取得可能な書影は、 出版情報登録センター(JPRO) から提供されたものです。
出版情報登録センター(JPRO)のデータは、出版書誌情報データベース(Books)から検索することができます。
リポジトリ番号 | データ提供機関 | データプロバイダ | 利用条件(1) | |
---|---|---|---|---|
非営利 | 営利 | |||
R100000137 | 出版情報登録センター(JPRO) | 出版情報登録センター | 申請不要 | 要申請 |
- ^希望されている利用方法が営利目的に該当するかどうかの判断は、APIのご利用についてをご確認ください。
1-3. 更新
書影APIで取得可能な書影は、定期的に出版情報登録センター(JPRO)から提供を受け更新されます。書影APIから出力される書影は、最終刊行版とは異なる場合や、変更・提供中止となる場合がありますのでご注意ください。
書影画像を蔵書検索システム等にキャッシュする場合は、定期的に書影APIから書影を取得しなおすことをおすすめします。
1-4. ご利用にあたって
書影APIの利用にあたってはあらかじめ以下をご確認ください。
2. リクエスト方法
書影画像を取得するためには以下のURLに対しHTTP GETリクエストを送信します。
https://ndlsearch.ndl.go.jp/thumbnail/[isbn又はJP-eコード].jpg
ここで[isbn又はJP-eコード]は、書影画像を取得したい図書のISBNを13桁かつハイフン区切りなしで指定したもの、もしくはJP-eコードを20桁かつ区切りなしで指定したものです。
例えばISBNが 978-4-422-31107-4 の資料の書影を取得するためのURLは
https://ndlsearch.ndl.go.jp/thumbnail/9784422311074.jpg
となり、
JP-eコードが 0621849700100011000D の資料の書影を取得するためのURLは
https://ndlsearch.ndl.go.jp/thumbnail/0621849700100011000D.jpg
となります。
2024年1月のNDLサーチのリニューアルに伴い、書影APIを取得するためのURL形式において、末尾に.jpg
の拡張子が必要となる変更が生じました。
1度のリクエストで指定可能なISBN/JP-eコードは1件となります。(複数のISBN/JP-eコードを指定するようなリクエストにはエラーが返戻されます。)
3. 返戻形式
NDLサーチが公開対象の書影を保持しているISBN/JP-eコードが指定された場合はその画像(JPEG形式)を返戻します。
NDLサーチが公開対象の書影を保持していない場合(存在していないISBN/JP-eコードを指定した場合、ISBN/JP-eコードの形式が不正な場合や未指定の場合を含みます)は、エラーとしてHTTPステータスコード「404 not found」を返します。
4. 使用例
例えば、ウェブページ上で書影表示などに本APIを使用することができます。
その場合、HTMLのimgタグのsrcに本APIのURLを指定することで、書影を表示することが考えられます。
<img src="https://ndlsearch.ndl.go.jp/thumbnail/9784422311074.jpg"/>
ただし、書影APIは上述のとおりHTTPステータスコード404を返す場合があります。その場合のハンドリングのために、たとえばonerrorイベントハンドラを使用することが考えられます。
画像取得失敗時にimg要素を非表示とする場合の例
<img src="https://ndlsearch.ndl.go.jp/thumbnail/9784999999996.jpg" onerror="this.style.display='none'"/>
画像取得失敗時に代替画像を表示する場合の例
(data URI schemeを使用して画像を出力しています)<img src="https://ndlsearch.ndl.go.jp/thumbnail/9784999999996.jpg" onerror="this.onerror=null;this.src='data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNSA4LjVjMC0uODI4LjY3Mi0xLjUgMS41LTEuNXMxLjUuNjcyIDEuNSAxLjVjMCAuODI5LS42NzIgMS41LTEuNSAxLjVzLTEuNS0uNjcxLTEuNS0xLjV6bTkgLjVsLTIuNTE5IDQtMi40ODEtMS45Ni00IDUuOTZoMTRsLTUtOHptOC00djE0aC0yMHYtMTRoMjB6bTItMmgtMjR2MThoMjR2LTE4eiIvPjwvc3ZnPg==';" />