[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-0069676e-9f8d-49d6-8f88-06d1033ab774":3,"$frRX6dzAgYY9FIFpkx58K4Cet61BQnTqBJ3l4DypAk9c":42},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":33},"0069676e-9f8d-49d6-8f88-06d1033ab774","whatsapp-cloud-api","与WhatsApp Business Cloud API（Meta）集成。消息、模板、HMAC-SHA256 webhook、客户服务自动化。Node.js和Python模板。","cat_coding_backend","mod_coding","sickn33,coding","---\nname: whatsapp-cloud-api\ndescription: Integracao com WhatsApp Business Cloud API (Meta). Mensagens, templates, webhooks HMAC-SHA256, automacao de atendimento. Boilerplates Node.js e Python.\nrisk: critical\nsource: community\ndate_added: '2026-03-06'\nauthor: renat\ntags:\n- messaging\n- whatsapp\n- meta\n- webhooks\ntools:\n- claude-code\n- antigravity\n- cursor\n- gemini-cli\n- codex-cli\n---\n\n# WhatsApp Cloud API - Integracao Profissional\n\n## Overview\n\nIntegracao com WhatsApp Business Cloud API (Meta). Mensagens, templates, webhooks HMAC-SHA256, automacao de atendimento. Boilerplates Node.js e Python.\n\n## When to Use This Skill\n\n- When the user mentions \"whatsapp\" or related topics\n- When the user mentions \"whatsapp business\" or related topics\n- When the user mentions \"api whatsapp\" or related topics\n- When the user mentions \"chatbot whatsapp\" or related topics\n- When the user mentions \"mensagem whatsapp\" or related topics\n- When the user mentions \"template whatsapp\" or related topics\n\n## Do Not Use This Skill When\n\n- The task is unrelated to whatsapp cloud api\n- A simpler, more specific tool can handle the request\n- The user needs general-purpose assistance without domain expertise\n\n## How It Works\n\nSkill para implementar integracoes profissionais com WhatsApp Business usando a Cloud API oficial da Meta. Suporta Node.js\u002FTypeScript e Python.\n\n### Overview\n\nA WhatsApp Cloud API e a API oficial da Meta para envio e recebimento de mensagens via WhatsApp Business. Desde outubro 2025, e a unica opcao suportada (a API On-Premises foi descontinuada).\n\n**Versao da API:** Graph API v21.0 (2026)\n**Base URL:** `https:\u002F\u002Fgraph.facebook.com\u002Fv21.0\u002F{phone-number-id}\u002Fmessages`\n**Autenticacao:** Bearer Token (System User Token para producao)\n\n**Pricing 2026 (por mensagem):**\n\n| Categoria      | Custo             | Quando cobrado                          |\n|----------------|-------------------|-----------------------------------------|\n| Marketing      | $0.025-$0.1365    | Campanhas, promocoes                    |\n| Utility        | $0.004-$0.0456    | Confirmacoes de pedido, atualizacoes    |\n| Authentication | $0.004-$0.0456    | OTP, reset de senha                     |\n| Service        | GRATIS            | Resposta dentro da janela de 24h        |\n\n**Pre-requisitos:**\n- Conta Meta Business Suite (gratuita)\n- App no Meta for Developers com produto WhatsApp\n- Numero de telefone verificado\n- System User Token (permanente)\n\nSe o usuario nao tem conta Meta Business, leia `references\u002Fsetup-guide.md` para o guia completo de setup do zero.\n\n---\n\n## Decision Tree\n\nUse esta arvore para determinar o proximo passo:\n\n```\nO usuario precisa de setup inicial?\n├── SIM → Leia references\u002Fsetup-guide.md\n└── NAO → Qual linguagem?\n    ├── Node.js\u002FTypeScript\n    └── Python\n    → O que quer fazer?\n       ├── Enviar mensagens → Secao \"Tipos de Mensagem\" abaixo\n       ├── Receber mensagens → Secao \"Webhooks\" abaixo\n       ├── Automatizar atendimento → Secao \"Automacao\" abaixo\n       ├── WhatsApp Flows \u002F Commerce → Secao \"Features Avancados\" abaixo\n       ├── Gerenciar templates → references\u002Ftemplate-management.md\n       └── Compliance \u002F limites → Secao \"Compliance & Quality\" abaixo\n```\n\nPara iniciar um projeto do zero com boilerplate pronto, use o script:\n```bash\npython scripts\u002Fsetup_project.py --language nodejs --path .\u002Fmeu-projeto\n\n## Ou\n\npython scripts\u002Fsetup_project.py --language python --path .\u002Fmeu-projeto\n```\n\n---\n\n## 1. Configurar Variaveis De Ambiente\n\n```env\nWHATSAPP_TOKEN=seu_access_token_aqui\nPHONE_NUMBER_ID=seu_phone_number_id\nWABA_ID=seu_whatsapp_business_account_id\nAPP_SECRET=seu_app_secret\nVERIFY_TOKEN=token_customizado_para_webhook\n```\n\n## 2. Enviar Mensagem De Texto Simples\n\n**Node.js\u002FTypeScript:**\n```typescript\nimport axios from 'axios';\n\nconst GRAPH_API = 'https:\u002F\u002Fgraph.facebook.com\u002Fv21.0';\n\nasync function sendText(to: string, message: string) {\n  const response = await axios.post(\n    `${GRAPH_API}\u002F${process.env.PHONE_NUMBER_ID}\u002Fmessages`,\n    {\n      messaging_product: 'whatsapp',\n      to,\n      type: 'text',\n      text: { body: message }\n    },\n    { headers: { Authorization: `Bearer ${process.env.WHATSAPP_TOKEN}` } }\n  );\n  return response.data; \u002F\u002F { messaging_product, contacts, messages: [{ id }] }\n}\n```\n\n**Python:**\n```python\nimport httpx\nimport os\n\nGRAPH_API = \"https:\u002F\u002Fgraph.facebook.com\u002Fv21.0\"\n\nasync def send_text(to: str, message: str) -> dict:\n    async with httpx.AsyncClient() as client:\n        response = await client.post(\n            f\"{GRAPH_API}\u002F{os.environ['PHONE_NUMBER_ID']}\u002Fmessages\",\n            json={\n                \"messaging_product\": \"whatsapp\",\n                \"to\": to,\n                \"type\": \"text\",\n                \"text\": {\"body\": message}\n            },\n            headers={\"Authorization\": f\"Bearer {os.environ['WHATSAPP_TOKEN']}\"}\n        )\n        return response.json()  # {\"messaging_product\", \"contacts\", \"messages\": [{\"id\"}]}\n```\n\n## 3. Enviar Template Message (Fora Da Janela De 24H)\n\nTemplates sao a unica forma de iniciar conversa com um cliente. Devem ser aprovados pela WhatsApp antes do uso.\n\n```json\n{\n  \"messaging_product\": \"whatsapp\",\n  \"to\": \"5511999999999\",\n  \"type\": \"template\",\n  \"template\": {\n    \"name\": \"hello_world\",\n    \"language\": { \"code\": \"pt_BR\" },\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          { \"type\": \"text\", \"text\": \"João\" }\n        ]\n      }\n    ]\n  }\n}\n```\n\n## 4. Verificar Entrega\n\nUse o script de teste para validar:\n```bash\npython scripts\u002Fsend_test_message.py --to 5511999999999 --message \"Teste de integracao\"\n```\n\n---\n\n## Tipos De Mensagem\n\n| Tipo               | Uso                                   | Limite           |\n|--------------------|---------------------------------------|------------------|\n| Text               | Mensagens simples de texto            | 4096 chars       |\n| Template           | Iniciar conversa \u002F fora da janela 24h | 1600 chars body  |\n| Image              | Fotos e imagens                       | 5MB              |\n| Document           | PDFs, planilhas, docs                 | 100MB            |\n| Video              | Videos                                | 16MB             |\n| Audio              | Mensagens de voz                      | 16MB             |\n| Interactive Button | Botoes de resposta rapida             | Max 3 botoes     |\n| Interactive List   | Menu com opcoes em secoes             | Max 10 opcoes    |\n| Location           | Compartilhar localizacao              | lat\u002Flong         |\n| Contact            | Compartilhar contato                  | vCard format     |\n| Reaction           | Reagir com emoji a mensagem           | 1 emoji          |\n\n**Exemplo - Botoes interativos (Node.js):**\n```typescript\nasync function sendButtons(to: string, body: string, buttons: Array\u003C{id: string, title: string}>) {\n  return axios.post(`${GRAPH_API}\u002F${process.env.PHONE_NUMBER_ID}\u002Fmessages`, {\n    messaging_product: 'whatsapp',\n    to,\n    type: 'interactive',\n    interactive: {\n      type: 'button',\n      body: { text: body },\n      action: {\n        buttons: buttons.map(b => ({\n          type: 'reply',\n          reply: { id: b.id, title: b.title }\n        }))\n      }\n    }\n  }, { headers: { Authorization: `Bearer ${process.env.WHATSAPP_TOKEN}` } });\n}\n\n\u002F\u002F Uso:\nawait sendButtons('5511999999999', 'Como posso ajudar?', [\n  { id: 'suporte', title: 'Suporte' },\n  { id: 'vendas', title: 'Vendas' },\n  { id: 'info', title: 'Informacoes' }\n]);\n```\n\n**Para exemplos completos de todos os tipos em Node.js e Python**, leia `references\u002Fmessage-types.md`.\n\n---\n\n## Webhooks\n\nWebhooks permitem receber mensagens e atualizacoes de status em tempo real.\n\n## Verificacao (Get) - Obrigatorio\n\nQuando voce configura o webhook no Meta Developers, a Meta envia um GET para verificar:\n\n```typescript\n\u002F\u002F Node.js (Express)\napp.get('\u002Fwebhook', (req, res) => {\n  const mode = req.query['hub.mode'];\n  const token = req.query['hub.verify_token'];\n  const challenge = req.query['hub.challenge'];\n\n  if (mode === 'subscribe' && token === process.env.VERIFY_TOKEN) {\n    res.status(200).send(challenge);\n  } else {\n    res.sendStatus(403);\n  }\n});\n```\n\n## Recebimento (Post) - Com Seguranca Hmac-Sha256\n\nToda notificacao de webhook vem assinada no header `X-Hub-Signature-256`. Valide SEMPRE antes de processar:\n\n```typescript\nimport crypto from 'crypto';\n\nfunction validateSignature(rawBody: Buffer, signature: string): boolean {\n  const expectedSig = crypto\n    .createHmac('sha256', process.env.APP_SECRET!)\n    .update(rawBody)\n    .digest('hex');\n  return crypto.timingSafeEqual(\n    Buffer.from(`sha256=${expectedSig}`),\n    Buffer.from(signature)\n  );\n}\n```\n\n**Importante:** Usar `crypto.timingSafeEqual` (Node.js) ou `hmac.compare_digest` (Python) para prevenir timing attacks. Nunca use comparacao simples de strings.\n\n## Eventos Recebidos\n\n- **messages** - Mensagem do cliente (texto, midia, botao, localizacao)\n- **statuses** - Atualizado de status (sent → delivered → read)\n- **errors** - Erros de entrega\n\n**Requisitos:**\n- Endpoint HTTPS com certificado SSL valido\n- Responder com HTTP 200 em ate 5 segundos\n- Dev: use ngrok para teste local\n\n**Para setup completo com exemplos Node.js e Python**, leia `references\u002Fwebhook-setup.md`.\n\n---\n\n## Menu Principal Interativo\n\nUse botoes ou listas para criar um menu de opcoes na primeira interacao:\n\n```python\n\n## Python - Menu Com Lista Interativa\n\nasync def send_main_menu(to: str):\n    await send_interactive_list(\n        to=to,\n        header=\"Bem-vindo!\",\n        body=\"Selecione o que precisa:\",\n        button_text=\"Ver opcoes\",\n        sections=[{\n            \"title\": \"Atendimento\",\n            \"rows\": [\n                {\"id\": \"suporte\", \"title\": \"Suporte Tecnico\", \"description\": \"Ajuda com problemas\"},\n                {\"id\": \"vendas\", \"title\": \"Vendas\", \"description\": \"Conhecer nossos produtos\"},\n                {\"id\": \"financeiro\", \"title\": \"Financeiro\", \"description\": \"Boletos e pagamentos\"},\n            ]\n        }]\n    )\n```\n\n## State Machine Para Fluxos\n\nGerencie conversas com uma maquina de estados. Cada cliente tem um estado atual que determina como a proxima mensagem sera processada:\n\n```\nINICIO → MENU_PRINCIPAL → SUPORTE → AGUARDANDO_DETALHES → ESCALACAO_HUMANO\n                        → VENDAS → CATALOGO → CHECKOUT\n                        → FINANCEIRO → SEGUNDA_VIA_BOLETO\n```\n\n## Janela De 24 Horas\n\n- **Dentro da janela (24h apos ultima mensagem do cliente):** Pode enviar qualquer tipo de mensagem gratuitamente\n- **Fora da janela:** Apenas template messages (cobradas por categoria)\n\n## Integracao Com Ia (Claude Api)\n\nCombine WhatsApp com Claude para respostas inteligentes:\n1. Receba mensagem via webhook\n2. Envie para Claude API com contexto da conversa\n3. Retorne resposta via WhatsApp\n4. Mantenha escalacao para humano disponivel\n\n**Para padroes completos de automacao**, leia `references\u002Fautomation-patterns.md`.\n\n---\n\n## Whatsapp Flows\n\nFormularios interativos multi-tela dentro do WhatsApp. O cliente preenche campos sem sair do app. Definidos em JSON com screens, components e actions.\n\nUse cases: cadastros, agendamentos, pesquisas NPS, selecao de produtos.\n\n## Commerce & Catalogo\n\nAte 500 produtos no catalogo WhatsApp. Envie mensagens de produto individual ou multi-produto com checkout in-app.\n\n## Template Management Api\n\nCrie, liste e delete templates programaticamente. Ate 6000 traducoes por conta. Aprovacao em minutos.\n\n## Whatsapp Channels\n\nBroadcasting unidirecional para subscribers ilimitados. Localizado na aba \"Atualizacoes\" do WhatsApp.\n\n## Click-To-Whatsapp Ads\n\nAnuncios no Facebook\u002FInstagram com botao que abre conversa no WhatsApp. 99% de taxa de abertura.\n\n## Status Tracking\n\nRastreie entrega: pending → server → device → read. Receba via webhook de status updates.\n\n**Para detalhes completos de features avancados**, leia `references\u002Fadvanced-features.md`.\n**Para gerenciamento de templates via API**, leia `references\u002Ftemplate-management.md`.\n\n---\n\n## Checklist Essencial\n\n- [ ] Opt-in explicito obtido antes de enviar mensagens\n- [ ] Mecanismo de opt-out implementado (keyword \"SAIR\" ou \"STOP\")\n- [ ] Registro de consentimento com timestamp, metodo e proposito\n- [ ] Conteudo dentro das politicas do WhatsApp (sem spam, sem conteudo proibido)\n- [ ] LGPD\u002FGDPR compliance (base legal definida, direitos do titular)\n- [ ] Frequencia de mensagens adequada (nao excessiva)\n- [ ] Templates aprovados antes do uso\n- [ ] Verificacao de negocio completa (para limites maiores)\n\n## Quality Rating\n\nO WhatsApp monitora a qualidade das suas mensagens e atribui um rating:\n\n| Rating    | Significado                        | Acao                              |\n|-----------|------------------------------------|-----------------------------------|\n| Verde     | Boa qualidade, poucos bloqueios    | Manter — elegivel para upgrade    |\n| Amarelo   | Qualidade media, atencao necessaria| Revisar conteudo e frequencia     |\n| Vermelho  | Qualidade baixa, risco de suspensao| Acao imediata: reduzir volume     |\n\n**Sinais positivos:** Alta taxa de resposta, engajamento, poucos bloqueios\n**Sinais negativos:** Bloqueios, reports de spam, baixo engajamento\n\n## Tier System (Limites De Mensagem)\n\nDesde outubro 2025, limites sao por **Business Portfolio** (nao por numero):\n\n| Tier         | Conversas\u002F24h | Como alcancar                           |\n|--------------|---------------|------------------------------------------|\n| Inicial      | 250           | Conta nova \u002F nao verificada              |\n| Tier 1       | 1,000         | Auto-upgrade: 50%+ do limite por 7 dias  |\n| Tier 2       | 10,000        | Auto-upgrade: 50%+ do limite por 7 dias  |\n| Tier 3       | 100,000       | Auto-upgrade: 50%+ do limite por 7 dias  |\n| Unlimited    | Ilimitado     | Auto-upgrade: 50%+ do limite por 7 dias  |\n\n**Mudancas 2026:** Tiers 2K e 10K serao removidos. Apos verificacao de negocio, limite imediato de 100K.\n\n**Para guia completo de compliance**, leia `references\u002Fcompliance.md`.\n\n---\n\n## Troubleshooting\n\n| Problema                       | Causa Provavel                     | Solucao                                    |\n|--------------------------------|------------------------------------|--------------------------------------------|\n| 401 Unauthorized               | Token expirado ou invalido         | Gerar novo System User Token               |\n| 400 Bad Request                | Payload malformado                 | Verificar JSON contra exemplos             |\n| Template rejeitado             | Conteudo viola politicas           | Revisar e resubmeter com alteracoes        |\n| Webhook nao recebe             | URL invalida ou sem HTTPS          | Usar ngrok (dev) ou certificado SSL (prod) |\n| Rate limit exceeded            | Ultrapassou 80 msg\u002Fs              | Implementar queue com retry                |\n| Quality rating baixo           | Muitos bloqueios\u002Freports           | Reduzir volume, melhorar conteudo          |\n| Mensagem nao entregue          | Numero invalido ou nao no WhatsApp | Validar numero antes de enviar             |\n| Numero nao verificado          | OTP nao completado                 | Repetir verificacao via SMS ou ligacao      |\n\nPara validar sua configuracao:\n```bash\npython scripts\u002Fvalidate_config.py\n```\n\n---\n\n## Referencias (Leia Conforme Necessidade)\n\n| Arquivo                        | Quando ler                                        |\n|--------------------------------|---------------------------------------------------|\n| `references\u002Fsetup-guide.md`    | Setup inicial — criar conta Meta, configurar API  |\n| `references\u002Fmessage-types.md`  | Exemplos completos de todos os tipos de mensagem   |\n| `references\u002Fwebhook-setup.md`  | Configurar webhooks com seguranca HMAC             |\n| `references\u002Fautomation-patterns.md` | Chatbot, filas, state machine, integracao IA  |\n| `references\u002Fcompliance.md`     | LGPD\u002FGDPR, opt-in, quality rating, tier system    |\n| `references\u002Fapi-reference.md`  | Endpoints, erros, rate limits, pricing 2026        |\n| `references\u002Fadvanced-features.md` | Flows, Commerce, Channels, Ads, Status Tracking|\n| `references\u002Ftemplate-management.md` | CRUD de templates via API                     |\n\n## Scripts\n\n| Script                         | O que faz                                         |\n|--------------------------------|---------------------------------------------------|\n| `scripts\u002Fsetup_project.py`     | Cria projeto com boilerplate (Node.js ou Python)   |\n| `scripts\u002Fvalidate_config.py`   | Valida credenciais e conexao com a API             |\n| `scripts\u002Fsend_test_message.py` | Envia mensagem teste para validar setup            |\n\n## Boilerplate\n\n| Diretorio                      | Conteudo                                          |\n|--------------------------------|---------------------------------------------------|\n| `assets\u002Fboilerplate\u002Fnodejs\u002F`   | Projeto TypeScript\u002FExpress completo                |\n| `assets\u002Fboilerplate\u002Fpython\u002F`   | Projeto Python\u002FFlask completo                      |\n| `assets\u002Fexamples\u002F`             | Exemplos de payloads JSON (templates, webhooks, flows) |\n\n## Best Practices\n\n- Provide clear, specific context about your project and requirements\n- Review all suggestions before applying them to production code\n- Combine with other complementary skills for comprehensive analysis\n\n## Common Pitfalls\n\n- Using this skill for tasks outside its domain expertise\n- Applying recommendations without understanding your specific context\n- Not providing enough project context for accurate analysis\n\n## Related Skills\n\n- `instagram` - Complementary skill for enhanced analysis\n- `social-orchestrator` - Complementary skill for enhanced analysis\n- `telegram` - Complementary skill for enhanced analysis\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,150,1946,"2026-05-16 13:46:59",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"编程开发","coding","mdi-code-braces","代码生成、调试、审查，提升开发效率",2,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":25,"skillCount":32,"createdAt":26},"后端开发","backend","mdi-server","API、数据库、服务端架构",296,[34],{"id":35,"skillId":4,"version":36,"fileName":37,"fileSize":38,"filePath":39,"fileHash":40,"manifest":41,"createdAt":19},"bebc1fa0-e6b5-481c-bdd2-f2013ead1db4","1.0.0","whatsapp-cloud-api.zip",84071,"uploads\u002Fskills\u002F0069676e-9f8d-49d6-8f88-06d1033ab774\u002Fwhatsapp-cloud-api.zip","b7531bc64b236d4592a340db0edebd92fb47969b8f05ffd6b0277e3435de7b35","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":18178},{\"path\":\"assets\u002Fboilerplate\u002Fnodejs\u002F.env.example\",\"isDirectory\":false,\"size\":596},{\"path\":\"assets\u002Fboilerplate\u002Fnodejs\u002Fpackage.json\",\"isDirectory\":false,\"size\":530},{\"path\":\"assets\u002Fboilerplate\u002Fnodejs\u002Fsrc\u002Findex.ts\",\"isDirectory\":false,\"size\":3386},{\"path\":\"assets\u002Fboilerplate\u002Fnodejs\u002Fsrc\u002Ftemplate-manager.ts\",\"isDirectory\":false,\"size\":1913},{\"path\":\"assets\u002Fboilerplate\u002Fnodejs\u002Fsrc\u002Ftypes.ts\",\"isDirectory\":false,\"size\":5338},{\"path\":\"assets\u002Fboilerplate\u002Fnodejs\u002Fsrc\u002Fwebhook-handler.ts\",\"isDirectory\":false,\"size\":5104},{\"path\":\"assets\u002Fboilerplate\u002Fnodejs\u002Fsrc\u002Fwhatsapp-client.ts\",\"isDirectory\":false,\"size\":5370},{\"path\":\"assets\u002Fboilerplate\u002Fnodejs\u002Ftsconfig.json\",\"isDirectory\":false,\"size\":394},{\"path\":\"assets\u002Fboilerplate\u002Fpython\u002F.env.example\",\"isDirectory\":false,\"size\":596},{\"path\":\"assets\u002Fboilerplate\u002Fpython\u002Fapp.py\",\"isDirectory\":false,\"size\":3464},{\"path\":\"assets\u002Fboilerplate\u002Fpython\u002Frequirements.txt\",\"isDirectory\":false,\"size\":65},{\"path\":\"assets\u002Fboilerplate\u002Fpython\u002Ftemplate_manager.py\",\"isDirectory\":false,\"size\":3369},{\"path\":\"assets\u002Fboilerplate\u002Fpython\u002Fwebhook_handler.py\",\"isDirectory\":false,\"size\":4385},{\"path\":\"assets\u002Fboilerplate\u002Fpython\u002Fwhatsapp_client.py\",\"isDirectory\":false,\"size\":7524},{\"path\":\"assets\u002Fexamples\u002Fflow-example.json\",\"isDirectory\":false,\"size\":5458},{\"path\":\"assets\u002Fexamples\u002Finteractive-menu.json\",\"isDirectory\":false,\"size\":5377},{\"path\":\"assets\u002Fexamples\u002Ftemplate-messages.json\",\"isDirectory\":false,\"size\":4908},{\"path\":\"assets\u002Fexamples\u002Fwebhook-payloads.json\",\"isDirectory\":false,\"size\":7768},{\"path\":\"references\u002Fadvanced-features.md\",\"isDirectory\":false,\"size\":15807},{\"path\":\"references\u002Fapi-reference.md\",\"isDirectory\":false,\"size\":15588},{\"path\":\"references\u002Fautomation-patterns.md\",\"isDirectory\":false,\"size\":19505},{\"path\":\"references\u002Fcompliance.md\",\"isDirectory\":false,\"size\":13764},{\"path\":\"references\u002Fmessage-types.md\",\"isDirectory\":false,\"size\":40465},{\"path\":\"references\u002Fsetup-guide.md\",\"isDirectory\":false,\"size\":23263},{\"path\":\"references\u002Ftemplate-management.md\",\"isDirectory\":false,\"size\":13099},{\"path\":\"references\u002Fwebhook-setup.md\",\"isDirectory\":false,\"size\":17510},{\"path\":\"scripts\u002Fsend_test_message.py\",\"isDirectory\":false,\"size\":4063},{\"path\":\"scripts\u002Fsetup_project.py\",\"isDirectory\":false,\"size\":3819},{\"path\":\"scripts\u002Fvalidate_config.py\",\"isDirectory\":false,\"size\":5484}]",{"code":43,"message":44,"data":45},200,"success",{"items":46,"stats":47,"page":50},[],{"averageRating":48,"totalRatings":48,"ratingCounts":49},0,[48,48,48,48,48],{"limit":51,"offset":48,"hasMore":52,"nextOffset":51,"ratedOnly":16},15,false]