Criar um código
POST/v1/codes
Parâmetros do corpo
namestringobrigatórioRótulo interno do código; nunca é mostrado a quem escaneia.content.typestringobrigatórioUm dos tipos de código suportados, por exemplo url, vcard, wifi.content.urlstringobrigatórioDestino de um código url. Os campos obrigatórios variam por tipo.dynamicbooleanopcionalPadrão true: um link curto que você pode redirecionar. false codifica o conteúdo diretamente.designobjectopcionalPadrão, formato dos olhos e cores. Padrão o design padrão da Dotwick.folderIdstringopcionalPasta em que arquivar o código. Obrigatória para chaves restritas a pastas.templateIdstringopcionalUm modelo de design salvo para aplicar no lugar de design.domainIdstring | nullopcionalDomínio curto personalizado (em breve: os domínios próprios ainda não estão ativados). Omitido = o padrão do espaço de trabalho; null = o domínio compartilhado.slugstringopcionalUm slug curto personalizado em vez de um gerado. Deve ser único no domínio.Exemplo de requisição
requisiçãoPOST /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" }'resposta201 Createdtrecho: o objeto completo também traz design, regras e carimbos de data e hora
{ "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"}Erros
400validation_failedO corpo não passou na validação do esquema: veja error.details para os problemas.401unauthorizedCabeçalho Authorization ausente ou inválido.403forbiddenA chave não tem codes:write ou está restrita a outras pastas.403plan_limit_reachedO limite de códigos dinâmicos do plano foi atingido.409conflictO slug já está em uso neste domínio.422idempotency_conflictO Idempotency-Key foi reutilizado com um corpo diferente.422unsafe_destinationO destino não passou na verificação do Google Web Risk / lista de bloqueio.429rate_limitedAcima do orçamento por minuto ou de rajada: veja Retry-After.