# Sendexa API > Sendexa provides messaging and communication APIs for SMS, Verify (OTP), WhatsApp, Email, Voice, Identity (KYC), Fraud Guard, USSD, and SMPP. > All channels share a single base URL and Basic Auth scheme. ## Authentication All requests require an Authorization header: Authorization: Basic Obtain your API key and secret from the Sendexa Dashboard → Settings → API Keys. ## Base URL https://api.sendexa.co All endpoints are under /v1/. ## Channels & APIs ### SMS - POST /v1/sms/send — Send a single SMS - POST /v1/sms/bulk — Send bulk SMS - GET /v1/sms/status/:id — Get delivery status - POST /v1/sms/resend/:id — Resend a message ### Verify (OTP) - POST /v1/otp/request — Generate and send a one-time password - POST /v1/otp/verify — Verify a PIN { id, pin } - POST /v1/otp/resend/:id — Resend an OTP ### Identity (KYC) - POST /v1/identity/kyc/verify - Submit KYC verification details (ID, registry, biometrics) - GET /v1/identity/kyc/status/:id - Retrieve status of KYC request ### Fraud Guard - POST /v1/fraud/risk/assess - Evaluate real-time risk scores for transactions/signups ### WhatsApp - POST /v1/whatsapp/send — Send any message type (text, image, template, interactive) - GET /v1/whatsapp/status/:id ### Email - POST /v1/email/send — Send transactional or template email - POST /v1/email/bulk — Bulk email send - GET /v1/email/status/:id ### Voice - POST /v1/voice/call — Outbound call with TwiML or URL - POST /v1/voice/agents — Create and configure AI conversational Voice Agents - POST /v1/voice/tts — Text-to-speech call - POST /v1/voice/play — Play an audio file on a call - GET /v1/voice/status/:id ### USSD - POST /v1/ussd/session — Handle a USSD session callback ### SMPP Host: smpp.sendexa.co:2775 Protocol: SMPP v3.4 ## Response Format Every response follows this envelope: { "success": true | false, "message": "...", "data": { ... }, // on success "errors": [ ... ], // on validation failure "requestId": "req_..." } ## Rate Limits - Default: 100 requests / minute per API key - Bulk SMS: 10 requests / minute - Headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset ## Webhooks Sendexa sends signed HTTP POST events for delivery updates, OTP events, etc. Events are signed with HMAC-SHA256 in the X-Sendexa-Signature header. ## SDKs Official SDKs available for: - Node.js / TypeScript: npm install sendexa - Python: pip install sendexa - PHP: composer require sendexa/sdk - Go: go get github.com/sendexa/sendexa-go - Java: co.sendexa:sdk:0.1.0 - .NET: dotnet add package Sendexa.SDK - Ruby: gem install sendexa ## Docs Full documentation: https://docs.sendexa.co API reference: https://api.sendexa.co Dashboard: https://app.sendexa.co