Marketing Automation · Beta
Textmagic
API integration
Ship Marketing Automation features without building the integration. Full Textmagic API access via Proxy and 150+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Textmagic
Common scenarios for SaaS companies building Textmagic integrations for their customers.
Embed SMS into CRM workflows
Let sales and success teams text leads directly from contact records inside your CRM, with replies logged back to the timeline automatically. Truto handles auth and normalization so you can ship the feature without maintaining Textmagic-specific plumbing.
Add SMS as a channel in your marketing automation builder
Enable your users to drop SMS and MMS steps into cross-channel nurture flows, with contact lists and custom fields synced into Textmagic for personalization at send time.
Turn inbound SMS into support tickets
Give helpdesk customers an omnichannel SMS experience by mirroring Textmagic chats and replies into your ticket queue, and sending agent responses back out through Textmagic.
Automate transactional notifications from your product
Let field service, logistics, or e-commerce platforms trigger SMS alerts (dispatch ETAs, shipping updates, appointment reminders) as part of their native workflow builder, with delivery status tracked per message.
Offer number provisioning inside your app
Allow customers to search available numbers, purchase them, and manage sender IDs directly from your UI — useful for platforms that assign dedicated numbers per team, location, or customer.
What You Can Build
Ship these features with Truto + Textmagic
Concrete product features your team can ship faster by leveraging Truto’s Textmagic integration instead of building from scratch.
Send SMS and MMS from any workflow
Trigger single or bulk outbound messages with attachments and scheduling via create_a_textmagic_message and create_a_textmagic_mms_attachment.
Two-way chat sync
Pull threaded conversations and inbound replies with list_all_textmagic_chats, list_all_textmagic_chat_messages, and list_all_textmagic_replies to mirror them into your inbox or ticket UI.
Contact and list synchronization
Push contacts, lists, and custom field values into Textmagic using create_a_textmagic_list, create_a_textmagic_list_contact, and the customfield endpoints to power segmented campaigns.
Number and sender ID management
Search available numbers, provision new ones, and manage sender IDs from your app using list_all_textmagic_numbers_availables, create_a_textmagic_number, and create_a_textmagic_senderid.
Campaign analytics dashboards
Surface delivery rates, spend, and reply metrics inside your product using list_all_textmagic_stats_messagings, list_all_textmagic_stats_spendings, and list_all_textmagic_session_stats.
Compliance-aware unsubscribe and block handling
Respect opt-outs and blocked numbers by syncing list_all_textmagic_unsubscribers and list_all_textmagic_block_lists into your suppression logic before dispatching messages.
SuperAI
Textmagic 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_textmagic_pings
Make a simple ping request to TextMagic to verify API connectivity. Returns: userId, ping, utcDateTime.
list_all_textmagic_timezones
List all available TextMagic timezones. Returns: id, name. Pass full=1 to return full info about each timezone.
list_all_textmagic_lookups
Look up carrier and formatting information for a single phone number in Textmagic. Returns: cost, country, local, type, carrier, number164, valid. Numbers must be checked one by one; you cannot check multiple numbers in one request. Required: phone.
list_all_textmagic_countries
List all countries available in TextMagic. Returns: id, name.
list_all_textmagic_users
Get the current TextMagic account information. Returns: id, displayTimeFormat, username, firstName, lastName, email, status, balance, phone, company, currency, country, timezone, subaccountType, emailAccepted, phoneAccepted, avatar. Max 100 per page.
textmagic_users_bulk_update
Update the current TextMagic account information. Returns: username, firstName, lastName, email, phone, company, timezone. All body fields are optional.
create_a_textmagic_user_avatar
Upload a user avatar image to TextMagic. The image must be a PNG or JPG file no larger than 10 MB. Returns an empty 201 response on success.
textmagic_user_avatars_bulk_delete
Delete the current user's avatar in TextMagic. Returns an empty 204 response on success.
list_all_textmagic_sources
List available sender setting options in TextMagic usable as the 'from' parameter when sending messages. Returns: dedicated, user, shared, senderIds, userCarrierTwilio, userCarrierVonage, userCarrierSinch, uCarrierBandwidth, ucTwilioSenderId. Optional: country (2-letter ISO country ID) to filter results by country.
textmagic_sender_settings_bulk_update
Update TextMagic sender settings for a specific country by setting a phone number or sender ID. Returns an empty 204 response on success. Required: value, country.
list_all_textmagic_settings_normalizeds
Get current Textmagic sender settings, optionally filtered by destination country. Returns: user, special, other.
list_all_textmagic_numbers_availables
List dedicated phone numbers available for purchase in TextMagic, filtered by country and optional number prefix. Returns: phone, country. Tollfree filtering is available for US numbers only. Required: country.
list_all_textmagic_numbers
List all dedicated numbers in your TextMagic account. Returns: id, displayTimeFormat, phone, user, purchasedAt, expireAt, status, country. Filter by survey_id to find numbers ready for a specific survey.
create_a_textmagic_number
Buy a dedicated number in TextMagic. First find an available number using the available-numbers endpoint, then purchase it here. Returns an empty 201 response on success. Required: phone, country, userId.
get_single_textmagic_number_by_id
Get details of a specific dedicated number in TextMagic by id. Returns: id, displayTimeFormat, phone, user, purchasedAt, expireAt, status, country. Required: id.
delete_a_textmagic_number_by_id
Cancel a dedicated number subscription in TextMagic by id. Returns an empty 204 response on success. Required: id.
list_all_textmagic_senderids
List all approved Sender IDs in TextMagic. Returns each Sender ID record with id, senderId, status, displayTimeFormat, and the owning user object.
create_a_textmagic_senderid
Apply for a new Sender ID in TextMagic. Sender IDs are shared among all sub-accounts and are reviewed by the support team. Returns: id, href. Required: senderId, explanation.
get_single_textmagic_senderid_by_id
Get a specific Sender ID by id in TextMagic. Returns: id, displayTimeFormat, senderId, user, status. Required: id.
delete_a_textmagic_senderid_by_id
Delete a Sender ID in TextMagic by id. Returns an empty 204 response on success. Required: id.
list_all_textmagic_subaccounts
List Textmagic sub-accounts. Returns: id, displayTimeFormat, username, firstName, lastName, email, status, balance, phone, company, currency, country, timezone, subaccountType, emailAccepted, phoneAccepted, avatar. Max 100 per page.
create_a_textmagic_subaccount
Invite a new Textmagic sub-account by sending an invitation email to the specified address. Returns an empty 204 response on success. Required: email, role.
get_single_textmagic_subaccount_by_id
Get a single Textmagic sub-account by id. Returns: id, displayTimeFormat, username, firstName, lastName, email, status, balance, phone, company, currency, country, timezone, subaccountType, emailAccepted, phoneAccepted, avatar. Required: id.
delete_a_textmagic_subaccount_by_id
Close (delete) a Textmagic sub-account by id. Returns an empty 204 response on success. Required: id.
create_a_textmagic_subaccounts_token
Request a new REST API token for a TextMagic sub-account. Returns the user object, key, and app name. Required: userId, password.
list_all_textmagic_tokens_lists
List all TextMagic sub-accounts with their REST API tokens associated with a specified app name. Returns: id, appName. When more than one token is related to the app name, the last key is returned. Required: appName, password.
list_all_textmagic_balance_bundles
List available balance notification threshold options in TextMagic. Returns: balance. These are the balance values that can be set as bounds for triggering low-balance email notifications.
list_all_textmagic_notification_balances
Get balance notification settings in TextMagic. Returns: lowBalanceNotification, alertBalance, alertPhone, alertEmail1, alertEmail2, alertEmail3.
textmagic_notification_balances_bulk_update
Update balance notification settings in TextMagic. Returns an empty 204 response on success. Required: alertBalance.
list_all_textmagic_notification_inbounds
Get inbound messages notification settings in Textmagic. Returns: inboundMessageNotification, forwardedCallNotification, includeSmsHistory, sendInHtmlFormat, alertEmail1, alertEmail2, alertEmail3.
textmagic_notification_inbounds_bulk_update
Update inbound messages notification settings in Textmagic. Returns an empty 204 response on success. Required: inboundMessageNotification, includeSmsHistory, sendInHtmlFormat.
textmagic_desktop_notifications_bulk_update
Update TextMagic chat desktop notification settings, including whether to play sounds, show notifications, display message text, and which sound to use. Returns an empty 200 response on success. Required: playSound, showNotifications.
list_all_textmagic_callback_settings
Fetch TextMagic callback URL settings including the delivery status callback URL, incoming SMS callback URL, and callback data format. Returns: outUrl, inUrl, format.
textmagic_callback_settings_bulk_update
Update TextMagic callback URL settings for message delivery status updates and incoming SMS callbacks. Returns an empty 200 response on success. Required: outUrl, inUrl, format.
textmagic_contacts_search
Search TextMagic contacts by various criteria including query string, list ID, tag IDs, and phone number. Returns: id, favorited, blocked, firstName, lastName, companyName, phone, email, country, customFields, customFieldValues, user, lists, owner, tags, phoneType, avatar, notes, whatsappPhone. Supports exact match and local phone number formatting.
list_all_textmagic_contacts
List all TextMagic contacts ordered by id, firstName, or lastName. Returns: id, favorited, blocked, firstName, lastName, companyName, phone, email, country, customFields, customFieldValues, user, lists, owner, tags, phoneType, avatar, notes, whatsappPhone. Set shared to 1 to include shared contacts.
get_single_textmagic_contact_by_id
Get a single TextMagic contact by id. Returns the full contact object including id, firstName, lastName, phone, email, companyName, country, customFields, customFieldValues, lists, tags, notes, and phoneType. Required: id.
delete_a_textmagic_contact_by_id
Delete a TextMagic contact by id. This permanently removes the contact from all lists including shared lists. Returns an empty 204 response on success. Required: id.
list_all_textmagic_contacts_autocompletes
Search TextMagic contacts (and optionally lists) by a search query for autocomplete suggestions. Returns: entityId, entityType, value, label, sharedBy, isShared, avatar, favorited, userId, countryName, qposition, rposition. Required: query.
create_a_textmagic_contacts_normalized
Create a new TextMagic contact and assign it to one or more lists. Returns: id, href. Required: phone, lists.
list_all_textmagic_contacts_phones
Get a TextMagic contact by phone number. Returns: id, favorited, blocked, firstName, lastName, companyName, phone, email, country, customFields, customFieldValues, user, lists, owner, tags, phoneType, avatar, notes, whatsappPhone. Required: phone.
textmagic_contact_normalizeds_bulk_update
Update a TextMagic contact by id. Returns: id, href. Phone must be in E.164 format and lists is a comma-separated list ID; each contact must belong to at least one list. Required: id, phone, lists.
textmagic_contact_alls_bulk_delete
Delete all contacts in bulk from a TextMagic account. Returns an empty 204 response on success.
delete_a_textmagic_contacts_delete_by_id
Delete TextMagic contacts in bulk by ID or remove all contacts at once. Provide ids as a comma-separated string, or set all to 1 to delete every contact. Returns an empty 204 response on success.
list_all_textmagic_unsubscribers
List all unsubscribed contacts in TextMagic. Returns: id, phone, unsubscribeTime, firstName, lastName.
create_a_textmagic_unsubscriber
Manually unsubscribe a contact in TextMagic by phone number. This action cannot be reversed. Returns: id, href.
get_single_textmagic_unsubscriber_by_id
Get the details of a specific unsubscribed contact in TextMagic by id. Returns: id, phone. Required: id.
list_all_textmagic_customfields
List all TextMagic custom fields with pagination. Returns each field's id, name, and createdAt.
create_a_textmagic_customfield
Create a new TextMagic custom field. Returns: id, href. Required: name.
get_single_textmagic_customfield_by_id
Get a single TextMagic custom field by id. Returns: id, name, createdAt. Required: id.
update_a_textmagic_customfield_by_id
Update a TextMagic custom field by id. Returns: id, href. Required: id, name.
delete_a_textmagic_customfield_by_id
Delete a TextMagic custom field by id. Deleting a custom field also removes all values stored on contacts under that field. Returns an empty 204 response on success. Required: id.
textmagic_customfield_updates_bulk_update
Edit the custom field value of a specified contact in TextMagic. Returns: id, href. Required: id.
list_all_textmagic_lists
List all TextMagic contact lists with optional filtering for favorites or current user ownership. Returns: id, name, description, favorited, membersCount, user, service, shared, avatar, isDefault.
create_a_textmagic_list
Create a new TextMagic contact list. Returns: id, href. Required: name.
textmagic_lists_search
Search TextMagic contact lists by IDs, name query, or default and ownership filters. Returns: id, name, description, favorited, membersCount, user, service, shared, avatar, isDefault.
get_single_textmagic_list_by_id
Get details of a specific TextMagic contact list by id. Returns: id, name, description, favorited, membersCount, user, service, shared, avatar, isDefault. Required: id.
update_a_textmagic_list_by_id
Update an existing TextMagic contact list by id. Returns: id, href. Required: id, name.
delete_a_textmagic_list_by_id
Delete a TextMagic list by id. When a list is deleted, its contacts are also removed unless they were saved in another list. Returns an empty 204 response on success. Required: id.
list_all_textmagic_contact_lists
List all TextMagic contact lists that a given contact belongs to. Returns: id, name, description, favorited, membersCount, user, service, shared, avatar, isDefault. Required: contact_id.
list_all_textmagic_contacts_favorites
List favorite contacts and lists in TextMagic. Returns: entityId, entityType, primaryLabel, secondaryLabel, tertiaryLabel, avatar.
delete_a_textmagic_lists_delete_by_id
Delete one or more TextMagic lists in bulk. Provide ids as a comma-separated string of list IDs, or set all to 1 to delete every list. Returns an empty 204 response on success.
list_all_textmagic_distribution_lists
List TextMagic distribution lists with optional name or email search and field-based ordering. Returns: id, name, email, membersCount.
create_a_textmagic_distribution_list
Create a new TextMagic distribution list that forwards incoming emails as SMS to specified recipients. Returns: id, name, email, membersCount, includeOptions, maxLength, recipients, senderSource. Required: name, recipients, includeOptions, maxLength.
get_single_textmagic_distribution_list_by_id
Get a single TextMagic distribution list by id. Returns: id, name, email, recipients. Required: id.
update_a_textmagic_distribution_list_by_id
Update a TextMagic distribution list by id. This replaces the whole recipient set — submit the complete list of contactIds, groupIds, segmentIds and numbers, not just additions. Returns: id, name, email, recipients. Required: id, name, recipients, includeOptions, maxLength.
delete_a_textmagic_distribution_list_by_id
Delete a TextMagic distribution list by id. Returns an empty 204 response on success. Required: id.
list_all_textmagic_block_lists
List blocked contacts in Textmagic. Returns each blocked contact with id, firstName, lastName, phone, email, companyName, blocked, favorited, and nested customFields, lists, tags, user, and notes data. Results can be searched and ordered by id, firstName, or lastName.
list_all_textmagic_block_phones
Check if a phone number is blocked in TextMagic. Returns the blocked contact's details including id, firstName, lastName, phone, email, blocked, and favorited. Required: phone.
create_a_textmagic_contacts_block
Block a TextMagic contact from inbound and outbound communication by phone number. Returns: id, href.
create_a_textmagic_contacts_unblock
Unblock a TextMagic contact by phone number. Returns an empty 204 response on success.
textmagic_contacts_unblocks_bulk_create
Unblock several TextMagic contacts by blocked contact IDs, or unblock all blocked contacts at once. Returns an empty 204 response on success. Provide ids as a comma-separated list of blocked contact IDs, or set all to 1 to unblock every blocked contact.
list_all_textmagic_contact_notes
List Textmagic contact notes assigned to a given contact. Returns each note with id, createdAt, note, and user. Required: contact_id.
create_a_textmagic_contact_note
Create a new Textmagic contact note for a given contact. Returns: id, href. Required: contact_id.
get_single_textmagic_note_by_id
Get a contact note in TextMagic by id. Returns: id, createdAt, note, user. Required: id.
update_a_textmagic_note_by_id
Update a contact note in TextMagic by id. Returns: id, href. Required: id, note.
delete_a_textmagic_note_by_id
Delete a contact note in TextMagic by id. Returns an empty 204 response on success. Required: id.
delete_a_textmagic_notes_delete_by_id
Delete contact notes in bulk for a specific TextMagic contact. Returns an empty 204 response on success. Required: id.
create_a_textmagic_contact_avatar
Upload an avatar image for a TextMagic contact. Returns: id, href. The image must be a PNG or JPG file not exceeding 10 MB. Required: contact_id.
textmagic_contact_avatars_bulk_delete
Delete the avatar for a TextMagic contact. Returns an empty 204 response on success. Required: id.
create_a_textmagic_import_normalized
Import contacts into TextMagic from a CSV, XLS, or XLSX file with column mapping. Returns: id, href. The column mapping must include a phone field mapping. Required: column.
get_single_textmagic_import_progrese_by_id
Get contact import session progress in Textmagic by id. Returns: status, processed. The status field is an integer enum (1=initialized, 3=processing, 4=errors, 5=completed) and processed is the count of imported contacts. Required: id.
list_all_textmagic_email_lookups
Look up details about an email address in Textmagic to check validity, deliverability, risk, and DNS/MX records. Returns: address, status, deliverability, reason, risk, suggestion, exchange, preference. Emails must be checked one by one. Required: email.
list_all_textmagic_contacts_ids
List all contact IDs belonging to a specific TextMagic list. Returns a flat array of contact ID integers (id). Required: list_id.
list_all_textmagic_list_contacts
List all contacts in a Textmagic contact list. Returns: id, favorited, blocked, firstName, lastName, companyName, phone, email, country, customFields, customFieldValues, user, lists, owner, tags, phoneType, avatar, notes, whatsappPhone. Required: list_id.
create_a_textmagic_list_contact
Reset a Textmagic contact list's members to the specified contacts, replacing all existing members. Returns: id, href. Pass "all" as the contacts value to assign all contacts belonging to the current user. Required: list_id, contacts.
delete_a_textmagic_list_contact_by_id
Unassign contacts from a Textmagic contact list. Removed contacts are deleted permanently unless saved in another list first. Returns an empty 204 response on success. Required: id, contacts.
textmagic_list_contacts_bulk_delete
Bulk delete contacts from a Textmagic contact list. Returns an empty 204 response on success. Required: list_id.
textmagic_list_contacts_bulk_update
Assign additional contacts to a Textmagic contact list without resubmitting existing member IDs. Returns: id, href. Required: id, contacts.
create_a_textmagic_list_avatar
Upload an avatar image for a TextMagic list. Returns: id, href. The image must be a PNG or JPG file not exceeding 10 MB. Required: list_id.
textmagic_list_avatars_bulk_delete
Delete an avatar for a TextMagic list by id. Returns an empty 204 response on success. Required: id.
list_all_textmagic_templates
List all TextMagic templates with pagination. Returns: id, name, content, lastModified.
create_a_textmagic_template
Create a new TextMagic SMS template. Returns: id, href. Required: name, content.
textmagic_templates_search
Search TextMagic templates by IDs, name, or content. Returns: id, name, content, lastModified.
get_single_textmagic_template_by_id
Get a single TextMagic template by id. Returns: id, name, content, lastModified. Required: id.
update_a_textmagic_template_by_id
Update a TextMagic template by id. Returns: id, href. Required: id, name, content.
delete_a_textmagic_template_by_id
Delete a TextMagic template by id. Returns an empty 204 response on success. Required: id.
delete_a_textmagic_templates_delete_by_id
Delete one or more TextMagic templates by IDs, or delete all templates at once. Pass `ids` as a comma-separated list of template IDs, or set `all` to true to delete every template. Returns an empty 204 response on success.
list_all_textmagic_messages
List all outbound TextMagic messages. Returns each message with id, sender, receiver, text, status, messageTime, price, charset, partsCount, and contact/session details. Use last_id to paginate by fetching all messages with IDs lesser than the specified value; when last_id is supplied, the page parameter is ignored.
create_a_textmagic_message
Send an SMS or MMS message via Textmagic to one or more recipients specified by phone numbers, contact IDs, or list IDs. Returns: id, href, type. Supports scheduling via rrule, bulk sending for 1,000+ recipients, TTS, and MMS attachments. Required: text, phones.
get_single_textmagic_message_by_id
Get a single outgoing message in TextMagic by id. Returns: id, sender, receiver, text, status, avatar, deleted, charset, country, phone, price, session. Required: id.
delete_a_textmagic_message_by_id
Delete a single Textmagic outbound message by id. Returns an empty 204 response on success. Required: id.
textmagic_messages_search
Search Textmagic outbound messages by various filters including IDs, session, delivery status, or free-text query. Returns: id, sender, receiver, text, status, rejectReason, contactId, sessionId, messageTime, avatar, deleted, deliveredAt, charset, charsetLabel, firstName, lastName, country, phone, price, partsCount, fromEmail, fromNumber, senderSource, session. The 'page' parameter is ignored…
list_all_textmagic_price_normalizeds
Check pricing for a new outbound TextMagic message before sending. Returns: total, parts, countries. Either text or templateId must be provided.
list_all_textmagic_messages_previews
Preview a Textmagic message with dynamic fields merged before sending, supporting up to 100 messages per session. Returns: messages.
delete_a_textmagic_messages_delete_by_id
Delete outbound TextMagic messages in bulk by given message IDs, or delete all outbound messages when all is set to 1. Returns an empty 204 response on success.
textmagic_message_alls_bulk_delete
Delete all outbound messages in TextMagic. Returns an empty 204 response on success.
create_a_textmagic_messages_attachment
Upload a file to TextMagic to insert as a link in messages. Returns: chars, href, name, size, resource. Supports .jpg, .gif, .png, .pdf, .txt, .csv, .doc, .docx, .xls, .xlsx, .ppt, .pptx & .vcf file formats.
create_a_textmagic_mms_attachment
Upload a new file as an MMS attachment in Textmagic. Returns: chars, href, name, size, resource. Supports .jpg, .gif, .png, .pdf, .txt, .csv, .doc, .docx, .xls, .xlsx, .ppt, .pptx & .vcf file formats up to 10 MB.
list_all_textmagic_histories
List outbound message history in TextMagic. Returns: id, sender, receiver, text, status, rejectReason, contactId, sessionId, messageTime, avatar, deleted, deliveredAt, charset, charsetLabel, firstName, lastName, country, phone, price, partsCount, fromEmail, fromNumber, senderSource, session. Supports filtering by search query and ordering by id, phone, sender, firstName, lastName, or messageTime.
list_all_textmagic_bulks
List all TextMagic bulk sessions, which track asynchronous message sending to more than 1,000 recipients. Returns: id, status, itemsProcessed, itemsTotal, createdAt, session, text.
get_single_textmagic_bulk_by_id
Get the status of a specific bulk session in TextMagic by id. Returns: id, status, itemsProcessed, itemsTotal, createdAt, session, text. Required: id.
list_all_textmagic_sessions
List all TextMagic message sending sessions, including those not sent via the API. Returns: id, startTime, text, source, referenceId, price, numbersCount, destination, initiatorId, title.
get_single_textmagic_session_by_id
Get a specific TextMagic message session by id. Returns: id, startTime, text, source, referenceId, price, numbersCount, destination, initiatorId, title. Required: id.
delete_a_textmagic_session_by_id
Delete a TextMagic message session by id, including all nested messages. You will not be refunded for any deleted sent sessions. Returns an empty 204 response on success. Required: id.
list_all_textmagic_session_stats
Get statistics for a TextMagic message session, including message counts broken down by delivery status. Returns: failed, delivered, accepted, rejected, scheduled, all, sent. Required: session_id.
delete_a_textmagic_sessions_delete_by_id
Delete message sessions in bulk in TextMagic, including all nested messages. Provide ids as a comma-separated list to delete specific sessions, or set all to 1 to remove every session. Returns an empty 204 response on success.
list_all_textmagic_schedules
List all scheduled messages in TextMagic. Returns each schedule with id, nextSend, rrule, type, summary, session, parameters, textParameters, completed, recipientsCount, timezone, createdAt.
textmagic_schedules_search
Search scheduled messages in TextMagic by query string, schedule IDs, or status. Returns: id, nextSend, rrule, session, lastSent, contactName, type, summary, textParameters, firstOccurrence, lastOccurrence, recipientsCount, timezone, completed, avatar, createdAt. All parameters are optional.
get_single_textmagic_schedule_by_id
Get a single scheduled message in TextMagic by id. Returns the schedule object including id, nextSend, rrule, session, type, summary, recipientsCount, completed, and createdAt. Required: id.
delete_a_textmagic_schedule_by_id
Delete a scheduled message in TextMagic by id. Returns an empty 204 response on success. Required: id.
delete_a_textmagic_schedules_delete_by_id
Delete scheduled messages in bulk in TextMagic by entity IDs, by status, or all at once. Returns an empty 204 response on success.
list_all_textmagic_replies
List all inbound messages (replies) in TextMagic. Returns each message with id, sender, receiver, messageTime, text, and contact details (contactId, firstName, lastName, avatar, email, contactUserId, userId).
textmagic_replies_search
Search inbound messages (replies) in TextMagic by IDs or text query, with optional contact expansion. Returns each message with id, sender, receiver, messageTime, text, and contact details (contactId, firstName, lastName, avatar, email, contactUserId, userId).
get_single_textmagic_reply_by_id
Get a single inbound message (reply) from TextMagic by id. Returns: id, sender, receiver, text, avatar, email. Required: id.
delete_a_textmagic_reply_by_id
Delete a single inbound message (reply) from TextMagic by id. Returns an empty 204 response on success. Required: id.
delete_a_textmagic_replies_delete_by_id
Delete inbound TextMagic messages in bulk by message IDs or all at once. Returns an empty 204 response on success. Deleted messages are permanently removed from TextMagic Online, chats, and all other references.
list_all_textmagic_stats_messagings
List TextMagic messaging statistics grouped by day, month, year, or as an overall total for a given time interval. Returns: replyRate, deliveryRate, costs, date, messagesReceived, messagesSentDelivered, messagesSentAccepted, messagesSentBuffered, messagesSentFailed, messagesSentRejected, and messagesSentParts. All parameters are optional and default to the last 7 days with totals (by=off).
list_all_textmagic_stats_spendings
List spending statistics in Textmagic for a selected time period. Returns user statements including id, userId, date, balance, delta, type, value, and comment. Start defaults to 7 days prior and end defaults to today.
list_all_textmagic_invoices
List TextMagic invoices and transactions for your account. Returns: id, bundle, currency, vat, paymentMethod.
list_all_textmagic_messaging_data
Get total contacts, sent messages, and received messages counters from TextMagic. Returns: contacts, sent, received.
list_all_textmagic_chats
List all TextMagic chats with optional filtering by status, voice calls, and ordering. Returns: id, originalId, phone, contact, unsubscribedContactId, unread, updatedAt, status, mute, lastMessage, direction, replyOptionsType, from, mutedUntil, timeLeftMute, country, pinned, type, smsPrice, mmsPrice, tags, assigneeId, updatedBy, createdAt, messageTime, conversationEnded, rating.
get_single_textmagic_chat_by_id
Get a single TextMagic chat by id. Returns: id, originalId, phone, contact, unsubscribedContactId, unread, updatedAt, status, mute, lastMessage, direction, replyOptionsType, from, mutedUntil, timeLeftMute, country, pinned, type, smsPrice, mmsPrice, tags, assigneeId, updatedBy, createdAt, messageTime, conversationEnded, rating. Required: id.
textmagic_chats_search
Search TextMagic chats by message text using a search query. Returns: id, originalId, phone, contact, unsubscribedContactId, unread, updatedAt, status, mute, lastMessage, direction, replyOptionsType, from, mutedUntil, timeLeftMute, country, pinned, type, smsPrice, mmsPrice, tags, assigneeId, updatedBy, createdAt, messageTime, conversationEnded, rating.
list_all_textmagic_chat_messages
List messages in a TextMagic chat, with optional search and time-range filtering. Returns: id, direction, sender, messageTime, text, receiver, status, firstName, lastName, sessionId, initiatorId, messageFileId, type, chatType, chatId, isEdited, errorCode, files, payload, avatar. Required: chat_id.
delete_a_textmagic_chat_message_by_id
Delete messages from a TextMagic chat by inbound, sent, or call message IDs, or delete all messages in the chat. Returns an empty 204 response on success. Required: chat_id.
list_all_textmagic_search_ids
Find chats in bulk by their IDs in Textmagic. Returns chat objects including id, phone, contact, status, lastMessage, direction, unread, createdAt, and updatedAt. The ids query parameter accepts a comma-separated list of numeric chat IDs.
list_all_textmagic_search_recipients
Search TextMagic chats by recipient (contact, list name, or phone number). Returns chat records including id, phone, contact, unread, lastMessage, status, direction, messageTime, createdAt, and more.
list_all_textmagic_by_phones
Find a TextMagic chat by phone number. Returns: id, originalId, phone, contact, unsubscribedContactId, unread, updatedAt, status, mute, lastMessage, direction, replyOptionsType, from, mutedUntil, timeLeftMute, country, pinned, type, smsPrice, mmsPrice, tags, assigneeId, updatedBy, createdAt, messageTime, conversationEnded, rating. Set upsert=1 to create a new chat if none is…. Required: phone.
list_all_textmagic_unread_counts
Get the total number of unread messages in the current user's TextMagic chats. Returns: total.
create_a_textmagic_chats_status
Change the status of a TextMagic chat by its ID. Returns: id, href. Required: id, status.
create_a_textmagic_chats_pin
Pin or unpin a single chat in TextMagic. Pass a chat id and a pinned flag (1 to pin, 0 to unpin). Returns: id, href. Required: id, pinned.
create_a_textmagic_chats_mute
Mute notification sounds for a specific TextMagic chat. Returns: id, href. Required: id, mute.
textmagic_chats_mutes_bulk_create
Mute notification sounds for multiple TextMagic chats at once by chat IDs, or mute all chats. Returns an empty 204 response on success.
textmagic_chats_unmutes_bulk_create
Unmute several TextMagic chats in bulk by providing a comma-separated list of chat IDs, or unmute all chats at once. Pass `ids` to target specific chats or set `all` to true to unmute every chat. Returns an empty 204 response on success.
textmagic_chats_unreads_bulk_create
Mark several TextMagic chats as unread by chat IDs, or mark all chats as unread. Returns an empty 204 response on success.
textmagic_chats_reads_bulk_create
Mark several TextMagic chats as read by chat IDs, or mark all chats as read at once. Returns an empty 204 response on success.
textmagic_chats_closes_bulk_create
Close one or more TextMagic chats in bulk by providing comma-separated chat IDs, or close all chats at once by setting all to true. Returns an empty 204 response on success.
create_a_textmagic_close_read
Close all TextMagic chats that have no unread messages. Returns an empty 204 response on success.
textmagic_chats_reopens_bulk_create
Bulk reopen TextMagic chats by chat IDs or reopen all chats at once. Returns an empty 204 response on success. Supply ids as a comma-separated string of chat IDs, or set all to true to reopen every chat.
delete_a_textmagic_chats_delete_by_id
Delete one or more TextMagic chats in bulk by providing comma-separated chat IDs, or delete all chats. Returns an empty 204 response on success.
create_a_textmagic_email_campaign
Create and send an email marketing campaign in TextMagic to contacts, groups, or direct emails. Returns the campaign object including its id, status, cost, and recipient counts. At least one recipient type must be specified; the campaign is processed asynchronously and requires sufficient account balance. Required: emailSenderId, subject, message, recipients.
create_a_textmagic_email_campaigns_schedule
Schedule new email campaign. Returns: campaign, cost. Required: emailSenderId, subject, message, recipients, scheduleParams.
list_all_textmagic_email_campaigns_email_senders
Get list of email senders.
create_a_textmagic_tag
Create a new tag in TextMagic for organizing and categorizing contacts. Returns: id, title. Tag titles must be unique within your account and between 1 and 50 characters. Required: title.
list_all_textmagic_session_messages
List all messages belonging to a specific TextMagic message session. Returns: id, sender, receiver, text, status, rejectReason, contactId, sessionId, messageTime, avatar, deleted, deliveredAt, charset, charsetLabel, firstName, lastName, country, phone, price, partsCount, fromEmail, fromNumber, senderSource, session. Required: session_id.
Why Truto
Why use Truto’s MCP server for Textmagic
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ 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 Textmagic in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Textmagic account
Use Truto’s frontend SDK to connect your customer’s Textmagic 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 Textmagic
Truto’s Proxy API is a 1-to-1 mapping of the Textmagic API. You call us, we call Textmagic, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Textmagic’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Textmagic on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication work for end users connecting their Textmagic account?
Textmagic uses API key authentication tied to a specific user account. Truto handles the credential capture, secure storage, and injection into each API call, so your end users only paste their key once during connection.
Can we send both SMS and MMS through the integration?
Yes. create_a_textmagic_message handles SMS and text-to-speech, while create_a_textmagic_mms_attachment and create_a_textmagic_messages_attachment let you attach media for MMS campaigns.
How do we get inbound replies and chat messages — polling or webhooks?
The available tools (list_all_textmagic_replies, list_all_textmagic_chat_messages, list_all_textmagic_chats) support polling-based retrieval. You can pull new messages on an interval and reconcile them into your app's data model.
Can we personalize bulk messages with custom variables per recipient?
Yes. Custom fields can be created and updated via create_a_textmagic_customfield and textmagic_customfield_updates_bulk_update, and referenced in message templates so bulk sends render per-contact values.
How do we handle opt-outs and suppression lists?
Use list_all_textmagic_unsubscribers and list_all_textmagic_block_lists to fetch opted-out and blocked contacts, and create_a_textmagic_unsubscriber or create_a_textmagic_contacts_block to write new suppressions before sending.
Can users provision phone numbers directly from our product?
Yes. list_all_textmagic_numbers_availables surfaces purchasable numbers, create_a_textmagic_number provisions them, and create_a_textmagic_senderid manages sender IDs — all callable from your UI.
Do we get delivery and cost analytics per campaign?
Yes. list_all_textmagic_stats_messagings, list_all_textmagic_stats_spendings, list_all_textmagic_session_stats, and list_all_textmagic_bulks expose delivery status, cost breakdowns, and bulk send progress for reporting inside your app.
From the Blog
Textmagic integration guides
Deep dives, architecture guides, and practical tutorials for building Textmagic integrations.
Textmagic
Get Textmagic integrated into your app
Our team understands what it takes to make a Textmagic integration successful. A short, crisp 30 minute call with folks who understand the problem.