# Esputnik — how to use (mcp.ai)

Connect your Esputnik account and use 89 tools for marketing automation straight from your AI agent. Connect with your own API key. eSputnik is a marketing automation platform that enables businesses to manage and automate their communication channels, including email, SMS, web push, and mobile push notifications.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_esputnik?ms=1787291220000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `esputnik_add_contact`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/esputnik`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/esputnik/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/esputnik/add/contact` — Tool to create or update a single contact in eSputnik in real-time. Use when you need to add a new contact or update an existing one by matching on channels. If a contact with the same channel (email,
  - body: { fields?: object[], address?: object, channels: object[], lastName?: string, timeZone?: string, firstName?: string, contactKey?: string, languageCode?: string, addressBookId?: integer, externalCustomerId?: string }
- `POST https://api.mcp.ai/api/esputnik/add/domain` — Register a domain with eSputnik for web tracking, widgets, or web push notifications. This tool is used to add a new domain to your eSputnik account, enabling: - Website behavior tracking for personal
  - body: { domain: string, siteId?: string }
- `POST https://api.mcp.ai/api/esputnik/add/orders` — Tool to transfer orders in bulk to eSputnik. Use when you need to import up to 1000 orders at once.
  - body: { orders: object[] }
- `POST https://api.mcp.ai/api/esputnik/add/unsubscribed/emails` — Tool to add email addresses to the list of unsubscribed contacts. Use when you need to unsubscribe contacts from receiving emails.
  - body: { emails: string[] }
- `POST https://api.mcp.ai/api/esputnik/add/webpush/domain` — Tool to add a domain for web push notifications in eSputnik. Use when you need to register a new domain to enable web push notification functionality. The domain must be reachable and not already regi
  - body: { domain: string, serviceWorkerName: string, serviceWorkerPath: string, serviceWorkerScope: string }
- `POST https://api.mcp.ai/api/esputnik/attach/contacts/to/segment` — Tool to attach contacts to a static segment (group) by contact IDs or external customer IDs. Use this action to add contacts to a static segment for organizing and targeting your contact lists. You ca
  - body: { id: integer, contactIds?: integer[], externalCustomerIds?: string[] }
- `POST https://api.mcp.ai/api/esputnik/bulk/add/or/update/contacts` — Bulk add or update up to 3000 contacts in eSputnik asynchronously. Use this action to import multiple contacts at once or synchronize your CRM contact list. Contacts are matched by the channel specifi
  - body: { contacts: object[], dedupeOn: string, groupNames?: string[], restoreDeleted?: boolean, customFieldsIDs?: integer[], groupNamesExclude?: string[], eventKeyForNewContacts?: string }
- `POST https://api.mcp.ai/api/esputnik/change/token/activity` — Activate or deactivate a mobile push notification token in eSputnik. Use this action to control whether a specific device token can receive push notifications. When a token is deactivated, the device 
  - body: { active: boolean, app_uuid: string, token_id: string }
- `POST https://api.mcp.ai/api/esputnik/create/api/token` — Generate a new API token for authentication. Use this action to create an API token using your eSputnik account credentials. The token can be used for authenticating subsequent API requests. This acti
- `POST https://api.mcp.ai/api/esputnik/create/app/inbox/message` — Tool to create a basic App Inbox message in eSputnik. Use when you need to create a new in-app notification message. App Inbox messages are displayed within mobile apps or websites as notifications to
  - body: { id?: integer, link?: string, name: string, tags?: string[], text: string, title: string, ttlSec?: integer, customData?: string, imageSource?: string, languageCode?: string, translations?: object[], subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/create/contacts/file` — Import or update contacts from an external file in eSputnik. Creates new contacts and updates existing ones based on dedupeOn field. Use this action to bulk import contacts from a CSV file hosted at a
  - body: { link: string, dedupeOn: string, groupNames?: string[], restoreDeleted?: boolean, groupNamesExclude?: string[], eventKeyForNewContacts?: string }
- `POST https://api.mcp.ai/api/esputnik/create/email/message` — Tool to create or update an email message in eSputnik. Use when you need to add a new email template or update an existing one, including support for multilingual message versions. When 'id' is provid
  - body: { id?: integer, css?: string, from: string, name: string, tags?: string[], ampHtml?: string, rawHtml?: string, subject: string, htmlText: string, languageCode?: string, subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/create/mobile/push/message` — Tool to create a new mobile push notification message in eSputnik. Use when you need to set up a push notification campaign for mobile app users. The created message can include title, body text, imag
  - body: { link?: string, name: string, tags?: string[], text: string, title: string, images?: string[], ttlSec?: integer, buttons?: object[], subtitle?: string, badgeCount?: integer, customData?: string, imageSource?: string, soundEnabled?: boolean, translations?: object[], subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/create/sms/message` — Tool to create a basic SMS message template in eSputnik. Use when you need to create a new SMS message template for sending campaigns. The created template can be used later for sending SMS messages t
  - body: { id?: integer, from: string, name: string, tags?: string[], text: string, trackUrls?: boolean, languageCode?: string, subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/create/telegram/message` — Create a basic Telegram bot message in eSputnik. Use when you need to create a new message template that can be sent to contacts via Telegram. The message is saved as a template in eSputnik and can la
  - body: { name: string, tags?: string[], text: string, buttons?: object[], imageSource?: string, languageCode?: string, subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/delete/app/inbox/message` — Tool to delete an App Inbox message by its ID from eSputnik. Use when you need to permanently remove an App Inbox message that is no longer needed.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/esputnik/delete/appinbox/translation` — Delete a language translation of an App Inbox message from eSputnik. Use this action to remove a specific language version of an App Inbox message while keeping the base message and other translations
  - body: { id: integer, language: string }
- `POST https://api.mcp.ai/api/esputnik/delete/broadcast` — Tool to cancel a scheduled broadcast campaign. Use when you need to stop a broadcast from being sent.
  - body: { broadcast_id: string }
- `POST https://api.mcp.ai/api/esputnik/delete/contact` — Tool to delete a contact by its Yespo ID. Use when you need to remove a contact with no pending interactions.
  - body: { id: integer, erase?: boolean }
- `POST https://api.mcp.ai/api/esputnik/delete/contact/by/external/id` — Delete a contact from eSputnik using their external customer ID. Use this tool when you need to remove a contact identified by the externalCustomerId (the unique ID from your external system, e.g., CR
  - body: { erase?: boolean, externalCustomerId: string }
- `POST https://api.mcp.ai/api/esputnik/delete/email/message` — Delete a basic email message by its ID from eSputnik. Use this action to permanently remove an email message that is no longer needed. This is a destructive operation - the message will be permanently
  - body: { id: integer }
- `POST https://api.mcp.ai/api/esputnik/delete/email/translation` — Delete a translation of a base email message from eSputnik. Use this action to remove a specific language translation of an email message template. This does not delete the base email message, only th
  - body: { id: integer, language: string }
- `POST https://api.mcp.ai/api/esputnik/delete/mobilepush/message` — Delete a base Mobile Push message by its ID from eSputnik. Use this action to permanently remove a Mobile Push message that is no longer needed. This is a destructive operation - the message will be p
  - body: { id: integer }
- `POST https://api.mcp.ai/api/esputnik/delete/mobilepush/translation` — Delete a language version of a base Mobile Push message from eSputnik. Use this tool to remove a specific language translation from a mobile push message while keeping the base message and other trans
  - body: { id: integer, language: string }
- `POST https://api.mcp.ai/api/esputnik/delete/orders` — Tool to schedule asynchronous deletion of orders in eSputnik. Use when you need to delete orders by external ID or by date range. Deletion can be performed by: - Specific order: Provide externalOrderI
  - body: { to?: string, from?: string, externalOrderId?: string }
- `POST https://api.mcp.ai/api/esputnik/delete/sms/message` — Delete a base SMS message template by its ID from eSputnik. Use this action to permanently remove an SMS message template that is no longer needed. This is a destructive operation - the template will 
  - body: { id: integer }
- `POST https://api.mcp.ai/api/esputnik/delete/sms/translation` — Delete a language version of a base SMS message from eSputnik. Use this action to remove a specific language translation of an SMS message while keeping the base message and other translations intact.
  - body: { id: integer, language: string }
- `POST https://api.mcp.ai/api/esputnik/delete/telegram/message` — Delete a base Telegram bot message by its ID from eSputnik. Use this action to permanently remove a Telegram bot message that is no longer needed. This is a destructive operation - the message will be
  - body: { id: integer }
- `POST https://api.mcp.ai/api/esputnik/delete/telegram/translation` — Delete a language version of a Telegram bot message from eSputnik. Use this action to remove a specific language translation of a Telegram bot message while keeping the base message and other translat
  - body: { id: integer, language: string }
- `POST https://api.mcp.ai/api/esputnik/detach/contacts/from/segment` — Tool to delete contacts from a static segment by contact IDs or external customer IDs. Use when you need to remove specific contacts from a segment or clear an entire segment. IMPORTANT: If neither co
  - body: { id: integer, contactIds?: integer[], externalCustomerIds?: string[] }
- `POST https://api.mcp.ai/api/esputnik/generate/event/v2` — Tool to send backend events from websites and mobile apps to eSputnik. Use when tracking user actions, page views, or custom events for marketing automation and analytics. Secure for sensitive data wi
  - body: { params?: object[], keyValue: string, eventTypeKey: string }
- `POST https://api.mcp.ai/api/esputnik/generate/event/v3` — Tool to generate events in eSputnik v3 API. Use when you need to track custom events for contacts (e.g., purchase, cart abandoned, page viewed). Events can be used to trigger automated campaigns and f
  - body: { params: object, eventTypeKey: string }
- `POST https://api.mcp.ai/api/esputnik/generate/past/events/v2` — Tool to transfer past event data from your CRM or data store to eSputnik using v2 API. Use when you need to import historical events that should not trigger workflows. This method allows sending up to
  - body: { events: object[] }
- `POST https://api.mcp.ai/api/esputnik/generate/past/events/v3` — Tool to generate past events in eSputnik v3 API. Use when you need to create historical events for contacts with specific timestamps. This action allows you to import past events with their original o
  - body: { events: object[] }
- `POST https://api.mcp.ai/api/esputnik/get/account/info` — Retrieve basic eSputnik account information. Use this tool to verify API authentication and get account details including the username/email and organization name. This is useful for confirming that A
- `POST https://api.mcp.ai/api/esputnik/get/app/inbox/message` — Retrieves an App Inbox message by its unique identifier from eSputnik. Use this tool to fetch message content, metadata, and localized translations before sending, editing, or reviewing an App Inbox n
  - body: { id: integer }
- `POST https://api.mcp.ai/api/esputnik/get/broadcasts` — Retrieve a paginated list of broadcast campaigns from eSputnik. Use this tool to: - List all scheduled or sent broadcast campaigns - Check broadcast details including target segments and scheduling - 
  - body: { maxrows?: integer, startindex?: integer }
- `POST https://api.mcp.ai/api/esputnik/get/contact` — Retrieve complete information about a contact by their ID. This action returns all available information about a specific contact identified by their internal eSputnik contact ID. The response include
  - body: { id: integer }
- `POST https://api.mcp.ai/api/esputnik/get/contact/emails` — Tool to retrieve email addresses of contacts by their contact IDs. Use when you need to fetch email addresses for specific contacts using their internal eSputnik identifiers. The API returns email add
  - body: { ids: string }
- `POST https://api.mcp.ai/api/esputnik/get/contact/import/status` — Retrieve the status of a contact import session in eSputnik. Use this action to check the progress of an asynchronous bulk contact import operation. After calling Bulk Add or Update Contacts, use the 
  - body: { sessionId: string }
- `POST https://api.mcp.ai/api/esputnik/get/contact/message/history` — Retrieve a contact's message history across multiple channels from eSputnik. This action returns message history for a specific contact, supporting multiple media types: Email, SMS, Viber, Mobile Push
  - body: { email?: string, phone?: string, dateTo: string, offset?: integer, maxrows?: integer, dateFrom: string, contactId?: integer, channelTypes?: string, externalCustomerId?: string }
- `POST https://api.mcp.ai/api/esputnik/get/contact/subscriptions` — Retrieve all subscription categories a contact is enrolled in. This action returns the list of subscription categories (communication types) that a specific contact has opted into within your eSputnik
  - body: { id: integer }
- `POST https://api.mcp.ai/api/esputnik/get/contacts` — Search for contacts in eSputnik using various filter criteria. Use this action to find contacts by email, phone number, name, external ID, or retrieve all contacts with pagination. Returns up to 500 c
  - body: { sms?: string, email?: string, sortBy?: string, maxrows?: integer, lastname?: string, firstname?: string, startindex?: integer, externalCustomerId?: string }
- `POST https://api.mcp.ai/api/esputnik/get/email/interfaces` — Tool to retrieve all configured email interfaces (sender names) from eSputnik. Use when you need to list available email sender addresses/names before sending campaigns or messages. Returns a list of 
- `POST https://api.mcp.ai/api/esputnik/get/email/message` — Retrieves an email message by its unique identifier from eSputnik. Use this tool to fetch message content, title, and sender details before sending, editing, or reviewing an email. Returns complete me
  - body: { id: integer }
- `POST https://api.mcp.ai/api/esputnik/get/email/view/link` — Get a link to view an email message in browser from eSputnik. Use this action to retrieve a public URL that displays the email message content in a web browser. This is useful for sharing email previe
  - body: { id: integer }
- `POST https://api.mcp.ai/api/esputnik/get/message/status` — Retrieve delivery status for sent messages across all channels (email, SMS, Viber, push). Use this tool to track message delivery after sending messages via eSputnik API. Provide comma-separated messa
  - body: { ids: string }
- `POST https://api.mcp.ai/api/esputnik/get/mobile/push/message` — Retrieves a mobile push message by its unique identifier from eSputnik. Use this tool to fetch message content, metadata, and language versions before sending, editing, or reviewing a mobile push noti
  - body: { id: integer }
- `POST https://api.mcp.ai/api/esputnik/get/organization/balance` — Retrieve the current eSputnik organization balance. Use this tool to check the account's available funds, credit limit, and bonus resources (emails and SMS) before planning or sending campaigns. This 
- `POST https://api.mcp.ai/api/esputnik/get/organization/billing/history` — Retrieve the organization's billing history from eSputnik, broken down by day and media channel. Use this tool to: - View costs per messaging channel (email, SMS, Viber, push notifications, etc.) - Tr
  - body: { date_to?: string, date_from?: string }
- `POST https://api.mcp.ai/api/esputnik/get/preprocessor/file/status` — Retrieve the status of a preprocessor file upload session. Use this tool to poll for the asynchronous processing status of a previously submitted preprocessor file. The ID parameter is the asyncSessio
  - body: { id: string }
- `POST https://api.mcp.ai/api/esputnik/get/product/feeds` — Tool to retrieve product feeds configuration from eSputnik. Use when you need to check current product feed settings including feed type, update frequency, and other configuration parameters. This is 
- `POST https://api.mcp.ai/api/esputnik/get/promocodes/count` — Get the number of available promotional codes in eSputnik. Use this action to check how many promo codes are available, optionally filtering by type, active due days, or discount amount.
  - body: { type?: string, discount?: integer, activeDueDays?: integer }
- `POST https://api.mcp.ai/api/esputnik/get/site/domain` — Retrieve the organization's domain configuration from eSputnik. Use this tool to check the configured domain for your organization, which is used for web tracking, widgets, and web push notifications.
- `POST https://api.mcp.ai/api/esputnik/get/site/script` — Retrieve the site tracking script for your eSputnik account. Use this tool to obtain the tracking script code that can be embedded on websites to enable eSputnik tracking and functionality. The domain
- `POST https://api.mcp.ai/api/esputnik/get/sms/interfaces` — Retrieve all SMS interfaces (alpha names) configured for the organization. Use this tool to get the list of available SMS sender identifiers (alpha names) that can be used when sending SMS messages th
- `POST https://api.mcp.ai/api/esputnik/get/subscription/categories` — Retrieve all subscription categories for the organization. This action returns the complete list of subscription categories (communication types) configured in your eSputnik account. Subscription cate
- `POST https://api.mcp.ai/api/esputnik/get/telegram/message` — Retrieve a Telegram bot message by its unique identifier from eSputnik. Use this tool to fetch Telegram bot message content, configuration, and metadata before sending, editing, or reviewing a notific
  - body: { id: integer }
- `POST https://api.mcp.ai/api/esputnik/list/promocodes` — Retrieve a list of promotional codes from eSputnik. Use this tool to view all available promo codes, filter by type, usage status, expiration, or discount value. Useful for campaign planning and promo
  - body: { type?: string, inUse?: boolean, discount?: integer, activeDueDays?: integer }
- `POST https://api.mcp.ai/api/esputnik/list/webpush/domains` — Retrieve the list of domains registered for web push notifications. Use this tool to get all domains configured in your eSputnik account for web push notification functionality. This is useful for ver
- `POST https://api.mcp.ai/api/esputnik/remove/from/unsubscribed` — Tool to remove email addresses from the unsubscribed contacts list in eSputnik. Use when you need to re-enable email addresses that were previously unsubscribed.
  - body: { emails: string[] }
- `POST https://api.mcp.ai/api/esputnik/search/app/inbox/messages` — Search for mobile App Inbox messages using a part of the name or a tag. Returns a maximum of 500 messages per request with pagination support. Use this tool to find App Inbox messages by name or tag, 
  - body: { search?: string, maxrows?: integer, startindex?: integer }
- `POST https://api.mcp.ai/api/esputnik/search/contacts` — Search for all contacts in a segment (group). Use this action to: - Retrieve contacts from a specific segment by segment ID - Paginate through large contact lists using startindex and maxrows - Sort c
  - body: { id: integer, asc?: boolean, maxrows?: integer, orderByTs?: boolean, startindex?: integer }
- `POST https://api.mcp.ai/api/esputnik/search/email/messages` — Search for email messages using a part of their name or a tag. Use this tool to: - Find email messages by name or tag - List all available email message templates - Navigate through messages using pag
  - body: { search?: string, maxrows?: integer, startindex?: integer }
- `POST https://api.mcp.ai/api/esputnik/search/mobilepush/messages` — Search for mobile push messages using part of the name or a tag. Use this tool to: - Find mobile push messages by searching for keywords in message names - Filter messages by tags assigned to them - R
  - body: { search?: string, maxrows?: integer, startindex?: integer }
- `POST https://api.mcp.ai/api/esputnik/search/segments` — Search for and retrieve available segments (groups) in eSputnik. Use this action to: - List all segments/groups in your eSputnik account - Search for segments by name (supports partial matching) - Pag
  - body: { name?: string, maxrows?: integer, startindex?: integer }
- `POST https://api.mcp.ai/api/esputnik/search/sms/messages` — Search for SMS messages using part of their names or tags in eSputnik. Use this tool to find SMS message templates by searching through message names or associated tags. Returns up to 500 messages per
  - body: { search?: string, maxrows?: integer, startindex?: integer }
- `POST https://api.mcp.ai/api/esputnik/search/telegram/messages` — Search for Telegram bot messages using a part of name or a tag. Use this tool to: - Find Telegram bot messages by name or tag - List all Telegram bot messages in the account - Navigate through message
  - body: { search?: string, maxrows?: integer, startindex?: integer }
- `POST https://api.mcp.ai/api/esputnik/search/viber/messages` — Search for Viber messages using part of the name or a tag. Use this tool to: - Find Viber messages by searching for keywords in message names - Filter messages by tags assigned to them - Retrieve all 
  - body: { search?: string, maxrows?: integer, startindex?: integer }
- `POST https://api.mcp.ai/api/esputnik/search/workflows` — Search for and retrieve available workflows from eSputnik. Use this tool to list all workflows in your eSputnik account, with optional filtering by workflow name. Returns workflow details including ID
  - body: { name?: string, maxrows?: integer, startindex?: integer }
- `POST https://api.mcp.ai/api/esputnik/send/email` — Send an email message to one or more contacts via eSputnik API. Use this action to send transactional or marketing emails. If no contact exists with the recipient email address, a new contact will be 
  - body: { from: string, tags?: string[], emails: string[], subject: string, htmlText: string, plainText?: string, trackUrls?: boolean, ampHtmlText?: string, externalRequestId?: string, subscriptionsKeys?: string[], skipPersonalisation?: boolean }
- `POST https://api.mcp.ai/api/esputnik/send/prepared/message` — Tool to send a prepared message to one or many contacts. Use when you need to send broadcasts for Email, SMS, Mobile Push, Web Push, Viber, or Telegram bot channels using pre-created message templates
  - body: { id: integer, email?: boolean, fromName?: string, recipients: object[] }
- `POST https://api.mcp.ai/api/esputnik/subscribe/contact` — Tool to subscribe a contact for double opt-in implementation. Use when integrating subscription forms on your website or app. This method is designed for double opt-in implementation: - If a contact d
  - body: { groups?: string[], contact: object, formType?: string, subscriptions?: string[] }
- `POST https://api.mcp.ai/api/esputnik/update/app/inbox/message` — Tool to update the base App Inbox message in eSputnik. Use when you need to modify message content, title, link, or settings. This method updates an existing App Inbox message by its ID. All required 
  - body: { id: integer, link?: string, name: string, tags?: string[], text: string, title: string, ttlSec?: integer, customData?: string, imageSource?: string, languageCode?: string, subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/update/appinbox/translation` — Tool to update or add a language version for an App Inbox message in eSputnik. Use when you need to add multilingual support or update existing translations for App Inbox notifications. This action al
  - body: { id: integer, link?: string, name: string, tags?: string[], text: string, title: string, ttlSec?: integer, language: string, customData?: string, imageSource?: string, subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/update/contact` — Tool to update contact information by contact ID. Use when you need to modify an existing contact's details. This action updates an existing contact identified by their eSputnik contact ID. You can up
  - body: { id: integer, fields?: object[], address?: object, channels?: object[], lastName?: string, timeZone?: string, firstName?: string, contactKey?: string, languageCode?: string, addressBookId?: integer, externalCustomerId?: string }
- `POST https://api.mcp.ai/api/esputnik/update/contact/subscriptions` — Tool to update the subscription categories a contact is enrolled in. Use when you need to modify which communication types a contact receives. This action replaces the contact's current subscription l
  - body: { id: integer, subscriptions: string[] }
- `POST https://api.mcp.ai/api/esputnik/update/email/message` — Tool to update an existing email message in eSputnik. Use when you need to modify the content, subject, sender, or other properties of an existing email template. This action updates the basic email m
  - body: { id: integer, css?: string, from: string, name: string, tags?: string[], ampHtml?: string, rawHtml?: string, subject: string, htmlText: string, languageCode?: string, subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/update/email/translation` — Tool to update or add a language version for a base email message in eSputnik. Use when you need to add multilingual support to an existing email template or update an existing translation. This actio
  - body: { id: integer, css?: string, from: string, name: string, tags?: string[], ampHtml?: string, rawHtml?: string, subject: string, htmlText: string, language: string, subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/update/interaction/status` — Tool to update the status of a message interaction using interaction_id. Use when you need to report message delivery, open, click, or undelivery events. The interaction_id is sent along with message 
  - body: { time: string, token?: string, status: string, interaction_id: string }
- `POST https://api.mcp.ai/api/esputnik/update/mobilepush/message` — Tool to update an existing mobile push notification message in eSputnik. Use when you need to modify a previously created push notification campaign. Updates message content including title, body text
  - body: { id: integer, link?: string, name: string, tags?: string[], text: string, title: string, images?: string[], ttlSec?: integer, buttons?: object[], subtitle?: string, badgeCount?: integer, customData?: string, imageSource?: string, soundEnabled?: boolean, translations?: object[], subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/update/mobilepush/translation` — Tool to update or add a language version for a mobile push message in eSputnik. Use when you need to create or modify translations for multilingual push notification campaigns. This action allows you 
  - body: { id: integer, link?: string, name: string, tags?: string[], text: string, title: string, images?: string[], ttlSec?: integer, buttons?: object[], language: string, subtitle?: string, badgeCount?: integer, customData?: string, imageSource?: string, soundEnabled?: boolean, subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/update/preprocessor/file/by/id` — Tool to update a preprocessor file's data by providing a new external link. Use when you need to refresh or change the data source for an already uploaded preprocessor file. The file ID must be obtain
  - body: { id: string, link: string, ttlHours?: integer }
- `POST https://api.mcp.ai/api/esputnik/update/sms/message` — Tool to update an existing base SMS message template in eSputnik. Use when you need to modify the sender name, message text, or other properties of an existing SMS template. The SMS message must alrea
  - body: { id: integer, from: string, name: string, tags?: string[], text: string, trackUrls?: boolean, languageCode?: string, subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/update/sms/translation` — Tool to update a language version of an SMS message in eSputnik. Use when you need to modify the content, sender name, or other properties of a specific language translation of an SMS message. This ac
  - body: { id: integer, from: string, name: string, tags?: string[], text: string, language: string, trackUrls?: boolean, subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/update/telegram/message` — Update a base Telegram bot message in eSputnik. Use when you need to modify an existing message template's content, buttons, or metadata. The message template is updated in eSputnik and can later be s
  - body: { id: integer, name: string, tags?: string[], text?: string, buttons?: object[], imageSource?: string, languageCode?: string, subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/update/telegram/translation` — Update a translated telegram bot message in eSputnik. Use when you need to modify an existing translation of a Telegram bot message. This action allows you to update the content, buttons, image, and m
  - body: { id: integer, name: string, tags?: string[], text: string, buttons?: object[], language: string, imageSource?: string, languageCode: string, subscriptionsKeys?: string[] }
- `POST https://api.mcp.ai/api/esputnik/upload/preprocessor/file` — Tool to upload a file for the preprocessor from an external repository. Use when you need to import preprocessor data from an external URL. The file is uploaded asynchronously - this endpoint returns 
  - body: { link: string, ttlHours?: integer, preprocessorType: string }
- `POST https://api.mcp.ai/api/esputnik/upload/promocodes` — Tool to upload promotional codes to eSputnik in bulk. Use this action to create new promo codes or update existing ones. Existing promotional codes with the same string value will be updated with the 
  - body: { type?: string, inUse?: boolean, discount: integer, promocodes: string[], expirationDate: string }

## Example prompts
- "What can I do in Esputnik?"
- "Show me a summary of my Esputnik account"

## More
- Page: https://mcp.ai/esputnik
- Agent spec (llms.txt): https://mcp.ai/esputnik/llms.txt
- Postman collection: https://mcp.ai/esputnik/postman.json
