> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://api.herramientas.lat/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://api.herramientas.lat/_mcp/server.

# API QR

> Códigos QR con seguimiento vía API

# API QR

Creá QRs con link corto `/r/{code}`, pausalos, eliminálos y consultá escaneos.

## Endpoints

| Método   | Ruta             | Scope      |
| -------- | ---------------- | ---------- |
| `POST`   | `/qr`            | `qr:write` |
| `GET`    | `/qr`            | `qr:read`  |
| `GET`    | `/qr/{id}`       | `qr:read`  |
| `PATCH`  | `/qr/{id}`       | `qr:write` |
| `DELETE` | `/qr/{id}`       | `qr:write` |
| `GET`    | `/qr/{id}/stats` | `qr:read`  |

## Activar seguimiento

El body incluye `tracking: true` (equivale al switch del generador web).
Este endpoint **siempre** crea un QR trackeado. Si mandás `tracking: false`,
recibís `400`.

## Mismas opciones que el front

`POST /qr` acepta el mismo set de opciones que el studio:

* Contenido: `url`, `wifi`, `vcard`, `whatsapp`, `text`, `email`
* Diseño: colores, gradiente, esquinas, logo, marco, ECC, resolución
* Campos tipados (`url`, `wifiSsid`, …) o `payload` crudo

El diseño se guarda en `design` y el QR encodea el **link corto**; el destino
real queda en `payload`.

## Preview visual

Para ver el QR mientras editás el JSON del request:

[Playground QR](https://herramientas.lat/desarrolladores/qr)

## Pausar

```bash
curl -X PATCH https://www.herramientas.lat/api/v1/qr/{id} \
  -H "Authorization: Bearer hl_..." \
  -H "Content-Type: application/json" \
  -d '{"active": false}'
```

Con `active: false`, `/r/{code}` responde 404.