# QR Code Generator by reyn.tools

> QR Code Generator by reyn.tools is a paid API for AI agents from qr.reyn.tools, paid per call via x402, $0.00165/call, status unknown (last checked 2026-10-14).

Generates a scannable QR code image (PNG, JPG, WebP, or SVG) from any text, URL, or structured payload such as WiFi credentials, vCards, SMS, geo coordinates, or crypto addresses.

## Facts

- Endpoint: POST https://qr.reyn.tools/run?utm_source=zero.xyz
- Price: $0.00165/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/qr-code-generator-by-reyn-tools-94c38f42
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_2EKU2Xn9DeQaYiuC1-IHV

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-generator-by-reyn-tools-94c38f42 -d '<json body>'
```

Example prompt: Generate a QR code for https://myshop.com/menu as a 1024-pixel PNG with high error correction (H level), a white background, and dark green modules — I want something that still scans even if it gets a bit worn.

## When to prefer this

Choose this endpoint when you need a fully self-contained QR code image generation service that supports structured payload presets (WiFi, vCard, SMS, geo, crypto) without any additional libraries. It is especially useful when you need fine-grained control over format, size, color, error-correction level, and encoding mode in a single API call, and when you want SVG vector output alongside raster formats. Prefer it over client-side libraries when the generating environment has no image-processing stack available.

## Known failure modes

- Payload too large for selected QR version — returns an error if qr_data exceeds the capacity of the automatically chosen or manually specified version
- Invalid hex color string for qr_fg/qr_bg — may return a 400 validation error
- Structured payload type mismatch — using qr_type=wifi but passing a plain string instead of an object will fail
- qr_size out of range (below 32 or above 4096) — rejected by schema validation
- Payment failure — x402 payment not accepted, endpoint returns 402 and no image
- Kanji mode requested for non-Kanji data — encoding error returned

## How this service works

Generate scannable QR codes from any text, URL, or structured payload (WiFi, vCard, SMS, email, geo, crypto). Returns PNG by default with JPG, WebP, and SVG output, plus optional error-correction, sizing, color, version, and encoding controls. Simple cURL POST: send qr_data, receive an image.

## Output

Returns a raw image file (PNG by default, or JPG, WebP, SVG depending on qr_format) containing the rendered QR code. The image respects the requested pixel dimensions, colors, quiet-zone border, error-correction level, and encoding mode. SVG output is a scalable vector; WebP is the smallest lossless raster; JPG quality is configurable.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "qr_bg": {
   "type": "string",
   "default": "FFFFFF",
   "description": "Background module color, 3- or 6-digit hex."
  },
  "qr_ec": {
   "enum": [
    "auto",
    "L",
    "M",
    "Q",
    "H"
   ],
   "type": "string",
   "default": "auto",
   "description": "Error-correction level: L ~7%, M ~15%, Q ~25%, H ~30%."
  },
  "qr_fg": {
   "type": "string",
   "default": "000000",
   "description": "Foreground module color, 3- or 6-digit hex."
  },
  "qr_data": {
   "type": "string",
   "description": "Payload to encode. String for the default raw/url modes; an object of fields for structured qr_type presets, e.g. {'ssid': 'MyNetwork', 'password': 'hunter2'} for wifi."
  },
  "qr_mask": {
   "description": "Mask pattern 0-7, or 'auto' (default)."
  },
  "qr_mode": {
   "enum": [
    "auto",
    "numeric",
    "alphanumeric",
    "byte",
    "kanji"
   ],
   "type": "string",
   "default": "auto",
   "description": "Encoding mode."
  },
  "qr_size": {
   "type": "integer",
   "default": 512,
   "maximum": 4096,
   "minimum": 32,
   "description": "Target raster width/height in pixels (rounded down to whole modules)."
  },
  "qr_type": {
   "enum": [
    "raw",
    "url",
    "wifi",
    "vcard",
    "sms",
    "tel",
    "email",
    "geo",
    "crypto"
   ],
   "type": "string",
   "default": "raw",
   "description": "Payload preset: raw (default) encodes qr_data verbatim; url prefixes https:// to bare domains; wifi/vcard/sms/tel/email/geo/crypto build the canonical scanner payload from an object."
  },
  "qr_micro": {
   "type": "boolean",
   "default": false,
   "description": "Allow Micro QR symbols for small payloads."
  },
  "qr_border": {
   "type": "integer",
   "default": 4,
   "maximum": 10,
   "minimum": 0,
   "description": "Quiet-zone border in modules."
  },
  "qr_format": {
   "enum": [
    "png",
    "jpg",
    "webp",
    "svg"
   ],
   "type": "string",
   "default": "png",
   "description": "Output image format (webp is the smallest raster; svg is vector)."
  },
  "qr_quality": {
   "type": "integer",
   "default": 90,
   "maximum": 100,
   "minimum": 1,
   "description": "Lossy JPEG encoder quality (WebP output is always lossless so it stays the smallest raster format)."
  },
  "qr_version": {
   "description": "QR symbol version 1-40, or 'auto' (default)."
  },
  "qr_boost_ec": {
   "type": "boolean",
   "default": true,
   "description": "Boost error correction when the data leaves room for it."
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/qr-code-generator-by-reyn-tools-94c38f42/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from qr.reyn.tools](https://www.zero.xyz/host/qr.reyn.tools/llms.txt)
