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 usUse Cases
Why integrate with ElasticEmail
Common scenarios for SaaS companies building ElasticEmail integrations for their customers.
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.
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.
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.
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.
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.
Campaign launcher
Create, update, pause, and trigger ElasticEmail campaigns against user-selected lists and templates directly from your UI.
Two-way contact and list sync
Sync contacts, lists, and segments between your product and ElasticEmail, including bulk imports and bulk deletes.
Subaccount provisioning engine
Programmatically create ElasticEmail subaccounts per tenant, update their email settings, and bulk-adjust credits or sending limits for metered billing.
Transactional and bulk send API
Send transactional emails, bulk campaigns, and merge-file sends from your app, then poll email status to confirm delivery.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.