Agente de build
Claude Code, Cursor, Copilot
Escreve a integração no seu app. Precisa de contrato previsível, docs em markdown e OpenAPI. A Shiftz entrega compat Evolution + /openapi.json: ele acerta os nomes de campo sem chutar.
A Shiftz fala o padrão Evolution API v2, o mesmo que os modelos de código viram milhares de vezes no treino. O agente integra trocando a base URL e opera o WhatsApp pelo servidor MCP (Model Context Protocol). Você não ensina a WhatsApp API pra IA; ela já conhece.
Tem o agente que constrói a integração e o que opera o WhatsApp ao vivo. Eles precisam de coisas diferentes. Tratar como se fosse um só é onde a maioria das APIs trava.
Claude Code, Cursor, Copilot
Escreve a integração no seu app. Precisa de contrato previsível, docs em markdown e OpenAPI. A Shiftz entrega compat Evolution + /openapi.json: ele acerta os nomes de campo sem chutar.
o agente do seu cliente, em produção
Manda e lê mensagem ao vivo. Precisa de MCP, webhooks confiáveis e erro acionável. A Shiftz entrega servidor MCP nativo, webhooks assinados e eventos de ACK pra ele saber se a mensagem chegou.
documentação em markdown
Sua IA puxa a doc em texto puro (sem renderizar JS) e te ajuda a construir. Tem /llms.txt e /llms-full.txt prontos pra ingestão.
compat Evolution + OpenAPI
O modelo já conhece o padrão Evolution. Some o /openapi.json como contrato de máquina e o código sai certo de primeira.
servidor MCP
Conecte o agente ao MCP e ele manda mensagem, cria instância e lê status em linguagem natural, com a mesma apikey e o mesmo escopo da API.
Pede pro seu assistente de código: "integra a Shiftz, que é compatível com a Evolution API v2". Passa três linhas de contexto e ele monta o fluxo inteiro: criar instância, conectar, esperar ficar open, enviar.
Estou integrando a Shiftz, uma WhatsApp API compatível com Evolution API v2.- Base URL: https://api.shiftz.com.br/v2- Auth: header `apikey: shz_xxx.yyy`- Contrato (OpenAPI): https://api.shiftz.com.br/openapi.jsonImplemente: criar instância → conectar (QR) → esperar "open" → enviar texto.# 1. Cria a instância (já pede o QR)curl -X POST https://api.shiftz.com.br/v2/instance/create \ -H "apikey: shz_xxx.yyy" -H "Content-Type: application/json" \ -d '{ "instanceName": "meu-bot", "qrcode": true }' # 2. Conecta e pega o QR (escaneie no celular)curl https://api.shiftz.com.br/v2/instance/connect/meu-bot \ -H "apikey: shz_xxx.yyy" # 3. Espera o estado virar "open"curl https://api.shiftz.com.br/v2/instance/connectionState/meu-bot \ -H "apikey: shz_xxx.yyy" # 4. Manda a primeira mensagemcurl -X POST https://api.shiftz.com.br/v2/message/sendText/meu-bot \ -H "apikey: shz_xxx.yyy" -H "Content-Type: application/json" \ -d '{ "number": "5511999998888", "text": "Olá do meu agente!" }'O único passo manual é escanear o QR: o WhatsApp exige o celular. O resto seu agente faz sozinho.
Um comando liga a Shiftz ao Claude Code, Claude Desktop, Claude.ai ou Cursor:
claude mcp add -s user --transport http shiftz \ https://api.shiftz.com.br/mcp \ --header "Authorization: Bearer shz_xxx.yyy"Aí é linguagem natural: "cria a instância marketing-01 e me dá o QR", "manda 'Olá' pro 5511999998888", "lista minhas instâncias e o estado de cada uma". A apikey define o escopo: uma chave org-wide vê tudo; uma escopada vê só a instância dela.
As tools shiftz_* cobrem a API inteira: instâncias, mensagens, grupos, perfil, contatos, webhooks e chaves. É function calling sobre o Model Context Protocol, com a mesma apikey e o mesmo escopo da REST.
Enviar em connecting/qr-code retorna 409. Cheque o connectionState ou espere o evento connection.update.
Número fora do WhatsApp retorna 422. Confere com whatsappNumbers e economiza retry.
{ error, details } + status (401, 402, 404, 409, 422, 501, 503). Dá pra tratar de forma determinística.
Valide o header X-Webhook-Signature: sha256=<hmac> e você sabe que o evento veio mesmo da Shiftz.
Dá uma apikey pro seu agente e deixa ele integrar no build e operar no runtime. Trial de 7 dias, sem cartão.