Barcode API for publishers
Make print-ready ISBN, EAN and UPC barcodes straight from your own title system, one call per book or up to 100 at once. Every file comes from the same engine as barcoderocket.com: vector bars and digits, 100% K black, the right size for the cover.
Print-ready PDF in one call
Send the ISBN and the price; get back a vector PDF in 100% K, checked and ready to place in InDesign.
A whole list at once
Up to 100 barcodes per call, one ZIP with a separate PDF for each title and a list of the lines that need fixing.
The same checks as the site
Check digits, prefixes and price codes are verified. A wrong number gets a clear reason, never a broken file.
Monthly invoice, no card
Keys and prices are set by agreement. You pay for new barcodes on a monthly invoice; downloading the same barcode again is free.
Documentation
Getting a key
Keys are issued by us. Tell us about your list and we send you a trial key first (br_test_…): it returns the PNG preview only, up to 100 previews a day, so you can wire up your system. A live key (br_live_…) returns print-ready PDFs.
Keep the key on your server. Send it in every request as Authorization: Bearer <key>. Never put it in a web page or an app: there is no browser (CORS) access on purpose. If a key leaks, tell us and we revoke it at once.
One barcode: POST /api/v1/barcode
curl https://barcoderocket.com/api/v1/barcode \
-H "Authorization: Bearer $BARCODEROCKET_KEY" \
-H "Content-Type: application/json" \
-d '{"type": "isbnp", "code": "9780306406157", "price": "19.99"}' \
-o barcode.pdf
The answer is the PDF (application/pdf), named like a download from the site, for example ISBN-9780306406157-51999-barcoderocket.pdf. The header X-Scans-As says what a scanner reads.
| Field | Meaning |
|---|---|
type | The barcode type (list below). Required. |
code | The number: ISBN, EAN, UPC or GTIN, with or without hyphens. For qr, the text or link. Required. |
price | For isbnp and amazon: the US price, e.g. 19.99. Empty means 90000 (no price). |
composite | For the composite types: the 2D component data. |
format | pdf (default) or png for the preview picture. A trial key must send png. |
A list: POST /api/v1/batch
curl https://barcoderocket.com/api/v1/batch \
-H "Authorization: Bearer $BARCODEROCKET_KEY" \
-H "Content-Type: application/json" \
-d '{"type": "isbnp", "rows": [
{"code": "9780306406157", "price": "19.99"},
{"code": "9781861972712"}
]}' \
-o barcodes.zip
Up to 100 barcodes per call, each row with its own price. Or send a plain list of numbers in codes with one shared price. The answer is a ZIP with one PDF per barcode and errors.csv (line, code, reason) for lines that are not valid. The headers X-Made, X-New and X-Errors give the counts. The same number twice is one file. Live keys only.
A batch is all or nothing on your limits: if the new barcodes in it do not fit what is left this month or today, nothing is made and you get a 429 that says how many are left.
From AI assistants (MCP)
Barcode Rocket is also an MCP server for Claude and other AI assistants: https://barcoderocket.com/mcp. Anyone can check a number, explain a price code and see a preview there for free, and authors get the print-ready PDF on a free account. With your live key set as the connector's Authorization: Bearer header, create_barcode_pdf counts against your key's limits instead. How to connect.
Barcode types
| Type | What it makes |
|---|---|
isbn | ISBN barcode (EAN-13 with the ISBN line) |
isbnp | ISBN with the EAN-5 price add-on |
amazon | Amazon KDP size: 2 x 1.2 in, with price add-on |
ingram | IngramSpark size |
ean13, ean8 | Retail EAN |
upca, upce | Retail UPC |
gs1128 | GS1-128 for shipping cartons |
qr | QR code |
ean13comp, ean8comp, upcacomp, upcecomp | GS1 Composite (linear barcode plus 2D component) |
A barcode designed for your house (your label, logo, fonts or layout) can be built for you after we agree on it. It is then enabled for your key only, under its own type name, for example tpl-yourhouse. Call it like any other type with the same fields as the barcode it is built on (code, and price where that type has one). It returns the print-ready PDF; there is no PNG preview for house templates.
Limits
- Live key: 1,000 new barcodes a month and 500 a day by default. We raise them for your volume.
- Every key: 120 calls an hour. A batch counts as one call.
- Every key: up to 2,000 files a day, repeats included.
- A batch holds up to 100 barcodes.
- Trial key: 100 previews a day, PNG only.
- Downloading a barcode your key already made does not count as new.
Errors
Every error is JSON: {"ok": false, "error": "…"}. The message is written for people, so you can show it in your system as it is.
| Status | When |
|---|---|
400 | The number or a field is not valid, e.g. "An ISBN has 13 digits. You entered 12." |
401 | No key, a wrong key, or a revoked key. |
403 | The key may not do this: a PDF or batch with a trial key, or a type not enabled for the key. |
429 | A limit is reached. The message says which one; Retry-After says when to try again where it applies. |
Start with a trial key
Tell us your publishing house, roughly how many titles a month, and which barcode types you need. We reply personally within one working day.