Cambia a dónde apunta un código impreso
Busca un código por nombre, apúntalo a un lugar nuevo y confirma el cambio, sin tocar el diseño.
Esa es la razón de ser de un código dinámico: el póster se queda en la pared mientras cambia el destino que tiene detrás. Son tres llamadas.
1. Busca el código
Lista los códigos filtrados por nombre. q coincide con una parte del nombre; la respuesta incluye los ids que necesitas.
curl "https://api.kuikcode.com/v1/codes?q=front%20window" \
-H "Authorization: Bearer kc_live_..."{
"data": [
{
"id": "K02bEPC2SmtopwPr6S-jt",
"shortCode": "Ab3dE9xYz",
"name": "Front window",
"scanUrl": "https://kuikco.de/p/Ab3dE9xYz",
"destination": { "type": "url", "url": "https://example.com/spring-menu", "pageId": null, "summary": "example.com/spring-menu" },
"folderId": "f_9n2",
"tags": ["signage"],
"archived": false,
"scans": 123
}
],
"next_cursor": null
}Guarda el id. shortCode y scanUrl son lo que está impreso y nunca cambian.
2. Apúntalo a un lugar nuevo
PATCH /codes/{id} con un destination nuevo. Todo lo demás del código (diseño, etiquetas, configuración de seguimiento) se queda como está.
curl -X PATCH https://api.kuikcode.com/v1/codes/K02bEPC2SmtopwPr6S-jt \
-H "Authorization: Bearer kc_live_..." \
-H "Content-Type: application/json" \
-d '{ "destination": { "type": "url", "url": "https://example.com/summer-menu" } }'Para llevar a una KuikPage, envía { "type": "page", "pageId": "..." } con un id de GET /pages.
La respuesta es el código actualizado. Las copias impresas se actualizan en menos de un minuto; el sistema que atiende los escaneos guarda en caché el destino de un código durante sesenta segundos como máximo.
3. Confirma
curl https://api.kuikcode.com/v1/codes/K02bEPC2SmtopwPr6S-jt \
-H "Authorization: Bearer kc_live_..."destination.url muestra la nueva dirección. A partir de ese momento, los escaneos aparecen con el nuevo destino en GET /codes/{id}/scans y en Destinos principales del panel.
Muchos códigos a la vez
Cuando termina una campaña, cambia el destino de todos sus códigos en una sola llamada con PATCH /codes/bulk, hasta cien ids:
curl -X PATCH https://api.kuikcode.com/v1/codes/bulk \
-H "Authorization: Bearer kc_live_..." \
-H "Content-Type: application/json" \
-d '{
"ids": ["K02bEPC2SmtopwPr6S-jt", "Zq9vX1mN4kLp8rTb2cWd0"],
"destination": { "type": "url", "url": "https://example.com/closed-for-season" }
}'La respuesta lista los ids updated y los failed, si los hay, con un motivo. Los ids de otro espacio de trabajo se ignoran en lugar de reportarse.
Para tener en cuenta
- Una clave de solo lectura no puede hacer el paso 2; responde
403 insufficient_scope. - Los códigos creados en el panel con otros tipos de destino (vCard, WiFi, Reglas inteligentes...) vuelven con su nombre interno en
destination.type. Cambiarlos aurlopagedesde la API funciona; la edición de los tipos más completos se queda en el panel. - Los códigos archivados se listan con
?archived=true. Envía"archived": falseen un PATCH para recuperar uno.
Reglas inteligentes desde la API
Un destino también puede ser un conjunto de reglas. PATCH /codes/{id} (o POST /codes) con destination.type = "smartRules" acepta un fallbackUrl y una lista ordenada de reglas; la primera regla cuyas condiciones se cumplen decide a dónde llega el escaneo.
{
"destination": {
"type": "smartRules",
"fallbackUrl": "https://example.com",
"rules": [
{ "name": "iPhone", "url": "https://apps.apple.com/app/id123", "conditions": [{ "type": "os", "value": "ios" }] },
{ "name": "Android", "url": "https://play.google.com/store/apps/details?id=x", "conditions": [{ "type": "os", "value": "android" }] },
{ "name": "Spain, weekdays", "url": "https://example.es", "conditions": [{ "type": "country", "value": "ES" }, { "type": "day", "days": [1, 2, 3, 4, 5] }], "joins": ["and"] }
]
}
}Tipos de condición: os (ios, android, windows, macos, linux, other), country (ISO 3166 alpha-2), language (ISO 639-1), time (before, after, between, HH:MM en la hora local de quien escanea; una ventana que pasa de la medianoche continúa al día siguiente), date (before, after, on, YYYY-MM-DD), day (días de la semana del 0 al 6, empezando por el domingo), totalScans y uniqueScans (gt, lt, eq), location (lat, lng, radiusMeters). Las condiciones de una regla se encadenan de izquierda a derecha con joins. Las reglas inteligentes están incluidas desde el plan PRO; GET /codes/{id} las devuelve en destination.rules, y si después envías un destino url, se eliminan.
Registro de cambios y versiones
La ruta lleva la versión mayor. Los cambios que solo agregan se publican sin aviso; los que rompen la compatibilidad reciben una versión nueva y un periodo de convivencia.
Crea códigos diseñados
Auto Design a partir de un sitio web, una plantilla guardada, el Brand Kit o negro sobre blanco simple, más un logo en el centro, todo desde un solo POST.