# QR Code Capacity Lookup (ISO 18004)

> QR Code Capacity Lookup (ISO 18004) is a paid API for AI agents from barcode-qr.x402tookit.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-11-02).

Returns QR code capacity limits from the ISO 18004 table — max digits, alphanumeric, and bytes for a given version, or finds the smallest version that fits a given data length.

## Facts

- Endpoint: GET https://barcode-qr.x402tookit.com/qr-capacity?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/qr-code-capacity-lookup-iso-18004-7468cdb0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_WdereROow4m7j4cbaYw9B

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability qr-code-capacity-lookup-iso-18004-7468cdb0
```

Example prompt: What is the maximum number of bytes and alphanumeric characters a version 10 QR code can store at error correction level M? Also, what is the smallest version I would need for a 250-character alphanumeric string at error correction Q?

## When to prefer this

Choose this endpoint when you need to programmatically determine QR code capacity before generating a code, validate whether data will fit in a target version, or find the optimal version for a given payload length. It is a pure ISO 18004 table lookup — ideal for pre-flight checks before calling a QR SVG generator, capacity planning for barcode workflows, or building dynamic QR systems that select version based on content length. It is faster and cheaper than generating a full QR SVG just to check capacity.

## Known failure modes

- Missing required 'ec' parameter returns an error
- Invalid error correction level (not L, M, Q, or H) returns a validation error
- Version out of range (not 1–40) returns an error
- Length too large to fit in any QR version returns no matching version
- Invalid mode string returns a validation error
- Conflicting parameters (both version and length omitted) may return ambiguous results

## How this service works

QR capacity from the ISO 18004 table: max digits, letters, bytes for a version, or the smallest version for a length.

## Output

Returns a structured object containing the matched QR version's full capacity profile: max digits, max alphanumeric characters, max bytes, max kanji, data codewords, total codewords, error correction codewords and blocks per block, module grid size, and the error correction level used. When searching by length, it returns the smallest version that satisfies the request.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "ec"
     ],
     "properties": {
      "ec": {
       "type": "string",
       "description": "Error correction level L, M, Q or H"
      },
      "mode": {
       "type": "string",
       "description": "numeric, alphanumeric or byte (default byte) for the length search"
      },
      "length": {
       "type": "integer",
       "description": "Characters to store: returns the smallest version that fits"
      },
      "version": {
       "type": "integer",
       "description": "QR version 1 to 40: returns every mode's capacity"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "asOf": {
       "type": [
        "null",
        "string"
       ]
      },
      "source": {
       "type": [
        "null",
        "string"
       ]
      },
      "ecLevel": {
       "type": [
        "null",
        "string"
       ]
      },
      "reasons": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "string"
       }
      },
      "summary": {
       "type": [
        "null",
        "string"
       ]
      },
      "verdict": {
       "type": [
        "null",
        "string"
       ]
      },
      "version": {
       "type": [
        "null",
        "object"
       ],
       "properties": {
        "modules": {
         "type": [
          "null",
          "number"
         ]
        },
        "version": {
         "type": [
          "null",
          "number"
         ]
        },
        "maxBytes": {
         "type": [
          "null",
          "number"
         ]
        },
        "maxKanji": {
         "type": [
          "null",
          "number"
         ]
        },
        "maxDigits": {
         "type": [
          "null",
          "number"
         ]
        },
        "dataCodewords": {
         "type": [
          "null",
          "number"
        
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/qr-code-capacity-lookup-iso-18004-7468cdb0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from barcode-qr.x402tookit.com](https://www.zero.xyz/host/barcode-qr.x402tookit.com/llms.txt)
