Understand how API key scopes control access to resources and operations in AhaSend
Static Scopes
accounts:read
, domains:write
Global Scopes
:all
and provide access to all resources of a specific type across all domains in your account.Example: messages:send:all
, webhooks:read:all
Domain-Specific Scopes
messages:send:{example.com}
, routes:write:{mydomain.com}
*
grants all permissions and should be used with extreme caution, preferably only for development and testing.Scope | Description |
---|---|
accounts:read | Read account information |
accounts:write | Update account settings |
accounts:billing | Access billing information |
accounts:members:read | View account members |
accounts:members:add | Add new account members |
accounts:members:update | Update member permissions |
accounts:members:remove | Remove account members |
Scope | Description |
---|---|
domains:read | List and view domain information |
domains:write | Add and update domains |
domains:delete:{domain} | Delete a specific domain |
Scope | Description |
---|---|
messages:send:all | Send messages from any domain |
messages:cancel:all | Cancel messages from any domain |
messages:read:all | Read messages from any domain |
Scope | Description |
---|---|
webhooks:read:all | Read webhooks for all domains |
webhooks:write:all | Create/update webhooks for all domains |
webhooks:delete:all | Delete webhooks for all domains |
Scope | Description |
---|---|
routes:read:all | Read routes for all domains |
routes:write:all | Create/update routes for all domains |
routes:delete:all | Delete routes for all domains |
Scope | Description |
---|---|
smtp-credentials:read:all | Read SMTP credentials for all domains |
smtp-credentials:write:all | Create/update SMTP credentials for all domains |
smtp-credentials:delete:all | Delete SMTP credentials for all domains |
Scope | Description |
---|---|
suppressions:read | View suppression lists |
suppressions:write | Add suppressions |
suppressions:delete | Remove specific suppressions |
suppressions:wipe | Clear entire suppression list |
Scope | Description |
---|---|
api-keys:read | List and view API keys |
api-keys:write | Create and update API keys |
api-keys:delete | Delete API keys |
Scope | Description |
---|---|
statistics-transactional:read:all | Read statistics for all domains |
messages:send:all
and messages:send:{example.com}
, only the global scope will be retained as it already covers the specific domain scope.Wildcard Check
*
scope, access is granted immediately.Exact Match
Global Scope Check
:all
scope exists.Example: messages:send:{example.com}
is satisfied by messages:send:all
Domain-Specific Check
Principle of Least Privilege
Domain-Specific Scopes
Separate API Keys
Regular Scope Audits