Ir al contenido

API de enlaces cortos y códigos QR

La API REST de Krealo QR permite crear enlaces cortos, listarlos, cambiar su destino y obtener su código QR desde tus propias herramientas. Está disponible solo en el plan Pro, por 5,99 US$ al mes más impuestos. Generas un token personal en la página de tu cuenta y lo envías en la cabecera Authorization.

Referencia de las rutas

GET/domainsapi.op.listDomains
GET/meLa cuenta del token (correo, plan)
GET/linksLista tus enlaces (filtros carpeta, etiqueta, estado; cursor)
POST/linksCrea un enlace (url; slug, título y diseño opcionales, logo incluido)
POST/links/bulkCrea hasta 100 enlaces, un resultado por elemento
GET/links/{slug}Un enlace con sus estadísticas
PATCH/links/{slug}Cambia el destino, el título, el estado o el diseño del QR (colores, estilos, marco, logo)
DELETE/links/{slug}Archiva el enlace (se borra 30 días después)
GET/links/{slug}/statsEstadísticas de un periodo (366 días como mucho)
GET/links/{slug}/qrCódigo QR en SVG o PNG, con su diseño
PUT/design/defaultGuarda un diseño por defecto para los enlaces nuevos (null lo quita)
GET/webhooksLista tus webhooks
POST/webhooksCrea un webhook (secreto visible una vez)
DELETE/webhooks/{id}Borra un webhook

Especificación OpenAPI 3.1 (para Postman, Insomnia o un generador de clientes): /api/v1/openapi.json

Sin código

  • Zapier: disparadores «Nuevo enlace» y «Nuevo escaneo», acciones «Crear un enlace» y «Cambiar el destino». Añadir la app Krealo QR a tu Zapier
  • Claude, ChatGPT y otros asistentes (MCP): añade un conector personalizado con la dirección https://krlo.ca/mcp
  • Integraciones

Ejemplos

POST /links · curl
curl -X POST https://krlo.ca/api/v1/links \
  -H "Authorization: Bearer kqr_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: menu-2026" \
  -d '{"url":"https://example.com/menu","slug":"menu"}'
POST /links · JavaScript
const r = await fetch('https://krlo.ca/api/v1/links', {
  method: 'POST',
  headers: { Authorization: 'Bearer kqr_…', 'Content-Type': 'application/json' },
  body: JSON.stringify({ url: 'https://example.com/menu', slug: 'menu' }),
});
const lien = await r.json(); // { slug, short_url, … }
POST /links · Python
import requests

r = requests.post("https://krlo.ca/api/v1/links",
    headers={"Authorization": "Bearer kqr_…"},
    json={"url": "https://example.com/menu", "slug": "menu"})
print(r.json()["short_url"])
GET /links/{slug}/stats
curl "https://krlo.ca/api/v1/links/menu/stats?from=2026-09-01&to=2026-09-30" -H "Authorization: Bearer kqr_…"
PATCH /links/{slug} · design
curl -X PATCH https://krlo.ca/api/v1/links/menu -H "Authorization: Bearer kqr_…" -H "Content-Type: application/json" \
  -d '{"design":{"color":"#1e3a8a","dots":"rounded","corners":"extra-rounded","logo_url":"https://example.com/logo.png","frame":{"style":"cinta","text":"Menu"}}}'
GET /links/{slug}/qr
curl "https://krlo.ca/api/v1/links/menu/qr?format=png&size=1024" -H "Authorization: Bearer kqr_…" -o menu.png
POST /webhooks
curl -X POST https://krlo.ca/api/v1/webhooks -H "Authorization: Bearer kqr_…" -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/hooks/krealo","events":["link.scanned"]}'

Códigos de error

400invalid_requestDato inválido o destino rechazado.
401unauthorizedToken ausente, inválido, revocado o caducado.
402pro_requiredHace falta el plan Pro.
403forbiddenAcción rechazada en esta cuenta.
403insufficient_scopeToken de solo lectura: solo puede leer (GET).
404not_foundEse enlace no existe o no es tuyo.
409slug_takenEse slug ya está ocupado.
409idempotency_in_progressIdempotency-Key ya usada: petición en curso (409) o con otro contenido (422).
422idempotency_mismatchIdempotency-Key ya usada: petición en curso (409) o con otro contenido (422).
429rate_limitedMás de 120 solicitudes por minuto: espera Retry-After segundos.
503not_configuredServicio no disponible por ahora.

Autenticación

La API es solo para cuentas Pro. Genera tu token personal en la página de tu cuenta y envíalo en la cabecera Authorization: Bearer <token>. La URL base es https://qr.krealomedia.com/api/v1.

Lo que permite la API

  • Crear un enlace, o hasta 100 de una vez, con una cabecera Idempotency-Key para no crear nunca dos.
  • Listar tus enlaces, filtrados por carpeta, etiqueta o estado, con paginación por cursor.
  • Cambiar el destino, el título o el estado de un enlace, y archivarlo.
  • Leer las estadísticas de un periodo: escaneos, visitantes únicos, países y dispositivos.
  • Configurar el diseño del QR al crear o modificar un enlace: colores, estilo de los puntos y las esquinas, marco con texto y tu logo desde una dirección https pública o en base64 (PNG, JPEG o WEBP, hasta 2 MB).
  • Descargar el código QR en SVG o PNG con su diseño: colores, puntos, logo y marco.
  • Recibir webhooks firmados cuando un enlace se crea, se edita, se archiva, se bloquea o se escanea.

Límite de uso

El límite es de 120 solicitudes por minuto por cuenta. Cada respuesta indica cómo vas con las cabeceras X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset; por encima, la respuesta 429 indica en Retry-After cuántos segundos esperar.

Destinos aceptados

Solo se aceptan direcciones http y https. Los destinos peligrosos, como javascript: o data:, se bloquean.

Ver también

Generador de código QR gratisGenerador de código QR gratis: pega una dirección, obtén un código QR y un enlace corto con seguimiento, y descarga el PNG. Sin tarjeta de crédito.Acortador de enlaces con conteo de clicsAcortador de enlaces: crea enlaces cortos, cuenta los clics y cambia el destino después con Pro. Gratis hasta 10 enlaces activos. Requiere cuenta.Código QR con logoCódigo QR con logo, colores y estilos personalizados, en PNG, SVG o PDF para imprimir. Función del plan Pro de Krealo QR por 5,99 US$ al mes.Código QR dinámicoCódigo QR dinámico: edita la dirección de destino sin reimprimir el código y sigue los escaneos. Función del plan Pro de Krealo QR por 5,99 US$ al mes.Código QR vCard para tu tarjeta de visitaCrea un código QR vCard para tu tarjeta de visita: una página de contacto con el botón «Añadir a contactos» (.vcf) y una foto opcional.Código QR WiFiCrea un código QR WiFi gratis: tus invitados lo escanean y se conectan sin escribir la contraseña. Los datos van dentro del propio código.Código QR para el menú de un restauranteCrea un código QR para el menú de tu restaurante en PDF: tus clientes lo abren en el móvil y tú cambias el PDF sin cambiar el código.Código QR de WhatsAppCrea un código QR de WhatsApp: un escaneo abre un chat con tu número y un mensaje ya escrito. Gratis con una cuenta, con escaneos contados.Página de enlace en bioCrea una página de enlace en bio con botones y redes sociales, que compartes con un enlace corto o un código QR. Gratis con 5 botones.Una alternativa a Bitly para enlaces cortos y códigos QRComparación honesta entre Krealo QR y Bitly: enlaces cortos, QR dinámicos, estadísticas y páginas de enlaces. Dónde gana Bitly y dónde basta Krealo QR.Una alternativa a QR Code Monkey con seguimiento de escaneosComparación honesta entre Krealo QR y QR Code Monkey: diseño, formatos, códigos estáticos o dinámicos y seguimiento de escaneos. ¿Cuál elegir?Una alternativa a QR Code Generator PROComparación honesta entre Krealo QR y QR Code Generator PRO: QR dinámicos, seguimiento de escaneos, tipos de código y prueba gratuita. Sin precios ajenos.

Preguntas frecuentes

¿Quién puede usar la API?

Las cuentas del plan Pro. El token personal se genera en la página de la cuenta.

¿Cuál es el límite de solicitudes?

Es de 120 solicitudes por minuto.

¿El código QR que devuelve la API puede llevar logo?

Sí. La ruta /links/{slug}/qr devuelve el código QR con el diseño guardado del enlace (colores, estilo de los puntos, logo y marco), en SVG o en PNG de 128 a 2048 píxeles. El diseño se configura en la aplicación, o con el campo design de POST /links y PATCH /links/{slug}, logo incluido.