Ş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öntem | Yol | İş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}/versions | Sürüm geçmişi |
POST | /v1/apps/{appId}/templates/{templateId}/render | Şablonu örnek verilerle render et |
Ayrıntılar
Şablon listesi
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
limit | sorgu | integer | Hayır | Varsayılan: 50; Aralık: 1–200 | 50 |
cursor | sorgu | string | Hayır | Uzunluk: 1–∞ | "eyJpZCI6Im1zZ18wMUpE…" |
q | sorgu | string | Hayır | Uzunluk: 1–100 | "ayse" |
channel | sorgu | enum | Hayır | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" | "ios_push" |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: TemplatePage
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
data | array<object> | Evet | |
data[].id | string | Evet | |
data[].app_id | string | Evet | |
data[].name | string | Evet | |
data[].channel | enum | null | Evet | |
data[].current_version | integer | Evet | |
data[].tags | array<string> | Evet | |
data[].content | map<string, any> | Evet | |
data[].created_by | string | null | Evet | |
data[].created_at | string | Evet | |
data[].updated_at | string | Evet | |
next_cursor | string | null | Evet | |
has_more | boolean | Evet |
Örnek yanıt:
{
"data": [
{
"name": "Sipariş bildirimleri",
"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
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: CreateTemplateDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
name | string | Evet | Uzunluk: 2–100 |
channel | enum | null | Hayır | |
tags | array<string> | Hayır | Öğe: 0–20 |
content | object | Evet | |
content.headings | map<string, string> | Hayır | |
content.contents | map<string, string> | Hayır | |
content.subtitle | map<string, string> | Hayır | |
content.url | string (url) | Hayır | Uzunluk: 0–2000 |
content.app_url | string (url) | Hayır | Uzunluk: 0–2000 |
content.data | map<string, string> | Hayır | |
content.buttons | array<object> | Hayır | Öğe: 0–3 |
content.buttons[].id | string | Evet | Uzunluk: 1–64 |
content.buttons[].text | string | Evet | Uzunluk: 1–100 |
content.buttons[].icon | string (url) | Hayır | Uzunluk: 0–2000 |
content.buttons[].url | string (url) | Hayır | Uzunluk: 0–2000 |
content.big_picture | string (url) | Hayır | Uzunluk: 0–2000 |
content.ios_attachments | map<string, string (url)> | Hayır | |
content.ios_sound | string | Hayır | Uzunluk: 0–100 |
content.ios_badge_type | enum | Hayır | Değerler: "None", "SetTo", "Increase" |
content.ios_badge_count | integer | Hayır | Aralık: 0–99999 |
content.ios_interruption_level | enum | Hayır | Değerler: "passive", "active", "time-sensitive", "critical" |
content.ios_category | string | Hayır | Uzunluk: 0–100 |
content.android_channel_id | string | Hayır | Uzunluk: 0–100 |
content.android_group | string | Hayır | Uzunluk: 0–100 |
content.android_sound | string | Hayır | Uzunluk: 0–100 |
content.chrome_web_icon | string (url) | Hayır | Uzunluk: 0–2000 |
content.chrome_web_image | string (url) | Hayır | Uzunluk: 0–2000 |
content.chrome_web_badge | string (url) | Hayır | Uzunluk: 0–2000 |
content.web_push_topic | string | Hayır | Uzunluk: 0–32 |
content.content_available | boolean | Hayır | |
content.mutable_content | boolean | Hayır | |
content.custom_data | map<string, any> | Hayır | |
content.email_subject | string | Hayır | Uzunluk: 0–998 |
content.email_body | string | Hayır | Uzunluk: 0–500000 |
content.email_mjml | string | Hayır | Uzunluk: 0–500000 |
content.email_preheader | string | Hayır | Uzunluk: 0–500 |
content.email_from_name | string | Hayır | Uzunluk: 0–200 |
content.email_from_address | string (email) | Hayır | Uzunluk: 0–320 |
content.email_reply_to_address | string (email) | Hayır | Uzunluk: 0–320 |
content.disable_email_click_tracking | boolean | Hayır | |
content.sms_from | string | Hayır | Uzunluk: 1–20 |
content.disable_sms_link_shortening | boolean | Hayır | |
content.add_to_inbox | boolean | Hayır | |
content.inbox_ttl | integer | Hayır | Aralık: 60–31536000 |
content.thread_id | string | Hayır | Uzunluk: 0–100 |
content.ios_relevance_score | number | Hayır | Aralık: 0–1 |
content.target_content_identifier | string | Hayır | Uzunluk: 0–200 |
content.small_icon | string | Hayır | Uzunluk: 0–100 |
content.large_icon | string (url) | string | Hayır | |
content.android_accent_color | string | Hayır | |
content.android_visibility | 1 | 0 | -1 | Hayır | |
content.web_buttons | array<object> | Hayır | Öğe: 0–2 |
content.web_buttons[].id | string | Evet | Uzunluk: 1–64 |
content.web_buttons[].text | string | Evet | Uzunluk: 1–100 |
content.web_buttons[].icon | string (url) | Hayır | Uzunluk: 0–2000 |
content.web_buttons[].url | string (url) | Hayır | Uzunluk: 0–2000 |
content.require_interaction | boolean | Hayır | |
content.sms_media_urls | array<string (url)> | Hayır | Öğe: 1–10 |
content.whatsapp_template | object | Hayır | |
content.whatsapp_template.name | string | Evet | |
content.whatsapp_template.language | string | Evet | |
content.whatsapp_template.header | object | Hayır | |
content.whatsapp_template.body_params | array<string> | Hayır | Öğe: 0–20 |
content.whatsapp_template.button_params | array<object> | Hayır | Öğe: 0–10 |
content.whatsapp_template.button_params[].index | integer | Evet | Aralık: 0–9 |
content.whatsapp_template.button_params[].sub_type | enum | Evet | Değerler: "url", "quick_reply", "copy_code" |
content.whatsapp_template.button_params[].value | string | Evet | Uzunluk: 1–256 |
content.whatsapp_media | object | Hayır | |
content.whatsapp_media.type | enum | Evet | Değerler: "image", "video", "document", "audio" |
content.whatsapp_media.url | string (url) | Evet | Uzunluk: 0–2000 |
content.whatsapp_media.filename | string | Hayır | Uzunluk: 1–240 |
content.whatsapp_interactive | object | Hayır | |
content.whatsapp_interactive.type | enum | Evet | Değerler: "button", "list" |
content.whatsapp_interactive.header | string | Hayır | Uzunluk: 1–60 |
content.whatsapp_interactive.footer | string | Hayır | Uzunluk: 1–60 |
content.whatsapp_interactive.buttons | array<object> | Hayır | Öğe: 1–3 |
content.whatsapp_interactive.buttons[].id | string | Evet | Uzunluk: 1–256 |
content.whatsapp_interactive.buttons[].title | string | Evet | Uzunluk: 1–20 |
content.whatsapp_interactive.list | object | Hayır | |
content.whatsapp_interactive.list.button | string | Evet | Uzunluk: 1–20 |
content.whatsapp_interactive.list.sections | array<object> | Evet | Öğe: 1–10 |
content.whatsapp_interactive.list.sections[].title | string | Hayır | Uzunluk: 1–24 |
content.whatsapp_interactive.list.sections[].rows | array<object> | Evet | Öğe: 1–10 |
content.rcs_card | object | Hayır | |
content.rcs_card.title | map<string, string> | Hayır | |
content.rcs_card.description | map<string, string> | Hayır | |
content.rcs_card.media_url | string (url) | Hayır | Uzunluk: 0–2000 |
content.rcs_card.media_height | enum | Hayır | Değerler: "SHORT", "MEDIUM", "TALL" |
content.rcs_card.orientation | enum | Hayır | Değerler: "VERTICAL", "HORIZONTAL" |
content.rcs_suggestions | array<object> | Hayır | Öğe: 0–11 |
content.rcs_content_sid | string | Hayır | |
content.rcs_content_variables | map<string, string> | Hayır | |
content.rcs_fallback_text | map<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
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
name | string | Evet | |
channel | enum | null | Evet | |
current_version | integer | Evet | |
tags | array<string> | Evet | |
content | map<string, any> | Evet | |
created_by | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet |
Ö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ı
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
templateId | yol | string | Evet | "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: Template
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
name | string | Evet | |
channel | enum | null | Evet | |
current_version | integer | Evet | |
tags | array<string> | Evet | |
content | map<string, any> | Evet | |
created_by | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet |
Ö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
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
templateId | yol | string | Evet | "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: UpdateTemplateDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
name | string | Hayır | Uzunluk: 2–100 |
channel | enum | null | Hayır | |
tags | array<string> | Hayır | Öğe: 0–20 |
content | object | Hayır | |
content.headings | map<string, string> | Hayır | |
content.contents | map<string, string> | Hayır | |
content.subtitle | map<string, string> | Hayır | |
content.url | string (url) | Hayır | Uzunluk: 0–2000 |
content.app_url | string (url) | Hayır | Uzunluk: 0–2000 |
content.data | map<string, string> | Hayır | |
content.buttons | array<object> | Hayır | Öğe: 0–3 |
content.buttons[].id | string | Evet | Uzunluk: 1–64 |
content.buttons[].text | string | Evet | Uzunluk: 1–100 |
content.buttons[].icon | string (url) | Hayır | Uzunluk: 0–2000 |
content.buttons[].url | string (url) | Hayır | Uzunluk: 0–2000 |
content.big_picture | string (url) | Hayır | Uzunluk: 0–2000 |
content.ios_attachments | map<string, string (url)> | Hayır | |
content.ios_sound | string | Hayır | Uzunluk: 0–100 |
content.ios_badge_type | enum | Hayır | Değerler: "None", "SetTo", "Increase" |
content.ios_badge_count | integer | Hayır | Aralık: 0–99999 |
content.ios_interruption_level | enum | Hayır | Değerler: "passive", "active", "time-sensitive", "critical" |
content.ios_category | string | Hayır | Uzunluk: 0–100 |
content.android_channel_id | string | Hayır | Uzunluk: 0–100 |
content.android_group | string | Hayır | Uzunluk: 0–100 |
content.android_sound | string | Hayır | Uzunluk: 0–100 |
content.chrome_web_icon | string (url) | Hayır | Uzunluk: 0–2000 |
content.chrome_web_image | string (url) | Hayır | Uzunluk: 0–2000 |
content.chrome_web_badge | string (url) | Hayır | Uzunluk: 0–2000 |
content.web_push_topic | string | Hayır | Uzunluk: 0–32 |
content.content_available | boolean | Hayır | |
content.mutable_content | boolean | Hayır | |
content.custom_data | map<string, any> | Hayır | |
content.email_subject | string | Hayır | Uzunluk: 0–998 |
content.email_body | string | Hayır | Uzunluk: 0–500000 |
content.email_mjml | string | Hayır | Uzunluk: 0–500000 |
content.email_preheader | string | Hayır | Uzunluk: 0–500 |
content.email_from_name | string | Hayır | Uzunluk: 0–200 |
content.email_from_address | string (email) | Hayır | Uzunluk: 0–320 |
content.email_reply_to_address | string (email) | Hayır | Uzunluk: 0–320 |
content.disable_email_click_tracking | boolean | Hayır | |
content.sms_from | string | Hayır | Uzunluk: 1–20 |
content.disable_sms_link_shortening | boolean | Hayır | |
content.add_to_inbox | boolean | Hayır | |
content.inbox_ttl | integer | Hayır | Aralık: 60–31536000 |
content.thread_id | string | Hayır | Uzunluk: 0–100 |
content.ios_relevance_score | number | Hayır | Aralık: 0–1 |
content.target_content_identifier | string | Hayır | Uzunluk: 0–200 |
content.small_icon | string | Hayır | Uzunluk: 0–100 |
content.large_icon | string (url) | string | Hayır | |
content.android_accent_color | string | Hayır | |
content.android_visibility | 1 | 0 | -1 | Hayır | |
content.web_buttons | array<object> | Hayır | Öğe: 0–2 |
content.web_buttons[].id | string | Evet | Uzunluk: 1–64 |
content.web_buttons[].text | string | Evet | Uzunluk: 1–100 |
content.web_buttons[].icon | string (url) | Hayır | Uzunluk: 0–2000 |
content.web_buttons[].url | string (url) | Hayır | Uzunluk: 0–2000 |
content.require_interaction | boolean | Hayır | |
content.sms_media_urls | array<string (url)> | Hayır | Öğe: 1–10 |
content.whatsapp_template | object | Hayır | |
content.whatsapp_template.name | string | Evet | |
content.whatsapp_template.language | string | Evet | |
content.whatsapp_template.header | object | Hayır | |
content.whatsapp_template.body_params | array<string> | Hayır | Öğe: 0–20 |
content.whatsapp_template.button_params | array<object> | Hayır | Öğe: 0–10 |
content.whatsapp_template.button_params[].index | integer | Evet | Aralık: 0–9 |
content.whatsapp_template.button_params[].sub_type | enum | Evet | Değerler: "url", "quick_reply", "copy_code" |
content.whatsapp_template.button_params[].value | string | Evet | Uzunluk: 1–256 |
content.whatsapp_media | object | Hayır | |
content.whatsapp_media.type | enum | Evet | Değerler: "image", "video", "document", "audio" |
content.whatsapp_media.url | string (url) | Evet | Uzunluk: 0–2000 |
content.whatsapp_media.filename | string | Hayır | Uzunluk: 1–240 |
content.whatsapp_interactive | object | Hayır | |
content.whatsapp_interactive.type | enum | Evet | Değerler: "button", "list" |
content.whatsapp_interactive.header | string | Hayır | Uzunluk: 1–60 |
content.whatsapp_interactive.footer | string | Hayır | Uzunluk: 1–60 |
content.whatsapp_interactive.buttons | array<object> | Hayır | Öğe: 1–3 |
content.whatsapp_interactive.buttons[].id | string | Evet | Uzunluk: 1–256 |
content.whatsapp_interactive.buttons[].title | string | Evet | Uzunluk: 1–20 |
content.whatsapp_interactive.list | object | Hayır | |
content.whatsapp_interactive.list.button | string | Evet | Uzunluk: 1–20 |
content.whatsapp_interactive.list.sections | array<object> | Evet | Öğe: 1–10 |
content.whatsapp_interactive.list.sections[].title | string | Hayır | Uzunluk: 1–24 |
content.whatsapp_interactive.list.sections[].rows | array<object> | Evet | Öğe: 1–10 |
content.rcs_card | object | Hayır | |
content.rcs_card.title | map<string, string> | Hayır | |
content.rcs_card.description | map<string, string> | Hayır | |
content.rcs_card.media_url | string (url) | Hayır | Uzunluk: 0–2000 |
content.rcs_card.media_height | enum | Hayır | Değerler: "SHORT", "MEDIUM", "TALL" |
content.rcs_card.orientation | enum | Hayır | Değerler: "VERTICAL", "HORIZONTAL" |
content.rcs_suggestions | array<object> | Hayır | Öğe: 0–11 |
content.rcs_content_sid | string | Hayır | |
content.rcs_content_variables | map<string, string> | Hayır | |
content.rcs_fallback_text | map<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
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
name | string | Evet | |
channel | enum | null | Evet | |
current_version | integer | Evet | |
tags | array<string> | Evet | |
content | map<string, any> | Evet | |
created_by | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet |
Ö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
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
templateId | yol | string | Evet | "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: Ok
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
ok | true | Evet |
Ö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
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
templateId | yol | string | Evet | "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: TemplateStats
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
template_id | string | Evet | |
messages | integer | Evet | |
campaigns | integer | Evet | |
targeted | integer | Evet | |
sent | integer | Evet | |
delivered | integer | Evet | |
opened | integer | Evet | |
clicked | integer | Evet | |
converted | integer | Evet | |
open_rate | number | Evet | |
click_rate | number | Evet | |
conversion_rate | number | Evet | |
last_used_at | string | null | Evet |
Ö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
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
templateId | yol | string | Evet | "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: CopyTemplateDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
target_app_id | string | Evet | Uzunluk: 1–64 |
name | string | Hayır | Uzunluk: 2–100 |
Örnek:
{
"target_app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"name": "Sipariş bildirimleri"
}Yanıtlar
201 — Başarılı.
Şema: Template
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
name | string | Evet | |
channel | enum | null | Evet | |
current_version | integer | Evet | |
tags | array<string> | Evet | |
content | map<string, any> | Evet | |
created_by | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet |
Ö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
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
templateId | yol | string | Evet | "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: TemplateVersionList
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
data | array<object> | Evet | |
data[].id | string | Evet | |
data[].version | integer | Evet | |
data[].content | map<string, any> | Evet | |
data[].created_by | string | null | Evet | |
data[].created_at | string | Evet |
Ö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
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
templateId | yol | string | Evet | "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: RenderTemplateDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
channel | enum | Hayır | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs"; Varsayılan: "ios_push" |
language | string | Hayır | Uzunluk: 2–10 |
user | object | Hayır | |
user.external_id | string | Hayır | Uzunluk: 0–255 |
user.tags | map<string, string> | Hayır | |
user.properties | map<string, any> | Hayır | |
custom_data | map<string, any> | Hayır | |
content | object | Hayır | |
content.headings | map<string, string> | Hayır | |
content.contents | map<string, string> | Hayır | |
content.subtitle | map<string, string> | Hayır | |
content.url | string (url) | Hayır | Uzunluk: 0–2000 |
content.app_url | string (url) | Hayır | Uzunluk: 0–2000 |
content.data | map<string, string> | Hayır | |
content.buttons | array<object> | Hayır | Öğe: 0–3 |
content.buttons[].id | string | Evet | Uzunluk: 1–64 |
content.buttons[].text | string | Evet | Uzunluk: 1–100 |
content.buttons[].icon | string (url) | Hayır | Uzunluk: 0–2000 |
content.buttons[].url | string (url) | Hayır | Uzunluk: 0–2000 |
content.big_picture | string (url) | Hayır | Uzunluk: 0–2000 |
content.ios_attachments | map<string, string (url)> | Hayır | |
content.ios_sound | string | Hayır | Uzunluk: 0–100 |
content.ios_badge_type | enum | Hayır | Değerler: "None", "SetTo", "Increase" |
content.ios_badge_count | integer | Hayır | Aralık: 0–99999 |
content.ios_interruption_level | enum | Hayır | Değerler: "passive", "active", "time-sensitive", "critical" |
content.ios_category | string | Hayır | Uzunluk: 0–100 |
content.android_channel_id | string | Hayır | Uzunluk: 0–100 |
content.android_group | string | Hayır | Uzunluk: 0–100 |
content.android_sound | string | Hayır | Uzunluk: 0–100 |
content.chrome_web_icon | string (url) | Hayır | Uzunluk: 0–2000 |
content.chrome_web_image | string (url) | Hayır | Uzunluk: 0–2000 |
content.chrome_web_badge | string (url) | Hayır | Uzunluk: 0–2000 |
content.web_push_topic | string | Hayır | Uzunluk: 0–32 |
content.content_available | boolean | Hayır | |
content.mutable_content | boolean | Hayır | |
content.custom_data | map<string, any> | Hayır | |
content.email_subject | string | Hayır | Uzunluk: 0–998 |
content.email_body | string | Hayır | Uzunluk: 0–500000 |
content.email_mjml | string | Hayır | Uzunluk: 0–500000 |
content.email_preheader | string | Hayır | Uzunluk: 0–500 |
content.email_from_name | string | Hayır | Uzunluk: 0–200 |
content.email_from_address | string (email) | Hayır | Uzunluk: 0–320 |
content.email_reply_to_address | string (email) | Hayır | Uzunluk: 0–320 |
content.disable_email_click_tracking | boolean | Hayır | |
content.sms_from | string | Hayır | Uzunluk: 1–20 |
content.disable_sms_link_shortening | boolean | Hayır | |
content.add_to_inbox | boolean | Hayır | |
content.inbox_ttl | integer | Hayır | Aralık: 60–31536000 |
content.thread_id | string | Hayır | Uzunluk: 0–100 |
content.ios_relevance_score | number | Hayır | Aralık: 0–1 |
content.target_content_identifier | string | Hayır | Uzunluk: 0–200 |
content.small_icon | string | Hayır | Uzunluk: 0–100 |
content.large_icon | string (url) | string | Hayır | |
content.android_accent_color | string | Hayır | |
content.android_visibility | 1 | 0 | -1 | Hayır | |
content.web_buttons | array<object> | Hayır | Öğe: 0–2 |
content.web_buttons[].id | string | Evet | Uzunluk: 1–64 |
content.web_buttons[].text | string | Evet | Uzunluk: 1–100 |
content.web_buttons[].icon | string (url) | Hayır | Uzunluk: 0–2000 |
content.web_buttons[].url | string (url) | Hayır | Uzunluk: 0–2000 |
content.require_interaction | boolean | Hayır | |
content.sms_media_urls | array<string (url)> | Hayır | Öğe: 1–10 |
content.whatsapp_template | object | Hayır | |
content.whatsapp_template.name | string | Evet | |
content.whatsapp_template.language | string | Evet | |
content.whatsapp_template.header | object | Hayır | |
content.whatsapp_template.body_params | array<string> | Hayır | Öğe: 0–20 |
content.whatsapp_template.button_params | array<object> | Hayır | Öğe: 0–10 |
content.whatsapp_template.button_params[].index | integer | Evet | Aralık: 0–9 |
content.whatsapp_template.button_params[].sub_type | enum | Evet | Değerler: "url", "quick_reply", "copy_code" |
content.whatsapp_template.button_params[].value | string | Evet | Uzunluk: 1–256 |
content.whatsapp_media | object | Hayır | |
content.whatsapp_media.type | enum | Evet | Değerler: "image", "video", "document", "audio" |
content.whatsapp_media.url | string (url) | Evet | Uzunluk: 0–2000 |
content.whatsapp_media.filename | string | Hayır | Uzunluk: 1–240 |
content.whatsapp_interactive | object | Hayır | |
content.whatsapp_interactive.type | enum | Evet | Değerler: "button", "list" |
content.whatsapp_interactive.header | string | Hayır | Uzunluk: 1–60 |
content.whatsapp_interactive.footer | string | Hayır | Uzunluk: 1–60 |
content.whatsapp_interactive.buttons | array<object> | Hayır | Öğe: 1–3 |
content.whatsapp_interactive.buttons[].id | string | Evet | Uzunluk: 1–256 |
content.whatsapp_interactive.buttons[].title | string | Evet | Uzunluk: 1–20 |
content.whatsapp_interactive.list | object | Hayır | |
content.whatsapp_interactive.list.button | string | Evet | Uzunluk: 1–20 |
content.whatsapp_interactive.list.sections | array<object> | Evet | Öğe: 1–10 |
content.whatsapp_interactive.list.sections[].title | string | Hayır | Uzunluk: 1–24 |
content.whatsapp_interactive.list.sections[].rows | array<object> | Evet | Öğe: 1–10 |
content.rcs_card | object | Hayır | |
content.rcs_card.title | map<string, string> | Hayır | |
content.rcs_card.description | map<string, string> | Hayır | |
content.rcs_card.media_url | string (url) | Hayır | Uzunluk: 0–2000 |
content.rcs_card.media_height | enum | Hayır | Değerler: "SHORT", "MEDIUM", "TALL" |
content.rcs_card.orientation | enum | Hayır | Değerler: "VERTICAL", "HORIZONTAL" |
content.rcs_suggestions | array<object> | Hayır | Öğe: 0–11 |
content.rcs_content_sid | string | Hayır | |
content.rcs_content_variables | map<string, string> | Hayır | |
content.rcs_fallback_text | map<string, string> | Hayır | |
version | integer | Hayır | Aralı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
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
language | string | Evet | |
title | string | null | Evet | |
subtitle | string | null | Evet | |
body | string | null | Evet | |
url | string | null | Evet | |
image_url | string | null | Evet | |
icon_url | string | null | Evet | |
buttons | array<object> | Evet | |
buttons[].id | string | Evet | |
buttons[].text | string | Evet | |
buttons[].url | string | null | Evet | |
data | map<string, string> | Evet | |
warnings | array<string> | Evet | |
email | object | null | Hayır | |
sms | object | null | Hayı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"
}
}'Segmentler
Segmentler — 8 işlem (GET /v1/apps/{appId}/segments, POST /v1/apps/{appId}/segments, POST /v1/apps/{appId}/segments/preview, …). OpenAPI 3.1.0 sözleşmesinden üretilir.
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.