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

# Send Bulk SMS (GET)

> Send bulk SMS messages using GET method with encoded parameters

## Send Bulk SMS (GET)

Send bulk SMS messages using the GET method with encoded message parameters. This method allows sending different messages to different recipients in a single request.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://app.notify.ng/api/v2/SendBulkSMS?ApiKey=YOUR_API_KEY&ClientId=YOUR_CLIENT_ID&SenderId=YOUR_SENDER_ID&MobileNumber_Message=1234567890%5EHello%20John%7E0987654321%5EHello%20Jane&Is_Unicode=false&Is_Flash=false"
  ```

  ```javascript JavaScript theme={null}
  // Encode the bulk message parameter
  const bulkMessage = "1234567890^Hello John~0987654321^Hello Jane";
  const encodedBulkMessage = encodeURIComponent(bulkMessage);

  const params = new URLSearchParams({
    ApiKey: 'YOUR_API_KEY',
    ClientId: 'YOUR_CLIENT_ID',
    SenderId: 'YOUR_SENDER_ID',
    MobileNumber_Message: encodedBulkMessage,
    Is_Unicode: 'false',
    Is_Flash: 'false'
  });

  const response = await fetch(`https://app.notify.ng/api/v2/SendBulkSMS?${params}`, {
    method: 'GET',
    headers: {
      'Content-Type': 'application/json'
    }
  });

  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests
  from urllib.parse import quote

  # Prepare bulk message parameter
  bulk_message = "1234567890^Hello John~0987654321^Hello Jane"
  encoded_bulk_message = quote(bulk_message)

  url = "https://app.notify.ng/api/v2/SendBulkSMS"
  params = {
      "ApiKey": "YOUR_API_KEY",
      "ClientId": "YOUR_CLIENT_ID",
      "SenderId": "YOUR_SENDER_ID",
      "MobileNumber_Message": encoded_bulk_message,
      "Is_Unicode": "true",
      "Is_Flash": "false"
  }

  response = requests.get(url, params=params)
  data = response.json()
  print(data)
  ```
</CodeGroup>

## Parameters

<ParamField query="ApiKey" type="string" required>
  Your API key for authentication
</ParamField>

<ParamField query="ClientId" type="string" required>
  Your client identifier for authentication
</ParamField>

<ParamField query="SenderId" type="string" required>
  Approved sender ID for the messages
</ParamField>

<ParamField query="MobileNumber_Message" type="string" required>
  Encoded bulk message parameter (see format below)
</ParamField>

<ParamField query="Is_Unicode" type="boolean">
  Set to `true` for Unicode messages (default: `false`)
</ParamField>

<ParamField query="Is_Flash" type="boolean">
  Set to `true` for flash messages (default: `false`)
</ParamField>

<ParamField query="scheduleTime" type="string">
  Schedule time in `yyyy-MM-dd HH:MM` format (optional)
</ParamField>

## MobileNumber\_Message Format

The `MobileNumber_Message` parameter uses a specific format:

```
{phone1}^{message1}~{phone2}^{message2}~{phone3}^{message3}
```

### Format Rules

* Use `^` to separate phone number from message
* Use `~` to separate different phone/message pairs
* URL encode the entire parameter

### Example

```
1234567890^Hello John~0987654321^Hello Jane~5555555555^Hello Bob
```

### URL Encoded Example

```
1234567890%5EHello%20John%7E0987654321%5EHello%20Jane%7E5555555555%5EHello%20Bob
```

## Response

<ResponseField name="ErrorCode" type="number">
  Error code (0 for success)
</ResponseField>

<ResponseField name="ErrorDescription" type="string">
  Description of the result
</ResponseField>

<ResponseField name="Data" type="array">
  Array of message results
</ResponseField>

<ResponseField name="Data[].MobileNumber" type="string">
  Mobile number that received the message
</ResponseField>

<ResponseField name="Data[].MessageId" type="string">
  Unique message ID for tracking
</ResponseField>

### Success Response

```json theme={null}
{
  "ErrorCode": 0,
  "ErrorDescription": "Success",
  "Data": [
    {
      "MobileNumber": "7894561230",
      "MessageId": "fc103131-5931-4530-ba8e-aa223c769536"
    },
    {
      "MobileNumber": "7894561231",
      "MessageId": "f893293d-d6ea-45e8-b543-40f0df28e0c9"
    }
  ]
}
```

## Encoding Examples

### JavaScript

```javascript theme={null}
const messages = [
  { phone: "1234567890", message: "Hello John" },
  { phone: "0987654321", message: "Hello Jane" }
];

const bulkMessage = messages
  .map(m => `${m.phone}^${m.message}`)
  .join('~');

const encoded = encodeURIComponent(bulkMessage);
```

### Python

```python theme={null}
messages = [
    {"phone": "1234567890", "message": "Hello John"},
    {"phone": "0987654321", "message": "Hello Jane"}
]

bulk_message = "~".join([f"{m['phone']}^{m['message']}" for m in messages])
encoded = quote(bulk_message)
```

## Use Cases

* **Personalized bulk messaging**: Send different messages to different recipients
* **Marketing campaigns**: Send targeted messages to customer segments
* **Notifications**: Send different notification types to different users
* **Appointment reminders**: Send personalized reminders with different details
