Naar de inhoud

Bulk aanmaken

POST/v1/codes/bulk

Body-parameters

itemsarrayverplicht1 tot 500 codes. Elke is { content, name?, slug?, folder?, fileName?, ref? }.
items[].contentobjectverplichtDe inhoud van de code; het type moet gelijk zijn aan codeType.
items[].refstringoptioneelJe eigen referentie (SKU, CRM-id), teruggegeven in de rijen en het resultatenbestand.
items[].folderstringoptioneelDe naam van een submap onder folderId, aangemaakt als die ontbreekt.
codeTypestringoptioneelEén type per verzoek. Standaard url.
dynamicbooleanoptioneelStandaard true.
folderIdstring | nulloptioneelWaar de codes heen gaan. Standaard de root van de werkruimte.
templateIdstring | nulloptioneelHet ontwerp van elke code. Standaard het standaardontwerp van Dotwick.
exportobject | nulloptioneelMaak ook een ZIP wanneer de run klaar is, bijvoorbeeld { formats: ["svg", "pdf"] }.

Voorbeeldverzoek

verzoekPOST /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"      ]    }  }'
antwoord202 Acceptedfragment: de run bevat ook zijn opties, samenvatting en voorbeeldrijen
{  "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"}

De run volgen

Het antwoord is 202 Accepted met de run. Vraag GET /v1/bulk-imports/{id} op totdat de status succeeded, partially_succeeded of failed is, en lees dan de codes met GET /v1/bulk-imports/{id}/rows of download GET /v1/bulk-imports/{id}/results.csv. Of abonneer je op bulk.completed en sla het pollen over.

Een misvormd item laat het hele verzoek mislukken met validation_failed bij items.N. Items die databasecontroles niet doorstaan (een slug die al bestaat) worden overgeslagen en als ongeldig geteld; de rest wordt aangemaakt. Probeer de mislukte opnieuw met POST /v1/bulk-imports/{id}/retry.

Limieten

Eén codetype per verzoek: stuur één verzoek per type. De bulkrijlimiet van het abonnement en de limiet voor dynamische codes gelden, en runs boven de gelijktijdige taken van het abonnement wachten in een wachtrij.