PushizoDocs
API referansı

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öntemYolİşlem
GET/v1/notificationsMesaj listesi (app_id zorunlu)
POST/v1/notificationsBildirim oluştur (202, asenkron teslimat)
POST/v1/notifications/estimateKaydedilmemiş 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}/deliveriesAbone bazlı teslimat sonuçları (cursor)
GET/v1/notifications/{messageId}/historyBildirim geçmişi CSV işi (teslimatlar; tamamlanınca download_url)
POST/v1/notifications/{messageId}/export_eventsMesaj 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

AdKonumTürZorunluAçıklamaÖrnek
limitsorguintegerHayırVarsayılan: 50; Aralık: 1–20050
cursorsorgustringHayırUzunluk: 1–∞"eyJpZCI6Im1zZ18wMUpE…"
app_idsorgustringHayır"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"
sourcesorguenumHayırDeğerler: "campaign", "api", "journey", "test""campaign"
kindsorguenumHayırDeğerler: "campaign", "api", "journey", "test""campaign"
statussorguenumHayırDeğerler: "queued", "processing", "completed", "cancelled", "failed""queued"
sortsorguenumHayırDeğerler: "created_at", "-created_at""created_at"
labelsorgustringHayırUzunluk: 1–40"external_id"

Yanıtlar

200 — Başarılı.

Şema: MessageList

AlanTürZorunluAçıklama
dataarray<object>Evet
data[].idstringEvet
data[].app_idstringEvet
data[].sourceenumEvetDeğerler: "campaign", "api", "journey", "test"
data[].statusenumEvetDeğerler: "queued", "processing", "completed", "cancelled", "failed"
data[].idempotency_keystring | nullEvet
data[].namestring | nullEvet
data[].contentmap<string, any>Evet
data[].targetmap<string, any>Evet
data[].optionsmap<string, any>Evet
data[].labelsarray<string>Evet
data[].categorystring | nullEvet
data[].template_idstring | nullEvet
data[].campaign_idstring | nullEvet
data[].variantsarray<object> | nullEvet
data[].countsobjectEvet
data[].counts.targetedintegerHayır
data[].counts.suppressedintegerHayır
data[].counts.sentintegerHayır
data[].counts.deliveredintegerHayır
data[].counts.failedintegerHayır
data[].counts.erroredintegerHayır
data[].counts.expiredintegerHayır
data[].counts.openedintegerHayır
data[].counts.clickedintegerHayır
data[].counts.convertedintegerHayır
data[].counts.bouncedintegerHayır
data[].counts.complainedintegerHayır
data[].counts.unsubscribedintegerHayır
data[].counts.sms_segmentsintegerHayır
data[].requested_byobjectEvet
data[].requested_by.typeenumEvetDeğerler: "api_key", "account", "system"
data[].requested_by.idstringHayır
data[].errorstring | nullEvet
data[].scheduled_forstring | nullEvet
data[].started_atstring | nullEvet
data[].completed_atstring | nullEvet
data[].created_atstringEvet
data[].updated_atstringEvet
next_cursorstring | nullEvet
has_morebooleanEvet

Ö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

AdKonumTürZorunluAçıklamaÖrnek
Idempotency-KeybaşlıkstringHayırAynı 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

AlanTürZorunluAçıklama
app_idstringHayırUzunluk: 1–∞
idempotency_keystringHayırUzunluk: 1–255
targetobjectEvet
target.allbooleanHayır
target.include_subscription_idsarray<string>HayırÖğe: 0–2000
target.include_external_idsarray<string>HayırÖğe: 0–2000
target.include_aliasesmap<string, array<string>>Hayır
target.included_segmentsarray<string>HayırÖğe: 0–50
target.excluded_segmentsarray<string>HayırÖğe: 0–50
target.filtersanyHayır
target.channelsarray<enum>HayırÖğe: 1–∞
target.test_devices_onlybooleanHayır
target.email_toarray<string>HayırÖğe: 1–2000
target.include_phone_numbersarray<string>HayırÖğe: 1–2000
headingsmap<string, string>Hayır
contentsmap<string, string>Hayır
subtitlemap<string, string>Hayır
urlstring (url)HayırUzunluk: 0–2000
app_urlstring (url)HayırUzunluk: 0–2000
datamap<string, string>Hayır
buttonsarray<object>HayırÖğe: 0–3
buttons[].idstringEvetUzunluk: 1–64
buttons[].textstringEvetUzunluk: 1–100
buttons[].iconstring (url)HayırUzunluk: 0–2000
buttons[].urlstring (url)HayırUzunluk: 0–2000
big_picturestring (url)HayırUzunluk: 0–2000
ios_attachmentsmap<string, string (url)>Hayır
ios_soundstringHayırUzunluk: 0–100
ios_badge_typeenumHayırDeğerler: "None", "SetTo", "Increase"
ios_badge_countintegerHayırAralık: 0–99999
ios_interruption_levelenumHayırDeğerler: "passive", "active", "time-sensitive", "critical"
ios_categorystringHayırUzunluk: 0–100
thread_idstringHayırUzunluk: 0–100
ios_relevance_scorenumberHayırAralık: 0–1
target_content_identifierstringHayırUzunluk: 0–200
android_channel_idstringHayırUzunluk: 0–100
android_groupstringHayırUzunluk: 0–100
android_soundstringHayırUzunluk: 0–100
small_iconstringHayırUzunluk: 0–100
large_iconstring (url) | stringHayır
android_accent_colorstringHayır
android_visibility1 | 0 | -1Hayır
chrome_web_iconstring (url)HayırUzunluk: 0–2000
chrome_web_imagestring (url)HayırUzunluk: 0–2000
chrome_web_badgestring (url)HayırUzunluk: 0–2000
web_push_topicstringHayırUzunluk: 0–32
web_buttonsarray<object>HayırÖğe: 0–2
web_buttons[].idstringEvetUzunluk: 1–64
web_buttons[].textstringEvetUzunluk: 1–100
web_buttons[].iconstring (url)HayırUzunluk: 0–2000
web_buttons[].urlstring (url)HayırUzunluk: 0–2000
require_interactionbooleanHayır
content_availablebooleanHayır
mutable_contentbooleanHayır
collapse_idstringHayırUzunluk: 0–64
priority5 | 10Hayır
ttlintegerHayırAralık: 60–2419200
send_afterstring (date-time)Hayır
delayed_optionenumHayırDeğerler: "timezone", "optimized"
delivery_time_of_daystringHayır
template_idstringHayır
custom_datamap<string, any>Hayır
email_subjectstringHayırUzunluk: 0–998
email_bodystringHayırUzunluk: 0–500000
email_mjmlstringHayırUzunluk: 0–500000
email_preheaderstringHayırUzunluk: 0–500
email_from_namestringHayırUzunluk: 0–200
email_from_addressstring (email)HayırUzunluk: 0–320
email_reply_to_addressstring (email)HayırUzunluk: 0–320
disable_email_click_trackingbooleanHayır
sms_fromstringHayırUzunluk: 1–20
sms_media_urlsarray<string (url)>HayırÖğe: 1–10
disable_sms_link_shorteningbooleanHayır
whatsapp_templateobjectHayır
whatsapp_template.namestringEvet
whatsapp_template.languagestringEvet
whatsapp_template.headerobjectHayır
whatsapp_template.body_paramsarray<string>HayırÖğe: 0–20
whatsapp_template.button_paramsarray<object>HayırÖğe: 0–10
whatsapp_template.button_params[].indexintegerEvetAralık: 0–9
whatsapp_template.button_params[].sub_typeenumEvetDeğerler: "url", "quick_reply", "copy_code"
whatsapp_template.button_params[].valuestringEvetUzunluk: 1–256
whatsapp_mediaobjectHayır
whatsapp_media.typeenumEvetDeğerler: "image", "video", "document", "audio"
whatsapp_media.urlstring (url)EvetUzunluk: 0–2000
whatsapp_media.filenamestringHayırUzunluk: 1–240
whatsapp_interactiveobjectHayır
whatsapp_interactive.typeenumEvetDeğerler: "button", "list"
whatsapp_interactive.headerstringHayırUzunluk: 1–60
whatsapp_interactive.footerstringHayırUzunluk: 1–60
whatsapp_interactive.buttonsarray<object>HayırÖğe: 1–3
whatsapp_interactive.buttons[].idstringEvetUzunluk: 1–256
whatsapp_interactive.buttons[].titlestringEvetUzunluk: 1–20
whatsapp_interactive.listobjectHayır
whatsapp_interactive.list.buttonstringEvetUzunluk: 1–20
whatsapp_interactive.list.sectionsarray<object>EvetÖğe: 1–10
whatsapp_interactive.list.sections[].titlestringHayırUzunluk: 1–24
whatsapp_interactive.list.sections[].rowsarray<object>EvetÖğe: 1–10
whatsapp_interactive.list.sections[].rows[].idstringEvetUzunluk: 1–200
whatsapp_interactive.list.sections[].rows[].titlestringEvetUzunluk: 1–24
whatsapp_interactive.list.sections[].rows[].descriptionstringHayırUzunluk: 1–72
rcs_cardobjectHayır
rcs_card.titlemap<string, string>Hayır
rcs_card.descriptionmap<string, string>Hayır
rcs_card.media_urlstring (url)HayırUzunluk: 0–2000
rcs_card.media_heightenumHayırDeğerler: "SHORT", "MEDIUM", "TALL"
rcs_card.orientationenumHayırDeğerler: "VERTICAL", "HORIZONTAL"
rcs_suggestionsarray<object>HayırÖğe: 0–11
rcs_content_sidstringHayır
rcs_content_variablesmap<string, string>Hayır
rcs_fallback_textmap<string, string>Hayır
add_to_inboxbooleanHayır
inbox_ttlintegerHayırAralık: 60–31536000
frequency_cap_exemptbooleanHayır
quiet_hours_exemptbooleanHayır
one_per_userbooleanHayır
throttle_rate_per_minuteintegerHayırAralık: 0–1000000
include_unsubscribedbooleanHayır
namestringHayırUzunluk: 1–200
labelsarray<string>HayırÖğe: 0–10
categorystringHayırUzunluk: 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

AlanTürZorunluAçıklama
idstringEvet
statusenumEvetDeğerler: "queued", "processing", "completed", "cancelled", "failed"
recipients_estimateintegerEvet
external_id_missingarray<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)

POST/v1/notifications/estimateDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam notifications:write (admin her kapsamı içerir).

İstek gövdesi (zorunlu)

Şema: EstimateAudienceDto

AlanTürZorunluAçıklama
app_idstringHayırUzunluk: 1–∞
targetobjectEvet
target.allbooleanHayır
target.include_subscription_idsarray<string>HayırÖğe: 0–2000
target.include_external_idsarray<string>HayırÖğe: 0–2000
target.include_aliasesmap<string, array<string>>Hayır
target.included_segmentsarray<string>HayırÖğe: 0–50
target.excluded_segmentsarray<string>HayırÖğe: 0–50
target.filtersanyHayır
target.channelsarray<enum>HayırÖğe: 1–∞
target.test_devices_onlybooleanHayır
target.email_toarray<string>HayırÖğe: 1–2000
target.include_phone_numbersarray<string>HayırÖğe: 1–2000
include_unsubscribedbooleanHayı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

AlanTürZorunluAçıklama
recipientsintegerEvet
by_channelmap<string, integer>Evet
new_contactsintegerEvet
external_id_missingarray<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ı

GET/v1/notifications/{messageId}Dene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam notifications:write veya analytics:read (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
messageIdyolstringEvet"msg_01JD3W5Q7X9K2M4N6P8R0T1V3W"
app_idsorgustringHayır"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: Message

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
sourceenumEvetDeğerler: "campaign", "api", "journey", "test"
statusenumEvetDeğerler: "queued", "processing", "completed", "cancelled", "failed"
idempotency_keystring | nullEvet
namestring | nullEvet
contentmap<string, any>Evet
targetmap<string, any>Evet
optionsmap<string, any>Evet
labelsarray<string>Evet
categorystring | nullEvet
template_idstring | nullEvet
campaign_idstring | nullEvet
variantsarray<object> | nullEvet
countsobjectEvet
counts.targetedintegerHayır
counts.suppressedintegerHayır
counts.sentintegerHayır
counts.deliveredintegerHayır
counts.failedintegerHayır
counts.erroredintegerHayır
counts.expiredintegerHayır
counts.openedintegerHayır
counts.clickedintegerHayır
counts.convertedintegerHayır
counts.bouncedintegerHayır
counts.complainedintegerHayır
counts.unsubscribedintegerHayır
counts.sms_segmentsintegerHayır
requested_byobjectEvet
requested_by.typeenumEvetDeğerler: "api_key", "account", "system"
requested_by.idstringHayır
errorstring | nullEvet
scheduled_forstring | nullEvet
started_atstring | nullEvet
completed_atstring | nullEvet
created_atstringEvet
updated_atstringEvet

Ö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

DELETE/v1/notifications/{messageId}Dene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam notifications:write (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
messageIdyolstringEvet"msg_01JD3W5Q7X9K2M4N6P8R0T1V3W"
app_idsorgustringHayır"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: Message

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
sourceenumEvetDeğerler: "campaign", "api", "journey", "test"
statusenumEvetDeğerler: "queued", "processing", "completed", "cancelled", "failed"
idempotency_keystring | nullEvet
namestring | nullEvet
contentmap<string, any>Evet
targetmap<string, any>Evet
optionsmap<string, any>Evet
labelsarray<string>Evet
categorystring | nullEvet
template_idstring | nullEvet
campaign_idstring | nullEvet
variantsarray<object> | nullEvet
countsobjectEvet
counts.targetedintegerHayır
counts.suppressedintegerHayır
counts.sentintegerHayır
counts.deliveredintegerHayır
counts.failedintegerHayır
counts.erroredintegerHayır
counts.expiredintegerHayır
counts.openedintegerHayır
counts.clickedintegerHayır
counts.convertedintegerHayır
counts.bouncedintegerHayır
counts.complainedintegerHayır
counts.unsubscribedintegerHayır
counts.sms_segmentsintegerHayır
requested_byobjectEvet
requested_by.typeenumEvetDeğerler: "api_key", "account", "system"
requested_by.idstringHayır
errorstring | nullEvet
scheduled_forstring | nullEvet
started_atstring | nullEvet
completed_atstring | nullEvet
created_atstringEvet
updated_atstringEvet

Ö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)

GET/v1/notifications/{messageId}/deliveriesDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam notifications:write (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
messageIdyolstringEvet"msg_01JD3W5Q7X9K2M4N6P8R0T1V3W"
limitsorguintegerHayırVarsayılan: 50; Aralık: 1–20050
cursorsorgustringHayırUzunluk: 1–∞"eyJpZCI6Im1zZ18wMUpE…"
app_idsorgustringHayır"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"
statussorguenumHayırDeğerler: "pending", "sent", "delivered", "failed", "bounced", "suppressed", "expired", "cancelled""pending"

Yanıtlar

200 — Başarılı.

Şema: DeliveryList

AlanTürZorunluAçıklama
dataarray<object>Evet
data[].idstringEvet
data[].message_idstringEvet
data[].subscription_idstringEvet
data[].user_idstring | nullEvet
data[].channelenumEvetDeğerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs"
data[].providerstring | nullEvet
data[].statusenumEvetDeğerler: "pending", "sent", "delivered", "failed", "bounced", "suppressed", "expired", "cancelled"
data[].attempt_countintegerEvet
data[].provider_message_idstring | nullEvet
data[].error_codestring | nullEvet
data[].error_messagestring | nullEvet
data[].suppression_reasonstring | nullEvet
data[].send_afterstring | nullEvet
data[].sent_atstring | nullEvet
data[].delivered_atstring | nullEvet
data[].opened_atstring | nullEvet
data[].clicked_atstring | nullEvet
data[].failed_atstring | nullEvet
data[].created_atstringEvet
next_cursorstring | nullEvet
has_morebooleanEvet

Ö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)

GET/v1/notifications/{messageId}/historyDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam notifications:write (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
messageIdyolstringEvet"msg_01JD3W5Q7X9K2M4N6P8R0T1V3W"
app_idsorgustringHayır"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: Export

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
typeenumEvetDeğerler: "users", "subscriptions", "events", "deliveries", "message_events"
filtersobjectEvet
filters.fromstring (date-time)Hayır
filters.tostring (date-time)Hayır
filters.namestringHayırUzunluk: 0–100
filters.message_idstringHayırUzunluk: 0–64
filters.campaign_idstringHayırUzunluk: 0–64
filters.statusstringHayırUzunluk: 0–32
filters.channelenumHayırDeğerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs"
filters.segment_idstringHayırUzunluk: 0–64
statusenumEvetDeğerler: "pending", "running", "completed", "failed"
row_countinteger | nullEvet
errorstring | nullEvet
download_urlstring | nullEvet
expires_atstring | nullEvet
requested_bystring | nullEvet
created_atstringEvet
completed_atstring | nullEvet

Ö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)

POST/v1/notifications/{messageId}/export_eventsDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam notifications:write (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
messageIdyolstringEvet"msg_01JD3W5Q7X9K2M4N6P8R0T1V3W"
app_idsorgustringHayır"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

202 — Başarılı.

Şema: Export

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
typeenumEvetDeğerler: "users", "subscriptions", "events", "deliveries", "message_events"
filtersobjectEvet
filters.fromstring (date-time)Hayır
filters.tostring (date-time)Hayır
filters.namestringHayırUzunluk: 0–100
filters.message_idstringHayırUzunluk: 0–64
filters.campaign_idstringHayırUzunluk: 0–64
filters.statusstringHayırUzunluk: 0–32
filters.channelenumHayırDeğerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs"
filters.segment_idstringHayırUzunluk: 0–64
statusenumEvetDeğerler: "pending", "running", "completed", "failed"
row_countinteger | nullEvet
errorstring | nullEvet
download_urlstring | nullEvet
expires_atstring | nullEvet
requested_bystring | nullEvet
created_atstringEvet
completed_atstring | nullEvet

Ö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"

Bu sayfada