---
id: "isbn"
kind: "datatype"
status: "stable"
is_pii: false
categories: ["publishing", "objectids"]
langs: ["common"]
quality: 100
url: "http://registry.apicrafter.io/datatype/isbn"
---

# International Standard Book Number (ISBN) (`isbn`)

ISO 2108 identifier of a book edition, in either of its two forms: the 10-character ISBN used until 2007, whose last character is a check digit or X (isbn10), and the 13-digit ISBN with the prefix 978 or 979 used since then (isbn13). Use this record when a column mixes both forms. The regexp accepts the compact form and the form with hyphens or spaces between the parts.

- Personal data (PII): no
- Categories: Publishing and print (publishing), Objects identifiers (objectids)
- Countries: global
- Languages: Common to most languages (common)
- Classification: identifier

## Detection

Regular expression (Python `re`):

```
^(?:(?:\d[- ]?){9}[\dX]|97[89](?:[- ]?\d){10})$
```

## Examples

- `9780521293662` — Hamlet, Prince of Denmark
- `0-521-29366-9` — The same book with its ISBN-10
- `052122151X` — ISBN-10 with the check character X
- `9770521293662` (invalid example) — Thirteen digits without the prefix 978 or 979

## Mappings

- schema_org: `isbn`
- sherlock: `isbn`
- stdnum: `isbn`

## Metacrafter rules

2 rules: 1 match the field name, 1 match values.

- `isbnfield` (field, `common/media.yaml`)
- `isbnvalue` (data, `common/media.yaml`)

## Supported by tools

- `collibra`
- `doduo`
- `greatexpectations`
- `ibmknowledgecatalog`
- `metacrafter`
- `pythonstdnum`
- `sato`
- `sherlock`
- `talend`

## Translations

- ru: Международный стандартный книжный номер (ISBN): Идентификатор издания книги по ISO 2108 из 10 или 13 символов; последний символ контрольный.

## Sources

- wikipedia: <https://en.wikipedia.org/wiki/International_Standard_Book_Number>
- doc: <https://www.isbn-international.org/>
- schema.org: <https://schema.org/isbn>

## Quality

Score 100/100.

JSON: <http://registry.apicrafter.io/api/v1/datatypes/isbn.json> · Edit: <https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/any/publishing/isbn.yaml>
