PushizoDocs
API referansı

Kampanyalar

Kampanyalar — 18 işlem (GET /v1/apps/{appId}/campaigns, POST /v1/apps/{appId}/campaigns, GET /v1/apps/{appId}/campaigns/{campaignId}, …). OpenAPI 3.1.0 sözleşmesinden üretilir.

Kampanya yaşam döngüsü: oluşturma, zamanlama, gönderme, duraklatma/sürdürme, iptal, onay, A/B varyant istatistikleri ve kazanan seçimi.

Taban adres: https://api.pushizo.com · Etiket: campaigns · Etkileşimli belge (Scalar)

İşlemler

YöntemYolİşlem
GET/v1/apps/{appId}/campaignsKampanya listesi
POST/v1/apps/{appId}/campaignsKampanya oluştur
GET/v1/apps/{appId}/campaigns/{campaignId}Kampanya detayı
PATCH/v1/apps/{appId}/campaigns/{campaignId}Kampanya güncelle
DELETE/v1/apps/{appId}/campaigns/{campaignId}Kampanya sil
POST/v1/apps/{appId}/campaigns/{campaignId}/scheduleZamanla
POST/v1/apps/{appId}/campaigns/{campaignId}/sendHemen gönder
POST/v1/apps/{appId}/campaigns/{campaignId}/pauseDuraklat
POST/v1/apps/{appId}/campaigns/{campaignId}/resumeSürdür
POST/v1/apps/{appId}/campaigns/{campaignId}/cancelİptal
POST/v1/apps/{appId}/campaigns/{campaignId}/duplicateÇoğalt
POST/v1/apps/{appId}/campaigns/{campaignId}/approveOnayla
GET/v1/apps/{appId}/campaigns/{campaignId}/statsİstatistikler
GET/v1/apps/{appId}/campaigns/{campaignId}/variants/statsA/B varyant karşılaştırması
POST/v1/apps/{appId}/campaigns/{campaignId}/winnerA/B kazananını seç
GET/v1/apps/{appId}/campaigns/{campaignId}/deliveriesAbone bazlı teslimatlar
POST/v1/apps/{appId}/campaigns/{campaignId}/resend-failedBaşarısız teslimatlara yeniden gönder
GET/v1/apps/{appId}/campaigns/{campaignId}/messagesKampanya çalıştırmaları

Ayrıntılar

Kampanya listesi

GET/v1/apps/{appId}/campaignsDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
limitsorguintegerHayırVarsayılan: 50; Aralık: 1–20050
cursorsorgustringHayırUzunluk: 1–∞"eyJpZCI6Im1zZ18wMUpE…"
qsorgustringHayırUzunluk: 1–100"ayse"
statussorguenumHayırDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed""draft"
typesorguenumHayırDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional""one_time"
channelsorguenumHayırDeğerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs""ios_push"
labelsorgustringHayırUzunluk: 1–40"external_id"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: CampaignPage

AlanTürZorunluAçıklama
dataarray<object>Evet
data[].idstringEvet
data[].app_idstringEvet
data[].namestringEvet
data[].labelsarray<string>Evet
data[].categorystring | nullEvet
data[].ab_testobjectEvet
data[].ab_test.enabledbooleanHayır
data[].ab_test.test_percentageintegerHayırAralık: 1–100
data[].ab_test.winnerobjectHayır
data[].ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
data[].ab_test.winner_variant_idstringHayır
data[].ab_test.decided_atstringHayır
data[].ab_test.decided_bystringHayır
data[].ab_test.significanceobjectHayır
data[].variantsarray<object>Evet
data[].variants[].idstringEvet
data[].variants[].namestringEvet
data[].variants[].weight_percentintegerEvet
data[].variants[].contentmap<string, any> | nullEvet
data[].variants[].is_controlbooleanEvet
data[].variants[].positionintegerEvet
data[].typeenumEvetDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional"
data[].statusenumEvetDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed"
data[].audiencemap<string, any>Evet
data[].contentmap<string, any>Evet
data[].template_idstring | nullEvet
data[].template_versioninteger | nullEvet
data[].deliveryobjectEvet
data[].delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
data[].delivery.delivery_time_of_daystringHayır
data[].delivery.throttle_per_minuteintegerHayırAralık: 1–1000000
data[].delivery.ttlintegerHayırAralık: 60–2419200
data[].delivery.priority5 | 10Hayır
data[].delivery.collapse_idstringHayırUzunluk: 0–64
data[].delivery.frequency_cap_exemptbooleanHayır
data[].delivery.quiet_hours_exemptbooleanHayır
data[].delivery.one_per_userbooleanHayır
data[].recurrenceobject | nullEvet
data[].approvalobjectEvet
data[].approval.requiredbooleanEvet
data[].approval.pending_actionenumHayırDeğerler: "send", "schedule"
data[].approval.requested_bystringHayır
data[].approval.requested_atstringHayır
data[].approval.approved_bystringHayır
data[].approval.approved_atstringHayır
data[].approval.rejected_bystringHayır
data[].approval.rejected_atstringHayır
data[].statsobjectEvet
data[].stats.runsintegerHayır
data[].stats.targetedintegerHayır
data[].stats.suppressedintegerHayır
data[].stats.sentintegerHayır
data[].stats.deliveredintegerHayır
data[].stats.failedintegerHayır
data[].stats.openedintegerHayır
data[].stats.clickedintegerHayır
data[].stats.convertedintegerHayır
data[].stats.bouncedintegerHayır
data[].stats.complainedintegerHayır
data[].stats.unsubscribedintegerHayır
data[].stats.sms_segmentsintegerHayır
data[].send_atstring | nullEvet
data[].next_run_atstring | nullEvet
data[].last_run_atstring | nullEvet
data[].run_countintegerEvet
data[].errorstring | nullEvet
data[].created_bystring | nullEvet
data[].started_atstring | nullEvet
data[].completed_atstring | nullEvet
data[].created_atstringEvet
data[].updated_atstringEvet
data[].estimated_recipientsinteger | nullEvet
next_cursorstring | nullEvet
has_morebooleanEvet

Örnek yanıt:

{
  "data": [
    {
      "name": "Sipariş bildirimleri",
      "type": "one_time",
      "status": "draft",
      "id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "labels": [
        "promo"
      ],
      "category": "örnek",
      "ab_test": {
        "enabled": true,
        "test_percentage": 1
      },
      "variants": [
        {
          "name": "Sipariş bildirimleri",
          "id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
          "weight_percent": 1,
          "content": {},
          "is_control": true,
          "position": 1
        }
      ],
      "audience": {
        "key": "örnek"
      },
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "template_version": 1,
      "delivery": {
        "ttl": 86400,
        "timezone_mode": "immediate"
      },
      "recurrence": {
        "cron": "xxxxxxxxx",
        "until": "2026-10-17T09:00:00Z",
        "timezone": "Europe/Istanbul"
      },
      "approval": {
        "required": true,
        "pending_action": "send",
        "requested_by": "örnek"
      },
      "stats": {
        "runs": 1,
        "targeted": 1
      },
      "send_at": "örnek",
      "next_run_at": "örnek",
      "last_run_at": "örnek",
      "run_count": 1,
      "error": "örnek",
      "created_by": "örnek",
      "started_at": "örnek",
      "completed_at": "örnek",
      "created_at": "örnek",
      "updated_at": "örnek",
      "estimated_recipients": 1
    }
  ],
  "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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns?limit=50" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Kampanya oluştur

POST/v1/apps/{appId}/campaignsDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

İstek gövdesi (zorunlu)

AlanTürZorunluAçıklama
namestringHayırUzunluk: 2–120
typeenumHayırDeğerler: "one_time", "scheduled", "recurring"
audienceobjectHayır
audience.allbooleanHayır
audience.segmentsarray<string>Hayır
audience.exclude_segmentsarray<string>Hayır
audience.filtersobjectHayırFiltre AST: all/any/none grupları ve { field, op, value } koşulları (docs/plan/05 §5.7).
audience.filters.allarray<object>Hayır
audience.filters.anyarray<object>Hayır
audience.filters.nonearray<object>Hayır
audience.channelsarray<enum>Hayır
audience.test_devices_onlybooleanHayır
contentobjectHayırmessages.content ile aynı şema (headings, contents, url, buttons…)
labelsarray<string>HayırÖğe: 0–10
categorystring | nullHayırTercih kategorisi anahtarı; kapalı kullanıcılar bastırılır
ab_testobjectHayır
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumHayırDeğerler: "manual", "auto"
ab_test.winner.metricenumHayırDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–∞
variantsarray<object>HayırA/B varyantları (ağırlıklar toplamı 100; en fazla bir is_control). Öğe: 0–10
variants[].idstringHayır
variants[].namestringEvetUzunluk: 0–60
variants[].weight_percentintegerEvetAralık: 1–99
variants[].contentobject | nullHayır
variants[].is_controlbooleanHayır
template_idstringHayır
template_versionintegerHayır
deliveryobjectHayır
delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
delivery.delivery_time_of_daystringHayır
delivery.throttle_per_minuteintegerHayır
delivery.ttlintegerHayır
delivery.priorityenumHayırDeğerler: 5, 10
delivery.collapse_idstringHayır
delivery.frequency_cap_exemptbooleanHayır
delivery.quiet_hours_exemptbooleanHayır
delivery.one_per_userbooleanHayır
recurrenceobject | nullHayır
recurrence.cronstringHayır
recurrence.untilstring (date-time) | nullHayır
recurrence.timezonestringHayır
send_atstring (date-time) | nullHayır

Örnek:

{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "audience": {
    "channels": [
      "ios_push"
    ],
    "all": false,
    "segments": [
      "örnek"
    ]
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "labels": [
    "promo"
  ]
}

Yanıtlar

200 — Başarılı.

Şema: Campaign

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
labelsarray<string>Evet
categorystring | nullEvet
ab_testobjectEvet
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumEvetDeğerler: "manual", "auto"
ab_test.winner.metricenumEvetDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–10080
ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
ab_test.winner_variant_idstringHayır
ab_test.decided_atstringHayır
ab_test.decided_bystringHayır
ab_test.significanceobjectHayır
ab_test.significance.p_valuenumberEvet
ab_test.significance.significantbooleanEvet
ab_test.significance.metricstringEvet
variantsarray<object>Evet
variants[].idstringEvet
variants[].namestringEvet
variants[].weight_percentintegerEvet
variants[].contentmap<string, any> | nullEvet
variants[].is_controlbooleanEvet
variants[].positionintegerEvet
typeenumEvetDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional"
statusenumEvetDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed"
audiencemap<string, any>Evet
contentmap<string, any>Evet
template_idstring | nullEvet
template_versioninteger | nullEvet
deliveryobjectEvet
delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
delivery.delivery_time_of_daystringHayır
delivery.throttle_per_minuteintegerHayırAralık: 1–1000000
delivery.ttlintegerHayırAralık: 60–2419200
delivery.priority5 | 10Hayır
delivery.collapse_idstringHayırUzunluk: 0–64
delivery.frequency_cap_exemptbooleanHayır
delivery.quiet_hours_exemptbooleanHayır
delivery.one_per_userbooleanHayır
recurrenceobject | nullEvet
approvalobjectEvet
approval.requiredbooleanEvet
approval.pending_actionenumHayırDeğerler: "send", "schedule"
approval.requested_bystringHayır
approval.requested_atstringHayır
approval.approved_bystringHayır
approval.approved_atstringHayır
approval.rejected_bystringHayır
approval.rejected_atstringHayır
statsobjectEvet
stats.runsintegerHayır
stats.targetedintegerHayır
stats.suppressedintegerHayır
stats.sentintegerHayır
stats.deliveredintegerHayır
stats.failedintegerHayır
stats.openedintegerHayır
stats.clickedintegerHayır
stats.convertedintegerHayır
stats.bouncedintegerHayır
stats.complainedintegerHayır
stats.unsubscribedintegerHayır
stats.sms_segmentsintegerHayır
send_atstring | nullEvet
next_run_atstring | nullEvet
last_run_atstring | nullEvet
run_countintegerEvet
errorstring | nullEvet
created_bystring | nullEvet
started_atstring | nullEvet
completed_atstring | nullEvet
created_atstringEvet
updated_atstringEvet
estimated_recipientsinteger | nullEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "status": "draft",
  "id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "labels": [
    "promo"
  ],
  "category": "örnek",
  "ab_test": {
    "enabled": true,
    "test_percentage": 1,
    "winner": {
      "mode": "manual",
      "metric": "open_rate",
      "evaluate_after_minutes": 5
    },
    "phase": "testing"
  },
  "variants": [
    {
      "name": "Sipariş bildirimleri",
      "id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "weight_percent": 1,
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "is_control": true,
      "position": 1
    }
  ],
  "audience": {
    "key": "örnek"
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "template_version": 1,
  "delivery": {
    "ttl": 86400,
    "timezone_mode": "immediate",
    "delivery_time_of_day": "değer",
    "throttle_per_minute": 1
  },
  "recurrence": {
    "cron": "xxxxxxxxx",
    "until": "2026-10-17T09:00:00Z",
    "timezone": "Europe/Istanbul"
  },
  "approval": {
    "required": true,
    "pending_action": "send",
    "requested_by": "örnek",
    "requested_at": "örnek",
    "approved_by": "örnek"
  },
  "stats": {
    "runs": 1,
    "targeted": 1,
    "suppressed": 1,
    "sent": 1
  },
  "send_at": "örnek",
  "next_run_at": "örnek",
  "last_run_at": "örnek",
  "run_count": 1,
  "error": "örnek",
  "created_by": "örnek",
  "started_at": "örnek",
  "completed_at": "örnek",
  "created_at": "örnek",
  "updated_at": "örnek",
  "estimated_recipients": 1
}

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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "audience": {
    "channels": [
      "ios_push"
    ],
    "all": false,
    "segments": [
      "örnek"
    ]
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "labels": [
    "promo"
  ]
}'

Kampanya detayı

GET/v1/apps/{appId}/campaigns/{campaignId}Dene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: Campaign

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
labelsarray<string>Evet
categorystring | nullEvet
ab_testobjectEvet
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumEvetDeğerler: "manual", "auto"
ab_test.winner.metricenumEvetDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–10080
ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
ab_test.winner_variant_idstringHayır
ab_test.decided_atstringHayır
ab_test.decided_bystringHayır
ab_test.significanceobjectHayır
ab_test.significance.p_valuenumberEvet
ab_test.significance.significantbooleanEvet
ab_test.significance.metricstringEvet
variantsarray<object>Evet
variants[].idstringEvet
variants[].namestringEvet
variants[].weight_percentintegerEvet
variants[].contentmap<string, any> | nullEvet
variants[].is_controlbooleanEvet
variants[].positionintegerEvet
typeenumEvetDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional"
statusenumEvetDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed"
audiencemap<string, any>Evet
contentmap<string, any>Evet
template_idstring | nullEvet
template_versioninteger | nullEvet
deliveryobjectEvet
delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
delivery.delivery_time_of_daystringHayır
delivery.throttle_per_minuteintegerHayırAralık: 1–1000000
delivery.ttlintegerHayırAralık: 60–2419200
delivery.priority5 | 10Hayır
delivery.collapse_idstringHayırUzunluk: 0–64
delivery.frequency_cap_exemptbooleanHayır
delivery.quiet_hours_exemptbooleanHayır
delivery.one_per_userbooleanHayır
recurrenceobject | nullEvet
approvalobjectEvet
approval.requiredbooleanEvet
approval.pending_actionenumHayırDeğerler: "send", "schedule"
approval.requested_bystringHayır
approval.requested_atstringHayır
approval.approved_bystringHayır
approval.approved_atstringHayır
approval.rejected_bystringHayır
approval.rejected_atstringHayır
statsobjectEvet
stats.runsintegerHayır
stats.targetedintegerHayır
stats.suppressedintegerHayır
stats.sentintegerHayır
stats.deliveredintegerHayır
stats.failedintegerHayır
stats.openedintegerHayır
stats.clickedintegerHayır
stats.convertedintegerHayır
stats.bouncedintegerHayır
stats.complainedintegerHayır
stats.unsubscribedintegerHayır
stats.sms_segmentsintegerHayır
send_atstring | nullEvet
next_run_atstring | nullEvet
last_run_atstring | nullEvet
run_countintegerEvet
errorstring | nullEvet
created_bystring | nullEvet
started_atstring | nullEvet
completed_atstring | nullEvet
created_atstringEvet
updated_atstringEvet
estimated_recipientsinteger | nullEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "status": "draft",
  "id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "labels": [
    "promo"
  ],
  "category": "örnek",
  "ab_test": {
    "enabled": true,
    "test_percentage": 1,
    "winner": {
      "mode": "manual",
      "metric": "open_rate",
      "evaluate_after_minutes": 5
    },
    "phase": "testing"
  },
  "variants": [
    {
      "name": "Sipariş bildirimleri",
      "id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "weight_percent": 1,
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "is_control": true,
      "position": 1
    }
  ],
  "audience": {
    "key": "örnek"
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "template_version": 1,
  "delivery": {
    "ttl": 86400,
    "timezone_mode": "immediate",
    "delivery_time_of_day": "değer",
    "throttle_per_minute": 1
  },
  "recurrence": {
    "cron": "xxxxxxxxx",
    "until": "2026-10-17T09:00:00Z",
    "timezone": "Europe/Istanbul"
  },
  "approval": {
    "required": true,
    "pending_action": "send",
    "requested_by": "örnek",
    "requested_at": "örnek",
    "approved_by": "örnek"
  },
  "stats": {
    "runs": 1,
    "targeted": 1,
    "suppressed": 1,
    "sent": 1
  },
  "send_at": "örnek",
  "next_run_at": "örnek",
  "last_run_at": "örnek",
  "run_count": 1,
  "error": "örnek",
  "created_by": "örnek",
  "started_at": "örnek",
  "completed_at": "örnek",
  "created_at": "örnek",
  "updated_at": "örnek",
  "estimated_recipients": 1
}

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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Kampanya güncelle

PATCH/v1/apps/{appId}/campaigns/{campaignId}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
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

İstek gövdesi (zorunlu)

AlanTürZorunluAçıklama
namestringHayırUzunluk: 2–120
typeenumHayırDeğerler: "one_time", "scheduled", "recurring"
audienceobjectHayır
audience.allbooleanHayır
audience.segmentsarray<string>Hayır
audience.exclude_segmentsarray<string>Hayır
audience.filtersobjectHayırFiltre AST: all/any/none grupları ve { field, op, value } koşulları (docs/plan/05 §5.7).
audience.filters.allarray<object>Hayır
audience.filters.anyarray<object>Hayır
audience.filters.nonearray<object>Hayır
audience.channelsarray<enum>Hayır
audience.test_devices_onlybooleanHayır
contentobjectHayırmessages.content ile aynı şema (headings, contents, url, buttons…)
labelsarray<string>HayırÖğe: 0–10
categorystring | nullHayırTercih kategorisi anahtarı; kapalı kullanıcılar bastırılır
ab_testobjectHayır
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumHayırDeğerler: "manual", "auto"
ab_test.winner.metricenumHayırDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–∞
variantsarray<object>HayırA/B varyantları (ağırlıklar toplamı 100; en fazla bir is_control). Öğe: 0–10
variants[].idstringHayır
variants[].namestringEvetUzunluk: 0–60
variants[].weight_percentintegerEvetAralık: 1–99
variants[].contentobject | nullHayır
variants[].is_controlbooleanHayır
template_idstringHayır
template_versionintegerHayır
deliveryobjectHayır
delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
delivery.delivery_time_of_daystringHayır
delivery.throttle_per_minuteintegerHayır
delivery.ttlintegerHayır
delivery.priorityenumHayırDeğerler: 5, 10
delivery.collapse_idstringHayır
delivery.frequency_cap_exemptbooleanHayır
delivery.quiet_hours_exemptbooleanHayır
delivery.one_per_userbooleanHayır
recurrenceobject | nullHayır
recurrence.cronstringHayır
recurrence.untilstring (date-time) | nullHayır
recurrence.timezonestringHayır
send_atstring (date-time) | nullHayır

Örnek:

{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "audience": {
    "channels": [
      "ios_push"
    ],
    "all": false,
    "segments": [
      "örnek"
    ]
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "labels": [
    "promo"
  ]
}

Yanıtlar

200 — Başarılı.

Şema: Campaign

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
labelsarray<string>Evet
categorystring | nullEvet
ab_testobjectEvet
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumEvetDeğerler: "manual", "auto"
ab_test.winner.metricenumEvetDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–10080
ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
ab_test.winner_variant_idstringHayır
ab_test.decided_atstringHayır
ab_test.decided_bystringHayır
ab_test.significanceobjectHayır
ab_test.significance.p_valuenumberEvet
ab_test.significance.significantbooleanEvet
ab_test.significance.metricstringEvet
variantsarray<object>Evet
variants[].idstringEvet
variants[].namestringEvet
variants[].weight_percentintegerEvet
variants[].contentmap<string, any> | nullEvet
variants[].is_controlbooleanEvet
variants[].positionintegerEvet
typeenumEvetDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional"
statusenumEvetDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed"
audiencemap<string, any>Evet
contentmap<string, any>Evet
template_idstring | nullEvet
template_versioninteger | nullEvet
deliveryobjectEvet
delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
delivery.delivery_time_of_daystringHayır
delivery.throttle_per_minuteintegerHayırAralık: 1–1000000
delivery.ttlintegerHayırAralık: 60–2419200
delivery.priority5 | 10Hayır
delivery.collapse_idstringHayırUzunluk: 0–64
delivery.frequency_cap_exemptbooleanHayır
delivery.quiet_hours_exemptbooleanHayır
delivery.one_per_userbooleanHayır
recurrenceobject | nullEvet
approvalobjectEvet
approval.requiredbooleanEvet
approval.pending_actionenumHayırDeğerler: "send", "schedule"
approval.requested_bystringHayır
approval.requested_atstringHayır
approval.approved_bystringHayır
approval.approved_atstringHayır
approval.rejected_bystringHayır
approval.rejected_atstringHayır
statsobjectEvet
stats.runsintegerHayır
stats.targetedintegerHayır
stats.suppressedintegerHayır
stats.sentintegerHayır
stats.deliveredintegerHayır
stats.failedintegerHayır
stats.openedintegerHayır
stats.clickedintegerHayır
stats.convertedintegerHayır
stats.bouncedintegerHayır
stats.complainedintegerHayır
stats.unsubscribedintegerHayır
stats.sms_segmentsintegerHayır
send_atstring | nullEvet
next_run_atstring | nullEvet
last_run_atstring | nullEvet
run_countintegerEvet
errorstring | nullEvet
created_bystring | nullEvet
started_atstring | nullEvet
completed_atstring | nullEvet
created_atstringEvet
updated_atstringEvet
estimated_recipientsinteger | nullEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "status": "draft",
  "id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "labels": [
    "promo"
  ],
  "category": "örnek",
  "ab_test": {
    "enabled": true,
    "test_percentage": 1,
    "winner": {
      "mode": "manual",
      "metric": "open_rate",
      "evaluate_after_minutes": 5
    },
    "phase": "testing"
  },
  "variants": [
    {
      "name": "Sipariş bildirimleri",
      "id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "weight_percent": 1,
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "is_control": true,
      "position": 1
    }
  ],
  "audience": {
    "key": "örnek"
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "template_version": 1,
  "delivery": {
    "ttl": 86400,
    "timezone_mode": "immediate",
    "delivery_time_of_day": "değer",
    "throttle_per_minute": 1
  },
  "recurrence": {
    "cron": "xxxxxxxxx",
    "until": "2026-10-17T09:00:00Z",
    "timezone": "Europe/Istanbul"
  },
  "approval": {
    "required": true,
    "pending_action": "send",
    "requested_by": "örnek",
    "requested_at": "örnek",
    "approved_by": "örnek"
  },
  "stats": {
    "runs": 1,
    "targeted": 1,
    "suppressed": 1,
    "sent": 1
  },
  "send_at": "örnek",
  "next_run_at": "örnek",
  "last_run_at": "örnek",
  "run_count": 1,
  "error": "örnek",
  "created_by": "örnek",
  "started_at": "örnek",
  "completed_at": "örnek",
  "created_at": "örnek",
  "updated_at": "örnek",
  "estimated_recipients": 1
}

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 PATCH "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "audience": {
    "channels": [
      "ios_push"
    ],
    "all": false,
    "segments": [
      "örnek"
    ]
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "labels": [
    "promo"
  ]
}'

Kampanya sil

DELETE/v1/apps/{appId}/campaigns/{campaignId}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
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: Ok

AlanTürZorunluAçıklama
oktrueEvet

Örnek yanıt:

{
  "ok": 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 DELETE "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Zamanla

POST/v1/apps/{appId}/campaigns/{campaignId}/scheduleDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

İstek gövdesi (zorunlu)

Şema: ScheduleCampaignDto

AlanTürZorunluAçıklama
send_atstring (date-time)Hayır
recurrenceobjectHayır
recurrence.cronstringEvetUzunluk: 9–100
recurrence.untilstring (date-time) | nullHayır
recurrence.timezonestringHayırUzunluk: 1–64

Örnek:

{
  "send_at": "2026-10-17T09:00:00Z",
  "recurrence": {
    "cron": "xxxxxxxxx",
    "until": "2026-10-17T09:00:00Z",
    "timezone": "Europe/Istanbul"
  }
}

Yanıtlar

200 — Başarılı.

Şema: Campaign

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
labelsarray<string>Evet
categorystring | nullEvet
ab_testobjectEvet
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumEvetDeğerler: "manual", "auto"
ab_test.winner.metricenumEvetDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–10080
ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
ab_test.winner_variant_idstringHayır
ab_test.decided_atstringHayır
ab_test.decided_bystringHayır
ab_test.significanceobjectHayır
ab_test.significance.p_valuenumberEvet
ab_test.significance.significantbooleanEvet
ab_test.significance.metricstringEvet
variantsarray<object>Evet
variants[].idstringEvet
variants[].namestringEvet
variants[].weight_percentintegerEvet
variants[].contentmap<string, any> | nullEvet
variants[].is_controlbooleanEvet
variants[].positionintegerEvet
typeenumEvetDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional"
statusenumEvetDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed"
audiencemap<string, any>Evet
contentmap<string, any>Evet
template_idstring | nullEvet
template_versioninteger | nullEvet
deliveryobjectEvet
delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
delivery.delivery_time_of_daystringHayır
delivery.throttle_per_minuteintegerHayırAralık: 1–1000000
delivery.ttlintegerHayırAralık: 60–2419200
delivery.priority5 | 10Hayır
delivery.collapse_idstringHayırUzunluk: 0–64
delivery.frequency_cap_exemptbooleanHayır
delivery.quiet_hours_exemptbooleanHayır
delivery.one_per_userbooleanHayır
recurrenceobject | nullEvet
approvalobjectEvet
approval.requiredbooleanEvet
approval.pending_actionenumHayırDeğerler: "send", "schedule"
approval.requested_bystringHayır
approval.requested_atstringHayır
approval.approved_bystringHayır
approval.approved_atstringHayır
approval.rejected_bystringHayır
approval.rejected_atstringHayır
statsobjectEvet
stats.runsintegerHayır
stats.targetedintegerHayır
stats.suppressedintegerHayır
stats.sentintegerHayır
stats.deliveredintegerHayır
stats.failedintegerHayır
stats.openedintegerHayır
stats.clickedintegerHayır
stats.convertedintegerHayır
stats.bouncedintegerHayır
stats.complainedintegerHayır
stats.unsubscribedintegerHayır
stats.sms_segmentsintegerHayır
send_atstring | nullEvet
next_run_atstring | nullEvet
last_run_atstring | nullEvet
run_countintegerEvet
errorstring | nullEvet
created_bystring | nullEvet
started_atstring | nullEvet
completed_atstring | nullEvet
created_atstringEvet
updated_atstringEvet
estimated_recipientsinteger | nullEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "status": "draft",
  "id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "labels": [
    "promo"
  ],
  "category": "örnek",
  "ab_test": {
    "enabled": true,
    "test_percentage": 1,
    "winner": {
      "mode": "manual",
      "metric": "open_rate",
      "evaluate_after_minutes": 5
    },
    "phase": "testing"
  },
  "variants": [
    {
      "name": "Sipariş bildirimleri",
      "id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "weight_percent": 1,
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "is_control": true,
      "position": 1
    }
  ],
  "audience": {
    "key": "örnek"
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "template_version": 1,
  "delivery": {
    "ttl": 86400,
    "timezone_mode": "immediate",
    "delivery_time_of_day": "değer",
    "throttle_per_minute": 1
  },
  "recurrence": {
    "cron": "xxxxxxxxx",
    "until": "2026-10-17T09:00:00Z",
    "timezone": "Europe/Istanbul"
  },
  "approval": {
    "required": true,
    "pending_action": "send",
    "requested_by": "örnek",
    "requested_at": "örnek",
    "approved_by": "örnek"
  },
  "stats": {
    "runs": 1,
    "targeted": 1,
    "suppressed": 1,
    "sent": 1
  },
  "send_at": "örnek",
  "next_run_at": "örnek",
  "last_run_at": "örnek",
  "run_count": 1,
  "error": "örnek",
  "created_by": "örnek",
  "started_at": "örnek",
  "completed_at": "örnek",
  "created_at": "örnek",
  "updated_at": "örnek",
  "estimated_recipients": 1
}

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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W/schedule" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "send_at": "2026-10-17T09:00:00Z",
  "recurrence": {
    "cron": "xxxxxxxxx",
    "until": "2026-10-17T09:00:00Z",
    "timezone": "Europe/Istanbul"
  }
}'

Hemen gönder

POST/v1/apps/{appId}/campaigns/{campaignId}/sendDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: Campaign

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
labelsarray<string>Evet
categorystring | nullEvet
ab_testobjectEvet
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumEvetDeğerler: "manual", "auto"
ab_test.winner.metricenumEvetDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–10080
ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
ab_test.winner_variant_idstringHayır
ab_test.decided_atstringHayır
ab_test.decided_bystringHayır
ab_test.significanceobjectHayır
ab_test.significance.p_valuenumberEvet
ab_test.significance.significantbooleanEvet
ab_test.significance.metricstringEvet
variantsarray<object>Evet
variants[].idstringEvet
variants[].namestringEvet
variants[].weight_percentintegerEvet
variants[].contentmap<string, any> | nullEvet
variants[].is_controlbooleanEvet
variants[].positionintegerEvet
typeenumEvetDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional"
statusenumEvetDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed"
audiencemap<string, any>Evet
contentmap<string, any>Evet
template_idstring | nullEvet
template_versioninteger | nullEvet
deliveryobjectEvet
delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
delivery.delivery_time_of_daystringHayır
delivery.throttle_per_minuteintegerHayırAralık: 1–1000000
delivery.ttlintegerHayırAralık: 60–2419200
delivery.priority5 | 10Hayır
delivery.collapse_idstringHayırUzunluk: 0–64
delivery.frequency_cap_exemptbooleanHayır
delivery.quiet_hours_exemptbooleanHayır
delivery.one_per_userbooleanHayır
recurrenceobject | nullEvet
approvalobjectEvet
approval.requiredbooleanEvet
approval.pending_actionenumHayırDeğerler: "send", "schedule"
approval.requested_bystringHayır
approval.requested_atstringHayır
approval.approved_bystringHayır
approval.approved_atstringHayır
approval.rejected_bystringHayır
approval.rejected_atstringHayır
statsobjectEvet
stats.runsintegerHayır
stats.targetedintegerHayır
stats.suppressedintegerHayır
stats.sentintegerHayır
stats.deliveredintegerHayır
stats.failedintegerHayır
stats.openedintegerHayır
stats.clickedintegerHayır
stats.convertedintegerHayır
stats.bouncedintegerHayır
stats.complainedintegerHayır
stats.unsubscribedintegerHayır
stats.sms_segmentsintegerHayır
send_atstring | nullEvet
next_run_atstring | nullEvet
last_run_atstring | nullEvet
run_countintegerEvet
errorstring | nullEvet
created_bystring | nullEvet
started_atstring | nullEvet
completed_atstring | nullEvet
created_atstringEvet
updated_atstringEvet
estimated_recipientsinteger | nullEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "status": "draft",
  "id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "labels": [
    "promo"
  ],
  "category": "örnek",
  "ab_test": {
    "enabled": true,
    "test_percentage": 1,
    "winner": {
      "mode": "manual",
      "metric": "open_rate",
      "evaluate_after_minutes": 5
    },
    "phase": "testing"
  },
  "variants": [
    {
      "name": "Sipariş bildirimleri",
      "id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "weight_percent": 1,
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "is_control": true,
      "position": 1
    }
  ],
  "audience": {
    "key": "örnek"
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "template_version": 1,
  "delivery": {
    "ttl": 86400,
    "timezone_mode": "immediate",
    "delivery_time_of_day": "değer",
    "throttle_per_minute": 1
  },
  "recurrence": {
    "cron": "xxxxxxxxx",
    "until": "2026-10-17T09:00:00Z",
    "timezone": "Europe/Istanbul"
  },
  "approval": {
    "required": true,
    "pending_action": "send",
    "requested_by": "örnek",
    "requested_at": "örnek",
    "approved_by": "örnek"
  },
  "stats": {
    "runs": 1,
    "targeted": 1,
    "suppressed": 1,
    "sent": 1
  },
  "send_at": "örnek",
  "next_run_at": "örnek",
  "last_run_at": "örnek",
  "run_count": 1,
  "error": "örnek",
  "created_by": "örnek",
  "started_at": "örnek",
  "completed_at": "örnek",
  "created_at": "örnek",
  "updated_at": "örnek",
  "estimated_recipients": 1
}

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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W/send" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Duraklat

POST/v1/apps/{appId}/campaigns/{campaignId}/pauseDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: Campaign

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
labelsarray<string>Evet
categorystring | nullEvet
ab_testobjectEvet
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumEvetDeğerler: "manual", "auto"
ab_test.winner.metricenumEvetDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–10080
ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
ab_test.winner_variant_idstringHayır
ab_test.decided_atstringHayır
ab_test.decided_bystringHayır
ab_test.significanceobjectHayır
ab_test.significance.p_valuenumberEvet
ab_test.significance.significantbooleanEvet
ab_test.significance.metricstringEvet
variantsarray<object>Evet
variants[].idstringEvet
variants[].namestringEvet
variants[].weight_percentintegerEvet
variants[].contentmap<string, any> | nullEvet
variants[].is_controlbooleanEvet
variants[].positionintegerEvet
typeenumEvetDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional"
statusenumEvetDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed"
audiencemap<string, any>Evet
contentmap<string, any>Evet
template_idstring | nullEvet
template_versioninteger | nullEvet
deliveryobjectEvet
delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
delivery.delivery_time_of_daystringHayır
delivery.throttle_per_minuteintegerHayırAralık: 1–1000000
delivery.ttlintegerHayırAralık: 60–2419200
delivery.priority5 | 10Hayır
delivery.collapse_idstringHayırUzunluk: 0–64
delivery.frequency_cap_exemptbooleanHayır
delivery.quiet_hours_exemptbooleanHayır
delivery.one_per_userbooleanHayır
recurrenceobject | nullEvet
approvalobjectEvet
approval.requiredbooleanEvet
approval.pending_actionenumHayırDeğerler: "send", "schedule"
approval.requested_bystringHayır
approval.requested_atstringHayır
approval.approved_bystringHayır
approval.approved_atstringHayır
approval.rejected_bystringHayır
approval.rejected_atstringHayır
statsobjectEvet
stats.runsintegerHayır
stats.targetedintegerHayır
stats.suppressedintegerHayır
stats.sentintegerHayır
stats.deliveredintegerHayır
stats.failedintegerHayır
stats.openedintegerHayır
stats.clickedintegerHayır
stats.convertedintegerHayır
stats.bouncedintegerHayır
stats.complainedintegerHayır
stats.unsubscribedintegerHayır
stats.sms_segmentsintegerHayır
send_atstring | nullEvet
next_run_atstring | nullEvet
last_run_atstring | nullEvet
run_countintegerEvet
errorstring | nullEvet
created_bystring | nullEvet
started_atstring | nullEvet
completed_atstring | nullEvet
created_atstringEvet
updated_atstringEvet
estimated_recipientsinteger | nullEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "status": "draft",
  "id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "labels": [
    "promo"
  ],
  "category": "örnek",
  "ab_test": {
    "enabled": true,
    "test_percentage": 1,
    "winner": {
      "mode": "manual",
      "metric": "open_rate",
      "evaluate_after_minutes": 5
    },
    "phase": "testing"
  },
  "variants": [
    {
      "name": "Sipariş bildirimleri",
      "id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "weight_percent": 1,
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "is_control": true,
      "position": 1
    }
  ],
  "audience": {
    "key": "örnek"
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "template_version": 1,
  "delivery": {
    "ttl": 86400,
    "timezone_mode": "immediate",
    "delivery_time_of_day": "değer",
    "throttle_per_minute": 1
  },
  "recurrence": {
    "cron": "xxxxxxxxx",
    "until": "2026-10-17T09:00:00Z",
    "timezone": "Europe/Istanbul"
  },
  "approval": {
    "required": true,
    "pending_action": "send",
    "requested_by": "örnek",
    "requested_at": "örnek",
    "approved_by": "örnek"
  },
  "stats": {
    "runs": 1,
    "targeted": 1,
    "suppressed": 1,
    "sent": 1
  },
  "send_at": "örnek",
  "next_run_at": "örnek",
  "last_run_at": "örnek",
  "run_count": 1,
  "error": "örnek",
  "created_by": "örnek",
  "started_at": "örnek",
  "completed_at": "örnek",
  "created_at": "örnek",
  "updated_at": "örnek",
  "estimated_recipients": 1
}

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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W/pause" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Sürdür

POST/v1/apps/{appId}/campaigns/{campaignId}/resumeDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: Campaign

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
labelsarray<string>Evet
categorystring | nullEvet
ab_testobjectEvet
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumEvetDeğerler: "manual", "auto"
ab_test.winner.metricenumEvetDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–10080
ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
ab_test.winner_variant_idstringHayır
ab_test.decided_atstringHayır
ab_test.decided_bystringHayır
ab_test.significanceobjectHayır
ab_test.significance.p_valuenumberEvet
ab_test.significance.significantbooleanEvet
ab_test.significance.metricstringEvet
variantsarray<object>Evet
variants[].idstringEvet
variants[].namestringEvet
variants[].weight_percentintegerEvet
variants[].contentmap<string, any> | nullEvet
variants[].is_controlbooleanEvet
variants[].positionintegerEvet
typeenumEvetDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional"
statusenumEvetDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed"
audiencemap<string, any>Evet
contentmap<string, any>Evet
template_idstring | nullEvet
template_versioninteger | nullEvet
deliveryobjectEvet
delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
delivery.delivery_time_of_daystringHayır
delivery.throttle_per_minuteintegerHayırAralık: 1–1000000
delivery.ttlintegerHayırAralık: 60–2419200
delivery.priority5 | 10Hayır
delivery.collapse_idstringHayırUzunluk: 0–64
delivery.frequency_cap_exemptbooleanHayır
delivery.quiet_hours_exemptbooleanHayır
delivery.one_per_userbooleanHayır
recurrenceobject | nullEvet
approvalobjectEvet
approval.requiredbooleanEvet
approval.pending_actionenumHayırDeğerler: "send", "schedule"
approval.requested_bystringHayır
approval.requested_atstringHayır
approval.approved_bystringHayır
approval.approved_atstringHayır
approval.rejected_bystringHayır
approval.rejected_atstringHayır
statsobjectEvet
stats.runsintegerHayır
stats.targetedintegerHayır
stats.suppressedintegerHayır
stats.sentintegerHayır
stats.deliveredintegerHayır
stats.failedintegerHayır
stats.openedintegerHayır
stats.clickedintegerHayır
stats.convertedintegerHayır
stats.bouncedintegerHayır
stats.complainedintegerHayır
stats.unsubscribedintegerHayır
stats.sms_segmentsintegerHayır
send_atstring | nullEvet
next_run_atstring | nullEvet
last_run_atstring | nullEvet
run_countintegerEvet
errorstring | nullEvet
created_bystring | nullEvet
started_atstring | nullEvet
completed_atstring | nullEvet
created_atstringEvet
updated_atstringEvet
estimated_recipientsinteger | nullEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "status": "draft",
  "id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "labels": [
    "promo"
  ],
  "category": "örnek",
  "ab_test": {
    "enabled": true,
    "test_percentage": 1,
    "winner": {
      "mode": "manual",
      "metric": "open_rate",
      "evaluate_after_minutes": 5
    },
    "phase": "testing"
  },
  "variants": [
    {
      "name": "Sipariş bildirimleri",
      "id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "weight_percent": 1,
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "is_control": true,
      "position": 1
    }
  ],
  "audience": {
    "key": "örnek"
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "template_version": 1,
  "delivery": {
    "ttl": 86400,
    "timezone_mode": "immediate",
    "delivery_time_of_day": "değer",
    "throttle_per_minute": 1
  },
  "recurrence": {
    "cron": "xxxxxxxxx",
    "until": "2026-10-17T09:00:00Z",
    "timezone": "Europe/Istanbul"
  },
  "approval": {
    "required": true,
    "pending_action": "send",
    "requested_by": "örnek",
    "requested_at": "örnek",
    "approved_by": "örnek"
  },
  "stats": {
    "runs": 1,
    "targeted": 1,
    "suppressed": 1,
    "sent": 1
  },
  "send_at": "örnek",
  "next_run_at": "örnek",
  "last_run_at": "örnek",
  "run_count": 1,
  "error": "örnek",
  "created_by": "örnek",
  "started_at": "örnek",
  "completed_at": "örnek",
  "created_at": "örnek",
  "updated_at": "örnek",
  "estimated_recipients": 1
}

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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W/resume" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

İptal

POST/v1/apps/{appId}/campaigns/{campaignId}/cancelDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: Campaign

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
labelsarray<string>Evet
categorystring | nullEvet
ab_testobjectEvet
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumEvetDeğerler: "manual", "auto"
ab_test.winner.metricenumEvetDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–10080
ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
ab_test.winner_variant_idstringHayır
ab_test.decided_atstringHayır
ab_test.decided_bystringHayır
ab_test.significanceobjectHayır
ab_test.significance.p_valuenumberEvet
ab_test.significance.significantbooleanEvet
ab_test.significance.metricstringEvet
variantsarray<object>Evet
variants[].idstringEvet
variants[].namestringEvet
variants[].weight_percentintegerEvet
variants[].contentmap<string, any> | nullEvet
variants[].is_controlbooleanEvet
variants[].positionintegerEvet
typeenumEvetDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional"
statusenumEvetDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed"
audiencemap<string, any>Evet
contentmap<string, any>Evet
template_idstring | nullEvet
template_versioninteger | nullEvet
deliveryobjectEvet
delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
delivery.delivery_time_of_daystringHayır
delivery.throttle_per_minuteintegerHayırAralık: 1–1000000
delivery.ttlintegerHayırAralık: 60–2419200
delivery.priority5 | 10Hayır
delivery.collapse_idstringHayırUzunluk: 0–64
delivery.frequency_cap_exemptbooleanHayır
delivery.quiet_hours_exemptbooleanHayır
delivery.one_per_userbooleanHayır
recurrenceobject | nullEvet
approvalobjectEvet
approval.requiredbooleanEvet
approval.pending_actionenumHayırDeğerler: "send", "schedule"
approval.requested_bystringHayır
approval.requested_atstringHayır
approval.approved_bystringHayır
approval.approved_atstringHayır
approval.rejected_bystringHayır
approval.rejected_atstringHayır
statsobjectEvet
stats.runsintegerHayır
stats.targetedintegerHayır
stats.suppressedintegerHayır
stats.sentintegerHayır
stats.deliveredintegerHayır
stats.failedintegerHayır
stats.openedintegerHayır
stats.clickedintegerHayır
stats.convertedintegerHayır
stats.bouncedintegerHayır
stats.complainedintegerHayır
stats.unsubscribedintegerHayır
stats.sms_segmentsintegerHayır
send_atstring | nullEvet
next_run_atstring | nullEvet
last_run_atstring | nullEvet
run_countintegerEvet
errorstring | nullEvet
created_bystring | nullEvet
started_atstring | nullEvet
completed_atstring | nullEvet
created_atstringEvet
updated_atstringEvet
estimated_recipientsinteger | nullEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "status": "draft",
  "id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "labels": [
    "promo"
  ],
  "category": "örnek",
  "ab_test": {
    "enabled": true,
    "test_percentage": 1,
    "winner": {
      "mode": "manual",
      "metric": "open_rate",
      "evaluate_after_minutes": 5
    },
    "phase": "testing"
  },
  "variants": [
    {
      "name": "Sipariş bildirimleri",
      "id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "weight_percent": 1,
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "is_control": true,
      "position": 1
    }
  ],
  "audience": {
    "key": "örnek"
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "template_version": 1,
  "delivery": {
    "ttl": 86400,
    "timezone_mode": "immediate",
    "delivery_time_of_day": "değer",
    "throttle_per_minute": 1
  },
  "recurrence": {
    "cron": "xxxxxxxxx",
    "until": "2026-10-17T09:00:00Z",
    "timezone": "Europe/Istanbul"
  },
  "approval": {
    "required": true,
    "pending_action": "send",
    "requested_by": "örnek",
    "requested_at": "örnek",
    "approved_by": "örnek"
  },
  "stats": {
    "runs": 1,
    "targeted": 1,
    "suppressed": 1,
    "sent": 1
  },
  "send_at": "örnek",
  "next_run_at": "örnek",
  "last_run_at": "örnek",
  "run_count": 1,
  "error": "örnek",
  "created_by": "örnek",
  "started_at": "örnek",
  "completed_at": "örnek",
  "created_at": "örnek",
  "updated_at": "örnek",
  "estimated_recipients": 1
}

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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W/cancel" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Çoğalt

POST/v1/apps/{appId}/campaigns/{campaignId}/duplicateDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: Campaign

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
labelsarray<string>Evet
categorystring | nullEvet
ab_testobjectEvet
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumEvetDeğerler: "manual", "auto"
ab_test.winner.metricenumEvetDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–10080
ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
ab_test.winner_variant_idstringHayır
ab_test.decided_atstringHayır
ab_test.decided_bystringHayır
ab_test.significanceobjectHayır
ab_test.significance.p_valuenumberEvet
ab_test.significance.significantbooleanEvet
ab_test.significance.metricstringEvet
variantsarray<object>Evet
variants[].idstringEvet
variants[].namestringEvet
variants[].weight_percentintegerEvet
variants[].contentmap<string, any> | nullEvet
variants[].is_controlbooleanEvet
variants[].positionintegerEvet
typeenumEvetDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional"
statusenumEvetDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed"
audiencemap<string, any>Evet
contentmap<string, any>Evet
template_idstring | nullEvet
template_versioninteger | nullEvet
deliveryobjectEvet
delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
delivery.delivery_time_of_daystringHayır
delivery.throttle_per_minuteintegerHayırAralık: 1–1000000
delivery.ttlintegerHayırAralık: 60–2419200
delivery.priority5 | 10Hayır
delivery.collapse_idstringHayırUzunluk: 0–64
delivery.frequency_cap_exemptbooleanHayır
delivery.quiet_hours_exemptbooleanHayır
delivery.one_per_userbooleanHayır
recurrenceobject | nullEvet
approvalobjectEvet
approval.requiredbooleanEvet
approval.pending_actionenumHayırDeğerler: "send", "schedule"
approval.requested_bystringHayır
approval.requested_atstringHayır
approval.approved_bystringHayır
approval.approved_atstringHayır
approval.rejected_bystringHayır
approval.rejected_atstringHayır
statsobjectEvet
stats.runsintegerHayır
stats.targetedintegerHayır
stats.suppressedintegerHayır
stats.sentintegerHayır
stats.deliveredintegerHayır
stats.failedintegerHayır
stats.openedintegerHayır
stats.clickedintegerHayır
stats.convertedintegerHayır
stats.bouncedintegerHayır
stats.complainedintegerHayır
stats.unsubscribedintegerHayır
stats.sms_segmentsintegerHayır
send_atstring | nullEvet
next_run_atstring | nullEvet
last_run_atstring | nullEvet
run_countintegerEvet
errorstring | nullEvet
created_bystring | nullEvet
started_atstring | nullEvet
completed_atstring | nullEvet
created_atstringEvet
updated_atstringEvet
estimated_recipientsinteger | nullEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "status": "draft",
  "id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "labels": [
    "promo"
  ],
  "category": "örnek",
  "ab_test": {
    "enabled": true,
    "test_percentage": 1,
    "winner": {
      "mode": "manual",
      "metric": "open_rate",
      "evaluate_after_minutes": 5
    },
    "phase": "testing"
  },
  "variants": [
    {
      "name": "Sipariş bildirimleri",
      "id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "weight_percent": 1,
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "is_control": true,
      "position": 1
    }
  ],
  "audience": {
    "key": "örnek"
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "template_version": 1,
  "delivery": {
    "ttl": 86400,
    "timezone_mode": "immediate",
    "delivery_time_of_day": "değer",
    "throttle_per_minute": 1
  },
  "recurrence": {
    "cron": "xxxxxxxxx",
    "until": "2026-10-17T09:00:00Z",
    "timezone": "Europe/Istanbul"
  },
  "approval": {
    "required": true,
    "pending_action": "send",
    "requested_by": "örnek",
    "requested_at": "örnek",
    "approved_by": "örnek"
  },
  "stats": {
    "runs": 1,
    "targeted": 1,
    "suppressed": 1,
    "sent": 1
  },
  "send_at": "örnek",
  "next_run_at": "örnek",
  "last_run_at": "örnek",
  "run_count": 1,
  "error": "örnek",
  "created_by": "örnek",
  "started_at": "örnek",
  "completed_at": "örnek",
  "created_at": "örnek",
  "updated_at": "örnek",
  "estimated_recipients": 1
}

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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W/duplicate" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Onayla

POST/v1/apps/{appId}/campaigns/{campaignId}/approveDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: Campaign

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
labelsarray<string>Evet
categorystring | nullEvet
ab_testobjectEvet
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumEvetDeğerler: "manual", "auto"
ab_test.winner.metricenumEvetDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–10080
ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
ab_test.winner_variant_idstringHayır
ab_test.decided_atstringHayır
ab_test.decided_bystringHayır
ab_test.significanceobjectHayır
ab_test.significance.p_valuenumberEvet
ab_test.significance.significantbooleanEvet
ab_test.significance.metricstringEvet
variantsarray<object>Evet
variants[].idstringEvet
variants[].namestringEvet
variants[].weight_percentintegerEvet
variants[].contentmap<string, any> | nullEvet
variants[].is_controlbooleanEvet
variants[].positionintegerEvet
typeenumEvetDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional"
statusenumEvetDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed"
audiencemap<string, any>Evet
contentmap<string, any>Evet
template_idstring | nullEvet
template_versioninteger | nullEvet
deliveryobjectEvet
delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
delivery.delivery_time_of_daystringHayır
delivery.throttle_per_minuteintegerHayırAralık: 1–1000000
delivery.ttlintegerHayırAralık: 60–2419200
delivery.priority5 | 10Hayır
delivery.collapse_idstringHayırUzunluk: 0–64
delivery.frequency_cap_exemptbooleanHayır
delivery.quiet_hours_exemptbooleanHayır
delivery.one_per_userbooleanHayır
recurrenceobject | nullEvet
approvalobjectEvet
approval.requiredbooleanEvet
approval.pending_actionenumHayırDeğerler: "send", "schedule"
approval.requested_bystringHayır
approval.requested_atstringHayır
approval.approved_bystringHayır
approval.approved_atstringHayır
approval.rejected_bystringHayır
approval.rejected_atstringHayır
statsobjectEvet
stats.runsintegerHayır
stats.targetedintegerHayır
stats.suppressedintegerHayır
stats.sentintegerHayır
stats.deliveredintegerHayır
stats.failedintegerHayır
stats.openedintegerHayır
stats.clickedintegerHayır
stats.convertedintegerHayır
stats.bouncedintegerHayır
stats.complainedintegerHayır
stats.unsubscribedintegerHayır
stats.sms_segmentsintegerHayır
send_atstring | nullEvet
next_run_atstring | nullEvet
last_run_atstring | nullEvet
run_countintegerEvet
errorstring | nullEvet
created_bystring | nullEvet
started_atstring | nullEvet
completed_atstring | nullEvet
created_atstringEvet
updated_atstringEvet
estimated_recipientsinteger | nullEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "status": "draft",
  "id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "labels": [
    "promo"
  ],
  "category": "örnek",
  "ab_test": {
    "enabled": true,
    "test_percentage": 1,
    "winner": {
      "mode": "manual",
      "metric": "open_rate",
      "evaluate_after_minutes": 5
    },
    "phase": "testing"
  },
  "variants": [
    {
      "name": "Sipariş bildirimleri",
      "id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "weight_percent": 1,
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "is_control": true,
      "position": 1
    }
  ],
  "audience": {
    "key": "örnek"
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "template_version": 1,
  "delivery": {
    "ttl": 86400,
    "timezone_mode": "immediate",
    "delivery_time_of_day": "değer",
    "throttle_per_minute": 1
  },
  "recurrence": {
    "cron": "xxxxxxxxx",
    "until": "2026-10-17T09:00:00Z",
    "timezone": "Europe/Istanbul"
  },
  "approval": {
    "required": true,
    "pending_action": "send",
    "requested_by": "örnek",
    "requested_at": "örnek",
    "approved_by": "örnek"
  },
  "stats": {
    "runs": 1,
    "targeted": 1,
    "suppressed": 1,
    "sent": 1
  },
  "send_at": "örnek",
  "next_run_at": "örnek",
  "last_run_at": "örnek",
  "run_count": 1,
  "error": "örnek",
  "created_by": "örnek",
  "started_at": "örnek",
  "completed_at": "örnek",
  "created_at": "örnek",
  "updated_at": "örnek",
  "estimated_recipients": 1
}

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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W/approve" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

İstatistikler

GET/v1/apps/{appId}/campaigns/{campaignId}/statsDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: CampaignStats

AlanTürZorunluAçıklama
campaignobjectEvet
campaign.idstringEvet
campaign.app_idstringEvet
campaign.namestringEvet
campaign.labelsarray<string>Evet
campaign.categorystring | nullEvet
campaign.ab_testobjectEvet
campaign.ab_test.enabledbooleanHayır
campaign.ab_test.test_percentageintegerHayırAralık: 1–100
campaign.ab_test.winnerobjectHayır
campaign.ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
campaign.ab_test.winner_variant_idstringHayır
campaign.ab_test.decided_atstringHayır
campaign.ab_test.decided_bystringHayır
campaign.ab_test.significanceobjectHayır
campaign.variantsarray<object>Evet
campaign.variants[].idstringEvet
campaign.variants[].namestringEvet
campaign.variants[].weight_percentintegerEvet
campaign.variants[].contentmap<string, any> | nullEvet
campaign.variants[].is_controlbooleanEvet
campaign.variants[].positionintegerEvet
campaign.typeenumEvetDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional"
campaign.statusenumEvetDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed"
campaign.audiencemap<string, any>Evet
campaign.contentmap<string, any>Evet
campaign.template_idstring | nullEvet
campaign.template_versioninteger | nullEvet
campaign.deliveryobjectEvet
campaign.delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
campaign.delivery.delivery_time_of_daystringHayır
campaign.delivery.throttle_per_minuteintegerHayırAralık: 1–1000000
campaign.delivery.ttlintegerHayırAralık: 60–2419200
campaign.delivery.priority5 | 10Hayır
campaign.delivery.collapse_idstringHayırUzunluk: 0–64
campaign.delivery.frequency_cap_exemptbooleanHayır
campaign.delivery.quiet_hours_exemptbooleanHayır
campaign.delivery.one_per_userbooleanHayır
campaign.recurrenceobject | nullEvet
campaign.approvalobjectEvet
campaign.approval.requiredbooleanEvet
campaign.approval.pending_actionenumHayırDeğerler: "send", "schedule"
campaign.approval.requested_bystringHayır
campaign.approval.requested_atstringHayır
campaign.approval.approved_bystringHayır
campaign.approval.approved_atstringHayır
campaign.approval.rejected_bystringHayır
campaign.approval.rejected_atstringHayır
campaign.statsobjectEvet
campaign.stats.runsintegerHayır
campaign.stats.targetedintegerHayır
campaign.stats.suppressedintegerHayır
campaign.stats.sentintegerHayır
campaign.stats.deliveredintegerHayır
campaign.stats.failedintegerHayır
campaign.stats.openedintegerHayır
campaign.stats.clickedintegerHayır
campaign.stats.convertedintegerHayır
campaign.stats.bouncedintegerHayır
campaign.stats.complainedintegerHayır
campaign.stats.unsubscribedintegerHayır
campaign.stats.sms_segmentsintegerHayır
campaign.send_atstring | nullEvet
campaign.next_run_atstring | nullEvet
campaign.last_run_atstring | nullEvet
campaign.run_countintegerEvet
campaign.errorstring | nullEvet
campaign.created_bystring | nullEvet
campaign.started_atstring | nullEvet
campaign.completed_atstring | nullEvet
campaign.created_atstringEvet
campaign.updated_atstringEvet
campaign.estimated_recipientsinteger | nullEvet
ratesobjectEvet
rates.delivery_ratenumber | nullEvet
rates.open_ratenumber | nullEvet
rates.click_ratenumber | nullEvet
rates.failure_ratenumber | nullEvet
rates.conversion_ratenumber | nullEvet
channelsarray<object>Evet
channels[].channelenumEvetDeğerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs"
channels[].targetedintegerEvet
channels[].sentintegerEvet
channels[].failedintegerEvet
channels[].openedintegerEvet
channels[].clickedintegerEvet
hourlyarray<object>Evet
hourly[].hourstringEvet
hourly[].sentintegerEvet
hourly[].failedintegerEvet
hourly[].openedintegerEvet
hourly[].clickedintegerEvet
errorsarray<object>Evet
errors[].codestringEvet
errors[].countintegerEvet
messagesarray<object>Evet
messages[].idstringEvet
messages[].app_idstringEvet
messages[].sourceenumEvetDeğerler: "campaign", "api", "journey", "test"
messages[].statusenumEvetDeğerler: "queued", "processing", "completed", "cancelled", "failed"
messages[].idempotency_keystring | nullEvet
messages[].namestring | nullEvet
messages[].contentmap<string, any>Evet
messages[].targetmap<string, any>Evet
messages[].optionsmap<string, any>Evet
messages[].labelsarray<string>Evet
messages[].categorystring | nullEvet
messages[].template_idstring | nullEvet
messages[].campaign_idstring | nullEvet
messages[].variantsarray<object> | nullEvet
messages[].countsobjectEvet
messages[].counts.targetedintegerHayır
messages[].counts.suppressedintegerHayır
messages[].counts.sentintegerHayır
messages[].counts.deliveredintegerHayır
messages[].counts.failedintegerHayır
messages[].counts.erroredintegerHayır
messages[].counts.expiredintegerHayır
messages[].counts.openedintegerHayır
messages[].counts.clickedintegerHayır
messages[].counts.convertedintegerHayır
messages[].counts.bouncedintegerHayır
messages[].counts.complainedintegerHayır
messages[].counts.unsubscribedintegerHayır
messages[].counts.sms_segmentsintegerHayır
messages[].requested_byobjectEvet
messages[].requested_by.typeenumEvetDeğerler: "api_key", "account", "system"
messages[].requested_by.idstringHayır
messages[].errorstring | nullEvet
messages[].scheduled_forstring | nullEvet
messages[].started_atstring | nullEvet
messages[].completed_atstring | nullEvet
messages[].created_atstringEvet
messages[].updated_atstringEvet

Örnek yanıt:

{
  "channels": [
    "web_push"
  ],
  "campaign": {
    "name": "Sipariş bildirimleri",
    "type": "one_time",
    "status": "draft",
    "id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
    "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
    "labels": [
      "promo"
    ],
    "category": "örnek",
    "ab_test": {
      "enabled": true,
      "test_percentage": 1
    },
    "variants": [
      {
        "name": "Sipariş bildirimleri",
        "id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
        "weight_percent": 1,
        "content": {
          "contents": {
            "tr": "Siparişiniz yola çıktı"
          }
        },
        "is_control": true,
        "position": 1
      }
    ],
    "audience": {
      "key": "örnek"
    },
    "content": {
      "contents": {
        "tr": "Siparişiniz yola çıktı"
      }
    },
    "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
    "template_version": 1,
    "delivery": {
      "ttl": 86400,
      "timezone_mode": "immediate"
    },
    "recurrence": {
      "cron": "xxxxxxxxx",
      "until": "2026-10-17T09:00:00Z",
      "timezone": "Europe/Istanbul"
    },
    "approval": {
      "required": true,
      "pending_action": "send",
      "requested_by": "örnek"
    },
    "stats": {
      "runs": 1,
      "targeted": 1
    },
    "send_at": "örnek",
    "next_run_at": "örnek",
    "last_run_at": "örnek",
    "run_count": 1,
    "error": "örnek",
    "created_by": "örnek",
    "started_at": "örnek",
    "completed_at": "örnek",
    "created_at": "örnek",
    "updated_at": "örnek",
    "estimated_recipients": 1
  },
  "rates": {
    "delivery_rate": 1.5,
    "open_rate": 1.5,
    "click_rate": 1.5,
    "failure_rate": 1.5,
    "conversion_rate": 1.5
  },
  "hourly": [
    {
      "hour": "örnek",
      "sent": 1,
      "failed": 1,
      "opened": 1,
      "clicked": 1
    }
  ],
  "errors": [
    {
      "code": "örnek",
      "count": 1
    }
  ],
  "messages": [
    {
      "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": "cmp_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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W/stats" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

A/B varyant karşılaştırması

GET/v1/apps/{appId}/campaigns/{campaignId}/variants/statsDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: CampaignVariantStats

AlanTürZorunluAçıklama
ab_testobjectEvet
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumEvetDeğerler: "manual", "auto"
ab_test.winner.metricenumEvetDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–10080
ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
ab_test.winner_variant_idstringHayır
ab_test.decided_atstringHayır
ab_test.decided_bystringHayır
ab_test.significanceobjectHayır
ab_test.significance.p_valuenumberEvet
ab_test.significance.significantbooleanEvet
ab_test.significance.metricstringEvet
variantsarray<object>Evet
variants[].variant_idstringEvet
variants[].namestringEvet
variants[].weight_percentintegerEvet
variants[].is_controlbooleanEvet
variants[].targetedintegerEvet
variants[].sentintegerEvet
variants[].deliveredintegerEvet
variants[].openedintegerEvet
variants[].clickedintegerEvet
variants[].convertedintegerEvet
variants[].holdoutintegerEvet
variants[].open_ratenumberEvet
variants[].click_ratenumberEvet
variants[].conversion_ratenumberEvet
leaderstring | nullEvet
significanceobjectEvet
significance.p_valuenumberEvet
significance.significantbooleanEvet
significance.metricstringEvet

Örnek yanıt:

{
  "ab_test": {
    "enabled": true,
    "test_percentage": 1,
    "winner": {
      "mode": "manual",
      "metric": "open_rate",
      "evaluate_after_minutes": 5
    },
    "phase": "testing"
  },
  "variants": [
    {
      "name": "Sipariş bildirimleri",
      "variant_id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "weight_percent": 1,
      "is_control": true,
      "targeted": 1,
      "sent": 1,
      "delivered": 1,
      "opened": 1,
      "clicked": 1,
      "converted": 1,
      "holdout": 1,
      "open_rate": 1.5,
      "click_rate": 1.5,
      "conversion_rate": 1.5
    }
  ],
  "leader": "örnek",
  "significance": {
    "p_value": 149.9,
    "significant": true,
    "metric": "ö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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W/variants/stats" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

A/B kazananını seç

POST/v1/apps/{appId}/campaigns/{campaignId}/winnerDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

İstek gövdesi (zorunlu)

Şema: SelectWinnerDto

AlanTürZorunluAçıklama
variant_idstringEvetUzunluk: 1–∞

Örnek:

{
  "variant_id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W"
}

Yanıtlar

200 — Başarılı.

Şema: Campaign

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
labelsarray<string>Evet
categorystring | nullEvet
ab_testobjectEvet
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumEvetDeğerler: "manual", "auto"
ab_test.winner.metricenumEvetDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–10080
ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
ab_test.winner_variant_idstringHayır
ab_test.decided_atstringHayır
ab_test.decided_bystringHayır
ab_test.significanceobjectHayır
ab_test.significance.p_valuenumberEvet
ab_test.significance.significantbooleanEvet
ab_test.significance.metricstringEvet
variantsarray<object>Evet
variants[].idstringEvet
variants[].namestringEvet
variants[].weight_percentintegerEvet
variants[].contentmap<string, any> | nullEvet
variants[].is_controlbooleanEvet
variants[].positionintegerEvet
typeenumEvetDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional"
statusenumEvetDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed"
audiencemap<string, any>Evet
contentmap<string, any>Evet
template_idstring | nullEvet
template_versioninteger | nullEvet
deliveryobjectEvet
delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
delivery.delivery_time_of_daystringHayır
delivery.throttle_per_minuteintegerHayırAralık: 1–1000000
delivery.ttlintegerHayırAralık: 60–2419200
delivery.priority5 | 10Hayır
delivery.collapse_idstringHayırUzunluk: 0–64
delivery.frequency_cap_exemptbooleanHayır
delivery.quiet_hours_exemptbooleanHayır
delivery.one_per_userbooleanHayır
recurrenceobject | nullEvet
approvalobjectEvet
approval.requiredbooleanEvet
approval.pending_actionenumHayırDeğerler: "send", "schedule"
approval.requested_bystringHayır
approval.requested_atstringHayır
approval.approved_bystringHayır
approval.approved_atstringHayır
approval.rejected_bystringHayır
approval.rejected_atstringHayır
statsobjectEvet
stats.runsintegerHayır
stats.targetedintegerHayır
stats.suppressedintegerHayır
stats.sentintegerHayır
stats.deliveredintegerHayır
stats.failedintegerHayır
stats.openedintegerHayır
stats.clickedintegerHayır
stats.convertedintegerHayır
stats.bouncedintegerHayır
stats.complainedintegerHayır
stats.unsubscribedintegerHayır
stats.sms_segmentsintegerHayır
send_atstring | nullEvet
next_run_atstring | nullEvet
last_run_atstring | nullEvet
run_countintegerEvet
errorstring | nullEvet
created_bystring | nullEvet
started_atstring | nullEvet
completed_atstring | nullEvet
created_atstringEvet
updated_atstringEvet
estimated_recipientsinteger | nullEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "status": "draft",
  "id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "labels": [
    "promo"
  ],
  "category": "örnek",
  "ab_test": {
    "enabled": true,
    "test_percentage": 1,
    "winner": {
      "mode": "manual",
      "metric": "open_rate",
      "evaluate_after_minutes": 5
    },
    "phase": "testing"
  },
  "variants": [
    {
      "name": "Sipariş bildirimleri",
      "id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "weight_percent": 1,
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "is_control": true,
      "position": 1
    }
  ],
  "audience": {
    "key": "örnek"
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "template_version": 1,
  "delivery": {
    "ttl": 86400,
    "timezone_mode": "immediate",
    "delivery_time_of_day": "değer",
    "throttle_per_minute": 1
  },
  "recurrence": {
    "cron": "xxxxxxxxx",
    "until": "2026-10-17T09:00:00Z",
    "timezone": "Europe/Istanbul"
  },
  "approval": {
    "required": true,
    "pending_action": "send",
    "requested_by": "örnek",
    "requested_at": "örnek",
    "approved_by": "örnek"
  },
  "stats": {
    "runs": 1,
    "targeted": 1,
    "suppressed": 1,
    "sent": 1
  },
  "send_at": "örnek",
  "next_run_at": "örnek",
  "last_run_at": "örnek",
  "run_count": 1,
  "error": "örnek",
  "created_by": "örnek",
  "started_at": "örnek",
  "completed_at": "örnek",
  "created_at": "örnek",
  "updated_at": "örnek",
  "estimated_recipients": 1
}

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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W/winner" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "variant_id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W"
}'

Abone bazlı teslimatlar

GET/v1/apps/{appId}/campaigns/{campaignId}/deliveriesDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
campaignIdyolstringEvet"cmp_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"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

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": "cmp_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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W/deliveries?limit=50" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Başarısız teslimatlara yeniden gönder

POST/v1/apps/{appId}/campaigns/{campaignId}/resend-failedDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: Campaign

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
labelsarray<string>Evet
categorystring | nullEvet
ab_testobjectEvet
ab_test.enabledbooleanHayır
ab_test.test_percentageintegerHayırAralık: 1–100
ab_test.winnerobjectHayır
ab_test.winner.modeenumEvetDeğerler: "manual", "auto"
ab_test.winner.metricenumEvetDeğerler: "open_rate", "click_rate", "conversion_rate"
ab_test.winner.evaluate_after_minutesintegerHayırAralık: 5–10080
ab_test.phaseenumHayırDeğerler: "testing", "winner_sent"
ab_test.winner_variant_idstringHayır
ab_test.decided_atstringHayır
ab_test.decided_bystringHayır
ab_test.significanceobjectHayır
ab_test.significance.p_valuenumberEvet
ab_test.significance.significantbooleanEvet
ab_test.significance.metricstringEvet
variantsarray<object>Evet
variants[].idstringEvet
variants[].namestringEvet
variants[].weight_percentintegerEvet
variants[].contentmap<string, any> | nullEvet
variants[].is_controlbooleanEvet
variants[].positionintegerEvet
typeenumEvetDeğerler: "one_time", "scheduled", "recurring", "automated", "transactional"
statusenumEvetDeğerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed"
audiencemap<string, any>Evet
contentmap<string, any>Evet
template_idstring | nullEvet
template_versioninteger | nullEvet
deliveryobjectEvet
delivery.timezone_modeenumHayırDeğerler: "immediate", "per_user_timezone", "optimized"
delivery.delivery_time_of_daystringHayır
delivery.throttle_per_minuteintegerHayırAralık: 1–1000000
delivery.ttlintegerHayırAralık: 60–2419200
delivery.priority5 | 10Hayır
delivery.collapse_idstringHayırUzunluk: 0–64
delivery.frequency_cap_exemptbooleanHayır
delivery.quiet_hours_exemptbooleanHayır
delivery.one_per_userbooleanHayır
recurrenceobject | nullEvet
approvalobjectEvet
approval.requiredbooleanEvet
approval.pending_actionenumHayırDeğerler: "send", "schedule"
approval.requested_bystringHayır
approval.requested_atstringHayır
approval.approved_bystringHayır
approval.approved_atstringHayır
approval.rejected_bystringHayır
approval.rejected_atstringHayır
statsobjectEvet
stats.runsintegerHayır
stats.targetedintegerHayır
stats.suppressedintegerHayır
stats.sentintegerHayır
stats.deliveredintegerHayır
stats.failedintegerHayır
stats.openedintegerHayır
stats.clickedintegerHayır
stats.convertedintegerHayır
stats.bouncedintegerHayır
stats.complainedintegerHayır
stats.unsubscribedintegerHayır
stats.sms_segmentsintegerHayır
send_atstring | nullEvet
next_run_atstring | nullEvet
last_run_atstring | nullEvet
run_countintegerEvet
errorstring | nullEvet
created_bystring | nullEvet
started_atstring | nullEvet
completed_atstring | nullEvet
created_atstringEvet
updated_atstringEvet
estimated_recipientsinteger | nullEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "type": "one_time",
  "status": "draft",
  "id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "labels": [
    "promo"
  ],
  "category": "örnek",
  "ab_test": {
    "enabled": true,
    "test_percentage": 1,
    "winner": {
      "mode": "manual",
      "metric": "open_rate",
      "evaluate_after_minutes": 5
    },
    "phase": "testing"
  },
  "variants": [
    {
      "name": "Sipariş bildirimleri",
      "id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "weight_percent": 1,
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "is_control": true,
      "position": 1
    }
  ],
  "audience": {
    "key": "örnek"
  },
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "template_version": 1,
  "delivery": {
    "ttl": 86400,
    "timezone_mode": "immediate",
    "delivery_time_of_day": "değer",
    "throttle_per_minute": 1
  },
  "recurrence": {
    "cron": "xxxxxxxxx",
    "until": "2026-10-17T09:00:00Z",
    "timezone": "Europe/Istanbul"
  },
  "approval": {
    "required": true,
    "pending_action": "send",
    "requested_by": "örnek",
    "requested_at": "örnek",
    "approved_by": "örnek"
  },
  "stats": {
    "runs": 1,
    "targeted": 1,
    "suppressed": 1,
    "sent": 1
  },
  "send_at": "örnek",
  "next_run_at": "örnek",
  "last_run_at": "örnek",
  "run_count": 1,
  "error": "örnek",
  "created_by": "örnek",
  "started_at": "örnek",
  "completed_at": "örnek",
  "created_at": "örnek",
  "updated_at": "örnek",
  "estimated_recipients": 1
}

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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W/resend-failed" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Kampanya çalıştırmaları

GET/v1/apps/{appId}/campaigns/{campaignId}/messagesDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
campaignIdyolstringEvet"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

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": "cmp_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": "cmp_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/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/campaigns/cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W/messages" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Bu sayfada