---
title: "Send one or more messages"
method: POST
path: "/v3/BulkMessages"
tags: ["BulkMessages"]
---

# Send one or more messages

`POST /v3/BulkMessages`

## Headers

- `Authorization` string, required

## Request body

- SendRequest — A request to send a batch of SMS messages
  - `sendOptions` SendOptionsDto
    - `allowContentTrimming` boolean — Whether or not the message should have leading and trailing whitespace removed before processing.
    - `senderId` string — The sender ID (source address) to use when sending the messages specified. Maximum length is 11 characters. Please note that a best effort is made to use the value specified but availability is ultimately determined by the mobile network operator
    - `startDeliveryUtc` string, date-time — The date and time in UTC when the messages should be sent. Maximum date and time allowed is 3 months from the current date and time. Value should be formatted according to ISO 8601 UTC format (yyyy-mm-ddThh:mm[:ss][Z])
    - `endDeliveryUtc` string, date-time — This value should be set in UTC if delivery should be staggered over a period of time. Leave null if all messages should be sent as soon as possible. Value, if set, must be greater than StartDeliveryUtc and should be formatted according to ISO 8601 UTC format (yyyy-mm-ddThh:mm[:ss][Z])
    - `replyRuleSetName` string — The name of the reply rule set that should be used for the send. Replies that are received as a result of the send are then subject to rules configured in the reply rule set governing auto forwards and auto responses
    - `campaignName` string — A user defined value for the name of the campaign associated with this send. Only used by the system for reporting purposes. Maximum value is 100 characters
    - `costCentre` string — A user defined value for the name of the cost center associated with this send. Only used by the system for reporting purposes. Maximum value is 100 characters
    - `checkOptOuts` boolean — True if SMS messages should not be sent to mobile subscribers that have opted-out as a result of a previous send; otherwise false Note: Opt-outs can take up to 15 minutes to propagate throughout our entire system.
    - `shortenUrls` boolean — True if this send should try shorten and track urls otherwise false.
    - `validityPeriod` integer — The amount of time in hours an SMS should remain valid. The network will continue to try to deliver the SMS over the validity period.
    - `testMode` boolean — Should the messages be sent or is this a test of the API? If TestMode = true then it will return the result but won’t send the data, and won’t appear in any sent report.
  - `messages` MessageDto[], required — The SMS message(s) that should be send. Must contain at least one message and at most 500 messages
    - `content` string — The text content of the SMS message
    - `destination` string, required — The MSISDN (mobile number) to whom the message is intended
    - `customerId` string — A user defined ID which can be used to correlate messages sent to the API and receipts or replies received for that message. Maximum length 100 characters
    - `landingPageVariables` LandingPageVariablesDto — Variables related to the generation of a landing page version associated with a specific SMS message, and landing page.
      - `landingPageId` string, required — The API Id of the landing page.
      - `version` integer — The version of the landing page to use. If not provided then the configured default (active) version is used.
      - `password` string — The authentication password for the landing page. If not provided (Empty or Null) then the landing page will not require authentication.
      - `variables` object — The values of the variables defined in the landing page version.

## Response `200`

OK

- Response — Errors associated with the send attempt
  - `statusCode` integer, required — StatusCode of the send attempt.
  - `sendResponse` SendResponse, required — A response to a send request or a group send request
    - `cost` number, double, required — The total cost of the send excluding any VAT, GST or tax
    - `remainingBalance` number, double, required — The remaining balance after the Cost has been deducted for the send
    - `eventId` integer, required — The system generated ID for this send or batch of messages
    - `sample` string, required — A sample message that was generated for the send. Purely informational
    - `costBreakdown` CostLineItemDto[], required — The break down of the costs for the send grouped by mobile network and feature
      - `quantity` integer, required
      - `cost` number, double, required
      - `network` string, required
    - `messages` integer, required — The total number of messages that were successfully enqueued for delivery. Long messages may require multiple SMS messages or parts to send a message and this is reflected in the Parts value
    - `parts` integer, required — The total number of SMS messages that were successfully enqueued for delivery.
    - `errorReport` FaultReportDto, required
      - `noNetwork` integer, required
      - `noContents` integer, required
      - `contentToLong` integer, required
      - `duplicates` integer, required
      - `optedOuts` integer, required
      - `faults` MessageFaultDto[], required
        - `rawDestination` string, required
        - `scrubbedDestination` string, required
        - `customerId` string, required
        - `errorMessage` string, required
        - `status` string, required
  - `errors` SendingError[], required — A collection of general send wide Errors.
    - `errorMessage` string, required — Error message
    - `errorCode` string, required — Associated ErrorCode

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/smsportal/apis/mymobileapi-rest-v3.md) · [All operations](https://skmtc.net/smsportal/apis/mymobileapi-rest-v3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/smsportal/mymobileapi-rest-v3/versions/e919876b1f73/schema)
