me:readmereadpublicInspect the current API key, org, scopes, and rate-limit profile.
Create a key, validate it against /api/v1/me, copy a request, and move to production without waiting on support.
Use the portal to create a stx_ key with only the scopes your integration needs.
/api/v1/me.The response confirms org, key id, scopes, and rate-limit profile.
Start with contacts, inbox threads, broadcasts, or webhook delivery logs.
Use retry-safe writes and signed webhooks before going live.
Send the key in the Authorization header. Do not put keys in query strings, logs, or frontend bundles you do not control.
Public keys authorize only the versioned /api/v1 surface. They do not grant access to older portal routes or internal assistant systems.
curl https://api.statxe.com/api/v1/me \ -H "Authorization: Bearer stx_live_xxx"
me:readmereadpublicInspect the current API key, org, scopes, and rate-limit profile.
domains:readdomainsreadpublicRead verified sending domains and available sender identities.
inbox.threads:readinboxreadpublicRead inbox threads, messages, and delivery events.
inbox.threads:writeinboxwritepublicUpdate inbox thread/message state such as read, starred, archived, and tags.
outbox.broadcasts:readoutboxreadpublicRead outbox broadcasts, campaign drafts, schedules, and send status.
outbox.broadcasts:writeoutboxwritepublicCreate and update broadcast drafts and schedules.
outbox.broadcasts:sendoutboxsendpublicLaunch or cancel broadcast/send lifecycle operations.
outbox.transactional:sendoutboxsendpublicSend individual transactional emails via the API or the SMTP front door. Deliberately separate from outbox.broadcasts:send so an SMTP-only key cannot launch a broadcast.
contacts:readcontactsreadpublicRead contacts and contact metadata.
contacts:writecontactswritepublicCreate, update, import, export, and delete contacts.
segments:readsegmentsreadpublicRead segments, groups, and membership lists.
segments:writesegmentswritepublicCreate/update segments and manage contact membership.
webhooks:readwebhooksreadpublicRead webhook endpoints and delivery status.
webhooks:writewebhookswritepublicCreate and update webhook endpoints.
webhooks:adminwebhooksadminpublicDelete webhooks, rotate secrets, and replay deliveries.
api_keys:readapi_keysreadpublicRead API key metadata.
api_keys:writeapi_keyswritepublicCreate and revoke API keys.
assistant.chat:writeassistantwritegatedSend gated assistant chat requests for admin-approved orgs.
assistant.tools:readassistantreadgatedDiscover gated assistant tools available to an approved org.
assistant.sessions:readassistantreadgatedRead gated assistant session and usage state.
/api/v1/meTest an API key
/api/v1/contactsList contacts
/api/v1/contactsIdempotent writeCreate a contact
/api/v1/contacts/{id}Retrieve a contact
/api/v1/contacts/{id}Idempotent writeUpdate a contact
/api/v1/contacts/{id}Idempotent writeDelete a contact
/api/v1/segmentsList segments
/api/v1/segmentsIdempotent writeCreate a segment
/api/v1/inbox/threadsList inbox threads
/api/v1/outbox/broadcastsList broadcasts
/api/v1/outbox/broadcastsIdempotent writeDraft a broadcast
/api/v1/webhooksList webhook endpoints
/api/v1/webhooksIdempotent writeCreate a webhook endpoint
/api/v1/webhooks/deliveriesList webhook delivery logs
/api/v1/webhooks/deliveries/{id}/replayIdempotent writeQueue a webhook delivery replay
{
"ok": false,
"error": {
"code": "missing_scope",
"message": "The API key does not include the required scope.",
"docs_url": "https://docs.statxe.com/api/errors/missing_scope"
},
"meta": {
"request_id": "req_123"
}
}invalid_requestThe request payload or query parameters are invalid.
invalid_api_keyThe API key is missing, invalid, or expired.
missing_scopeThe API key does not include the required scope.
not_foundThe requested resource was not found.
conflictThe request conflicts with the current resource state.
rate_limitedThe request exceeded the configured rate limit.
idempotency_conflictThe idempotency key was already used with a different request.
webhook_signature_invalidThe webhook signature is missing, expired, or invalid.
internal_errorAn unexpected server error occurred.
Keys get at least 60 requests per minute.
Burst capacity is included and capped to keep traffic fair.
Respect Retry-After and retry with backoff.
Use the playground’s GET /api/v1/me preset to inspect the current key’s meta.rate_limit profile.
Send an Idempotency-Key header on every POST, PATCH, and DELETE. Keys must be 8 to 128 characters.
Reusing the same key with the same request replays the stored response. Reusing it with different request content returns idempotency_conflict.
/api/v1/inbox/threadsList inbox threads
/api/v1/outbox/broadcastsList broadcasts
/api/v1/outbox/broadcastsIdempotency-KeyDraft a broadcast
/api/v1/contactsList contacts
/api/v1/contactsIdempotency-KeyCreate a contact
/api/v1/contacts/{id}Retrieve a contact
/api/v1/contacts/{id}Idempotency-KeyUpdate a contact
/api/v1/contacts/{id}Idempotency-KeyDelete a contact
t=...,v1=... signature./api/v1/webhooksList webhook endpoints
/api/v1/webhooksIdempotency-KeyCreate a webhook endpoint
/api/v1/webhooks/deliveriesList webhook delivery logs
/api/v1/webhooks/deliveries/{id}/replayIdempotency-KeyQueue a webhook delivery replay
const payload = await request.text()
const signature = request.headers.get("statxe-signature")
// Verify the timestamped v1 signature before trusting payload.
// Store event.id or delivery.id so retries are processed once.Assistant traffic must flow through the internal AI layer for policy, tool allowlists, usage budgets, audit logging, and provider abstraction before any broader external exposure.
If your org is approved, use the portal assistant experience instead of attempting direct public API calls.
Open Assistant