add_domain
ChatGPTAdd a sending domain and return the DNS records to publish. The domain cannot send until those records are live and verify_domain succeeds.
archive_email
ChatGPTMove an email to the archive folder. Reversible — the message is not deleted.
categorize_inbox_emails
ChatGPTRun AI categorisation over a batch of inbox emails to label intent and priority. Consumes AI credits — pass only the emails you actually need triaged.
check_dmarc
ChatGPTCheck live SPF, DKIM, and DMARC DNS records for a domain and report alignment problems with the exact record to publish. Works for any domain, not only your own.
clear_sandbox
ChatGPTDelete every captured sandbox email. Affects only intercepted test messages, never real sent mail.
configure_inbound_domain
ChatGPTConfigure inbound email routing for a subdomain so replies land in the MisarMail unified inbox. Returns the MX record to publish.
create_ab_test
ChatGPTCreate one A/B test variant on a campaign. The real API stores a single variant per call, so build a test by calling this once per variant (e.g. twice for a plain A/B split) using the same campaign_id and distinct variant labels. Each variant gets send_percent of the audience; auto_select_winner (with winner_wait_hours) can pick and send the winner automatically, or use select_ab_test_winner to do it manually.
create_automation
ChatGPTCreate an automation workflow from a trigger, saved as a paused draft. The API's create endpoint only accepts a name and trigger — it has no fields for workflow steps or starting active; configure the step sequence in the MisarMail dashboard's visual builder, and use toggle_automation to activate once reviewed.
create_campaign
ChatGPTCreate a new email marketing campaign as a draft. Creating never sends or schedules anything — once the content and audience are confirmed, call send_campaign to send it now or schedule it for later.
create_contact
ChatGPTAdd a single contact. Adding a contact records consent to email them — only add addresses that opted in, or the send will damage sender reputation and may breach CAN-SPAM/GDPR.
create_landing_page
ChatGPTCreate a hosted landing page with a single hero block (headline, subheadline, CTA). Returns the public URL. The real API stores pages as a page-builder block array with no dedicated headline/CTA fields, so this tool translates your inputs into one 'hero' block — for multi-block pages or a real CTA link, use the landing page editor in the MisarMail dashboard.
create_template
ChatGPTCreate a reusable email template. Use {{variable}} placeholders for personalisation — they are substituted at send time and previewable via render_template.
generate_report
ChatGPTGenerate a structured analytics report over a date range. Report types: campaign_performance, engagement_funnel, cohort_analysis, and send_time_heatmap (best hour/day to send).
generate_subject_lines
ChatGPTGenerate AI subject-line variants for a campaign topic, optionally tuned to a tone and audience. Good input for create_ab_test.
get_analytics
ChatGPTGet delivery and engagement analytics — sent, delivered, opened, clicked, bounced, and complained — for the account or one campaign, grouped by day/week/month.
get_analytics_timeline
ChatGPTGet a day/week/month breakdown of sent, delivered, opened, clicked, bounced, complained, replied, and unsubscribed — across every send medium (campaigns, inbox compose, API, MCP, SDKs, GraphQL, automations). The timeline counterpart to get_analytics's period totals.
get_automation
ChatGPTGet one automation workflow in full: trigger, every step with its delay, and per-step completion stats.
get_campaign
ChatGPTGet full details for one campaign: content, audience segment, schedule, and delivery statistics (sent, opened, clicked, bounced, complained).
get_contact_score
ChatGPTGet engagement score, engagement tier, and churn risk for one contact — or the lowest-engagement contacts across the list when contact_id is omitted. Use before a re-engagement campaign.
get_deliverability_score
ChatGPTGet the account deliverability score (0–100) and letter grade (A–F) with the factors dragging it down. Start here when asked why emails are landing in spam.
get_email
ChatGPTRead the full content of a single email by ID, including headers, body, and attachments metadata. Side effect: marks the email as read.
get_form
ChatGPTGet one signup form including its fields, embed code, and redirect behaviour.
get_form_submissions
ChatGPTList submissions for a signup form, including the submitted field values and timestamps.
get_inbox_conversation_messages
ChatGPTGet every message in one inbox conversation, oldest first, with sender and timestamps.
get_integration
ChatGPTGet one integration's configuration, scopes, and last sync result.
get_revenue_attribution
ChatGPTAttribute ecommerce revenue to email — revenue per campaign, per contact, and average order value from tracked conversions.
get_warmup_status
ChatGPTGet IP/domain warm-up progress and today's remaining send capacity. Exceeding warm-up capacity on a new domain is the fastest way to get throttled or blocklisted.
import_contacts
ChatGPTBulk-import up to 5,000 contacts in one call. By default, addresses that already exist are skipped rather than duplicated — pass update_existing: true to update them instead. Returns per-row results so you can see which rows were rejected and why.
list_ab_tests
ChatGPTList A/B tests with per-variant results and whether a winner has been selected yet.
list_api_keys
ChatGPTList API keys on the account with their scopes and last-used time. Key secrets are never returned — only metadata.
list_automations
ChatGPTList automation workflows (welcome series, re-engagement, drip sequences) with their trigger type and active state.
list_campaigns
ChatGPTList email marketing campaigns with their status, audience size, and headline metrics. Filter by status to find drafts ready to send or campaigns still sending.
list_contacts
ChatGPTList contacts with their subscription status and engagement metrics. Filter by status to find unsubscribed or bounced addresses that should be excluded from sends.
list_domains
ChatGPTList sending domains with verification status and their DKIM/SPF/DMARC records. Check here first when a send fails with an unverified-sender error.
list_emails
ChatGPTList emails from a mailbox folder with optional full-text search across subject and body. Use this for reading the unified inbox; use list_campaigns for marketing sends.
list_forms
ChatGPTList signup forms with their embed status and conversion counts.
list_inbox_conversations
ChatGPTList unified-inbox conversations (threads) with their status and detected intent. Use this for triage; use list_emails for individual messages in a folder.
list_integrations
ChatGPTList connected third-party integrations and their sync status.
list_sandbox_sends
ChatGPTList emails captured by sandbox mode. Sandbox intercepts sends instead of delivering them — use it to verify templates and automations without emailing anyone.
list_templates
ChatGPTList saved email templates with their variable placeholders, so you can pick one for a campaign or transactional send.
render_template
ChatGPTRender a template with sample variables and return the resulting HTML and subject. Use this to preview personalisation before sending anything.
reply_to_email
ChatGPTReply to an existing email thread. The sender address and threading headers are derived from the original message, so only the body is required.
run_deliverability_audit
ChatGPTRun a full deliverability audit across authentication (SPF/DKIM/DMARC), domain reputation, list hygiene, content signals, and blocklist status. Returns prioritized findings.
select_ab_test_winner
ChatGPTSelect the winning variant and send it to the remaining audience. This triggers a real send to everyone who was held back — it cannot be undone.
send_campaign
ChatGPTSend a campaign now, or schedule it for a future time by passing scheduled_at. This delivers real email to real recipients and cannot be undone once sending starts — confirm the audience with get_campaign first.
send_email
ChatGPTSend a transactional email from a verified MisarMail account. from.email must match an email account you have already verified — use list_domains to check which sender domains are available. Returns the message ID and queue status.
toggle_automation
ChatGPTActivate or pause an automation. Activating starts enrolling contacts and sending on the configured schedule.
toggle_integration
ChatGPTEnable or disable an integration. Disabling stops all syncing but preserves the stored credentials.
update_contact
ChatGPTUpdate an existing contact by email address, including changing subscription status. Setting status to unsubscribed immediately excludes them from every future campaign. Does not support tags, phone, company, or job title — the API has no fields for them.
validate_email
ChatGPTValidate an email address before sending: syntax, MX records, disposable-domain and role-account detection. Use this to protect sender reputation on imported lists.
verify_domain
ChatGPTRe-check a domain's DNS records and mark it verified if they resolve. Safe to retry — DNS propagation can take up to 48 hours.