---
title: "Decode QR & Barcode API"
slug: read-qr-barcode-image
url: https://apyhub.com/callable-labs/service/read-qr-barcode-image
provider: Callable Labs
categories: [Data Extraction, Developer Tools, Image Processing]
tags: [qr-code, barcode-scanning, data-extraction, scan-qr, decode-qr-image, barcode-image-reader, qr-code-reader-api, barcode-scanner-api]
auth: api_key
version: 1.0.0
service_type: sync
endpoints: 1
atoms: 20
mcp: true
---

# Decode QR & Barcode API

Decode QR codes and barcodes from an image URL or base64 payload. Returns decoded text, format, position, and parsed payloads when available.

## Endpoints

| Method | URL | Description | Atoms |
| --- | --- | --- | --- |
| POST | `https://api.eu.apyhub.com/callable-labs/read-qr-barcode-image/decode` | What it does Decodes every QR code and barcode found in an image and returns the decoded symbols in… | 20 |

## Endpoint reference

### Read every QR code and barcode in an image

`POST https://api.eu.apyhub.com/callable-labs/read-qr-barcode-image/decode` · 20 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `formats` | body | array of string | no | Restrict detection to these symbologies for speed and accuracy: `qr`, `microqr`, `datamatrix`, `pdf417`, `aztec`, `code128`, `code39`, `code93`, `ean13`, `ean8`, `upca`, `upce`, `itf`, `codabar`, `da… |
| `multiple` | body | boolean | no | Return every symbol found (default true). Set false to return only the first symbol. Default: `true`. |

#### Quickstart

Decode a QR code or barcode from an image by sending either an image URL or base64 image data.

```bash
curl -X POST "https://api.eu.apyhub.com/callable-labs/read-qr-barcode-image/decode" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://cdn.phototourl.com/free/2026-09-16-eaa7b05b-0601-419d-802f-9567cf8fda07.png"
  }'
```

#### What you'll get back

Returns a JSON object with a `count` integer and a `results` array. `count` is the number of symbols decoded, and each item in `results` is an object with `format`, `text`, `content_type`, `position`, and `orientation` fields, plus optional decoded details like `parsed`, `ec_level`, `bytes_base64`, and `symbology_identifier`.

```json
{
  "count": 1,
  "results": [
    {
      "format": "qr",
      "text": "Hello ApyHub",
      "content_type": "text",
      "position": {
        "top_left": [1, 1],
        "top_right": [199, 0],
        "bottom_right": [200, 200],
        "bottom_left": [0, 199]
      },
      "orientation": 0,
      "ec_level": "L",
      "symbology_identifier": "]Q1"
    }
  ]
}
```

## About

## What it does
QR Code Scanner reads every QR code and barcode in an image and returns the decoded symbols in reader order. Send either `image_base64` or `image_url`, and optionally limit detection with `formats` or return only the first match with `multiple` set to `false`.

Use it when you need to extract product labels from packaging photos, decode QR tickets from screenshots, or process receipts and shipping labels at scale. The reader supports common symbologies including QR, Data Matrix, PDF417, Aztec, Code 128, EAN-13, UPC-A, and more.

The response includes a `count` plus a `results` array. Each result contains the decoded `text`, `format`, `content_type`, `position`, and `orientation`, along with optional `parsed` data for known payloads such as Wi-Fi, vCard, EPC, and crypto formats. QR symbols also include `ec_level`, and binary payloads can be returned as `bytes_base64` when the raw bytes differ from the text.

If you are building document intake, inventory scanning, ticketing, or mobile image analysis, QR Code Scanner gives you the decoded content and symbol location from a single image request.

## Usage

Base URL: `https://api.eu.apyhub.com` (default region — see
`GET https://apyhub.com/api/public/regions` for the rest).

Authenticate with an ApyHub API key in the `apy-token` header.
Full docs and a live playground: https://apyhub.com/callable-labs/service/read-qr-barcode-image
