send16-mcp
Email for AI agents: send mail, manage contacts, automations & webhooks. Zero-DNS first send.
我該用這個嗎
品質與安全性
發現項目(1)
- LOW在 regenerate_webhook_secret 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"send16-mcp": {
"command": "npx",
"args": [
"send16-mcp"
]
}
}
}可執行的套件
0.5.8stdio遠端端點
https://mcp.send16.com/mcpstreamable-http它能做什麼
工具清單
工具(79)
🟢whoami(apiKey)
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.
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴send_email(to, subject, html, text, from_name, ...)
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 `[email protected]` — the sandbox sender delivers with no DNS, but only to your own account email.
輸入結構描述
{
"type": "object",
"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,}$"
},
{
"minItems": 1,
"maxItems": 50,
"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,}$"
}
}
],
"description": "Recipient email address or array of addresses (max 50)"
},
"subject": {
"type": "string",
"maxLength": 255,
"description": "Email subject line"
},
"html": {
"description": "HTML body content",
"type": "string"
},
"text": {
"description": "Plain text body content",
"type": "string"
},
"from_name": {
"description": "Sender display name (e.g. \"Acme Co\")",
"type": "string",
"maxLength": 255
},
"from_email": {
"description": "Sender email address (must be from a verified domain)",
"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,}$"
},
"reply_to": {
"description": "Reply-to email address",
"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,}$"
},
"template": {
"description": "Transactional template slug to use instead of inline content",
"type": "string"
},
"variables": {
"description": "Template variables for merge tags",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"to",
"subject"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡send_campaign_test(campaignId, testEmail, apiKey)
Send a test email for an existing campaign to preview how it will look in recipients' inboxes.
輸入結構描述
{
"type": "object",
"properties": {
"campaignId": {
"type": "string",
"description": "Campaign ID to send test for"
},
"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"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"campaignId",
"testEmail"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_campaign(name, subject, fromName, fromEmail, replyTo, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Campaign name (internal label)"
},
"subject": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"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)"
},
"replyTo": {
"description": "Reply-to email address",
"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,}$"
},
"previewText": {
"description": "Preview text shown in inbox alongside subject",
"type": "string",
"maxLength": 200
},
"html": {
"description": "Full HTML body for the email (skip to design later)",
"type": "string"
},
"audienceIds": {
"description": "Target these audience IDs (see list_audiences)",
"type": "array",
"items": {
"type": "string"
}
},
"segmentId": {
"description": "Target this segment (see list_segments)",
"type": "string"
},
"contactIds": {
"description": "Target these specific contact IDs",
"type": "array",
"items": {
"type": "string"
}
},
"tagIds": {
"description": "Target contacts with these tag IDs",
"type": "array",
"items": {
"type": "string"
}
},
"sendToAll": {
"description": "Target all subscribed contacts in the workspace",
"type": "boolean"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"name",
"subject",
"fromName",
"fromEmail"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪design_email_template(type, style, description, brandColor, companyName, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"marketing",
"transactional",
"newsletter",
"announcement",
"welcome",
"promotional"
],
"description": "Type of email template to generate"
},
"style": {
"type": "string",
"enum": [
"minimal",
"modern",
"bold",
"elegant",
"playful",
"corporate"
],
"description": "Visual style/aesthetic for the template"
},
"description": {
"type": "string",
"minLength": 10,
"maxLength": 1000,
"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')"
},
"brandColor": {
"description": "Primary brand color as hex code (e.g. \"#4F46E5\")",
"type": "string"
},
"companyName": {
"description": "Company or brand name to include in the template",
"type": "string"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"type",
"style",
"description"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_campaigns(status, search, page, pageSize, apiKey)
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.
輸入結構描述
{
"type": "object",
"properties": {
"status": {
"description": "Filter campaigns by status",
"type": "string",
"enum": [
"draft",
"scheduled",
"sending",
"sent",
"paused"
]
},
"search": {
"description": "Case-insensitive substring match on campaign name or subject",
"type": "string",
"maxLength": 200
},
"page": {
"default": 1,
"description": "Page number",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"default": 20,
"description": "Results per page (max 100)",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_contact(email, firstName, lastName, audienceIds, tags, ...)
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.
輸入結構描述
{
"type": "object",
"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,}$",
"description": "Contact email address"
},
"firstName": {
"description": "Contact first name",
"type": "string",
"maxLength": 255
},
"lastName": {
"description": "Contact last name",
"type": "string",
"maxLength": 255
},
"audienceIds": {
"description": "Add the contact to these audience IDs (see list_audiences)",
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"description": "Tag NAMES to assign — matched case-insensitively, created if missing",
"type": "array",
"items": {
"type": "string"
}
},
"customFields": {
"description": "Custom field key-value pairs",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"email"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_contacts(query, page, pageSize, apiKey)
Search contacts by email address or name. Returns matching contacts with their tags and subscription status.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "Search query (matches against email, first name, last name)"
},
"page": {
"default": 1,
"description": "Page number",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"default": 20,
"description": "Results per page (max 100)",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_contacts(page, pageSize, subscribed, tagId, apiKey)
List all contacts with optional filtering by subscription status and tag. Supports pagination.
輸入結構描述
{
"type": "object",
"properties": {
"page": {
"default": 1,
"description": "Page number",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"default": 20,
"description": "Results per page (max 100)",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"subscribed": {
"description": "Filter by subscription status",
"type": "string",
"enum": [
"true",
"false"
]
},
"tagId": {
"description": "Filter by tag ID",
"type": "string"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡import_contacts(csvData, audienceIds, tags, updateExisting, apiKey)
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).
輸入結構描述
{
"type": "object",
"properties": {
"csvData": {
"type": "string",
"description": "CSV string with headers. Required column: \"email\". Optional: \"firstName\", \"lastName\""
},
"audienceIds": {
"description": "Add all imported contacts to these audience IDs (see list_audiences / create_audience)",
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"description": "Tag NAMES to apply to all imported contacts — matched case-insensitively, created if missing",
"type": "array",
"items": {
"type": "string"
}
},
"updateExisting": {
"default": false,
"description": "Whether to update contacts that already exist",
"type": "boolean"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"csvData"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_domains(apiKey)
List all sending domains configured in your Send16 workspace, including their verification status and DNS records.
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_domain_health(domainId, apiKey)
Check the DNS health of a specific domain, including DKIM, SPF, DMARC, and MX record verification status. Triggers a fresh DNS lookup.
輸入結構描述
{
"type": "object",
"properties": {
"domainId": {
"type": "string",
"description": "Domain ID to check health for"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"domainId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_campaign_stats(campaignId, apiKey)
Get detailed performance statistics for a specific campaign including open rate, click rate, bounce rate, and delivery metrics.
輸入結構描述
{
"type": "object",
"properties": {
"campaignId": {
"type": "string",
"description": "Campaign ID to get stats for"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"campaignId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_deliverability_status(apiKey)
Get your workspace's deliverability summary — sending reputation, domain authentication status, and recent bounce/complaint health. (Deliverability Hub plan feature.)
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_automations(apiKey)
List all automations in the workspace, including draft/active/paused status and trigger types.
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_automation(automationId, apiKey)
Get a single automation by ID, including its trigger, steps, and current status.
輸入結構描述
{
"type": "object",
"properties": {
"automationId": {
"type": "string",
"description": "Automation ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"automationId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡enroll_in_automation(automationId, contactId, apiKey)
Manually enroll a contact in an active automation. The automation must be in 'active' status. Use send_event for event-driven enrollment.
輸入結構描述
{
"type": "object",
"properties": {
"automationId": {
"type": "string",
"description": "Automation ID to enroll into"
},
"contactId": {
"type": "string",
"description": "Contact UUID (use search_contacts to look up by email first)"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"automationId",
"contactId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡send_event(name, contactId, contactEmail, payload, occurredAt, ...)
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>`.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[a-z0-9_.-]+$",
"description": "Event name (e.g. 'trial_started', 'order.placed')"
},
"contactId": {
"description": "Contact UUID (provide either this or contactEmail)",
"type": "string"
},
"contactEmail": {
"description": "Contact email (provide either this or contactId)",
"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,}$"
},
"payload": {
"description": "Arbitrary JSON metadata available to automation conditions",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"occurredAt": {
"description": "ISO-8601 timestamp; defaults to now",
"type": "string"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"name"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_templates(apiKey)
List starter-gallery email templates available to every workspace.
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_template(templateId, apiKey)
Get a single starter template by ID, including its EmailContent JSON.
輸入結構描述
{
"type": "object",
"properties": {
"templateId": {
"type": "string",
"description": "Template ID (slug)"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"templateId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡render_email_content(content, variables, apiKey)
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.
輸入結構描述
{
"type": "object",
"properties": {
"content": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {},
"description": "EmailContent JSON (from get_template or the builder)"
},
"variables": {
"description": "Variable replacements (e.g. {firstName:'Alice'})",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"content"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡add_domain(domain, apiKey)
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.
輸入結構描述
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 3,
"maxLength": 255,
"description": "FQDN to register (e.g. 'mail.example.com')"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"domain"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡pre_send_review(subject, html, audience, apiKey)
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.
輸入結構描述
{
"type": "object",
"properties": {
"subject": {
"type": "string",
"description": "Email subject line"
},
"html": {
"type": "string",
"description": "Full HTML body to review"
},
"audience": {
"description": "Short description of the audience (helps tone analysis)",
"type": "string"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"subject",
"html"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡generate_email_from_url(url, instructions, apiKey)
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.
輸入結構描述
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Public URL to scrape and turn into an email"
},
"instructions": {
"description": "Additional guidance — e.g. 'announcement style, focus on the new feature'",
"type": "string"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡list_messages(to_email, from_email, status, source, created_after, ...)
List messages from the unified send log (transactional + campaign). Filter by recipient, sender, status, date range, or source.
輸入結構描述
{
"type": "object",
"properties": {
"to_email": {
"description": "Recipient email filter",
"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,}$"
},
"from_email": {
"description": "Sender email filter",
"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,}$"
},
"status": {
"description": "Delivery status filter",
"type": "string",
"enum": [
"queued",
"sent",
"delivered",
"opened",
"clicked",
"bounced",
"failed"
]
},
"source": {
"description": "Restrict to one message source",
"type": "string",
"enum": [
"transactional",
"campaign"
]
},
"created_after": {
"description": "ISO-8601 timestamp lower bound",
"type": "string"
},
"created_before": {
"description": "ISO-8601 timestamp upper bound",
"type": "string"
},
"limit": {
"description": "Page size (default 50)",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"description": "Page offset",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_message(id, apiKey)
Fetch a single message with its full event timeline (created → sent → delivered → opened → clicked → ...).
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Message ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_message_events(id, apiKey)
Get just the delivery event timeline for a message — no body or recipient details.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Message ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_convos(state, mailboxId, label, search, limit, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"state": {
"description": "Conversation status",
"type": "string",
"enum": [
"open",
"closed",
"archived",
"snoozed"
]
},
"mailboxId": {
"description": "Filter to one mailbox",
"type": "string"
},
"label": {
"description": "Filter by label slug (comma-separate for multiple)",
"type": "string"
},
"search": {
"description": "Full-text search across subject + body",
"type": "string"
},
"limit": {
"description": "Page size (default 50)",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_convo(id, apiKey)
Get a single conversation with its full thread of posts (incoming + outgoing).
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Conversation ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡send_reply(convoId, html, text, apiKey)
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.
輸入結構描述
{
"type": "object",
"properties": {
"convoId": {
"type": "string",
"description": "Conversation ID"
},
"html": {
"description": "HTML body of the reply",
"type": "string"
},
"text": {
"description": "Plain text body of the reply",
"type": "string"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"convoId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢mark_convo_read(convoId, apiKey)
Mark a conversation as read for the current viewer.
輸入結構描述
{
"type": "object",
"properties": {
"convoId": {
"type": "string",
"description": "Conversation ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"convoId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡update_convo(convoId, state, assigneeId, apiKey)
Update conversation status (open/closed/archived/snoozed) or assignee.
輸入結構描述
{
"type": "object",
"properties": {
"convoId": {
"type": "string",
"description": "Conversation ID"
},
"state": {
"description": "New status",
"type": "string",
"enum": [
"open",
"closed",
"archived",
"snoozed"
]
},
"assigneeId": {
"description": "Workspace member user ID, or null to unassign",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"convoId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡add_convo_note(convoId, body, apiKey)
Add a private internal note on a conversation. Notes are visible only to workspace members.
輸入結構描述
{
"type": "object",
"properties": {
"convoId": {
"type": "string",
"description": "Conversation ID"
},
"body": {
"type": "string",
"minLength": 1,
"description": "Note body (markdown supported)"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"convoId",
"body"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪screener_decide(convoId, decision, apiKey)
Decide a pending screener conversation (first-time sender). 'allow' lets future emails through, 'reject' blocks, 'cold' marks as cold outreach.
輸入結構描述
{
"type": "object",
"properties": {
"convoId": {
"type": "string",
"description": "Conversation ID"
},
"decision": {
"type": "string",
"enum": [
"allow",
"reject",
"cold"
],
"description": "Screener decision"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"convoId",
"decision"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_inbox_counts(apiKey)
Get unread/total counts per category and label for the inbox sidebar (newsletter, transactional, marketing, calendar, social, cold).
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_topics(apiKey)
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.
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_topic(name, slug, description, isDefault, apiKey)
Create a new subscription topic. Contacts opt into topics individually via the preference center.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Display name shown to contacts"
},
"slug": {
"description": "URL-safe slug (auto-derived from name if omitted)",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[a-z0-9-]+$"
},
"description": {
"description": "Description shown in the preference center",
"type": "string",
"maxLength": 500
},
"isDefault": {
"description": "Auto-subscribe new contacts to this topic",
"type": "boolean"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"name"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡update_topic(topicId, name, description, isDefault, apiKey)
Update a subscription topic (name, description, default).
輸入結構描述
{
"type": "object",
"properties": {
"topicId": {
"type": "string",
"description": "Topic ID"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"isDefault": {
"type": "boolean"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"topicId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_topic(topicId, apiKey)
Delete a subscription topic. All subscribers will be detached.
輸入結構描述
{
"type": "object",
"properties": {
"topicId": {
"type": "string",
"description": "Topic ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"topicId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_actions(apiKey)
List Actions. Actions fire a transactional template when a custom event arrives — Plunk-style 'event_name → template' pairings, simpler than full automations.
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_action(actionId, apiKey)
Get a single Action with its trigger config and template binding.
輸入結構描述
{
"type": "object",
"properties": {
"actionId": {
"type": "string",
"description": "Action ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"actionId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_action(name, eventName, templateSlug, enabled, sendOnce, ...)
Create an Action that maps an event name to a transactional template. Each matching event sends one email to the contact.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Display name"
},
"eventName": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Event name to match (e.g. 'order.placed')"
},
"templateSlug": {
"type": "string",
"description": "Transactional template slug to send"
},
"enabled": {
"default": true,
"type": "boolean"
},
"sendOnce": {
"description": "Only send once per contact regardless of how many times the event fires",
"type": "boolean"
},
"delaySeconds": {
"description": "Delay before sending",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"name",
"eventName",
"templateSlug"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡update_action(actionId, name, eventName, templateSlug, enabled, ...)
Update an Action (toggle enabled, change template, change event name).
輸入結構描述
{
"type": "object",
"properties": {
"actionId": {
"type": "string",
"description": "Action ID"
},
"name": {
"type": "string"
},
"eventName": {
"type": "string"
},
"templateSlug": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"sendOnce": {
"type": "boolean"
},
"delaySeconds": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"actionId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_action(actionId, apiKey)
Delete an Action.
輸入結構描述
{
"type": "object",
"properties": {
"actionId": {
"type": "string",
"description": "Action ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"actionId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_audiences(apiKey)
List audiences (lists). An audience is a static, manually-managed group of contacts.
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_audience(name, description, apiKey)
Create a new audience.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 500
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"name"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡add_contacts_to_audience(audienceId, contactIds, apiKey)
Add contacts (by ID) to an audience.
輸入結構描述
{
"type": "object",
"properties": {
"audienceId": {
"type": "string",
"description": "Audience ID"
},
"contactIds": {
"minItems": 1,
"maxItems": 1000,
"type": "array",
"items": {
"type": "string"
},
"description": "Contact IDs to add"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"audienceId",
"contactIds"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴remove_contact_from_audience(audienceId, contactId, apiKey)
Remove a contact from an audience.
輸入結構描述
{
"type": "object",
"properties": {
"audienceId": {
"type": "string",
"description": "Audience ID"
},
"contactId": {
"type": "string",
"description": "Contact ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"audienceId",
"contactId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_audience(audienceId, apiKey)
Delete an audience (list). Contacts are not deleted — only the list and its memberships are removed.
輸入結構描述
{
"type": "object",
"properties": {
"audienceId": {
"type": "string",
"description": "Audience ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"audienceId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡list_segments(apiKey)
List dynamic segments. Segments compute their members from a filter expression at send time.
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪preview_segment(segmentId, apiKey)
Preview the contacts that match a segment without sending.
輸入結構描述
{
"type": "object",
"properties": {
"segmentId": {
"type": "string",
"description": "Segment ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"segmentId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡update_contact(contactId, firstName, lastName, customFields, subscribed, ...)
Update a contact's profile fields, custom fields, or subscription state.
輸入結構描述
{
"type": "object",
"properties": {
"contactId": {
"type": "string",
"description": "Contact ID"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"customFields": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"subscribed": {
"type": "boolean"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"contactId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_contact(contactId, apiKey)
Delete a contact and all associated events. Irreversible.
輸入結構描述
{
"type": "object",
"properties": {
"contactId": {
"type": "string",
"description": "Contact ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"contactId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_contact_timeline(contactId, limit, cursor, apiKey)
Get a contact's full activity timeline: emails received, events fired, opens, clicks, automation enrollments, topic changes.
輸入結構描述
{
"type": "object",
"properties": {
"contactId": {
"type": "string",
"description": "Contact ID"
},
"limit": {
"description": "Page size",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"cursor": {
"description": "Pagination cursor",
"type": "string"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"contactId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_contact_health_score(contactId, apiKey)
Get a contact's 0-100 health score based on recent engagement (opens, clicks, replies).
輸入結構描述
{
"type": "object",
"properties": {
"contactId": {
"type": "string",
"description": "Contact ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"contactId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡send_broadcast(name, subject, fromName, fromEmail, replyTo, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Internal campaign name"
},
"subject": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"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"
},
"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,}$"
},
"previewText": {
"type": "string",
"maxLength": 255
},
"audienceId": {
"description": "Send to all contacts in this audience",
"type": "string"
},
"segmentId": {
"description": "Send to all contacts matching this segment",
"type": "string"
},
"topicId": {
"description": "Send to all subscribers of this topic",
"type": "string"
},
"html": {
"description": "Full HTML body (one of html/templateSlug required)",
"type": "string"
},
"templateSlug": {
"description": "Workspace template slug to use",
"type": "string"
},
"scheduleAt": {
"description": "ISO-8601 future datetime; omit to send immediately",
"type": "string"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"name",
"subject",
"fromName",
"fromEmail"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡schedule_campaign(campaignId, audienceId, segmentId, topicId, scheduleAt, ...)
Schedule (or send immediately) an existing draft campaign to an audience/segment/topic.
輸入結構描述
{
"type": "object",
"properties": {
"campaignId": {
"type": "string",
"description": "Campaign ID"
},
"audienceId": {
"type": "string"
},
"segmentId": {
"type": "string"
},
"topicId": {
"type": "string"
},
"scheduleAt": {
"description": "ISO-8601 future datetime; omit to send immediately",
"type": "string"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"campaignId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡update_campaign(campaignId, name, subject, fromName, fromEmail, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"campaignId": {
"type": "string",
"description": "Campaign ID"
},
"name": {
"description": "Campaign name (internal label)",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"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,}$"
},
"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,}$"
},
"previewText": {
"type": "string"
},
"html": {
"type": "string"
},
"audienceIds": {
"description": "Retarget to these audience IDs (see list_audiences). Sets recipient type 'lists'.",
"type": "array",
"items": {
"type": "string"
}
},
"segmentId": {
"description": "Retarget to this segment (see list_segments)",
"type": "string"
},
"contactIds": {
"description": "Retarget to these specific contact IDs",
"type": "array",
"items": {
"type": "string"
}
},
"tagIds": {
"description": "Retarget to contacts with these tag IDs",
"type": "array",
"items": {
"type": "string"
}
},
"sendToAll": {
"description": "Retarget to all subscribed contacts in the workspace",
"type": "boolean"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"campaignId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪pause_campaign(campaignId, apiKey)
Pause a sending campaign. Already-sent messages are unaffected; remaining sends halt.
輸入結構描述
{
"type": "object",
"properties": {
"campaignId": {
"type": "string",
"description": "Campaign ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"campaignId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪resume_campaign(campaignId, apiKey)
Resume a paused campaign.
輸入結構描述
{
"type": "object",
"properties": {
"campaignId": {
"type": "string",
"description": "Campaign ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"campaignId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪duplicate_campaign(campaignId, name, audienceIds, segmentId, contactIds, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"campaignId": {
"type": "string",
"description": "Campaign ID to duplicate"
},
"name": {
"description": "Name for the new draft (default: original name + ' (Copy)')",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"audienceIds": {
"description": "Retarget the new draft to these audience IDs (see list_audiences)",
"type": "array",
"items": {
"type": "string"
}
},
"segmentId": {
"description": "Retarget the new draft to this segment",
"type": "string"
},
"contactIds": {
"description": "Retarget the new draft to these contact IDs",
"type": "array",
"items": {
"type": "string"
}
},
"tagIds": {
"description": "Retarget the new draft to contacts with these tag IDs",
"type": "array",
"items": {
"type": "string"
}
},
"sendToAll": {
"description": "Retarget the new draft to all subscribed contacts",
"type": "boolean"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"campaignId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_campaign(campaignId, apiKey)
Delete a draft campaign. Sent campaigns cannot be deleted (only archived).
輸入結構描述
{
"type": "object",
"properties": {
"campaignId": {
"type": "string",
"description": "Campaign ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"campaignId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡preview_campaign_recipients(campaignId, apiKey)
Preview the recipient set for a campaign before sending. Returns count + sample list.
輸入結構描述
{
"type": "object",
"properties": {
"campaignId": {
"type": "string",
"description": "Campaign ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"campaignId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪activate_automation(automationId, apiKey)
Activate an automation. New events matching its triggers will start enrolling contacts.
輸入結構描述
{
"type": "object",
"properties": {
"automationId": {
"type": "string",
"description": "Automation ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"automationId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪pause_automation(automationId, apiKey)
Pause an automation. Existing enrollments freeze in place; no new contacts enroll.
輸入結構描述
{
"type": "object",
"properties": {
"automationId": {
"type": "string",
"description": "Automation ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"automationId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_automation_stats(automationId, apiKey)
Get aggregate analytics for an automation: total enrollments, completed, exited, open/click rates per step.
輸入結構描述
{
"type": "object",
"properties": {
"automationId": {
"type": "string",
"description": "Automation ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"automationId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_automation_enrollments(automationId, state, page, pageSize, apiKey)
List active and historical enrollments for an automation.
輸入結構描述
{
"type": "object",
"properties": {
"automationId": {
"type": "string",
"description": "Automation ID"
},
"state": {
"type": "string",
"enum": [
"active",
"completed",
"exited",
"paused"
]
},
"page": {
"description": "Page number",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Results per page (max 100)",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"automationId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_workspaces(apiKey)
List workspaces the authenticated user has access to (owner or member).
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_workspace(apiKey)
Get the current workspace (the one the API key belongs to).
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_brand(apiKey)
Get the workspace's brand settings: colors, logo, fonts, and the DESIGN.md spec injected into AI generation prompts.
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡update_brand(primaryColor, secondaryColor, logoUrl, fontFamily, designSpec, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"primaryColor": {
"description": "Hex color (e.g. '#4F46E5')",
"type": "string"
},
"secondaryColor": {
"description": "Hex color",
"type": "string"
},
"logoUrl": {
"type": "string",
"format": "uri"
},
"fontFamily": {
"description": "Body font family",
"type": "string"
},
"designSpec": {
"description": "Markdown DESIGN.md spec for AI generation",
"type": "string"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡get_workspace_usage(apiKey)
Get the current month's send count, contact count, and plan limits.
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_suppressions(reason, limit, offset, apiKey)
List suppressed email addresses (bounces, complaints, unsubscribes, manual).
輸入結構描述
{
"type": "object",
"properties": {
"reason": {
"type": "string",
"enum": [
"bounce",
"complaint",
"unsubscribe",
"manual"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡add_suppression(email, reason, notes, apiKey)
Add an email to the suppression list. Future sends to this address will be blocked.
輸入結構描述
{
"type": "object",
"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,}$"
},
"reason": {
"default": "manual",
"type": "string",
"enum": [
"bounce",
"complaint",
"unsubscribe",
"manual"
]
},
"notes": {
"type": "string"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"email"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴remove_suppression(email, apiKey)
Remove an email from the suppression list. Use only when you've confirmed the recipient wants to receive mail again.
輸入結構描述
{
"type": "object",
"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": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"email"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_webhooks(apiKey)
List configured outgoing webhooks (your endpoints that Send16 POSTs delivery events to). Outgoing webhooks are a plan feature.
輸入結構描述
{
"type": "object",
"properties": {
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_webhook(name, url, events, enabled, apiKey)
Register an outgoing webhook endpoint. Send16 POSTs event JSON to this URL with an HMAC-SHA256 signature. Outgoing webhooks are a plan feature.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "A label for this endpoint"
},
"url": {
"type": "string",
"format": "uri",
"description": "HTTPS endpoint to receive events"
},
"events": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"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"
]
},
"description": "Event types to subscribe to"
},
"enabled": {
"description": "Whether the endpoint is active (default true)",
"type": "boolean"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"name",
"url",
"events"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_webhook(webhookId, apiKey)
Delete an outgoing webhook endpoint.
輸入結構描述
{
"type": "object",
"properties": {
"webhookId": {
"type": "string",
"description": "Webhook ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"webhookId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪regenerate_webhook_secret(webhookId, apiKey)
Rotate the HMAC signing secret for an outgoing webhook endpoint. Returns the new secret once.
輸入結構描述
{
"type": "object",
"properties": {
"webhookId": {
"type": "string",
"description": "Webhook ID"
},
"apiKey": {
"description": "Send16 API key (overrides SEND16_API_KEY env var)",
"type": "string"
}
},
"required": [
"webhookId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}社群
證據