Kullanıcılar ve abonelikler
Kullanıcılar ve abonelikler — 18 işlem (GET /v1/apps/{appId}/users, POST /v1/apps/{appId}/users, POST /v1/apps/{appId}/users/search, …). OpenAPI 3.1.0 sözleşmesinden üretilir.
Kullanıcı (end user) oluşturma/güncelleme, alias’lar, abonelikler (cihaz, e-posta, telefon), arama, KVKK/GDPR dışa aktarma ve silme, olay gönderimi.
Taban adres: https://api.pushizo.com · Etiket: users · Etkileşimli belge (Scalar)
İşlemler
| Yöntem | Yol | İşlem |
|---|---|---|
GET | /v1/apps/{appId}/users | Kullanıcı listesi |
POST | /v1/apps/{appId}/users | Kullanıcı oluştur/güncelle (external_id ile, isteğe bağlı aboneliklerle) |
POST | /v1/apps/{appId}/users/search | Segment tanımı ile kullanıcı arama |
GET | /v1/apps/{appId}/users/by/{label}/{value} | Alias ile kullanıcı (hs_id, external_id veya özel etiket) |
PATCH | /v1/apps/{appId}/users/by/{label}/{value} | Tag/property merge-patch ve deltas |
DELETE | /v1/apps/{appId}/users/by/{label}/{value} | Kullanıcıyı sil (abonelikler silinir, olaylar anonimleşir) |
GET | /v1/apps/{appId}/users/by/{label}/{value}/identity | Kullanıcının tüm kimlikleri (hs_id, external_id, özel alias'lar) |
PATCH | /v1/apps/{appId}/users/by/{label}/{value}/identity | Alias ekle |
GET | /v1/apps/{appId}/users/by/{label}/{value}/export | Kullanıcı verisini dışa aktar (KVKK/GDPR taşınabilirlik): profil, alias, abonelik, son olaylar |
DELETE | /v1/apps/{appId}/users/by/{label}/{value}/identity/{aliasLabel} | Alias kaldır |
POST | /v1/apps/{appId}/users/by/{label}/{value}/subscriptions | Kullanıcıya abonelik ekle |
GET | /v1/apps/{appId}/subscriptions/{subscriptionId} | Abonelik detayı |
PATCH | /v1/apps/{appId}/subscriptions/{subscriptionId} | Abonelik güncelle |
DELETE | /v1/apps/{appId}/subscriptions/{subscriptionId} | Aboneliği sil |
GET | /v1/apps/{appId}/subscriptions/{subscriptionId}/user/identity | Aboneliğin sahibi kullanıcının kimlikleri |
PATCH | /v1/apps/{appId}/subscriptions_by_token/{tokenType}/{token} | Token ile abonelik güncelle (token_type: ios_push, android_push, hms_push, web_push, email, sms veya OneSignal adları iOSPush, AndroidPush, HuaweiPush, ChromePush, FirefoxPush, SafariPush, Email, SMS) |
POST | /v1/apps/{appId}/subscriptions/{subscriptionId}/owner | Aboneliği external_id ile kullanıcıya bağla |
POST | /v1/apps/{appId}/events | Toplu olay gönder (en fazla 500) |
Ayrıntılar
Kullanıcı listesi
Kimlik doğrulama: API anahtarı — kapsam users: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…" |
sort | sorgu | enum | Hayır | Değerler: "last_active_at", "-last_active_at" | "last_active_at" |
q | sorgu | string | Hayır | Uzunluk: 1–255 | "ayse" |
tag | sorgu | string | Hayır | Uzunluk: 3–320 | "plan:pro" |
last_active_after | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
last_active_before | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: UserList
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
data | array<object> | Evet | |
data[].id | string | Evet | |
data[].app_id | string | Evet | |
data[].external_id | string | null | Evet | |
data[].properties | map<string, any> | Evet | |
data[].tags | map<string, string> | Evet | |
data[].first_seen_at | string | Evet | |
data[].last_active_at | string | Evet | |
data[].session_count | integer | Evet | |
data[].usage_seconds | integer | Evet | |
data[].merged_into | string | null | Evet | |
data[].created_at | string | Evet | |
data[].updated_at | string | Evet | |
data[].subscription_count | integer | Evet | |
data[].channels | array<enum> | Evet | |
next_cursor | string | null | Evet | |
has_more | boolean | Evet |
Örnek yanıt:
{
"data": [
{
"channels": [
"ios_push"
],
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"properties": {
"order_id": "1001"
},
"id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"external_id": "user_42",
"first_seen_at": "örnek",
"last_active_at": "örnek",
"session_count": 1,
"usage_seconds": 1,
"merged_into": "örnek",
"created_at": "örnek",
"updated_at": "örnek",
"subscription_count": 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/users?limit=50" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Kullanıcı oluştur/güncelle (external_id ile, isteğe bağlı aboneliklerle)
Kimlik doğrulama: API anahtarı (Authorization: Bearer hs_live_…).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
Idempotency-Key | başlık | string | Hayır | Aynı anahtarla 24 saat içinde tekrarlanan istek aynı yanıtı döner. | "order-1001" |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: UpsertUserDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
identity | object | Hayır | |
identity.external_id | string | Evet | Uzunluk: 1–255 |
external_id | string | Hayır | Uzunluk: 1–255 |
properties | map<string, any> | Hayır | |
tags | map<string, string> | Hayır | |
subscriptions | array<object> | Hayır | Öğe: 0–20 |
subscriptions[].channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
subscriptions[].token | string | Evet | Uzunluk: 1–4096 |
subscriptions[].device | object | Hayır | Varsayılan: {} |
subscriptions[].device.model | string | Hayır | Uzunluk: 0–100 |
subscriptions[].device.os | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.os_version | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.app_version | string | null | Hayır | |
subscriptions[].device.sdk_version | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.sdk_platform | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.carrier | string | Hayır | Uzunluk: 0–100 |
subscriptions[].device.locale | string | Hayır | Uzunluk: 0–20 |
subscriptions[].device.timezone | string | Hayır | Uzunluk: 0–64 |
subscriptions[].device.push_capable | boolean | Hayır | |
subscriptions[].device.push_environment | enum | Hayır | Değerler: "sandbox", "production" |
subscriptions[].status | enum | Hayır | Değerler: "subscribed", "unsubscribed" |
subscriptions[].opt_in | object | Hayır | |
subscriptions[].opt_in.source | string | Evet | Uzunluk: 1–100 |
subscriptions[].opt_in.at | string (date-time) | Hayır |
Örnek:
{
"identity": {
"external_id": "user_42"
},
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"properties": {
"order_id": "1001"
},
"subscriptions": [
{
"channel": "ios_push",
"token": "d1f2e3…",
"status": "subscribed",
"device": {},
"opt_in": {
"source": "örnek",
"at": "2026-10-17T09:00:00Z"
}
}
],
"external_id": "user_42"
}Yanıtlar
201 — Başarılı.
Şema: UserDetail
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
external_id | string | null | Evet | |
properties | map<string, any> | Evet | |
tags | map<string, string> | Evet | |
first_seen_at | string | Evet | |
last_active_at | string | Evet | |
session_count | integer | Evet | |
usage_seconds | integer | Evet | |
merged_into | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet | |
subscription_count | integer | Evet | |
channels | array<enum> | Evet | |
aliases | array<object> | Evet | |
aliases[].label | string | Evet | |
aliases[].value | string | Evet | |
subscriptions | array<object> | Evet | |
subscriptions[].id | string | Evet | |
subscriptions[].app_id | string | Evet | |
subscriptions[].user_id | string | null | Evet | |
subscriptions[].channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
subscriptions[].token | string | Evet | |
subscriptions[].status | enum | Evet | Değerler: "subscribed", "unsubscribed", "invalid", "pending" |
subscriptions[].unsubscribe_reason | enum | null | Evet | |
subscriptions[].device | object | Evet | |
subscriptions[].device.model | string | Hayır | Uzunluk: 0–100 |
subscriptions[].device.os | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.os_version | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.app_version | string | null | Hayır | |
subscriptions[].device.sdk_version | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.sdk_platform | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.carrier | string | Hayır | Uzunluk: 0–100 |
subscriptions[].device.locale | string | Hayır | Uzunluk: 0–20 |
subscriptions[].device.timezone | string | Hayır | Uzunluk: 0–64 |
subscriptions[].device.push_capable | boolean | Hayır | |
subscriptions[].device.push_environment | enum | Hayır | Değerler: "sandbox", "production" |
subscriptions[].test_device | boolean | Evet | |
subscriptions[].test_device_name | string | null | Evet | |
subscriptions[].last_active_at | string | Evet | |
subscriptions[].last_sent_at | string | null | Evet | |
subscriptions[].last_delivered_at | string | null | Evet | |
subscriptions[].opted_in_at | string | null | Evet | |
subscriptions[].opt_in_source | string | null | Evet | |
subscriptions[].unsubscribed_at | string | null | Evet | |
subscriptions[].location | object | null | Evet | |
subscriptions[].created_at | string | Evet |
Örnek yanıt:
{
"channels": [
"ios_push"
],
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"properties": {
"order_id": "1001"
},
"subscriptions": [
{
"channel": "ios_push",
"status": "subscribed",
"id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token": "d1f2e3…",
"unsubscribe_reason": "provider_rejected",
"device": {
"model": "örnek",
"os": "örnek"
},
"test_device": true,
"test_device_name": "örnek",
"last_active_at": "örnek",
"last_sent_at": "örnek",
"last_delivered_at": "örnek",
"opted_in_at": "örnek",
"opt_in_source": "örnek",
"unsubscribed_at": "örnek",
"location": {
"lat": 1.5,
"lng": 1.5,
"accuracy_m": 1.5,
"geohash": "örnek",
"updated_at": "örnek",
"consent_at": "örnek"
},
"created_at": "örnek"
}
],
"id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"external_id": "user_42",
"first_seen_at": "örnek",
"last_active_at": "örnek",
"session_count": 1,
"usage_seconds": 1,
"merged_into": "örnek",
"created_at": "örnek",
"updated_at": "örnek",
"subscription_count": 1,
"aliases": [
{
"label": "external_id",
"value": "user_42"
}
]
}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/users" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Idempotency-Key: order-1001" \
-H "Content-Type: application/json" \
-d '{
"identity": {
"external_id": "user_42"
},
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"properties": {
"order_id": "1001"
},
"subscriptions": [
{
"channel": "ios_push",
"token": "d1f2e3…",
"status": "subscribed",
"device": {},
"opt_in": {
"source": "örnek",
"at": "2026-10-17T09:00:00Z"
}
}
],
"external_id": "user_42"
}'Segment tanımı ile kullanıcı arama
Kimlik doğrulama: API anahtarı — kapsam users:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
definition | object | Evet | Filtre AST: all/any/none grupları ve { field, op, value } koşulları (docs/plan/05 §5.7). |
definition.all | array<object> | Hayır | |
definition.any | array<object> | Hayır | |
definition.none | array<object> | Hayır | |
limit | integer | Hayır | Varsayılan: 50; Aralık: 1–200 |
cursor | string | Hayır |
Örnek:
{
"definition": {
"all": [
{}
],
"any": [
{}
],
"none": [
{}
]
},
"limit": 50,
"cursor": "eyJpZCI6Im1zZ18wMUpE…"
}Yanıtlar
200 — Başarılı.
Şema: UserList
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
data | array<object> | Evet | |
data[].id | string | Evet | |
data[].app_id | string | Evet | |
data[].external_id | string | null | Evet | |
data[].properties | map<string, any> | Evet | |
data[].tags | map<string, string> | Evet | |
data[].first_seen_at | string | Evet | |
data[].last_active_at | string | Evet | |
data[].session_count | integer | Evet | |
data[].usage_seconds | integer | Evet | |
data[].merged_into | string | null | Evet | |
data[].created_at | string | Evet | |
data[].updated_at | string | Evet | |
data[].subscription_count | integer | Evet | |
data[].channels | array<enum> | Evet | |
next_cursor | string | null | Evet | |
has_more | boolean | Evet |
Örnek yanıt:
{
"data": [
{
"channels": [
"ios_push"
],
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"properties": {
"order_id": "1001"
},
"id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"external_id": "user_42",
"first_seen_at": "örnek",
"last_active_at": "örnek",
"session_count": 1,
"usage_seconds": 1,
"merged_into": "örnek",
"created_at": "örnek",
"updated_at": "örnek",
"subscription_count": 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 POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/users/search" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"definition": {
"all": [
{}
],
"any": [
{}
],
"none": [
{}
]
},
"limit": 50,
"cursor": "eyJpZCI6Im1zZ18wMUpE…"
}'Alias ile kullanıcı (hs_id, external_id veya özel etiket)
Kimlik doğrulama: API anahtarı — kapsam users:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
label | yol | string | Evet | "external_id" | |
value | yol | string | Evet | "user_42" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: UserDetail
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
external_id | string | null | Evet | |
properties | map<string, any> | Evet | |
tags | map<string, string> | Evet | |
first_seen_at | string | Evet | |
last_active_at | string | Evet | |
session_count | integer | Evet | |
usage_seconds | integer | Evet | |
merged_into | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet | |
subscription_count | integer | Evet | |
channels | array<enum> | Evet | |
aliases | array<object> | Evet | |
aliases[].label | string | Evet | |
aliases[].value | string | Evet | |
subscriptions | array<object> | Evet | |
subscriptions[].id | string | Evet | |
subscriptions[].app_id | string | Evet | |
subscriptions[].user_id | string | null | Evet | |
subscriptions[].channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
subscriptions[].token | string | Evet | |
subscriptions[].status | enum | Evet | Değerler: "subscribed", "unsubscribed", "invalid", "pending" |
subscriptions[].unsubscribe_reason | enum | null | Evet | |
subscriptions[].device | object | Evet | |
subscriptions[].device.model | string | Hayır | Uzunluk: 0–100 |
subscriptions[].device.os | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.os_version | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.app_version | string | null | Hayır | |
subscriptions[].device.sdk_version | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.sdk_platform | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.carrier | string | Hayır | Uzunluk: 0–100 |
subscriptions[].device.locale | string | Hayır | Uzunluk: 0–20 |
subscriptions[].device.timezone | string | Hayır | Uzunluk: 0–64 |
subscriptions[].device.push_capable | boolean | Hayır | |
subscriptions[].device.push_environment | enum | Hayır | Değerler: "sandbox", "production" |
subscriptions[].test_device | boolean | Evet | |
subscriptions[].test_device_name | string | null | Evet | |
subscriptions[].last_active_at | string | Evet | |
subscriptions[].last_sent_at | string | null | Evet | |
subscriptions[].last_delivered_at | string | null | Evet | |
subscriptions[].opted_in_at | string | null | Evet | |
subscriptions[].opt_in_source | string | null | Evet | |
subscriptions[].unsubscribed_at | string | null | Evet | |
subscriptions[].location | object | null | Evet | |
subscriptions[].created_at | string | Evet |
Örnek yanıt:
{
"channels": [
"ios_push"
],
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"properties": {
"order_id": "1001"
},
"subscriptions": [
{
"channel": "ios_push",
"status": "subscribed",
"id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token": "d1f2e3…",
"unsubscribe_reason": "provider_rejected",
"device": {
"model": "örnek",
"os": "örnek"
},
"test_device": true,
"test_device_name": "örnek",
"last_active_at": "örnek",
"last_sent_at": "örnek",
"last_delivered_at": "örnek",
"opted_in_at": "örnek",
"opt_in_source": "örnek",
"unsubscribed_at": "örnek",
"location": {
"lat": 1.5,
"lng": 1.5,
"accuracy_m": 1.5,
"geohash": "örnek",
"updated_at": "örnek",
"consent_at": "örnek"
},
"created_at": "örnek"
}
],
"id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"external_id": "user_42",
"first_seen_at": "örnek",
"last_active_at": "örnek",
"session_count": 1,
"usage_seconds": 1,
"merged_into": "örnek",
"created_at": "örnek",
"updated_at": "örnek",
"subscription_count": 1,
"aliases": [
{
"label": "external_id",
"value": "user_42"
}
]
}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/users/by/external_id/user_42" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Tag/property merge-patch ve deltas
Kimlik doğrulama: API anahtarı — kapsam users:write (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
label | yol | string | Evet | "external_id" | |
value | yol | string | Evet | "user_42" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: PatchUserDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
properties | map<string, any> | Hayır | |
tags | map<string, string | null> | Hayır | |
deltas | object | Hayır | |
deltas.session_count | integer | Hayır | Aralık: -1000000–1000000 |
deltas.session_time | integer | Hayır | Aralık: 0–31536000 |
deltas.purchases | array<object> | Hayır | Öğe: 0–100 |
deltas.purchases[].sku | string | Evet | Uzunluk: 1–100 |
deltas.purchases[].amount | number | Evet | Aralık: 0–∞ |
deltas.purchases[].iso | string | Hayır | Uzunluk: 3–3 |
deltas.purchases[].count | integer | Hayır | Varsayılan: 1; Aralık: 1–1000 |
Örnek:
{
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"properties": {
"order_id": "1001"
},
"deltas": {
"session_count": 1,
"session_time": 1,
"purchases": [
{
"sku": "örnek",
"amount": 149.9,
"iso": "örnek"
}
]
}
}Yanıtlar
200 — Başarılı.
Şema: UserDetail
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
external_id | string | null | Evet | |
properties | map<string, any> | Evet | |
tags | map<string, string> | Evet | |
first_seen_at | string | Evet | |
last_active_at | string | Evet | |
session_count | integer | Evet | |
usage_seconds | integer | Evet | |
merged_into | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet | |
subscription_count | integer | Evet | |
channels | array<enum> | Evet | |
aliases | array<object> | Evet | |
aliases[].label | string | Evet | |
aliases[].value | string | Evet | |
subscriptions | array<object> | Evet | |
subscriptions[].id | string | Evet | |
subscriptions[].app_id | string | Evet | |
subscriptions[].user_id | string | null | Evet | |
subscriptions[].channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
subscriptions[].token | string | Evet | |
subscriptions[].status | enum | Evet | Değerler: "subscribed", "unsubscribed", "invalid", "pending" |
subscriptions[].unsubscribe_reason | enum | null | Evet | |
subscriptions[].device | object | Evet | |
subscriptions[].device.model | string | Hayır | Uzunluk: 0–100 |
subscriptions[].device.os | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.os_version | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.app_version | string | null | Hayır | |
subscriptions[].device.sdk_version | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.sdk_platform | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.carrier | string | Hayır | Uzunluk: 0–100 |
subscriptions[].device.locale | string | Hayır | Uzunluk: 0–20 |
subscriptions[].device.timezone | string | Hayır | Uzunluk: 0–64 |
subscriptions[].device.push_capable | boolean | Hayır | |
subscriptions[].device.push_environment | enum | Hayır | Değerler: "sandbox", "production" |
subscriptions[].test_device | boolean | Evet | |
subscriptions[].test_device_name | string | null | Evet | |
subscriptions[].last_active_at | string | Evet | |
subscriptions[].last_sent_at | string | null | Evet | |
subscriptions[].last_delivered_at | string | null | Evet | |
subscriptions[].opted_in_at | string | null | Evet | |
subscriptions[].opt_in_source | string | null | Evet | |
subscriptions[].unsubscribed_at | string | null | Evet | |
subscriptions[].location | object | null | Evet | |
subscriptions[].created_at | string | Evet |
Örnek yanıt:
{
"channels": [
"ios_push"
],
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"properties": {
"order_id": "1001"
},
"subscriptions": [
{
"channel": "ios_push",
"status": "subscribed",
"id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token": "d1f2e3…",
"unsubscribe_reason": "provider_rejected",
"device": {
"model": "örnek",
"os": "örnek"
},
"test_device": true,
"test_device_name": "örnek",
"last_active_at": "örnek",
"last_sent_at": "örnek",
"last_delivered_at": "örnek",
"opted_in_at": "örnek",
"opt_in_source": "örnek",
"unsubscribed_at": "örnek",
"location": {
"lat": 1.5,
"lng": 1.5,
"accuracy_m": 1.5,
"geohash": "örnek",
"updated_at": "örnek",
"consent_at": "örnek"
},
"created_at": "örnek"
}
],
"id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"external_id": "user_42",
"first_seen_at": "örnek",
"last_active_at": "örnek",
"session_count": 1,
"usage_seconds": 1,
"merged_into": "örnek",
"created_at": "örnek",
"updated_at": "örnek",
"subscription_count": 1,
"aliases": [
{
"label": "external_id",
"value": "user_42"
}
]
}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/users/by/external_id/user_42" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"properties": {
"order_id": "1001"
},
"deltas": {
"session_count": 1,
"session_time": 1,
"purchases": [
{
"sku": "örnek",
"amount": 149.9,
"iso": "örnek"
}
]
}
}'Kullanıcıyı sil (abonelikler silinir, olaylar anonimleşir)
Kimlik doğrulama: API anahtarı — kapsam users:write (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
label | yol | string | Evet | "external_id" | |
value | yol | string | Evet | "user_42" | |
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/users/by/external_id/user_42" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Kullanıcının tüm kimlikleri (hs_id, external_id, özel alias'lar)
Kimlik doğrulama: API anahtarı — kapsam users:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
label | yol | string | Evet | "external_id" | |
value | yol | string | Evet | "user_42" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: UserIdentity
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
identity | map<string, string> | Evet |
Örnek yanıt:
{
"identity": {
"external_id": [
"user_42"
]
}
}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/users/by/external_id/user_42/identity" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Alias ekle
Kimlik doğrulama: API anahtarı — kapsam users:write (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
label | yol | string | Evet | "external_id" | |
value | yol | string | Evet | "user_42" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: AddAliasDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
identity | map<string, string> | Evet |
Örnek:
{
"identity": {
"external_id": [
"user_42"
]
}
}Yanıtlar
200 — Başarılı.
Şema: UserDetail
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
external_id | string | null | Evet | |
properties | map<string, any> | Evet | |
tags | map<string, string> | Evet | |
first_seen_at | string | Evet | |
last_active_at | string | Evet | |
session_count | integer | Evet | |
usage_seconds | integer | Evet | |
merged_into | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet | |
subscription_count | integer | Evet | |
channels | array<enum> | Evet | |
aliases | array<object> | Evet | |
aliases[].label | string | Evet | |
aliases[].value | string | Evet | |
subscriptions | array<object> | Evet | |
subscriptions[].id | string | Evet | |
subscriptions[].app_id | string | Evet | |
subscriptions[].user_id | string | null | Evet | |
subscriptions[].channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
subscriptions[].token | string | Evet | |
subscriptions[].status | enum | Evet | Değerler: "subscribed", "unsubscribed", "invalid", "pending" |
subscriptions[].unsubscribe_reason | enum | null | Evet | |
subscriptions[].device | object | Evet | |
subscriptions[].device.model | string | Hayır | Uzunluk: 0–100 |
subscriptions[].device.os | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.os_version | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.app_version | string | null | Hayır | |
subscriptions[].device.sdk_version | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.sdk_platform | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.carrier | string | Hayır | Uzunluk: 0–100 |
subscriptions[].device.locale | string | Hayır | Uzunluk: 0–20 |
subscriptions[].device.timezone | string | Hayır | Uzunluk: 0–64 |
subscriptions[].device.push_capable | boolean | Hayır | |
subscriptions[].device.push_environment | enum | Hayır | Değerler: "sandbox", "production" |
subscriptions[].test_device | boolean | Evet | |
subscriptions[].test_device_name | string | null | Evet | |
subscriptions[].last_active_at | string | Evet | |
subscriptions[].last_sent_at | string | null | Evet | |
subscriptions[].last_delivered_at | string | null | Evet | |
subscriptions[].opted_in_at | string | null | Evet | |
subscriptions[].opt_in_source | string | null | Evet | |
subscriptions[].unsubscribed_at | string | null | Evet | |
subscriptions[].location | object | null | Evet | |
subscriptions[].created_at | string | Evet |
Örnek yanıt:
{
"channels": [
"ios_push"
],
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"properties": {
"order_id": "1001"
},
"subscriptions": [
{
"channel": "ios_push",
"status": "subscribed",
"id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token": "d1f2e3…",
"unsubscribe_reason": "provider_rejected",
"device": {
"model": "örnek",
"os": "örnek"
},
"test_device": true,
"test_device_name": "örnek",
"last_active_at": "örnek",
"last_sent_at": "örnek",
"last_delivered_at": "örnek",
"opted_in_at": "örnek",
"opt_in_source": "örnek",
"unsubscribed_at": "örnek",
"location": {
"lat": 1.5,
"lng": 1.5,
"accuracy_m": 1.5,
"geohash": "örnek",
"updated_at": "örnek",
"consent_at": "örnek"
},
"created_at": "örnek"
}
],
"id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"external_id": "user_42",
"first_seen_at": "örnek",
"last_active_at": "örnek",
"session_count": 1,
"usage_seconds": 1,
"merged_into": "örnek",
"created_at": "örnek",
"updated_at": "örnek",
"subscription_count": 1,
"aliases": [
{
"label": "external_id",
"value": "user_42"
}
]
}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/users/by/external_id/user_42/identity" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"identity": {
"external_id": [
"user_42"
]
}
}'Kullanıcı verisini dışa aktar (KVKK/GDPR taşınabilirlik): profil, alias, abonelik, son olaylar
Kimlik doğrulama: API anahtarı — kapsam users:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
label | yol | string | Evet | "external_id" | |
value | yol | string | Evet | "user_42" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: UserExport
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
exported_at | string | Evet | |
user | object | Evet | |
user.id | string | Evet | |
user.app_id | string | Evet | |
user.external_id | string | null | Evet | |
user.properties | map<string, any> | Evet | |
user.tags | map<string, string> | Evet | |
user.first_seen_at | string | Evet | |
user.last_active_at | string | Evet | |
user.session_count | integer | Evet | |
user.usage_seconds | integer | Evet | |
user.merged_into | string | null | Evet | |
user.created_at | string | Evet | |
user.updated_at | string | Evet | |
user.subscription_count | integer | Evet | |
user.channels | array<enum> | Evet | |
user.aliases | array<object> | Evet | |
user.aliases[].label | string | Evet | |
user.aliases[].value | string | Evet | |
user.subscriptions | array<object> | Evet | |
user.subscriptions[].id | string | Evet | |
user.subscriptions[].app_id | string | Evet | |
user.subscriptions[].user_id | string | null | Evet | |
user.subscriptions[].channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
user.subscriptions[].token | string | Evet | |
user.subscriptions[].status | enum | Evet | Değerler: "subscribed", "unsubscribed", "invalid", "pending" |
user.subscriptions[].unsubscribe_reason | enum | null | Evet | |
user.subscriptions[].device | object | Evet | |
user.subscriptions[].test_device | boolean | Evet | |
user.subscriptions[].test_device_name | string | null | Evet | |
user.subscriptions[].last_active_at | string | Evet | |
user.subscriptions[].last_sent_at | string | null | Evet | |
user.subscriptions[].last_delivered_at | string | null | Evet | |
user.subscriptions[].opted_in_at | string | null | Evet | |
user.subscriptions[].opt_in_source | string | null | Evet | |
user.subscriptions[].unsubscribed_at | string | null | Evet | |
user.subscriptions[].location | object | null | Evet | |
user.subscriptions[].created_at | string | Evet | |
events | array<object> | Evet | |
events[].id | string | Evet | |
events[].user_id | string | null | Evet | |
events[].subscription_id | string | null | Evet | |
events[].name | string | Evet | |
events[].properties | map<string, any> | Evet | |
events[].value | number | null | Evet | |
events[].source | enum | Evet | Değerler: "sdk", "api", "system", "import" |
events[].occurred_at | string | Evet |
Örnek yanıt:
{
"events": [
{
"name": "purchase",
"properties": {
"order_id": "1001"
},
"id": "evt_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"value": 149.9,
"source": "sdk",
"occurred_at": "örnek"
}
],
"exported_at": "örnek",
"user": {
"channels": [
"ios_push"
],
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"properties": {
"order_id": "1001"
},
"subscriptions": [
{
"channel": "ios_push",
"status": "subscribed",
"id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token": "d1f2e3…",
"unsubscribe_reason": "provider_rejected",
"device": {
"model": "örnek"
},
"test_device": true,
"test_device_name": "örnek",
"last_active_at": "örnek",
"last_sent_at": "örnek",
"last_delivered_at": "örnek",
"opted_in_at": "örnek",
"opt_in_source": "örnek",
"unsubscribed_at": "örnek",
"location": {
"lat": 1.5,
"lng": 1.5,
"accuracy_m": 1.5,
"geohash": "örnek",
"updated_at": "örnek",
"consent_at": "örnek"
},
"created_at": "örnek"
}
],
"id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"external_id": "user_42",
"first_seen_at": "örnek",
"last_active_at": "örnek",
"session_count": 1,
"usage_seconds": 1,
"merged_into": "örnek",
"created_at": "örnek",
"updated_at": "örnek",
"subscription_count": 1,
"aliases": [
{
"label": "external_id",
"value": "user_42"
}
]
}
}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/users/by/external_id/user_42/export" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Alias kaldır
/v1/apps/{appId}/users/by/{label}/{value}/identity/{aliasLabel}Dene (etkileşimli API belgesi, yeni sekme)Kimlik doğrulama: API anahtarı — kapsam users:write (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
label | yol | string | Evet | "external_id" | |
value | yol | string | Evet | "user_42" | |
aliasLabel | yol | string | Evet | "crm_id" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: UserDetail
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
external_id | string | null | Evet | |
properties | map<string, any> | Evet | |
tags | map<string, string> | Evet | |
first_seen_at | string | Evet | |
last_active_at | string | Evet | |
session_count | integer | Evet | |
usage_seconds | integer | Evet | |
merged_into | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet | |
subscription_count | integer | Evet | |
channels | array<enum> | Evet | |
aliases | array<object> | Evet | |
aliases[].label | string | Evet | |
aliases[].value | string | Evet | |
subscriptions | array<object> | Evet | |
subscriptions[].id | string | Evet | |
subscriptions[].app_id | string | Evet | |
subscriptions[].user_id | string | null | Evet | |
subscriptions[].channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
subscriptions[].token | string | Evet | |
subscriptions[].status | enum | Evet | Değerler: "subscribed", "unsubscribed", "invalid", "pending" |
subscriptions[].unsubscribe_reason | enum | null | Evet | |
subscriptions[].device | object | Evet | |
subscriptions[].device.model | string | Hayır | Uzunluk: 0–100 |
subscriptions[].device.os | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.os_version | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.app_version | string | null | Hayır | |
subscriptions[].device.sdk_version | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.sdk_platform | string | Hayır | Uzunluk: 0–50 |
subscriptions[].device.carrier | string | Hayır | Uzunluk: 0–100 |
subscriptions[].device.locale | string | Hayır | Uzunluk: 0–20 |
subscriptions[].device.timezone | string | Hayır | Uzunluk: 0–64 |
subscriptions[].device.push_capable | boolean | Hayır | |
subscriptions[].device.push_environment | enum | Hayır | Değerler: "sandbox", "production" |
subscriptions[].test_device | boolean | Evet | |
subscriptions[].test_device_name | string | null | Evet | |
subscriptions[].last_active_at | string | Evet | |
subscriptions[].last_sent_at | string | null | Evet | |
subscriptions[].last_delivered_at | string | null | Evet | |
subscriptions[].opted_in_at | string | null | Evet | |
subscriptions[].opt_in_source | string | null | Evet | |
subscriptions[].unsubscribed_at | string | null | Evet | |
subscriptions[].location | object | null | Evet | |
subscriptions[].created_at | string | Evet |
Örnek yanıt:
{
"channels": [
"ios_push"
],
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"properties": {
"order_id": "1001"
},
"subscriptions": [
{
"channel": "ios_push",
"status": "subscribed",
"id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token": "d1f2e3…",
"unsubscribe_reason": "provider_rejected",
"device": {
"model": "örnek",
"os": "örnek"
},
"test_device": true,
"test_device_name": "örnek",
"last_active_at": "örnek",
"last_sent_at": "örnek",
"last_delivered_at": "örnek",
"opted_in_at": "örnek",
"opt_in_source": "örnek",
"unsubscribed_at": "örnek",
"location": {
"lat": 1.5,
"lng": 1.5,
"accuracy_m": 1.5,
"geohash": "örnek",
"updated_at": "örnek",
"consent_at": "örnek"
},
"created_at": "örnek"
}
],
"id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"external_id": "user_42",
"first_seen_at": "örnek",
"last_active_at": "örnek",
"session_count": 1,
"usage_seconds": 1,
"merged_into": "örnek",
"created_at": "örnek",
"updated_at": "örnek",
"subscription_count": 1,
"aliases": [
{
"label": "external_id",
"value": "user_42"
}
]
}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/users/by/external_id/user_42/identity/crm_id" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Kullanıcıya abonelik ekle
/v1/apps/{appId}/users/by/{label}/{value}/subscriptionsDene (etkileşimli API belgesi, yeni sekme)Kimlik doğrulama: API anahtarı — kapsam users:write (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
label | yol | string | Evet | "external_id" | |
value | yol | string | Evet | "user_42" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: AddSubscriptionDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
token | string | Evet | Uzunluk: 1–4096 |
device | object | Hayır | Varsayılan: {} |
device.model | string | Hayır | Uzunluk: 0–100 |
device.os | string | Hayır | Uzunluk: 0–50 |
device.os_version | string | Hayır | Uzunluk: 0–50 |
device.app_version | string | null | Hayır | |
device.sdk_version | string | Hayır | Uzunluk: 0–50 |
device.sdk_platform | string | Hayır | Uzunluk: 0–50 |
device.carrier | string | Hayır | Uzunluk: 0–100 |
device.locale | string | Hayır | Uzunluk: 0–20 |
device.timezone | string | Hayır | Uzunluk: 0–64 |
device.push_capable | boolean | Hayır | |
device.push_environment | enum | Hayır | Değerler: "sandbox", "production" |
status | enum | Hayır | Değerler: "subscribed", "unsubscribed" |
opt_in | object | Hayır | |
opt_in.source | string | Evet | Uzunluk: 1–100 |
opt_in.at | string (date-time) | Hayır |
Örnek:
{
"channel": "ios_push",
"token": "d1f2e3…",
"status": "subscribed",
"device": {},
"opt_in": {
"source": "örnek",
"at": "2026-10-17T09:00:00Z"
}
}Yanıtlar
201 — Başarılı.
Şema: Subscription
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
user_id | string | null | Evet | |
channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
token | string | Evet | |
status | enum | Evet | Değerler: "subscribed", "unsubscribed", "invalid", "pending" |
unsubscribe_reason | enum | null | Evet | |
device | object | Evet | |
device.model | string | Hayır | Uzunluk: 0–100 |
device.os | string | Hayır | Uzunluk: 0–50 |
device.os_version | string | Hayır | Uzunluk: 0–50 |
device.app_version | string | null | Hayır | |
device.sdk_version | string | Hayır | Uzunluk: 0–50 |
device.sdk_platform | string | Hayır | Uzunluk: 0–50 |
device.carrier | string | Hayır | Uzunluk: 0–100 |
device.locale | string | Hayır | Uzunluk: 0–20 |
device.timezone | string | Hayır | Uzunluk: 0–64 |
device.push_capable | boolean | Hayır | |
device.push_environment | enum | Hayır | Değerler: "sandbox", "production" |
test_device | boolean | Evet | |
test_device_name | string | null | Evet | |
last_active_at | string | Evet | |
last_sent_at | string | null | Evet | |
last_delivered_at | string | null | Evet | |
opted_in_at | string | null | Evet | |
opt_in_source | string | null | Evet | |
unsubscribed_at | string | null | Evet | |
location | object | null | Evet | |
created_at | string | Evet |
Örnek yanıt:
{
"channel": "ios_push",
"status": "subscribed",
"id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token": "d1f2e3…",
"unsubscribe_reason": "provider_rejected",
"device": {
"model": "örnek",
"os": "örnek",
"os_version": "örnek",
"app_version": "örnek"
},
"test_device": true,
"test_device_name": "örnek",
"last_active_at": "örnek",
"last_sent_at": "örnek",
"last_delivered_at": "örnek",
"opted_in_at": "örnek",
"opt_in_source": "örnek",
"unsubscribed_at": "örnek",
"location": {
"lat": 1.5,
"lng": 1.5,
"accuracy_m": 1.5,
"geohash": "örnek",
"updated_at": "örnek",
"consent_at": "ö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 POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/users/by/external_id/user_42/subscriptions" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channel": "ios_push",
"token": "d1f2e3…",
"status": "subscribed",
"device": {},
"opt_in": {
"source": "örnek",
"at": "2026-10-17T09:00:00Z"
}
}'Abonelik detayı
Kimlik doğrulama: API anahtarı — kapsam users:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
subscriptionId | yol | string | Evet | "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: Subscription
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
user_id | string | null | Evet | |
channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
token | string | Evet | |
status | enum | Evet | Değerler: "subscribed", "unsubscribed", "invalid", "pending" |
unsubscribe_reason | enum | null | Evet | |
device | object | Evet | |
device.model | string | Hayır | Uzunluk: 0–100 |
device.os | string | Hayır | Uzunluk: 0–50 |
device.os_version | string | Hayır | Uzunluk: 0–50 |
device.app_version | string | null | Hayır | |
device.sdk_version | string | Hayır | Uzunluk: 0–50 |
device.sdk_platform | string | Hayır | Uzunluk: 0–50 |
device.carrier | string | Hayır | Uzunluk: 0–100 |
device.locale | string | Hayır | Uzunluk: 0–20 |
device.timezone | string | Hayır | Uzunluk: 0–64 |
device.push_capable | boolean | Hayır | |
device.push_environment | enum | Hayır | Değerler: "sandbox", "production" |
test_device | boolean | Evet | |
test_device_name | string | null | Evet | |
last_active_at | string | Evet | |
last_sent_at | string | null | Evet | |
last_delivered_at | string | null | Evet | |
opted_in_at | string | null | Evet | |
opt_in_source | string | null | Evet | |
unsubscribed_at | string | null | Evet | |
location | object | null | Evet | |
created_at | string | Evet |
Örnek yanıt:
{
"channel": "ios_push",
"status": "subscribed",
"id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token": "d1f2e3…",
"unsubscribe_reason": "provider_rejected",
"device": {
"model": "örnek",
"os": "örnek",
"os_version": "örnek",
"app_version": "örnek"
},
"test_device": true,
"test_device_name": "örnek",
"last_active_at": "örnek",
"last_sent_at": "örnek",
"last_delivered_at": "örnek",
"opted_in_at": "örnek",
"opt_in_source": "örnek",
"unsubscribed_at": "örnek",
"location": {
"lat": 1.5,
"lng": 1.5,
"accuracy_m": 1.5,
"geohash": "örnek",
"updated_at": "örnek",
"consent_at": "ö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/subscriptions/sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Abonelik güncelle
Kimlik doğrulama: API anahtarı — kapsam users:write (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
subscriptionId | yol | string | Evet | "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: PatchSubscriptionDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
token | string | Hayır | Uzunluk: 1–4096 |
device | object | Hayır | |
device.model | string | Hayır | Uzunluk: 0–100 |
device.os | string | Hayır | Uzunluk: 0–50 |
device.os_version | string | Hayır | Uzunluk: 0–50 |
device.app_version | string | null | Hayır | |
device.sdk_version | string | Hayır | Uzunluk: 0–50 |
device.sdk_platform | string | Hayır | Uzunluk: 0–50 |
device.carrier | string | Hayır | Uzunluk: 0–100 |
device.locale | string | Hayır | Uzunluk: 0–20 |
device.timezone | string | Hayır | Uzunluk: 0–64 |
device.push_capable | boolean | Hayır | |
device.push_environment | enum | Hayır | Değerler: "sandbox", "production" |
status | enum | Hayır | Değerler: "subscribed", "unsubscribed" |
test_device | boolean | Hayır | |
test_device_name | string | Hayır | Uzunluk: 0–100 |
Örnek:
{
"status": "subscribed",
"token": "d1f2e3…",
"device": {
"model": "örnek",
"os": "örnek",
"os_version": "örnek"
},
"test_device": true,
"test_device_name": "örnek"
}Yanıtlar
200 — Başarılı.
Şema: Subscription
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
user_id | string | null | Evet | |
channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
token | string | Evet | |
status | enum | Evet | Değerler: "subscribed", "unsubscribed", "invalid", "pending" |
unsubscribe_reason | enum | null | Evet | |
device | object | Evet | |
device.model | string | Hayır | Uzunluk: 0–100 |
device.os | string | Hayır | Uzunluk: 0–50 |
device.os_version | string | Hayır | Uzunluk: 0–50 |
device.app_version | string | null | Hayır | |
device.sdk_version | string | Hayır | Uzunluk: 0–50 |
device.sdk_platform | string | Hayır | Uzunluk: 0–50 |
device.carrier | string | Hayır | Uzunluk: 0–100 |
device.locale | string | Hayır | Uzunluk: 0–20 |
device.timezone | string | Hayır | Uzunluk: 0–64 |
device.push_capable | boolean | Hayır | |
device.push_environment | enum | Hayır | Değerler: "sandbox", "production" |
test_device | boolean | Evet | |
test_device_name | string | null | Evet | |
last_active_at | string | Evet | |
last_sent_at | string | null | Evet | |
last_delivered_at | string | null | Evet | |
opted_in_at | string | null | Evet | |
opt_in_source | string | null | Evet | |
unsubscribed_at | string | null | Evet | |
location | object | null | Evet | |
created_at | string | Evet |
Örnek yanıt:
{
"channel": "ios_push",
"status": "subscribed",
"id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token": "d1f2e3…",
"unsubscribe_reason": "provider_rejected",
"device": {
"model": "örnek",
"os": "örnek",
"os_version": "örnek",
"app_version": "örnek"
},
"test_device": true,
"test_device_name": "örnek",
"last_active_at": "örnek",
"last_sent_at": "örnek",
"last_delivered_at": "örnek",
"opted_in_at": "örnek",
"opt_in_source": "örnek",
"unsubscribed_at": "örnek",
"location": {
"lat": 1.5,
"lng": 1.5,
"accuracy_m": 1.5,
"geohash": "örnek",
"updated_at": "örnek",
"consent_at": "ö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 PATCH "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/subscriptions/sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "subscribed",
"token": "d1f2e3…",
"device": {
"model": "örnek",
"os": "örnek",
"os_version": "örnek"
},
"test_device": true,
"test_device_name": "örnek"
}'Aboneliği sil
Kimlik doğrulama: API anahtarı — kapsam users:write (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
subscriptionId | yol | string | Evet | "sub_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/subscriptions/sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Aboneliğin sahibi kullanıcının kimlikleri
/v1/apps/{appId}/subscriptions/{subscriptionId}/user/identityDene (etkileşimli API belgesi, yeni sekme)Kimlik doğrulama: API anahtarı — kapsam users:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
subscriptionId | yol | string | Evet | "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: UserIdentity
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
identity | map<string, string> | Evet |
Örnek yanıt:
{
"identity": {
"external_id": [
"user_42"
]
}
}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/subscriptions/sub_01JD3W5Q7X9K2M4N6P8R0T1V3W/user/identity" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Token ile abonelik güncelle (token_type: ios_push, android_push, hms_push, web_push, email, sms veya OneSignal adları iOSPush, AndroidPush, HuaweiPush, ChromePush, FirefoxPush, SafariPush, Email, SMS)
/v1/apps/{appId}/subscriptions_by_token/{tokenType}/{token}Dene (etkileşimli API belgesi, yeni sekme)Kimlik doğrulama: API anahtarı (Authorization: Bearer hs_live_…).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
tokenType | yol | string | Evet | "örnek" | |
token | yol | string | Evet | "d1f2e3…" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: PatchSubscriptionDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
token | string | Hayır | Uzunluk: 1–4096 |
device | object | Hayır | |
device.model | string | Hayır | Uzunluk: 0–100 |
device.os | string | Hayır | Uzunluk: 0–50 |
device.os_version | string | Hayır | Uzunluk: 0–50 |
device.app_version | string | null | Hayır | |
device.sdk_version | string | Hayır | Uzunluk: 0–50 |
device.sdk_platform | string | Hayır | Uzunluk: 0–50 |
device.carrier | string | Hayır | Uzunluk: 0–100 |
device.locale | string | Hayır | Uzunluk: 0–20 |
device.timezone | string | Hayır | Uzunluk: 0–64 |
device.push_capable | boolean | Hayır | |
device.push_environment | enum | Hayır | Değerler: "sandbox", "production" |
status | enum | Hayır | Değerler: "subscribed", "unsubscribed" |
test_device | boolean | Hayır | |
test_device_name | string | Hayır | Uzunluk: 0–100 |
Örnek:
{
"status": "subscribed",
"token": "d1f2e3…",
"device": {
"model": "örnek",
"os": "örnek",
"os_version": "örnek"
},
"test_device": true,
"test_device_name": "örnek"
}Yanıtlar
200 — Başarılı.
Şema: Subscription
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
user_id | string | null | Evet | |
channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
token | string | Evet | |
status | enum | Evet | Değerler: "subscribed", "unsubscribed", "invalid", "pending" |
unsubscribe_reason | enum | null | Evet | |
device | object | Evet | |
device.model | string | Hayır | Uzunluk: 0–100 |
device.os | string | Hayır | Uzunluk: 0–50 |
device.os_version | string | Hayır | Uzunluk: 0–50 |
device.app_version | string | null | Hayır | |
device.sdk_version | string | Hayır | Uzunluk: 0–50 |
device.sdk_platform | string | Hayır | Uzunluk: 0–50 |
device.carrier | string | Hayır | Uzunluk: 0–100 |
device.locale | string | Hayır | Uzunluk: 0–20 |
device.timezone | string | Hayır | Uzunluk: 0–64 |
device.push_capable | boolean | Hayır | |
device.push_environment | enum | Hayır | Değerler: "sandbox", "production" |
test_device | boolean | Evet | |
test_device_name | string | null | Evet | |
last_active_at | string | Evet | |
last_sent_at | string | null | Evet | |
last_delivered_at | string | null | Evet | |
opted_in_at | string | null | Evet | |
opt_in_source | string | null | Evet | |
unsubscribed_at | string | null | Evet | |
location | object | null | Evet | |
created_at | string | Evet |
Örnek yanıt:
{
"channel": "ios_push",
"status": "subscribed",
"id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token": "d1f2e3…",
"unsubscribe_reason": "provider_rejected",
"device": {
"model": "örnek",
"os": "örnek",
"os_version": "örnek",
"app_version": "örnek"
},
"test_device": true,
"test_device_name": "örnek",
"last_active_at": "örnek",
"last_sent_at": "örnek",
"last_delivered_at": "örnek",
"opted_in_at": "örnek",
"opt_in_source": "örnek",
"unsubscribed_at": "örnek",
"location": {
"lat": 1.5,
"lng": 1.5,
"accuracy_m": 1.5,
"geohash": "örnek",
"updated_at": "örnek",
"consent_at": "ö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 PATCH "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/subscriptions_by_token/örnek/d1f2e3…" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "subscribed",
"token": "d1f2e3…",
"device": {
"model": "örnek",
"os": "örnek",
"os_version": "örnek"
},
"test_device": true,
"test_device_name": "örnek"
}'Aboneliği external_id ile kullanıcıya bağla
Kimlik doğrulama: API anahtarı — kapsam users:write (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
subscriptionId | yol | string | Evet | "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SetOwnerDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
external_id | string | Evet | Uzunluk: 1–255 |
Örnek:
{
"external_id": "user_42"
}Yanıtlar
200 — Başarılı.
Şema: Subscription
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
user_id | string | null | Evet | |
channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
token | string | Evet | |
status | enum | Evet | Değerler: "subscribed", "unsubscribed", "invalid", "pending" |
unsubscribe_reason | enum | null | Evet | |
device | object | Evet | |
device.model | string | Hayır | Uzunluk: 0–100 |
device.os | string | Hayır | Uzunluk: 0–50 |
device.os_version | string | Hayır | Uzunluk: 0–50 |
device.app_version | string | null | Hayır | |
device.sdk_version | string | Hayır | Uzunluk: 0–50 |
device.sdk_platform | string | Hayır | Uzunluk: 0–50 |
device.carrier | string | Hayır | Uzunluk: 0–100 |
device.locale | string | Hayır | Uzunluk: 0–20 |
device.timezone | string | Hayır | Uzunluk: 0–64 |
device.push_capable | boolean | Hayır | |
device.push_environment | enum | Hayır | Değerler: "sandbox", "production" |
test_device | boolean | Evet | |
test_device_name | string | null | Evet | |
last_active_at | string | Evet | |
last_sent_at | string | null | Evet | |
last_delivered_at | string | null | Evet | |
opted_in_at | string | null | Evet | |
opt_in_source | string | null | Evet | |
unsubscribed_at | string | null | Evet | |
location | object | null | Evet | |
created_at | string | Evet |
Örnek yanıt:
{
"channel": "ios_push",
"status": "subscribed",
"id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token": "d1f2e3…",
"unsubscribe_reason": "provider_rejected",
"device": {
"model": "örnek",
"os": "örnek",
"os_version": "örnek",
"app_version": "örnek"
},
"test_device": true,
"test_device_name": "örnek",
"last_active_at": "örnek",
"last_sent_at": "örnek",
"last_delivered_at": "örnek",
"opted_in_at": "örnek",
"opt_in_source": "örnek",
"unsubscribed_at": "örnek",
"location": {
"lat": 1.5,
"lng": 1.5,
"accuracy_m": 1.5,
"geohash": "örnek",
"updated_at": "örnek",
"consent_at": "ö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 POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/subscriptions/sub_01JD3W5Q7X9K2M4N6P8R0T1V3W/owner" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"external_id": "user_42"
}'Toplu olay gönder (en fazla 500)
Kimlik doğrulama: API anahtarı — kapsam events:write (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: ApiEventsDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
events | array<object> | Evet | Öğe: 1–500 |
events[].name | string | Evet | Uzunluk: 1–100 |
events[].properties | map<string, any> | Hayır | Varsayılan: {} |
events[].value | number | Hayır | |
events[].occurred_at | string (date-time) | Hayır | |
events[].event_id | string | Hayır | Uzunluk: 8–64 |
events[].subscription_id | string | Hayır | Uzunluk: 1–∞ |
events[].external_id | string | Hayır | Uzunluk: 1–255 |
Örnek:
{
"events": [
{
"name": "purchase",
"properties": {},
"value": 149.9,
"occurred_at": "2026-10-17T09:00:00Z"
}
]
}Yanıtlar
200 — Başarılı.
Şema: EventsAccepted
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
accepted | integer | Evet |
Örnek yanıt:
{
"accepted": 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/events" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"events": [
{
"name": "purchase",
"properties": {},
"value": 149.9,
"occurred_at": "2026-10-17T09:00:00Z"
}
]
}'Bildirimler
Bildirimler — 8 işlem (GET /v1/notifications, POST /v1/notifications, POST /v1/notifications/estimate, …). OpenAPI 3.1.0 sözleşmesinden üretilir.
Olay tanımları
Olay tanımları — 3 işlem (GET /v1/apps/{appId}/events/definitions, GET /v1/apps/{appId}/events/definitions/{name}, PATCH /v1/apps/{appId}/events/definitions/{name}). OpenAPI 3.1.0 sözleşmesinden üretilir.