Skip to content

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 us
Textmagic

Use Cases

Why integrate with Textmagic

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

01

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.

02

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.

03

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.

04

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.

05

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

01

Auto-generated, always up to date

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

02

Fine-grained access control

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

03

Multi-tenant by design

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

04

Works with every MCP client

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

05

Built-in auth, rate limits, and error handling

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

06

Expiring and auditable servers

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

How It Works

From zero to integrated

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

01

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.

02

We handle authentication

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

03

Call our API, we call 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.

04

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.

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.