Send

simple_send

Send one or more SMS messages in a single request. Each message is queued and delivered independently, so a batch can partially succeed — always inspect every item in the response.

Senders. Set a top-level sender for the whole request, a sender on individual messages, or both: a message's own sender overrides the top-level one. With neither, the stream's default sender is used.

  • Batch size: up to 250 messages per request.
  • Correlation: set an internal_id per message; it is echoed back in the response and in delivery webhooks.
  • Media: on WhatsApp Business and Telegram streams a message can carry media (from Upload file) instead of, or with, message_content.

Response. HTTP 200 with a task_id and one entry per message. status is false when any message failed: failed entries come first and carry error (hex code) and details; accepted entries carry message_uuid (and conversation_uuid on two-way channels). Match entries by internal_id. Final delivery status is sent asynchronously to your configured webhook.

Whole-request errors. Invalid JSON field types return HTTP 200 with status: false, error_code 0x1 and no task_id. 402 (0x41) means the balance is depleted.

Authentication: stream token in the Authorization header (see Authentication in the API Overview).

post/simple_send

Request

  • Base URL
    https://api.commpeak.com/textpeak/streams
  • URL
    https://api.commpeak.com/textpeak/streams/simple_send
  • Auth
    API key in header Authorization

Request body

senderstring nullable

Default sender for every message. An alphanumeric sender ID or a phone number registered on the stream. Omit it to use the stream's default sender.

conversation_infoobject nullable

Metadata stored on new conversations (inbox).

senders_poolstring[] nullable

Candidate senders, used only when no sender is set on the message, the request or the stream: a sender allowed for the destination is picked at random. When none is allowed, the whole request fails with 0x61.

schedule_tostring nullable

Send at this time instead of now (ISO 8601 date-time).

Example request

{
  "messages": [
    {
      "media": {
        "media_id": "01d1e10f-9eb2-4543-a711-3707906010e2"
      },
      "contact": {
        "display_name": "John Doe",
        "email": "test@example.com",
        "external_id": "crm-1001",
        "first_name": "John",
        "last_name": "Doe",
        "phone": "12125551234"
      }
    }
  ]
}

Response

Successful Response

statusboolean required

true when every message was accepted; false when at least one failed. The HTTP status is 200 either way.

task_idstring required

Identifier of this request.

Example response

{
  "messages": [
    {
      "conversation_uuid": "e2a489db-bb8a-4f51-9692-726153599c57",
      "internal_id": "1001",
      "message_uuid": "a61e5bfe-c82b-448a-815b-32de8bf22089"
    }
  ],
  "status": true,
  "task_id": "ca550f7e-9eb5-45b3-9830-e82b407ede02"
}

Changes

No recorded changes to this operation across all 1 revision of this API.