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