qr-cow

Genera códigos QR estilizados desde cualquier agente de IA: URL, Wi-Fi, vCard y 13 tipos de contenido, con colores y logotipos, además de códigos dinámicos y análisis de escaneo desde la API de qr-cow.

Documentación

Inicio rápido

1

Obtener un token

Inicia sesión, abre Panel → API y MCP y haz clic en Crear token. Obtendrás un valor qrc_live_…, cópialo una vez; solo almacenamos el hash.

2

Haz una llamada

Envía el token como encabezado Bearer contra api.qr-cow.com. Cada endpoint al que puede acceder un JWT de sesión también acepta un token.

3

O conecta MCP

Coloca el fragmento JSON a continuación en la configuración MCP de tu cliente de IA y el mismo token funcionará allí, sin código adicional.

Pruébalo

Elige un endpoint y un lenguaje. El token en los fragmentos es un marcador de posición, pega el tuyo desde el panel.

Renderiza un QR con estilo

Datos más un preset o estilo de entrada, imagen con estilo de salida. No se requiere token.

# Styled image back, no account needed. Save straight to a file:
curl "https://qr-cow.com/api/v1/qr/render" \
  -H "Content-Type: application/json" \
  -o menu-qr.png \
  -d '{
    "data": "https://my-cafe.com/menu",
    "preset": "cafe",
    "size": 600,
    "format": "png"
  }'

# Full control instead of a preset:
#   "style": { "body": "rounded", "eye": "dots",
#     "gradient": { "from": "#06b6d4", "to": "#7c3aed", "direction": "vertical" } }

# Or drop it straight into an <img src>:
#   https://qr-cow.com/api/v1/qr/render?data=https://my-cafe.com&preset=cafe&size=600

API de renderizado con estilo

Genera una imagen QR con estilo y terminada directamente desde tu código. Envía data más un estilo (un preset, una configuración de estudio o campos explícitos) y obtén un PNG, JPG o SVG de vuelta. Sin cuenta y sin registro almacenado, por lo que está diseñado para generar códigos en volumen. POST /api/v1/qr/render para control total, o GET en la misma ruta para insertar un código directamente en una etiqueta de imagen.

ParámetroAceptaQué hace
datastringEl contenido a codificar: una URL, texto plano o una cadena Wi-Fi / vCard preformateada.
presetnombre ↓Un aspecto listo para usar, aplicado primero (ver la lista a continuación).
bodysquare · dots · rounded · extra-rounded · classy · classy-rounded · vertical-bars · horizontal-barsForma del módulo / punto.
eyesquare · rounded · dotsForma del patrón de búsqueda (esquinas).
fg · bg#hexColores de primer plano y fondo, hex de 3, 6 u 8 dígitos.
gradient{ from, to, direction }Degradado de dos colores en los módulos; la dirección es horizontal, vertical o radial.
logoURL de datos base64Un logotipo central, pasado como URL de datos base64. Usa ecc Q o H con un logotipo.
eccL · M · Q · HCorrección de errores. Mayor tolera más daño y un logotipo, a costa de densidad.
size64–2000Ancho de salida en píxeles (cuadrado).
formatpng · jpg · svgpng y jpg llevan todos los estilos; svg es un vector limpio con forma, color y degradado (sin logotipo).

Plantillas que puedes elegir (pasa el nombre como preset): restaurant · cafe · tech · event · retail · wedding · healthcare · real-estate · business-card · crypto · sunset · ocean · forest · aurora · berry · mono

# Pick one of our templates — pass its name as "preset"
curl -X POST https://qr-cow.com/api/v1/qr/render \
  -H "Content-Type: application/json" \
  -d '{"data":"https://acme.com","preset":"restaurant","size":600,"format":"png"}' \
  --output qr.png

# Or your own template — set a style once and reuse it for every code
curl -X POST https://qr-cow.com/api/v1/qr/render \
  -H "Content-Type: application/json" \
  -d '{"data":"https://acme.com","style":{"body":"rounded","eye":"dots","fg":"#1F2937","gradient":{"from":"#F97316","to":"#F5A300"}}}' \
  --output qr.png

Hecho para volumen

Define tu estilo de marca una vez como un objeto style (o elige un preset): ese es tu estilo personal, configurado con antelación y reutilizado para cada código. Recorre el endpoint para generar tantos como necesites; cada llamada es independiente y no almacena nada.

Mantenlo escaneable

Los módulos oscuros sobre fondo claro se escanean de forma más fiable. Los estilos de fondo oscuro o bajo contraste se ven geniales pero se leen con menos fiabilidad en escáneres más débiles, y con un logotipo usa ecc Q o H para que el código siga resolviéndose.

Referencia de endpoints

Todo en /api/v1, misma forma en todos los lenguajes.

MétodoRutaQué hace
POST/qr/renderRenderiza una imagen QR con estilo desde un estilo o preset (sin autenticación, nada almacenado).
GET/qr/renderEl mismo renderizado como GET simple, incrustable directamente en una etiqueta de imagen.
GET/auth/meUsuario autenticado + plan
POST/qrcodesCrea un QR estático o dinámico
GET/qrcodesLista tus códigos QR (paginado)
GET/qrcodes/{id}Obtén los detalles completos de un QR
PATCH/qrcodes/{id}Actualiza nombre / destino dinámico
DELETE/qrcodes/{id}Eliminación suave de un QR
GET/analytics/qrcodes/{id}Escaneos, geo, dispositivo, hora del día
GET/dev/tokensLista tokens de API
POST/dev/tokensCrea un token (devuelve texto plano UNA VEZ)
DELETE/dev/tokens/{id}Revoca un token

MCP, Protocolo de Contexto de Modelo

MCP es un protocolo abierto que Anthropic publicó para conectar clientes de IA a herramientas externas. Una vez conectado, tu asistente puede decir cosas como "haz un código QR para mi nuevo menú" o "muéstrame qué países escanearon mi QR de la cafetería la semana pasada" y llamar a qr-cow directamente.

Claude Desktop / Claude Code

{
  "mcpServers": {
    "qr-cow": {
      "command": "uvx",
      "args": ["qr-cow-mcp"],
      "env": { "QRCOW_API_TOKEN": "qrc_live_..." }
    }
  }
}

Cursor / Zed / otros

Misma forma, la configuración MCP del editor usa command, args y un bloque env. El servidor MCP es un proceso stdio, cualquier cosa que hable MCP puede usarlo.

Guía completa de configuración MCP ↗ qr-cow-mcp en PyPI ↗

Herramientas expuestas por el servidor

HerramientaQué hace
create_qrcodeCrea un QR estático o dinámico (URL, Wi-Fi, vCard, …).
render_styled_qrcodeRenderiza una imagen QR completamente con estilo (formas, degradado, logotipo) a partir de datos más un preset o estilo. Devuelve la imagen; no se guarda nada.
list_qrcodesLista códigos QR recientes en la cuenta del usuario.
get_qrcodeObtiene el diseño actual + destino de un QR.
update_qrcode_destinationCambia el destino de un QR dinámico, el código impreso sigue funcionando.
delete_qrcodeEliminación suave de un código.
get_qrcode_analyticsEscaneos + desglose por país, dispositivo, hora.
mePerfil + plan del usuario con sesión iniciada.

Autenticación

Envía Authorization: Bearer qrc_live_… en cada solicitud. Los tokens son universales, funcionan contra cada endpoint al que accede un JWT de sesión. Los tokens revocados se rechazan inmediatamente.

Errores

Todas las respuestas siguen {success, data, error}. Los códigos de estado HTTP coinciden con RFC 7231; el campo error lleva un código corto legible por máquina (p. ej. token_limit_reached).

Límites de velocidad y seguridad

  • Lecturas Sin límite Las lecturas de listado, obtención y analíticas no tienen límite de velocidad.
  • Crear / renderizar 20 / min por IP POST /qrcodes y /qr/render. Editar y eliminar no están limitados.
  • Límite de tokens 20 / cuenta Tokens de API activos. Revoca uno para liberar un espacio.

Los límites se basan en IP y no se envían encabezados de límite de velocidad, así que en un 429 (error "rate_limit_exceeded") retrocede y reintenta. Solo almacenamos el SHA-256 de cada token; revoca inmediatamente si uno se filtra y aprovisiona uno nuevo en segundos.

¿Listo para construir?

Aprovisiona tu primer token y lanza una integración de "haz un código QR desde esta URL" en menos de 5 minutos.

¿No eres desarrollador? Prueba los generadores de códigos QR o consulta precios.