SendlySendly
API Reference

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:write lets a credential create contacts without being able to list them, and contacts:read lets it list them without changing anything. Grant each one you need.
  • Sending is its own action. emails:send, campaigns:send and mailboxes:send are separate permissions, and none of them implies another. Drafting or editing a campaign (campaigns:write) does not let a credential send it; that takes campaigns:send. mailboxes:send starts a new message from a hosted mailbox, and emails:send does not grant that.
  • Testing is its own action. emails:test sends 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:read and mailbox-conversations:reply are 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

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

mailboxes:write

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

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

On this page