Permissions reference
Every Sendly API permission: the wording the consent screen shows, whether it needs explicit approval, the REST endpoints it gates and the MCP tools it unlocks.
Every API key and every connected app carries a list of permissions (the API calls them
scopes). Each versioned (/api/v1) endpoint and each MCP tool asks for exactly one, and a
call made without it is refused. This page lists every permission there is: the wording the
consent screen shows next to its checkbox, whether it needs explicit approval, the /api/v1
endpoints behind it and the MCP tools it unlocks.
To choose permissions for a key, see API keys. To see how an agent is asked for them, see Permissions and consent in the MCP guide.
How permissions combine
- Read never implies write, and write never implies read.
contacts:writelets a credential create contacts without being able to list them, andcontacts:readlets it list them without changing anything. Grant each one you need. - Sending is its own action.
emails:send,campaigns:sendandmailboxes:sendare separate permissions, and none of them implies another. Drafting or editing a campaign (campaigns:write) does not let a credential send it; that takescampaigns:send.mailboxes:sendstarts a new message from a hosted mailbox, andemails:senddoes not grant that. - Testing is its own action.
emails:testsends a test email from the Sendly sandbox, and only to the address of the project owner, so it can prove that sending works without being able to reach anyone else. - Some permissions need explicit approval. These are the ones whose effect no dashboard action undoes, such as mail that cannot be recalled or a key that keeps working after an app is disconnected. On the consent screen they arrive unchecked, with a warning.
- Opt-in only permissions are never granted by default.
mailbox-conversations:readandmailbox-conversations:replyare on a credential only when someone ticks them by name. A legacy full-access key and the Full access preset do not carry them. See Permissions no key has by default. - A missing permission is a
403 SCOPE_MISSING. The same refusal comes back whether the credential is an API key or an OAuth connection, and its message names the permission that was missing. See Error codes.
Some permissions have no /api/v1 endpoint. Their REST endpoints are served under /api
instead, and they are listed on a separate line, linked to the API reference. A permission
that has a versioned endpoint lists only that one here. The API-key endpoints identify a project
admin from the signed-in user, so a secret key cannot call them, whatever permissions it
holds (see API keys).
Permissions
emails:send
- Consent wording: Send emails from your verified domains
- Needs explicit approval: Yes
- Opt-in only: No
- REST endpoints:
POST /api/v1/emails - MCP tools:
send_email
emails:read
- Consent wording: View the emails you have sent and their delivery status
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints: None under /api/v1
- REST endpoints under /api:
GET /api/emails,GET /api/emails/{id} - MCP tools:
list_emails,get_email
contacts:read
- Consent wording: View your contacts and their custom fields
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/contacts,GET /api/v1/contacts/{id} - MCP tools:
list_contacts,get_contact
contacts:write
- Consent wording: Create, update, and delete your contacts
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
POST /api/v1/contacts,PATCH /api/v1/contacts/{id},DELETE /api/v1/contacts/{id} - MCP tools:
create_contact,update_contact,delete_contact
campaigns:read
- Consent wording: View your campaigns and their performance
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/campaigns,GET /api/v1/campaigns/{id},GET /api/v1/campaigns/{id}/failures,GET /api/v1/campaigns/{id}/stats - MCP tools:
list_campaigns,get_campaign,get_campaign_stats
campaigns:write
- Consent wording: Create, edit, and organize your campaigns
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
POST /api/v1/campaigns,PATCH /api/v1/campaigns/{id},DELETE /api/v1/campaigns/{id},POST /api/v1/campaigns/{id}/cancel,POST /api/v1/campaigns/{id}/pause,POST /api/v1/campaigns/{id}/resume,POST /api/v1/campaigns/{id}/retry-failed - MCP tools:
create_campaign,update_campaign,manage_campaign,delete_campaign
segments:read
- Consent wording: View your segments and who belongs to them
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/segments,GET /api/v1/segments/{id},GET /api/v1/segments/{id}/contacts - MCP tools:
list_segments,get_segment,list_segment_contacts
segments:write
- Consent wording: Create, edit, and delete your segments
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
POST /api/v1/segments,PATCH /api/v1/segments/{id},DELETE /api/v1/segments/{id} - MCP tools:
create_segment,update_segment,delete_segment
workflows:read
- Consent wording: View your automation workflows and their runs
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/workflows,GET /api/v1/workflows/{id},GET /api/v1/workflows/{id}/executions,GET /api/v1/workflows/{id}/graph,GET /api/v1/workflows/{id}/stats - MCP tools:
list_workflows,get_workflow,get_workflow_status,list_workflow_executions
workflows:write
- Consent wording: Create, edit, enable, and delete your automation workflows
- Needs explicit approval: Yes
- Opt-in only: No
- REST endpoints:
POST /api/v1/workflows,PATCH /api/v1/workflows/{id},DELETE /api/v1/workflows/{id},POST /api/v1/workflows/{id}/clone,POST /api/v1/workflows/{id}/executions,PUT /api/v1/workflows/{id}/graph,POST /api/v1/workflows/{id}/pause,POST /api/v1/workflows/{id}/resume,POST /api/v1/workflows/executions/{execution_id}/cancel - MCP tools:
create_workflow,edit_workflow,clone_workflow,manage_workflow,update_workflow,delete_workflow
templates:read
- Consent wording: View your email templates
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/templates,GET /api/v1/templates/{id} - MCP tools:
list_templates,get_template
templates:write
- Consent wording: Create, edit, and delete your email templates
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
POST /api/v1/templates,PATCH /api/v1/templates/{id},DELETE /api/v1/templates/{id} - MCP tools:
create_template,update_template
domains:read
- Consent wording: View your sending domains and their verification status
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/domains,GET /api/v1/domains/{id},GET /api/v1/domains/{id}/logo,GET /api/v1/domains/{id}/logo/readiness - MCP tools:
check_domain,get_domain_logo
domains:write
- Consent wording: Add and remove sending domains, and trigger verification
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
POST /api/v1/domains,DELETE /api/v1/domains/{id},PUT /api/v1/domains/{id}/logo,DELETE /api/v1/domains/{id}/logo,POST /api/v1/domains/{id}/verify - MCP tools:
add_domain,verify_domain,start_domain_setup,upload_domain_logo
webhooks:read
- Consent wording: View your webhook endpoints and their delivery history
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/webhooks,GET /api/v1/webhooks/{id} - MCP tools:
list_webhooks
webhooks:write
- Consent wording: Create, edit, and delete your webhook endpoints
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
POST /api/v1/webhooks,PATCH /api/v1/webhooks/{id},DELETE /api/v1/webhooks/{id},POST /api/v1/webhooks/{id}/rotate-secret - MCP tools:
create_webhook,update_webhook,delete_webhook
suppression:read
- Consent wording: View the addresses on your suppression list
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/suppressions,GET /api/v1/suppressions/{email} - MCP tools:
list_suppressions
suppression:write
- Consent wording: Add and remove addresses on your suppression list
- Needs explicit approval: Yes
- Opt-in only: No
- REST endpoints:
POST /api/v1/suppressions,DELETE /api/v1/suppressions/{email} - MCP tools:
add_suppression,remove_suppression
analytics:read
- Consent wording: View your sending analytics and engagement metrics
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/analytics/campaigns,GET /api/v1/analytics/timeseries,GET /api/v1/analytics/top-campaigns - MCP tools:
view_analytics
usage:read
- Consent wording: View your usage totals and billing limits
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/usage - MCP tools:
get_usage
events:read
- Consent wording: View the custom events your application has recorded
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/events,GET /api/v1/events/names,GET /api/v1/events/stats - MCP tools:
list_events
events:write
- Consent wording: Record custom events for your contacts
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
POST /api/v1/events - MCP tools:
record_event
projects:read
- Consent wording: View your projects and their settings
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/projects - MCP tools:
get_project
projects:write
- Consent wording: Create new projects on your account
- Needs explicit approval: Yes
- Opt-in only: No
- REST endpoints: None under /api/v1
- REST endpoints under /api:
POST /api/users/me/projects - MCP tools:
create_project
api-keys:read
- Consent wording: See which API keys exist, including what each one is allowed to do
- Needs explicit approval: Yes
- Opt-in only: No
- REST endpoints: None under /api/v1
- REST endpoints under /api:
GET /api/projects/{id}/api-keys,GET /api/projects/{id}/api-keys/{keyId} - MCP tools:
list_api_keys
api-keys:write
- Consent wording: Create, rotate, and revoke API keys — these keep working even after you disconnect this app
- Needs explicit approval: Yes
- Opt-in only: No
- REST endpoints: None under /api/v1
- REST endpoints under /api:
POST /api/projects/{id}/api-keys,DELETE /api/projects/{id}/api-keys/{keyId},POST /api/projects/{id}/api-keys/{keyId}/rotate - MCP tools:
create_api_key,rotate_api_key,revoke_api_key
campaigns:send
- Consent wording: Send or schedule your campaigns to their audience
- Needs explicit approval: Yes
- Opt-in only: No
- REST endpoints:
POST /api/v1/campaigns/{id}/send - MCP tools:
send_campaign
mailboxes:read
- Consent wording: View the mailboxes on your domains and their settings
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints: None under /api/v1
- REST endpoints under /api:
GET /api/mailboxes,GET /api/mailboxes/{id},GET /api/mailboxes/{id}/app-passwords,POST /api/mailboxes/{id}/drafts - MCP tools:
list_mailboxes,get_mailbox,compose_mailbox_email
mailboxes:write
- Consent wording: Create and delete mailboxes on your verified domains
- Needs explicit approval: Yes
- Opt-in only: No
- REST endpoints: None under /api/v1
- REST endpoints under /api:
POST /api/mailboxes,DELETE /api/mailboxes/{id},POST /api/mailboxes/{id}/app-passwords,DELETE /api/mailboxes/{id}/app-passwords/{passwordId} - MCP tools:
create_mailbox,delete_mailbox
emails:test
- Consent wording: Send test emails to your own address from the Sendly sandbox
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
POST /api/v1/emails/test - MCP tools:
send_test_email
deliverability:read
- Consent wording: Check why mail from one of your domains is not arriving
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/deliverability/diagnose,GET /api/v1/deliverability/dmarc,GET /api/v1/deliverability/domains - MCP tools:
diagnose_delivery
mailboxes:send
- Consent wording: Write and send new email from your hosted mailboxes, as that address
- Needs explicit approval: Yes
- Opt-in only: No
- REST endpoints: None under /api/v1
- REST endpoints under /api:
POST /api/mailboxes/{id}/messages - MCP tools:
send_mailbox_email
validation:read
- Consent wording: View your email validation runs and their results
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/validation-runs/{id},GET /api/v1/validation-runs/{id}/results - MCP tools:
get_validation_run,list_validation_results
validation:write
- Consent wording: Check whether email addresses can receive mail — this is billed per address
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
POST /api/v1/email-validations,POST /api/v1/lists/{id}/validation-runs - MCP tools:
validate_emails,clean_list
topics:read
- Consent wording: View the topics you mail about and who is subscribed to each
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/contacts/{id}/topics,GET /api/v1/topics,GET /api/v1/topics/{id} - MCP tools:
list_topics,get_contact_topic_preferences
topics:write
- Consent wording: Create and edit topics, and change what your contacts are subscribed to — this decides who your campaigns reach
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
POST /api/v1/topics,PATCH /api/v1/topics/{id},POST /api/v1/topics/{id}/subscriptions - MCP tools:
create_topic,update_topic,set_topic_subscription
lists:read
- Consent wording: View your subscriber lists and who is on them
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
GET /api/v1/lists,GET /api/v1/lists/{id} - MCP tools:
list_lists,get_list
lists:write
- Consent wording: Create, rename, and delete your subscriber lists
- Needs explicit approval: No
- Opt-in only: No
- REST endpoints:
POST /api/v1/lists,PATCH /api/v1/lists/{id},DELETE /api/v1/lists/{id} - MCP tools:
create_list,update_list,delete_list
mailbox-conversations:read
- Consent wording: Read the conversations in your hosted mailboxes — every message and attachment people have sent you
- Needs explicit approval: Yes
- Opt-in only: Yes
- REST endpoints: None under /api/v1
- REST endpoints under /api:
GET /api/mailboxes/{id}/attachments/{attachmentId},GET /api/mailboxes/{id}/conversations,GET /api/mailboxes/{id}/conversations/{conversationId} - MCP tools:
list_mailbox_conversations,get_mailbox_conversation
mailbox-conversations:reply
- Consent wording: Reply to conversations in your hosted mailboxes, from the mailbox's own address
- Needs explicit approval: Yes
- Opt-in only: Yes
- REST endpoints: None under /api/v1
- REST endpoints under /api:
POST /api/mailboxes/{id}/conversations/{conversationId}/reply - MCP tools:
reply_to_mailbox_conversation