Start free

How CCX runs, and how to check it yourself.

This page doesn't show availability or incident history, because the external monitor that would measure them isn't published yet. Until it is, here are the platform's components, an endpoint your own system can check and the shortest path to our team.

WhatsApp +55 11 98706-2501 · comercial@ccxmessages.com

Once the external monitor with history is live, availability and incidents will show up on this page.

GET /health/deepNo authentication
curl -s https://api.messages.ccxcompany.co/health/deep {  "status": "ok" | "fail",   // fail = HTTP 503  "uptimeSec": …,  "checks": {    "database":     { "status": …, "latencyMs": … },    "cache":        { "status": …, "latencyMs": … },    "workers":      { "status": …, "latencyMs": … },    "apiRoutes":    { "status": …, "latencyMs": … },    "smsProvider":  { "status": …, "latencyMs": … }  }}
databasecacheworkersapiRoutessmsProvider · reported apart
Response shape, not a live reading. Values with … are placeholders.

What the platform is made of.

When something fails, it's almost always one of these pieces. Knowing which one helps tell whether the problem is ours or whoever delivers the message. Pick one to see what it depends on.

Your systemCalls the API with your key
APICCX Messages
Depends on
ApplicationSão Paulo
DatabaseSão Paulo
QueueSão Paulo
Your teamIn the browser
DashboardCCX Messages
Depends on
ApplicationSão Paulo
DatabaseSão Paulo
Your customerOn WhatsApp or Instagram
WhatsApp & InstagramCCX Messages
Depends on
MetaOutside Brazil
Your customerOn a Brazilian number
SMS & RCSCCX Messages
Depends on
SMS partner and carriersBrazil
Your customerIn their inbox
EmailCCX Messages
Depends on
Amazon SES (AWS)São Paulo
Your customerIn the conversation
AICCX Messages
Depends on
Contracted AI sub-processorsUnited States

Data, replicas and backups stay in São Paulo, Brazil. Delivery through Meta, AI inference, push (Apple and Google) and the Cloudflare network leave the country.

Monitor it on your own clock.

This endpoint answers without authentication and was built for your synthetic monitor to check every minute. Read the response body, not just the HTTP code.

GEThttps://api.messages.ccxcompany.co/health/deep
How to read it
HTTP 503Example
{  "status": "fail",  "uptimeSec": …,  "checks": {    // at least one of the next four is "fail"    "database":     { "status": …, "latencyMs": … },    "cache":        { "status": …, "latencyMs": … },    "workers":      { "status": …, "latencyMs": … },    "apiRoutes":    { "status": …, "latencyMs": … },    "smsProvider":  { "status": …, "latencyMs": … }  }}
HTTP 200Example
{  "status": "ok",  "uptimeSec": …,  "checks": {    "database":     { "status": "ok", "latencyMs": … },    "cache":        { "status": "ok", "latencyMs": … },    "workers":      { "status": "ok", "latencyMs": … },    "apiRoutes":    { "status": "ok", "latencyMs": … },    "smsProvider":  { "status": "fail", "latencyMs": … }  }}
HTTP 200Example
{  "status": "ok",  "uptimeSec": …,  "checks": {    "database":     { "status": "ok", "latencyMs": … },    "cache":        { "status": "ok", "latencyMs": … },    "workers":      { "status": "ok", "latencyMs": … },    "apiRoutes":    { "status": "ok", "latencyMs": … },    "smsProvider":  { "status": "ok", "latencyMs": … }  }}

An example body for this reading, not a live one. The SMS provider probe is cached for 30 seconds and never sends a message. A field marked skipped means that dependency isn't configured, not that it failed.

If something stops, talk to us.

There are no automatic incident emails yet. WhatsApp is the fastest path; email is for logging the problem in detail.

What helps us find the problem fast

When it happened

Approximate date and time, with time zone.

The message or campaign id

The id the API returned (msg_…) or the campaign name in the dashboard.

The error you got

The HTTP code and the code field in the response, such as CONFLICT or RATE_LIMITED.

Channel and number

Which channel, which sending number and, if you can, a sample destination.

Status questions

Anything else? The team that runs the platform answers on WhatsApp.

Why is there no availability figure here?

Because the external monitor that would measure availability and keep its history isn't published yet. We'd rather show nothing than a number nobody can check. When it's live, availability and incidents will show up on this page.

What does /health/deep check?

The database, the cache, the workers and the API routes, which together decide between 200 and 503, plus the SMS provider, which is reported apart so an SMS outage doesn't mark WhatsApp, email and the dashboard as down.

How often can my monitor call it?

It was built for a synthetic monitor that checks every minute, without authentication. The SMS provider probe is cached for 30 seconds and never sends a message.

Will you email me when something breaks?

Not yet: there are no automatic incident emails. Message us on WhatsApp, the fastest path, or email us to log the problem in detail.

Where does my data live?

Data, replicas and backups stay in São Paulo, Brazil. Delivery through Meta, AI inference, push through Apple and Google, and the Cloudflare network leave the country.

Want to see the platform before you integrate?

Sign up through the site and get a US$5 test credit.