> ## Documentation Index
> Fetch the complete documentation index at: https://www.gliiv.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Send SMS

> Send high-priority single or bulk messages via the Gliiv gateway.

The `/send` endpoint allows you to programmatically dispatch messages to your recipients. All requests are processed through our high-speed gateway to ensure rapid delivery.

<Note>
  **Requirement:** Before using this endpoint, you must have at least one **Sender** identity assigned to your account.
</Note>

### Headers

<ParamField header="X-API-Key" type="string" required placeholder="gliiv_xxxxxxxxxxxxxxxx">
  Your secret API key used to authenticate the request.
</ParamField>

### Body Parameters

<ParamField body="phoneNumbers" type="string[]" required>
  An array of recipient phone numbers.

  * **Supported Formats:** `+250...`, `250...`, `07...`, or `7...`
  * **Limit:** Maximum of **20 numbers** per individual API request.
</ParamField>

<ParamField body="message" type="string" required>
  The text content of your SMS.

  * **Billing:** Charged in **160-character segments**.
  * **Maximum:** 800 characters total.
</ParamField>

<ParamField body="senderId" type="string" required>
  The unique ID of your authorized **Sender**. Retrieve this from the [List All Senders](/list-all-senders) endpoint.
</ParamField>

### Response Body

<ResponseField name="message" type="string">
  A descriptive message detailing the outcome of the request.
</ResponseField>

<ResponseField name="status" type="number">
  The HTTP status code associated with the response.
</ResponseField>

<ResponseField name="validationErrors" type="object">
  **Optional.** Returned only on a **400 Bad Request**. Contains field-specific error messages.

  <Expandable title="Validation Error Details">
    <ResponseField name="phoneNumbers" type="string">
      Error detail for the phone numbers array.
    </ResponseField>

    <ResponseField name="message" type="string">
      Error detail for the message content.
    </ResponseField>

    <ResponseField name="senderId" type="string">
      Error detail for the sender identification.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 200 theme={null}
  {
      "message": "Messages are being sent",
      "status": 200
  }
  ```

  ```json 400 theme={null}
  {
      "message": "Invalid input provided",
      "validationErrors": {
          "phoneNumbers": "<string>",
          "message": "<string>",
          "senderId": "<string>"
      },
      "status": 400
  }
  ```

  ```json 401 theme={null}
  {
      "message": "Authentication required",
      "status": 401
  }
  ```

  ```json 404 theme={null}
  {
      "message": "Sender not found",
      "status": 404
  }
  ```

  ```json 500 theme={null}
  {
      "message": "Internal server error",
      "status": 500
  }
  ```
</ResponseExample>
