Skip to main content
POST
Mints a new API key for a child. Use your parent key with accounts.write. The child then authenticates its own requests with the returned key. The server rechecks parent authority when it creates the key. If the parent credential, account ownership, or child key capacity changes concurrently, creation returns 409 create_key_conflict; reload the current configuration before trying again. If creation cannot be confirmed, 409 api_key_outcome_unknown returns no plaintext and includes retryable: false. Do not repeat the mint; contact support with its supportReference.
The plaintext key is returned exactly once, in this response. Store it immediately — it cannot be retrieved later, only rotated or revoked.

Path Parameters

integer
required
The child account’s accountId.

Body Parameters

string
required
A label for the key (e.g. prod, staging). Max 255 characters.
array
default:["api.full"]
A list of resource.action permission strings. The requested set must be a subset of the calling parent key’s own permissions. Sensitive resources (admin, system, billing, account, accounts, users, keys, api_keys, internal, root, super) and the wildcard * can never be granted.
object
Send restrictions for the key. list_numbers (array of up to 200 E.164 strings) limits the key to those sending lists; a send from any other list, or a schedule whose source lists include another list, is refused with 403 list_not_allowed_for_key. Numbers are normalized to E.164 on save. list_numbers is the only key accepted here; omit it or pass an empty list for no restriction.
integer
Maximum live sends per UTC day through the /v2/send family of endpoints for this key (positive integer, max 1,000,000); omit or null for no cap. Once reached, sends are refused with 429 daily_cap_exceeded until the next UTC day. Sandbox, scheduled, and OTP sends do not count. The key’s current usage is visible on Who Am I as send_policy.sends_today.
A parent key with active list restrictions, a dailySendCap, an IP allowlist, or required send approval cannot mint or rotate child keys (403 constrained_key_cannot_delegate). An otherwise unrestricted parent may delegate when list_numbers is omitted, null, or an empty list. Malformed or unsupported stored constraints block delegation. Rotation preserves the child’s cap, list restriction, and confirmation setting; both keys share one daily counter.
Partner-minted keys are live keys. To get a sandbox key, create one from the dashboard (see Sandbox & Testing).
boolean
default:false
Require human approval for SMS sends. Direct SMS/raw SMS, email, OTP, and send-enabling operations are blocked; use pending sends for SMS. A parent with this restriction cannot mint or rotate child keys (403 constrained_key_cannot_delegate). The response includes requireSendConfirmation.

Response Fields

object
The created key. Includes id, accountId, name, key (plaintext, once), keyPrefix, status, permissions, resourceConstraints, expiresAt, allowedIps, rateLimitOverride, sandbox, graceUntil, rotatedFrom, lastUsedIp, createdAt, and lastUsedAt.
string
A reminder to store the plaintext key now.

Examples

Error Codes

Also 403 not_a_parent_account / insufficient_scope / sandbox_read_only.