REST API — idempotent, official SDKs, OpenAPI 3.1
Bearer authentication, automatic retries in the SDKs, HMAC SHA-256 signed webhooks and versioned schema. Built for teams that need to ship this week — not next quarter.
Bearer token + granular scopes
Every API call requires a token in the header Authorization: Bearer …. Issue separate tokens per environment (prod, staging, sandbox), per scope (messages:send,templates:manage,analytics:read), with a configurable TTL. Key rotation with a 24-hour overlap, no downtime.
- Tokens per environment and scope
- Rotation with 24h overlap, no downtime
- Isolated rate-limit per token
- Audit log of every call in the dashboard
curl https://api.ccx.co/v1/messages \
-H "Authorization: Bearer $CCX_API_KEY" \
-H "Content-Type: application/json"POST /v1/messages
Sends a single message via WhatsApp, SMS or email. Use template for HSM messages (required to open a conversation) or text / media / interactive within a 24h window. Always idempotent: send the same idempotency_key and CCX guarantees single delivery.
- Idempotency by key (7-day window)
- Automatic cross-channel fallback
- Priority: low / default / high / critical
- Scheduled send with timezone
- Server-side template validation
curl https://api.ccx.co/v1/messages \
-H "Authorization: Bearer $CCX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+5511999990000",
"channel": "whatsapp",
"template": {
"name": "order_confirmation",
"language": "pt_BR",
"variables": {
"1": "Maria",
"2": "#A8492",
"3": "R$ 349,90"
}
},
"idempotency_key": "ord_A8492"
}'POST /v1/broadcasts
Fires a broadcast to a pre-computed segment. Fine-grained rate control, per-tenant priority, scheduling and per-recipient retries. Live status available via streaming at GET /v1/broadcasts/:id/events (SSE).
- Configurable per-minute rate-limit
- Pause/resume without losing context
- Smart batching: 500 recipients per job, idempotent
- Dry-run to preview cost upfront
curl https://api.ccx.co/v1/broadcasts \
-H "Authorization: Bearer $CCX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Black Friday — Batch 1",
"template": "black_friday_2026",
"language": "pt_BR",
"segment_id": "seg_ZZ11",
"rate_limit_per_minute": 6000,
"priority": "high",
"schedule_at": "2026-11-28T09:00:00-03:00"
}'Events signed with HMAC SHA-256
Each event leaves your tenant with an HMAC signature you can verify on the header CCX-Signature. Automatic redelivery with exponential backoff up to 24h, ordering guaranteed by message_id, and manual replay from the dashboard for any window in the last 30 days.
message.queuedmessage.sentmessage.deliveredmessage.readmessage.failedmessage.replybroadcast.progressbroadcast.completedtemplate.approvedtemplate.rejected# Sample payload delivered to your HTTPS endpoint:
POST /webhooks/ccx HTTP/1.1
CCX-Signature: t=1745347200,v1=a6f7…
Content-Type: application/json
{
"event": "message.delivered",
"message_id": "msg_0xK91A",
"conversation_id": "cnv_44aa",
"to": "+5511999990000",
"template": "order_confirmation",
"delivered_at": "2026-04-22T14:20:12Z",
"billable": { "category": "utility", "price": 0.16, "currency": "BRL" }
}Transparent about what the API can deliver
Rate-limits
- • Send API: 6,000 req/min per token (Pro) · 50,000 req/min (Enterprise)
- • Burst up to 1,200 req/s for short windows
- • X-RateLimit-Remaining / X-RateLimit-Reset headers on every response
- • Soft throttling: we never return 429 without a prior warning
Idempotency
- • idempotency_key required on POST /messages and /broadcasts
- • 7-day window — returns the cached response
- • Key UUID v4, ULID or custom (max 128 chars)
- • Replays are not counted against volume
Latencies and SLA
- • p50 send: 38ms · p99 ingest: <200ms
- • Delivery to Meta Cloud API: p99 < 500ms
- • Outbound webhooks: p99 < 2s after event
- • Monthly uptime: 99.9% (Business) · 99.95% (Enterprise)
Same API, multiple languages
SDKs generated from the same OpenAPI 3.1. Exponential retries, pluggable telemetry, strong typing and contract tests in CI on every release.
Node.js · TypeScript
@ccxcompany/sdk
npm i @ccxcompany/sdkPython · Pydantic v2
ccx-sdk
pip install ccx-sdkPHP 8.2+ · PSR-18
ccxcompany/sdk-php
composer require ccxcompany/sdkGo 1.22+ · context-aware
github.com/ccxcompany/go
go get github.com/ccxcompany/goRuby 3.3+ · Sorbet
ccxcompany/sdk-ruby
gem install ccxcompany-sdkJava 17+ · Maven Central
com.ccxcompany:sdk
mvn install com.ccxcompany:sdkReady to write your first curl?
Create a sandbox account in 2 minutes. Free tokens, no card, no lock-in.