Sinch MessageMedia integration
Sinch MessageMedia (formerly MessageMedia) is a business SMS, MMS and text-to-voice platform. Send and schedule messages, read delivery reports and replies and confirm them, check and edit the opt-out blacklist, manage contacts, contact lists and custom fields, register and verify sender IDs, find and assign dedicated numbers, manage event webhooks, read short-link click reports, run detail, insight, asynchronous and scheduled message reports (v2-preview), and build Mobile Landing Page campaigns (beta, APAC instance only). The callback signature key routes are not exposed: a signature private key is a secret. Authentication is HTTP Basic with the API key as username and the API secret as password; api_host is api.messagemedia.com (APAC instance) or eu.app.api.sinch.com (EU instance).
Say what should happen.
The workflow builds itself.
What you can do with Sinch MessageMedia
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.
Contact, 8 operations
add_contact_to_listAdd contact to listPOSTAdds one contact to a contact list. Returns the list.create_contactCreate contactPOSTCreates a contact with at least one channel (a phone number for SMS or WhatsApp), optionally in contact lists and with custom field values. Returns the contact with its id.delete_contactDelete contactDELETEDeletes a contact. Returns no body.get_contactGet contactGETReturns one contact with its channels, lists and custom field values.list_contactsList contactsGETLists contacts page by page, with optional filters on lists, ids, channels, subscription state and a free-text query (name, email, custom fields, channel ids). Page with nextPageToken.remove_contact_from_listRemove contact from listDELETERemoves one contact from a contact list (the contact itself is kept). Returns no body.update_contactUpdate contactPATCHUpdates a contact. Send only the fields to change; leave the others out to keep them. Returns the updated contact.update_contact_list_membersUpdate contact list membersPATCHAdds and removes several contacts of a contact list in one call. Returns the list.
Message, 7 operations
cancel_scheduled_messageCancel scheduled messagePUTCancels a scheduled message that has not been delivered yet, by setting its status to cancelled. Only a message whose status is scheduled can be cancelled. Returns no body.create_webhookCreate webhookPOSTCreates a webhook that calls your URL on message events (replies, opt-outs, delivery reports). The URL must answer in the HTTP 200 range; deliveries are not signed unless a signature key is set up in Sinch.delete_webhookDelete webhookDELETEDeletes a webhook. Returns no body; an unknown id answers 404.get_messageGet messageGETReturns one sent message by the message_id that send_messages returned: content, numbers, format, scheduled time, metadata and its current status (for example enroute, delivered, failed, scheduled or cancelled).list_webhooksList webhooksGETLists the account's message webhooks, page by page: url, method, encoding, events and template of each.send_messagesSend messagesPOSTSends (or schedules) up to 100 SMS, MMS or text-to-voice messages in one call; each is billed. Returns each message with its message_id and status; pass message_id to get_message or cancel_scheduled_message.update_webhookUpdate webhookPATCHUpdates a webhook. Send only the attributes to change; leave the others out to keep them. Returns the updated webhook.
Scheduled, 7 operations
create_scheduled_detail_reportCreate scheduled detail reportPOSTCreates a recurring detail report run on a cron schedule and delivered by report.delivery_options (for example by email). Returns scheduled_report_id. v2-preview API.create_scheduled_summary_reportCreate scheduled summary reportPOSTCreates a recurring summary report run on a cron schedule and delivered by report.delivery_options (for example by email). Returns scheduled_report_id. v2-preview API.delete_scheduled_reportDelete scheduled reportDELETEDeletes a scheduled report, so it stops running. Returns no body.get_scheduled_reportGet scheduled reportGETReturns one scheduled report with its label, schedule and report definition.list_scheduled_reportsList scheduled reportsGETLists the account's ACTIVE scheduled reports with their schedule and report definition. Page with page_token.update_scheduled_detail_reportUpdate scheduled detail reportPUTReplaces a scheduled detail report: label, schedule and report are all required, so read the current one with get_scheduled_report and send it back with your change.update_scheduled_summary_reportUpdate scheduled summary reportPUTReplaces a scheduled summary report: label, schedule and report are all required, so read the current one with get_scheduled_report and send it back with your change.
Assignment, 5 operations
assign_dedicated_numberAssign dedicated numberPOSTAssigns (buys) a dedicated number for the account, with a label and metadata. Dedicated numbers are billed by classification. A conflict error means the number is taken.get_number_assignmentGet number assignmentGETReturns the assignment of a dedicated number to your account, with its label and metadata.list_number_assignmentsList number assignmentsGETLists the dedicated numbers assigned to the account, with filters on number, type, classification, capability, label and sort order. Page with token from the previous answer.release_dedicated_numberRelease dedicated numberDELETEReleases a dedicated number from the account: it stops receiving and sending for you. Returns no body.update_number_assignmentUpdate number assignmentPATCHEdits the label or metadata of a dedicated number assignment. Leave a field out to keep its current value. Returns no body.
Custom field, 5 operations
create_custom_fieldCreate custom fieldPOSTCreates a contact custom field with a label, a merge tag, a maximum length and a type. Returns the field with its id.delete_custom_fieldDelete custom fieldDELETEDeletes a contact custom field. Returns no body.get_custom_fieldGet custom fieldGETReturns one contact custom field.list_custom_fieldsList custom fieldsGETLists the account's contact custom fields page by page, optionally filtered by ids, label or merge tag. Page with nextPageToken.update_custom_fieldUpdate custom fieldPATCHUpdates the label or maximum length of a custom field. Leave a field out to keep its current value.
List, 5 operations
create_contact_listCreate contact listPOSTCreates a contact list with a name and an optional alias. Returns the list with its id.delete_contact_listDelete contact listDELETEDeletes a contact list. Returns no body.get_contact_listGet contact listGETReturns one contact list.list_contact_listsList contact listsGETLists contact lists page by page, optionally filtered by ids, name or alias. Page with nextPageToken.update_contact_listUpdate contact listPATCHRenames a contact list or changes its alias. The vendor requires name on every call: send the current name back when you only change the alias.
Address, 4 operations
delete_sender_addressDelete sender addressDELETERemoves a registered sender ID that is no longer needed. A reason is required. Returns no body.get_sender_addressGet sender addressGETReturns one registered sender ID with its type, usage, countries, label, status and expiry.list_sender_addressesList sender addressesGETLists the approved sender IDs (alpha tags, own numbers, dedicated numbers) registered to the account, with filters. Page with token from the previous answer.update_sender_address_labelUpdate sender address labelPATCHChanges the label of a sender ID. Only possible for an own number (usage_type OWN_NUMBER).
Landing page, 4 operations
create_landing_pageCreate landing pagePOSTSaves a landing page (a template with its parameters) to reuse in campaigns. Returns it with its id. Beta, APAC instance only.delete_landing_pageDelete landing pageDELETEDeletes a saved landing page. Returns no body. Beta, APAC instance only.list_landing_pagesList landing pagesGETLists the saved landing pages of the account. sort_by and sort_direction must be given together or not at all. Beta, APAC instance only.update_landing_pageUpdate landing pagePATCHUpdates a saved landing page. Leave a field out to keep its current value. Beta, APAC instance only.
Blacklist, 3 operations
add_blacklisted_numbersAdd blacklisted numbersPOSTAdds up to 10 numbers to the opt-out blacklist, so messages to them are refused. Returns the numbers added.list_blacklisted_numbersList blacklisted numbersGETLists up to 100 numbers on the account's opt-out blacklist. Sinch adds a number automatically when its owner replies with an opt-out keyword. pagination.next_uri points at the next 100.remove_blacklisted_numberRemove blacklisted numberDELETERemoves one number from the opt-out blacklist, so messages to it are allowed again. One number per call. Returns no body.
Detail, 3 operations
get_link_click_detailGet link click detailGETClicks and views of one short trackable link, by its hash code, with time, user agent and IP of each.get_message_detail_reportGet message detail reportPOSTReads (does not send) a paginated report of sent and/or received messages in a time window, with filters on numbers, metadata, accounts, status and channels. v2-preview API.request_async_detail_reportRequest async detail reportPOSTStarts an asynchronous CSV report of sent and/or received messages in a time window; returns report_id. Poll get_async_report_status until DONE, then call get_async_report_download_url. v2-preview API.
Summary, 3 operations
get_campaign_summaryGet campaign summaryGETReturns event totals of a landing page campaign: total events, unique engagements and a breakdown per event type and source. Beta, APAC instance only.get_link_click_summaryGet link click summaryGETClick summary of short trackable links, filtered by metadata key and value, long URL or recipient: totals of clicks and views and one row per short URL. Needs the Short Trackable Links feature.request_async_summary_reportRequest async summary reportPOSTStarts an asynchronous summary report (totals of sent, received and billing units, grouped by group_by); returns report_id. Poll get_async_report_status until DONE, then get_async_report_download_url.
Campaign, 2 operations
create_landing_page_campaignCreate landing page campaignPOSTCreates a Mobile Landing Page campaign: a template, its parameters and the SMS that will carry the page link. Sends nothing; send it with send_landing_page_campaign. Beta, APAC instance only.get_landing_page_campaignGet landing page campaignGETReturns one landing page campaign with its template, parameters and message. Beta, APAC instance only.
Confirmed, 2 operations
confirm_delivery_reportsConfirm delivery reportsPOSTMarks delivery reports as confirmed so check_delivery_reports stops returning them. Pass the delivery_report_id values it returned. Returns no body (HTTP 202).confirm_repliesConfirm repliesPOSTMarks replies as confirmed so check_replies stops returning them. Pass the reply_id values it returned (not the message_id of the original message). Returns no body (HTTP 202).
Dedicated, 2 operations
get_dedicated_numberGet dedicated numberGETReturns one dedicated number: phone number, country, type, classification, capabilities and availability.list_dedicated_numbersList dedicated numbersGETLists dedicated numbers available to assign, filtered by country, digits, capability. A paid feature that must be enabled on the account. Page with token from the previous answer.
Field, 2 operations
list_async_detail_report_fieldsList async detail report fieldsPOSTReads the field names that request_async_detail_report accepts in its fields parameter (CSV columns), for a time window. v2-preview API.list_template_fieldsList template fieldsGETReturns the field definitions of a landing page template (field name and type), used to fill parameters and fields of a landing page or campaign. Beta, APAC instance only.
Request, 2 operations
get_sender_address_requestGet sender address requestGETReturns the status of a sender ID registration request, by the id request_sender_address returned.request_sender_addressRequest sender addressPOSTRequests registration of a sender ID: an alpha tag (ALPHANUMERIC/ALPHANUMERIC) or your own number (INTERNATIONAL/OWN_NUMBER). An own number then needs verify_sender_address_request with the code sent to it.
Async, 1 operation
export_campaign_eventsExport campaign eventsGETStarts an export of all events of a landing page campaign. The vendor documents no response body. Beta, APAC instance only.
Delivery report, 1 operation
check_delivery_reportsCheck delivery reportsGETReturns up to 100 of the oldest delivery reports not yet confirmed. Confirm the ones you processed with confirm_delivery_reports, or the same reports come back on the next call.
Download url, 1 operation
get_async_report_download_urlGet async report download urlGETReturns a temporary pre-signed download_url for the CSV of a finished (DONE) asynchronous report, with its file name, size and expiry.
Event, 1 operation
list_campaign_eventsList campaign eventsGETLists the events (views, clicks and so on) recipients generated on a landing page campaign, page by page. Beta, APAC instance only.
Insight, 1 operation
get_message_insights_reportGet message insights reportPOSTReads totals of sent, received, billing units and opt-outs in a time window from pre-calculated data, grouped by group_by values. timezone is required. v2-preview API.
Is authorised, 1 operation
check_numbers_authorisedCheck numbers authorisedGETTells for each number whether you may send to it (authorised true means it is not blacklisted). Sinch runs this check on every send anyway; use it to show the state.
Metakey, 1 operation
list_metadata_keysList metadata keysPOSTReads the metadata keys used by messages in a time window (to filter reports with metadata_key). v2-preview API.
Recipient, 1 operation
send_landing_page_campaignSend landing page campaignPOSTSends a landing page campaign to recipients: each gets an SMS with their own page (billed). Returns one recipient id per number. Beta, APAC instance only.
Reply, 1 operation
check_repliesCheck repliesGETReturns up to 100 of the oldest unconfirmed replies (inbound messages, usually answers to a message you sent). Confirm the ones you processed with confirm_replies, or they come back on the next call.
Report, 1 operation
list_async_reportsList async reportsGETLists the asynchronous reports requested by the account, with name, type, status and file size, filtered and sorted. Page with page_token from next_page_token.
Reverify, 1 operation
reverify_sender_addressReverify sender addressPOSTStarts re-verification of an own-number sender ID (usage_type OWN_NUMBER), which own numbers need periodically. Sends a new code; finish with verify_sender_address_request.
Status, 1 operation
get_async_report_statusGet async report statusGETReturns the status of an asynchronous report: REQUESTED or RUNNING (wait and call again), DONE (call get_async_report_download_url), FAILED or CANCELLED.
Template, 1 operation
list_landing_page_templatesList landing page templatesGETLists the Mobile Landing Page templates available to the account (id and name). Beta, APAC instance only.
Verify, 1 operation
verify_sender_address_requestVerify sender address requestPOSTCompletes registration of an own number as sender ID by submitting the verification code that was sent to that number.
Use Sinch MessageMedia from Claude Code, Cursor or Codex
Connect Sinch MessageMedia in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Sinch MessageMedia operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Sinch MessageMedia
- Create your workspace
Sign up free. Nothing to install.
- Connect Sinch MessageMedia once
Add your Sinch MessageMedia connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- 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.
Sinch MessageMedia integration FAQ
What can you do with the Sinch MessageMedia integration?
LiveContext exposes 78 operations on Sinch MessageMedia, covering contact, message, scheduled and assignment.
