All Sendchamp Open API endpoints require authentication with your dashboard access key.
- Sign in at my.sendchamp.com
- Go to Settings → API Keys
- Copy your access key (starts with
sendchamp_live_orsendchamp_test_)
Pass the key as a Bearer token on every request:
Authorization: Bearer sendchamp_live_YOUR_ACCESS_KEY
Content-Type: application/json
https://api.sendchamp.com/api/v1
Store the key in environment variables — never commit it to source control:
# .env
SENDCHAMP_ACCESS_KEY=sendchamp_live_YOUR_ACCESS_KEY// Node.js
const headers = {
Authorization: `Bearer ${process.env.SENDCHAMP_ACCESS_KEY}`,
"Content-Type": "application/json",
};# Python
import os
headers = {
"Authorization": f"Bearer {os.environ['SENDCHAMP_ACCESS_KEY']}",
"Content-Type": "application/json",
}Before sending messages, check your balance:
curl -X GET https://api.sendchamp.com/api/v1/wallet-balance \
-H "Authorization: Bearer $SENDCHAMP_ACCESS_KEY"Insufficient balance returns a 400 with message "Low balance, fund your wallet" or "insufficient fund".
Sendchamp applies rate limits per API key. Implement exponential backoff on 429 responses.
- Use separate keys for development and production
- Rotate keys if exposed
- Never log the full access key
- Perform OTP confirmation server-side only