FM Barcode

API documentation

Everything you need to make a barcode from FileMaker, curl or code.

Quick start

Create a key on your dashboard, then:

curl
curl "https://barcode.fmdeploy.com/v2/barcode/code128?text=ABC-12345&label=true" \
  -H "Authorization: Bearer bc_live_your_key" -o barcode.png

Authentication

Send your key one of these ways. The first is best.

  • Authorization: Bearer bc_live_…
  • X-API-Key: bc_live_…
  • HTTP Basic auth with the key as the username (password ignored)
  • ?key=bc_live_… on the URL — only if you can’t set headers, because URLs end up in logs

Make a barcode

GET  https://barcode.fmdeploy.com/v2/barcode/{format}?text=...
POST https://barcode.fmdeploy.com/v2/barcode/{format}      JSON or form body, for long QR/PDF417 data
ParameterApplies toDefaultNotes
textall—Required. Up to 4,000 characters.
outputallpngpng or svg
scaleall1 · 3 · 2Pixels per module, 1–20. Defaults: 1D · QR and Data Matrix · PDF417
thickness1D30Bar height in pixels at scale 1
labelallfalsePrint the text under the barcode
fontsizeall8Label size. 1D labels max out at 24.
rotationall00, 90, 180 or 270, clockwise
dpiPNG72Stored in the file. Changes print size, not pixels.
errorlevelQR, PDF417M · 2QR: L, M, Q, H. PDF417: 0–8.
quietzone2DtrueWhite margin around the symbol
size qrsizeQR3 · -1size 1 or 2 gives Micro QR. qrsize is the version (-1 = auto).
columns compactPDF417-1 · falseData columns (-1 = auto). compact gives truncated PDF417.

Errors and limits

Errors are JSON with a 400, 401, 404 or 429 status:

{ "error": { "code": "invalid_data", "message": "EAN-13 must be 12 or 13 digits" } }

Free-plan responses carry X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. GET /v2/usage returns your plan, this month’s count and the reset date. GET /v2/formats lists the formats.

Formats

formatNameExample text
code128Code 128ABC-12345
gs1128GS1-128(01)09501101530003(10)ABC123
code39Code 39ABC123
code39extendedCode 39 ExtendedAbc-123
code93Code 93ABC123
code11Code 110123-4567
codabarCodabarA40156B
ean13EAN-13590123412345
ean8EAN-89638507
upcaUPC-A01234567890
upceUPC-E0123456
upcextension2UPC/EAN 2-digit extension05
upcextension5UPC/EAN 5-digit extension90200
isbnISBN (as EAN-13)978-1-56581-231-4
interleaved2of5Interleaved 2 of 51234567890
standard2of5Standard 2 of 51234567
msiMSI Plessey0123456
postnetPOSTNET01234
qrcodeQR Codehttps://barcode.fmdeploy.com
pdf417PDF417Hello from FileMaker
datamatrixData MatrixSN-0001234

FileMaker

Insert from URL
Insert from URL [ Select ; With dialog: Off ; Target: Items::Barcode ;
  "https://barcode.fmdeploy.com/v2/barcode/code128?label=true&text=" & GetAsURLEncoded ( Items::SKU ) ;
  cURL options: "--header \"Authorization: Bearer " & $$BARCODE_KEY & "\"" ]

For long QR or PDF417 data, POST it instead of putting it in the URL:

POST long data
Set Variable [ $data ; "text=" & GetAsURLEncoded ( Items::Payload ) ]
Insert from URL [ Select ; With dialog: Off ; Target: Items::Barcode ;
  "https://barcode.fmdeploy.com/v2/barcode/pdf417" ;
  cURL options: "--data @$data --header \"Authorization: Bearer " & $$BARCODE_KEY & "\"" ]

Migrating from 1.0

Your existing /barcode/1.0/?c=… URLs keep working on both api.fmsdb.com and barcode.fmdeploy.com, with the same parameters and PNG output.

  1. Create a free account and an API key.
  2. Wherever your solution sends the old shared username and password, send your new key as the username and leave the password empty. Nothing else changes.
  3. Optionally move to /v2/barcode/{format} for SVG, POST and JSON errors.
The shared 1.0 credential stops working on 2027-02-15. On 1.0 URLs, problems come back as an image that says what’s wrong, so you see it in the container field.