PushizoDocs
API referansı

Şablonlar

Şablonlar — 9 işlem (GET /v1/apps/{appId}/templates, POST /v1/apps/{appId}/templates, GET /v1/apps/{appId}/templates/{templateId}, …). OpenAPI 3.1.0 sözleşmesinden üretilir.

Sürümlü mesaj şablonları (Liquid), geri alma, önizleme ve şablon istatistikleri.

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

İşlemler

YöntemYolİşlem
GET/v1/apps/{appId}/templatesŞablon listesi
POST/v1/apps/{appId}/templatesŞablon oluştur
GET/v1/apps/{appId}/templates/{templateId}Şablon detayı
PATCH/v1/apps/{appId}/templates/{templateId}Şablon güncelle
DELETE/v1/apps/{appId}/templates/{templateId}Şablon sil
GET/v1/apps/{appId}/templates/{templateId}/statsŞablon analitiği
POST/v1/apps/{appId}/templates/{templateId}/copy_to_appŞablonu aynı organizasyondaki başka bir app'e kopyala
GET/v1/apps/{appId}/templates/{templateId}/versionsSürüm geçmişi
POST/v1/apps/{appId}/templates/{templateId}/renderŞablonu örnek verilerle render et

Ayrıntılar

Şablon listesi

GET/v1/apps/{appId}/templatesDene (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"
channelsorguenumHayırDeğerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs""ios_push"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: TemplatePage

AlanTürZorunluAçıklama
dataarray<object>Evet
data[].idstringEvet
data[].app_idstringEvet
data[].namestringEvet
data[].channelenum | nullEvet
data[].current_versionintegerEvet
data[].tagsarray<string>Evet
data[].contentmap<string, any>Evet
data[].created_bystring | nullEvet
data[].created_atstringEvet
data[].updated_atstringEvet
next_cursorstring | nullEvet
has_morebooleanEvet

Örnek yanıt:

{
  "data": [
    {
      "name": "Sipariş bildirimleri",
      "channel": "ios_push",
      "tags": [
        "plan:pro"
      ],
      "id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "current_version": 1,
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "created_by": "ö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/templates?limit=50" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Şablon oluştur

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

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

Parametreler

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

İstek gövdesi (zorunlu)

Şema: CreateTemplateDto

AlanTürZorunluAçıklama
namestringEvetUzunluk: 2–100
channelenum | nullHayır
tagsarray<string>HayırÖğe: 0–20
contentobjectEvet
content.headingsmap<string, string>Hayır
content.contentsmap<string, string>Hayır
content.subtitlemap<string, string>Hayır
content.urlstring (url)HayırUzunluk: 0–2000
content.app_urlstring (url)HayırUzunluk: 0–2000
content.datamap<string, string>Hayır
content.buttonsarray<object>HayırÖğe: 0–3
content.buttons[].idstringEvetUzunluk: 1–64
content.buttons[].textstringEvetUzunluk: 1–100
content.buttons[].iconstring (url)HayırUzunluk: 0–2000
content.buttons[].urlstring (url)HayırUzunluk: 0–2000
content.big_picturestring (url)HayırUzunluk: 0–2000
content.ios_attachmentsmap<string, string (url)>Hayır
content.ios_soundstringHayırUzunluk: 0–100
content.ios_badge_typeenumHayırDeğerler: "None", "SetTo", "Increase"
content.ios_badge_countintegerHayırAralık: 0–99999
content.ios_interruption_levelenumHayırDeğerler: "passive", "active", "time-sensitive", "critical"
content.ios_categorystringHayırUzunluk: 0–100
content.android_channel_idstringHayırUzunluk: 0–100
content.android_groupstringHayırUzunluk: 0–100
content.android_soundstringHayırUzunluk: 0–100
content.chrome_web_iconstring (url)HayırUzunluk: 0–2000
content.chrome_web_imagestring (url)HayırUzunluk: 0–2000
content.chrome_web_badgestring (url)HayırUzunluk: 0–2000
content.web_push_topicstringHayırUzunluk: 0–32
content.content_availablebooleanHayır
content.mutable_contentbooleanHayır
content.custom_datamap<string, any>Hayır
content.email_subjectstringHayırUzunluk: 0–998
content.email_bodystringHayırUzunluk: 0–500000
content.email_mjmlstringHayırUzunluk: 0–500000
content.email_preheaderstringHayırUzunluk: 0–500
content.email_from_namestringHayırUzunluk: 0–200
content.email_from_addressstring (email)HayırUzunluk: 0–320
content.email_reply_to_addressstring (email)HayırUzunluk: 0–320
content.disable_email_click_trackingbooleanHayır
content.sms_fromstringHayırUzunluk: 1–20
content.disable_sms_link_shorteningbooleanHayır
content.add_to_inboxbooleanHayır
content.inbox_ttlintegerHayırAralık: 60–31536000
content.thread_idstringHayırUzunluk: 0–100
content.ios_relevance_scorenumberHayırAralık: 0–1
content.target_content_identifierstringHayırUzunluk: 0–200
content.small_iconstringHayırUzunluk: 0–100
content.large_iconstring (url) | stringHayır
content.android_accent_colorstringHayır
content.android_visibility1 | 0 | -1Hayır
content.web_buttonsarray<object>HayırÖğe: 0–2
content.web_buttons[].idstringEvetUzunluk: 1–64
content.web_buttons[].textstringEvetUzunluk: 1–100
content.web_buttons[].iconstring (url)HayırUzunluk: 0–2000
content.web_buttons[].urlstring (url)HayırUzunluk: 0–2000
content.require_interactionbooleanHayır
content.sms_media_urlsarray<string (url)>HayırÖğe: 1–10
content.whatsapp_templateobjectHayır
content.whatsapp_template.namestringEvet
content.whatsapp_template.languagestringEvet
content.whatsapp_template.headerobjectHayır
content.whatsapp_template.body_paramsarray<string>HayırÖğe: 0–20
content.whatsapp_template.button_paramsarray<object>HayırÖğe: 0–10
content.whatsapp_template.button_params[].indexintegerEvetAralık: 0–9
content.whatsapp_template.button_params[].sub_typeenumEvetDeğerler: "url", "quick_reply", "copy_code"
content.whatsapp_template.button_params[].valuestringEvetUzunluk: 1–256
content.whatsapp_mediaobjectHayır
content.whatsapp_media.typeenumEvetDeğerler: "image", "video", "document", "audio"
content.whatsapp_media.urlstring (url)EvetUzunluk: 0–2000
content.whatsapp_media.filenamestringHayırUzunluk: 1–240
content.whatsapp_interactiveobjectHayır
content.whatsapp_interactive.typeenumEvetDeğerler: "button", "list"
content.whatsapp_interactive.headerstringHayırUzunluk: 1–60
content.whatsapp_interactive.footerstringHayırUzunluk: 1–60
content.whatsapp_interactive.buttonsarray<object>HayırÖğe: 1–3
content.whatsapp_interactive.buttons[].idstringEvetUzunluk: 1–256
content.whatsapp_interactive.buttons[].titlestringEvetUzunluk: 1–20
content.whatsapp_interactive.listobjectHayır
content.whatsapp_interactive.list.buttonstringEvetUzunluk: 1–20
content.whatsapp_interactive.list.sectionsarray<object>EvetÖğe: 1–10
content.whatsapp_interactive.list.sections[].titlestringHayırUzunluk: 1–24
content.whatsapp_interactive.list.sections[].rowsarray<object>EvetÖğe: 1–10
content.rcs_cardobjectHayır
content.rcs_card.titlemap<string, string>Hayır
content.rcs_card.descriptionmap<string, string>Hayır
content.rcs_card.media_urlstring (url)HayırUzunluk: 0–2000
content.rcs_card.media_heightenumHayırDeğerler: "SHORT", "MEDIUM", "TALL"
content.rcs_card.orientationenumHayırDeğerler: "VERTICAL", "HORIZONTAL"
content.rcs_suggestionsarray<object>HayırÖğe: 0–11
content.rcs_content_sidstringHayır
content.rcs_content_variablesmap<string, string>Hayır
content.rcs_fallback_textmap<string, string>Hayır

Örnek:

{
  "name": "Sipariş bildirimleri",
  "content": {
    "headings": {
      "tr": "Siparişiniz yola çıktı",
      "en": "Your order has shipped"
    },
    "contents": {
      "tr": "Siparişiniz yola çıktı",
      "en": "Your order has shipped"
    },
    "url": "https://example.com/orders/1001"
  },
  "channel": "ios_push",
  "tags": [
    "plan:pro"
  ]
}

Yanıtlar

200 — Başarılı.

Şema: Template

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
channelenum | nullEvet
current_versionintegerEvet
tagsarray<string>Evet
contentmap<string, any>Evet
created_bystring | nullEvet
created_atstringEvet
updated_atstringEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "channel": "ios_push",
  "tags": [
    "plan:pro"
  ],
  "id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "current_version": 1,
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "created_by": "ö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 POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/templates" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Sipariş bildirimleri",
  "content": {
    "headings": {
      "tr": "Siparişiniz yola çıktı",
      "en": "Your order has shipped"
    },
    "contents": {
      "tr": "Siparişiniz yola çıktı",
      "en": "Your order has shipped"
    },
    "url": "https://example.com/orders/1001"
  },
  "channel": "ios_push",
  "tags": [
    "plan:pro"
  ]
}'

Şablon detayı

GET/v1/apps/{appId}/templates/{templateId}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
templateIdyolstringEvet"tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: Template

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
channelenum | nullEvet
current_versionintegerEvet
tagsarray<string>Evet
contentmap<string, any>Evet
created_bystring | nullEvet
created_atstringEvet
updated_atstringEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "channel": "ios_push",
  "tags": [
    "plan:pro"
  ],
  "id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "current_version": 1,
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "created_by": "ö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/templates/tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Şablon güncelle

PATCH/v1/apps/{appId}/templates/{templateId}Dene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

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

İstek gövdesi (zorunlu)

Şema: UpdateTemplateDto

AlanTürZorunluAçıklama
namestringHayırUzunluk: 2–100
channelenum | nullHayır
tagsarray<string>HayırÖğe: 0–20
contentobjectHayır
content.headingsmap<string, string>Hayır
content.contentsmap<string, string>Hayır
content.subtitlemap<string, string>Hayır
content.urlstring (url)HayırUzunluk: 0–2000
content.app_urlstring (url)HayırUzunluk: 0–2000
content.datamap<string, string>Hayır
content.buttonsarray<object>HayırÖğe: 0–3
content.buttons[].idstringEvetUzunluk: 1–64
content.buttons[].textstringEvetUzunluk: 1–100
content.buttons[].iconstring (url)HayırUzunluk: 0–2000
content.buttons[].urlstring (url)HayırUzunluk: 0–2000
content.big_picturestring (url)HayırUzunluk: 0–2000
content.ios_attachmentsmap<string, string (url)>Hayır
content.ios_soundstringHayırUzunluk: 0–100
content.ios_badge_typeenumHayırDeğerler: "None", "SetTo", "Increase"
content.ios_badge_countintegerHayırAralık: 0–99999
content.ios_interruption_levelenumHayırDeğerler: "passive", "active", "time-sensitive", "critical"
content.ios_categorystringHayırUzunluk: 0–100
content.android_channel_idstringHayırUzunluk: 0–100
content.android_groupstringHayırUzunluk: 0–100
content.android_soundstringHayırUzunluk: 0–100
content.chrome_web_iconstring (url)HayırUzunluk: 0–2000
content.chrome_web_imagestring (url)HayırUzunluk: 0–2000
content.chrome_web_badgestring (url)HayırUzunluk: 0–2000
content.web_push_topicstringHayırUzunluk: 0–32
content.content_availablebooleanHayır
content.mutable_contentbooleanHayır
content.custom_datamap<string, any>Hayır
content.email_subjectstringHayırUzunluk: 0–998
content.email_bodystringHayırUzunluk: 0–500000
content.email_mjmlstringHayırUzunluk: 0–500000
content.email_preheaderstringHayırUzunluk: 0–500
content.email_from_namestringHayırUzunluk: 0–200
content.email_from_addressstring (email)HayırUzunluk: 0–320
content.email_reply_to_addressstring (email)HayırUzunluk: 0–320
content.disable_email_click_trackingbooleanHayır
content.sms_fromstringHayırUzunluk: 1–20
content.disable_sms_link_shorteningbooleanHayır
content.add_to_inboxbooleanHayır
content.inbox_ttlintegerHayırAralık: 60–31536000
content.thread_idstringHayırUzunluk: 0–100
content.ios_relevance_scorenumberHayırAralık: 0–1
content.target_content_identifierstringHayırUzunluk: 0–200
content.small_iconstringHayırUzunluk: 0–100
content.large_iconstring (url) | stringHayır
content.android_accent_colorstringHayır
content.android_visibility1 | 0 | -1Hayır
content.web_buttonsarray<object>HayırÖğe: 0–2
content.web_buttons[].idstringEvetUzunluk: 1–64
content.web_buttons[].textstringEvetUzunluk: 1–100
content.web_buttons[].iconstring (url)HayırUzunluk: 0–2000
content.web_buttons[].urlstring (url)HayırUzunluk: 0–2000
content.require_interactionbooleanHayır
content.sms_media_urlsarray<string (url)>HayırÖğe: 1–10
content.whatsapp_templateobjectHayır
content.whatsapp_template.namestringEvet
content.whatsapp_template.languagestringEvet
content.whatsapp_template.headerobjectHayır
content.whatsapp_template.body_paramsarray<string>HayırÖğe: 0–20
content.whatsapp_template.button_paramsarray<object>HayırÖğe: 0–10
content.whatsapp_template.button_params[].indexintegerEvetAralık: 0–9
content.whatsapp_template.button_params[].sub_typeenumEvetDeğerler: "url", "quick_reply", "copy_code"
content.whatsapp_template.button_params[].valuestringEvetUzunluk: 1–256
content.whatsapp_mediaobjectHayır
content.whatsapp_media.typeenumEvetDeğerler: "image", "video", "document", "audio"
content.whatsapp_media.urlstring (url)EvetUzunluk: 0–2000
content.whatsapp_media.filenamestringHayırUzunluk: 1–240
content.whatsapp_interactiveobjectHayır
content.whatsapp_interactive.typeenumEvetDeğerler: "button", "list"
content.whatsapp_interactive.headerstringHayırUzunluk: 1–60
content.whatsapp_interactive.footerstringHayırUzunluk: 1–60
content.whatsapp_interactive.buttonsarray<object>HayırÖğe: 1–3
content.whatsapp_interactive.buttons[].idstringEvetUzunluk: 1–256
content.whatsapp_interactive.buttons[].titlestringEvetUzunluk: 1–20
content.whatsapp_interactive.listobjectHayır
content.whatsapp_interactive.list.buttonstringEvetUzunluk: 1–20
content.whatsapp_interactive.list.sectionsarray<object>EvetÖğe: 1–10
content.whatsapp_interactive.list.sections[].titlestringHayırUzunluk: 1–24
content.whatsapp_interactive.list.sections[].rowsarray<object>EvetÖğe: 1–10
content.rcs_cardobjectHayır
content.rcs_card.titlemap<string, string>Hayır
content.rcs_card.descriptionmap<string, string>Hayır
content.rcs_card.media_urlstring (url)HayırUzunluk: 0–2000
content.rcs_card.media_heightenumHayırDeğerler: "SHORT", "MEDIUM", "TALL"
content.rcs_card.orientationenumHayırDeğerler: "VERTICAL", "HORIZONTAL"
content.rcs_suggestionsarray<object>HayırÖğe: 0–11
content.rcs_content_sidstringHayır
content.rcs_content_variablesmap<string, string>Hayır
content.rcs_fallback_textmap<string, string>Hayır

Örnek:

{
  "name": "Sipariş bildirimleri",
  "channel": "ios_push",
  "tags": [
    "plan:pro"
  ],
  "content": {
    "headings": {
      "tr": "Siparişiniz yola çıktı",
      "en": "Your order has shipped"
    },
    "contents": {
      "tr": "Siparişiniz yola çıktı",
      "en": "Your order has shipped"
    },
    "url": "https://example.com/orders/1001"
  }
}

Yanıtlar

200 — Başarılı.

Şema: Template

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
channelenum | nullEvet
current_versionintegerEvet
tagsarray<string>Evet
contentmap<string, any>Evet
created_bystring | nullEvet
created_atstringEvet
updated_atstringEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "channel": "ios_push",
  "tags": [
    "plan:pro"
  ],
  "id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "current_version": 1,
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "created_by": "ö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 PATCH "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/templates/tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Sipariş bildirimleri",
  "channel": "ios_push",
  "tags": [
    "plan:pro"
  ],
  "content": {
    "headings": {
      "tr": "Siparişiniz yola çıktı",
      "en": "Your order has shipped"
    },
    "contents": {
      "tr": "Siparişiniz yola çıktı",
      "en": "Your order has shipped"
    },
    "url": "https://example.com/orders/1001"
  }
}'

Şablon sil

DELETE/v1/apps/{appId}/templates/{templateId}Dene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
templateIdyolstringEvet"tpl_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/templates/tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Şablon analitiği

GET/v1/apps/{appId}/templates/{templateId}/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
templateIdyolstringEvet"tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: TemplateStats

AlanTürZorunluAçıklama
template_idstringEvet
messagesintegerEvet
campaignsintegerEvet
targetedintegerEvet
sentintegerEvet
deliveredintegerEvet
openedintegerEvet
clickedintegerEvet
convertedintegerEvet
open_ratenumberEvet
click_ratenumberEvet
conversion_ratenumberEvet
last_used_atstring | nullEvet

Örnek yanıt:

{
  "template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "messages": 1,
  "campaigns": 1,
  "targeted": 1,
  "sent": 1,
  "delivered": 1,
  "opened": 1,
  "clicked": 1,
  "converted": 1,
  "open_rate": 1.5,
  "click_rate": 1.5,
  "conversion_rate": 1.5,
  "last_used_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/templates/tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W/stats" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Şablonu aynı organizasyondaki başka bir app'e kopyala

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

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

Parametreler

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

İstek gövdesi (zorunlu)

Şema: CopyTemplateDto

AlanTürZorunluAçıklama
target_app_idstringEvetUzunluk: 1–64
namestringHayırUzunluk: 2–100

Örnek:

{
  "target_app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "name": "Sipariş bildirimleri"
}

Yanıtlar

201 — Başarılı.

Şema: Template

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
channelenum | nullEvet
current_versionintegerEvet
tagsarray<string>Evet
contentmap<string, any>Evet
created_bystring | nullEvet
created_atstringEvet
updated_atstringEvet

Örnek yanıt:

{
  "name": "Sipariş bildirimleri",
  "channel": "ios_push",
  "tags": [
    "plan:pro"
  ],
  "id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "current_version": 1,
  "content": {
    "contents": {
      "tr": "Siparişiniz yola çıktı"
    }
  },
  "created_by": "ö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 POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/templates/tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W/copy_to_app" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "target_app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "name": "Sipariş bildirimleri"
}'

Sürüm geçmişi

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

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

Parametreler

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

Yanıtlar

200 — Başarılı.

Şema: TemplateVersionList

AlanTürZorunluAçıklama
dataarray<object>Evet
data[].idstringEvet
data[].versionintegerEvet
data[].contentmap<string, any>Evet
data[].created_bystring | nullEvet
data[].created_atstringEvet

Örnek yanıt:

{
  "data": [
    {
      "id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "version": 1,
      "content": {
        "contents": {
          "tr": "Siparişiniz yola çıktı"
        }
      },
      "created_by": "örnek",
      "created_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/templates/tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W/versions" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Şablonu örnek verilerle render et

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

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

Parametreler

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

İstek gövdesi (zorunlu)

Şema: RenderTemplateDto

AlanTürZorunluAçıklama
channelenumHayırDeğerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs"; Varsayılan: "ios_push"
languagestringHayırUzunluk: 2–10
userobjectHayır
user.external_idstringHayırUzunluk: 0–255
user.tagsmap<string, string>Hayır
user.propertiesmap<string, any>Hayır
custom_datamap<string, any>Hayır
contentobjectHayır
content.headingsmap<string, string>Hayır
content.contentsmap<string, string>Hayır
content.subtitlemap<string, string>Hayır
content.urlstring (url)HayırUzunluk: 0–2000
content.app_urlstring (url)HayırUzunluk: 0–2000
content.datamap<string, string>Hayır
content.buttonsarray<object>HayırÖğe: 0–3
content.buttons[].idstringEvetUzunluk: 1–64
content.buttons[].textstringEvetUzunluk: 1–100
content.buttons[].iconstring (url)HayırUzunluk: 0–2000
content.buttons[].urlstring (url)HayırUzunluk: 0–2000
content.big_picturestring (url)HayırUzunluk: 0–2000
content.ios_attachmentsmap<string, string (url)>Hayır
content.ios_soundstringHayırUzunluk: 0–100
content.ios_badge_typeenumHayırDeğerler: "None", "SetTo", "Increase"
content.ios_badge_countintegerHayırAralık: 0–99999
content.ios_interruption_levelenumHayırDeğerler: "passive", "active", "time-sensitive", "critical"
content.ios_categorystringHayırUzunluk: 0–100
content.android_channel_idstringHayırUzunluk: 0–100
content.android_groupstringHayırUzunluk: 0–100
content.android_soundstringHayırUzunluk: 0–100
content.chrome_web_iconstring (url)HayırUzunluk: 0–2000
content.chrome_web_imagestring (url)HayırUzunluk: 0–2000
content.chrome_web_badgestring (url)HayırUzunluk: 0–2000
content.web_push_topicstringHayırUzunluk: 0–32
content.content_availablebooleanHayır
content.mutable_contentbooleanHayır
content.custom_datamap<string, any>Hayır
content.email_subjectstringHayırUzunluk: 0–998
content.email_bodystringHayırUzunluk: 0–500000
content.email_mjmlstringHayırUzunluk: 0–500000
content.email_preheaderstringHayırUzunluk: 0–500
content.email_from_namestringHayırUzunluk: 0–200
content.email_from_addressstring (email)HayırUzunluk: 0–320
content.email_reply_to_addressstring (email)HayırUzunluk: 0–320
content.disable_email_click_trackingbooleanHayır
content.sms_fromstringHayırUzunluk: 1–20
content.disable_sms_link_shorteningbooleanHayır
content.add_to_inboxbooleanHayır
content.inbox_ttlintegerHayırAralık: 60–31536000
content.thread_idstringHayırUzunluk: 0–100
content.ios_relevance_scorenumberHayırAralık: 0–1
content.target_content_identifierstringHayırUzunluk: 0–200
content.small_iconstringHayırUzunluk: 0–100
content.large_iconstring (url) | stringHayır
content.android_accent_colorstringHayır
content.android_visibility1 | 0 | -1Hayır
content.web_buttonsarray<object>HayırÖğe: 0–2
content.web_buttons[].idstringEvetUzunluk: 1–64
content.web_buttons[].textstringEvetUzunluk: 1–100
content.web_buttons[].iconstring (url)HayırUzunluk: 0–2000
content.web_buttons[].urlstring (url)HayırUzunluk: 0–2000
content.require_interactionbooleanHayır
content.sms_media_urlsarray<string (url)>HayırÖğe: 1–10
content.whatsapp_templateobjectHayır
content.whatsapp_template.namestringEvet
content.whatsapp_template.languagestringEvet
content.whatsapp_template.headerobjectHayır
content.whatsapp_template.body_paramsarray<string>HayırÖğe: 0–20
content.whatsapp_template.button_paramsarray<object>HayırÖğe: 0–10
content.whatsapp_template.button_params[].indexintegerEvetAralık: 0–9
content.whatsapp_template.button_params[].sub_typeenumEvetDeğerler: "url", "quick_reply", "copy_code"
content.whatsapp_template.button_params[].valuestringEvetUzunluk: 1–256
content.whatsapp_mediaobjectHayır
content.whatsapp_media.typeenumEvetDeğerler: "image", "video", "document", "audio"
content.whatsapp_media.urlstring (url)EvetUzunluk: 0–2000
content.whatsapp_media.filenamestringHayırUzunluk: 1–240
content.whatsapp_interactiveobjectHayır
content.whatsapp_interactive.typeenumEvetDeğerler: "button", "list"
content.whatsapp_interactive.headerstringHayırUzunluk: 1–60
content.whatsapp_interactive.footerstringHayırUzunluk: 1–60
content.whatsapp_interactive.buttonsarray<object>HayırÖğe: 1–3
content.whatsapp_interactive.buttons[].idstringEvetUzunluk: 1–256
content.whatsapp_interactive.buttons[].titlestringEvetUzunluk: 1–20
content.whatsapp_interactive.listobjectHayır
content.whatsapp_interactive.list.buttonstringEvetUzunluk: 1–20
content.whatsapp_interactive.list.sectionsarray<object>EvetÖğe: 1–10
content.whatsapp_interactive.list.sections[].titlestringHayırUzunluk: 1–24
content.whatsapp_interactive.list.sections[].rowsarray<object>EvetÖğe: 1–10
content.rcs_cardobjectHayır
content.rcs_card.titlemap<string, string>Hayır
content.rcs_card.descriptionmap<string, string>Hayır
content.rcs_card.media_urlstring (url)HayırUzunluk: 0–2000
content.rcs_card.media_heightenumHayırDeğerler: "SHORT", "MEDIUM", "TALL"
content.rcs_card.orientationenumHayırDeğerler: "VERTICAL", "HORIZONTAL"
content.rcs_suggestionsarray<object>HayırÖğe: 0–11
content.rcs_content_sidstringHayır
content.rcs_content_variablesmap<string, string>Hayır
content.rcs_fallback_textmap<string, string>Hayır
versionintegerHayırAralık: 1–∞

Örnek:

{
  "channel": "ios_push",
  "language": "tr",
  "user": {
    "tags": {
      "plan": "pro",
      "city": "Istanbul"
    },
    "properties": {
      "order_id": "1001"
    },
    "external_id": "user_42"
  },
  "custom_data": {
    "key": "örnek"
  },
  "content": {
    "headings": {
      "tr": "Siparişiniz yola çıktı",
      "en": "Your order has shipped"
    },
    "contents": {
      "tr": "Siparişiniz yola çıktı",
      "en": "Your order has shipped"
    },
    "url": "https://example.com/orders/1001"
  }
}

Yanıtlar

200 — Başarılı.

Şema: RenderPreview

AlanTürZorunluAçıklama
channelenumEvetDeğerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs"
languagestringEvet
titlestring | nullEvet
subtitlestring | nullEvet
bodystring | nullEvet
urlstring | nullEvet
image_urlstring | nullEvet
icon_urlstring | nullEvet
buttonsarray<object>Evet
buttons[].idstringEvet
buttons[].textstringEvet
buttons[].urlstring | nullEvet
datamap<string, string>Evet
warningsarray<string>Evet
emailobject | nullHayır
smsobject | nullHayır

Örnek yanıt:

{
  "url": "https://example.com/orders/1001",
  "data": {
    "order_id": "1001"
  },
  "channel": "ios_push",
  "language": "tr",
  "title": "Siparişiniz yola çıktı",
  "subtitle": "örnek",
  "body": "Takip bağlantısı içeride",
  "image_url": "https://example.com/orders/1001",
  "icon_url": "https://example.com/orders/1001",
  "buttons": [
    {
      "url": "https://example.com/orders/1001",
      "id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "text": "Takip bağlantısı içeride"
    }
  ],
  "warnings": [
    "örnek"
  ],
  "email": {
    "subject": "Siparişiniz yola çıktı",
    "preheader": "örnek",
    "html": "örnek",
    "text": "Takip bağlantısı içeride"
  },
  "sms": {
    "body": "Takip bağlantısı içeride",
    "encoding": "gsm7",
    "characters": 1,
    "segments": 1,
    "per_segment": 1,
    "non_gsm_characters": [
      "örnek"
    ],
    "turkish_characters": [
      "örnek"
    ]
  }
}

Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).

Örnekler

curl -X POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/templates/tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W/render" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "channel": "ios_push",
  "language": "tr",
  "user": {
    "tags": {
      "plan": "pro",
      "city": "Istanbul"
    },
    "properties": {
      "order_id": "1001"
    },
    "external_id": "user_42"
  },
  "custom_data": {
    "key": "örnek"
  },
  "content": {
    "headings": {
      "tr": "Siparişiniz yola çıktı",
      "en": "Your order has shipped"
    },
    "contents": {
      "tr": "Siparişiniz yola çıktı",
      "en": "Your order has shipped"
    },
    "url": "https://example.com/orders/1001"
  }
}'

Bu sayfada