Get Pending Messages

Mobile App Integration Guide

Get Pending Messages

GET /?endpoint=pending_messages

Returns a batch of messages from the outgoing queue that are ready to be sent. The API atomically claims the returned messages (status -> processing) so that concurrent device requests do not receive the same messages.

Query Parameters

Field Type Description
limit integer optional Maximum messages to return (1-100, default 50).
channel string optional Filter by channel: sms or whatsapp. Omit for all.
*
Messages assigned to this device are returned first, followed by unassigned messages. After returning the list, the server clears the claim marker so normal status transitions apply.

Example Request

cURL
curl "https://api.rcszilla.com/?endpoint=pending_messages&limit=10&channel=sms" \
  -H "Authorization: Bearer YOUR-DEVICE-TOKEN"

Response

JSON200 OK
{
  "success": true,
  "count": 2,
  "messages": [
    {
      "id": 101,
      "user_id": 1,
      "contact_id": 55,
      "campaign_id": null,
      "device_id": 7,
      "sim_slot": 0,
      "channel": "sms",
      "phone": "+40712345678",
      "message": "Hello from SMS Manager!",
      "priority": 1,
      "scheduled_at": null,
      "created_at": "2026-04-29 10:00:00"
    },
    {
      "id": 102,
      "user_id": 1,
      "contact_id": 56,
      "campaign_id": 3,
      "device_id": null,
      "sim_slot": 1,
      "channel": "sms",
      "phone": "+40799999999",
      "message": "Campaign message body here.",
      "priority": 1,
      "scheduled_at": null,
      "created_at": "2026-04-29 10:00:05"
    }
  ]
}

Message Fields

FieldTypeDescription
idintegerUnique queue item ID. Pass to all mark_* endpoints.
channelstringsms or whatsapp
phonestringRecipient phone number.
messagestringMessage body text.
sim_slotinteger0 = SIM 1, 1 = SIM 2, null = any.
device_idinteger|nullDevice this message is assigned to (null = any device).
campaign_idinteger|nullCampaign this message belongs to, or null for direct messages.
priorityintegerLower number = higher priority. Sorted ascending.
scheduled_atdatetime|nullOnly returned when scheduled_at �NOW().
*
Prefer using poll instead �it returns pending messages together with commands and config in a single request, reducing round trips.