SDK uçları (istemci)
SDK uçları (istemci) — 25 işlem (GET /sdk/v1/apps/{appId}/config, POST /sdk/v1/apps/{appId}/subscriptions, PATCH /sdk/v1/apps/{appId}/subscriptions/{subscriptionId}, …). OpenAPI 3.1.0 sözleşmesinden üretilir.
İstemci SDK’larının kullandığı uçlar. API anahtarı yerine sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT) ile çalışır; tarayıcı/cihazdan doğrudan çağrılır.
Taban adres: https://api.pushizo.com · Etiket: sdk · Etkileşimli belge (Scalar)
İşlemler
Ayrıntılar
SDK için public app yapılandırması
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: SdkConfig
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
app_id | string | Evet | |
name | string | Evet | |
api_url | string | Evet | |
cell_id | string | null | Evet | |
identity_verification_required | boolean | Evet | |
identity_verification_mode | enum | Evet | Değerler: "hmac", "jwt", "both" |
platforms | object | Evet | |
platforms.ios | boolean | Evet | |
platforms.android | boolean | Evet | |
platforms.web | boolean | Evet | |
platforms.email | boolean | Evet | |
platforms.sms | boolean | Evet | |
web | object | Evet | |
web.vapid_public_key | string | null | Evet | |
web.allowed_origins | array<string> | Evet | |
web.service_worker_path | string | null | Evet | |
web.service_worker_scope | string | null | Evet | |
web.prompt | object | null | Evet | |
web.welcome_notification | object | null | Evet | |
web.click_behavior | object | null | Evet | |
web.custom_link | object | null | Evet | |
web.prompt_backoff_days | array<integer> | null | Evet | |
session | object | Evet | |
session.timeout_seconds | integer | Evet | |
in_app | object | Evet | |
in_app.min_interval_seconds | integer | Evet | |
android_channels | array<object> | Evet | |
android_channels[].id | string | Evet | |
android_channels[].name | string | Evet | |
android_channels[].description | string | null | Evet | |
android_channels[].importance | enum | Evet | Değerler: "low", "default", "high", "urgent" |
android_channels[].sound | string | null | Evet | |
android_channels[].vibration | boolean | Evet | |
android_channels[].group | string | null | Evet | |
categories | array<object> | Evet | |
categories[].key | string | Evet | |
categories[].name | map<string, string> | Evet | |
categories[].description | map<string, string> | Evet | |
categories[].channels | array<string> | null | Evet | |
categories[].default_opted_in | boolean | Evet |
Örnek yanıt:
{
"name": "Sipariş bildirimleri",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"api_url": "https://example.com/orders/1001",
"cell_id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"identity_verification_required": true,
"identity_verification_mode": "hmac",
"platforms": {
"ios": true,
"android": true,
"web": true,
"email": true,
"sms": true
},
"web": {
"vapid_public_key": "örnek",
"allowed_origins": [
"örnek"
],
"service_worker_path": "örnek",
"service_worker_scope": "örnek",
"prompt": {
"type": "slidedown",
"enabled": true,
"collect": "push",
"delaySeconds": 1
},
"welcome_notification": {
"enabled": true,
"url": "https://example.com/orders/1001",
"texts": {
"key": {
"title": "Siparişiniz yola çıktı"
}
}
},
"click_behavior": {
"match": "exact",
"action": "navigate"
},
"custom_link": {
"enabled": true,
"style": "button",
"size": "small",
"color": {
"button": "örnek"
},
"texts": {
"key": {
"subscribe": "örnek"
}
}
},
"prompt_backoff_days": [
1
]
},
"session": {
"timeout_seconds": 1
},
"in_app": {
"min_interval_seconds": 1
},
"android_channels": [
{
"name": "Sipariş bildirimleri",
"id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"description": "Sipariş durumu güncellemeleri",
"importance": "low",
"sound": "örnek",
"vibration": true,
"group": "orders"
}
],
"categories": [
{
"name": {
"key": "user_42"
},
"channels": [
"web_push"
],
"key": "key-2026-10",
"description": {
"key": "user_42"
},
"default_opted_in": 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/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/config"Cihaz/kanal kaydı (idempotent: aynı token tek abonelik)
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SdkRegisterDto
| 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" |
test_device | boolean | Hayır | |
user | object | Hayır | |
user.external_id | string | Hayır | Uzunluk: 1–255 |
user.identity_hash | string | Hayır | Uzunluk: 64–64 |
user.tags | map<string, string> | Hayır | |
user.properties | map<string, any> | Hayır | |
user.subscription_id | string | Hayır | Uzunluk: 1–64 |
user.token_hash | string | Hayır | |
ownership_proof | boolean | Hayır |
Örnek:
{
"channel": "ios_push",
"token": "d1f2e3…",
"device": {},
"test_device": true,
"user": {
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"properties": {
"order_id": "1001"
},
"external_id": "user_42"
},
"ownership_proof": true
}Yanıtlar
200 — Başarılı.
Şema: SdkRegisterResult
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
subscription_id | string | Evet | |
user_id | string | Evet | |
external_id | string | null | Evet | |
status | enum | Evet | Değerler: "subscribed", "unsubscribed", "invalid", "pending" |
created | boolean | Evet |
Örnek yanıt:
{
"status": "subscribed",
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"external_id": "user_42",
"created": 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/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/subscriptions" \
-H "Content-Type: application/json" \
-d '{
"channel": "ios_push",
"token": "d1f2e3…",
"device": {},
"test_device": true,
"user": {
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"properties": {
"order_id": "1001"
},
"external_id": "user_42"
},
"ownership_proof": true
}'Token yenileme, cihaz bilgisi, opt-in/out (sahiplik kanıtı: token_hash veya identity_hash)
Kanıt, kayıtlı token'ın SHA-256 özeti (token_hash) veya abonelik kullanıcısının identity_hash'idir. Push aboneliğinde ownership_proof: true ile kaydolmuş ya da bir kez geçerli kanıt göndermiş abonelikte zorunludur; e-posta/SMS aboneliğinde her zaman zorunludur. Yanlış kanıt 403 (ADR-0016).
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
subscriptionId | yol | string | Evet | "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SdkSubscriptionPatchDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
token_hash | string | Hayır | |
identity_hash | string | Hayır | Uzunluk: 64–64 |
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" |
opted_in | boolean | Hayır | |
location | object | null | Hayır |
Örnek:
{
"token_hash": "sha256-hex…",
"identity_hash": "3f6c…b1e9",
"token": "d1f2e3…",
"device": {
"model": "örnek",
"os": "örnek",
"os_version": "örnek"
},
"opted_in": true
}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/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/subscriptions/sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
-H "Content-Type: application/json" \
-d '{
"token_hash": "sha256-hex…",
"identity_hash": "3f6c…b1e9",
"token": "d1f2e3…",
"device": {
"model": "örnek",
"os": "örnek",
"os_version": "örnek"
},
"opted_in": true
}'Aboneliği sil (sahiplik kanıtı: token_hash veya identity_hash)
Kanıt kuralları PATCH ile aynıdır (ADR-0016).
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
subscriptionId | yol | string | Evet | "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
token_hash | sorgu | string | Hayır | "sha256-hex…" | |
identity_hash | sorgu | string | Hayır | Uzunluk: 64–64 | "3f6c…b1e9" |
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/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/subscriptions/sub_01JD3W5Q7X9K2M4N6P8R0T1V3W"Cihazı external_id ile kullanıcıya bağla (anonim kullanıcı birleştirilir; sahiplik kanıtı: token_hash)
/sdk/v1/apps/{appId}/subscriptions/{subscriptionId}/loginDene (etkileşimli API belgesi, yeni sekme)Sahiplik kanıtı token_hash (kayıtlı token'ın SHA-256 özeti); identity_hash yalnızca abonelik zaten aynı external_id ile bağlıysa kanıt sayılır. Kurallar PATCH ile aynıdır (ADR-0016).
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
subscriptionId | yol | string | Evet | "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SdkLoginDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
external_id | string | Evet | Uzunluk: 1–255 |
identity_hash | string | Hayır | Uzunluk: 64–64 |
token_hash | string | Hayır |
Örnek:
{
"external_id": "user_42",
"identity_hash": "3f6c…b1e9",
"token_hash": "sha256-hex…"
}Yanıtlar
200 — Başarılı.
Şema: SdkUserResult
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
user_id | string | Evet | |
external_id | string | null | Evet | |
tags | map<string, string> | Evet |
Örnek yanıt:
{
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"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 POST "https://api.pushizo.com/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/subscriptions/sub_01JD3W5Q7X9K2M4N6P8R0T1V3W/login" \
-H "Content-Type: application/json" \
-d '{
"external_id": "user_42",
"identity_hash": "3f6c…b1e9",
"token_hash": "sha256-hex…"
}'Cihazı anonim yeni kullanıcıya taşı (sahiplik kanıtı: token_hash veya identity_hash)
/sdk/v1/apps/{appId}/subscriptions/{subscriptionId}/logoutDene (etkileşimli API belgesi, yeni sekme)Kanıt kuralları PATCH ile aynıdır (ADR-0016); gövde boş gönderilebilir.
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
subscriptionId | yol | string | Evet | "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (isteğe bağlı)
Şema: SdkLogoutDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
token_hash | string | Hayır | |
identity_hash | string | Hayır | Uzunluk: 64–64 |
Örnek:
{
"token_hash": "sha256-hex…",
"identity_hash": "3f6c…b1e9"
}Yanıtlar
200 — Başarılı.
Şema: SdkUserResult
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
user_id | string | Evet | |
external_id | string | null | Evet | |
tags | map<string, string> | Evet |
Örnek yanıt:
{
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"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 POST "https://api.pushizo.com/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/subscriptions/sub_01JD3W5Q7X9K2M4N6P8R0T1V3W/logout" \
-H "Content-Type: application/json" \
-d '{
"token_hash": "sha256-hex…",
"identity_hash": "3f6c…b1e9"
}'Tag/property merge-patch (identity verification zorunluysa hash gerekir)
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
userId | yol | string | Evet | "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SdkUserPatchDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
tags | map<string, string | null> | Hayır | |
properties | map<string, any> | 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 |
identity_hash | string | Hayır | Uzunluk: 64–64 |
Ö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"
}
]
},
"identity_hash": "3f6c…b1e9"
}Yanıtlar
200 — Başarılı.
Şema: SdkUserResult
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
user_id | string | Evet | |
external_id | string | null | Evet | |
tags | map<string, string> | Evet |
Örnek yanıt:
{
"tags": {
"plan": "pro",
"city": "Istanbul"
},
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"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 PATCH "https://api.pushizo.com/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/users/usr_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
-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"
}
]
},
"identity_hash": "3f6c…b1e9"
}'Kullanıcıya alias ekle (User.addAlias; identity verification zorunluysa hash)
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
userId | yol | string | Evet | "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SdkIdentityDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
identity | map<string, string> | Evet | |
identity_hash | string | Hayır | Uzunluk: 64–64 |
Örnek:
{
"identity": {
"external_id": [
"user_42"
]
},
"identity_hash": "3f6c…b1e9"
}Yanıtlar
200 — Başarılı.
Şema: SdkIdentityResult
| 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 PATCH "https://api.pushizo.com/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/users/usr_01JD3W5Q7X9K2M4N6P8R0T1V3W/identity" \
-H "Content-Type: application/json" \
-d '{
"identity": {
"external_id": [
"user_42"
]
},
"identity_hash": "3f6c…b1e9"
}'Kullanıcıdan alias kaldır (User.removeAlias)
/sdk/v1/apps/{appId}/users/{userId}/identity/{label}Dene (etkileşimli API belgesi, yeni sekme)Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
userId | yol | string | Evet | "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
label | yol | string | Evet | "external_id" | |
identity_hash | sorgu | string | Hayır | Uzunluk: 64–64 | "3f6c…b1e9" |
Yanıtlar
200 — Başarılı.
Şema: SdkIdentityResult
| 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 DELETE "https://api.pushizo.com/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/users/usr_01JD3W5Q7X9K2M4N6P8R0T1V3W/identity/external_id"Oturum başlangıcı (süre yoksa) veya bitişi (süre ile; sahiplik kanıtı: token_hash veya identity_hash)
subscription_id aboneliği için kanıt kuralları PATCH ile aynıdır (ADR-0016).
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SdkSessionDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
token_hash | string | Hayır | |
identity_hash | string | Hayır | Uzunluk: 64–64 |
subscription_id | string | Evet | Uzunluk: 1–∞ |
duration_seconds | integer | Hayır | Aralık: 0–604800 |
app_version | string | null | Hayır | |
sdk_version | string | Hayır | Uzunluk: 0–50 |
Örnek:
{
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token_hash": "sha256-hex…",
"identity_hash": "3f6c…b1e9",
"duration_seconds": 1,
"app_version": "örnek",
"sdk_version": "örnek"
}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 POST "https://api.pushizo.com/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/sessions" \
-H "Content-Type: application/json" \
-d '{
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token_hash": "sha256-hex…",
"identity_hash": "3f6c…b1e9",
"duration_seconds": 1,
"app_version": "örnek",
"sdk_version": "örnek"
}'Toplu olay bildirimi (en fazla 100)
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SdkEventsDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
events | array<object> | Evet | Öğe: 1–100 |
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 |
events[].token_hash | string | Hayır | |
events[].identity_hash | string | Hayır | Uzunluk: 64–64 |
Ö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/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/events" \
-H "Content-Type: application/json" \
-d '{
"events": [
{
"name": "purchase",
"properties": {},
"value": 149.9,
"occurred_at": "2026-10-17T09:00:00Z"
}
]
}'Cihaz bildirimi aldı (confirmed delivery)
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
deliveryId | yol | string | Evet | "dlv_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 POST "https://api.pushizo.com/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/deliveries/dlv_01JD3W5Q7X9K2M4N6P8R0T1V3W/received"Bildirim kullanıcı tarafından kapatıldı (web notificationclose, Android silme)
/sdk/v1/apps/{appId}/deliveries/{deliveryId}/dismissedDene (etkileşimli API belgesi, yeni sekme)Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
deliveryId | yol | string | Evet | "dlv_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 POST "https://api.pushizo.com/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/deliveries/dlv_01JD3W5Q7X9K2M4N6P8R0T1V3W/dismissed"Bildirim açıldı / düğmeye tıklandı
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
deliveryId | yol | string | Evet | "dlv_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: OpenedDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
button_id | string | Hayır | Uzunluk: 0–64 |
Örnek:
{
"button_id": "id_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 POST "https://api.pushizo.com/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/deliveries/dlv_01JD3W5Q7X9K2M4N6P8R0T1V3W/opened" \
-H "Content-Type: application/json" \
-d '{
"button_id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W"
}'Live Activity belirteci kaydet (push-to-start veya etkinlik güncelleme)
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SdkLiveActivityTokenDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
subscription_id | string | Evet | Uzunluk: 1–64 |
activity_type | string | Evet | Uzunluk: 1–100 |
kind | enum | Evet | Değerler: "push_to_start", "update" |
activity_id | string | Hayır | Uzunluk: 1–100 |
token | string | Evet | |
token_hash | string | Hayır | Uzunluk: 64–64 |
identity_hash | string | Hayır | Uzunluk: 64–64 |
Örnek:
{
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"activity_type": "order_tracking",
"kind": "push_to_start",
"token": "d1f2e3…",
"activity_id": "act_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token_hash": "sha256-hex…",
"identity_hash": "3f6c…b1e9"
}Yanıtlar
200 — Başarılı.
Şema: LiveActivityTokenResult
| 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 POST "https://api.pushizo.com/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/live-activities/tokens" \
-H "Content-Type: application/json" \
-d '{
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"activity_type": "order_tracking",
"kind": "push_to_start",
"token": "d1f2e3…",
"activity_id": "act_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token_hash": "sha256-hex…",
"identity_hash": "3f6c…b1e9"
}'Live Activity belirtecini sil (etkinlik bitti veya izin kaldırıldı)
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SdkLiveActivityTokenDeleteDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
subscription_id | string | Evet | Uzunluk: 1–64 |
activity_type | string | Evet | Uzunluk: 1–100 |
kind | enum | Evet | Değerler: "push_to_start", "update" |
activity_id | string | Hayır | Uzunluk: 1–100 |
token_hash | string | Hayır | Uzunluk: 64–64 |
identity_hash | string | Hayır | Uzunluk: 64–64 |
Örnek:
{
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"activity_type": "order_tracking",
"kind": "push_to_start",
"activity_id": "act_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token_hash": "sha256-hex…",
"identity_hash": "3f6c…b1e9"
}Yanıtlar
200 — Başarılı.
Şema: LiveActivityTokenResult
| 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 POST "https://api.pushizo.com/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/live-activities/tokens/delete" \
-H "Content-Type: application/json" \
-d '{
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"activity_type": "order_tracking",
"kind": "push_to_start",
"activity_id": "act_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token_hash": "sha256-hex…",
"identity_hash": "3f6c…b1e9"
}'SDK hata raporları (en fazla 20; 7 gün saklanır)
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SdkErrorsDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
errors | array<object> | Evet | Öğe: 1–20 |
errors[].level | enum | Hayır | Değerler: "error", "warning"; Varsayılan: "error" |
errors[].platform | enum | Evet | Değerler: "web", "android", "ios", "flutter", "react_native", "node" |
errors[].sdk_version | string | Hayır | Uzunluk: 0–50 |
errors[].code | string | Hayır | Uzunluk: 0–100 |
errors[].message | string | Evet | Uzunluk: 1–2000 |
errors[].subscription_id | string | Hayır | Uzunluk: 0–64 |
errors[].context | map<string, any> | Hayır | |
errors[].occurred_at | string (date-time) | Hayır |
Örnek:
{
"errors": [
{
"platform": "web",
"message": "Takip bağlantısı içeride",
"level": "error",
"sdk_version": "örnek",
"code": "örnek"
}
]
}Yanıtlar
200 — Başarılı.
Şema: SdkErrorsAccepted
| 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/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/errors" \
-H "Content-Type: application/json" \
-d '{
"errors": [
{
"platform": "web",
"message": "Takip bağlantısı içeride",
"level": "error",
"sdk_version": "örnek",
"code": "örnek"
}
]
}'Cihaz için gösterilebilecek in-app mesajlar (tetikleri SDK değerlendirir)
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
subscription_id | sorgu | string | Evet | Uzunluk: 1–64 | "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
token_hash | sorgu | string | Hayır | "sha256-hex…" | |
supports | sorgu | string | Hayır | Uzunluk: 0–200 | "değer" |
Yanıtlar
200 — Başarılı.
Şema: SdkInAppList
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
data | array<object> | Evet | |
data[].id | string | Evet | |
data[].priority | integer | Evet | |
data[].triggers | array<object> | Evet | |
data[].trigger_groups | array<array<object>> | Evet | |
data[].variant_id | string | null | Evet | |
data[].display | object | Evet | |
data[].display.layout | enum | Evet | Değerler: "modal", "banner_top", "banner_bottom", "fullscreen" |
data[].display.background_color | string | null | Evet | |
data[].display.text_color | string | null | Evet | |
data[].display.dismissible | boolean | Evet | |
data[].display.auto_dismiss_seconds | integer | null | Evet | |
data[].display.content_type | enum | Evet | Değerler: "blocks", "html" |
data[].display.html | string | null | Evet | |
data[].display.html_height | integer | null | Evet | |
data[].display.blocks | array<object> | Evet | |
data[].remaining_impressions | integer | Evet | |
data[].min_interval_seconds | integer | Evet | |
data[].stop_after_interaction | boolean | Evet | |
data[].last_impression_at | string | null | Evet | |
data[].end_at | string | null | Evet | |
language | string | Evet |
Örnek yanıt:
{
"data": [
{
"id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"priority": 10,
"triggers": [
{
"kind": "session_start"
}
],
"trigger_groups": [
[
{}
]
],
"variant_id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"display": {
"layout": "modal",
"background_color": "örnek",
"text_color": "örnek",
"dismissible": true,
"auto_dismiss_seconds": 1,
"content_type": "blocks",
"html": "örnek",
"html_height": 1,
"blocks": [
{}
]
},
"remaining_impressions": 1,
"min_interval_seconds": 1,
"stop_after_interaction": true,
"last_impression_at": "örnek",
"end_at": "örnek"
}
],
"language": "tr"
}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/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/in-app?subscription_id=sub_01JD3W5Q7X9K2M4N6P8R0T1V3W"In-app gösterim / tıklama / kapatma
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
messageId | yol | string | Evet | "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SdkInAppEventDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
subscription_id | string | Evet | Uzunluk: 1–64 |
token_hash | string | Hayır | |
type | enum | Evet | Değerler: "impression", "click", "dismiss" |
button_id | string | Hayır | Uzunluk: 0–64 |
variant_id | string | Hayır | Uzunluk: 0–64 |
Örnek:
{
"type": "impression",
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token_hash": "sha256-hex…",
"button_id": "evt_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"variant_id": "var_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 POST "https://api.pushizo.com/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/in-app/msg_01JD3W5Q7X9K2M4N6P8R0T1V3W/events" \
-H "Content-Type: application/json" \
-d '{
"type": "impression",
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token_hash": "sha256-hex…",
"button_id": "evt_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"variant_id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W"
}'Bildirim kutusu (abonelik kullanıcıya ait olmalı; gerekirse identity_hash)
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
userId | yol | string | Evet | "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
limit | sorgu | integer | Hayır | Varsayılan: 50; Aralık: 1–200 | 50 |
cursor | sorgu | string | Hayır | Uzunluk: 1–∞ | "eyJpZCI6Im1zZ18wMUpE…" |
subscription_id | sorgu | string | Evet | Uzunluk: 1–64 | "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
identity_hash | sorgu | string | Hayır | Uzunluk: 0–128 | "3f6c…b1e9" |
token_hash | sorgu | string | Hayır | "sha256-hex…" |
Yanıtlar
200 — Başarılı.
Şema: InboxPage
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
data | array<object> | Evet | |
data[].id | string | Evet | |
data[].message_id | string | null | Evet | |
data[].title | string | null | Evet | |
data[].body | string | null | Evet | |
data[].url | string | null | Evet | |
data[].image_url | string | null | Evet | |
data[].data | map<string, string> | Evet | |
data[].read | boolean | Evet | |
data[].read_at | string | null | Evet | |
data[].archived_at | string | null | Evet | |
data[].expires_at | string | null | Evet | |
data[].created_at | string | Evet | |
unread_count | integer | Evet | |
next_cursor | string | null | Evet | |
has_more | boolean | Evet |
Örnek yanıt:
{
"data": [
{
"url": "https://example.com/orders/1001",
"data": {
"order_id": "1001"
},
"id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"message_id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"title": "Siparişiniz yola çıktı",
"body": "Takip bağlantısı içeride",
"image_url": "https://example.com/orders/1001",
"read": true,
"read_at": "örnek",
"archived_at": "örnek",
"expires_at": "örnek",
"created_at": "örnek"
}
],
"unread_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/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/users/usr_01JD3W5Q7X9K2M4N6P8R0T1V3W/inbox?limit=50&subscription_id=sub_01JD3W5Q7X9K2M4N6P8R0T1V3W"Tümünü okundu işaretle
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
userId | yol | string | Evet | "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SdkInboxActionDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
subscription_id | string | Evet | Uzunluk: 1–64 |
identity_hash | string | Hayır | Uzunluk: 0–128 |
token_hash | string | Hayır |
Örnek:
{
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"identity_hash": "3f6c…b1e9",
"token_hash": "sha256-hex…"
}Yanıtlar
200 — Başarılı.
Şema: InboxReadAllResult
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
updated | integer | Evet | |
unread_count | integer | Evet |
Örnek yanıt:
{
"updated": 1,
"unread_count": 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/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/users/usr_01JD3W5Q7X9K2M4N6P8R0T1V3W/inbox/read-all" \
-H "Content-Type: application/json" \
-d '{
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"identity_hash": "3f6c…b1e9",
"token_hash": "sha256-hex…"
}'Okundu işaretle
/sdk/v1/apps/{appId}/users/{userId}/inbox/{itemId}/readDene (etkileşimli API belgesi, yeni sekme)Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
userId | yol | string | Evet | "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
itemId | yol | string | Evet | "inb_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SdkInboxActionDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
subscription_id | string | Evet | Uzunluk: 1–64 |
identity_hash | string | Hayır | Uzunluk: 0–128 |
token_hash | string | Hayır |
Örnek:
{
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"identity_hash": "3f6c…b1e9",
"token_hash": "sha256-hex…"
}Yanıtlar
200 — Başarılı.
Şema: InboxItem
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
message_id | string | null | Evet | |
title | string | null | Evet | |
body | string | null | Evet | |
url | string | null | Evet | |
image_url | string | null | Evet | |
data | map<string, string> | Evet | |
read | boolean | Evet | |
read_at | string | null | Evet | |
archived_at | string | null | Evet | |
expires_at | string | null | Evet | |
created_at | string | Evet |
Örnek yanıt:
{
"url": "https://example.com/orders/1001",
"data": {
"order_id": "1001"
},
"id": "inb_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"message_id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"title": "Siparişiniz yola çıktı",
"body": "Takip bağlantısı içeride",
"image_url": "https://example.com/orders/1001",
"read": true,
"read_at": "örnek",
"archived_at": "örnek",
"expires_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/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/users/usr_01JD3W5Q7X9K2M4N6P8R0T1V3W/inbox/inb_01JD3W5Q7X9K2M4N6P8R0T1V3W/read" \
-H "Content-Type: application/json" \
-d '{
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"identity_hash": "3f6c…b1e9",
"token_hash": "sha256-hex…"
}'Kutudan kaldır (arşivle)
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
userId | yol | string | Evet | "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
itemId | yol | string | Evet | "inb_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
subscription_id | sorgu | string | Evet | Uzunluk: 1–64 | "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
identity_hash | sorgu | string | Hayır | Uzunluk: 0–128 | "3f6c…b1e9" |
token_hash | sorgu | string | Hayır | "sha256-hex…" |
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/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/users/usr_01JD3W5Q7X9K2M4N6P8R0T1V3W/inbox/inb_01JD3W5Q7X9K2M4N6P8R0T1V3W?subscription_id=sub_01JD3W5Q7X9K2M4N6P8R0T1V3W"Cihaz kullanıcısının tercihleri ve kategoriler
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
subscription_id | sorgu | string | Evet | Uzunluk: 1–64 | "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
token_hash | sorgu | string | Hayır | "sha256-hex…" | |
identity_hash | sorgu | string | Hayır | Uzunluk: 64–64 | "3f6c…b1e9" |
Yanıtlar
200 — Başarılı.
Şema: SdkPreferences
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
data | array<object> | Evet | |
data[].category | string | Evet | |
data[].channel | string | null | Evet | |
data[].opted_in | boolean | Evet | |
data[].explicit | boolean | Evet | |
data[].source | string | null | Evet | |
data[].updated_at | string | null | Evet | |
categories | array<object> | Evet | |
categories[].key | string | Evet | |
categories[].name | map<string, string> | Evet | |
categories[].description | map<string, string> | Evet | |
categories[].channels | array<string> | null | Evet | |
categories[].default_opted_in | boolean | Evet |
Örnek yanıt:
{
"data": [
{
"channel": "web_push",
"category": "örnek",
"opted_in": true,
"explicit": true,
"source": "örnek",
"updated_at": "örnek"
}
],
"categories": [
{
"name": {
"key": "user_42"
},
"channels": [
"web_push"
],
"key": "key-2026-10",
"description": {
"key": "user_42"
},
"default_opted_in": 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/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/preferences?subscription_id=sub_01JD3W5Q7X9K2M4N6P8R0T1V3W"Cihaz kullanıcısının tercihlerini yaz
Kimlik doğrulama: API anahtarı gerekmez; sahiplik kanıtı (token_hash) ve zorunluysa identity verification (identity_hash veya JWT). Ayrıntı: SDK kimliği.
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SdkSetPreferencesDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
preferences | array<object> | Evet | Öğe: 1–100 |
preferences[].category | string | Evet | Uzunluk: 1–64 |
preferences[].channel | enum | null | Hayır | |
preferences[].opted_in | boolean | Evet | |
subscription_id | string | Evet | Uzunluk: 1–64 |
token_hash | string | Hayır | |
identity_hash | string | Hayır | Uzunluk: 64–64 |
Örnek:
{
"preferences": [
{
"category": "örnek",
"opted_in": true,
"channel": "ios_push"
}
],
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token_hash": "sha256-hex…",
"identity_hash": "3f6c…b1e9"
}Yanıtlar
200 — Başarılı.
Şema: SdkPreferences
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
data | array<object> | Evet | |
data[].category | string | Evet | |
data[].channel | string | null | Evet | |
data[].opted_in | boolean | Evet | |
data[].explicit | boolean | Evet | |
data[].source | string | null | Evet | |
data[].updated_at | string | null | Evet | |
categories | array<object> | Evet | |
categories[].key | string | Evet | |
categories[].name | map<string, string> | Evet | |
categories[].description | map<string, string> | Evet | |
categories[].channels | array<string> | null | Evet | |
categories[].default_opted_in | boolean | Evet |
Örnek yanıt:
{
"data": [
{
"channel": "web_push",
"category": "örnek",
"opted_in": true,
"explicit": true,
"source": "örnek",
"updated_at": "örnek"
}
],
"categories": [
{
"name": {
"key": "user_42"
},
"channels": [
"web_push"
],
"key": "key-2026-10",
"description": {
"key": "user_42"
},
"default_opted_in": 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 PUT "https://api.pushizo.com/sdk/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/preferences" \
-H "Content-Type: application/json" \
-d '{
"preferences": [
{
"category": "örnek",
"opted_in": true,
"channel": "ios_push"
}
],
"subscription_id": "sub_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"token_hash": "sha256-hex…",
"identity_hash": "3f6c…b1e9"
}'