Back to Barcode Generation & Decoding

Barcode Generation & Decoding API

Generate and decode barcodes in QR Code, PDF417, Code 39, and Code 128 formats via a simple REST API.

Overview

The Barcode Generation & Decoding API lets you create and read barcodes programmatically. Generate images in multiple popular formats or upload existing barcodes for decoding. All responses include image dimensions, format metadata, and decoded values.

  • Generate QR Code, PDF417, Code 39, and Code 128 barcodes
  • Decode barcodes from image uploads
  • PNG output ready for printing and display
  • Bulk generation support for high-volume workflows

Authentication

All API requests require a RapidAPI key passed via the request header. Subscribe to any plan on RapidAPI to receive your API key.

Header
X-RapidAPI-Key: your-api-key

Endpoints

POST /v1/barcode/generate

Generates a barcode image from the provided data string and format.

POST /v1/barcode/decode

Decodes a barcode from an uploaded image and returns the encoded data.

Request

Send a POST request with a JSON body containing the data and format for generation.

ParameterTypeRequiredDescription
datastringYesData to encode in the barcode
formatstringYesBarcode format: qr, pdf417, code39, or code128
widthnumberNoImage width in pixels (default: 400)
heightnumberNoImage height in pixels (default: 120)
Example Request Body (Generate)
{
  "data": "123456789012",
  "format": "code128"
}

Response

A successful generation returns a 200 status with image details and metadata.

FieldTypeDescription
formatstringCanonical format name (e.g. CODE128, CODE39, PDF417, QR)
valuestringThe encoded data value
encoded_lengthnumberLength of the encoded barcode pattern
image_widthnumberWidth of the generated image in pixels
image_heightnumberHeight of the generated image in pixels
image_datastringBase64-encoded PNG image data
statusstringRequest status: success or error
Example Response (200 OK)
{
  "format": "CODE128",
  "value": "123456789012",
  "encoded_length": 155,
  "image_width": 400,
  "image_height": 120,
  "image_data": "iVBORw0KGgo...",
  "status": "success"
}

Error Codes

StatusCodeMessageDescription
400MISSING_PARAMMissing required parameterRequired field (data or format) is missing
400INVALID_FORMATUnsupported barcode formatFormat must be code39, code128, pdf417, or qr
400INVALID_DATAData too long or contains invalid charsThe data string exceeds format limits or has invalid characters
401UNAUTHORIZEDInvalid or missing API keyThe X-RapidAPI-Key header is missing or invalid
429RATE_LIMITRate limit exceededRequest limit for your plan has been reached
500INTERNAL_ERRORInternal server errorAn unexpected error occurred. Please try again.

Code Examples

cURL

curl --request POST \
--url https://frapi-barcode-v1.p.rapidapi.com/v1/barcode/generate \
--header 'X-RapidAPI-Key: your-api-key' \
--header 'Content-Type: application/json' \
--data '{"data": "123456789012", "format": "code128"}'

Python

import requests url = "https://frapi-barcode-v1.p.rapidapi.com/v1/barcode/generate" headers = { "X-RapidAPI-Key": "your-api-key", "Content-Type": "application/json" } data = { "data": "123456789012", "format": "code128" } response = requests.post(url, json=data, headers=headers) print(response.json())

JavaScript

const url = 'https://frapi-barcode-v1.p.rapidapi.com/v1/barcode/generate'; const options = { method: 'POST', headers: { 'X-RapidAPI-Key': 'your-api-key', 'Content-Type': 'application/json' }, body: JSON.stringify({ data: '123456789012', format: 'code128' }) }; const response = await fetch(url, options); const data = await response.json(); console.log(data);

Rate Limits

Request limits depend on your subscription tier. Exceeding your limit returns a 429 status.

TierRequests / MonthRate Limit
Starter (Free)50010 req/min
Pro10,00060 req/min
Enterprise100,000300 req/min

Try It Out

Test the API right in your browser. No API key required.