> ## 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.

# Get Sent Messages

> Retrieve a list of sent SMS messages with filtering options

## Get Sent Messages

Retrieve a paginated list of sent SMS messages with optional date filtering.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://app.notify.ng/api/v2/SMS?ApiKey=YOUR_API_KEY&ClientId=YOUR_CLIENT_ID&start=0&length=10&fromdate=2024-01-01&enddate=2024-12-31" \
    -H "Content-Type: application/json"
  ```

  ```javascript JavaScript theme={null}
  const params = new URLSearchParams({
    ApiKey: 'YOUR_API_KEY',
    ClientId: 'YOUR_CLIENT_ID',
    start: '0',
    length: '10',
    fromdate: '2024-01-01',
    enddate: '2024-12-31'
  });

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

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

  ```python Python theme={null}
  import requests

  url = "https://app.notify.ng/api/v2/SMS"
  params = {
      "ApiKey": "YOUR_API_KEY",
      "ClientId": "YOUR_CLIENT_ID",
      "start": 0,
      "length": 10,
      "fromdate": "2024-01-01",
      "enddate": "2024-12-31"
  }

  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="start" type="number" required>
  Starting index for pagination (0-based)
</ParamField>

<ParamField query="length" type="number" required>
  Number of messages to retrieve per page
</ParamField>

<ParamField query="fromdate" type="string">
  Start date filter in `yyyy-mm-dd` format
</ParamField>

<ParamField query="enddate" type="string">
  End date filter in `yyyy-mm-dd` format
</ParamField>

## 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="object">
  Response data object
</ResponseField>

<ResponseField name="Data.messages" type="array">
  Array of message objects
</ResponseField>

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

<ResponseField name="Data.messages[].SenderId" type="string">
  Sender ID used for the message
</ResponseField>

<ResponseField name="Data.messages[].Message" type="string">
  Message content
</ResponseField>

<ResponseField name="Data.messages[].SubmitDate" type="string">
  Date and time when message was submitted
</ResponseField>

<ResponseField name="Data.messages[].MessageId" type="string">
  Unique message identifier
</ResponseField>

<ResponseField name="Data.messages[].DoneDate" type="string">
  Date and time when message was processed
</ResponseField>

<ResponseField name="Data.messages[].Status" type="string">
  Current delivery status
</ResponseField>

<ResponseField name="Data.total" type="string">
  Total number of messages
</ResponseField>

### Success Response

```json theme={null}
{
  "ErrorCode": 0,
  "ErrorDescription": "Success",
  "Data": {
    "messages": [
      {
        "MobileNumber": "9638812576",
        "SenderId": "test",
        "Message": "test message",
        "SubmitDate": "16-Mar-2018 05:12:28 PM",
        "MessageId": "Smsc1603635",
        "DoneDate": "16-Mar-2018 05:11:00 PM",
        "Status": "DELIVRD"
      }
    ],
    "total": "100"
  }
}
```

## Message Status Values

| Status        | Description                    |
| ------------- | ------------------------------ |
| **DELIVRD**   | Message successfully delivered |
| **UNDELIV**   | Message undelivered            |
| **EXPIRED**   | Message expired                |
| **DELETED**   | Message deleted                |
| **UNKNOWN**   | Status unknown                 |
| **ACCEPTD**   | Message accepted by carrier    |
| **REJECTD**   | Message rejected               |
| **BLACKLIST** | Number is blacklisted          |

## Use Cases

* **Message history**: View all sent messages
* **Delivery tracking**: Monitor message delivery status
* **Analytics**: Analyze message performance over time
* **Audit trail**: Track message history for compliance
* **Debugging**: Troubleshoot delivery issues
