Como usar o SDK TypeScript da Clickmax
O pacote @clickmax/public-sdk chama a API da Clickmax a partir de código JavaScript ou TypeScript. Cada endpoint tem um método tipado, e cada chamada devolve um resultado com o valor ou com o erro.
Antes de começar, você precisa de:
- uma chave de API do workspace, criada por um proprietário ou administrador em Configurações > Conexões > API (detalhes em Autenticação na API da Clickmax);
- um runtime com
fetcheAbortSignal.any, como Node.js 22 ou mais recente, Deno, Bun ou Cloudflare Workers; - um projeto que use módulos ES, porque o pacote não tem versão CommonJS.
A chave age em nome do workspace inteiro. Use o SDK somente no servidor e carregue a chave de uma variável de ambiente ou de um gerenciador de segredos. Nunca inclua a chave em código que roda no navegador ou em aplicativos.
Fazer a primeira chamada
Instale o pacote
Crie o cliente
O segundo argumento do construtor aceita opções que valem para todas as chamadas da instância:
O construtor é o único ponto do SDK que lança exceção. Ele lança TypeError quando a chave está vazia ou malformada ou quando uma opção é inválida.
Chame um endpoint
Os métodos seguem o caminho do endpoint: /tags/list vira clickmax.tags.list() e /tags/manual-list vira clickmax.tags.manualList(). Endpoints sem recurso ficam direto no cliente, como /whoami, que vira clickmax.whoami().
O primeiro argumento é a entrada do endpoint, com os mesmos campos da referência interativa:
Endpoints sem entrada, como clickmax.tags.list(), não recebem esse argumento.
Trate o resultado
Os métodos nunca lançam exceção e nunca rejeitam a promise. Leia o resultado como objeto:
Ou desestruture como tupla [ok, error, value]:
Nos dois formatos, o TypeScript sabe que value existe quando ok é true e que error existe quando ok é false.
Tratar cada tipo de erro
O error de um resultado com falha é um ClickmaxError, que estende Error:
Os campos type, code, requestId e issues vêm do corpo de erro da API, e os valores possíveis estão em Erros na API da Clickmax. O erro também tem status (o status HTTP, ou 0 quando nenhuma resposta chegou), message (texto para logs, que pode mudar entre versões), retryAfter (os segundos do cabeçalho Retry-After, quando a API envia) e raw (o corpo da resposta como veio). Se a resposta de erro não vier em JSON, o SDK deduz o type pelo status HTTP.
Quando a requisição não recebe uma resposta utilizável, o SDK usa tipos próprios:
Quando o SDK recusa um argumento antes de enviar a requisição, como um timeout negativo ou um corpo que não pode ser convertido em JSON, o resultado falha com type invalid_request, code invalid_argument e status 0.
Ao pedir ajuda ao suporte, informe o error.requestId.
Tentar de novo após o limite de requisições
Todas as chaves de um workspace dividem o limite de 100 requisições a cada 10 segundos. Quando ele é ultrapassado, o resultado falha com type rate_limit e retryAfter indica quantos segundos esperar:
Repita automaticamente os erros rate_limit. Nos erros api, network e timeout, repita com intervalos crescentes (backoff) só quando for seguro fazer a chamada de novo. Um erro invalid_request, authentication ou permission volta igual enquanto a requisição ou a conta não mudarem.
Mudar as opções de uma única chamada
O último argumento de todo método aceita signal, timeout, headers e fetch. Cada opção substitui o valor da instância só naquela chamada:
Os cabeçalhos da chamada são aplicados por cima dos cabeçalhos da instância. O cabeçalho Authorization sempre usa a chave da instância e não pode ser trocado por chamada.
Usar vários workspaces
Cada instância guarda a própria chave e as próprias opções, e as instâncias não compartilham estado. Crie uma instância por workspace:
Validar dados com zod
O subcaminho @clickmax/public-sdk/zod exporta schemas do zod para a entrada e para a resposta de sucesso de cada endpoint. O uso é opcional: o cliente não importa esses schemas e não valida a entrada antes de enviar a requisição. Para usá-los, instale o zod 4 (4.1.13 ou uma versão 4.x mais recente) no seu projeto:
O nome do schema junta o recurso e o método em PascalCase com um sufixo:
A referência interativa mostra o método HTTP de cada endpoint. Métodos do próprio cliente usam só o nome do método, como WhoamiResponse para clickmax.whoami().
Os schemas são escritos com zod/mini, e o bundler inclui no seu build só os schemas que você importa.
Atualizar o pacote
Cada versão do pacote corresponde à API v0 no momento em que foi publicada. Como a v0 ainda pode mudar, fixe a versão que você testou e teste a integração antes de atualizar.