TextKit

com.jointextkitPublished by jointextkit.comOfficial publisherv1.0.2Updated Oct 30, 2026

SMS for developers: send and receive texts, verify phones, and buy US and Canada numbers.

VerifiedStreamable HTTPWeb executableCommunication & CollaborationBusiness & Commerce

Overview

AI-generated overview

TextKit is a remote MCP server for programmable SMS: send and receive texts, verify phone numbers, buy US/Canada numbers, and manage contacts and campaigns.

What you can do
  • Send, list, retrieve, delete or redact SMS messages, including scheduled marketing texts and one-time verification codes with check and email fallback
  • Search, purchase, release, tag, pool and export phone numbers, and look up line type and carrier
  • Create, update, list and delete contacts, lists, topics and imports, with consent and opt-out fields
  • Query audiences, build segments, run broadcasts and automations, and review batch results, deliverability and usage
  • Plan imports and tasks, connect integrations such as Mixpanel, HubSpot or Shopify, and create API keys
When to use it
Useful when an assistant should send or receive texts, run phone or email verification codes, provision US/Canada numbers, or text an imported audience from another tool. Also fits teams that want an agent to draft and dry-run campaigns before sending.
Requirements
Remote streamable HTTP endpoint; no local package. Authentication by OAuth sign-in or an Authorization Bearer API key obtained from the TextKit console; test keys run in a sandbox. A TextKit account is needed, and live numbers and sends are billed.
Before you install
Sending texts, buying numbers, registering 10DLC or toll-free numbers, creating API keys and deleting or redacting messages all change the account and cost money; live numbers are billed monthly and verification is charged when verified. Deletes, redactions and number releases cannot be undone. The server asks for API keys or service accounts for third-party integrations, and contacts with consent data are uploaded to TextKit.

Installation

In SourceWeft

  1. Open TextKit in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.jointextkit%2Ftextkit/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "textkit": {
      "type": "http",
      "url": "https://mcp.jointextkit.com/"
    }
  }
}

README

TextKit MCP server

TextKit is an SMS API for developers. Its remote MCP server lets an agent send and receive SMS, verify phone numbers, buy numbers, load contacts, build segments, and run broadcasts and automations.

Cline

Add to cline_mcp_settings.json:

json
{  "mcpServers": {    "textkit": {      "type": "streamableHttp",      "url": "https://mcp.jointextkit.com",      "headers": { "Authorization": "Bearer ssms_sk_test_..." },      "disabled": false,      "autoApprove": []    }  }}

Get a key at jointextkit.com/console. Test keys (ssms_sk_test_...) run in the sandbox. Step-by-step agent instructions: llms-install.md.

Any other MCP client

json
{  "mcpServers": {    "textkit": {      "url": "https://mcp.jointextkit.com",      "headers": { "Authorization": "Bearer ssms_sk_test_..." }    }  }}

Clients with OAuth (Claude, Cursor, Gemini CLI) can drop headers and sign in instead.

REST API

Base URL https://api.jointextkit.com/v1, OpenAPI at https://jointextkit.com/api/v1/openapi.yaml.

Source: README.md at commit 6cdf038

Tools

148

send_message

Send 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 (8pm in Florida, Maryland and Oklahoma) in the recipient's local time a marketing message is refused and anything else is held until 8am, 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).

Parameterstorequiredbodyrequiredfromtagsmediaconsentcategorycustomer_idquiet_hoursscheduled_atshorten_linksidempotency_key+1 more

get_message

Get message

Retrieve a message by its msg_... id, with its delivery timeline.

Parametersidrequired

delete_message

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

Parametersidrequired

redact_message

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

Parametersidrequired

list_messages

List messages

List your messages, newest first. Filter by number, direction, status, failure reason, date, batch schedule or customer.

Parameterstotagfromlimitcursornumberstatusdirectioncustomer_idschedule_idfailure_codecreated_after+2 more

send_verification

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

Parametersfromemailphonechanneluser_ipapp_namecustomer_ididempotency_key

check_verification

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

Parameterscoderequiredemailphone

fallback_verification

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

Parametersidrequiredemailrequiredchanneluser_ip

list_numbers

List numbers

List the phone numbers on your account.

Parametersqtagmodepoolcustomer_id

request_short_code

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

Parameterstyperequireduse_caserequiredbusiness_namerequiredmonthly_volumerequired

list_number_requests

List number requests

Open short-code and toll-free requests.

Takes no parameters.

search_available_numbers

Search available numbers

Search purchasable numbers by area code (default 415).

Parametersarea_code

purchase_number

Purchase number

Buy a phone number for your account (free sandbox numbers with test keys). Live numbers are billed monthly.

Parameterscustomer_idphone_numberrequiredidempotency_keyregistration_id

release_number

Release number

Release a number you own. It cannot be got back.

Parametersphone_numberrequired

lookup_phone

Lookup phone

Look up line type (mobile, landline, VoIP) and carrier for any US/Canada number.

Parametersphonerequired

simulate_inbound

Simulate inbound

Sandbox only: simulate an inbound SMS to one of your test numbers (emits message.received; STOP, START and HELP act as for real).

Parameterstobodyrequiredfromrequired

list_events

List events

List recent events (message.sent/delivered/failed/received, number.purchased/released, ...), newest first.

Parameterstypelimitcursor

get_verification

Get verification

Retrieve a verification by id: its status and attempts (never the code).

Parametersidrequired

get_number

Get number

Retrieve one of your numbers: status, sender registration, tags, pools, customer.

Parametersphone_numberrequired

bulk_purchase_numbers

Bulk purchase numbers

Buy several numbers in one area code at once (e.g. for a sender pool). Live numbers are billed monthly each.

Parameterstagspool_idquantityrequiredarea_coderequiredidempotency_key

assign_number_to_customer

Assign number to customer

Platforms: attribute a number (and its messages and usage) to one of your customers, or clear it with customer_id null.

Parameterscustomer_idrequiredphone_numberrequired

bulk_update_numbers

Bulk update numbers

Act on many numbers at once: tag, untag, label, add to or remove from a pool, or release. Releasing cannot be undone.

Parametersidsrequiredtagslabelactionrequiredconfirmpool_id

export_numbers

Export numbers

Your numbers as CSV text.

Parametersqtagmodepool

list_number_pools

List number pools

List sender pools.

Takes no parameters.

create_number_pool

Create number pool

Create a sender pool from numbers you own.

Parametersnamerequiredroutingdescription

get_number_pool

Get number pool

Retrieve a sender pool and its numbers.

Parametersidrequired

update_number_pool

Update number pool

Rename a sender pool or change its numbers.

Parametersidrequirednameroutingdescription

delete_number_pool

Delete number pool

Delete a sender pool. Its numbers are kept.

Parametersidrequired

clone_number_pool

Clone number pool

Copy a sender pool under a new name.

Parametersidrequiredname

import_contacts

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

Parametersnamedry_runcontactsrequiredimport_idcampaign_idcheck_line_types

plan_import

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

Parameterssource

upsert_contact

Upsert contact

Create a contact, or update the existing one with the same phone_number.

Parametersnametagsemailnotesstatefieldsopt_insourcecompanylast_namefirst_namephone_numberrequired

list_contacts

List contacts

List contacts, newest first. Filter by tag, segment_id, list_id, exact phone_number, or a free-text q (name, email, company).

Parametersqtaglimitcursorlist_idsegment_idphone_number

get_contact

Get contact

Retrieve a contact.

Parametersidrequired

update_contact

Update contact

Update a contact. Only the inputs you pass change; tags and fields replace the whole list or map.

Parametersidrequirednametagsemailnotesstatefieldssourcecompanylast_namefirst_namephone_number

delete_contact

Delete contact

Delete a contact. Messages, consent records, and topic preferences for the number are kept.

Parametersidrequired

bulk_update_contacts

Bulk update contacts

Add tags to, remove tags from, or delete many contacts by id.

Parametersidsrequiredtagsactionrequired

set_contact_topic

Set contact topic

Subscribe a contact to a topic, or unsubscribe them (e.g. "promotions" vs "order updates").

Parametersidrequiredtopicrequiredsourcesubscribedrequired

create_list

Create list

Create a list: a fixed group of contacts (Audience → Lists). Membership is set by hand, unlike a segment, which follows rules.

Parametersnamedescription

list_lists

List lists

List contact lists with their contact counts.

Takes no parameters.

get_list

Get list

Retrieve a list and its contact count.

Parametersidrequired

update_list

Update list

Rename a list or change its description.

Parametersidrequirednamedescription

delete_list

Delete list

Delete a list (its contacts stay).

Parametersidrequired

list_list_contacts

List list contacts

Page through a list's contacts, most recently added first.

Parametersidrequiredlimitcursor

add_to_list

Add to list

Add contacts to a list by contact_ids and/or phone_numbers (up to 1,000; numbers must already be contacts).

Parametersidrequiredcontact_idsphone_numbers

remove_from_list

Remove from list

Remove contacts from a list (they stay contacts).

Parametersidrequiredcontact_idsphone_numbers

create_segment

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

Parametersnamematchrulesdescription

list_segments

List segments

List saved segments.

Takes no parameters.

get_segment

Get segment

Retrieve a segment and its rules.

Parametersidrequired

update_segment

Update segment

Rename a segment or replace its rules.

Parametersidrequirednamematchrulesdescription

delete_segment

Delete segment

Delete a segment. Contacts are not touched.

Parametersidrequired

query_audience

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

Parameterslimitmatchrulestopic_id

preview_segment

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

Parametersidrequiredtopic_id

list_topics

List topics

List subscription topics.

Takes no parameters.

create_topic

Create topic

Create a subscription topic, so people can opt out of one kind of message (e.g. promotions) and keep others.

Parametersnamerequireddescription

create_template

Create template

Save a message template. Merge tags: {{first_name}}, {{name}}, {{phone}}, {{field:<custom>}}, and per-recipient variables.

Parametersbodyrequirednamerequired

list_templates

List templates

List message templates.

Takes no parameters.

get_template

Get template

Retrieve a template.

Parametersidrequired

update_template

Update template

Rename or edit a template.

Parametersidrequiredbodyname

delete_template

Delete template

Delete a template.

Parametersidrequired

recommend_message

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

Parameterscodegoallinkbrandrequiredlimitofferproductrequiredaudiencedeadlineindustryrequiredcandidatesfirst_name+3 more

send_batch

Send 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.no_opt_in (recipients the send will skip for having no opt-in). scheduled_at sends later (up to 30 days). shorten_links: true tracks link clicks. With a live key it texts real people.

Parametersbodyrequiredfromnametagsdry_runlist_idcategorytopic_idrecipientssegment_idcontact_idsquiet_hours+3 more

list_batches

List batches

List batches (broadcasts), newest first.

Parameterslimitcursorstatus

get_batch

Get batch

Retrieve a batch with its progress counts.

Parametersidrequired

get_batch_results

Get batch results

Results of a batch: delivered, failed, pending, replies, opt-outs (stops), spend, and failures grouped by reason.

Parametersidrequired

list_batch_recipients

List batch recipients

List a batch's recipients with each one's status.

Parametersidrequiredlimitcursorstatus

pause_batch

Pause batch

Pause a sending or scheduled batch.

Parametersidrequired

resume_batch

Resume batch

Resume a paused batch.

Parametersidrequired

cancel_batch

Cancel batch

Cancel a batch. Messages already sent stay sent.

Parametersidrequired

retry_batch

Retry batch

Retry a batch's failed recipients.

Parametersidrequired

track_event

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

Parameterseventrequiredphoneuser_idpropertiesidempotency_key

plan_task

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

Parameterstask

plan_campaign

Plan 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, 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.

Parameterskind

create_automation

Create 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. 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. Drafts send nothing until activated.

Parametersfromnamestepstriggertopic_id

list_automations

List automations

List automations.

Takes no parameters.

get_automation

Get automation

Retrieve an automation with its trigger and steps.

Parametersidrequired

update_automation

Update automation

Edit an automation (name, sender, 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.

Parametersidrequiredfromnamestepstepstriggertopic_idif_updated_at

delete_automation

Delete automation

Delete an automation.

Parametersidrequired

activate_automation

Activate automation

Turn an automation on, so tracked events start runs. With a live number it texts real people.

Parametersidrequired

pause_automation

Pause automation

Pause an automation: no new runs start, and runs in progress wait where they are until it is activated again.

Parametersidrequired

preview_automation

Preview 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, and merge fields that would come out empty.

Parametersidrequiredtoproperties

test_automation

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

Parametersidrequiredtorequiredfromstepspropertiesidempotency_key

list_automation_runs

List automation runs

List an automation's runs, newest first.

Parametersidrequiredlimitcursor

get_automation_run

Get automation run

Retrieve one run with its step-by-step timeline.

Parametersidrequiredrun_idrequired

cancel_automation_run

Cancel automation run

Cancel a run in progress.

Parametersidrequiredrun_idrequired

get_topic

Get topic

Retrieve a topic.

Parametersidrequired

update_topic

Update topic

Rename or describe a topic.

Parametersidrequirednamedescription

delete_topic

Delete topic

Delete a topic you created (built-in topics stay).

Parametersidrequired

get_contact_topics

Get contact topics

A contact's subscription to each topic.

Parametersidrequired

list_opt_outs

List opt outs

List opted-out numbers (the suppression list).

Parameterslimitcursor

import_opt_outs

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

Parametersphone_numbersrequired

list_scheduled_messages

List scheduled messages

List single messages scheduled for later and not yet sent.

Takes no parameters.

get_scheduled_message

Get scheduled message

Retrieve a pending scheduled message.

Parametersidrequired

cancel_scheduled_message

Cancel scheduled message

Cancel a scheduled message before it sends.

Parametersidrequired

create_schedule

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

Parameterstorequiredbodyrequiredfromrepeatrequiredcategoryend_datestart_datequiet_hoursidempotency_keymax_occurrences

list_schedules

List schedules

List recurring schedules.

Takes no parameters.

get_schedule

Get schedule

Retrieve a recurring schedule with its recent occurrences.

Parametersidrequired

update_schedule

Update schedule

Pause (active: false) or resume (active: true) a recurring schedule.

Parametersidrequiredactive

delete_schedule

Delete schedule

Delete a recurring schedule.

Parametersidrequired

get_balance

Get balance

Prepaid credit balance and auto-recharge setting.

Takes no parameters.

get_usage

Get usage

Usage by month, today's counters, and plan limits.

Parametersmonths

get_spend_limit

Get spend limit

The monthly spend limit and this month's estimated spend.

Takes no parameters.

get_deliverability

Get deliverability

Delivery rates by day, destination carrier, or sending number.

Parametersend_dategroup_bystart_date

list_registrations

List registrations

List 10DLC brand and campaign registrations and their status. Marketing from a local number needs an approved one.

Takes no parameters.

get_registration

Get registration

A registration with its checks, status, and linked numbers.

Parametersidrequired

list_toll_free_verifications

List toll free verifications

List toll-free verifications and their status (draft, in_review with our team, submitted to the carriers, verified, rejected). A toll-free number texts the public only once verified.

Parameterslimitcursorstatus

get_toll_free_verification

Get toll free verification

A toll-free verification: status, numbers, the form, what is missing (problems), and the carriers' reason when it was rejected.

Parametersidrequired

connect_integration

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

ParametersmodenameapiKeyregionsecretclientIdproviderrequiredsfObjectsourceIdusernameprojectIdsecretKey+10 more

list_integrations

List integrations

The connected tools: status, settings, last sync (found, added, opted out), and their list. No credentials.

Takes no parameters.

get_integration

Get integration

One connected tool and its last sync.

Parametersidrequired

update_integration

Update 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; changing only those does not re-test credentials or resync.

ParametersidrequirednameapiKeysecretstatussourceIdusernamesecretKeyphoneEventphoneFieldaccessTokenconsentEvent+3 more

get_integration_events

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

Parametersidrequiredproject_events

sync_integration

Sync integration

Sync a connected tool now (up to 6 times an hour) and get what changed.

Parametersidrequired

disconnect_integration

Disconnect integration

Disconnect a tool: its credentials and its list are deleted; the contacts stay with their consent.

Parametersidrequired

create_webhook

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

Parametersurlrequiredeventsnumbersdescription

list_webhooks

List webhooks

List webhook endpoints.

Takes no parameters.

update_webhook

Update webhook

Change a webhook endpoint: URL, events, or turn it off (active: false).

Parametersidrequiredurlactiveeventsnumbersdescription

delete_webhook

Delete webhook

Delete a webhook endpoint.

Parametersidrequired

rotate_webhook_secret

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

Parametersidrequiredexpire_previous_in

test_webhook

Test webhook

Send a signed test.ping to a webhook endpoint and see what it answered.

Parametersidrequired

replay_failed_webhooks

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

Parametersidrequiredsinceuntil

get_webhook

Get webhook

Retrieve a webhook endpoint.

Parametersidrequired

list_webhook_deliveries

List webhook deliveries

Delivery attempts to your webhook endpoints, with response status codes.

Parameterslimitcursorevent_idendpoint_id

replay_event

Replay event

Send an event again to one webhook endpoint (after fixing the receiver).

Parametersidrequiredendpoint_idrequired

create_customer

Create customer

Platforms sending for other businesses: create a customer to attribute numbers, messages and usage to.

Parametersnamemetadataexternal_id

list_customers

List customers

List your customers.

Parameterslimitcursorexternal_id

get_customer

Get customer

Retrieve a customer.

Parametersidrequired

update_customer

Update customer

Rename a customer or change its external_id or metadata.

Parametersidrequirednamemetadataexternal_id

delete_customer

Delete customer

Delete a customer.

Parametersidrequired

get_customer_usage

Get customer usage

A customer's messages, verifications and spend for a period.

Parametersidrequiredendstart

create_api_key

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

Parametersnamerequiredscopes

list_api_keys

List api keys

List the active API keys of this mode (never the secrets).

Takes no parameters.

revoke_api_key

Revoke api key

Revoke an API key of this mode. Immediate and permanent: anything using it stops working.

Parametersidrequired

export_csv

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

Parametersqoktofromkindrequiredtypeactorbatchactionmonthsnumberstatus+10 more

list_audit_logs

List audit logs

Who changed what on the account (keys, team, webhooks, spend limit, numbers, consent, settings), newest first.

Parametersactorlimitactioncursortarget_typecreated_aftercreated_before

wait_for_events

Wait for events

Wait up to 25 seconds for the next events after a cursor (a reply, a delivery receipt), then return them.

Parameterscursortimeout

list_registration_submissions

List registration submissions

The filed copies of a 10DLC registration, newest first.

Parametersidrequired

set_spend_limit

Set spend limit

Set or remove the monthly spend cap and its alert thresholds. Live sends over the cap are refused.

Parametersalert_thresholdsmonthly_limit_usd

forget_identity

Forget identity

Privacy erasure: forget the phone number linked to a user_id, so its tracked events stop reaching automations.

Parametersuser_idrequired

Version history

2
  1. v1.0.2LatestOct 30, 2026
  2. v1.0.0Oct 29, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.