Qué puedes construir con ella
Crea un código con una sola petición
Envía el destino y tu propia referencia. La respuesta trae el enlace corto que hay que codificar y, con include=svg, la imagen terminada.
curl -X POST "https://qrmaker.ai/api/v1/qrcodes?include=svg" \
-H "Authorization: Bearer $QR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"target_url": "https://shop.example.com/product/AB12CD",
"external_id": "AB12CD",
"name": "Product AB12CD",
"folder": "spring-campaign",
"style": { "dot_style": "fluid", "finder_shape": "smooth" }
}'
{
"success": true,
"data": {
"id": "hzu23X",
"external_id": "AB12CD",
"target_url": "https://shop.example.com/product/AB12CD",
"short_link": "https://qrmk.cc/hzu23X",
"status": "active",
"scan_count": 0,
"image_version": "a1b2c3d4e5f60718",
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1000 1000\" …>"
}
}
Codifica el short_link, nunca tu propia URL: es lo que permite editar y contar el código. Si envías otra vez el mismo external_id, recibes el mismo código, así que un reintento no puede crear un duplicado.
Endpoints
POST /v1/qrcodes- Crear un código (añade
?include=svgpara recibir también la imagen) POST /v1/qrcodes/batch- Crear hasta 100 códigos en una petición
GET /v1/qrcodes- Listar códigos, con sincronización incremental mediante
updated_since PATCH /v1/qrcodes/{id}- Cambiar el destino, el nombre, la carpeta, el estado o el estilo
GET /v1/qrcodes/{id}/svg- El código en SVG, con caché por ETag
GET /v1/qrcodes/{id}/analytics- Escaneos de un código en un intervalo de fechas
GET /v1/analytics/summary- Muchos códigos en una llamada, agrupados por código, carpeta o día
GET /v1/scans- Escaneos nuevos desde el último que procesaste
GET /v1/scans/export- Escaneos en un archivo CSV
GET /v1/usage- Uso y cuota de este mes
Ejemplos ejecutables
Cada archivo es un programa completo. Pon tu token y ejecútalo.
- Shell:
quickstart.sh— crear un código, guardar el SVG, cambiar el destino y leer los escaneos - Node.js:
node-quickstart.mjs— el mismo flujo con reintentos y gestión de conflictos, sin paquetes - Python:
python-bulk-from-csv.py— convertir un CSV de enlaces en códigos, 100 por petición, con un SVG por fila - Google Sheets:
google-sheets.gs— crear códigos a partir de las filas de una hoja y escribir de vuelta los enlaces cortos - Documentación interactiva de la API
- Especificación OpenAPI 3
- Colección de Postman
- Archivo de reglas para asistentes de programación con IA
Límites y precio
- Plan
- Business: 29 $ al mes o 279 $ al año
- Prueba gratuita
- 14 días en el plan mensual para clientes nuevos. Hace falta una tarjeta.
- Cuota mensual
- 50 000 peticiones correctas. Las que fallan no cuentan.
- Límite de frecuencia
- 120 peticiones por minuto por cuenta
- Dónde se ejecuta
- De servidor a servidor. Las llamadas desde el navegador se bloquean por CORS.
- Formato de imagen
- Solo SVG. Conviértelo a PNG en tu propio sistema si lo necesitas.
Detalles que te ahorran problemas después
- Creación segura ante reintentos. Un
external_ides único por cuenta. El mismo identificador con el mismo destino devuelve el código existente con un 200. - Un POST nunca mueve un código impreso. El mismo identificador con otro destino devuelve 409. Cambiar un destino es siempre un PATCH explícito, que pasa las mismas comprobaciones de seguridad que la web.
- Códigos de error estables. Cada error lleva un
codelegible por máquina. El mensaje en inglés es para personas y puede cambiar. - Guarda la imagen en caché por versión.
image_versionsolo cambia cuando cambia la imagen, y es también el ETag del endpoint de SVG. Cambiar el destino nunca lo modifica. - Tokens de solo lectura. Da a los sistemas de informes un token que solo pueda hacer GET. Si se filtra, no sirve para crear, cambiar ni borrar nada.
Preguntas frecuentes
¿La API tiene un nivel gratuito?
No. La API forma parte del plan Business. Los clientes nuevos pueden probar gratis el plan mensual durante 14 días; hace falta una tarjeta y se renueva a 29 $ al mes si no cancelas.
¿Puedo obtener imágenes PNG?
La API devuelve SVG, que se imprime nítido a cualquier tamaño y funciona en una etiqueta img. Si necesitas PNG, convierte el SVG en tu propio sistema. La guía de integración explica cómo hacerlo en Node, Python y el navegador.
¿Puedo llamar a la API desde una página web?
No. Las peticiones de navegador entre orígenes están bloqueadas, de modo que el token se queda en tu servidor. Llama a la API desde tu backend y pasa el resultado a la página.
¿Hay webhooks?
No. En su lugar, GET /v1/scans devuelve en orden los escaneos nuevos. Consúltalo cada 30 o 60 segundos y guarda el cursor que devuelve. Las respuestas vacías no cuentan para la cuota.
¿Qué pasa con mis códigos si cancelo?
Siguen redirigiendo. El acceso a la API se detiene cuando termina el plan, junto con las demás funciones de Business.