SimpleTexting Webhook Reports API

Use webhooks to communicate between the SimpleTexting platform and your server. Webhooks can be used to forward messages as well as provide info about unsubscribes and message delivery. SimpleTexting can trigger webhooks for new incoming messages, delivery reports and unsubscribes.

Operations 3

POST /report/unsubscribe Unsubscribe Report #
POST /report/incoming Incoming/Outgoing Message Report #
POST /report/delivery Delivery/Non Delivered Message Report #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/simpletexting-webhook-reports-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

simpletexting-webhook-reports-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SimpleTexting API Documentation Webhook Reports API
  description: '# Introduction



    Thousands of businesses rely on SimpleTexting to communicate with their audience via text message. With our API, developers can access many of our platform’s features and integrate them with other websites or applications. This document details the available SimpleTexting API functions and their parameters. For additional security, our API is by approval only. If you’d like access, sign up for a trial account and email [support@simpletexting.net](mailto:support@simpletexting.net) with details about your use case.


    **How it works**


    Our API is organized around [REST](https://en.wikipedia.org/wiki/Representational_state_transfer). It uses standard HTTP response codes and authentication. Before you get started, there a few things to keep in mind:


    - When using the POST request, you must specify that `content-type` is `application/json`.



    - The format of responses for all requests is JSON, you can skip the `Accept` request header or set it to `application/json`.


    # Authentication


    Each time you make a request to our API, we use a bearer token in your header to authenticate your account. API requests without authentication will fail. Your API token can be found under [settings](https://app2.simpletexting.com/integrations/webhooks).<br><br>

    Please be sure to keep your bearer token secure. Don’t share it any public areas such as GitHub, client-side code, etc.


    <!-- ReDoc-Inject: <security-definitions> -->

    '
  termsOfService: https://simpletexting.com/terms/
  version: 2.0.0
servers:
- url: https://api-app2.simpletexting.com/v2
security:
- api_key: []
tags:
- name: Webhook Reports
  description: Use webhooks to communicate between the SimpleTexting platform and your server. Webhooks can be used to forward messages as well as provide info about unsubscribes and message delivery. SimpleTexting can trigger webhooks for new incoming messages, delivery reports and unsubscribes.
paths:
  /report/unsubscribe:
    post:
      security: []
      tags:
      - Webhook Reports
      summary: Unsubscribe Report
      description: 'Triggers when a client sends STOP to your number.


        **Example:** We create the Unsubscribe report for `8005551234` for the status of the outgoing messages to `8001234567`:


        `{"url": "http://www.yourdomain.com/unsubscribe.php","triggers": ["UNSUBSCRIBE_REPORT"],"requestPerSecLimit": 25,"accountPhone": "8005551234","contactPhone": "8001234567"}`


        Your custom domain `http://www.yourdomain.com/unsubscribe.php` has been set as an unsubscribe report URL for this example. The SimpleTexting server will invoke the given call when the subscriber with the number 8001234567 unsubscribes.'
      operationId: unsubscribeMessageReport
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SingleReportDtoWebhookUnsubscribeReportDto'
      responses:
        '200':
          description: OK
      servers:
      - url: https://yourdomain.com/
        variables: {}
  /report/incoming:
    post:
      security: []
      tags:
      - Webhook Reports
      summary: Incoming/Outgoing Message Report
      description: 'Triggers when an outgoing message or incoming message is handled.


        **Example:** We create the incoming webhook for `8005551234` from contact phone `8001234567`:


        `{"url": "http://www.yourdomain.com/receivesms.php","triggers": ["INCOMING_MESSAGE"],"requestPerSecLimit": 25,"accountPhone": "8005551234","contactPhone": "8001234567"}`'
      operationId: incomingMessageReport
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SingleReportDtoWebhookMessageDto'
      responses:
        '200':
          description: OK
      servers:
      - url: https://yourdomain.com/
        variables: {}
  /report/delivery:
    post:
      security: []
      tags:
      - Webhook Reports
      summary: Delivery/Non Delivered Message Report
      description: 'Triggers when an outgoing message is reported as delivered or undelivered by the carrier.


        **Example:** We create the Delivery report for `8005551234` for the status of the outgoing messages to `8001234567`:


        `{"url": "http://www.yourdomain.com/delivery.php","triggers": ["DELIVERY_REPORT"],"requestPerSecLimit": 25,"accountPhone": "8005551234","contactPhone": "8001234567"}`


        Your custom domain `http://www.yourdomain.com/delivery.php` has been set as a delivery report webhook for this example. The SimpleTexting server will invoke the given call when a message with the messageId `507f191e810c19729de860ea` is delivered.'
      operationId: deliveryMessageReport
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SingleReportDtoWebhookDeliveryReportDto'
      responses:
        '200':
          description: OK
      servers:
      - url: https://yourdomain.com/
        variables: {}
components:
  schemas:
    WebhookUnsubscribeReportDto:
      type: object
      properties:
        contactId:
          type: string
          description: 'Contact id in hexadecimal format


            **Example:** `507f191e810c19729de860ea`'
          example: 507f191e810c19729de860ea
        phone:
          type: string
          description: 'Contact phone


            **Example:** `8001234567`'
          example: '8001234567'
      description: Report content
    WebhookMessageDto:
      type: object
      properties:
        messageId:
          type: string
          description: 'Message ID in hexadecimal format


            **Example:** `507f191e810c19729de860ea`'
          example: 507f191e810c19729de860ea
        subject:
          type: string
          description: 'Subject (available for MMS)


            **Example:** `Some message from SimpleTexting`'
          example: Some message from SimpleTexting
        mediaItems:
          type: array
          description: 'List of MMS media descriptors: ID in hexadecimal format for st-stored file


            **Example:** `["507f1f77bcf86cd799439011","507f1f77bcf86cd799439333"]`'
          example:
          - 507f1f77bcf86cd799439011
          - 507f1f77bcf86cd799439333
          items:
            type: string
            description: 'List of MMS media descriptors: ID in hexadecimal format for st-stored file


              **Example:** `["507f1f77bcf86cd799439011","507f1f77bcf86cd799439333"]`'
            example: '["507f1f77bcf86cd799439011","507f1f77bcf86cd799439333"]'
        text:
          type: string
          description: 'Text


            **Example:** `Hello! How are you?`'
          example: Hello! How are you?
        accountPhone:
          type: string
          description: 'Account phone (primary or secondary)


            **Example:** `8005551234`'
          example: '8005551234'
        contactPhone:
          type: string
          description: 'Contact phone


            **Example:** `8001234567`'
          example: '8001234567'
        timestamp:
          type: string
          description: 'Time of sending. The time is in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.


            **Example:** `2020-04-28T23:20:08.489Z`'
          format: date-time
          example: '2020-04-28T23:20:08.489Z'
        category:
          type: string
          description: "Message category:\n\n  - **SMS:** SMS are regular texts, 160 characters or below\n\n  - **MMS:** Multimedia messages. Messages over 306 characters, or with media attached\n\n  - **EXTENDED_SMS:** Messages which are above 160 characters, but below 306 characters\n\n**Example:** `SMS`"
          example: SMS
        referenceType:
          type: string
          description: 'Reference type (available only for MT messages)


            **Example:** `API`'
          example: API
      description: Report content
    SingleReportDtoWebhookMessageDto:
      type: object
      properties:
        reportId:
          type: string
          description: 'Unique report ID in hexadecimal format


            **Example:** `507f191e810c19729de860ea`'
          example: 507f191e810c19729de860ea
        webhookId:
          type: string
          description: 'Webhook ID in hexadecimal format


            **Example:** `507f191e810c19729de860ea`'
          example: 507f191e810c19729de860ea
        type:
          type: string
          description: "Webhook report content type:\n\n **UNSUBSCRIBE_REPORT:** Triggered when a contact unsubscribes\n\n**Example:** `UNSUBSCRIBE_REPORT`"
          example: UNSUBSCRIBE_REPORT
          enum:
          - INCOMING_MESSAGE
          - OUTGOING_MESSAGE
          - DELIVERY_REPORT
          - NON_DELIVERED_REPORT
          - UNSUBSCRIBE_REPORT
        values:
          $ref: '#/components/schemas/WebhookMessageDto'
    SingleReportDtoWebhookDeliveryReportDto:
      type: object
      properties:
        reportId:
          type: string
          description: 'Unique report ID in hexadecimal format


            **Example:** `507f191e810c19729de860ea`'
          example: 507f191e810c19729de860ea
        webhookId:
          type: string
          description: 'Webhook ID in hexadecimal format


            **Example:** `507f191e810c19729de860ea`'
          example: 507f191e810c19729de860ea
        type:
          type: string
          description: "Webhook report content type:\n\n **UNSUBSCRIBE_REPORT:** Triggered when a contact unsubscribes\n\n**Example:** `UNSUBSCRIBE_REPORT`"
          example: UNSUBSCRIBE_REPORT
          enum:
          - INCOMING_MESSAGE
          - OUTGOING_MESSAGE
          - DELIVERY_REPORT
          - NON_DELIVERED_REPORT
          - UNSUBSCRIBE_REPORT
        values:
          $ref: '#/components/schemas/WebhookDeliveryReportDto'
    SingleReportDtoWebhookUnsubscribeReportDto:
      type: object
      properties:
        reportId:
          type: string
          description: 'Unique report ID in hexadecimal format


            **Example:** `507f191e810c19729de860ea`'
          example: 507f191e810c19729de860ea
        webhookId:
          type: string
          description: 'Webhook ID in hexadecimal format


            **Example:** `507f191e810c19729de860ea`'
          example: 507f191e810c19729de860ea
        type:
          type: string
          description: "Webhook report content type:\n\n **UNSUBSCRIBE_REPORT:** Triggered when a contact unsubscribes\n\n**Example:** `UNSUBSCRIBE_REPORT`"
          example: UNSUBSCRIBE_REPORT
          enum:
          - INCOMING_MESSAGE
          - OUTGOING_MESSAGE
          - DELIVERY_REPORT
          - NON_DELIVERED_REPORT
          - UNSUBSCRIBE_REPORT
        values:
          $ref: '#/components/schemas/WebhookUnsubscribeReportDto'
    WebhookDeliveryReportDto:
      type: object
      properties:
        messageId:
          type: string
          description: 'Message ID in hexadecimal format


            **Example:** `507f191e810c19729de860ea`'
          example: 507f191e810c19729de860ea
        category:
          type: string
          description: "Message category:\n\n  - **SMS:** SMS are regular texts, 160 characters or below\n\n  - **MMS:** Multimedia messages. Messages over 306 characters, or with media attached\n\n  - **EXTENDED_SMS:** Messages which are above 160 characters, but below 306 characters\n\n**Example:** `SMS`"
          example: SMS
        referenceType:
          type: string
          description: 'Reference type (available only for MT messages)


            **Example:** `API`'
          example: API
        accountPhone:
          type: string
          description: 'Account phone (primary or secondary)


            **Example:** `8005551234`'
          example: '8005551234'
        contactPhone:
          type: string
          description: 'Contact phone


            **Example:** `8001234567`'
          example: '8001234567'
        carrier:
          type: string
          description: 'Name of carrier


            **Example:** `Verizon`'
          example: Verizon
      description: Report content
  securitySchemes:
    api_key:
      type: apiKey
      description: 'Bearer authentication (also called token authentication) is an authentication scheme that involves security tokens called bearer tokens. The name “Bearer authentication” can be understood as “give access to the bearer of this token.” The bearer token is a cryptic string, usually generated by the server in response to a login request. The client must send this token in the `Authorization: Bearer <token>` header when making requests to protected resources. To understand more about bearer tokens, please take a look at the following [resource](https://swagger.io/docs/specification/authentication/bearer-authentication/).'
      name: Authorization
      in: header
x-tagGroups:
- name: CAMPAIGNS & MESSAGES
  tags:
  - Campaigns
  - Messages
  - Media Items
  - File Information
- name: Contacts
  tags:
  - Contacts
  - Contacts - Batch Operations
  - Contact Lists
  - Contact Segments
  - Custom Fields
- name: Webhook Services
  tags:
  - Webhooks
  - Webhook Reports