Pular para o conteúdo

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.