Integration

TextMagic integration

TextMagic is a business SMS platform. Send SMS and MMS to phone numbers, contacts or lists (now, scheduled or recurring), check a message price before sending, read outbound, inbound and scheduled messages, sessions and chats, manage contacts, lists, custom fields, notes, templates, blocked and unsubscribed numbers, sender IDs and dedicated numbers, look up a number's carrier or validate an email, and read messaging and spending statistics and invoices. Not exposed: file uploads (avatars, attachments, contact CSV import), the routes that mint or list sub-account API tokens, the delete-everything routes for all contacts and all messages, and the chat desktop notification setting. List tools page with page and limit (1 to 100). The API allows 50 requests per second. Authentication is your TextMagic username and an API key (created under API settings in TextMagic), sent as the X-TM-Username and X-TM-Key headers.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in TextMagic.Built from the 141 TextMagic tools below, on the connection you add once.

What you can do with TextMagic

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Delete, 11 operations

  • delete_chat_messagesDelete chat messagesPOSTDeletes messages of one chat by inbound, sent or call ids, or every message of the chat with all=1.
  • delete_chats_bulkDelete chats bulkPOSTDeletes the given chats by id, or all chats with all=1 (optionally only those with a status).
  • delete_contact_notes_bulkDelete contact notes bulkPOSTDeletes the given notes of a contact by id, or all of its notes with all=1.
  • delete_contacts_bulkDelete contacts bulkPOSTDeletes the given contacts by id, or every contact with all=1. Permanent.
  • delete_inbound_messages_bulkDelete inbound messages bulkPOSTDeletes the given received messages by id, or all with all=1. They also disappear from chats.
  • delete_list_contacts_bulkDelete list contacts bulkPOSTRemoves the given contacts from a list by id, or all of its contacts with all=1. Contacts in no other list are deleted.
  • delete_lists_bulkDelete lists bulkPOSTDeletes the given lists by id, or every list with all=1. Contacts that are in no other list are deleted with them.
  • delete_message_sessions_bulkDelete message sessions bulkPOSTDeletes the given sessions with their messages, or every session with all=1. Not refunded.
  • delete_outbound_messages_bulkDelete outbound messages bulkPOSTDeletes the given sent messages by id, or every sent message with all=1.
  • delete_scheduled_messages_bulkDelete scheduled messages bulkPOSTCancels the given scheduled messages by id, or all with all=1 (optionally only those with a status).
  • delete_templates_bulkDelete templates bulkPOSTDeletes the given templates by id, or every template with all=true.

Bulk, 7 operations

  • close_chats_bulkClose chats bulkPOSTCloses the given chats by id, or all chats with all=1.
  • get_bulk_sessionGet bulk sessionGETReturns one bulk sending job by id: status, items processed and total, and its session once created.
  • list_bulk_sessionsList bulk sessionsGETLists bulk sending jobs (sends to over 1000 recipients) with status and progress, paged with page and limit.
  • mark_chats_read_bulkMark chats read bulkPOSTMarks the given chats as read by id, or all chats with all=1.
  • mark_chats_unread_bulkMark chats unread bulkPOSTMarks the given chats as unread by id, or all chats with all=1.
  • mute_chats_bulkMute chats bulkPOSTMutes the given chats by id, or all chats with all=1, optionally for a number of hours.
  • reopen_chats_bulkReopen chats bulkPOSTReopens the given closed chats by id, or all chats with all=1.

Contact, 6 operations

  • assign_contacts_to_listAssign contacts to listPUTAdds contacts to a list, keeping the ones already in it. Rate limit 5 requests per second.
  • delete_contactDelete contactDELETEDeletes a contact completely, also from shared lists. To only remove it from some lists, use unassign_contacts_from_list.
  • get_contactGet contactGETReturns one contact by id: names, phone, email, company, country, lists, custom field values and flags.
  • list_contactsList contactsGETLists contacts (name, phone, email, company, lists, custom field values), paged with page and limit, ordered by id or name.
  • list_list_contactsList list contactsGETLists the contacts of one list, paged with page and limit.
  • replace_list_contactsReplace list contactsPOSTReplaces a list's members with the given contacts: contacts not named are removed from the list. Rate limit 5 requests per second.

List, 6 operations

  • create_listCreate listPOSTCreates a contact list. Returns its id.
  • delete_listDelete listDELETEDeletes a list. Its contacts are deleted too, unless they are also saved in another list.
  • get_listGet listGETReturns one list by id: name, description, members count, owner, shared and favorite flags.
  • list_blocked_contactsList blocked contactsGETLists blocked contacts (no messages in or out), optionally filtered by a search text. Paged with page and limit.
  • list_contact_listsList contact listsGETLists the lists a contact belongs to, paged with page and limit.
  • list_listsList listsGETLists contact lists (name, members count, shared, favorite, default), paged with page and limit.

Message, 5 operations

  • delete_outbound_messageDelete outbound messageDELETEDeletes one sent message from the history by id.
  • get_outbound_messageGet outbound messageGETReturns one sent message by id: receiver, sender, text, delivery status, reject reason, price and parts.
  • list_chat_messagesList chat messagesGETLists the messages of one chat (both directions), optionally between start and end or by text. Paged with page and limit.
  • list_outbound_messagesList outbound messagesGETLists sent messages (receiver, text, status, price, time), paged with page and limit, or by lastId.
  • list_session_messagesList session messagesGETLists the messages of one sending session, optionally filtered by delivery statuses. Paged with page and limit.

Search, 5 operations

  • search_chatsSearch chatsGETSearches chats by the text of their messages. Paged with page and limit.
  • search_contactsSearch contactsGETSearches contacts by text query, ids, list, tag ids or exact phone, optionally including shared or blocked ones. Paged with page and limit.
  • search_inbound_messagesSearch inbound messagesGETSearches received messages by ids or text; expand=1 adds the contact's id and names. Paged with page and limit.
  • search_listsSearch listsGETSearches lists by name text or ids, optionally only yours or only default lists. Paged with page and limit.
  • search_outbound_messagesSearch outbound messagesGETSearches sent messages by ids, session, delivery statuses or text. Paged with page and limit.

Customfield, 4 operations

  • create_custom_fieldCreate custom fieldPOSTCreates a custom contact field. Returns its id.
  • delete_custom_fieldDelete custom fieldDELETEDeletes a custom field and every value stored in it on all contacts.
  • get_custom_fieldGet custom fieldGETReturns one custom field by id.
  • list_custom_fieldsList custom fieldsGETLists the account's custom contact fields (id, name, creation date). Their names are usable as dynamic fields in message text and templates.

Distribution list, 4 operations

  • create_distribution_listCreate distribution listPOSTCreates an email-to-SMS distribution list: email sent to its address is forwarded as SMS to its recipients.
  • delete_distribution_listDelete distribution listDELETEDeletes a distribution list by id.
  • get_distribution_listGet distribution listGETReturns one distribution list by id with its address, options and recipients.
  • list_distribution_listsList distribution listsGETLists email-to-SMS distribution lists (name, address email, members count), filtered by name or email. Paged with page and limit.

Note, 4 operations

  • create_contact_noteCreate contact notePOSTAdds a note to a contact. Returns the note id.
  • delete_contact_noteDelete contact noteDELETEDeletes one contact note by id.
  • get_contact_noteGet contact noteGETReturns one contact note by id.
  • list_contact_notesList contact notesGETLists the notes of a contact (text, author, date), paged with page and limit.

Number, 4 operations

  • buy_dedicated_numberBuy dedicated numberPOSTBuys a dedicated number (a recurring paid subscription charged to the balance). Pick the number with search_available_numbers first.
  • cancel_dedicated_numberCancel dedicated numberDELETECancels a dedicated number subscription by id; the number is released.
  • get_dedicated_numberGet dedicated numberGETReturns one dedicated number by id: phone, country, owner, status, purchase and expiry dates.
  • list_dedicated_numbersList dedicated numbersGETLists the dedicated numbers on the account: phone, country, status, purchase and expiry dates.

Schedule, 4 operations

  • delete_scheduled_messageDelete scheduled messageDELETEDeletes (cancels) one scheduled message by id.
  • get_scheduled_messageGet scheduled messageGETReturns one scheduled message by id: next send time, recurrence rule, text and recipients.
  • list_scheduled_messagesList scheduled messagesGETLists scheduled and recurring messages (next and last send, rule, text), by status: a active, c completed, x all.
  • schedule_email_campaignSchedule email campaignPOSTSchedules an HTML email campaign for a start time, once or recurring (RFC 5545 rule), charged to the balance when sent. Returns the campaign and its cost.

Senderid, 4 operations

  • delete_sender_idDelete sender idDELETEDeletes a sender ID by id.
  • get_sender_idGet sender idGETReturns one sender ID by id, with its approval status.
  • list_sender_idsList sender idsGETLists the account's alphanumeric sender IDs with their approval status.
  • request_sender_idRequest sender idPOSTApplies for a new alphanumeric sender ID (reviewed by TextMagic before use). Sender IDs are shared by all sub-accounts.

Subaccount, 4 operations

  • close_subaccountClose subaccountDELETECloses a sub-account by id. The user can no longer log in or send.
  • get_subaccountGet subaccountGETReturns one sub-account by id: username, names, email, role, status and phone.
  • invite_subaccountInvite subaccountPOSTSends an invitation email that creates a new sub-account with the given role. Sub-accounts share the main account's balance.
  • list_subaccountsList subaccountsGETLists the account's sub-accounts (users) with username, names, email, role and status. Paged with page and limit.

Template, 4 operations

  • create_templateCreate templatePOSTCreates a message template. Its content may hold dynamic fields such as [First name] filled per contact. Returns the id.
  • delete_templateDelete templateDELETEDeletes a template by id.
  • get_templateGet templateGETReturns one template by id: name, content and last modified time.
  • list_templatesList templatesGETLists message templates (name, content, last modified), paged with page and limit.

Normalized, 3 operations

  • create_contactCreate contactPOSTCreates a contact from a phone number (E.164, or local with local=1 and country) in at least one list. Returns the new id.
  • get_message_priceGet message priceGETReturns the price of a message before sending: total cost, parts count and per-country breakdown, for the same recipients and text you would pass to send_message.
  • get_sender_settingsGet sender settingsGETReturns the default sender configured per country (your own, special and other settings), optionally for one country.

Phone, 3 operations

  • get_blocked_contact_by_phoneGet blocked contact by phoneGETChecks whether a phone number is blocked; returns the contact record of that number with its blocked flag.
  • get_chat_by_phoneGet chat by phoneGETReturns the chat with a phone number; upsert=1 creates it when missing, reopen=1 reopens a closed one.
  • get_contact_by_phoneGet contact by phoneGETReturns the contact that has this phone number (E.164 without +).

Reply, 3 operations

  • delete_inbound_messageDelete inbound messageDELETEDeletes one received message by id. It also disappears from chats and the web app.
  • get_inbound_messageGet inbound messageGETReturns one received message by id: sender, receiver, text, time and contact.
  • list_inbound_messagesList inbound messagesGETLists received (inbound) messages: sender, receiver number, text and time, paged with page and limit.

Session, 3 operations

  • delete_message_sessionDelete message sessionDELETEDeletes a sending session with all its messages. Sent messages are not refunded.
  • get_message_sessionGet message sessionGETReturns one sending session by id: text, start time, source, price, number count and destination.
  • list_message_sessionsList message sessionsGETLists sending sessions (one per send to several recipients, from the API or the web app): text, start time, price and number count.

Chat, 2 operations

  • get_chatGet chatGETReturns one chat by id: phone, contact, unread count, status, last message and direction.
  • list_chatsList chatsGETLists chats (one conversation per phone): contact, unread count, last message, status and mute, by status a active, c closed, d deleted.

Id, 2 operations

  • list_list_contact_idsList list contact idsGETReturns the ids of every contact in one list.
  • search_chats_by_idsSearch chats by idsGETReturns the chats with the given ids. Paged with page and limit.

Unsubscriber, 2 operations

  • get_unsubscribed_contactGet unsubscribed contactGETReturns one unsubscribed contact by id: phone, names and unsubscribe time.
  • list_unsubscribed_contactsList unsubscribed contactsGETLists unsubscribed contacts (who replied a STOP word or were unsubscribed manually): phone, name and unsubscribe time.

Autocomplete, 1 operation

  • autocomplete_contactsAutocomplete contactsGETReturns contact (and optionally list) suggestions matching a search text, as entity type, id and label.

Available, 1 operation

  • search_available_numbersSearch available numbersGETSearches dedicated numbers available to buy in a country (by prefix, toll-free in the US), with their monthly price. Buy one with buy_dedicated_number.

Balance, 1 operation

  • get_balance_notification_settingsGet balance notification settingsGETReturns the low-balance notification settings: whether it is on, the threshold and the phone and emails alerted.

Block, 1 operation

  • block_contactBlock contactPOSTBlocks a phone number: no messages are sent to it or received from it. Returns the blocked contact's id.

Bundle, 1 operation

  • list_balance_notification_optionsList balance notification optionsGETLists the balance thresholds accepted as alertBalance by update_balance_notification_settings.

Count, 1 operation

  • get_unread_messages_totalGet unread messages totalGETReturns the total number of unread messages across chats.

Country, 1 operation

  • list_countriesList countriesGETLists the countries TextMagic supports, as id (two-letter ISO code) and name.

Data, 1 operation

  • get_messaging_countersGet messaging countersGETReturns account totals: number of contacts, sent messages and received messages.

Email campaign, 1 operation

  • create_email_campaignCreate email campaignPOSTCreates and immediately sends an HTML email campaign to contacts, lists and email addresses, charged to the balance. Returns the campaign with status and cost.

Email lookup, 1 operation

  • lookup_emailLookup emailGETValidates one email address: syntax, DNS and mailbox checks, deliverability, risk, disposable or role address, and a suggested correction. One email per call.

Email sender, 1 operation

  • list_email_sendersList email sendersGETLists the configured email senders usable as emailSenderId in email campaigns, optionally for one domain.

Favorite, 1 operation

  • list_favoritesList favoritesGETLists favorite contacts and lists, optionally filtered by a search text. Paged with page and limit.

History, 1 operation

  • list_outbound_messages_historyList outbound messages historyGETLists the sent message history with a text query and sorting, paged by lastId (pass nextLastId from the previous answer).

Inbound, 1 operation

  • get_inbound_notification_settingsGet inbound notification settingsGETReturns the email notification settings for new inbound messages: on or off, SMS history included, HTML format and the alert emails.

Invoice, 1 operation

  • list_invoicesList invoicesGETLists the account's invoices (id, bundle, currency, VAT, payment method), paged with page and limit.

Lookup, 1 operation

  • lookup_phone_carrierLookup phone carrierGETLooks up one phone number: validity, E.164 and local formats, carrier, type (mobile or landline) and country. The answer includes the lookup cost.

Messaging, 1 operation

  • get_messaging_statsGet messaging statsGETReturns messaging statistics for a period given as Unix timestamps (start, end), in total (by=off) or one row per day, month or year: delivered, failed, rejected, received, parts, costs and rates.

Mute, 1 operation

  • mute_chatMute chatPOSTMutes or unmutes the notification sound of one chat, optionally for a number of hours.

Pin, 1 operation

  • pin_chatPin chatPOSTPins (pinned=1) or unpins (pinned=0) one chat.

Ping, 1 operation

  • pingPingGETChecks that the credentials work: returns the account's user id, a ping value and the current date and time.

Preview, 1 operation

  • get_message_previewGet message previewGETReturns the final texts (dynamic fields filled) of up to 100 messages for the given recipients and text or template, without sending.

Read, 1 operation

  • close_read_chatsClose read chatsPOSTCloses every chat that has no unread message.

Recipient, 1 operation

  • search_chats_by_recipientSearch chats by recipientGETSearches chats by recipient: contact name, list name or phone number. Paged with page and limit.

Settings, 1 operation

  • get_callback_settingsGet callback settingsGETReturns the callback URLs TextMagic posts to: outUrl (delivery status updates), inUrl (inbound messages) and the data format.

Source, 1 operation

  • list_sender_optionsList sender optionsGETLists the sender options (dedicated and shared numbers, approved sender IDs, connected carriers) usable as from in send_message, optionally for one country.

Spending, 1 operation

  • list_spendingList spendingGETLists the account's balance changes for a period given as Unix timestamps: date, resulting balance, delta, type, value and comment. Paged with page and limit.

Stat, 1 operation

  • get_message_session_statsGet message session statsGETReturns delivery counts of one session: delivered, failed, accepted, rejected, scheduled, sent and total.

Tag, 1 operation

  • create_tagCreate tagPOSTCreates a contact tag. The title is 1 to 50 characters and unique in the account. Returns the tag id, usable in create_contact and search_contacts (tagIds).

Timezone, 1 operation

  • list_timezonesList timezonesGETLists the timezones TextMagic accepts. Use an id as timezone in update_current_user, and a timezone name as sendingTimezone in send_message.

User, 1 operation

  • get_current_userGet current userGETReturns the current account: username, names, email, phone, company, balance and currency, timezone and subaccount type.

Showing the first 120 of 141 endpoints. The rest are in the product, searchable from the workflow builder and from chat.

Use TextMagic from Claude Code, Cursor or Codex

Connect TextMagic in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its TextMagic operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect TextMagic

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect TextMagic once

    Add your TextMagic connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

TextMagic integration FAQ

What can you do with the TextMagic integration?

LiveContext exposes 141 operations on TextMagic, covering delete, bulk, contact and list.

Popular integrations

Browse the whole catalog