What is this?
isbn.wrid.org is a simple, public service that generates
ISBN barcodes as standards‑compliant SVG. It accepts ISBN‑13 and
ISBN‑10 (including an X check digit) and renders a Bookland
EAN‑13 symbol suitable for book covers, catalogs, and long‑lived
documents.
No tracking. No analytics. No URL shorteners. Just encoding in SVG.
Generate an ISBN barcode
The result is an SVG image (vector), suitable for print and PDFs.
How to use it
https://isbn.wrid.org?isbn=9781934198056https://isbn.wrid.org?isbn=978-1-934198-05-6https://isbn.wrid.org?isbn=ISBN 978-1-934198-05-6https://isbn.wrid.org?isbn=193419805X-
https://isbn.wrid.org?isbn=978-1-934198-05-6&price=19.99&cur=US$(optional price add-on) -
https://isbn.wrid.org?isbn=978-1-934198-05-6&price=19.99(price add-on, no currency label) -
https://isbn.wrid.org?isbn=978-1-934198-05-6&price=9.50&cur=GBP(price add-on, GBP prefix) - Returns image/svg+xml (or text/html for this page)
- Cacheable and deterministic
You can embed the result directly in documents, PDFs, or HTML without further processing.
Parameters
-
isbn— ISBN input (required). Accepts ISBN‑13, ISBN‑10 (withX), hyphens/spaces, and an optional leading “ISBN ”. encode— alias forisbn(legacy).-
h— bar height in pixels for SVG (optional; default 260; min 80; max 600). -
price— optional price to add a 5‑digit EAN add‑on (Bookland add‑on). Decimal format, 0.00–99.99. -
cur/currency— optional currency hint for display (max 3 characters, e.g.US$,GBP,JPY,$).
The h parameter controls the bar height in pixels for the SVG output.
This is important for scan reliability and fitting the barcode into back-cover layouts.
Since SVG is vector, the DPI is determined at export or print time.
Price add-on logic (EAN‑5)
When you provide a price, the service generates a 5‑digit EAN add‑on
(often used on books as a price code) and renders it to the right of the main Bookland
EAN‑13 symbol. The add‑on is deterministic: the same inputs always produce the same barcode.
-
Input format:
priceis a decimal number with up to 2 decimals (e.g.19.99,9.5). It is normalized to 2 decimals for display. -
Range:
0.00to99.99. (EAN‑5 uses 4 digits of “cents”, so values above99.99cannot be represented.) -
Encoding: the add‑on is
<prefix><cents>wherecentsis the price multiplied by 100, rounded, then left‑padded to 4 digits. -
Prefix choice: by default the prefix is
5. Ifcur/currencyis exactlyGBPor£, the prefix becomes0. (This is intentionally conservative and may expand later.) -
Currency label:
cur/currencyis optional (max 3 characters). It affects the printed label above the add‑on and, forGBP/£, the prefix rule above.
Examples (what gets encoded to the add‑on):
price=19.99→ cents1999, prefix5→ add‑on51999-
price=9.50&cur=GBP→ cents0950, prefix0→ add‑on00950 price=0→ cents0000, prefix5→ add‑on50000
Note: The add‑on digits you see next to the barcode (e.g. 51200) are part of the EAN‑5 symbol;
the trailing > marker is a visual convention used on many book barcodes.
Content negotiation
This service supports HTTP content negotiation. The same URL can return different
representations depending on the Accept header sent by the client.
- image/svg+xml — returns an SVG ISBN barcode (default)
- text/html — returns this documentation page
This allows the same endpoint to be used interactively by humans and programmatically by machines,
without changing URLs. Note: h applies to SVG output.
CURL Examples
Generate SVG with ISBN-13
curl -H "Accept: image/svg+xml" \
"https://isbn.wrid.org/?isbn=978-1-934198-05-6" \
--output isbn.svg
Generate SVG with ISBN-10
curl -H "Accept: image/svg+xml" \
"https://isbn.wrid.org/?isbn=193419805X" \
--output isbn10.svg
Generate SVG with price add-on
curl -H "Accept: image/svg+xml" \
"https://isbn.wrid.org/?isbn=978-1-934198-05-6&price=19.99&cur=US$" \
--output isbn-price.svg
Generate SVG with price add-on (no currency label)
curl -H "Accept: image/svg+xml" \
"https://isbn.wrid.org/?isbn=978-1-934198-05-6&price=19.99" \
--output isbn-price-nocur.svg
Generate SVG with price add-on (GBP prefix)
curl -H "Accept: image/svg+xml" \
"https://isbn.wrid.org/?isbn=978-1-934198-05-6&price=9.50&cur=GBP" \
--output isbn-price-gbp.svg
Generate SVG with price add-on and custom bar height
curl -H "Accept: image/svg+xml" \
"https://isbn.wrid.org/?isbn=978-1-934198-05-6&price=19.99&cur=US$&h=320" \
--output isbn-price-h320.svg
Generate SVG with custom bar height
curl -H "Accept: image/svg+xml" \
"https://isbn.wrid.org/?isbn=978-1-934198-05-6&h=320" \
--output isbn-h320.svg
Why another barcode generator?
Most barcode generators today are marketing tools. This one is infrastructure.
- No dependency on third-party APIs
- Open, inspectable output
- Stable URLs
- Built for long-lived documents
Why do some companies charge for barcodes?
In many countries, the “barcode” you buy is not a special format — it is simply a correctly sized graphic that encodes your ISBN (and optionally a 5-digit price add-on). Vendors charge for convenience: they provide a file that is ready to paste into a book cover, plus support if you are unsure about sizing, quiet zones, or add-on conventions.
Important distinction: an ISBN is an identifier you must be assigned (typically purchased from your national ISBN agency). A barcode is just one way to render that identifier for scanners. isbn.wrid.org does not sell or assign ISBNs — it generates the barcode artwork from an ISBN you already have.
If you already own your ISBN, this service lets you generate a deterministic, standards-compliant SVG for free. If you don’t own an ISBN yet, you still need to obtain one through the official channel for your region.
What’s next?
In the future, paths like isbn.wrid.org/<id> will resolve ISBN barcodes backed by WRID records.
The current ?isbn= endpoint will remain available.