WorksCode and developmentDatabases and data
TextKit
SMS for developers: send and receive texts, verify phones, and buy US and Canada numbers.
https://mcp.jointextkit.comclaude mcp add --transport http textkit https://mcp.jointextkit.comFor Cursor and other clients
{
"mcpServers": {
"textkit": {
"type": "http",
"url": "https://mcp.jointextkit.com"
}
}
}Watch out
Has tools that change things: 81 of them
The server itself marks these tools as deleting or overwriting data (destructiveHint): have the agent ask you before it calls them.
- Test
- Works: Handshake succeeded
- Tools
- 152 tools
- Handshake
- 1.4 s
- Transport
- streamable-http · 2025-03-26
- Tested
- 6 November 2026
- Registry name
com.jointextkit/textkitv1.0.2- Listed
- 30 October 2026
- Updated
- 30 October 2026
The last 1 tests
| When | Result | Time |
|---|---|---|
| 2026-11-06 12:16 UTC | Handshake succeeded | 1.4 s |
The 152 tools it listed
"Read only" and "Changes data" are the server's own marks. Underlined parameters are required.
activate_automationChanges dataActivate automation
Turn an automation on, so tracked events start runs. With a live number it texts real people. With no `from`, a number approved for its `category` must exist or `issues` says what is missing; `sender` shows the numbers it will use.
idadd_to_listChanges dataAdd to list
Add contacts to a list by contact_ids and/or phone_numbers (up to 1,000; numbers must already be contacts).
idcontact_idsphone_numbersassign_number_to_customerChanges dataAssign number to customer
Platforms: attribute a number (and its messages and usage) to one of your customers, or clear it with customer_id null.
phone_numbercustomer_idbulk_purchase_numbersChanges dataBulk purchase numbers
Buy several numbers in one area code at once (e.g. for a sender pool). Live numbers are billed monthly each.
area_codequantitypool_idtagsidempotency_keybulk_update_contactsChanges dataBulk update contacts
Add tags to, remove tags from, or delete many contacts by id.
actionidstagsbulk_update_numbersChanges dataBulk update numbers
Act on many numbers at once: tag, untag, label, add to or remove from a pool, or release. Releasing cannot be undone.
idsactionpool_idtagslabelconfirmcancel_automation_runChanges dataCancel automation run
Cancel a run in progress.
idrun_idcancel_batchChanges dataCancel batch
Cancel a batch. Messages already sent stay sent.
idcancel_scheduled_messageChanges dataCancel scheduled message
Cancel a scheduled message before it sends.
idcheck_verificationChanges dataCheck verification
Check a verification code submitted by a user, by the phone or email it went to. Returns {verified, status, channel, charged}. Billed only when verified is true.
phoneemailcodeclone_number_poolChanges dataClone number pool
Copy a sender pool under a new name.
idnameconnect_integrationChanges dataConnect integration
Connect a tool so its people sync in as contacts, in a list of their own, every 6 hours: Mixpanel (projectId, username, secret = a service account; sourceId = cohort id), Amplitude (apiKey, secretKey, sourceId), HubSpot (accessToken), Shopify (shopDomain, accessToken), Salesforce, or a webhook. Takes the event or property that shows people agreed to texts (consentEvent / consentField) and the property that holds their phone (phoneField). Credentials are proved with one read, sealed, and never returned. Mixpanel also takes eventTriggers, which turn Mixpanel events into TextKit events that start, end or branch automations; `warnings` names mapped events with no volume in 7 days.
providermodenamesourceIdprojectIdregionusernamesecretapiKeysecretKeyaccessTokenshopDomaininstanceUrlsfObjectclientIdclientSecretphoneFieldconsentFieldconsentEventphoneEventphoneEventPropertyexportEventseventTriggerscreate_api_keyChanges dataCreate api key
Create an API key for an app you are building, to store as a secret in its environment (for example TEXTKIT_API_KEY) so the app can send texts itself. Same mode (test or live) as this connection; optional scopes limit it. The secret is returned once; the account owner is emailed.
namescopescreate_automationChanges dataCreate automation
Create a triggered text flow (as a draft): when trigger.event is tracked, run steps such as send_sms, wait, wait_for_event, and condition branches. Example: on cart_abandoned, wait 3600s, then if checkout_completed was not received send a reminder. A send_sms step with send_time: "optimal_user_time" and max_wait_seconds (60 to 86400, required) waits for the hour that person usually replies or clicks, 10am their time with no history, inside quiet hours: recommend it for marketing and lifecycle texts, leave it off anything time-sensitive, and it is refused for one-time codes and order or shipping texts. For events that repeat, trigger.cooldown_seconds stops the same person starting it again for that long. Merge fields like {{plan}} fill from the trigger event's properties; `issues` names any no tracked event carries. Leave out `from` and TextKit picks a number approved for `category` (marketing, transactional for alerts, otp for codes) when it sends; `sender` shows the numbers, and `issu
namefromcategorytopic_idtriggerstepscreate_customerChanges dataCreate customer
Platforms sending for other businesses: create a customer to attribute numbers, messages and usage to.
nameexternal_idmetadatacreate_linkChanges dataCreate link
Make a tracked short link to copy into a text, ad, email or anywhere else: returns short_url. The same url again returns the same link. Suggest this whenever someone wants to know whether a link gets clicked or leads to sales. A link inside a text needs only shorten_links: true on the send.
urlnamecreate_link_domainChanges dataCreate link domain
Add a subdomain of the user's own (links.example.com) for short links. Returns two DNS records (CNAME and TXT) the user adds at their DNS host; then verify the domain. Optional: without one, tracked links use our domain.
domaincreate_listChanges dataCreate list
Create a list: a fixed group of contacts (Audience → Lists). Membership is set by hand, unlike a segment, which follows rules.
namedescriptioncreate_number_poolChanges dataCreate number pool
Create a sender pool from numbers you own.
namedescriptionroutingcreate_scheduleChanges dataCreate schedule
Send the same text to one number every day, week or month at a local time (e.g. a weekly reminder). Every occurrence runs the usual send checks.
tofrombodyrepeatstart_dateend_datemax_occurrencescategoryquiet_hoursidempotency_keycreate_segmentChanges dataCreate segment
Save an audience (a segment, a cohort): it appears in the console under Audience → Segments, and broadcasts can be sent to it. Everyone who can be texted: one rule, status is subscribed. Contacts matching all (or any) of up to 10 rules. Attributes: tags, contact fields, custom fields (field = "field", key = the name), opt-in status, topic, import, created_at. Behaviour: last_message_at, last_reply_at, batch (key = batch id; value included, sent, failed, skipped or replied) and event (key = a tracked event name). Times take an ISO date or a window like 7d. It is evaluated live each time it is used, so a batch or list sent to it reaches whoever matches then.
namedescriptionmatchrulescreate_templateChanges dataCreate template
Save a message template. Merge tags: {{first_name}}, {{name}}, {{phone}}, {{field:<custom>}}, and per-recipient variables.
namebodycreate_topicChanges dataCreate topic
Create a subscription topic, so people can opt out of one kind of message (e.g. promotions) and keep others.
namedescriptioncreate_webhookChanges dataCreate webhook
Send events (message.received, message.delivered, message.opted_out, ...) to a URL: your app, a CRM, an automation tool. Returns the signing secret once.
urleventsdescriptionnumbersdelete_automationChanges dataDelete automation
Delete an automation.
iddelete_contactChanges dataDelete contact
Delete a contact. Messages, consent records, and topic preferences for the number are kept.
iddelete_customerChanges dataDelete customer
Delete a customer.
iddelete_link_domainChanges dataDelete link domain
Remove a branded link domain. Every short link already sent on it stops working.
iddelete_listChanges dataDelete list
Delete a list (its contacts stay).
iddelete_messageChanges dataDelete message
Delete a finished message (delivered, failed or received) and every copy of its text, for a privacy request. Opt-out records and billing are kept. Cannot be undone.
iddelete_number_poolChanges dataDelete number pool
Delete a sender pool. Its numbers are kept.
iddelete_scheduleChanges dataDelete schedule
Delete a recurring schedule.
iddelete_segmentChanges dataDelete segment
Delete a segment. Contacts are not touched.
iddelete_templateChanges dataDelete template
Delete a template.
iddelete_topicChanges dataDelete topic
Delete a topic you created (built-in topics stay).
iddelete_webhookChanges dataDelete webhook
Delete a webhook endpoint.
iddisconnect_integrationChanges dataDisconnect integration
Disconnect a tool: its credentials and its list are deleted; the contacts stay with their consent.
idexport_consentRead onlyExport consent
The suppression list, or the full consent ledger with opt-in proof, as CSV text.
typeexport_csvRead onlyExport csv
Export as CSV text for analysis: messages, deliveries, events, opt_outs, webhook_deliveries, usage, usage_monthly, audit_log or credit_history. At most 50,000 rows; narrow the date range with from and to.
kindfromtostatusblocked_reasondirectionnumberto_numberfrom_numbercustomer_idfailure_codebatchqtypeendpoint_idokmonthsactionactortarget_typecreated_aftercreated_beforeexport_numbersRead onlyExport numbers
Your numbers as CSV text.
tagpoolmodeqfallback_verificationChanges dataFallback verification
The text did not arrive: email a new code for the same pending verification (one id, one charge). The emailed code replaces the texted one and is checked by the email address, which it proves (not the phone). Once per verification.
idemailchanneluser_ipforget_identityChanges dataForget identity
Privacy erasure: forget the phone number linked to a user_id, so its tracked events stop reaching automations.
user_idget_automationRead onlyGet automation
Retrieve an automation with its trigger and steps.
idget_automation_runRead onlyGet automation run
Retrieve one run with its step-by-step timeline.
idrun_idget_balanceRead onlyGet balance
Prepaid credit balance and auto-recharge setting.
get_batchRead onlyGet batch
Retrieve a batch with its progress counts.
idget_batch_resultsRead onlyGet batch results
Results of a batch: delivered, failed, pending, replies, opt-outs (stops), spend, and failures grouped by reason.
idget_consentRead onlyGet consent
Whether a number is opted in or out, per registration, with its full consent history and proof.
phoneget_contactRead onlyGet contact
Retrieve a contact.
idget_contact_topicsRead onlyGet contact topics
A contact's subscription to each topic.
idget_customerRead onlyGet customer
Retrieve a customer.
idget_customer_usageRead onlyGet customer usage
A customer's messages, verifications and spend for a period.
idstartendget_deliverabilityRead onlyGet deliverability
Delivery rates by day, destination carrier, or sending number.
group_bystart_dateend_dateget_integrationRead onlyGet integration
One connected tool and its last sync.
idget_integration_eventsRead onlyGet integration events
Confirm the events behind automations: for a Mixpanel integration, each mapped event with its Mixpanel source events and their 7-day volume, how many reached TextKit and when the last did, and which automations start on, wait for or check it. `missing` names events automations rely on that nothing sends. project_events: true also lists every Mixpanel event name with its 7-day volume, to choose what to map.
idproject_eventsget_link_domainRead onlyGet link domain
One short-link domain, with the DNS records it needs.
idget_listRead onlyGet list
Retrieve a list and its contact count.
idget_messageRead onlyGet message
Retrieve a message by its msg_... id, with its delivery timeline.
idget_numberRead onlyGet number
Retrieve one of your numbers: status, sender registration, tags, pools, customer.
phone_numberget_number_poolRead onlyGet number pool
Retrieve a sender pool and its numbers.
idget_registrationRead onlyGet registration
A registration with its checks, status, and linked numbers.
idget_scheduleRead onlyGet schedule
Retrieve a recurring schedule with its recent occurrences.
idget_scheduled_messageRead onlyGet scheduled message
Retrieve a pending scheduled message.
idget_segmentRead onlyGet segment
Retrieve a segment and its rules.
idget_spend_limitRead onlyGet spend limit
The monthly spend limit and this month's estimated spend.
get_templateRead onlyGet template
Retrieve a template.
idget_toll_free_verificationRead onlyGet toll free verification
A toll-free verification: status, numbers, the form, what is missing (problems), and the carriers' reason when it was rejected.
idget_topicRead onlyGet topic
Retrieve a topic.
idget_usageRead onlyGet usage
Usage by month, today's counters, and plan limits.
monthsget_verificationRead onlyGet verification
Retrieve a verification by id: its status and attempts (never the code).
idget_webhookRead onlyGet webhook
Retrieve a webhook endpoint.
idimport_contactsChanges dataImport contacts
Create or update up to 500 contacts per call, matched by phone_number. Attributes go in fields (up to 20 strings, e.g. plan) for segments and {{field:name}} merge tags; tags group contacts. opt_in carries consent evidence (status: false records an opt-out). import_id from the first response groups several calls; dry_run: true returns what would change and writes nothing.
contactscampaign_iddry_runcheck_line_typesimport_idnameimport_opt_outsChanges dataImport opt outs
Bring a suppression list over from another provider or tool (up to 500 numbers per call), so people who opted out there are never texted here.
phone_numberslink_number_to_registrationChanges dataLink number to registration
Attach a number to an approved 10DLC registration so it can send that registration's traffic.
phone_numberregistration_idlist_api_keysRead onlyList api keys
List the active API keys of this mode (never the secrets).
list_audit_logsRead onlyList audit logs
Who changed what on the account (keys, team, webhooks, spend limit, numbers, consent, settings), newest first.
limitcursoractionactortarget_typecreated_aftercreated_beforelist_automation_runsRead onlyList automation runs
List an automation's runs, newest first.
idlimitcursorlist_automationsRead onlyList automations
List automations.
list_batch_recipientsRead onlyList batch recipients
List a batch's recipients with each one's status.
idstatuslimitcursorlist_batchesRead onlyList batches
List batches (broadcasts), newest first.
limitcursorstatuslist_contactsRead onlyList contacts
List contacts, newest first. Filter by tag, segment_id, list_id, exact phone_number, or a free-text q (name, email, company).
limitcursortagphone_numbersegment_idlist_idqlist_conversionsRead onlyList conversions
The latest 100 conversions, newest first.
list_customersRead onlyList customers
List your customers.
limitcursorexternal_idlist_eventsRead onlyList events
List recent events (message.sent/delivered/failed/received, number.purchased/released, ...), newest first.
limitcursortypelist_integrationsRead onlyList integrations
The connected tools: status, settings, last sync (found, added, opted out), and their list. No credentials.
list_link_domainsRead onlyList link domains
Your short-link domains and their status (pending_dns, dns_verified, active). Optional: a message sent with shorten_links: true uses the active one, else <your business>.txtkto.com once the business is verified, or txtkto.com before that.
list_linksRead onlyList links
Every tracked destination with its texts, clicks, conversions and value. The answer to "which link worked?".
list_list_contactsRead onlyList list contacts
Page through a list's contacts, most recently added first.
idlimitcursorlist_listsRead onlyList lists
List contact lists with their contact counts.
list_messagesRead onlyList messages
List your messages, newest first. Filter by number, direction, status, failure reason, date, batch schedule or customer.
limitcursornumbertofromstatusblocked_reasonfailure_codedirectioncreated_aftercreated_beforecustomer_idschedule_idtaglist_number_poolsRead onlyList number pools
List sender pools.
list_number_requestsRead onlyList number requests
Open short-code and toll-free requests.
list_numbersRead onlyList numbers
List the phone numbers on your account.
customer_idtagpoolmodeqlist_opt_outsRead onlyList opt outs
List opted-out numbers (the suppression list).
limitcursorlist_registration_submissionsRead onlyList registration submissions
The filed copies of a 10DLC registration, newest first.
idlist_registrationsRead onlyList registrations
List 10DLC brand and campaign registrations and their status. Marketing from a local number needs an approved one.
list_scheduled_messagesRead onlyList scheduled messages
List single messages scheduled for later and not yet sent.
list_schedulesRead onlyList schedules
List recurring schedules.
list_segmentsRead onlyList segments
List saved segments.
list_templatesRead onlyList templates
List message templates.
list_toll_free_verificationsRead onlyList toll free verifications
List toll-free verifications and their status (draft, in_review with us, submitted to the carriers, verified, rejected). A toll-free number texts the public only once verified.
statuslimitcursorlist_topicsRead onlyList topics
List subscription topics.
list_webhook_deliveriesRead onlyList webhook deliveries
Delivery attempts to your webhook endpoints, with response status codes.
endpoint_idevent_idlimitcursorlist_webhooksRead onlyList webhooks
List webhook endpoints.
lookup_phoneRead onlyLookup phone
Look up line type (mobile, landline, VoIP) and carrier for any US/Canada number.
phonepause_automationChanges dataPause automation
Pause an automation: no new runs start, and runs in progress wait where they are until it is activated again.
idpause_batchChanges dataPause batch
Pause a sending or scheduled batch.
idplan_campaignRead onlyPlan campaign
Every input a send needs, as questions to ask the person, with this account's options for each. kind automation: the event that starts it (tracked events with their properties, and the Mixpanel events mapped to them), filters, how long after the event to text, right away or optimal user time, the event that ends it, follow-ups, repeats, who gets it, the message, link, sender and topic. kind broadcast: audience, who to leave out, message, when, sender, topic, follow-up. Also who never gets the text (exclusions) and what is missing (gaps). Changes nothing.
kindplan_importRead onlyPlan import
Find out where an audience is and the ways to bring it in. Without source: questions to ask the person (where their people are, which group, what they can sign in to, whether consent was recorded, once or kept in sync) and the kinds of source known. With source (their words, e.g. "Mixpanel", "Shopify", "our Postgres users table", "a Google Sheet"): the ways in, best first, each with steps and a console link: an integration already syncing it, another connected tool that can read it, a 6-hourly sync connected with their key here or in the console, a push to an ingest URL, a script with a key from their environment, an export, or a CSV upload. Changes nothing.
sourceplan_taskRead onlyPlan task
The questions behind anything a person does here, with this account's options for each: send a text, buy or release a number, register for 10DLC, verify a toll-free number, request a short code, verification codes, a recurring text, a segment, template, list, topic, connecting a tool, a webhook, an API key, a link domain, a spend limit, a number pool, importing opt-outs, automations, broadcasts. task: a key or the person's words ("buy a number"); omit it for the list. Each question names the fields it fills; inputs lists every field the API takes; rules, gaps, and person_submits when the person files it in the console. Changes nothing.
taskpreview_automationRead onlyPreview automation
See an automation's texts exactly as they would go out, without sending: works on drafts. Pass sample event properties (e.g. {"amount": 9.99}) and optionally `to` for a contact's merge fields. Returns each send_sms step's final text (brand and opt-out wording added as we would), segments, encoding, estimated cost, merge fields that would come out empty, and, for an optimal-user-time step with `to`, next_send: when it would go for that person and why.
idpropertiestopreview_segmentRead onlyPreview segment
Count the contacts a segment matches right now and how many a broadcast would reach (opted-out contacts removed, and with topic_id those unsubscribed from it). `notes` says when an event rule names an event never tracked.
idtopic_idpurchase_numberChanges dataPurchase number
Buy a phone number for your account (free sandbox numbers with test keys). Live numbers are billed monthly.
phone_numbercustomer_idregistration_ididempotency_keyquery_audienceChanges dataQuery audience
Count a cohort without saving anything (nothing appears in the console): run up to 10 segment rules now and get the counts (matched, opted out, eligible to text) and the first contacts. Examples: replied in the last 7 days (last_reply_at after 7d); got a batch and did not reply (batch sent, and batch replied with is_not); started checkout but never purchased (event exists, event not_exists); VIPs not texted in 30 days. Same rule fields as a saved segment. Everyone eligible to text: one rule, status is subscribed.
matchrulestopic_idlimitrecommend_messageRead onlyRecommend message
Which text should we send? Ranked SMS copy for a goal (abandoned_cart, welcome, winback, failed_payment, trial, promo, ... or any) by expected revenue per message, each with its evidence: the factors that moved its score, the closest published SMS-only case studies with source links, and how much comes from this account's own sends (clicks, STOPs, revenue from tracked events). Pass your own drafts in `candidates` to score them against the generated ones. Only uses the offer, code and deadline you give it. Sends and saves nothing.
industrycompany_typegoalaudiencebrandproductoffercodedeadlinelinkfirst_namefirst_messagecandidateslimituse_historyrecord_conversionChanges dataRecord conversion
Report a sale or sign-up from someone who came through a tracked link. click_id is the tk value on the landing page's URL; value_cents is what it was worth; external_id (an order id) stops a retry counting twice.
click_idvalue_centsnameexternal_idredact_messageChanges dataRedact message
Empty a finished message's text and media everywhere it is kept, keeping its status, price and timeline (redacted_at is set). Cannot be undone.
idrelease_numberChanges dataRelease number
Release a number you own. It cannot be got back.
phone_numberremove_from_listChanges dataRemove from list
Remove contacts from a list (they stay contacts).
idcontact_idsphone_numbersreplay_eventChanges dataReplay event
Send an event again to one webhook endpoint (after fixing the receiver).
idendpoint_idreplay_failed_webhooksChanges dataReplay failed webhooks
Re-send every event that failed to reach a webhook endpoint in a window (default the last 24 hours, up to 7 days), after fixing the receiver.
idsinceuntilrequest_short_codeChanges dataRequest short code
Ask our team for a short code (or a toll-free number they set up). Provisions nothing by itself; carriers take 8-12 weeks to approve a short code.
typebusiness_namemonthly_volumeuse_caseresume_batchChanges dataResume batch
Resume a paused batch.
idretry_batchChanges dataRetry batch
Retry a batch's failed recipients.
idrevoke_api_keyChanges dataRevoke api key
Revoke an API key of this mode. Immediate and permanent: anything using it stops working.
idrotate_webhook_secretChanges dataRotate webhook secret
Replace a webhook endpoint's signing secret (returned once). expire_previous_in keeps the old one signing for that many seconds so the receiver can switch without dropping events.
idexpire_previous_insearch_available_numbersRead onlySearch available numbers
Search purchasable numbers by area code (default 415).
area_codesend_batchChanges dataSend batch
Send one message to many people (a broadcast or campaign): pick recipients by segment_id, tags, contact_ids, or an explicit recipients list. Opted-out numbers, numbers without marketing consent, and people unsubscribed from topic_id are removed before sending. dry_run: true sends nothing and returns the count, cost, rejected rows and consent. scheduled_at sends at one instant; send_at_local (like 2026-11-10T17:00) sends at that time on each person's own clock.no_opt_in (recipients the send will skip for having no opt-in). Leave out `from` and TextKit picks a number approved for `category` (marketing unless you say otherwise), one per recipient; `sender` shows them, and with none approved it answers 400 and sends nothing. scheduled_at sends later (up to 30 days). shorten_links: true tracks link clicks: suggest it whenever the text has a link. Each recipient can carry external_id (their Mixpanel distinct_id) so the text's events land on their Mixpanel profile. With a live key it texts re
frombodynamerecipientstagscontact_idssegment_idlist_idcategoryquiet_hourstopic_idshorten_linksscheduled_atsend_at_localdry_runcheck_line_typessend_messageChanges dataSend message
Send one SMS from one of your numbers. Set category "marketing" for promotions (the opt-in check applies) and scheduled_at to send later. Quiet hours apply to every message: outside 8am-9pm (narrower in some states) in the recipient's local time a marketing message is refused and anything else is held until 9am, except one-time codes and replies within 4 hours of their text. In sandbox (test keys), delivery is simulated: +15005550006 delivers, +15005550002 fails, +15005550007 is filtered as spam, +15005550013 delivers after a delay, +15005550016 has no opt-in (see /docs/sandbox).
tofrombodycustomer_idscheduled_atcategoryquiet_hoursshorten_linkstagsconsentmediastatus_callbackidempotency_keysend_verificationChanges dataSend verification
Send a one-time verification code (OTP) to a phone number by text, or to an email address with channel "email". TextKit generates the code, handles expiry (10 min) and attempt limits (5), and blocks SMS-pumping and email-bombing abuse.
channelphoneemailapp_nameuser_ipfromcustomer_ididempotency_keyset_consentChanges dataSet consent
Record an opt-in or opt-out from your own system (CRM, checkout, a form). An opt-in for a marketing registration needs proof (source, when, the page).
phonestatusnotecampaign_idproofset_contact_topicChanges dataSet contact topic
Subscribe a contact to a topic, or unsubscribe them (e.g. "promotions" vs "order updates").
idtopicsubscribedsourceset_spend_limitChanges dataSet spend limit
Set or remove the monthly spend cap and its alert thresholds. Live sends over the cap are refused.
monthly_limit_usdalert_thresholdssimulate_inboundChanges dataSimulate inbound
Sandbox only: simulate an inbound SMS to one of your test numbers (emits message.received; STOP, START and HELP act as for real).
tofrombodysync_integrationChanges dataSync integration
Sync a connected tool now (up to 6 times an hour) and get what changed.
idtest_automationChanges dataTest automation
Text an automation's messages to your own verified phone or a verified recipient now, skipping waits and conditions, without activating it (drafts work). Pass sample event properties; `steps` sends only those step ids. No run starts and stats do not change. Texts from a live number are real and billed.
idtofrompropertiesstepsidempotency_keytest_webhookChanges dataTest webhook
Send a signed test.ping to a webhook endpoint and see what it answered.
idtrack_eventChanges dataTrack event
Record something a customer did (e.g. signed_up, cart_abandoned, trial_ending), by user_id and/or phone. It starts or advances any active automation listening for that event. external_id (their Mixpanel distinct_id, when not user_id) puts the texts it starts on their Mixpanel profile.
eventuser_idexternal_idphonepropertiesidempotency_keyupdate_automationChanges dataUpdate automation
Edit an automation (name, sender or `category`, trigger incl. trigger.cooldown_seconds, or steps). `steps` replaces every step; `step` replaces just the one with its id. Pass `if_updated_at` (the updated_at you read): an edit made by someone else since then answers 409 instead of being overwritten.
idnamefromcategorytopic_idtriggerstepsstepif_updated_atupdate_contactChanges dataUpdate contact
Update a contact. Only the inputs you pass change; tags and fields replace the whole list or map.
idphone_numbernametagsfieldsnotesfirst_namelast_nameemailcompanystatesourceupdate_customerChanges dataUpdate customer
Rename a customer or change its external_id or metadata.
idnameexternal_idmetadataupdate_integrationChanges dataUpdate integration
Rename, pause or resume (status), or change an integration's settings or credentials (left-out credentials keep the stored ones). eventTriggers (Mixpanel) maps Mixpanel events to TextKit events; exportEvents: false stops sending text events to Mixpanel (on by default); changing only those does not re-test credentials or resync.
idnamestatussourceIdphoneFieldphoneEventphoneEventPropertyexportEventseventTriggersconsentFieldconsentEventusernamesecretapiKeysecretKeyaccessTokenupdate_listChanges dataUpdate list
Rename a list or change its description.
idnamedescriptionupdate_number_poolChanges dataUpdate number pool
Rename a sender pool or change its numbers.
idnamedescriptionroutingupdate_scheduleChanges dataUpdate schedule
Pause (active: false) or resume (active: true) a recurring schedule.
idactiveupdate_segmentChanges dataUpdate segment
Rename a segment or replace its rules.
idnamedescriptionmatchrulesupdate_templateChanges dataUpdate template
Rename or edit a template.
idnamebodyupdate_topicChanges dataUpdate topic
Rename or describe a topic.
idnamedescriptionupdate_webhookChanges dataUpdate webhook
Change a webhook endpoint: URL, events, or turn it off (active: false).
idurleventsactivedescriptionnumbersupsert_contactChanges dataUpsert contact
Create a contact, or update the existing one with the same phone_number.
phone_numbernametagsfieldsnotesfirst_namelast_nameemailcompanystatesourceopt_inverify_link_domainChanges dataVerify link domain
Check a link domain's DNS records now. When both are found it is turned on (active) at once.
idwait_for_eventsRead onlyWait for events
Wait up to 25 seconds for the next events after a cursor (a reply, a delivery receipt), then return them.
cursortimeout
Is this yours?
Claim it to hear the moment it breaks, correct this page and add your own ways to use it.
A test is the handshake and the tool list: no tool was called. Names and descriptions are as listed by whoever registered the server; we haven't checked them.