Autenticación
qr3.app utiliza claves de API (Bearer tokens) para la autenticación. No hay flujos de OAuth: simplemente genera una clave y úsala de inmediato.
Crear una clave de API
- Inicia sesión en app.qr3.app
- Ve a Configuración → Claves de API
- Haz clic en Nueva clave
- Selecciona los permisos (scopes) deseados
- Copia la clave: ¡solo se mostrará una vez!
Tipos de claves
| Tipo | Prefijo | Uso |
|---|
| Secret Key | qr3_sk_ | Lado del servidor (API, backend) |
| Publishable Key | qr3_pk_ | Lado del cliente (solo lectura) |
| Test Key | qr3_test_sk_ | Desarrollo (límites de velocidad propios) |
Uso
Cabecera HTTP
Authorization: Bearer qr3_sk_your_key_here
cURL
curl https://qr3.app/v1/codes \
-H "Authorization: Bearer qr3_sk_your_key_here"
TypeScript SDK
import { QR3 } from "@qr3/sdk";
const client = new QR3({ apiKey: "qr3_sk_your_key_here" });
const codes = await client.codes.list();
CLI
export QR3_API_KEY=qr3_sk_your_key_here
Límites de velocidad (Rate Limits)
| Plan | Solicitudes/Minuto | Cabeceras de respuesta |
|---|
| Gratuito | 30 | X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset |
| Pro | 120 | ← |
| Business | 300 | ← |
| Agency | 600 | ← |
Si se excede el límite, la API devuelve HTTP 429:
"type": "https://docs.qr3.app/errors/rate-limited",
"title": "Too Many Requests",
"detail": "Rate limit of 30 requests/minute exceeded"
Ámbitos (Scopes)
| Scope | Descripción |
|---|
* | Acceso completo |
codes:read | Leer códigos QR |
codes:write | Crear y editar códigos QR |
scans:read | Leer estadísticas de escaneo |
webhooks:write | Configurar webhooks |
account:read | Leer información de la cuenta |