Ürününüzle aynı dili konuşur.
REST API ile gönderim, gelen kutusu, şablonlar ve olaylar. Entegrasyon için gereken uç noktalar, parametreler ve örnekler burada.
Kimlik doğrulama
Panel → API Anahtarları bölümünden bir anahtar oluşturun ve Authorization başlığında gönderin.
Authorization: Bearer CMMAIL_API_KEYTemel URL: https://cmapps.email/api/v1
Hızlı başlangıç
Tek bir POST isteği ile ilk mailinizi gönderin.
curl -X POST https://cmapps.email/api/v1/messages \
-H "Authorization: Bearer $CMMAIL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "destek@sirketiniz.com",
"to": ["musteri@example.com"],
"subject": "Hoş geldiniz",
"text_body": "CM E-Posta ile gönderildi.",
"html_body": "<b>CM E-Posta</b> ile gönderildi."
}'İstek gövdesi — mail gönderimi
POST /messages için kabul edilen alanlar.
fromstringzorunluGönderen adres. Domaini, API anahtarının domaini ile aynı olmalı.tostring[]zorunluAlıcı adresleri — dizi olarak.subjectstringzorunluKonu başlığı.html_bodystringopsiyonelHTML gövde.text_bodystringopsiyonelDüz metin gövde.ccstring[]opsiyonelBilgi (CC) alıcıları.bccstring[]opsiyonelGizli (BCC) alıcıları.template_iduuidopsiyonelKullanılacak şablonun kimliği.template_varsobjectopsiyonelŞablon değişkenleri (anahtar → değer).track_opensbooleanopsiyonelAçılma takibini etkinleştir.track_clicksbooleanopsiyonelTıklama takibini etkinleştir.headersobjectopsiyonelEk özel başlıklar.Endpoint’ler
Yollar https://cmapps.email/api/v1 tabanına görelidir.
Mesajlar (giden)
/messagesMail gönder — kuyruğa alınır/messages/batchTek istekte en fazla 100 mail — her mesaj için ayrı sonuç/messagesGönderilen mesajları listele/messages/{id}Gönderilen mesajın detayı/messages/{id}/eventsTeslimat, açılma ve tıklama olaylarıGelen kutusu
/inboundGelen mesajları listele (?folder=inbox&limit&offset)/inbound/{id}Gelen mesajın detayı/inbound/{id}Gelen mesajı silDomainler
/domainsDomaini listele/domains/{id}Domain detayı/domains/{id}/verifyDNS doğrulamasını çalıştır/domains/{id}/verificationDoğrulama durumunu getirŞablonlar
/templatesŞablon oluştur/templatesŞablonları listele/templates/{id}Şablon detayı/templates/{id}Şablonu güncelle/templates/{id}Şablonu silWebhook’lar
/webhooksWebhook oluştur/webhooksWebhook’ları listele/webhooks/{id}Webhook detayı/webhooks/{id}Webhook’u güncelle/webhooks/{id}Webhook’u silOlaylar & analitik
/eventsOlayları listele (?message_id, ?type)/reputationGönderen itibarı özeti (?hours)/blacklist-checkDomainin kara listede olup olmadığını kontrol etÖrnek yanıt
Gönderilen mail kuyruğa alınır ve oluşturulan mesaj kaydının tamamı 201 Created ile döner.
HTTP/1.1 201 Created
{
"id": "a3f1c9e2-1b7d-4c2a-9f00-8e21d3b5a7c4",
"domain_id": "d4b21f6e-0c33-4a19-b8e2-7f0a1c2d3e4f",
"from_addr": "destek@sirketiniz.com",
"to_addrs": ["musteri@example.com"],
"subject": "Hoş geldiniz",
"html_body": "<b>CM E-Posta</b> ile gönderildi.",
"text_body": "CM E-Posta ile gönderildi.",
"status": "queued",
"attempts": 0,
"track_opens": false,
"track_clicks": false,
"created_at": "2026-09-04T17:00:00Z",
"updated_at": "2026-09-04T17:00:00Z"
}Toplu gönderim
Tek istekte en fazla 100 mesaj gönderin. Her mesaj bağımsız değerlendirilir: listedeki bir hata diğerlerini engellemez, yanıt hangi mesajın kuyruğa girdiğini index ile bildirir. İsteğe Idempotency-Key ekleyerek zaman aşımı sonrası güvenle tekrar deneyebilirsiniz.
curl -X POST https://cmapps.email/api/v1/messages/batch \
-H "Authorization: Bearer $CMMAIL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: siparis-2026-09-05-001" \
-d '{
"messages": [
{ "from": "destek@sirketiniz.com", "to": ["a@example.com"], "subject": "Hoş geldiniz", "text_body": "Merhaba" },
{ "from": "destek@sirketiniz.com", "to": ["b@example.com"], "subject": "Hoş geldiniz", "text_body": "Merhaba" }
]
}'HTTP/1.1 201 Created
{
"queued": 1,
"failed": 1,
"results": [
{
"index": 0,
"status": "queued",
"message": { "id": "a3f1c9e2-...", "status": "queued" }
},
{
"index": 1,
"status": "failed",
"error": "subject is required"
}
]
}Önemli notlar
İzin kapsamları
Her API anahtarının read ve/veya send kapsamı vardır: okuma (GET) istekleri read, gönderim ve değişiklik (POST/PUT/DELETE) istekleri send gerektirir. Eksik kapsamda 403 döner.
Domain yönetimi panelde
API anahtarı tek bir domaine bağlıdır; domain ekleme, silme ve teslimat ayarları müşteri panelinden (app.cmapps.email) yapılır. API üzerinden domaininizi listeleyebilir, detayını görebilir ve DNS doğrulamasını çalıştırabilirsiniz.
Gönderim ön-koşulları
Mail gönderebilmek için domain doğrulanmış ve aktif olmalıdır; ayrıca from adresinin domaini, anahtarın bağlı olduğu domain ile eşleşmelidir. Aksi halde 403 döner.
Idempotency-Key (tekrar güvenliği)
POST /messages ve /messages/batch isteklerine Idempotency-Key başlığı ekleyebilirsiniz. Zaman aşımı sonrası aynı anahtarla tekrar denerseniz mail ikinci kez gönderilmez; ilk yanıt aynen döner (Idempotent-Replay: true). Aynı anahtar farklı bir gövdeyle kullanılırsa 422, ilk istek hâlâ işlenirken tekrar gelirse 409 döner. Anahtarlar 24 saat geçerlidir.
Toplu gönderim
POST /messages/batch tek istekte en fazla 100 mesaj alır. Her mesaj bağımsız doğrulanır ve kuyruğa alınır: listedeki bir hata diğerlerini engellemez, yanıttaki results dizisi hangi mesajın kuyruğa girdiğini ve hangisinin neden başarısız olduğunu index ile bildirir.
İstek limiti
Her API anahtarı dakikada 3.000 istekle sınırlıdır. Yanıtlarda X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset başlıkları döner; limit aşılırsa 429 ve Retry-After başlığı gelir.
Listeleme ve sayfalama
Liste uçları { "data": [...], "total": N } biçiminde döner. limit (varsayılan 50, en fazla 100) ve offset sorgu parametreleriyle sayfalama yapılır.
Mobil uygulamanız mı var? Aynı JSON API tüm endpoint’lerde çalışır — ayrı bir SDK gerektirmez.