Serveur MCP

send16-mcp

io.github.spruikco/send16-mcp

Ce que fait ce MCP

Provides email marketing and transactional messaging tools for contacts, audiences, campaigns, templates, automations, analytics, domains, and webhooks.

activate_automation
Activate an automation. New events matching its triggers will start enrolling contacts.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['automationId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'automationId': {'type': 'string', 'description': 'Automation ID'}}}
add_contacts_to_audience
Add contacts (by ID) to an audience.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audienceId', 'contactIds'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'audienceId': {'type': 'string', 'description': 'Audience ID'}, 'contactIds': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 1000, 'minItems': 1, 'description': 'Contact IDs to add'}}}
add_convo_note
Add a private internal note on a conversation. Notes are visible only to workspace members.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['convoId', 'body'], 'properties': {'body': {'type': 'string', 'minLength': 1, 'description': 'Note body (markdown supported)'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'convoId': {'type': 'string', 'description': 'Conversation ID'}}}
add_domain
Register a new sending domain. Returns the DNS records the user must add to their DNS provider, after which they should call check_domain_health to verify.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'domain': {'type': 'string', 'maxLength': 255, 'minLength': 3, 'description': "FQDN to register (e.g. 'mail.example.com')"}}}
add_suppression
Add an email to the suppression list. Future sends to this address will be blocked.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['email'], 'properties': {'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}, 'notes': {'type': 'string'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'reason': {'enum': ['bounce', 'complaint', 'unsubscribe', 'manual'], 'type': 'string', 'default': 'manual'}}}
check_domain_health
Check the DNS health of a specific domain, including DKIM, SPF, DMARC, and MX record verification status. Triggers a fresh DNS lookup.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domainId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'domainId': {'type': 'string', 'description': 'Domain ID to check health for'}}}
create_action
Create an Action that maps an event name to a transactional template. Each matching event sends one email to the contact.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'eventName', 'templateSlug'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Display name'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'enabled': {'type': 'boolean', 'default': True}, 'sendOnce': {'type': 'boolean', 'description': 'Only send once per contact regardless of how many times the event fires'}, 'eventName': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': "Event name to match (e.g. 'order.placed')"}, 'delaySeconds': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Delay before sending'}, 'templateSlug': {'type': 'string', 'description': 'Transactional template slug to send'}}}
create_audience
Create a new audience.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'minLength': 1}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'description': {'type': 'string', 'maxLength': 500}}}
create_campaign
Create a new email campaign as a draft: optionally with full HTML content and recipients (exactly ONE of audienceIds / segmentId / contactIds / tagIds / sendToAll) so it's ready to test and send. Nothing is sent until schedule_campaign.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'subject', 'fromName', 'fromEmail'], 'properties': {'html': {'type': 'string', 'description': 'Full HTML body for the email (skip to design later)'}, 'name': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Campaign name (internal label)'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'tagIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Target contacts with these tag IDs'}, 'replyTo': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Reply-to email address'}, 'subject': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Email subject line'}, 'fromName': {'type': 'string', 'maxLength': 100, 'description': 'Sender display name'}, 'fromEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Sender email (must be from a verified domain)'}, 'segmentId': {'type': 'string', 'description': 'Target this segment (see list_segments)'}, 'sendToAll': {'type': 'boolean', 'description': 'Target all subscribed contacts in the workspace'}, 'contactIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Target these specific contact IDs'}, 'audienceIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Target these audience IDs (see list_audiences)'}, 'previewText': {'type': 'string', 'maxLength': 200, 'description': 'Preview text shown in inbox alongside subject'}}}
create_contact
Add a single new contact, optionally straight into audiences and/or with tags — e.g. 'add this person from my email into the newsletter list'. Contacts are subscribed by default. For more than a handful of people, use import_contacts instead.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['email'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tag NAMES to assign â\x80\x94 matched case-insensitively, created if missing'}, 'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Contact email address'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'lastName': {'type': 'string', 'maxLength': 255, 'description': 'Contact last name'}, 'firstName': {'type': 'string', 'maxLength': 255, 'description': 'Contact first name'}, 'audienceIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Add the contact to these audience IDs (see list_audiences)'}, 'customFields': {'type': 'object', 'description': 'Custom field key-value pairs', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}}}
create_topic
Create a new subscription topic. Contacts opt into topics individually via the preference center.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Display name shown to contacts'}, 'slug': {'type': 'string', 'pattern': '^[a-z0-9-]+$', 'maxLength': 100, 'minLength': 1, 'description': 'URL-safe slug (auto-derived from name if omitted)'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'isDefault': {'type': 'boolean', 'description': 'Auto-subscribe new contacts to this topic'}, 'description': {'type': 'string', 'maxLength': 500, 'description': 'Description shown in the preference center'}}}
create_webhook
Register an outgoing webhook endpoint. Send16 POSTs event JSON to this URL with an HMAC-SHA256 signature. Outgoing webhooks are a plan feature.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'url', 'events'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'HTTPS endpoint to receive events'}, 'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'A label for this endpoint'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'events': {'type': 'array', 'items': {'enum': ['contact.created', 'contact.updated', 'contact.deleted', 'contact.subscribed', 'contact.unsubscribed', 'campaign.sent', 'campaign.completed', 'email.delivered', 'email.opened', 'email.clicked', 'email.bounced', 'email.complained', 'form.submitted'], 'type': 'string'}, 'minItems': 1, 'description': 'Event types to subscribe to'}, 'enabled': {'type': 'boolean', 'description': 'Whether the endpoint is active (default true)'}}}
delete_action
Delete an Action.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['actionId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'actionId': {'type': 'string', 'description': 'Action ID'}}}
delete_audience
Delete an audience (list). Contacts are not deleted — only the list and its memberships are removed.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audienceId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'audienceId': {'type': 'string', 'description': 'Audience ID'}}}
delete_campaign
Delete a draft campaign. Sent campaigns cannot be deleted (only archived).
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'campaignId': {'type': 'string', 'description': 'Campaign ID'}}}
delete_contact
Delete a contact and all associated events. Irreversible.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contactId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'contactId': {'type': 'string', 'description': 'Contact ID'}}}
delete_topic
Delete a subscription topic. All subscribers will be detached.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topicId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'topicId': {'type': 'string', 'description': 'Topic ID'}}}
delete_webhook
Delete an outgoing webhook endpoint.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['webhookId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'webhookId': {'type': 'string', 'description': 'Webhook ID'}}}
design_email_template
Use AI to generate a complete email HTML template based on a description. Returns ready-to-use HTML that can be sent or used in campaigns.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['type', 'style', 'description'], 'properties': {'type': {'enum': ['marketing', 'transactional', 'newsletter', 'announcement', 'welcome', 'promotional'], 'type': 'string', 'description': 'Type of email template to generate'}, 'style': {'enum': ['minimal', 'modern', 'bold', 'elegant', 'playful', 'corporate'], 'type': 'string', 'description': 'Visual style/aesthetic for the template'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'brandColor': {'type': 'string', 'description': 'Primary brand color as hex code (e.g. "#4F46E5")'}, 'companyName': {'type': 'string', 'description': 'Company or brand name to include in the template'}, 'description': {'type': 'string', 'maxLength': 1000, 'minLength': 10, 'description': "Detailed description of the email content and purpose (e.g. 'Welcome email for a SaaS product with feature highlights and CTA to start trial')"}}}
duplicate_campaign
Duplicate a campaign (template, content, and settings) as a new draft — works on sent campaigns too, so this is the way to re-use a past campaign's design. Optionally rename and retarget in the same call (exactly ONE of audienceIds / segmentId / contactIds / tagIds / sendToAll). NOTE: without retargeting, the copy keeps the ORIGINAL campaign's recipients.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': "Name for the new draft (default: original name + ' (Copy)')"}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'tagIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Retarget the new draft to contacts with these tag IDs'}, 'segmentId': {'type': 'string', 'description': 'Retarget the new draft to this segment'}, 'sendToAll': {'type': 'boolean', 'description': 'Retarget the new draft to all subscribed contacts'}, 'campaignId': {'type': 'string', 'description': 'Campaign ID to duplicate'}, 'contactIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Retarget the new draft to these contact IDs'}, 'audienceIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Retarget the new draft to these audience IDs (see list_audiences)'}}}
enroll_in_automation
Manually enroll a contact in an active automation. The automation must be in 'active' status. Use send_event for event-driven enrollment.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['automationId', 'contactId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'contactId': {'type': 'string', 'description': 'Contact UUID (use search_contacts to look up by email first)'}, 'automationId': {'type': 'string', 'description': 'Automation ID to enroll into'}}}
generate_email_from_url
Scrape a URL (e.g. a launch blog post or product page) and generate an email draft from its content. Returns subject, preview text, and HTML body.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Public URL to scrape and turn into an email'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'instructions': {'type': 'string', 'description': "Additional guidance â\x80\x94 e.g. 'announcement style, focus on the new feature'"}}}
get_action
Get a single Action with its trigger config and template binding.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['actionId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'actionId': {'type': 'string', 'description': 'Action ID'}}}
get_automation
Get a single automation by ID, including its trigger, steps, and current status.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['automationId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'automationId': {'type': 'string', 'description': 'Automation ID'}}}
get_automation_stats
Get aggregate analytics for an automation: total enrollments, completed, exited, open/click rates per step.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['automationId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'automationId': {'type': 'string', 'description': 'Automation ID'}}}
get_brand
Get the workspace's brand settings: colors, logo, fonts, and the DESIGN.md spec injected into AI generation prompts.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
get_campaign_stats
Get detailed performance statistics for a specific campaign including open rate, click rate, bounce rate, and delivery metrics.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'campaignId': {'type': 'string', 'description': 'Campaign ID to get stats for'}}}
get_contact_health_score
Get a contact's 0-100 health score based on recent engagement (opens, clicks, replies).
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contactId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'contactId': {'type': 'string', 'description': 'Contact ID'}}}
get_contact_timeline
Get a contact's full activity timeline: emails received, events fired, opens, clicks, automation enrollments, topic changes.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contactId'], 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Page size'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor'}, 'contactId': {'type': 'string', 'description': 'Contact ID'}}}
get_convo
Get a single conversation with its full thread of posts (incoming + outgoing).
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Conversation ID'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
get_deliverability_status
Get your workspace's deliverability summary — sending reputation, domain authentication status, and recent bounce/complaint health. (Deliverability Hub plan feature.)
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
get_message
Fetch a single message with its full event timeline (created → sent → delivered → opened → clicked → ...).
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Message ID'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
get_message_events
Get just the delivery event timeline for a message — no body or recipient details.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Message ID'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
get_template
Get a single starter template by ID, including its EmailContent JSON.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['templateId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'templateId': {'type': 'string', 'description': 'Template ID (slug)'}}}
get_workspace
Get the current workspace (the one the API key belongs to).
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
get_workspace_usage
Get the current month's send count, contact count, and plan limits.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
import_contacts
Bulk import contacts from CSV data (min column: email), optionally straight into audiences and/or with tags. This is the tool for cross-app flows — e.g. pulling people out of Gmail, a CRM, or a spreadsheet and landing them in a Send16 audience in one call. Set updateExisting for upsert semantics (safe to re-run).
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['csvData'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tag NAMES to apply to all imported contacts â\x80\x94 matched case-insensitively, created if missing'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'csvData': {'type': 'string', 'description': 'CSV string with headers. Required column: "email". Optional: "firstName", "lastName"'}, 'audienceIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Add all imported contacts to these audience IDs (see list_audiences / create_audience)'}, 'updateExisting': {'type': 'boolean', 'default': False, 'description': 'Whether to update contacts that already exist'}}}
list_actions
List Actions. Actions fire a transactional template when a custom event arrives — Plunk-style 'event_name → template' pairings, simpler than full automations.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
list_audiences
List audiences (lists). An audience is a static, manually-managed group of contacts.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
list_automation_enrollments
List active and historical enrollments for an automation.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['automationId'], 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number'}, 'state': {'enum': ['active', 'completed', 'exited', 'paused'], 'type': 'string'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'pageSize': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Results per page (max 100)'}, 'automationId': {'type': 'string', 'description': 'Automation ID'}}}
list_automations
List all automations in the workspace, including draft/active/paused status and trigger types.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
list_campaigns
List email campaigns, newest first. Use `search` to find a past campaign the user describes vaguely ('the invite one', 'that July newsletter') — it matches name and subject case-insensitively; try distinctive words from their description and broaden if no hits.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'search': {'type': 'string', 'maxLength': 200, 'description': 'Case-insensitive substring match on campaign name or subject'}, 'status': {'enum': ['draft', 'scheduled', 'sending', 'sent', 'paused'], 'type': 'string', 'description': 'Filter campaigns by status'}, 'pageSize': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Results per page (max 100)'}}}
list_contacts
List all contacts with optional filtering by subscription status and tag. Supports pagination.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number'}, 'tagId': {'type': 'string', 'description': 'Filter by tag ID'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'pageSize': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Results per page (max 100)'}, 'subscribed': {'enum': ['true', 'false'], 'type': 'string', 'description': 'Filter by subscription status'}}}
list_convos
List inbox conversations. Filter by state, mailbox, label, screener status, or full-text search. Send16's unified inbox combines transactional reply threading with team-managed shared inboxes.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'label': {'type': 'string', 'description': 'Filter by label slug (comma-separate for multiple)'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Page size (default 50)'}, 'state': {'enum': ['open', 'closed', 'archived', 'snoozed'], 'type': 'string', 'description': 'Conversation status'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'search': {'type': 'string', 'description': 'Full-text search across subject + body'}, 'mailboxId': {'type': 'string', 'description': 'Filter to one mailbox'}}}
list_domains
List all sending domains configured in your Send16 workspace, including their verification status and DNS records.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
list_inbox_counts
Get unread/total counts per category and label for the inbox sidebar (newsletter, transactional, marketing, calendar, social, cold).
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
list_messages
List messages from the unified send log (transactional + campaign). Filter by recipient, sender, status, date range, or source.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size (default 50)'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Page offset'}, 'source': {'enum': ['transactional', 'campaign'], 'type': 'string', 'description': 'Restrict to one message source'}, 'status': {'enum': ['queued', 'sent', 'delivered', 'opened', 'clicked', 'bounced', 'failed'], 'type': 'string', 'description': 'Delivery status filter'}, 'to_email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Recipient email filter'}, 'from_email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Sender email filter'}, 'created_after': {'type': 'string', 'description': 'ISO-8601 timestamp lower bound'}, 'created_before': {'type': 'string', 'description': 'ISO-8601 timestamp upper bound'}}}
list_segments
List dynamic segments. Segments compute their members from a filter expression at send time.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
list_suppressions
List suppressed email addresses (bounces, complaints, unsubscribes, manual).
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'reason': {'enum': ['bounce', 'complaint', 'unsubscribe', 'manual'], 'type': 'string'}}}
list_templates
List starter-gallery email templates available to every workspace.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
list_topics
List subscription topics. Topics are granular categories contacts can subscribe to (e.g. 'product-updates', 'weekly-digest'). Campaigns and automations can be gated to subscribers of a specific topic.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
list_webhooks
List configured outgoing webhooks (your endpoints that Send16 POSTs delivery events to). Outgoing webhooks are a plan feature.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
list_workspaces
List workspaces the authenticated user has access to (owner or member).
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
mark_convo_read
Mark a conversation as read for the current viewer.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['convoId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'convoId': {'type': 'string', 'description': 'Conversation ID'}}}
pause_automation
Pause an automation. Existing enrollments freeze in place; no new contacts enroll.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['automationId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'automationId': {'type': 'string', 'description': 'Automation ID'}}}
pause_campaign
Pause a sending campaign. Already-sent messages are unaffected; remaining sends halt.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'campaignId': {'type': 'string', 'description': 'Campaign ID'}}}
pre_send_review
Run an AI pre-send review on an email's HTML before sending. Surfaces tone issues, broken links, missing alt text, spam triggers, and accessibility problems.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['subject', 'html'], 'properties': {'html': {'type': 'string', 'description': 'Full HTML body to review'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'subject': {'type': 'string', 'description': 'Email subject line'}, 'audience': {'type': 'string', 'description': 'Short description of the audience (helps tone analysis)'}}}
preview_campaign_recipients
Preview the recipient set for a campaign before sending. Returns count + sample list.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'campaignId': {'type': 'string', 'description': 'Campaign ID'}}}
preview_segment
Preview the contacts that match a segment without sending.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['segmentId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'segmentId': {'type': 'string', 'description': 'Segment ID'}}}
regenerate_webhook_secret
Rotate the HMAC signing secret for an outgoing webhook endpoint. Returns the new secret once.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['webhookId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'webhookId': {'type': 'string', 'description': 'Webhook ID'}}}
remove_contact_from_audience
Remove a contact from an audience.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audienceId', 'contactId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'contactId': {'type': 'string', 'description': 'Contact ID'}, 'audienceId': {'type': 'string', 'description': 'Audience ID'}}}
remove_suppression
Remove an email from the suppression list. Use only when you've confirmed the recipient wants to receive mail again.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['email'], 'properties': {'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
render_email_content
Compile an EmailContent JSON object (the shape used by the Send16 builder + templates) into HTML using the platform's authoritative renderer. Returns the exact HTML the API would send. Useful for previews and post-processing.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['content'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'content': {'type': 'object', 'description': 'EmailContent JSON (from get_template or the builder)', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'variables': {'type': 'object', 'description': "Variable replacements (e.g. {firstName:'Alice'})", 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}}}
resume_campaign
Resume a paused campaign.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'campaignId': {'type': 'string', 'description': 'Campaign ID'}}}
schedule_campaign
Schedule (or send immediately) an existing draft campaign to an audience/segment/topic.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'topicId': {'type': 'string'}, 'segmentId': {'type': 'string'}, 'audienceId': {'type': 'string'}, 'campaignId': {'type': 'string', 'description': 'Campaign ID'}, 'scheduleAt': {'type': 'string', 'description': 'ISO-8601 future datetime; omit to send immediately'}}}
screener_decide
Decide a pending screener conversation (first-time sender). 'allow' lets future emails through, 'reject' blocks, 'cold' marks as cold outreach.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['convoId', 'decision'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'convoId': {'type': 'string', 'description': 'Conversation ID'}, 'decision': {'enum': ['allow', 'reject', 'cold'], 'type': 'string', 'description': 'Screener decision'}}}
search_contacts
Search contacts by email address or name. Returns matching contacts with their tags and subscription status.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'page': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number'}, 'query': {'type': 'string', 'minLength': 1, 'description': 'Search query (matches against email, first name, last name)'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'pageSize': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Results per page (max 100)'}}}
send_broadcast
One-shot broadcast: create a campaign and immediately schedule it to send, in a single call. Pass either an audienceId, segmentId, topicId, or fully-qualified filter. Provide html OR templateSlug.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'subject', 'fromName', 'fromEmail'], 'properties': {'html': {'type': 'string', 'description': 'Full HTML body (one of html/templateSlug required)'}, 'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Internal campaign name'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'replyTo': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}, 'subject': {'type': 'string', 'maxLength': 255, 'minLength': 1}, 'topicId': {'type': 'string', 'description': 'Send to all subscribers of this topic'}, 'fromName': {'type': 'string', 'maxLength': 255}, 'fromEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Must be a verified domain'}, 'segmentId': {'type': 'string', 'description': 'Send to all contacts matching this segment'}, 'audienceId': {'type': 'string', 'description': 'Send to all contacts in this audience'}, 'scheduleAt': {'type': 'string', 'description': 'ISO-8601 future datetime; omit to send immediately'}, 'previewText': {'type': 'string', 'maxLength': 255}, 'templateSlug': {'type': 'string', 'description': 'Workspace template slug to use'}}}
send_campaign_test
Send a test email for an existing campaign to preview how it will look in recipients' inboxes.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'testEmail'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'testEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Email address to send the test to'}, 'campaignId': {'type': 'string', 'description': 'Campaign ID to send test for'}}}
send_email
Send a transactional email through Send16. Provide `html`, `text`, or both (text-only is fine for OTPs/receipts/alerts). `from_email` must belong to a domain that is verified in the workspace — call `whoami` for the account and `list_domains` to see which senders are allowed; a send from an unverified domain returns a clear error, not a silent failure. For a zero-setup first send, use from_email `onboarding@send16.com` — the sandbox sender delivers with no DNS, but only to your own account email.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['to', 'subject'], 'properties': {'to': {'anyOf': [{'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}, {'type': 'array', 'items': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}, 'maxItems': 50, 'minItems': 1}], 'description': 'Recipient email address or array of addresses (max 50)'}, 'html': {'type': 'string', 'description': 'HTML body content'}, 'text': {'type': 'string', 'description': 'Plain text body content'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'subject': {'type': 'string', 'maxLength': 255, 'description': 'Email subject line'}, 'reply_to': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Reply-to email address'}, 'template': {'type': 'string', 'description': 'Transactional template slug to use instead of inline content'}, 'from_name': {'type': 'string', 'maxLength': 255, 'description': 'Sender display name (e.g. "Acme Co")'}, 'variables': {'type': 'object', 'description': 'Template variables for merge tags', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'from_email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Sender email address (must be from a verified domain)'}}}
send_event
Fire a custom event for a contact. Automations whose trigger is `{type:'custom_event', eventName:'<name>'}` will enroll the contact and start running. Payload is exposed to condition steps as `event.<key>`.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'pattern': '^[a-z0-9_.-]+$', 'maxLength': 100, 'minLength': 1, 'description': "Event name (e.g. 'trial_started', 'order.placed')"}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'payload': {'type': 'object', 'description': 'Arbitrary JSON metadata available to automation conditions', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'contactId': {'type': 'string', 'description': 'Contact UUID (provide either this or contactEmail)'}, 'occurredAt': {'type': 'string', 'description': 'ISO-8601 timestamp; defaults to now'}, 'contactEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Contact email (provide either this or contactId)'}}}
send_reply
Reply to an inbox conversation. The reply is sent from the original recipient address (the alias the convo arrived on) and threaded back to the contact.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['convoId'], 'properties': {'html': {'type': 'string', 'description': 'HTML body of the reply'}, 'text': {'type': 'string', 'description': 'Plain text body of the reply'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'convoId': {'type': 'string', 'description': 'Conversation ID'}}}
update_action
Update an Action (toggle enabled, change template, change event name).
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['actionId'], 'properties': {'name': {'type': 'string'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'enabled': {'type': 'boolean'}, 'actionId': {'type': 'string', 'description': 'Action ID'}, 'sendOnce': {'type': 'boolean'}, 'eventName': {'type': 'string'}, 'delaySeconds': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'templateSlug': {'type': 'string'}}}
update_brand
Update workspace brand settings. The designSpec field is a Markdown DESIGN.md document fed into AI generation system prompts — use it to encode voice, do/don't lists, and visual rules.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'logoUrl': {'type': 'string', 'format': 'uri'}, 'designSpec': {'type': 'string', 'description': 'Markdown DESIGN.md spec for AI generation'}, 'fontFamily': {'type': 'string', 'description': 'Body font family'}, 'primaryColor': {'type': 'string', 'description': "Hex color (e.g. '#4F46E5')"}, 'secondaryColor': {'type': 'string', 'description': 'Hex color'}}}
update_campaign
Update a draft campaign: name, subject, preview text, sender info, HTML content, and/or recipients. Retarget with exactly ONE of audienceIds / segmentId / contactIds / tagIds / sendToAll, then verify with preview_campaign_recipients before sending. Only drafts can be edited.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'html': {'type': 'string'}, 'name': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Campaign name (internal label)'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'tagIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Retarget to contacts with these tag IDs'}, 'replyTo': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}, 'subject': {'type': 'string'}, 'fromName': {'type': 'string'}, 'fromEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}, 'segmentId': {'type': 'string', 'description': 'Retarget to this segment (see list_segments)'}, 'sendToAll': {'type': 'boolean', 'description': 'Retarget to all subscribed contacts in the workspace'}, 'campaignId': {'type': 'string', 'description': 'Campaign ID'}, 'contactIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Retarget to these specific contact IDs'}, 'audienceIds': {'type': 'array', 'items': {'type': 'string'}, 'description': "Retarget to these audience IDs (see list_audiences). Sets recipient type 'lists'."}, 'previewText': {'type': 'string'}}}
update_contact
Update a contact's profile fields, custom fields, or subscription state.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contactId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'lastName': {'type': 'string'}, 'contactId': {'type': 'string', 'description': 'Contact ID'}, 'firstName': {'type': 'string'}, 'subscribed': {'type': 'boolean'}, 'customFields': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}}
update_convo
Update conversation status (open/closed/archived/snoozed) or assignee.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['convoId'], 'properties': {'state': {'enum': ['open', 'closed', 'archived', 'snoozed'], 'type': 'string', 'description': 'New status'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'convoId': {'type': 'string', 'description': 'Conversation ID'}, 'assigneeId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Workspace member user ID, or null to unassign'}}}
update_topic
Update a subscription topic (name, description, default).
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topicId'], 'properties': {'name': {'type': 'string'}, 'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}, 'topicId': {'type': 'string', 'description': 'Topic ID'}, 'isDefault': {'type': 'boolean'}, 'description': {'type': 'string'}}}
whoami
Verify the API key and return the authenticated workspace: name, plan, email quota (used/limit), and owner. Call this first to confirm the key works before sending. Pair with list_domains to see which `from` addresses are allowed.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'apiKey': {'type': 'string', 'description': 'Send16 API key (overrides SEND16_API_KEY env var)'}}}
Ajouté
regenerate_webhook_secret
17 September 2026 12:52
Ajouté
delete_webhook
17 September 2026 12:52
Ajouté
create_webhook
17 September 2026 12:52
Ajouté
list_webhooks
17 September 2026 12:52
Ajouté
remove_suppression
17 September 2026 12:52
Ajouté
add_suppression
17 September 2026 12:52
Ajouté
list_suppressions
17 September 2026 12:52
Ajouté
get_workspace_usage
17 September 2026 12:52
Ajouté
update_brand
17 September 2026 12:52
Ajouté
get_brand
17 September 2026 12:52
Ajouté
get_workspace
17 September 2026 12:52
Ajouté
list_workspaces
17 September 2026 12:52
Ajouté
list_automation_enrollments
17 September 2026 12:52
Ajouté
get_automation_stats
17 September 2026 12:52
Ajouté
pause_automation
17 September 2026 12:52
Ajouté
activate_automation
17 September 2026 12:52
Ajouté
preview_campaign_recipients
17 September 2026 12:52
Ajouté
delete_campaign
17 September 2026 12:52
Ajouté
duplicate_campaign
17 September 2026 12:52
Ajouté
resume_campaign
17 September 2026 12:52
Ajouté
pause_campaign
17 September 2026 12:52
Ajouté
update_campaign
17 September 2026 12:52
Ajouté
schedule_campaign
17 September 2026 12:52
Ajouté
send_broadcast
17 September 2026 12:52
Ajouté
get_contact_health_score
17 September 2026 12:52
Ajouté
get_contact_timeline
17 September 2026 12:52
Ajouté
delete_contact
17 September 2026 12:52
Ajouté
update_contact
17 September 2026 12:52
Ajouté
preview_segment
17 September 2026 12:52
Ajouté
list_segments
17 September 2026 12:52