Quickstart
Five minutes from nothing to a simulated campaign journey.
1. Create an API key
In the app: Account → API → Create key. Choose a name and scopes. For a
first look, the Read-only preset is right. The key is shown once;
copy it. Keys look like mxa_live_….
2. Prove it works
curl https://api.mxaura.ai/v1/me \
-H "Authorization: Bearer mxa_live_YOUR_KEY"
{
"data": {
"key_id": "a1b2c3d4-…",
"key_name": "first key",
"account_id": "bc486e46-…",
"account_type": "company",
"scopes": ["components.read", "pools.read", "campaigns.read", "flows.read", "dispatch.read", "hubs.read"],
"rate_limit_per_min": 120,
"key_status": "active"
}
}
/v1/me is the one endpoint every key can call. Use it to verify a key, see
its scopes, and see the account it belongs to.
3. List your campaigns
curl "https://api.mxaura.ai/v1/campaigns?limit=10" \
-H "Authorization: Bearer mxa_live_YOUR_KEY"
{
"data": [
{ "id": "ad7b0e66-…", "name": "Direct Client", "enabled": 1, "status": "active", "…": "…" }
],
"meta": { "limit": 10, "returned": 1, "total": 1, "next_cursor": null }
}
Every list answers ?limit and ?cursor the same way. See Conventions.
4. Simulate what a contact would receive
This is read-only — it writes nothing and sends nothing.
curl -X POST https://api.mxaura.ai/v1/preview/simulate-campaign \
-H "Authorization: Bearer mxa_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "campaignId": "ad7b0e66-…", "contactId": "124303957916", "maxSteps": 5 }'
The response is the ordered list of steps the cascade would produce for that contact: which pool, which message, at what position, with the resolved sender and branding. It is the same engine dispatch uses, so what you see here is what would send.
5. Where to next
- Want the model to do this for you? Connect the MCP server — the same key model, no code.
- Want to be told when something happens instead of asking? Webhooks.
- Ready to write something? Create a key with a
.writescope and read the resource reference.