Authentication
All API requests must include a valid API key in theX-API-Key header.
Getting an API Key
- Log in to Benchmark Email with an Owner account. Only users with the Owner role can create and manage API keys.
- Navigate to Settings > API Keys.
- Click Create API Key.
- Enter a descriptive name (e.g., “Zapier Sync”, “CRM Integration”).
- Select the scopes (permissions) the key needs — see Scopes below.
- Optionally set an expiration date. If you skip this, the key never expires.
- Click Create and copy the key immediately.
API Key Format
All Benchmark Email API keys start with thebme_ prefix, followed by 43 random characters:
Scopes
Each API key is granted one or more scopes that control which resources it can access. Scopes follow the{resource}:{access} format.
Available Scopes
| Scope | Description |
|---|---|
contacts:read | Read contacts, lists, contact structures, search contacts, export contacts, view contact events and history |
contacts:write | Create, update, and delete contacts and lists; update contact structures |
campaigns:read | Read campaigns and browse email templates |
campaigns:write | Create, update, delete, and duplicate campaigns |
reports:read | View dashboard summaries and email performance reports |
domains:read | View email sending domains |
Write Implies Read
Granting write access for a resource automatically includes read access. For example, a key withcontacts:write can also read contacts — you do not need to select both.
Principle of Least Privilege
Create keys with only the permissions they need. For example:- A reporting dashboard only needs
reports:read. - A contact sync integration needs
contacts:write(which includes read access). - A read-only data export tool needs
contacts:read.
Scope Errors
If a request requires a scope that your key does not have, you will receive a403 Forbidden response with a message identifying the required scope. See Errors for details.
Account Standing
API keys only work when your Benchmark Email account is in good standing. Keys are active when your account status is:- Open — normal active account
- Pending Cancel — account is scheduled for cancellation but still active
403 Forbidden) if your account is in any other status, such as suspended, past due, or terminated.
Key Lifecycle
| Key State | Behavior |
|---|---|
| Active | Key authenticates requests normally |
| Inactive | Key has been deactivated by the owner; returns 401 Unauthorized |
| Expired | Key’s expiration date has passed; returns 401 Unauthorized |
| Deleted | Key has been permanently removed; returns 401 Unauthorized |
Example: Listing Contact Structures
Example: Creating a Contact
contacts:write scope. If your key only has contacts:read, you will receive a 403 Forbidden error.
Next Steps
- Rate Limits — understand request limits and quotas
- Errors — handle error responses
- API Reference — explore available resources