# List webhooks

`GET https://ulawk.com/api/v1/webhooklar/`

Your webhooks (without secrets) and the valid categories.

## Authentication

Two headers on every request: `X-API-Key` and `X-API-Secret`.

## Response

### 200 — Webhooks.

- `adet` (integer, zorunlu)
- `kategoriler[]` (string[], zorunlu)
- `webhooklar[]` (Webhook[], zorunlu)
- `webhooklar[].id` (integer, zorunlu)
- `webhooklar[].url` (string (uri), zorunlu)
- `webhooklar[].aktif` (boolean, zorunlu)
- `webhooklar[].kategoriler[]` (string[], zorunlu) — Empty = all categories.
- `webhooklar[].tum_kategoriler` (boolean, zorunlu)
- `webhooklar[].olusturma` (string (date-time), null, zorunlu)
- `webhooklar[].son_gonderim` (string (date-time), null, zorunlu)
- `webhooklar[].son_durum` (string, null, zorunlu)
- `webhooklar[].ardisik_hata` (integer, zorunlu) — Consecutive failures; paused at 20.
- `webhooklar[].son_teslimler[]` (Teslim[]) — Only in webhook detail (last 20).
- `webhooklar[].son_teslimler[].teslim_id` (string, zorunlu) — Same across retries (de-duplication).
- `webhooklar[].son_teslimler[].olay` (string, zorunlu) Değerler: sirket.degisiklik, test.
- `webhooklar[].son_teslimler[].test` (boolean, zorunlu)
- `webhooklar[].son_teslimler[].kategoriler[]` (string[], zorunlu)
- `webhooklar[].son_teslimler[].durum` (string, zorunlu) Değerler: bekliyor, basarili, hata, vazgecildi.
- `webhooklar[].son_teslimler[].deneme_sayisi` (integer, zorunlu)
- `webhooklar[].son_teslimler[].http_kodu` (integer, null, zorunlu)
- `webhooklar[].son_teslimler[].hata` (string, null, zorunlu)
- `webhooklar[].son_teslimler[].olusturma` (string (date-time), null, zorunlu)
- `webhooklar[].son_teslimler[].son_deneme` (string (date-time), null, zorunlu)

```json
{
  "adet": 1,
  "kategoriler": [
    "durum",
    "adres"
  ],
  "webhooklar": [
    {
      "id": 1,
      "url": "https://sisteminiz.ornek.com/ulawk",
      "aktif": true,
      "kategoriler": [
        "durum",
        "yetkililer"
      ],
      "tum_kategoriler": false,
      "olusturma": "2026-10-16T00:00:00+00:00",
      "son_gonderim": "2026-10-16T00:00:00+00:00",
      "son_durum": "başarılı (HTTP 200)",
      "ardisik_hata": 0
    }
  ]
}
```

### 401 — Missing or invalid key (`yetkisiz`).


```json
{
  "hata": "yetkisiz",
  "detay": "Geçerli X-API-Key başlığı gerekli (panel › API).",
  "hata_ayrinti": {
    "kod": "yetkisiz",
    "mesaj": "Geçerli X-API-Key başlığı gerekli (panel › API).",
    "taraf": "istemci",
    "kaynak": null,
    "tekrar_denenebilir": false,
    "tekrar_sn": null
  }
}
```

### 429 — Hourly rate limit exceeded (`hiz_siniri`); the Retry-After header gives the seconds until reset.

Retry-After: `2494`

```json
{
  "hata": "hiz_siniri",
  "detay": "Saatlik istek sınırı aşıldı (600). Bir sonraki saatte tekrar deneyin.",
  "hata_ayrinti": {
    "kod": "hiz_siniri",
    "mesaj": "Saatlik istek sınırı aşıldı (600). Bir sonraki saatte tekrar deneyin.",
    "taraf": "istemci",
    "kaynak": null,
    "tekrar_denenebilir": true,
    "tekrar_sn": 2494
  }
}
```

### 500 — Unexpected error (`ic_hata`, taraf ulawk); retry shortly.

Retry-After: `60`

```json
{
  "hata": "ic_hata",
  "detay": "Beklenmeyen bir hata oluştu; kısa süre sonra yeniden deneyin.",
  "hata_ayrinti": {
    "kod": "ic_hata",
    "mesaj": "Beklenmeyen bir hata oluştu; kısa süre sonra yeniden deneyin.",
    "taraf": "ulawk",
    "kaynak": null,
    "tekrar_denenebilir": true,
    "tekrar_sn": 60
  }
}
```

## Request

```bash
curl "https://ulawk.com/api/v1/webhooklar/" \
  -H "X-API-Key: ulk_DENEME_ANAHTARINIZ" \
  -H "X-API-Secret: ulsk_DENEME_GIZLI_ANAHTARINIZ"
```
