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.
| Endpoint | Metot | Açıklama |
|---|---|---|
incoming_messages | GET | Alınan SMS ve WhatsApp mesajlarını listeleyin. |
incoming_emails | GET | IMAP 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
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
| Alan | Tür | Açıklama | |
|---|---|---|---|
since | string | isteğe bağlı | ISO 8601 tarih-saat. Yalnızca bu zamanda veya sonrasında alınan mesajlar. |
until | string | isteğe bağlı | ISO 8601 tarih-saat. Yalnızca bu zamanda veya öncesinde alınan mesajlar. |
channel | string | isteğe bağlı | Kanala göre filtreleyin: sms veya whatsapp. |
device_id | int | isteğe bağlı | Cihaz ID'sine göre filtreleyin. |
from_phone | string | isteğe bağlı | Gönderen telefon numarasına göre filtreleyin (tam eşleşme). |
after_id | int | 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. |
limit | int | isteğe bağlı | Sayfa başına sonuç (1–100). Varsayılan: 50. |
offset | int | 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ı
| Alan | Tür | Açıklama |
|---|---|---|
id | int | Benzersiz mesaj ID'si. Artımlı yoklama için en yüksek değeri after_id olarak kullanın. |
channel | string | sms or whatsapp |
from_phone | string | Gönderen telefon numarası. |
message | string | Mesaj metni. |
received_at | string | Mesajın alındığı zaman. |
contact | object|null | Eşleşen kişi (id, ad, telefon) veya gönderen bilinmiyorsa null. |
device | object|null | Mesajı alan cihaz (id, ad). |
Gelen E-postaları Listeleme
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
| Alan | Tür | Açıklama | |
|---|---|---|---|
since | string | isteğe bağlı | ISO 8601 tarih-saat. Yalnızca bu zamanda veya sonrasında alınan mesajlar. |
until | string | isteğe bağlı | ISO 8601 tarih-saat. Yalnızca bu zamanda veya öncesinde alınan mesajlar. |
smtp_server_id | int | isteğe bağlı | SMTP/IMAP sunucu ID'sine göre filtreleyin. |
from_email | string | isteğe bağlı | Gönderen e-posta adresine göre filtreleyin (tam eşleşme). |
search | string | isteğe bağlı | Konu, from_email ve from_name alanlarında arayın (kısmi eşleşme). |
after_id | int | 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. |
limit | int | isteğe bağlı | Sayfa başına sonuç (1–100). Varsayılan: 50. |
offset | int | 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ı
| Alan | Tür | Açıklama |
|---|---|---|
id | int | Benzersiz e-posta ID'si. Artımlı yoklama için en yüksek değeri after_id olarak kullanın. |
from_email | string | Gönderen e-posta adresi. |
from_name | string | Gönderenin görünen adı. |
to_email | string | Alıcı adresi (sizin posta kutunuz). |
subject | string | E-posta konu satırı. |
body_text | string | Düz metin gövde. |
body_html | string | HTML gövde (e-posta yalnızca düz metin ise boş olabilir). |
message_id | string | E-postanın Message-ID başlığı (konu dizisi oluşturma / yinelenenleri ayıklama için). |
received_at | string | Mesajın alındığı zaman. |
server | object | Bu 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.