Pular para o conteúdo

Criação em massa

POST/v1/codes/bulk

Parâmetros do corpo

itemsarrayobrigatórioDe 1 a 500 códigos. Cada um é { content, name?, slug?, folder?, fileName?, ref? }.
items[].contentobjectobrigatórioO conteúdo do código; o tipo dele deve ser igual a codeType.
items[].refstringopcionalSua própria referência (SKU, ID do CRM), devolvida nas linhas e no arquivo de resultados.
items[].folderstringopcionalO nome de uma subpasta sob folderId, criada se não existir.
codeTypestringopcionalUm tipo por requisição. Padrão url.
dynamicbooleanopcionalPadrão true.
folderIdstring | nullopcionalPara onde vão os códigos. Padrão a raiz do espaço de trabalho.
templateIdstring | nullopcionalO design de cada código. Padrão o design padrão da Dotwick.
exportobject | nullopcionalGere também um ZIP quando a execução terminar, por exemplo { formats: ["svg", "pdf"] }.

Exemplo de requisição

requisiçãoPOST /v1/codes/bulk
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"      ]    }  }'
resposta202 Acceptedtrecho: a execução também traz suas opções, resumo e linhas de prévia
{  "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"}

Acompanhando a execução

A resposta é 202 Accepted com a execução. Consulte GET /v1/bulk-imports/{id} até o status ser succeeded, partially_succeeded ou failed, depois leia os códigos com GET /v1/bulk-imports/{id}/rows ou baixe GET /v1/bulk-imports/{id}/results.csv. Ou assine bulk.completed e dispense a consulta.

Um item malformado faz a requisição inteira falhar com validation_failed em items.N. Os itens que falham nas verificações do banco de dados (um slug já usado) são ignorados e contados como inválidos; os outros são criados. Tente de novo os que falharam com POST /v1/bulk-imports/{id}/retry.

Limites

Um tipo de código por requisição: envie uma requisição por tipo. Valem o limite de linhas em massa do plano e o seu limite de códigos dinâmicos, e as execuções além dos trabalhos simultâneos do plano esperam em uma fila.