Authentication

The Sent API v3 authenticates every request with an API key passed in the x-api-key header. The key identifies your account; no other identifier is required.


Request header

HeaderTypeRequiredDescription
x-api-keyString (UUID)YesYour secret API key. Identifies and authorizes your account on every request.

API keys are UUIDs (for example, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). There is one key format for all environments.

Sandbox behavior is controlled per request with the "sandbox" body field on mutation endpoints, not by a separate key type. See Sandbox mode.

To create, rotate, or revoke keys, see Creating and managing API keys.

Example request

curl https://api.sent.dm/v3/me \
  -H "x-api-key: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
  -H "Content-Type: application/json"

Response headers

All v3 responses include:

HeaderDescription
X-Request-IdUnique request identifier for tracing and support, in the form req_ followed by 16 hex characters. If the request supplies an X-Request-Id header, that value is echoed back.
X-Response-TimeServer processing time in milliseconds, for example 12ms.
X-API-VersionAlways v3.

Authentication errors

Authentication failures return the standard v3 error envelope:

{
  "success": false,
  "status": 401,
  "error": {
    "code": "AUTH_002",
    "message": "Invalid or missing API key",
    "doc_url": "https://docs.sent.dm/reference/api/authentication"
  },
  "meta": {
    "request_id": "req_a1b2c3d4e5f60718",
    "timestamp": "2026-07-25T12:00:00+00:00",
    "version": "v3"
  }
}

AUTH error codes

CodeStatusMessageReturned when
AUTH_001401Authentication requiredThe endpoint requires an authenticated account and the request has none.
AUTH_002401Invalid or missing API keyThe x-api-key header is absent, empty, or does not match an active key.
AUTH_003401Missing or invalid sender identifierLegacy v1/v2 endpoints only: the x-sender-id header is missing or is not a valid UUID. v3 endpoints do not return this code.
AUTH_004403Access deniedThe authenticated account does not have permission for the operation. See Roles and permissions.
AUTH_005403Account onboarding is not completeDefined for onboarding gating; not returned by v3 authentication.
AUTH_006403KYC verification is not completeDefined for onboarding gating; not returned by v3 authentication.
AUTH_007403Channel setup is not completeDefined for onboarding gating; not returned by v3 authentication.

Onboarding state does not block authentication. Message volume during partial onboarding is limited in the send pipeline instead: over-limit messages are accepted by the API and finalized with a BLOCKED status. See Trust & Safety.

The complete list of API error codes is in the Error catalog.

Failed-attempt lockout

After 10 consecutive failed authentication attempts with the same credential, the API locks that credential and returns 429 with error code BUSINESS_002, the message Too many failed authentication attempts. Please try again later., and a Retry-After: 60 header. The lockout duration escalates with continued failures: 1, 5, 15, 30, then 60 minutes. A successful authentication resets the counter.


Rate limits

Authenticated requests are rate limited per customer account. For limits, tiers, and 429 response headers, see Rate limits.


On this page