Bildirimler
Bildirimler — 8 işlem (GET /v1/notifications, POST /v1/notifications, POST /v1/notifications/estimate, …). OpenAPI 3.1.0 sözleşmesinden üretilir.
Tek seferlik mesaj gönderme (202, asenkron teslimat), durum/iptal, alıcı tahmini, teslimat listesi, mesaj geçmişi ve olay dışa aktarımı. Idempotency-Key desteklenir.
Taban adres: https://api.pushizo.com · Etiket: notifications · Etkileşimli belge (Scalar)
İşlemler
| Yöntem | Yol | İşlem |
|---|---|---|
GET | /v1/notifications | Mesaj listesi (app_id zorunlu) |
POST | /v1/notifications | Bildirim oluştur (202, asenkron teslimat) |
POST | /v1/notifications/estimate | Kaydedilmemiş hedef için alıcı sayısı (gönderim yapmaz) |
GET | /v1/notifications/{messageId} | Mesaj durumu ve sayaçları |
DELETE | /v1/notifications/{messageId} | Zamanlanmış/kuyruktaki mesajı iptal et |
GET | /v1/notifications/{messageId}/deliveries | Abone bazlı teslimat sonuçları (cursor) |
GET | /v1/notifications/{messageId}/history | Bildirim geçmişi CSV işi (teslimatlar; tamamlanınca download_url) |
POST | /v1/notifications/{messageId}/export_events | Mesaj olay CSV işi (gönderildi/teslim/açıldı/tıklandı/bounce…; tamamlanınca download_url) |
Ayrıntılar
Mesaj listesi (app_id zorunlu)
Kimlik doğrulama: API anahtarı — kapsam notifications:write veya analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
limit | sorgu | integer | Hayır | Varsayılan: 50; Aralık: 1–200 | 50 |
cursor | sorgu | string | Hayır | Uzunluk: 1–∞ | "eyJpZCI6Im1zZ18wMUpE…" |
app_id | sorgu | string | Hayır | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
source | sorgu | enum | Hayır | Değerler: "campaign", "api", "journey", "test" | "campaign" |
kind | sorgu | enum | Hayır | Değerler: "campaign", "api", "journey", "test" | "campaign" |
status | sorgu | enum | Hayır | Değerler: "queued", "processing", "completed", "cancelled", "failed" | "queued" |
sort | sorgu | enum | Hayır | Değerler: "created_at", "-created_at" | "created_at" |
label | sorgu | string | Hayır | Uzunluk: 1–40 | "external_id" |
Yanıtlar
200 — Başarılı.
Şema: MessageList
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
data | array<object> | Evet | |
data[].id | string | Evet | |
data[].app_id | string | Evet | |
data[].source | enum | Evet | Değerler: "campaign", "api", "journey", "test" |
data[].status | enum | Evet | Değerler: "queued", "processing", "completed", "cancelled", "failed" |
data[].idempotency_key | string | null | Evet | |
data[].name | string | null | Evet | |
data[].content | map<string, any> | Evet | |
data[].target | map<string, any> | Evet | |
data[].options | map<string, any> | Evet | |
data[].labels | array<string> | Evet | |
data[].category | string | null | Evet | |
data[].template_id | string | null | Evet | |
data[].campaign_id | string | null | Evet | |
data[].variants | array<object> | null | Evet | |
data[].counts | object | Evet | |
data[].counts.targeted | integer | Hayır | |
data[].counts.suppressed | integer | Hayır | |
data[].counts.sent | integer | Hayır | |
data[].counts.delivered | integer | Hayır | |
data[].counts.failed | integer | Hayır | |
data[].counts.errored | integer | Hayır | |
data[].counts.expired | integer | Hayır | |
data[].counts.opened | integer | Hayır | |
data[].counts.clicked | integer | Hayır | |
data[].counts.converted | integer | Hayır | |
data[].counts.bounced | integer | Hayır | |
data[].counts.complained | integer | Hayır | |
data[].counts.unsubscribed | integer | Hayır | |
data[].counts.sms_segments | integer | Hayır | |
data[].requested_by | object | Evet | |
data[].requested_by.type | enum | Evet | Değerler: "api_key", "account", "system" |
data[].requested_by.id | string | Hayır | |
data[].error | string | null | Evet | |
data[].scheduled_for | string | null | Evet | |
data[].started_at | string | null | Evet | |
data[].completed_at | string | null | Evet | |
data[].created_at | string | Evet | |
data[].updated_at | string | Evet | |
next_cursor | string | null | Evet | |
has_more | boolean | Evet |
Örnek yanıt:
{
"data": [
{
"name": "Sipariş bildirimleri",
"target": {
"include_external_ids": [
"user_42"
]
},
"status": "queued",
"id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"source": "campaign",
"idempotency_key": "order-1001",
"content": {
"contents": {
"tr": "Siparişiniz yola çıktı"
}
},
"options": {},
"labels": [
"promo"
],
"category": "örnek",
"template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"campaign_id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"variants": [
{
"name": "Sipariş bildirimleri",
"id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"weight_percent": 1,
"is_control": true
}
],
"counts": {
"targeted": 1,
"suppressed": 1
},
"requested_by": {
"type": "api_key",
"id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W"
},
"error": "örnek",
"scheduled_for": "örnek",
"started_at": "örnek",
"completed_at": "örnek",
"created_at": "örnek",
"updated_at": "örnek"
}
],
"next_cursor": "eyJpZCI6Im1zZ18wMUpE…",
"has_more": true
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/notifications?limit=50" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Bildirim oluştur (202, asenkron teslimat)
Kimlik doğrulama: API anahtarı — kapsam notifications:write (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
Idempotency-Key | başlık | string | Hayır | Aynı anahtarla 24 saat içinde tekrarlanan istek aynı mesajı döner (gövdedeki idempotency_key ile eşdeğer). | "order-1001" |
İstek gövdesi (zorunlu)
Şema: CreateNotificationDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
app_id | string | Hayır | Uzunluk: 1–∞ |
idempotency_key | string | Hayır | Uzunluk: 1–255 |
target | object | Evet | |
target.all | boolean | Hayır | |
target.include_subscription_ids | array<string> | Hayır | Öğe: 0–2000 |
target.include_external_ids | array<string> | Hayır | Öğe: 0–2000 |
target.include_aliases | map<string, array<string>> | Hayır | |
target.included_segments | array<string> | Hayır | Öğe: 0–50 |
target.excluded_segments | array<string> | Hayır | Öğe: 0–50 |
target.filters | any | Hayır | |
target.channels | array<enum> | Hayır | Öğe: 1–∞ |
target.test_devices_only | boolean | Hayır | |
target.email_to | array<string> | Hayır | Öğe: 1–2000 |
target.include_phone_numbers | array<string> | Hayır | Öğe: 1–2000 |
headings | map<string, string> | Hayır | |
contents | map<string, string> | Hayır | |
subtitle | map<string, string> | Hayır | |
url | string (url) | Hayır | Uzunluk: 0–2000 |
app_url | string (url) | Hayır | Uzunluk: 0–2000 |
data | map<string, string> | Hayır | |
buttons | array<object> | Hayır | Öğe: 0–3 |
buttons[].id | string | Evet | Uzunluk: 1–64 |
buttons[].text | string | Evet | Uzunluk: 1–100 |
buttons[].icon | string (url) | Hayır | Uzunluk: 0–2000 |
buttons[].url | string (url) | Hayır | Uzunluk: 0–2000 |
big_picture | string (url) | Hayır | Uzunluk: 0–2000 |
ios_attachments | map<string, string (url)> | Hayır | |
ios_sound | string | Hayır | Uzunluk: 0–100 |
ios_badge_type | enum | Hayır | Değerler: "None", "SetTo", "Increase" |
ios_badge_count | integer | Hayır | Aralık: 0–99999 |
ios_interruption_level | enum | Hayır | Değerler: "passive", "active", "time-sensitive", "critical" |
ios_category | string | Hayır | Uzunluk: 0–100 |
thread_id | string | Hayır | Uzunluk: 0–100 |
ios_relevance_score | number | Hayır | Aralık: 0–1 |
target_content_identifier | string | Hayır | Uzunluk: 0–200 |
android_channel_id | string | Hayır | Uzunluk: 0–100 |
android_group | string | Hayır | Uzunluk: 0–100 |
android_sound | string | Hayır | Uzunluk: 0–100 |
small_icon | string | Hayır | Uzunluk: 0–100 |
large_icon | string (url) | string | Hayır | |
android_accent_color | string | Hayır | |
android_visibility | 1 | 0 | -1 | Hayır | |
chrome_web_icon | string (url) | Hayır | Uzunluk: 0–2000 |
chrome_web_image | string (url) | Hayır | Uzunluk: 0–2000 |
chrome_web_badge | string (url) | Hayır | Uzunluk: 0–2000 |
web_push_topic | string | Hayır | Uzunluk: 0–32 |
web_buttons | array<object> | Hayır | Öğe: 0–2 |
web_buttons[].id | string | Evet | Uzunluk: 1–64 |
web_buttons[].text | string | Evet | Uzunluk: 1–100 |
web_buttons[].icon | string (url) | Hayır | Uzunluk: 0–2000 |
web_buttons[].url | string (url) | Hayır | Uzunluk: 0–2000 |
require_interaction | boolean | Hayır | |
content_available | boolean | Hayır | |
mutable_content | boolean | Hayır | |
collapse_id | string | Hayır | Uzunluk: 0–64 |
priority | 5 | 10 | Hayır | |
ttl | integer | Hayır | Aralık: 60–2419200 |
send_after | string (date-time) | Hayır | |
delayed_option | enum | Hayır | Değerler: "timezone", "optimized" |
delivery_time_of_day | string | Hayır | |
template_id | string | Hayır | |
custom_data | map<string, any> | Hayır | |
email_subject | string | Hayır | Uzunluk: 0–998 |
email_body | string | Hayır | Uzunluk: 0–500000 |
email_mjml | string | Hayır | Uzunluk: 0–500000 |
email_preheader | string | Hayır | Uzunluk: 0–500 |
email_from_name | string | Hayır | Uzunluk: 0–200 |
email_from_address | string (email) | Hayır | Uzunluk: 0–320 |
email_reply_to_address | string (email) | Hayır | Uzunluk: 0–320 |
disable_email_click_tracking | boolean | Hayır | |
sms_from | string | Hayır | Uzunluk: 1–20 |
sms_media_urls | array<string (url)> | Hayır | Öğe: 1–10 |
disable_sms_link_shortening | boolean | Hayır | |
whatsapp_template | object | Hayır | |
whatsapp_template.name | string | Evet | |
whatsapp_template.language | string | Evet | |
whatsapp_template.header | object | Hayır | |
whatsapp_template.body_params | array<string> | Hayır | Öğe: 0–20 |
whatsapp_template.button_params | array<object> | Hayır | Öğe: 0–10 |
whatsapp_template.button_params[].index | integer | Evet | Aralık: 0–9 |
whatsapp_template.button_params[].sub_type | enum | Evet | Değerler: "url", "quick_reply", "copy_code" |
whatsapp_template.button_params[].value | string | Evet | Uzunluk: 1–256 |
whatsapp_media | object | Hayır | |
whatsapp_media.type | enum | Evet | Değerler: "image", "video", "document", "audio" |
whatsapp_media.url | string (url) | Evet | Uzunluk: 0–2000 |
whatsapp_media.filename | string | Hayır | Uzunluk: 1–240 |
whatsapp_interactive | object | Hayır | |
whatsapp_interactive.type | enum | Evet | Değerler: "button", "list" |
whatsapp_interactive.header | string | Hayır | Uzunluk: 1–60 |
whatsapp_interactive.footer | string | Hayır | Uzunluk: 1–60 |
whatsapp_interactive.buttons | array<object> | Hayır | Öğe: 1–3 |
whatsapp_interactive.buttons[].id | string | Evet | Uzunluk: 1–256 |
whatsapp_interactive.buttons[].title | string | Evet | Uzunluk: 1–20 |
whatsapp_interactive.list | object | Hayır | |
whatsapp_interactive.list.button | string | Evet | Uzunluk: 1–20 |
whatsapp_interactive.list.sections | array<object> | Evet | Öğe: 1–10 |
whatsapp_interactive.list.sections[].title | string | Hayır | Uzunluk: 1–24 |
whatsapp_interactive.list.sections[].rows | array<object> | Evet | Öğe: 1–10 |
whatsapp_interactive.list.sections[].rows[].id | string | Evet | Uzunluk: 1–200 |
whatsapp_interactive.list.sections[].rows[].title | string | Evet | Uzunluk: 1–24 |
whatsapp_interactive.list.sections[].rows[].description | string | Hayır | Uzunluk: 1–72 |
rcs_card | object | Hayır | |
rcs_card.title | map<string, string> | Hayır | |
rcs_card.description | map<string, string> | Hayır | |
rcs_card.media_url | string (url) | Hayır | Uzunluk: 0–2000 |
rcs_card.media_height | enum | Hayır | Değerler: "SHORT", "MEDIUM", "TALL" |
rcs_card.orientation | enum | Hayır | Değerler: "VERTICAL", "HORIZONTAL" |
rcs_suggestions | array<object> | Hayır | Öğe: 0–11 |
rcs_content_sid | string | Hayır | |
rcs_content_variables | map<string, string> | Hayır | |
rcs_fallback_text | map<string, string> | Hayır | |
add_to_inbox | boolean | Hayır | |
inbox_ttl | integer | Hayır | Aralık: 60–31536000 |
frequency_cap_exempt | boolean | Hayır | |
quiet_hours_exempt | boolean | Hayır | |
one_per_user | boolean | Hayır | |
throttle_rate_per_minute | integer | Hayır | Aralık: 0–1000000 |
include_unsubscribed | boolean | Hayır | |
name | string | Hayır | Uzunluk: 1–200 |
labels | array<string> | Hayır | Öğe: 0–10 |
category | string | Hayır | Uzunluk: 1–64 |
Örnek:
{
"target": {
"include_external_ids": [
"user_42"
],
"channels": [
"ios_push"
],
"all": false
},
"name": "Sipariş bildirimleri",
"headings": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"contents": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"url": "https://example.com/orders/1001",
"data": {
"order_id": "1001"
}
}Yanıtlar
202 — Başarılı.
Şema: CreateNotificationResult
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
status | enum | Evet | Değerler: "queued", "processing", "completed", "cancelled", "failed" |
recipients_estimate | integer | Evet | |
external_id_missing | array<string> | Evet |
Örnek yanıt:
{
"status": "queued",
"id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"recipients_estimate": 1,
"external_id_missing": [
"örnek"
]
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X POST "https://api.pushizo.com/v1/notifications" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Idempotency-Key: order-1001" \
-H "Content-Type: application/json" \
-d '{
"target": {
"include_external_ids": [
"user_42"
],
"channels": [
"ios_push"
],
"all": false
},
"name": "Sipariş bildirimleri",
"headings": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"contents": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"url": "https://example.com/orders/1001",
"data": {
"order_id": "1001"
}
}'Kaydedilmemiş hedef için alıcı sayısı (gönderim yapmaz)
Kimlik doğrulama: API anahtarı — kapsam notifications:write (admin her kapsamı içerir).
İstek gövdesi (zorunlu)
Şema: EstimateAudienceDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
app_id | string | Hayır | Uzunluk: 1–∞ |
target | object | Evet | |
target.all | boolean | Hayır | |
target.include_subscription_ids | array<string> | Hayır | Öğe: 0–2000 |
target.include_external_ids | array<string> | Hayır | Öğe: 0–2000 |
target.include_aliases | map<string, array<string>> | Hayır | |
target.included_segments | array<string> | Hayır | Öğe: 0–50 |
target.excluded_segments | array<string> | Hayır | Öğe: 0–50 |
target.filters | any | Hayır | |
target.channels | array<enum> | Hayır | Öğe: 1–∞ |
target.test_devices_only | boolean | Hayır | |
target.email_to | array<string> | Hayır | Öğe: 1–2000 |
target.include_phone_numbers | array<string> | Hayır | Öğe: 1–2000 |
include_unsubscribed | boolean | Hayır |
Örnek:
{
"target": {
"include_external_ids": [
"user_42"
],
"channels": [
"ios_push"
],
"all": false
},
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"include_unsubscribed": false
}Yanıtlar
200 — Başarılı.
Şema: EstimateAudienceResult
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
recipients | integer | Evet | |
by_channel | map<string, integer> | Evet | |
new_contacts | integer | Evet | |
external_id_missing | array<string> | Evet |
Örnek yanıt:
{
"recipients": 1,
"by_channel": {
"key": 150
},
"new_contacts": 1,
"external_id_missing": [
"örnek"
]
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X POST "https://api.pushizo.com/v1/notifications/estimate" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target": {
"include_external_ids": [
"user_42"
],
"channels": [
"ios_push"
],
"all": false
},
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"include_unsubscribed": false
}'Mesaj durumu ve sayaçları
Kimlik doğrulama: API anahtarı — kapsam notifications:write veya analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
messageId | yol | string | Evet | "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
app_id | sorgu | string | Hayır | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: Message
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
source | enum | Evet | Değerler: "campaign", "api", "journey", "test" |
status | enum | Evet | Değerler: "queued", "processing", "completed", "cancelled", "failed" |
idempotency_key | string | null | Evet | |
name | string | null | Evet | |
content | map<string, any> | Evet | |
target | map<string, any> | Evet | |
options | map<string, any> | Evet | |
labels | array<string> | Evet | |
category | string | null | Evet | |
template_id | string | null | Evet | |
campaign_id | string | null | Evet | |
variants | array<object> | null | Evet | |
counts | object | Evet | |
counts.targeted | integer | Hayır | |
counts.suppressed | integer | Hayır | |
counts.sent | integer | Hayır | |
counts.delivered | integer | Hayır | |
counts.failed | integer | Hayır | |
counts.errored | integer | Hayır | |
counts.expired | integer | Hayır | |
counts.opened | integer | Hayır | |
counts.clicked | integer | Hayır | |
counts.converted | integer | Hayır | |
counts.bounced | integer | Hayır | |
counts.complained | integer | Hayır | |
counts.unsubscribed | integer | Hayır | |
counts.sms_segments | integer | Hayır | |
requested_by | object | Evet | |
requested_by.type | enum | Evet | Değerler: "api_key", "account", "system" |
requested_by.id | string | Hayır | |
error | string | null | Evet | |
scheduled_for | string | null | Evet | |
started_at | string | null | Evet | |
completed_at | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet |
Örnek yanıt:
{
"name": "Sipariş bildirimleri",
"target": {
"include_external_ids": [
"user_42"
]
},
"status": "queued",
"id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"source": "campaign",
"idempotency_key": "order-1001",
"content": {
"contents": {
"tr": "Siparişiniz yola çıktı"
}
},
"options": {},
"labels": [
"promo"
],
"category": "örnek",
"template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"campaign_id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"variants": [
{
"name": "Sipariş bildirimleri",
"id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"weight_percent": 1,
"is_control": true
}
],
"counts": {
"targeted": 1,
"suppressed": 1,
"sent": 1,
"delivered": 1
},
"requested_by": {
"type": "api_key",
"id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W"
},
"error": "örnek",
"scheduled_for": "örnek",
"started_at": "örnek",
"completed_at": "örnek",
"created_at": "örnek",
"updated_at": "örnek"
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/notifications/msg_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Zamanlanmış/kuyruktaki mesajı iptal et
Kimlik doğrulama: API anahtarı — kapsam notifications:write (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
messageId | yol | string | Evet | "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
app_id | sorgu | string | Hayır | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: Message
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
source | enum | Evet | Değerler: "campaign", "api", "journey", "test" |
status | enum | Evet | Değerler: "queued", "processing", "completed", "cancelled", "failed" |
idempotency_key | string | null | Evet | |
name | string | null | Evet | |
content | map<string, any> | Evet | |
target | map<string, any> | Evet | |
options | map<string, any> | Evet | |
labels | array<string> | Evet | |
category | string | null | Evet | |
template_id | string | null | Evet | |
campaign_id | string | null | Evet | |
variants | array<object> | null | Evet | |
counts | object | Evet | |
counts.targeted | integer | Hayır | |
counts.suppressed | integer | Hayır | |
counts.sent | integer | Hayır | |
counts.delivered | integer | Hayır | |
counts.failed | integer | Hayır | |
counts.errored | integer | Hayır | |
counts.expired | integer | Hayır | |
counts.opened | integer | Hayır | |
counts.clicked | integer | Hayır | |
counts.converted | integer | Hayır | |
counts.bounced | integer | Hayır | |
counts.complained | integer | Hayır | |
counts.unsubscribed | integer | Hayır | |
counts.sms_segments | integer | Hayır | |
requested_by | object | Evet | |
requested_by.type | enum | Evet | Değerler: "api_key", "account", "system" |
requested_by.id | string | Hayır | |
error | string | null | Evet | |
scheduled_for | string | null | Evet | |
started_at | string | null | Evet | |
completed_at | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet |
Örnek yanıt:
{
"name": "Sipariş bildirimleri",
"target": {
"include_external_ids": [
"user_42"
]
},
"status": "queued",
"id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"source": "campaign",
"idempotency_key": "order-1001",
"content": {
"contents": {
"tr": "Siparişiniz yola çıktı"
}
},
"options": {},
"labels": [
"promo"
],
"category": "örnek",
"template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"campaign_id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"variants": [
{
"name": "Sipariş bildirimleri",
"id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"weight_percent": 1,
"is_control": true
}
],
"counts": {
"targeted": 1,
"suppressed": 1,
"sent": 1,
"delivered": 1
},
"requested_by": {
"type": "api_key",
"id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W"
},
"error": "örnek",
"scheduled_for": "örnek",
"started_at": "örnek",
"completed_at": "örnek",
"created_at": "örnek",
"updated_at": "örnek"
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X DELETE "https://api.pushizo.com/v1/notifications/msg_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Abone bazlı teslimat sonuçları (cursor)
Kimlik doğrulama: API anahtarı — kapsam notifications:write (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
messageId | yol | string | Evet | "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
limit | sorgu | integer | Hayır | Varsayılan: 50; Aralık: 1–200 | 50 |
cursor | sorgu | string | Hayır | Uzunluk: 1–∞ | "eyJpZCI6Im1zZ18wMUpE…" |
app_id | sorgu | string | Hayır | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
status | sorgu | enum | Hayır | Değerler: "pending", "sent", "delivered", "failed", "bounced", "suppressed", "expired", "cancelled" | "pending" |
Yanıtlar
200 — Başarılı.
Şema: DeliveryList
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
data | array<object> | Evet | |
data[].id | string | Evet | |
data[].message_id | string | Evet | |
data[].subscription_id | string | Evet | |
data[].user_id | string | null | Evet | |
data[].channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
data[].provider | string | null | Evet | |
data[].status | enum | Evet | Değerler: "pending", "sent", "delivered", "failed", "bounced", "suppressed", "expired", "cancelled" |
data[].attempt_count | integer | Evet | |
data[].provider_message_id | string | null | Evet | |
data[].error_code | string | null | Evet | |
data[].error_message | string | null | Evet | |
data[].suppression_reason | string | null | Evet | |
data[].send_after | string | null | Evet | |
data[].sent_at | string | null | Evet | |
data[].delivered_at | string | null | Evet | |
data[].opened_at | string | null | Evet | |
data[].clicked_at | string | null | Evet | |
data[].failed_at | string | null | Evet | |
data[].created_at | string | Evet | |
next_cursor | string | null | Evet | |
has_more | boolean | Evet |
Örnek yanıt:
{
"data": [
{
"channel": "ios_push",
"status": "pending",
"send_after": "örnek",
"id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"message_id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"provider": "örnek",
"attempt_count": 1,
"provider_message_id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"error_code": "örnek",
"error_message": "örnek",
"suppression_reason": "örnek",
"sent_at": "örnek",
"delivered_at": "örnek",
"opened_at": "örnek",
"clicked_at": "örnek",
"failed_at": "örnek",
"created_at": "örnek"
}
],
"next_cursor": "eyJpZCI6Im1zZ18wMUpE…",
"has_more": true
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/notifications/msg_01JD3W5Q7X9K2M4N6P8R0T1V3W/deliveries?limit=50" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Bildirim geçmişi CSV işi (teslimatlar; tamamlanınca download_url)
Kimlik doğrulama: API anahtarı — kapsam notifications:write (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
messageId | yol | string | Evet | "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
app_id | sorgu | string | Hayır | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: Export
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
type | enum | Evet | Değerler: "users", "subscriptions", "events", "deliveries", "message_events" |
filters | object | Evet | |
filters.from | string (date-time) | Hayır | |
filters.to | string (date-time) | Hayır | |
filters.name | string | Hayır | Uzunluk: 0–100 |
filters.message_id | string | Hayır | Uzunluk: 0–64 |
filters.campaign_id | string | Hayır | Uzunluk: 0–64 |
filters.status | string | Hayır | Uzunluk: 0–32 |
filters.channel | enum | Hayır | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
filters.segment_id | string | Hayır | Uzunluk: 0–64 |
status | enum | Evet | Değerler: "pending", "running", "completed", "failed" |
row_count | integer | null | Evet | |
error | string | null | Evet | |
download_url | string | null | Evet | |
expires_at | string | null | Evet | |
requested_by | string | null | Evet | |
created_at | string | Evet | |
completed_at | string | null | Evet |
Örnek yanıt:
{
"type": "users",
"status": "pending",
"id": "exp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"filters": {
"name": "Sipariş bildirimleri",
"channel": "ios_push",
"status": "örnek",
"from": "2026-10-17T09:00:00Z"
},
"row_count": 1,
"error": "örnek",
"download_url": "https://example.com/orders/1001",
"expires_at": "örnek",
"requested_by": "örnek",
"created_at": "örnek",
"completed_at": "örnek"
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/notifications/msg_01JD3W5Q7X9K2M4N6P8R0T1V3W/history" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Mesaj olay CSV işi (gönderildi/teslim/açıldı/tıklandı/bounce…; tamamlanınca download_url)
Kimlik doğrulama: API anahtarı — kapsam notifications:write (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
messageId | yol | string | Evet | "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
app_id | sorgu | string | Hayır | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
202 — Başarılı.
Şema: Export
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
type | enum | Evet | Değerler: "users", "subscriptions", "events", "deliveries", "message_events" |
filters | object | Evet | |
filters.from | string (date-time) | Hayır | |
filters.to | string (date-time) | Hayır | |
filters.name | string | Hayır | Uzunluk: 0–100 |
filters.message_id | string | Hayır | Uzunluk: 0–64 |
filters.campaign_id | string | Hayır | Uzunluk: 0–64 |
filters.status | string | Hayır | Uzunluk: 0–32 |
filters.channel | enum | Hayır | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
filters.segment_id | string | Hayır | Uzunluk: 0–64 |
status | enum | Evet | Değerler: "pending", "running", "completed", "failed" |
row_count | integer | null | Evet | |
error | string | null | Evet | |
download_url | string | null | Evet | |
expires_at | string | null | Evet | |
requested_by | string | null | Evet | |
created_at | string | Evet | |
completed_at | string | null | Evet |
Örnek yanıt:
{
"type": "users",
"status": "pending",
"id": "exp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"filters": {
"name": "Sipariş bildirimleri",
"channel": "ios_push",
"status": "örnek",
"from": "2026-10-17T09:00:00Z"
},
"row_count": 1,
"error": "örnek",
"download_url": "https://example.com/orders/1001",
"expires_at": "örnek",
"requested_by": "örnek",
"created_at": "örnek",
"completed_at": "örnek"
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X POST "https://api.pushizo.com/v1/notifications/msg_01JD3W5Q7X9K2M4N6P8R0T1V3W/export_events" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Kanallar
Kanallar — 3 işlem (GET /v1/apps/{appId}/channels, PUT /v1/apps/{appId}/channels/{channel}, POST /v1/apps/{appId}/channels/{channel}/validate). OpenAPI 3.1.0 sözleşmesinden üretilir.
Kullanıcılar ve abonelikler
Kullanıcılar ve abonelikler — 18 işlem (GET /v1/apps/{appId}/users, POST /v1/apps/{appId}/users, POST /v1/apps/{appId}/users/search, …). OpenAPI 3.1.0 sözleşmesinden üretilir.