QRinio

QRinio API v1

Documentación de API

Gestiona recursos QR dinámicos y enlaces cortos desde tu servidor. Empieza con autenticación, reintentos seguros y revisiones.

1. Autenticación

Verifica tu correo y crea una clave API en ajustes. Envíala como token Bearer desde tu servidor. Permite recursos, archivos y diseños, además de leer cuotas y espacios. Seguridad de cuenta, dominios y administración requieren sesión de navegador. No expongas claves en código cliente.

2. Crear un recurso

El ejemplo crea redirección QR y enlace corto en el dominio predeterminado. Comparten destino y consumen sus cuotas respectivas. La respuesta incluye ID, slug y revisión. Representa /r/ como imagen QR y comparte /s/ como enlace corto. La API devuelve datos, no imágenes.

Solicitud de ejemplo
curl --request POST 'https://qrinio.com/api/v1/resources' \
  --header "Authorization: Bearer $QRINIO_API_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: product-42-v1' \
  --data '{
  "title": "Product 42",
  "targetUrl": "https://example.com/products/42",
  "qrEnabled": true,
  "shortEnabled": true
}'
Extracto de respuesta
{
  "id": "00000000-0000-4000-8000-000000000042",
  "slug": "sample-code",
  "revision": 1
}

3. Actualizar sin sobrescribir a otros

Lee el recurso y envía la revisión actual con PATCH. Ante revision_conflict (409), consulta de nuevo y concilia cambios antes de reintentar. DELETE con ?revision= mueve a la papelera; puedes restaurar durante 30 días. El borrado definitivo es separado. Archivo y papelera siguen contando.

Solicitud de ejemplo
curl --request PATCH 'https://qrinio.com/api/v1/resources/00000000-0000-4000-8000-000000000042' \
  --header "Authorization: Bearer $QRINIO_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "revision": 1,
  "targetUrl": "https://example.com/products/42-v2"
}'

4. Reintentos y lotes seguros

Reutiliza el mismo Idempotency-Key y cuerpo idéntico al repetir una creación. Se conserva 24 horas; cambiar el cuerpo con la misma clave devuelve 409. Los lotes exigen clave y 1–100 elementos con claves de fila distintas. Devuelven estado por elemento; HTTP 200 no garantiza todas las filas. Guarda los resultados.

Solicitud de ejemplo
curl --request POST 'https://qrinio.com/api/v1/resources/batch' \
  --header "Authorization: Bearer $QRINIO_API_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: catalog-batch-42-v1' \
  --data '{
  "items": [
    {
      "key": "product-42",
      "data": {
        "title": "Product 42",
        "targetUrl": "https://example.com/products/42",
        "qrEnabled": true,
        "shortEnabled": true
      }
    }
  ]
}'

Límites y errores

Consulta /quotas para límites actuales y excepciones. Claves y sesiones comparten límites de solicitudes; espacios propios usan la cuota del titular. Con 429, respeta Retry-After y espera. Usa code para gestionar errores; message es diagnóstico. No repitas automáticamente errores de validación, permisos o cuota.

Lecturas por minuto
120
Escrituras por minuto
30
Lotes por minuto
2

Referencia de endpoints

Lista recursos con page (desde 1), pageSize (1–100), q, status y workspaceId. Sin workspaceId solo aparecen personales. Archivos usan limit (1–200), offset, search y kind=pdf o image. Perfiles, enlaces y PDF alojados requieren published=true para ser públicos.

Referencia de endpoints
GET /resourcesTodo en un solo lugar.
POST /resourcesCrear código QR
GET · PATCH · DELETE /resources/{id}Editar
POST /resources/batchImportar CSV
POST /resources/bulkAsignar carpeta y etiquetas
GET /resources/{id}/analytics?days=30Estadísticas
GET /resources/{id}/historyHistorial de versiones
GET · POST /assetsArchivos
GET /quotasEmpieza gratis. Conoce tus límites.
GET /workspacesEspacios