إرسال
SMS

List Messages

Retrieve a paginated list of sent messages

Endpoint

GET /api/sms/messages

Query parameters

FieldTypeRequiredDescription
pageintegerNoPage number (default: 1)
per_pageintegerNoResults per page (default: 10)
fromdateNoFilter from date (YYYY-MM-DD)
todateNoFilter to date (YYYY-MM-DD)

Example

curl "https://sms.lamah.com/api/sms/messages?page=1&per_page=20&from=2024-01-01&to=2024-01-31" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Response

The response is wrapped in a data key containing a Laravel paginator object:

{
  "data": {
    "current_page": 1,
    "data": [
      {
        "short_message": "Your appointment is confirmed for Tuesday at 4:30 PM.",
        "message_type": "sms",
        "send_type": "single",
        "contact_group_id": null,
        "message_consumption": 1,
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-01-15T10:30:00Z",
        "receiver": [
          {
            "number": "00218912345678",
            "sent_at": "2024-01-15T10:30:02Z",
            "delivered_at": "2024-01-15T10:30:15Z",
            "status": "delivered",
            "delivery_report": null,
            "created_at": "2024-01-15T10:30:00Z",
            "updated_at": "2024-01-15T10:30:15Z"
          }
        ]
      }
    ],
    "per_page": 20,
    "last_page": 5,
    "total": 95
  }
}

Top-level response fields

FieldTypeDescription
dataobjectLaravel paginator containing message records

Pagination fields

FieldTypeDescription
current_pageintegerCurrent page number
per_pageintegerMessages per page
last_pageintegerTotal number of pages
totalintegerTotal number of messages matching filters

Message object fields

FieldTypeDescription
short_messagestringMessage content
message_typestringAlways sms for SMS messages
send_typestringsingle or multiple
contact_group_idstring|nullContact group UUID if applicable
message_consumptionintegerSMS parts consumed
created_atstringISO 8601 timestamp
updated_atstringISO 8601 timestamp
receiverarrayList of receipt objects for each recipient

Receipt object fields

FieldTypeDescription
numberstringRecipient phone number
sent_atstringISO 8601 timestamp when message was sent
delivered_atstringISO 8601 timestamp when message was delivered
statusstringDelivery status: pending, sent, delivered, failed
delivery_reportstring|nullRaw delivery report if available
created_atstringISO 8601 creation timestamp
updated_atstringISO 8601 last update timestamp

Error responses

400 Bad Request

{
  "error": "Invalid date format",
  "code": "INVALID_DATE_FORMAT"
}

401 Unauthorized

{ "message": "Unauthenticated." }

Pagination example

const getAllMessages = async () => {
  let allMessages = [];
  let currentPage = 1;
  let hasNextPage = true;

  while (hasNextPage) {
    const response = await fetch(
      `https://sms.lamah.com/api/sms/messages?page=${currentPage}&per_page=50`,
      { headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' } }
    );

    const data = await response.json();
    allMessages = allMessages.concat(data.data.data);

    hasNextPage = data.data.current_page < data.data.last_page;
    currentPage++;
  }

  return allMessages;
};

On this page