Saltar al contenido

Crear un código

POST/v1/codes

Parámetros del cuerpo

namestringobligatorioEtiqueta interna del código: nunca se muestra a quien escanea.
content.typestringobligatorioUno de los tipos de código admitidos, p. ej. url, vcard, wifi.
content.urlstringobligatorioDestino de un código url. Los campos obligatorios varían según el tipo.
dynamicbooleanopcionalPor defecto true: un enlace corto que puedes redirigir. false codifica el contenido directamente.
designobjectopcionalPatrón, forma de los ojos y colores. Por defecto, el diseño predeterminado de Dotwick.
folderIdstringopcionalCarpeta en la que archivar el código. Obligatorio para las claves restringidas a carpetas.
templateIdstringopcionalUna plantilla de diseño guardada que se aplica en lugar de design.
domainIdstring | nullopcionalDominio corto personalizado (próximamente: los dominios propios aún no están activados). Omitido = el predeterminado del espacio de trabajo; null = el dominio compartido.
slugstringopcionalUn slug de enlace corto propio en lugar de uno generado. Debe ser único en el dominio.

Solicitud de ejemplo

solicitudPOST /v1/codes
curl -X POST https://api.dotwick.com/v1/codes \  -H "Authorization: Bearer sk_live_…" \  -H "Content-Type: application/json" \  -H "Idempotency-Key: van-014-2026-09-10" \  -d '{    "name": "Van fleet – unit 14",    "content": {      "type": "url",      "url": "https://example.com/fleet/van-014"    },    "design": {      "pattern": "rounded",      "eyes": {        "frame": "circle",        "ball": "circle"      },      "colors": {        "fg": "#18181B",        "bg": "#FFFFFF"      }    },    "folderId": "fld_8k2m4q7x"  }'
respuesta201 Createdextracto: el objeto completo también incluye diseño, reglas y marcas de tiempo
{  "id": "qr_8841ce2mxk",  "name": "Van fleet – unit 14",  "type": "url",  "dynamic": true,  "status": "active",  "slug": "Xq7mK2p",  "shortUrl": "https://dotwick.co/Xq7mK2p",  "content": {    "type": "url",    "url": "https://example.com/fleet/van-014"  },  "folderId": "fld_8k2m4q7x",  "createdAt": "2026-09-10T09:41:08.000Z"}

Errores

400validation_failedEl cuerpo no superó la validación del esquema: consulta error.details para ver los problemas.
401unauthorizedCabecera Authorization ausente o no válida.
403forbiddenLa clave no tiene codes:write, o está restringida a otras carpetas.
403plan_limit_reachedSe alcanzó el límite de códigos dinámicos del plan.
409conflictEl slug ya está en uso en este dominio.
422idempotency_conflictLa Idempotency-Key se reutilizó con un cuerpo distinto.
422unsafe_destinationEl destino no superó la comprobación de Google Web Risk y de la lista de bloqueo.
429rate_limitedSe superó el presupuesto por minuto o de ráfaga: consulta Retry-After.