Skip to content

Email

ElasticEmail
API integration

Ship Email features without building the integration. Full ElasticEmail API access via Proxy and 110+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Talk to us
ElasticEmail

Use Cases

Why integrate with ElasticEmail

Common scenarios for SaaS companies building ElasticEmail integrations for their customers.

01

Offer native email marketing inside your SaaS

Let your users design templates, build lists, and launch campaigns from ElasticEmail without leaving your product. Ideal for CRMs, e-commerce platforms, and vertical SaaS that want email marketing as a built-in channel.

02

White-label email sending for multi-tenant platforms

Auto-provision an isolated ElasticEmail subaccount for each of your customers, allocate email credits, and meter usage for billing. Lets agencies and SaaS platforms resell email infrastructure under their own brand.

03

Close the loop on campaign analytics

Pull delivery, open, click, bounce, and unsubscribe metrics back into your product so users see email performance alongside their CRM, pipeline, or revenue data. Powered by ElasticEmail events and campaign statistics.

04

Keep contact lists and suppressions in sync

Mirror contacts, lists, and segments between your SaaS and ElasticEmail, and automatically push unsubscribes or bounces back so users maintain a clean, compliant sender reputation across both systems.

05

Verify email lists before sending

Give users one-click list hygiene inside your app by submitting email files to ElasticEmail's verification engine and surfacing the scored results. Reduces bounce rates for sales, lead gen, and outreach tools.

What You Can Build

Ship these features with Truto + ElasticEmail

Concrete product features your team can ship faster by leveraging Truto’s ElasticEmail integration instead of building from scratch.

01

Campaign launcher

Create, update, pause, and trigger ElasticEmail campaigns against user-selected lists and templates directly from your UI.

02

Two-way contact and list sync

Sync contacts, lists, and segments between your product and ElasticEmail, including bulk imports and bulk deletes.

03

Subaccount provisioning engine

Programmatically create ElasticEmail subaccounts per tenant, update their email settings, and bulk-adjust credits or sending limits for metered billing.

04

Transactional and bulk send API

Send transactional emails, bulk campaigns, and merge-file sends from your app, then poll email status to confirm delivery.

05

Real-time engagement webhooks

Register ElasticEmail webhooks on behalf of users to receive opens, clicks, bounces, and unsubscribes and reflect them instantly in your product.

06

Domain authentication onboarding

Let users add sending domains, trigger SPF/DKIM verification, and set a default domain through a guided in-app flow.

SuperAI

ElasticEmail AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_elastic_email_campaigns

Load Campaigns in Elastic Email. Returns a list all of your campaigns. Limited to 1000 results. Requires API key access level: ViewCampaigns Returns: Content, Name, Status, Recipients, ExcludedRecipients, Options. Required: none.

create_a_elastic_email_campaign

Add Campaign in Elastic Email. Add a campaign for processing. Requires API key access level: ModifyCampaigns Returns: Content, Name, Status, Recipients, ExcludedRecipients, Options. Required: Name, Recipients.

get_single_elastic_email_campaign_by_id

Load Campaign in Elastic Email. Returns the specified campaign details. Requires API key access level: ViewCampaigns id is the campaign name. Returns: Content, Name, Status, Recipients, ExcludedRecipients, Options. Required: id.

update_a_elastic_email_campaign_by_id

Update Campaign in Elastic Email. Updates a previously added campaign. Only Active and Paused campaigns can be updated. Requires API key access level: ModifyCampaigns id is the campaign name. Returns: Content, Name, Status, Recipients, ExcludedRecipients, Options. Required: id, Name, Recipients.

delete_a_elastic_email_campaign_by_id

Delete Campaign in Elastic Email. Delete the specific campaign. This does not cancel in progress email, see Cancel In Progress. Requires API key access level: ModifyCampaigns id is the campaign name. Returns an empty response on success. Required: id.

elastic_email_campaigns_pause

Pause Campaign in Elastic Email. Pauses the specific campaign, cancelling emails that are waiting to be sent. Requires API key access level: ModifyCampaigns Returns an empty response on success. Required: campaign_id.

elastic_email_campaigns_trigger_automation

Trigger Automation for Contact in Elastic Email. Manually trigger an Automation for a contact. Requires API key access level: ModifyAutomations Returns an empty response on success. Required: automation_id.

list_all_elastic_email_contacts

Load Contacts in Elastic Email. Returns a list of contacts. Requires API key access level: ViewContacts Returns: Email, Status, FirstName, LastName, CustomFields, Consent, Source, SourceInfo, DateAdded, DateUpdated, StatusChangeDate, Activity. Required: none.

create_a_elastic_email_contact

Add Contact in Elastic Email. Add new Contacts to your Lists. Up to 1000 can be added (for more please refer to the import request). Requires API key access level: ModifyContacts Returns: Email, Status, FirstName, LastName, CustomFields, Consent, Source, SourceInfo, DateAdded, DateUpdated, StatusChangeDate, Activity. Required: the request body (see body schema).

get_single_elastic_email_contact_by_id

Load Contact in Elastic Email. Load detailed contact information for specified email. Requires API key access level: ViewContacts id is the contact email address. Returns: Email, Status, FirstName, LastName, CustomFields, Consent, Source, SourceInfo, DateAdded, DateUpdated, StatusChangeDate, Activity. Required: id.

update_a_elastic_email_contact_by_id

Update Contact in Elastic Email. Update selected contact. Omitted contact's fields will not be changed. Requires API key access level: ModifyContacts id is the contact email address. Returns: Email, Status, FirstName, LastName, CustomFields, Consent, Source, SourceInfo, DateAdded, DateUpdated, StatusChangeDate, Activity. Required: id.

delete_a_elastic_email_contact_by_id

Delete Contact in Elastic Email. Deletes the provided contact. Requires API key access level: ModifyContacts id is the contact email address. Returns an empty response on success. Required: id.

elastic_email_contacts_delete_bulk

Delete Contacts Bulk in Elastic Email. Deletes provided contacts in bulk. Requires API key access level: ModifyContacts Returns an empty response on success. Required: the request body (see body schema).

elastic_email_contacts_export

Export Contacts in Elastic Email. Request an Export of specified Contacts. Requires API key access level: Export Returns: Link, PublicExportID. Required: none.

elastic_email_contacts_export_status

Check Export Status in Elastic Email. Check the current status of the export. Requires API key access level: Export Required: export_id.

elastic_email_contacts_import

Upload Contacts in Elastic Email. Upload contacts from a file. Requires API key access level: ModifyContacts Returns an empty response on success. Required: the request body (see body schema).

list_all_elastic_email_domains

Load Domains in Elastic Email. Returns a list of all domains configured for this Account. Requires API key access level: ViewSettings Returns: Domain, DefaultDomain, Spf, Dkim, MX, DMARC, IsRewriteDomainValid, Verify, Type, TrackingStatus, CertificateStatus, CertificateExpiryDate, CertificateValidationError, TrackingTypeUserRequest, VERP, CustomBouncesDomain, IsCustomBouncesDomainDefault, WasEverVerified,…. Required: none.

create_a_elastic_email_domain

Add Domain in Elastic Email. Add new domain to Account. Requires API key access level: ModifySettings Returns: Domain, DefaultDomain, Spf, Dkim, MX, DMARC, IsRewriteDomainValid, Verify, Type, TrackingStatus, CertificateStatus, CertificateExpiryDate, CertificateValidationError, TrackingTypeUserRequest, VERP, CustomBouncesDomain, IsCustomBouncesDomainDefault, WasEverVerified,…. Required: the request body (see body schema).

get_single_elastic_email_domain_by_id

Load Domain in Elastic Email. Retrieve a domain configured for this Account. Requires API key access level: ViewSettings id is the domain name. Returns: ValidationLog, Domain, DefaultDomain, Spf, Dkim, MX, DMARC, IsRewriteDomainValid, Verify, Type, TrackingStatus, CertificateStatus, CertificateExpiryDate, CertificateValidationError, TrackingTypeUserRequest, VERP, CustomBouncesDomain, IsCustomBouncesDomainDefault,…. Required: id.

update_a_elastic_email_domain_by_id

Update Domain in Elastic Email. Updates the specified domain. Requires API key access level: ModifySettings id is the domain name. Returns: Domain, DefaultDomain, Spf, Dkim, MX, DMARC, IsRewriteDomainValid, Verify, Type, TrackingStatus, CertificateStatus, CertificateExpiryDate, CertificateValidationError, TrackingTypeUserRequest, VERP, CustomBouncesDomain, IsCustomBouncesDomainDefault, WasEverVerified,…. Required: id.

delete_a_elastic_email_domain_by_id

Delete Domain in Elastic Email. Deletes configured domain from Account. Requires API key access level: ModifySettings id is the domain name. Returns an empty response on success. Required: id.

elastic_email_domains_check_restricted

Check for domain restriction in Elastic Email. Checking if domain is from free provider, or restricted. Requires API key access level: ViewSettings Required: domain_id.

elastic_email_domains_verify

Verify Domain in Elastic Email. Verifies that required DNS records exist for specified domain. Requires API key access level: ModifySettings Returns: ValidationLog, Domain, DefaultDomain, Spf, Dkim, MX, DMARC, IsRewriteDomainValid, Verify, Type, TrackingStatus, CertificateStatus, CertificateExpiryDate, CertificateValidationError, TrackingTypeUserRequest, VERP, CustomBouncesDomain, IsCustomBouncesDomainDefault,…. Required: domain_id.

elastic_email_domains_set_default

Set Default in Elastic Email. Sets a verified email address as default sender. Requires API key access level: ModifySettings Returns: Domain, DefaultDomain, Spf, Dkim, MX, DMARC, IsRewriteDomainValid, Verify, Type, TrackingStatus, CertificateStatus, CertificateExpiryDate, CertificateValidationError, TrackingTypeUserRequest, VERP, CustomBouncesDomain, IsCustomBouncesDomainDefault, WasEverVerified,…. Required: domain_id.

elastic_email_emails_send_bulk

Send Bulk Emails in Elastic Email. Send bulk merge email. Requires API key access level: SendHttp Returns: TransactionID, MessageID. Required: Recipients, Content.

elastic_email_emails_status

Get Status in Elastic Email. Get status details of an email transaction. Requires API key access level: ViewReports Returns: ID, Status, RecipientsCount, Failed, FailedCount, Sent, SentCount, Delivered, DeliveredCount, Pending, PendingCount, Opened, OpenedCount, Clicked, ClickedCount, Unsubscribed, UnsubscribedCount, AbuseReports,…. Required: email_id.

elastic_email_emails_send_merge_file

Send Bulk Emails CSV in Elastic Email. Send to a list of contacts submitted in a CSV data file. The first column in the CSV must be the email address and the CSV must contain a header row. Additional fields can be included with a named header row and can be merged with the template using {merge} tags in the content. Example CSV: email, firstname, lastname test1@gmail.com, michael, smith test2@gmail.com, janet, smith Merge file must not be empty. Requires API key access level: SendHttp Returns: TransactionID, MessageID. Required: MergeFile, Content.

elastic_email_emails_send_transactional

Send Transactional Email in Elastic Email. Send transactional emails (recipients will be known to each other). Requires API key access level: SendHttp Returns: TransactionID, MessageID. Required: Recipients, Content.

get_single_elastic_email_email_by_id

View Email in Elastic Email. Returns email details for viewing or rendering. Requires API key access level: None id is the message id (msgid). Returns: Preview, Attachments, Status. Required: id.

list_all_elastic_email_events

Load Events in Elastic Email. Returns a log of delivery events filtered by specified parameters. Requires API key access level: ViewReports Returns: TransactionID, MsgID, FromEmail, To, Subject, EventType, EventDate, ChannelName, MessageCategory, NextTryOn, Message, IPAddress, PoolName. Required: none.

elastic_email_events_list_by_transaction

Load Email Events in Elastic Email. Returns a log of delivery events for the specific transaction ID. Requires API key access level: ViewReports Returns: TransactionID, MsgID, FromEmail, To, Subject, EventType, EventDate, ChannelName, MessageCategory, NextTryOn, Message, IPAddress, PoolName. Required: transaction_id.

elastic_email_events_list_by_channel

Load Channel Events in Elastic Email. Returns a log of delivery events filtered by specified parameters. Requires API key access level: ViewReports Returns: TransactionID, MsgID, FromEmail, To, Subject, EventType, EventDate, ChannelName, MessageCategory, NextTryOn, Message, IPAddress, PoolName. Required: channel_id.

elastic_email_events_export

Export Events in Elastic Email. Export delivery events log information to the specified file format. Requires API key access level: Export Returns: Link, PublicExportID. Required: none.

elastic_email_events_export_status

Check Export Status in Elastic Email. Check the current status of the export. Requires API key access level: Export Required: export_id.

elastic_email_events_export_channel

Export Channel Events in Elastic Email. Export delivery events log information to the specified file format. Requires API key access level: Export Returns: Link, PublicExportID. Required: channel_id.

elastic_email_events_export_channel_status

Check Channel Export Status in Elastic Email. Check the current status of the channel export. Requires API key access level: Export Required: export_id.

list_all_elastic_email_files

List all files uploaded to your Elastic Email account. Returns each file's FileName, Size, DateAdded, ExpirationDate, and ContentType.

elastic_email_files_upload

Upload a file to your Elastic Email account. Returns the created file's FileName, Size, DateAdded, ExpirationDate, and ContentType. Required: BinaryContent (base64-encoded file content). Uploaded files can be attached to emails by name via Content.AttachFiles.

elastic_email_files_info

Get details for a single file in Elastic Email. Returns: Name, Status, Recipients, Content. Required: file_id (the file's name including its extension, e.g. invoice.pdf).

delete_a_elastic_email_file_by_id

Delete a file from your Elastic Email account. Returns an empty 204 response on success. Required: id (the file's name including its extension, e.g. invoice.pdf).

elastic_email_files_download

Download a file's raw content from Elastic Email. Returns the uploaded file's binary content. Required: file_id (the file's name including its extension, e.g. invoice.pdf).

list_all_elastic_email_inboundroute

List all inbound routes in elasticemail. Returns each route's PublicInboundId, Name, FilterType, Filter, ActionType, ActionParameter, and SortOrder.

create_a_elastic_email_inboundroute

Create an inbound route in elasticemail. Returns the created route including PublicInboundId, Name, FilterType, ActionType, and ActionParameter. Requires Name, Filter, FilterType, and ActionType.

get_single_elastic_email_inboundroute_by_id

Get a single inbound route in elasticemail by id. Returns the route's PublicInboundId, Name, FilterType, Filter, ActionType, ActionParameter, and SortOrder. Required: id.

update_a_elastic_email_inboundroute_by_id

Update an inbound route in elasticemail by id. Returns the updated route including PublicInboundId, Name, FilterType, ActionType, and ActionParameter. Requires id and the Name, Filter, FilterType, and ActionType body fields.

delete_a_elastic_email_inboundroute_by_id

Delete an inbound route in elasticemail by id. Returns an empty 204 response on success. Required: id.

elastic_email_inboundroute_bulk_update

Reorder elasticemail inbound routes so they are evaluated in the order you specify. Returns the reordered routes as an array, each with PublicInboundId, SortOrder, Filter, and ActionType. Required: body items with PublicInboundId and SortOrder (1 = evaluated first).

list_all_elastic_email_lists

List all Elastic Email contact lists. Returns: Name, Status, Recipients, Content.

create_a_elastic_email_list

Create a new Elastic Email contact list. Returns the created list including Name, Status, Recipients, and Content. Required: ListName.

get_single_elastic_email_list_by_id

Get a single Elastic Email contact list by id (the Elastic Email list name). Returns: Name, Status, Recipients, Content. Required: id.

update_a_elastic_email_list_by_id

Update an Elastic Email contact list by id (the Elastic Email list name). Returns the updated list including Name, Status, Recipients, and Content. Required: id.

delete_a_elastic_email_list_by_id

Delete an Elastic Email contact list by id (the Elastic Email list name). Removes all contacts from the list without deleting them from the account. Returns an empty 204 response on success. Required: id.

elastic_email_lists_list_contacts

List the contacts in an elasticemail contact list. Returns the contacts with Email, FirstName, LastName, and Status. Required: list_id.

elastic_email_lists_add_contacts

Add contacts to an elasticemail list. Returns the contacts with Email, FirstName, LastName, and Status. Required: list_id; provide either Emails or Rule in the body — contacts must already exist.

elastic_email_lists_remove_contacts

Remove contacts from an elasticemail list; the contacts are not deleted from the account. Returns the contacts with Email, FirstName, LastName, and Status. Required: list_id; provide either Emails or Rule in the body.

list_all_elastic_email_apikeys

List all Elastic Email API keys. Returns an array of API keys with Name, AccessLevel, DateCreated, LastUse, Expires, and RestrictAccessToIPRange.

create_a_elastic_email_apikey

Create a new Elastic Email API key. Returns the new key's Token, Name, AccessLevel, DateCreated, LastUse, Expires, and RestrictAccessToIPRange. Requires Name and AccessLevel.

get_single_elastic_email_apikey_by_id

Get a single Elastic Email API key by id (the key's Name). Returns: Name, Status, Recipients, Content. Required: id.

update_a_elastic_email_apikey_by_id

Update an existing Elastic Email API key by id (the key's Name). Returns the updated key's Name, AccessLevel, DateCreated, LastUse, Expires, and RestrictAccessToIPRange. Requires id, Name, and AccessLevel.

delete_a_elastic_email_apikey_by_id

Delete an Elastic Email API key by id (the key's Name). Returns the deleted key's Name, AccessLevel, DateCreated, LastUse, Expires, and RestrictAccessToIPRange. Required: id.

list_all_elastic_email_smtp_credentials

List all SMTP credentials configured for the elasticemail account. Returns credentials with Name, Expires, RestrictAccessToIPRange, and Subaccount.

create_a_elastic_email_smtp_credential

Create a new SMTP credential in elasticemail. Returns the newly generated credential with Name, Expires, RestrictAccessToIPRange, and Subaccount. Requires Name — a valid email address used as the SMTP username.

get_single_elastic_email_smtp_credential_by_id

Get a single SMTP credential in elasticemail by id (the credential's name, as returned by the list method). Returns the credential with Name, Expires, RestrictAccessToIPRange, and Subaccount. Required: id.

update_a_elastic_email_smtp_credential_by_id

Update an SMTP credential in elasticemail by id (the credential's name, as returned by the list method). Returns the updated credential with Name, Expires, RestrictAccessToIPRange, and Subaccount. Requires id and Name.

delete_a_elastic_email_smtp_credential_by_id

Delete an SMTP credential from elasticemail by id (the credential's name). Pass subaccount to scope the deletion to a sub-account. Returns an empty 204 response on success.

list_all_elastic_email_segments

List all segments in Elastic Email. Returns Segment records including their name. Supports optional limit and offset pagination.

create_a_elastic_email_segment

Create a new segment in Elastic Email by posting a SegmentPayload body. Returns the created segment object including its Name, Status, Recipients, and Content. Required: Name.

get_single_elastic_email_segment_by_id

Get a specific segment in Elastic Email by name. Returns the Segment object including its name. Required: id (the segment name).

update_a_elastic_email_segment_by_id

Update an existing segment in Elastic Email identified by name. Returns the updated Segment object including its name. Required: id (the segment name) and body (SegmentPayload).

delete_a_elastic_email_segment_by_id

Delete a segment in Elastic Email by name. Returns an empty 204 response on success.

list_all_elastic_email_statistics

Get Elastic Email sending statistics for a period. Returns: Recipients, Name, Status, Content. Required: from (start date); to defaults to now.

elastic_email_statistics_campaigns

List Elastic Email campaign statistics. Returns per-campaign counters: ChannelName, Recipients, EmailTotal, Delivered, Bounced, Opened, Clicked, Unsubscribed.

elastic_email_statistics_campaign

Get Elastic Email sending statistics for a single campaign. Returns: Recipients, Name, Status, Content. Required: campaign_id.

elastic_email_statistics_channels

List Elastic Email channel statistics. Returns per-channel counters: ChannelName, Recipients, EmailTotal, Delivered, Bounced, Opened, Clicked, Unsubscribed.

elastic_email_statistics_channel

Get Elastic Email sending statistics for a single channel. Returns: Recipients, Name, Status, Content. Required: channel_id.

get_single_elastic_email_statistic_by_id

Get sending statistics for your Elastic Email account over a date range. Returns: Name, Status, Recipients, Content, Email, FirstName, LastName. Required: from (start date).

list_all_elastic_email_subaccounts

List all Elastic Email sub-accounts. Returns an array of sub-account records with Email, Status, EmailCredits, Name, Recipients, and Content.

create_a_elastic_email_subaccount

Create a new Elastic Email sub-account. Returns the created sub-account info including its Email, Status, and EmailCredits. Required: Email and Password in the request body.

get_single_elastic_email_subaccount_by_id

Get a single Elastic Email sub-account by id (the sub-account's email address). Returns: Email, Status, EmailCredits, Name, Recipients, Content. Required: id.

delete_a_elastic_email_subaccount_by_id

Delete an Elastic Email sub-account by id (the sub-account's email address). Returns an empty 204 response on success. Required: id.

elastic_email_subaccounts_update_email_settings

Update the email sending settings of an Elastic Email subaccount, such as credit requirements, private IP usage, daily sending limits, and pool assignment. Returns the updated settings including RequiresEmailCredits, EmailSizeLimit, DailySendLimit, MaxContacts, EnablePrivateIPPurchase, and PoolName. Required: subaccount_id.

elastic_email_subaccounts_bulk_update

Add or subtract email credits for an Elastic Email sub-account by the given amount. Returns the updated sub-account info including Email, Status, and EmailCredits. Required: subaccount_id (path) and Credits in the body (positive to add, negative to subtract).

list_all_elastic_email_suppressions

List all suppressions in elasticemail across bounces, complaints, and unsubscribes. Returns suppression records with Reason, SourceInfo, and DateAdded. Optional search text; max 20 per page by default.

elastic_email_suppressions_get_bounces

List bounce suppressions in elasticemail to see which addresses failed delivery. Returns suppression records with Reason, SourceInfo, and DateAdded. Optional search text.

elastic_email_suppressions_add_bounces

Add email addresses to the elasticemail bounce suppression list by posting an array of email strings. Returns an array of Suppression records for the addresses added.

elastic_email_suppressions_delete_bounce

Remove an email address from the elasticemail bounce suppression list. Returns an empty 204 response on success. Required: email.

elastic_email_suppressions_get_complaints

List complaint suppressions in elasticemail to see which addresses reported messages as spam. Returns suppression records with Reason, SourceInfo, and DateAdded. Optional search text.

elastic_email_suppressions_add_complaints

Add email addresses to the elasticemail complaints list so they are no longer sent to. Returns the resulting suppressions with their Email, Date, and Reason. Required: a body array of email addresses.

elastic_email_suppressions_delete_complaint

Remove an email address from the elasticemail complaints list so it can receive email again. Returns an empty 200 response on success. Required: email.

elastic_email_suppressions_get_unsubscribes

List elasticemail unsubscribe suppressions, optionally filtered by search text. Returns each suppression's Email, Date, and Reason.

elastic_email_suppressions_add_unsubscribes

Add one or more email addresses to the elasticemail unsubscribe (suppression) list. Returns an array of Suppression records, each including Email. Required: a JSON array body of email strings (one address per entry).

elastic_email_suppressions_delete_unsubscribe

Remove an email address from the elasticemail unsubscribe (suppression) list. Returns an empty 204 response on success. Required: email.

list_all_elastic_email_templates

List all Elastic Email email templates. Returns templates with Name, Subject, TemplateType, DateAdded, Body parts, and TemplateScope. Required: scopeType (Personal or Global).

create_a_elastic_email_template

Create an Elastic Email email template. Returns the created template including Name, Subject, DateAdded, TemplateType, Body parts (ContentType, Content, Charset), and TemplateScope.

get_single_elastic_email_template_by_id

Get a single Elastic Email email template by id. Returns the template including Name, Subject, TemplateType, DateAdded, Body parts, and TemplateScope. Required: id (the template's name).

update_a_elastic_email_template_by_id

Update an existing Elastic Email email template by id. Returns the updated template including Name, Subject, TemplateType, DateAdded, Body parts, and TemplateScope. Required: id (the template's name).

delete_a_elastic_email_template_by_id

Delete an Elastic Email email template by its name. Returns an empty 204 response on success.

elastic_email_verifications_verify

Verify a single email address in elasticemail. Returns the EmailValidationResult including Email, Domain, Result, PredictedScore, PredictedStatus, and Disposable. Required: the email address as the JSON request body (a bare JSON string).

delete_a_elastic_email_verification_by_id

Delete an email verification result in elasticemail. Returns an empty 204 response on success. Required: id (the verified email address whose result should be deleted).

elastic_email_verifications_verify_file

Upload a CSV or TXT file of email addresses to elasticemail for bulk verification. Returns the VerificationFileResult including VerificationID, Filename, VerificationStatus, FileUploadResult counts, DateAdded, and Source. Required: file (CSV or TXT containing an 'email' column). Use the returned VerificationID to start the verification and fetch results.

elastic_email_verifications_get_file_result

Get the verification result of an uploaded email file in elasticemail. Returns: Name, Status, Recipients, Content. Required: file_id.

elastic_email_verifications_delete_file_result

Delete a file verification result in elasticemail. Returns an empty 204 response on success. Required: file_id.

elastic_email_verifications_download_file_result

Download the results of a completed bulk email-verification file in Elastic Email, including the download link for the processed results. Returns: Name, Status, Recipients, Content. Required: file_id.

elastic_email_verifications_list_file_results

List all verification file results in Elastic Email — every uploaded verification file with its processing status and result counts. Returns: Name, Status, Recipients, Content.

get_single_elastic_email_verification_by_id

Get the Elastic Email verification result for a single email address, passing the verified email address as the record id. Returns: Email, Name, Status, Recipients, Content. Required: id.

list_all_elastic_email_webhooks

List Elastic Email notification webhooks for the account. Returns: WebhookID, Name, DateCreated, DateUpdated, URL, NotifyOncePerEmail, NotificationForSent, NotificationForOpened, NotificationForClicked, NotificationForUnsubscribed, NotificationForAbuseReport, NotificationForError, IsEnabled.

create_a_elastic_email_webhook

Create an Elastic Email webhook that posts email event notifications to a callback URL. Returns the full webhook object including WebhookID, Name, DateCreated, DateUpdated, URL, NotifyOncePerEmail, NotificationForSent, and IsEnabled.

get_single_elastic_email_webhook_by_id

Get a single Elastic Email webhook by id. Returns: WebhookID, Name, DateCreated, DateUpdated, URL, NotifyOncePerEmail, NotificationForSent, NotificationForOpened, NotificationForClicked, NotificationForUnsubscribed, NotificationForAbuseReport, NotificationForError, IsEnabled. Required: id.

update_a_elastic_email_webhook_by_id

Update an Elastic Email webhook by id. Returns the full webhook object including WebhookID, Name, DateCreated, DateUpdated, URL, NotifyOncePerEmail, NotificationForSent, and IsEnabled. Required: id.

delete_a_elastic_email_webhook_by_id

Delete an Elastic Email webhook by id. Returns an empty 204 response on success. Required: id.

Why Truto

Why use Truto’s MCP server for ElasticEmail

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with ElasticEmail in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s ElasticEmail account

Use Truto’s frontend SDK to connect your customer’s ElasticEmail account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call ElasticEmail

Truto’s Proxy API is a 1-to-1 mapping of the ElasticEmail API. You call us, we call ElasticEmail, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate ElasticEmail’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about ElasticEmail on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How do end users authenticate their ElasticEmail account?

ElasticEmail uses API key authentication. Through Truto's connected account flow, your users paste their ElasticEmail API key and Truto securely stores and injects it into every request, so you never handle credentials directly.

Can we provision subaccounts for each of our customers?

Yes. Truto exposes ElasticEmail's subaccount tools (create, get, delete, update email settings, and bulk update), which lets you spin up an isolated sending environment per tenant and manage credits or sending limits programmatically.

How do we receive real-time email events like opens and clicks?

Use the webhook tools to register an ElasticEmail webhook pointing to your endpoint. ElasticEmail will push events (delivered, opened, clicked, bounced, unsubscribed, complained) as they happen. You can also poll list_all_elastic_email_events for backfill.

Does the integration support both transactional and marketing email?

Yes. You can send one-off transactional emails via elastic_email_emails_send_transactional, bulk sends via elastic_email_emails_send_bulk, merge-file sends, and full marketing campaigns via the campaigns tools — all through the same connection.

How do we keep suppression lists compliant across both systems?

Truto surfaces ElasticEmail's suppression tools for bounces, complaints, and unsubscribes. When a user unsubscribes in your app, push the email to ElasticEmail via elastic_email_suppressions_add_unsubscribes; when ElasticEmail records a bounce, pull it in and update your records.

Can we verify email addresses before our users send to them?

Yes. Use elastic_email_verifications_verify for single addresses or elastic_email_verifications_verify_file for bulk uploads, then poll the file result endpoints and download the scored output to filter risky addresses before sending.

How are long-running operations like contact exports and verifications handled?

ElasticEmail processes exports and bulk verifications asynchronously. Truto exposes the corresponding status endpoints (e.g. elastic_email_contacts_export_status, elastic_email_verifications_get_file_result) so you can poll until completion and then fetch the output.

ElasticEmail

Get ElasticEmail integrated into your app

Our team understands what it takes to make a ElasticEmail integration successful. A short, crisp 30 minute call with folks who understand the problem.