PushizoDocs
API referansı

Webhook’lar

Webhook’lar — 10 işlem (GET /v1/apps/{appId}/webhooks, POST /v1/apps/{appId}/webhooks, POST /v1/apps/{appId}/webhooks/preview, …). OpenAPI 3.1.0 sözleşmesinden üretilir.

Giden webhook uç noktaları, secret rotasyonu, test gönderimi, teslim geçmişi ve replay; imza doğrulaması için “Webhooks” bölümüne bakın.

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

İşlemler

YöntemYolİşlem
GET/v1/apps/{appId}/webhooksWebhook endpoint'leri
POST/v1/apps/{appId}/webhooksEndpoint oluştur (secret yalnızca bu yanıtta döner)
POST/v1/apps/{appId}/webhooks/previewEvent Streams önizlemesi: örnek olay + şablon + filtre → gövde/hata (gönderim yapmaz)
GET/v1/apps/{appId}/webhooks/{webhookId}Endpoint detayı
PATCH/v1/apps/{appId}/webhooks/{webhookId}Endpoint güncelle (URL, olaylar, batch, başlıklar, etkinleştir/durdur)
DELETE/v1/apps/{appId}/webhooks/{webhookId}Endpoint sil
POST/v1/apps/{appId}/webhooks/{webhookId}/rotate-secretSecret rotasyonu (eski secret 24 saat ikinci imza olarak gönderilir)
POST/v1/apps/{appId}/webhooks/{webhookId}/testTest olayı gönder (anında, sonuç döner)
GET/v1/apps/{appId}/webhooks/{webhookId}/deliveriesTeslim geçmişi (cursor; durum/olay türü filtresi)
POST/v1/apps/{appId}/webhooks/deliveries/{deliveryId}/replayTeslimi yeniden gönder (aynı olay kimliğiyle)

Ayrıntılar

Webhook endpoint'leri

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

Parametreler

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

Yanıtlar

200 — Başarılı.

Şema: WebhookList

AlanTürZorunluAçıklama
dataarray<object>Evet
data[].idstringEvet
data[].app_idstringEvet
data[].urlstringEvet
data[].descriptionstring | nullEvet
data[].eventsarray<string>Evet
data[].event_filtersobjectEvet
data[].event_filters.event_namesarray<string>Hayır
data[].batchbooleanEvet
data[].statusenumEvetDeğerler: "active", "failing", "disabled"
data[].disabled_reasonstring | nullEvet
data[].failure_countintegerEvet
data[].failing_sincestring | nullEvet
data[].last_success_atstring | nullEvet
data[].last_failure_atstring | nullEvet
data[].header_namesarray<string>Evet
data[].previous_secret_expires_atstring | nullEvet
data[].body_templatestring | nullEvet
data[].body_content_typeenumEvetDeğerler: "application/json", "text/plain"
data[].filtersobject | nullEvet
data[].created_atstringEvet
data[].updated_atstringEvet

Örnek yanıt:

{
  "data": [
    {
      "url": "https://example.com/orders/1001",
      "events": [
        "purchase"
      ],
      "status": "active",
      "id": "whe_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "description": "Sipariş durumu güncellemeleri",
      "event_filters": {
        "event_names": [
          "purchase"
        ]
      },
      "batch": true,
      "disabled_reason": "örnek",
      "failure_count": 1,
      "failing_since": "örnek",
      "last_success_at": "örnek",
      "last_failure_at": "örnek",
      "header_names": [
        "örnek"
      ],
      "previous_secret_expires_at": "örnek",
      "body_template": "örnek",
      "body_content_type": "application/json",
      "filters": {
        "match": "all",
        "conditions": [
          {}
        ]
      },
      "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/webhooks" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Endpoint oluştur (secret yalnızca bu yanıtta döner)

POST/v1/apps/{appId}/webhooksDene (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: CreateWebhookDto

AlanTürZorunluAçıklama
urlstringEvetUzunluk: 1–2048
descriptionstring | nullHayır
eventsarray<enum>EvetÖğe: 1–31
event_filtersobjectHayır
event_filters.event_namesarray<string>HayırÖğe: 0–50
batchbooleanHayır
headersmap<string, string>Hayır
body_templatestring | nullHayır
body_content_typeenumHayırŞablon çıktısının içerik türü (varsayılan application/json).. Değerler: "application/json", "text/plain"
filtersobject | nullHayır

Örnek:

{
  "url": "https://example.com/orders/1001",
  "events": [
    "message.queued"
  ],
  "description": "Sipariş durumu güncellemeleri",
  "event_filters": {
    "event_names": [
      "purchase"
    ]
  },
  "batch": true,
  "headers": {
    "key": "user_42"
  },
  "body_template": "örnek"
}

Yanıtlar

201 — Başarılı.

Şema: WebhookWithSecret

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
urlstringEvet
descriptionstring | nullEvet
eventsarray<string>Evet
event_filtersobjectEvet
event_filters.event_namesarray<string>Hayır
batchbooleanEvet
statusenumEvetDeğerler: "active", "failing", "disabled"
disabled_reasonstring | nullEvet
failure_countintegerEvet
failing_sincestring | nullEvet
last_success_atstring | nullEvet
last_failure_atstring | nullEvet
header_namesarray<string>Evet
previous_secret_expires_atstring | nullEvet
body_templatestring | nullEvet
body_content_typeenumEvetDeğerler: "application/json", "text/plain"
filtersobject | nullEvet
created_atstringEvet
updated_atstringEvet
secretstringEvetYalnızca oluşturma ve rotasyon yanıtında bir kez döner.

Örnek yanıt:

{
  "url": "https://example.com/orders/1001",
  "events": [
    "purchase"
  ],
  "status": "active",
  "id": "whe_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "description": "Sipariş durumu güncellemeleri",
  "event_filters": {
    "event_names": [
      "purchase"
    ]
  },
  "batch": true,
  "disabled_reason": "örnek",
  "failure_count": 1,
  "failing_since": "örnek",
  "last_success_at": "örnek",
  "last_failure_at": "örnek",
  "header_names": [
    "örnek"
  ],
  "previous_secret_expires_at": "örnek",
  "body_template": "örnek",
  "body_content_type": "application/json",
  "filters": {
    "match": "all",
    "conditions": [
      {
        "field": "örnek",
        "op": "eq",
        "value": "user_42"
      }
    ]
  },
  "created_at": "örnek",
  "updated_at": "örnek",
  "secret": "ö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/webhooks" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://example.com/orders/1001",
  "events": [
    "message.queued"
  ],
  "description": "Sipariş durumu güncellemeleri",
  "event_filters": {
    "event_names": [
      "purchase"
    ]
  },
  "batch": true,
  "headers": {
    "key": "user_42"
  },
  "body_template": "örnek"
}'

Event Streams önizlemesi: örnek olay + şablon + filtre → gövde/hata (gönderim yapmaz)

POST/v1/apps/{appId}/webhooks/previewDene (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: WebhookPreviewDto

AlanTürZorunluAçıklama
event_typeenumEvetDeğerler: "message.queued", "message.completed", "message.failed", "delivery.sent", "delivery.delivered", "delivery.failed", "delivery.opened", "delivery.clicked", "delivery.bounced", "delivery.complained", "delivery.unsubscribed", "in_app.impression", "in_app.clicked", "in_app.dismissed", "subscription.created", "subscription.unsubscribed", "subscription.invalidated", "user.created", "user.updated", "user.merged", "user.deleted", "event.received", "conversion.created", "campaign.scheduled", "campaign.started", "campaign.completed", "journey.entered", "journey.step_completed", "journey.completed", "journey.exited", "audit.created", "webhook.test"
datamap<string, any>Hayır
body_templatestring | nullHayır
body_content_typeenumHayırŞablon çıktısının içerik türü (varsayılan application/json).. Değerler: "application/json", "text/plain"
filtersobject | nullHayır
batchbooleanHayır

Örnek:

{
  "event_type": "message.queued",
  "data": {
    "order_id": "1001"
  },
  "body_template": "örnek",
  "body_content_type": "application/json",
  "filters": {
    "match": "all",
    "conditions": [
      {
        "field": "örnek",
        "op": "eq",
        "value": "user_42"
      }
    ]
  },
  "batch": true
}

Yanıtlar

200 — Başarılı.

Şema: WebhookPreviewResult

AlanTürZorunluAçıklama
payloadmap<string, any>Evet
matchedbooleanEvetOlay filtreden geçer mi (geçmezse gönderilmez).
failed_conditionsarray<object>Evet
failed_conditions[].fieldstringEvet
failed_conditions[].opstringEvet
failed_conditions[].valueanyHayır
bodystring | nullEvet
content_typestringEvet
errorobject | nullEvet

Örnek yanıt:

{
  "payload": {
    "key": "örnek"
  },
  "matched": true,
  "failed_conditions": [
    {
      "field": "örnek",
      "op": "örnek",
      "value": "örnek"
    }
  ],
  "body": "Takip bağlantısı içeride",
  "content_type": "örnek",
  "error": {
    "code": "örnek",
    "message": "Takip bağlantısı içeride"
  }
}

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/webhooks/preview" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "event_type": "message.queued",
  "data": {
    "order_id": "1001"
  },
  "body_template": "örnek",
  "body_content_type": "application/json",
  "filters": {
    "match": "all",
    "conditions": [
      {
        "field": "örnek",
        "op": "eq",
        "value": "user_42"
      }
    ]
  },
  "batch": true
}'

Endpoint detayı

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

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

Parametreler

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

Yanıtlar

200 — Başarılı.

Şema: Webhook

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
urlstringEvet
descriptionstring | nullEvet
eventsarray<string>Evet
event_filtersobjectEvet
event_filters.event_namesarray<string>Hayır
batchbooleanEvet
statusenumEvetDeğerler: "active", "failing", "disabled"
disabled_reasonstring | nullEvet
failure_countintegerEvet
failing_sincestring | nullEvet
last_success_atstring | nullEvet
last_failure_atstring | nullEvet
header_namesarray<string>Evet
previous_secret_expires_atstring | nullEvet
body_templatestring | nullEvet
body_content_typeenumEvetDeğerler: "application/json", "text/plain"
filtersobject | nullEvet
created_atstringEvet
updated_atstringEvet

Örnek yanıt:

{
  "url": "https://example.com/orders/1001",
  "events": [
    "purchase"
  ],
  "status": "active",
  "id": "whe_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "description": "Sipariş durumu güncellemeleri",
  "event_filters": {
    "event_names": [
      "purchase"
    ]
  },
  "batch": true,
  "disabled_reason": "örnek",
  "failure_count": 1,
  "failing_since": "örnek",
  "last_success_at": "örnek",
  "last_failure_at": "örnek",
  "header_names": [
    "örnek"
  ],
  "previous_secret_expires_at": "örnek",
  "body_template": "örnek",
  "body_content_type": "application/json",
  "filters": {
    "match": "all",
    "conditions": [
      {
        "field": "örnek",
        "op": "eq",
        "value": "user_42"
      }
    ]
  },
  "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/webhooks/whe_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Endpoint güncelle (URL, olaylar, batch, başlıklar, etkinleştir/durdur)

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

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

Parametreler

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

İstek gövdesi (zorunlu)

Şema: UpdateWebhookDto

AlanTürZorunluAçıklama
urlstringHayırUzunluk: 1–2048
descriptionstring | nullHayır
eventsarray<enum>HayırÖğe: 1–31
event_filtersobjectHayır
event_filters.event_namesarray<string>HayırÖğe: 0–50
batchbooleanHayır
headersmap<string, string> | nullHayır
statusenumHayırDeğerler: "active", "disabled"
body_templatestring | nullHayır
body_content_typeenumHayırŞablon çıktısının içerik türü (varsayılan application/json).. Değerler: "application/json", "text/plain"
filtersobject | nullHayır

Örnek:

{
  "url": "https://example.com/orders/1001",
  "events": [
    "message.queued"
  ],
  "status": "active",
  "description": "Sipariş durumu güncellemeleri",
  "event_filters": {
    "event_names": [
      "purchase"
    ]
  }
}

Yanıtlar

200 — Başarılı.

Şema: Webhook

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
urlstringEvet
descriptionstring | nullEvet
eventsarray<string>Evet
event_filtersobjectEvet
event_filters.event_namesarray<string>Hayır
batchbooleanEvet
statusenumEvetDeğerler: "active", "failing", "disabled"
disabled_reasonstring | nullEvet
failure_countintegerEvet
failing_sincestring | nullEvet
last_success_atstring | nullEvet
last_failure_atstring | nullEvet
header_namesarray<string>Evet
previous_secret_expires_atstring | nullEvet
body_templatestring | nullEvet
body_content_typeenumEvetDeğerler: "application/json", "text/plain"
filtersobject | nullEvet
created_atstringEvet
updated_atstringEvet

Örnek yanıt:

{
  "url": "https://example.com/orders/1001",
  "events": [
    "purchase"
  ],
  "status": "active",
  "id": "whe_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "description": "Sipariş durumu güncellemeleri",
  "event_filters": {
    "event_names": [
      "purchase"
    ]
  },
  "batch": true,
  "disabled_reason": "örnek",
  "failure_count": 1,
  "failing_since": "örnek",
  "last_success_at": "örnek",
  "last_failure_at": "örnek",
  "header_names": [
    "örnek"
  ],
  "previous_secret_expires_at": "örnek",
  "body_template": "örnek",
  "body_content_type": "application/json",
  "filters": {
    "match": "all",
    "conditions": [
      {
        "field": "örnek",
        "op": "eq",
        "value": "user_42"
      }
    ]
  },
  "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/webhooks/whe_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://example.com/orders/1001",
  "events": [
    "message.queued"
  ],
  "status": "active",
  "description": "Sipariş durumu güncellemeleri",
  "event_filters": {
    "event_names": [
      "purchase"
    ]
  }
}'

Endpoint sil

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

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
webhookIdyolstringEvet"whe_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/webhooks/whe_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Secret rotasyonu (eski secret 24 saat ikinci imza olarak gönderilir)

POST/v1/apps/{appId}/webhooks/{webhookId}/rotate-secretDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

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

Yanıtlar

200 — Başarılı.

Şema: WebhookWithSecret

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
urlstringEvet
descriptionstring | nullEvet
eventsarray<string>Evet
event_filtersobjectEvet
event_filters.event_namesarray<string>Hayır
batchbooleanEvet
statusenumEvetDeğerler: "active", "failing", "disabled"
disabled_reasonstring | nullEvet
failure_countintegerEvet
failing_sincestring | nullEvet
last_success_atstring | nullEvet
last_failure_atstring | nullEvet
header_namesarray<string>Evet
previous_secret_expires_atstring | nullEvet
body_templatestring | nullEvet
body_content_typeenumEvetDeğerler: "application/json", "text/plain"
filtersobject | nullEvet
created_atstringEvet
updated_atstringEvet
secretstringEvetYalnızca oluşturma ve rotasyon yanıtında bir kez döner.

Örnek yanıt:

{
  "url": "https://example.com/orders/1001",
  "events": [
    "purchase"
  ],
  "status": "active",
  "id": "whe_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "description": "Sipariş durumu güncellemeleri",
  "event_filters": {
    "event_names": [
      "purchase"
    ]
  },
  "batch": true,
  "disabled_reason": "örnek",
  "failure_count": 1,
  "failing_since": "örnek",
  "last_success_at": "örnek",
  "last_failure_at": "örnek",
  "header_names": [
    "örnek"
  ],
  "previous_secret_expires_at": "örnek",
  "body_template": "örnek",
  "body_content_type": "application/json",
  "filters": {
    "match": "all",
    "conditions": [
      {
        "field": "örnek",
        "op": "eq",
        "value": "user_42"
      }
    ]
  },
  "created_at": "örnek",
  "updated_at": "örnek",
  "secret": "ö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/webhooks/whe_01JD3W5Q7X9K2M4N6P8R0T1V3W/rotate-secret" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Test olayı gönder (anında, sonuç döner)

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

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

Parametreler

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

Yanıtlar

200 — Başarılı.

Şema: WebhookDeliveryDetail

AlanTürZorunluAçıklama
idstringEvet
endpoint_idstringEvet
event_typestringEvet
event_idstringEvet
subject_idstring | nullEvet
attemptintegerEvet
statusenumEvetDeğerler: "pending", "success", "failed", "dead"
response_statusinteger | nullEvet
response_body_excerptstring | nullEvet
errorstring | nullEvet
duration_msinteger | nullEvet
next_retry_atstring | nullEvet
delivered_atstring | nullEvet
replay_ofstring | nullEvet
created_atstringEvet
payloadmap<string, any>Evet

Örnek yanıt:

{
  "status": "pending",
  "id": "dlv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "endpoint_id": "whe_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "event_type": "örnek",
  "event_id": "evt_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "subject_id": "dlv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "attempt": 1,
  "response_status": 1,
  "response_body_excerpt": "örnek",
  "error": "örnek",
  "duration_ms": 1,
  "next_retry_at": "örnek",
  "delivered_at": "örnek",
  "replay_of": "örnek",
  "created_at": "örnek",
  "payload": {
    "key": "ö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/webhooks/whe_01JD3W5Q7X9K2M4N6P8R0T1V3W/test" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Teslim geçmişi (cursor; durum/olay türü filtresi)

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

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

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
webhookIdyolstringEvet"whe_01JD3W5Q7X9K2M4N6P8R0T1V3W"
limitsorguintegerHayırVarsayılan: 50; Aralık: 1–20050
cursorsorgustringHayırUzunluk: 1–∞"eyJpZCI6Im1zZ18wMUpE…"
statussorguenumHayırDeğerler: "pending", "success", "failed", "dead""pending"
event_typesorgustringHayırUzunluk: 0–64"örnek"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: WebhookDeliveryPage

AlanTürZorunluAçıklama
dataarray<object>Evet
data[].idstringEvet
data[].endpoint_idstringEvet
data[].event_typestringEvet
data[].event_idstringEvet
data[].subject_idstring | nullEvet
data[].attemptintegerEvet
data[].statusenumEvetDeğerler: "pending", "success", "failed", "dead"
data[].response_statusinteger | nullEvet
data[].response_body_excerptstring | nullEvet
data[].errorstring | nullEvet
data[].duration_msinteger | nullEvet
data[].next_retry_atstring | nullEvet
data[].delivered_atstring | nullEvet
data[].replay_ofstring | nullEvet
data[].created_atstringEvet
next_cursorstring | nullEvet
has_morebooleanEvet

Örnek yanıt:

{
  "data": [
    {
      "status": "pending",
      "id": "whe_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "endpoint_id": "whe_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "event_type": "örnek",
      "event_id": "evt_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "subject_id": "whe_01JD3W5Q7X9K2M4N6P8R0T1V3W",
      "attempt": 1,
      "response_status": 1,
      "response_body_excerpt": "örnek",
      "error": "örnek",
      "duration_ms": 1,
      "next_retry_at": "örnek",
      "delivered_at": "örnek",
      "replay_of": "örnek",
      "created_at": "örnek"
    }
  ],
  "next_cursor": "eyJpZCI6Im1zZ18wMUpE…",
  "has_more": true
}

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

Örnekler

curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/webhooks/whe_01JD3W5Q7X9K2M4N6P8R0T1V3W/deliveries?limit=50" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Teslimi yeniden gönder (aynı olay kimliğiyle)

POST/v1/apps/{appId}/webhooks/deliveries/{deliveryId}/replayDene (etkileşimli API belgesi, yeni sekme)

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

Parametreler

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

Yanıtlar

200 — Başarılı.

Şema: WebhookDeliveryDetail

AlanTürZorunluAçıklama
idstringEvet
endpoint_idstringEvet
event_typestringEvet
event_idstringEvet
subject_idstring | nullEvet
attemptintegerEvet
statusenumEvetDeğerler: "pending", "success", "failed", "dead"
response_statusinteger | nullEvet
response_body_excerptstring | nullEvet
errorstring | nullEvet
duration_msinteger | nullEvet
next_retry_atstring | nullEvet
delivered_atstring | nullEvet
replay_ofstring | nullEvet
created_atstringEvet
payloadmap<string, any>Evet

Örnek yanıt:

{
  "status": "pending",
  "id": "dlv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "endpoint_id": "whe_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "event_type": "örnek",
  "event_id": "evt_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "subject_id": "dlv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "attempt": 1,
  "response_status": 1,
  "response_body_excerpt": "örnek",
  "error": "örnek",
  "duration_ms": 1,
  "next_retry_at": "örnek",
  "delivered_at": "örnek",
  "replay_of": "örnek",
  "created_at": "örnek",
  "payload": {
    "key": "ö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/webhooks/deliveries/dlv_01JD3W5Q7X9K2M4N6P8R0T1V3W/replay" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Bu sayfada