RCSZilla Sürüm 1.0

Gelen Mesajlar API'si

Alınan SMS, WhatsApp ve E-posta mesajlarını REST API üzerinden okuyun.

Genel Bakış

Bu endpoint'ler, RCSZilla tarafından alınan gelen mesajları çekmenizi sağlar — SMS ve WhatsApp Android cihazlar üzerinden, E-posta ise IMAP yoklaması ile alınır. Toplu okumalar, CRM'e senkronizasyon veya webhook'ların yanında yedek yöntem olarak kullanın.

EndpointMetotAçıklama
incoming_messagesGETAlınan SMS ve WhatsApp mesajlarını listeleyin.
incoming_emailsGETIMAP ile yoklanan gelen kutularından alınan e-postaları listeleyin.
*
Verimli yoklama için tarih aralıkları yerine after_id kullanın. Son yanıttaki en yüksek id değerini saklayın ve bir sonraki çağrıda gönderin — yalnızca yeni mesajları alırsınız; yineleme ve boşluk olmaz.

Gelen SMS / WhatsApp Listeleme

GET /?endpoint=incoming_messages

Android cihazlarınız tarafından alınan SMS ve WhatsApp mesajlarının sayfalanmış bir listesini döndürür. Eşleşen kişi bilgilerini ve cihaz ayrıntılarını içerir.

Sorgu Parametreleri

AlanTürAçıklama
sincestring isteğe bağlı ISO 8601 tarih-saat. Yalnızca bu zamanda veya sonrasında alınan mesajlar.
untilstring isteğe bağlı ISO 8601 tarih-saat. Yalnızca bu zamanda veya öncesinde alınan mesajlar.
channelstring isteğe bağlı Kanala göre filtreleyin: sms veya whatsapp.
device_idint isteğe bağlı Cihaz ID'sine göre filtreleyin.
from_phonestring isteğe bağlı Gönderen telefon numarasına göre filtreleyin (tam eşleşme).
after_idint isteğe bağlı Yalnızca ID'si bu değerden büyük olan mesajları döndürür. Artımlı yoklama için idealdir.
limitint isteğe bağlı Sayfa başına sonuç (1–100). Varsayılan: 50.
offsetint isteğe bağlı Sayfalama başlangıç noktası (offset). Varsayılan: 0.

Örnek İstek

curl "https://api.rcszilla.com/?endpoint=incoming_messages&after_id=208&limit=50" \
  -H "Authorization: Bearer YOUR-API-TOKEN"
curl "https://api.rcszilla.com/?endpoint=incoming_messages&since=2026-05-27T00:00:00Z&channel=sms&limit=20" \
  -H "Authorization: Bearer YOUR-API-TOKEN"
curl "https://api.rcszilla.com/?endpoint=incoming_messages&from_phone=%2B40712345678&limit=10" \
  -H "Authorization: Bearer YOUR-API-TOKEN"

Yanıt

JSON
{
  "success": true,
  "total": 142,
  "limit": 50,
  "offset": 0,
  "messages": [
    {
      "id": 209,
      "channel": "sms",
      "from_phone": "+40712345678",
      "message": "Yes, I want to book an appointment for Monday",
      "received_at": "2026-05-27 14:30:05",
      "contact": {
        "id": 42,
        "name": "John Doe",
        "phone": "+40712345678"
      },
      "device": {
        "id": 6,
        "name": "Office Samsung"
      }
    },
    {
      "id": 208,
      "channel": "whatsapp",
      "from_phone": "+40798765432",
      "message": "Hello, do you have availability this week?",
      "received_at": "2026-05-27 14:25:12",
      "contact": null,
      "device": {
        "id": 6,
        "name": "Office Samsung"
      }
    }
  ]
}

Yanıt Alanları

AlanTürAçıklama
idintBenzersiz mesaj ID'si. Artımlı yoklama için en yüksek değeri after_id olarak kullanın.
channelstringsms or whatsapp
from_phonestringGönderen telefon numarası.
messagestringMesaj metni.
received_atstringMesajın alındığı zaman.
contactobject|nullEşleşen kişi (id, ad, telefon) veya gönderen bilinmiyorsa null.
deviceobject|nullMesajı alan cihaz (id, ad).

Gelen E-postaları Listeleme

GET /?endpoint=incoming_emails

SMTP sunucularınıza bağlı, IMAP ile yoklanan gelen kutuları tarafından alınan e-postaların sayfalanmış bir listesini döndürür. Hem düz metin hem de HTML gövdeyi içerir.

Sorgu Parametreleri

AlanTürAçıklama
sincestring isteğe bağlı ISO 8601 tarih-saat. Yalnızca bu zamanda veya sonrasında alınan mesajlar.
untilstring isteğe bağlı ISO 8601 tarih-saat. Yalnızca bu zamanda veya öncesinde alınan mesajlar.
smtp_server_idint isteğe bağlı SMTP/IMAP sunucu ID'sine göre filtreleyin.
from_emailstring isteğe bağlı Gönderen e-posta adresine göre filtreleyin (tam eşleşme).
searchstring isteğe bağlı Konu, from_email ve from_name alanlarında arayın (kısmi eşleşme).
after_idint isteğe bağlı Yalnızca ID'si bu değerden büyük olan mesajları döndürür. Artımlı yoklama için idealdir.
limitint isteğe bağlı Sayfa başına sonuç (1–100). Varsayılan: 50.
offsetint isteğe bağlı Sayfalama başlangıç noktası (offset). Varsayılan: 0.

Örnek İstek

curl "https://api.rcszilla.com/?endpoint=incoming_emails&after_id=309&limit=20" \
  -H "Authorization: Bearer YOUR-API-TOKEN"
curl "https://api.rcszilla.com/?endpoint=incoming_emails&search=order&since=2026-05-01T00:00:00Z" \
  -H "Authorization: Bearer YOUR-API-TOKEN"

Yanıt

JSON
{
  "success": true,
  "total": 38,
  "limit": 20,
  "offset": 0,
  "emails": [
    {
      "id": 310,
      "from_email": "customer@example.com",
      "from_name": "John Doe",
      "to_email": "support@yourbusiness.com",
      "subject": "Re: Your order #1234",
      "body_text": "Hi, when will my order arrive?\n\nThanks,\nJohn",
      "body_html": "<p>Hi, when will my order arrive?</p>",
      "message_id": "<abc123@mail.example.com>",
      "received_at": "2026-05-27 14:28:00",
      "created_at": "2026-05-27 14:30:02",
      "server": {
        "id": 5,
        "label": "Support Mailbox"
      }
    }
  ]
}

Yanıt Alanları

AlanTürAçıklama
idintBenzersiz e-posta ID'si. Artımlı yoklama için en yüksek değeri after_id olarak kullanın.
from_emailstringGönderen e-posta adresi.
from_namestringGönderenin görünen adı.
to_emailstringAlıcı adresi (sizin posta kutunuz).
subjectstringE-posta konu satırı.
body_textstringDüz metin gövde.
body_htmlstringHTML gövde (e-posta yalnızca düz metin ise boş olabilir).
message_idstringE-postanın Message-ID başlığı (konu dizisi oluşturma / yinelenenleri ayıklama için).
received_atstringMesajın alındığı zaman.
serverobjectBu e-postayı alan SMTP/IMAP sunucusu (id, etiket).

Önerilen Yoklama Deseni

Yeni mesajları okumanın en verimli yolu after_id imleç desenidir. İşte eksiksiz bir örnek:

PHP
<?php
$token   = 'YOUR_API_TOKEN';
$api     = 'https://api.rcszilla.com';
$last_id = (int) file_get_contents('/tmp/last_sms_id.txt') ?: 0;

$url  = "$api/?endpoint=incoming_messages&after_id=$last_id&limit=100";
$resp = json_decode(file_get_contents($url, false, stream_context_create([
    'http' => ['header' => "Authorization: Bearer $token"]
])), true);

foreach ($resp['messages'] as $msg) {
    echo "[{$msg['channel']}] {$msg['from_phone']}: {$msg['message']}\n";
    if ((int)$msg['id'] > $last_id) $last_id = (int)$msg['id'];
}

file_put_contents('/tmp/last_sms_id.txt', $last_id);
Node.js
const fs = require('fs');
const TOKEN = 'YOUR_API_TOKEN';
const API   = 'https://api.rcszilla.com';

let lastId = 0;
try { lastId = parseInt(fs.readFileSync('/tmp/last_sms_id.txt', 'utf8')) || 0; } catch {}

const url = `${API}/?endpoint=incoming_messages&after_id=${lastId}&limit=100`;
const resp = await fetch(url, { headers: { Authorization: `Bearer ${TOKEN}` } });
const data = await resp.json();

for (const msg of data.messages) {
  console.log(`[${msg.channel}] ${msg.from_phone}: ${msg.message}`);
  if (msg.id > lastId) lastId = msg.id;
}

fs.writeFileSync('/tmp/last_sms_id.txt', String(lastId));
Python
import requests, pathlib

TOKEN = 'YOUR_API_TOKEN'
API   = 'https://api.rcszilla.com'
STATE = pathlib.Path('/tmp/last_sms_id.txt')

last_id = int(STATE.read_text()) if STATE.exists() else 0
resp = requests.get(f'{API}/?endpoint=incoming_messages&after_id={last_id}&limit=100',
                    headers={'Authorization': f'Bearer {TOKEN}'}).json()

for msg in resp['messages']:
    print(f"[{msg['channel']}] {msg['from_phone']}: {msg['message']}")
    last_id = max(last_id, msg['id'])

STATE.write_text(str(last_id))
*
Yoklama yerine gerçek zamanlı teslimat için bir Webhook yapılandırın. İkisini birlikte de kullanabilirsiniz: anında bildirim için webhook'lar, toplu okumalar veya kesinti sonrası kurtarma için API.