SimpleTexting · AsyncAPI Specification

Simpletexting Webhooks

Version

View Spec View on GitHub SMSMMSMessagingMarketingText MessagingSMS MarketingCommunicationsCampaignsContactsWebhookA2P 10DLCAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: >-
  https://api-doc.simpletexting.com/ — the "Webhooks" and "Webhook Reports" tags of
  SimpleTexting's published OpenAPI (harvested verbatim to
  openapi/_original/simpletexting-openapi.yml on 2026-08-13) and
  https://simpletexting.com/api/docs/ for the legacy v1 forwarding webhooks.
description: >-
  SimpleTexting's event surface. It publishes NO AsyncAPI document; the events are
  described in OpenAPI, where the callback payloads appear as three POST operations
  under the "Webhook Reports" tag whose servers[] is the CUSTOMER's domain
  (https://yourdomain.com/) — i.e. they document what SimpleTexting sends to you,
  not an endpoint you call. This artifact is the webhook catalog derived from those
  definitions, and it is why this repo carries `type: Webhooks` and not `type: AsyncAPI`.
asyncapi_published: false
transport: HTTPS POST callback with a JSON body
subscription_api:
  base: https://api-app2.simpletexting.com/v2
  operations:
    - {operationId: getWebhooks, method: GET, path: /api/webhooks, description: List webhook subscriptions.}
    - {operationId: createWebhook, method: POST, path: /api/webhooks, description: Create a webhook subscription.}
    - {operationId: updateWebhook, method: PUT, path: '/api/webhooks/{webhookId}', description: Update a subscription.}
    - {operationId: deleteWebhook, method: DELETE, path: '/api/webhooks/{webhookId}', description: Delete a subscription.}
  subscription_fields:
    url: Destination URL that will receive the POST.
    triggers: Array of one or more event triggers (see events below). Required.
    requestPerSecLimit: 'Maximum callbacks per second SimpleTexting will send to this URL. Integer, maximum 25.'
    accountPhone: 'Optional filter — deliver only events for this sending number.'
    contactPhone: 'Optional filter — deliver only events for this contact number.'
  ui: 'Also configurable in the web app under the Webhooks tab of API settings (app2.simpletexting.com).'
events:
  - name: INCOMING_MESSAGE
    description: A contact sent a message to one of your numbers.
    delivered_to: 'your endpoint (documented as POST /report/incoming, operationId incomingMessageReport)'
    payload_schema: SingleReportDtoWebhookMessageDto -> WebhookMessageDto
    payload_fields: [messageId, subject, mediaItems, text, accountPhone, contactPhone, timestamp, category, referenceType]
  - name: OUTGOING_MESSAGE
    description: An outgoing message was handled by the platform.
    delivered_to: 'your endpoint (documented as POST /report/incoming, operationId incomingMessageReport)'
    payload_schema: SingleReportDtoWebhookMessageDto -> WebhookMessageDto
  - name: DELIVERY_REPORT
    description: The carrier confirmed delivery of an outgoing message.
    delivered_to: 'your endpoint (documented as POST /report/delivery, operationId deliveryMessageReport)'
    payload_schema: SingleReportDtoWebhookDeliveryReportDto -> WebhookDeliveryReportDto
    payload_fields: [messageId, category, referenceType, accountPhone, contactPhone, carrier]
  - name: NON_DELIVERED_REPORT
    description: The carrier reported a failed delivery.
    delivered_to: 'your endpoint (documented as POST /report/delivery, operationId deliveryMessageReport)'
    payload_schema: SingleReportDtoWebhookDeliveryReportDto -> WebhookDeliveryReportDto
  - name: UNSUBSCRIBE_REPORT
    description: A contact texted STOP or was blocked, and is now unsubscribed.
    delivered_to: 'your endpoint (documented as POST /report/unsubscribe, operationId unsubscribeMessageReport)'
    payload_schema: SingleReportDtoWebhookUnsubscribeReportDto -> WebhookUnsubscribeReportDto
    payload_fields: [contactId, phone]
message_categories:
  SMS: Regular text, 160 characters or below (1 credit).
  EXTENDED_SMS: Above 160 and below 306 characters (2 credits).
  MMS: Multimedia, or above 306 characters (3 credits).
delivery_semantics:
  signing: >-
    NONE PUBLISHED. SimpleTexting documents no signature header, shared secret or
    verification procedure, so a receiver cannot cryptographically establish that a
    callback came from SimpleTexting.
  retries: Not documented.
  ordering: Not documented.
  throughput: Caller-capped by requestPerSecLimit (max 25 requests/second per subscription).
  expected_response: HTTP 200 (the report operations declare a 200 "OK" response).
legacy_v1:
  docs: https://simpletexting.com/api/docs/
  note: >-
    The v1 surface additionally offers SMS forwarding as an HTTP GET to your URL and MMS
    forwarding as a POST, alongside delivery and unsubscribe reports. Configured in the
    same Webhooks settings tab.

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/simpletexting-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.