Create API key
POST /api-keys — dashboard-only. Keys are generated in the dashboard; an API key cannot mint a key.
/api-keys403 dashboard_only — "API keys can only be created, edited and revoked from the MailBlastr dashboard, not with an API key." — no matter what permission that key holds. Create keys from the dashboard under API Keys.full_access key now receives 403 dashboard_only and must be replaced by a person creating the key in the dashboard and storing it in your secret manager. The official SDKs deliberately expose no method for this endpoint.Creates a new API key and returns the full mb_... token once. Only the hash and prefix are stored, so copy the token immediately. The reference below describes the request the dashboard makes on your behalf with a signed-in session — it is not callable with an API key.
namestringrequiredA label for the key. Maximum 50 characters.
permissionfull_access | sending_accessoptionalThe access level. full_access (default) can create, delete, get, and update any resource; sending_access can only send emails.
domain_idsstring[]optionalRestrict the key to send only from these domains — enforced on every send surface (POST /emails, batch, campaign sends, and receiving reply/forward). Only valid with sending_access — full-access keys always work across all your domains. Omit (or send an empty array) to allow all domains.
domain_idstringoptionalLegacy single-domain form of domain_ids. Provide one or the other, not both.
Response
For the dashboard session, the created key is returned with its one-time token:
{
"id": "1042",
"object": "api_key",
"token": "mb_AbC123dEf456GhI789jKl012mNoPqRs",
"domain_id": null,
"domain_ids": null
}Response to an API-key caller
{
"statusCode": 403,
"name": "dashboard_only",
"message": "API keys can only be created, edited and revoked from the MailBlastr dashboard, not with an API key."
}token is shown exactly once. Errors: dashboard_only (403) for every API-key caller — this check runs before any validation; missing_required_field if name is absent; validation_error if permission is not full_access or sending_access, if both domain_id and domain_ids are provided, if a domain restriction is combined with full_access, if domain_ids references a domain that is not yours, or if domain_ids contains more than 50 domains. Two 429s guard key sprawl: rate_limit_exceeded — "Max 5 keys per hour. Try again later." — once you have created 5 keys in the last hour, and max_active_keys — "Max 20 active keys. Revoke unused keys first." — once 20 unrevoked keys already exist on the account.