PushizoDocs
API referansı

Kategoriler ve tercihler

Kategoriler ve tercihler — 6 işlem (GET /v1/apps/{appId}/categories, POST /v1/apps/{appId}/categories, PATCH /v1/apps/{appId}/categories/{categoryId}, …). OpenAPI 3.1.0 sözleşmesinden üretilir.

Abonelik kategorileri ve kullanıcı bazında kanal/kategori tercihleri; tercih merkezi bu uçlarla beslenir.

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

İşlemler

YöntemYolİşlem
GET/v1/apps/{appId}/categoriesMesaj kategorileri
POST/v1/apps/{appId}/categoriesKategori oluştur
PATCH/v1/apps/{appId}/categories/{categoryId}Kategori güncelle
DELETE/v1/apps/{appId}/categories/{categoryId}Kategori sil
GET/v1/apps/{appId}/users/by/{label}/{value}/preferencesKullanıcının tercihleri (alias ile)
PUT/v1/apps/{appId}/users/by/{label}/{value}/preferencesKullanıcı tercihlerini yaz (alias ile)

Ayrıntılar

Mesaj kategorileri

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

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

Parametreler

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

Yanıtlar

200 — Başarılı.

Şema: MessageCategoryList

AlanTürZorunluAçıklama
dataarray<object>Evet
data[].idstringEvet
data[].app_idstringEvet
data[].keystringEvet
data[].namemap<string, string>Evet
data[].descriptionmap<string, string>Evet
data[].channelsarray<string> | nullEvet
data[].default_opted_inbooleanEvet
data[].positionintegerEvet
data[].opted_out_usersintegerEvet
data[].created_atstringEvet
data[].updated_atstringEvet

Örnek yanıt:

{
  "data": [
    {
      "name": {
        "key": "user_42"
      },
      "channels": [
        "web_push"
      ],
      "id": "cat_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "key": "key-2026-10",
      "description": {
        "key": "user_42"
      },
      "default_opted_in": true,
      "position": 1,
      "opted_out_users": 1,
      "created_at": "örnek",
      "updated_at": "örnek"
    }
  ]
}

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

Örnekler

curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/categories" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Kategori oluştur

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

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

Parametreler

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

İstek gövdesi (zorunlu)

Şema: CreateCategoryDto

AlanTürZorunluAçıklama
keystringEvetUzunluk: 1–64
namemap<string, string>Evet
descriptionmap<string, string>Hayır
channelsarray<enum> | nullHayır
default_opted_inbooleanHayır
positionintegerHayırAralık: 0–1000

Örnek:

{
  "name": {
    "key": "user_42"
  },
  "key": "key-2026-10",
  "channels": [
    "ios_push"
  ],
  "description": {
    "key": "user_42"
  },
  "default_opted_in": true,
  "position": 1
}

Yanıtlar

201 — Başarılı.

Şema: MessageCategory

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
keystringEvet
namemap<string, string>Evet
descriptionmap<string, string>Evet
channelsarray<string> | nullEvet
default_opted_inbooleanEvet
positionintegerEvet
opted_out_usersintegerEvet
created_atstringEvet
updated_atstringEvet

Örnek yanıt:

{
  "name": {
    "key": "user_42"
  },
  "channels": [
    "web_push"
  ],
  "id": "cat_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "key": "key-2026-10",
  "description": {
    "key": "user_42"
  },
  "default_opted_in": true,
  "position": 1,
  "opted_out_users": 1,
  "created_at": "örnek",
  "updated_at": "örnek"
}

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

Örnekler

curl -X POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/categories" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": {
    "key": "user_42"
  },
  "key": "key-2026-10",
  "channels": [
    "ios_push"
  ],
  "description": {
    "key": "user_42"
  },
  "default_opted_in": true,
  "position": 1
}'

Kategori güncelle

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

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

Parametreler

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

İstek gövdesi (zorunlu)

Şema: UpdateCategoryDto

AlanTürZorunluAçıklama
namemap<string, string>Hayır
descriptionmap<string, string>Hayır
channelsarray<enum> | nullHayır
default_opted_inbooleanHayır
positionintegerHayırAralık: 0–1000

Örnek:

{
  "name": {
    "key": "user_42"
  },
  "channels": [
    "ios_push"
  ],
  "description": {
    "key": "user_42"
  },
  "default_opted_in": true,
  "position": 1
}

Yanıtlar

200 — Başarılı.

Şema: MessageCategory

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
keystringEvet
namemap<string, string>Evet
descriptionmap<string, string>Evet
channelsarray<string> | nullEvet
default_opted_inbooleanEvet
positionintegerEvet
opted_out_usersintegerEvet
created_atstringEvet
updated_atstringEvet

Örnek yanıt:

{
  "name": {
    "key": "user_42"
  },
  "channels": [
    "web_push"
  ],
  "id": "cat_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "key": "key-2026-10",
  "description": {
    "key": "user_42"
  },
  "default_opted_in": true,
  "position": 1,
  "opted_out_users": 1,
  "created_at": "örnek",
  "updated_at": "örnek"
}

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

Örnekler

curl -X PATCH "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/categories/cat_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": {
    "key": "user_42"
  },
  "channels": [
    "ios_push"
  ],
  "description": {
    "key": "user_42"
  },
  "default_opted_in": true,
  "position": 1
}'

Kategori sil

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

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

Parametreler

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

Yanıtlar

200 — Başarılı.

Şema: Ok

AlanTürZorunluAçıklama
oktrueEvet

Örnek yanıt:

{
  "ok": true
}

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

Örnekler

curl -X DELETE "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/categories/cat_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Kullanıcının tercihleri (alias ile)

GET/v1/apps/{appId}/users/by/{label}/{value}/preferencesDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
labelyolstringEvet"external_id"
valueyolstringEvet"user_42"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: UserPreferences

AlanTürZorunluAçıklama
user_idstringEvet
dataarray<object>Evet
data[].categorystringEvet
data[].channelstring | nullEvet
data[].opted_inbooleanEvet
data[].explicitbooleanEvet
data[].sourcestring | nullEvet
data[].updated_atstring | nullEvet
categoriesarray<object>Evet
categories[].idstringEvet
categories[].app_idstringEvet
categories[].keystringEvet
categories[].namemap<string, string>Evet
categories[].descriptionmap<string, string>Evet
categories[].channelsarray<string> | nullEvet
categories[].default_opted_inbooleanEvet
categories[].positionintegerEvet
categories[].opted_out_usersintegerEvet
categories[].created_atstringEvet
categories[].updated_atstringEvet

Örnek yanıt:

{
  "data": [
    {
      "channel": "web_push",
      "category": "örnek",
      "opted_in": true,
      "explicit": true,
      "source": "örnek",
      "updated_at": "örnek"
    }
  ],
  "user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "categories": [
    {
      "name": {
        "key": "user_42"
      },
      "channels": [
        "web_push"
      ],
      "id": "cat_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "key": "key-2026-10",
      "description": {
        "key": "user_42"
      },
      "default_opted_in": true,
      "position": 1,
      "opted_out_users": 1,
      "created_at": "örnek",
      "updated_at": "örnek"
    }
  ]
}

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

Örnekler

curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/users/by/external_id/user_42/preferences" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Kullanıcı tercihlerini yaz (alias ile)

PUT/v1/apps/{appId}/users/by/{label}/{value}/preferencesDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
labelyolstringEvet"external_id"
valueyolstringEvet"user_42"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

İstek gövdesi (zorunlu)

Şema: SetPreferencesDto

AlanTürZorunluAçıklama
preferencesarray<object>EvetÖğe: 1–100
preferences[].categorystringEvetUzunluk: 1–64
preferences[].channelenum | nullHayır
preferences[].opted_inbooleanEvet

Örnek:

{
  "preferences": [
    {
      "category": "örnek",
      "opted_in": true,
      "channel": "ios_push"
    }
  ]
}

Yanıtlar

200 — Başarılı.

Şema: UserPreferences

AlanTürZorunluAçıklama
user_idstringEvet
dataarray<object>Evet
data[].categorystringEvet
data[].channelstring | nullEvet
data[].opted_inbooleanEvet
data[].explicitbooleanEvet
data[].sourcestring | nullEvet
data[].updated_atstring | nullEvet
categoriesarray<object>Evet
categories[].idstringEvet
categories[].app_idstringEvet
categories[].keystringEvet
categories[].namemap<string, string>Evet
categories[].descriptionmap<string, string>Evet
categories[].channelsarray<string> | nullEvet
categories[].default_opted_inbooleanEvet
categories[].positionintegerEvet
categories[].opted_out_usersintegerEvet
categories[].created_atstringEvet
categories[].updated_atstringEvet

Örnek yanıt:

{
  "data": [
    {
      "channel": "web_push",
      "category": "örnek",
      "opted_in": true,
      "explicit": true,
      "source": "örnek",
      "updated_at": "örnek"
    }
  ],
  "user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "categories": [
    {
      "name": {
        "key": "user_42"
      },
      "channels": [
        "web_push"
      ],
      "id": "cat_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "key": "key-2026-10",
      "description": {
        "key": "user_42"
      },
      "default_opted_in": true,
      "position": 1,
      "opted_out_users": 1,
      "created_at": "örnek",
      "updated_at": "örnek"
    }
  ]
}

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

Örnekler

curl -X PUT "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/users/by/external_id/user_42/preferences" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "preferences": [
    {
      "category": "örnek",
      "opted_in": true,
      "channel": "ios_push"
    }
  ]
}'

Bu sayfada