# CLEAK | Documentation ## Instructions for AI Agents - For clean Markdown of any page, append `.md` to the page URL - For section-specific indexes, append `/llms.txt` to any section URL - For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.cleak.io/_mcp/server ## Docs - [Introduction](https://docs.cleak.io/cleak-whats-app-api/introduction.md) ## API Docs - CLEAK — WhatsApp API > Phase1admin Setup JWT Required [1. Login → get jwt_token](https://docs.cleak.io/cleak-whats-app-api/phase-1-admin-setup-jwt-required/1-login-get-jwt-token.md) - CLEAK — WhatsApp API > Phase1admin Setup JWT Required [5. GET /api/api-clients → verify both keys listed](https://docs.cleak.io/cleak-whats-app-api/phase-1-admin-setup-jwt-required/5-get-api-api-clients-verify-both-keys-listed.md) - CLEAK — WhatsApp API > Phase1admin Setup JWT Required [3. POST /api/api-clients → create key (campaign_sender_with_webhook)](https://docs.cleak.io/cleak-whats-app-api/phase-1-admin-setup-jwt-required/3-post-api-api-clients-create-key-campaign-sender-with-webhook.md) - CLEAK — WhatsApp API > Phase1admin Setup JWT Required [2. GET /api/api-clients/scopes → see available scopes](https://docs.cleak.io/cleak-whats-app-api/phase-1-admin-setup-jwt-required/2-get-api-api-clients-scopes-see-available-scopes.md) - CLEAK — WhatsApp API > Phase1admin Setup JWT Required [4. POST /api/api-clients → create read-only key (for error tests)](https://docs.cleak.io/cleak-whats-app-api/phase-1-admin-setup-jwt-required/4-post-api-api-clients-create-read-only-key-for-error-tests.md) - CLEAK — WhatsApp API > Phase4admin Audit Revoke JWT Required [18. DELETE /api/api-clients/:clientId → revoke main key](https://docs.cleak.io/cleak-whats-app-api/phase-4-admin-audit-revoke-jwt-required/18-delete-api-api-clients-client-id-revoke-main-key.md) - CLEAK — WhatsApp API > Phase4admin Audit Revoke JWT Required [17. GET /api/api-clients/:clientId/logs → confirm audit trail](https://docs.cleak.io/cleak-whats-app-api/phase-4-admin-audit-revoke-jwt-required/17-get-api-api-clients-client-id-logs-confirm-audit-trail.md) - CLEAK — WhatsApp API > Phase4admin Audit Revoke JWT Required [20. DELETE /api/api-clients/:readOnlyClientId → cleanup read-only key](https://docs.cleak.io/cleak-whats-app-api/phase-4-admin-audit-revoke-jwt-required/20-delete-api-api-clients-read-only-client-id-cleanup-read-only-key.md) - CLEAK — WhatsApp API > Phase4admin Audit Revoke JWT Required [19. GET /api/whatsapp/templates with REVOKED key → expect 401](https://docs.cleak.io/cleak-whats-app-api/phase-4-admin-audit-revoke-jwt-required/19-get-api-whatsapp-templates-with-revoked-key-expect-401.md) - CLEAK — WhatsApp API > Phase2external Client X API Key Only No JWT [8. GET /api/whatsapp/campaigns → verify read access](https://docs.cleak.io/cleak-whats-app-api/phase-2-external-client-x-api-key-only-no-jwt/8-get-api-whatsapp-campaigns-verify-read-access.md) - CLEAK — WhatsApp API > Phase2external Client X API Key Only No JWT [7. GET /api/whatsapp/templates → save first APPROVED template name](https://docs.cleak.io/cleak-whats-app-api/phase-2-external-client-x-api-key-only-no-jwt/7-get-api-whatsapp-templates-save-first-approved-template-name.md) - CLEAK — WhatsApp API > Phase2external Client X API Key Only No JWT [6. GET /api/whatsapp/phone-numbers → save phone_number_id](https://docs.cleak.io/cleak-whats-app-api/phase-2-external-client-x-api-key-only-no-jwt/6-get-api-whatsapp-phone-numbers-save-phone-number-id.md) - CLEAK — WhatsApp API > Phase2external Client X API Key Only No JWT [9. POST campaigns/send-manual → plain template (no body variables)](https://docs.cleak.io/cleak-whats-app-api/phase-2-external-client-x-api-key-only-no-jwt/9-post-campaigns-send-manual-plain-template-no-body-variables.md) - CLEAK — WhatsApp API > Phase2external Client X API Key Only No JWT [12. GET campaigns/:id/button-analytics → check status (uses JWT — not in external API)](https://docs.cleak.io/cleak-whats-app-api/phase-2-external-client-x-api-key-only-no-jwt/12-get-campaigns-id-button-analytics-check-status-uses-jwt-not-in-external-api.md) - CLEAK — WhatsApp API > Phase2external Client X API Key Only No JWT [10. POST campaigns/send-manual → template WITH body variables ({{1}}, {{2}})](https://docs.cleak.io/cleak-whats-app-api/phase-2-external-client-x-api-key-only-no-jwt/10-post-campaigns-send-manual-template-with-body-variables-1-2.md) - CLEAK — WhatsApp API > Phase2external Client X API Key Only No JWT [11. POST campaigns/send-direct → existing CLEAK customer group](https://docs.cleak.io/cleak-whats-app-api/phase-2-external-client-x-api-key-only-no-jwt/11-post-campaigns-send-direct-existing-cleak-customer-group.md) - CLEAK — WhatsApp API > Phase3error Cases [15. 401 — No API key or JWT provided at all](https://docs.cleak.io/cleak-whats-app-api/phase-3-error-cases/15-401-no-api-key-or-jwt-provided-at-all.md) - CLEAK — WhatsApp API > Phase3error Cases [14. 401 — Invalid API key](https://docs.cleak.io/cleak-whats-app-api/phase-3-error-cases/14-401-invalid-api-key.md) - CLEAK — WhatsApp API > Phase3error Cases [13. 403 — Wrong scope (read-only key trying to send campaign)](https://docs.cleak.io/cleak-whats-app-api/phase-3-error-cases/13-403-wrong-scope-read-only-key-trying-to-send-campaign.md) - CLEAK — WhatsApp API > Phase3error Cases [16. 400 — Missing required field (no manualPhoneNumbers)](https://docs.cleak.io/cleak-whats-app-api/phase-3-error-cases/16-400-missing-required-field-no-manual-phone-numbers.md) ## OpenAPI Specification The raw OpenAPI 3.1 specification for this API is available at: - [OpenAPI JSON](https://docs.cleak.io/openapi.json) - [OpenAPI YAML](https://docs.cleak.io/openapi.yaml)