Creación en lote
Parámetros del cuerpo
itemsarrayobligatorioDe 1 a 500 códigos. Cada uno es { content, name?, slug?, folder?, fileName?, ref? }.items[].contentobjectobligatorioEl contenido del código; su tipo debe ser igual a codeType.items[].refstringopcionalTu propia referencia (SKU, id del CRM), repetida en las filas y en el archivo de resultados.items[].folderstringopcionalEl nombre de una subcarpeta bajo folderId, que se crea si no existe.codeTypestringopcionalUn tipo por solicitud. Por defecto url.dynamicbooleanopcionalPor defecto true.folderIdstring | nullopcionalAdónde van los códigos. Por defecto, la raíz del espacio de trabajo.templateIdstring | nullopcionalEl diseño de todos los códigos. Por defecto, el diseño predeterminado de Dotwick.exportobject | nullopcionalGenera también un ZIP cuando termina la tanda, p. ej. { formats: ["svg", "pdf"] }.Solicitud de ejemplo
curl -X POST https://api.dotwick.com/v1/codes/bulk \ -H "Authorization: Bearer sk_live_…" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: fleet-2026-09-batch-3" \ -d '{ "codeType": "url", "folderId": "fld_8k2m4q7x", "items": [ { "name": "Van 15", "content": { "type": "url", "url": "https://example.com/fleet/van-015" }, "ref": "VAN-015" }, { "name": "Van 16", "content": { "type": "url", "url": "https://example.com/fleet/van-016" }, "ref": "VAN-016" } ], "export": { "formats": [ "svg", "pdf" ] } }'{ "id": "blk_9f24ab7c3e1d5f80", "status": "queued", "source": "api", "codeType": "url", "dynamic": true, "counts": { "total": 2, "valid": 2, "invalid": 0, "created": 0, "failed": 0, "canceled": 0 }, "progress": 0, "folderId": "fld_8k2m4q7x", "exportId": null, "createdAt": "2026-09-12T14:03:51.000Z"}Seguir la tanda
La respuesta es 202 Accepted con la tanda. Consulta GET /v1/bulk-imports/{id} hasta que su estado sea succeeded, partially_succeeded o failed, y luego lee los códigos con GET /v1/bulk-imports/{id}/rows o descarga GET /v1/bulk-imports/{id}/results.csv. O suscríbete a bulk.completed y evita las consultas.
Un elemento mal formado hace fallar toda la solicitud con validation_failed en items.N. Los elementos que fallan las comprobaciones de la base de datos (un slug ya en uso) se omiten y se cuentan como no válidos; los demás se crean. Reintenta los fallidos con POST /v1/bulk-imports/{id}/retry.
Límites
Un tipo de código por solicitud: envía una solicitud por tipo. Se aplican el tope de filas en lote del plan y su límite de códigos dinámicos, y las tandas que superan las tareas simultáneas del plan esperan en una cola.