---
title: "Barcode (Code128, EAN, UPC, DataMatrix, PDF417, Aztec...)"
method: POST
path: "/barcode"
tags: ["Images"]
---

# Barcode (Code128, EAN, UPC, DataMatrix, PDF417, Aztec...)

`POST /barcode`

## Request

- Base URL: `https://api.cofferdock.com`
- URL: `https://api.cofferdock.com/barcode`
- Auth: API key in header `x-api-key`

Generates a PNG barcode. Not QR (see generate_qr for that). Each type requires data in its own format (e.g. EAN-13 needs 12-13 digits); a mismatch returns a 400 with a clear reason.

Costs 1 credit per call.

## Request body

- object
  - `data` string, required: The text or number to encode, up to 500 characters. EAN, UPC and ITF-14 take digits only, with an exact length: ean13 12-13, ean8 7-8, upca 11-12, upce 7-8, itf14 13-14. A mismatch returns a 400 error.
  - `type` 'code128' | 'code39' | 'ean13' | 'ean8' | 'upca' | 'upce' | 'itf14' | 'datamatrix' | 'pdf417' | 'aztec': Barcode type: "code128" (default), "code39", "ean13", "ean8", "upca", "upce", "itf14", "datamatrix", "pdf417" or "aztec".
  - `scale` integer: Size multiplier from 1 to 10: width and height grow in proportion, so 3 is three times the size of 1. Default 3.
  - `include_text` boolean: true (default) = also print the encoded text under the bars (datamatrix, pdf417 and aztec never show it); false = barcode only.
  - `output` 'json' | 'binary' | 'url' | 'image': How to return the image: "json" (base64 in the JSON response), "binary" (the image itself, ready for n8n/Make/Zapier) or "url" (a temporary download link, valid 15 minutes). Default: json when the request is JSON, binary when the input was sent raw.

## Response `200`

The resulting image (shape depends on `output`).

- union
  - object
    - `success` boolean
    - `image` string, byte
    - `mime_type` 'image/png'
    - `meta` object
      - `size_bytes` integer
      - `type` string
      - `used` integer: Credits used this month, after this call.
      - `remaining` integer, nullable: Credits left this month (null = unlimited).
      - `unlimited` boolean
  - object: Returned when output=url: a temporary download link (valid 15 minutes).
    - `success` boolean
    - `url` string, uri: Temporary download link. Expires in 15 minutes.
    - `expires_at` string, date-time
    - `mime_type` string
    - `size_bytes` integer
    - `meta` object
      - `used` integer: Credits used this month, after this call.
      - `remaining` integer, nullable: Credits left this month (null = unlimited).
      - `unlimited` boolean

## Other responses

- `400`: Invalid input (nothing is charged).
- `401`: Missing or invalid API key.
- `403`: Email not verified.
- `429`: Monthly credit limit reached, or too many requests per minute for this key (see Retry-After).
- `503`: Server busy (queue full). Retry after the seconds in the Retry-After header.

---

[API](https://skmtc.dev/cofferdock/apis/cofferdock-api.md) · [All operations](https://skmtc.dev/cofferdock/apis/cofferdock-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cofferdock/apis/cofferdock-api/revisions/b57aa000d33a?raw)
