---
title: Textmagic API Integration on Truto
slug: textmagic
category: Marketing Automation
canonical: "https://truto.one/integrations/detail/textmagic/"
---

# Textmagic API Integration on Truto



**Category:** Marketing Automation  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 156 tools for Textmagic that AI agents can call directly.

- **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.

## How it works

1. **Link your customer's Textmagic account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Textmagic.** The Proxy API is a 1-to-1 mapping of the Textmagic API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **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

- **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.

## FAQs

### 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.

## Related reading

- [Connect Textmagic to ChatGPT: Automate Two-Way SMS, Chat & Campaigns](https://truto.one/blog/connect-textmagic-to-chatgpt-automate-two-way-sms-chat-campaigns/) — Learn how to build a managed MCP server to securely connect Textmagic to ChatGPT. Automate SMS workflows, two-way chats, and bulk campaigns with AI agents.
- [Connect Textmagic to Claude: Sync Contacts, Send MMS & View Analytics](https://truto.one/blog/connect-textmagic-to-claude-sync-contacts-send-mms-view-analytics/) — Learn how to connect Textmagic to Claude using a managed MCP server. Automate SMS campaigns, manage contacts, and build AI workflows without writing custom integration code.
- [Connect Textmagic to AI Agents: Buy Numbers, Manage Lists & Audit Stats](https://truto.one/blog/connect-textmagic-to-ai-agents-buy-numbers-manage-lists-audit-stats/) — Learn how to connect Textmagic to AI agents using Truto's unified tool layer. Buy dedicated numbers, manage contact lists, and execute complex SMS workflows autonomously.
