{
 "openapi": "3.1.0",
 "info": {
  "title": "Ulawk API",
  "version": "1.0.0",
  "summary": "Türkiye ticaret sicili şirket takibi: kaynaklı profil, değişiklikler, ilanlar ve gazeteler.",
  "description": "Alan adları ve değerler kaynak kayıtlardaki gibi Türkçedir. Belgeler: /gelistirici/",
  "contact": {
   "name": "Ulawk",
   "email": "info@ulawk.com",
   "url": "https://ulawk.com/gelistirici/"
  }
 },
 "servers": [
  {
   "url": "https://ulawk.com"
  }
 ],
 "security": [
  {
   "anahtar": [],
   "gizli": []
  }
 ],
 "tags": [
  {
   "name": "sirketler",
   "description": "Takip, ekleme, profil ve yetkililer.",
   "x-displayName": "Şirketler"
  },
  {
   "name": "dogrulama",
   "description": "Mühürlü doğrulama raporu ve imza yetkisi kontrolü.",
   "x-displayName": "Doğrulama ve imza"
  },
  {
   "name": "degisiklikler",
   "description": "Kaynaklı değişiklik akışları.",
   "x-displayName": "Değişiklikler"
  },
  {
   "name": "ilanlar",
   "description": "İlanlar, gazete PDF'leri, sayfa görselleri, KAP.",
   "x-displayName": "İlanlar ve gazeteler"
  },
  {
   "name": "raporlar",
   "description": "Rapor Al raporları ve dosyaları.",
   "x-displayName": "Raporlar"
  },
  {
   "name": "yaptirim",
   "description": "Birebir ad taraması.",
   "x-displayName": "Yaptırım taraması"
  },
  {
   "name": "webhooklar",
   "description": "Kategorili değişiklik bildirimleri.",
   "x-displayName": "Webhook'lar"
  },
  {
   "name": "acik",
   "description": "Anahtarsız uçlar: kapsam kataloğu ve hizmet durumu.",
   "x-displayName": "Herkese açık"
  },
  {
   "name": "eski",
   "description": "Geriye uyum için çalışmayı sürdüren eski uçlar.",
   "x-displayName": "Eski uçlar"
  }
 ],
 "paths": {
  "/api/v1/sirketler/": {
   "get": {
    "operationId": "sirketleri-listele",
    "tags": [
     "sirketler"
    ],
    "summary": "Takip edilen şirketler",
    "description": "Takip ettiğiniz şirketler: kimlik, unvan, müdürlük, sicil no, ilan sayısı ve profil bağlantısı. Unvana göre sıralı ve sayfalıdır.",
    "parameters": [
     {
      "name": "sayfa",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "default": 1
      },
      "description": "Sayfa numarası (1'den)."
     },
     {
      "name": "adet",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 1000,
       "default": 200
      },
      "description": "Sayfa başına kayıt (varsayılan 200, en çok 1000)."
     }
    ],
    "responses": {
     "200": {
      "description": "Şirket listesi.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/SirketListesi"
        }
       }
      }
     },
     "400": {
      "description": "Geçersiz parametre (`gecersiz_parametre`, `gecersiz_kategori`, `gecersiz_tarih`…) ya da bu uç deneme anahtarıyla kullanılamaz (`deneme_desteklenmiyor`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/sirketleri-listele/"
   }
  },
  "/api/v1/sirket-ekle/": {
   "post": {
    "operationId": "sirket-ekle",
    "tags": [
     "sirketler"
    ],
    "summary": "Şirketi takibe al",
    "description": "Şirketi sicil müdürlüğü ve sicil numarasıyla takibe alır. İstek beklemez: kayıt hemen açılır, ilanlar ve profil arka planda hazırlanır; `durum_adresi` ile izleyin. Aynı şirket (aynı müdürlük + aynı sicil kökü, `325075-0` = `325075`) listenizde varsa ikinci kayıt açılmaz, `zaten_var` döner ve paket hakkınız harcanmaz. Deneme anahtarında kayıt açılmaz; yeni sicil `DENEME-YAVAS` akışına yönlenir.",
    "parameters": [],
    "responses": {
     "201": {
      "description": "Takibe alındı (`eklendi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/EklemeSonucu"
        }
       }
      }
     },
     "200": {
      "description": "Zaten listenizde (`zaten_var`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/EklemeSonucu"
        }
       }
      }
     },
     "400": {
      "description": "`eksik_alan` ya da `gecersiz_sicil`.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "402": {
      "description": "Paket şirket hakkınız doldu (`kota_doldu`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "405": {
      "description": "POST bekleniyor (`yontem`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/sirket-ekle/",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "mudurluk": {
          "type": "string",
          "description": "Sicil müdürlüğü (ör. İSTANBUL)."
         },
         "sicil_no": {
          "type": "string",
          "description": "Sicil numarası; rakamla başlar.",
          "pattern": "^[0-9][0-9\\-/]{0,29}$"
         },
         "unvan": {
          "type": "string",
          "description": "İsteğe bağlı unvan."
         }
        },
        "required": [
         "mudurluk",
         "sicil_no"
        ],
        "additionalProperties": false
       },
       "example": {
        "mudurluk": "İSTANBUL",
        "sicil_no": "555555"
       }
      }
     }
    }
   }
  },
  "/api/v1/ara/": {
   "get": {
    "operationId": "hizli-sorgu",
    "tags": [
     "sirketler"
    ],
    "summary": "Hızlı sorgu (ön doldurma)",
    "description": "Ulawk dizinindeki şirketlerden anında aday: unvan, müdürlük, sicil no, hukuki biçim, durum, il, adres, kuruluş ve son ilan tarihi. Yalnız Ulawk'ın zaten işlediği şirketler döner; canlı sicil sorgusu yapılmaz, takip eklenmez, paket hakkı harcanmaz. Kişi adı ve başka müşterilere ait bilgi dönmez. Unvan, sicil numarası ya da yurt dışı kimlikle arar; Türkçe harf, büyük/küçük harf ve hukuki biçim eki (A.Ş., Ltd. Şti., GmbH …) farkı önemsizdir. Bulunamazsa `bulunamadi: true`; şirketi `sirket-ekle` ile takibe alın. Bu uca ayrıca saatlik sorgu sınırı uygulanır; dizini toplu çekmek kullanım şartlarına aykırıdır.",
    "parameters": [
     {
      "name": "q",
      "in": "query",
      "required": true,
      "schema": {
       "type": "string",
       "minLength": 3
      },
      "description": "Unvan, sicil no ya da kimlik (en az 3 harf/rakam).",
      "example": "örnek deneme"
     },
     {
      "name": "ulke",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "pattern": "^[A-Za-z]{2}$"
      },
      "description": "Ülke süzgeci (TR, GB …); yoksa tümü.",
      "example": "TR"
     },
     {
      "name": "adet",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 20,
       "default": 10
      },
      "description": "En çok aday (varsayılan 10, en çok 20)."
     },
     {
      "name": "mudurluk",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Yalnız bu sicil müdürlüğü (Türkiye)."
     },
     {
      "name": "faal",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "enum": [
        "1"
       ]
      },
      "description": "1 → yalnız durumu FAAL olanlar."
     }
    ],
    "responses": {
     "200": {
      "description": "Adaylar (boş olabilir).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HizliSorguYaniti"
        }
       }
      }
     },
     "400": {
      "description": "`gecersiz_parametre` (q kısa, ulke ya da adet geçersiz).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "405": {
      "description": "GET bekleniyor (`yontem`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/hizli-sorgu/"
   }
  },
  "/api/v1/sirketler/{sirket_id}/durum/": {
   "get": {
    "operationId": "sirket-durumu",
    "tags": [
     "sirketler"
    ],
    "summary": "Hazırlık durumu",
    "description": "Yeni eklenen şirketin hazırlık aşaması: ilan çekimi → gazete arşivi → profil. `hazir` olana kadar birkaç dakikada bir sorgulayın. Şube kayıtlarında aşama doğrudan `sube`dir.",
    "parameters": [
     {
      "name": "sirket_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": [
        "integer",
        "string"
       ],
       "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
      },
      "description": "Şirket kimliği (`/api/v1/sirketler/` listesindeki `id`).",
      "example": "DENEME-100001"
     }
    ],
    "responses": {
     "200": {
      "description": "Hazırlık durumu.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HazirlikDurumu"
        }
       }
      }
     },
     "404": {
      "description": "Bulunamadı ya da erişim yetkiniz yok (`bulunamadi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "503": {
      "description": "Resmî kaynak şu an erişilemiyor (`kaynak_erisilemiyor`, taraf kaynak). Deneme ortamında DENEME-KAYNAK-KAPALI.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/sirket-durumu/"
   }
  },
  "/api/v1/sirketler/{sirket_id}/": {
   "get": {
    "operationId": "sirket-profili",
    "tags": [
     "sirketler"
    ],
    "summary": "Şirket profili",
    "description": "Kaynaklı tam profil: özet, kimlik, yetkililer, sermaye, ortaklık, unvan/adres, esas sözleşme, tek kronolojik değişiklik akışı, ilanlar ve rapor bulguları. Her kayıt `kaynak` taşır. `veri_durumu` her bölümün tamlığını söyler; boş liste `[]` = baktık, kayıt yok · `null` = mevcut değil ya da hazırlanıyor.",
    "parameters": [
     {
      "name": "sirket_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": [
        "integer",
        "string"
       ],
       "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
      },
      "description": "Şirket kimliği (`/api/v1/sirketler/` listesindeki `id`).",
      "example": "DENEME-100001"
     }
    ],
    "responses": {
     "200": {
      "description": "Profil.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Profil"
        }
       }
      }
     },
     "404": {
      "description": "Bulunamadı ya da erişim yetkiniz yok (`bulunamadi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "503": {
      "description": "Resmî kaynak şu an erişilemiyor (`kaynak_erisilemiyor`, taraf kaynak). Deneme ortamında DENEME-KAYNAK-KAPALI.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/sirket-profili/"
   }
  },
  "/api/v1/sirketler/{sirket_id}/yetkililer/": {
   "get": {
    "operationId": "yetkililer",
    "tags": [
     "sirketler"
    ],
    "summary": "Yetkililer (tarihli)",
    "description": "Verilen tarihte görevde olan yetkililer (sıfat, temsil şekli, görev dönemi, kaynak). `tarih` verilmezse güncel yetkililer. Sözleşmeyi imzalayanın o tarihte yetkili olup olmadığını denetlemek için.",
    "parameters": [
     {
      "name": "sirket_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": [
        "integer",
        "string"
       ],
       "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
      },
      "description": "Şirket kimliği (`/api/v1/sirketler/` listesindeki `id`).",
      "example": "DENEME-100001"
     },
     {
      "name": "tarih",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "format": "date"
      },
      "description": "YYYY-AA-GG.",
      "example": "2021-06-01"
     }
    ],
    "responses": {
     "200": {
      "description": "Yetkililer.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/YetkiliListesi"
        }
       }
      }
     },
     "400": {
      "description": "`gecersiz_tarih`.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "404": {
      "description": "Bulunamadı ya da erişim yetkiniz yok (`bulunamadi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "503": {
      "description": "Resmî kaynak şu an erişilemiyor (`kaynak_erisilemiyor`, taraf kaynak). Deneme ortamında DENEME-KAYNAK-KAPALI.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/yetkililer/"
   }
  },
  "/api/v1/gorev-bitisleri/": {
   "get": {
    "operationId": "gorev-bitisleri",
    "tags": [
     "sirketler"
    ],
    "summary": "Görev bitişleri",
    "description": "Tüm şirketlerinizde görev süresi `gun` içinde dolacak ya da yenilenmeden dolmuş yetkililer (kalan gün sırasıyla). Hatırlatma ve takvim entegrasyonu için.",
    "parameters": [
     {
      "name": "gun",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 3650,
       "default": 120
      },
      "description": "Ufuk (gün).",
      "example": 180
     }
    ],
    "responses": {
     "200": {
      "description": "Görev bitişleri.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/GorevBitisleri"
        }
       }
      }
     },
     "400": {
      "description": "`gecersiz_gun`.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/gorev-bitisleri/"
   }
  },
  "/api/v1/sirketler/{sirket_id}/dogrulama-raporu.pdf": {
   "get": {
    "operationId": "dogrulama-raporu",
    "tags": [
     "dogrulama"
    ],
    "summary": "Doğrulama raporu",
    "description": "Şirketin kaynaklı profilinden mühürlü doğrulama raporu (PDF). Her bilgi kaynak ilanın künyesini (tarih · sayı · sayfa) ve birebir alıntıyı taşır; kapakta mühür: DOGRULANDI, KISMI ya da DOGRULANMADI. Rapor kimliği içerikten türetilir; aynı içerik aynı kimliği verir ve `?rapor=DR-…` ile ücretsiz yeniden indirilir. `?bicim=json` aynı içeriği JSON, `?bicim=html` yazdırılabilir sayfa olarak verir. `?tam_zorunlu=1`: mühür DOGRULANDI değilse 409 `veri_eksik`. Yanıt başlıkları: X-Ulawk-Rapor-Kimligi, X-Ulawk-Muhur, X-Ulawk-Icerik-Ozeti, X-Ulawk-Veri-Durumu.",
    "parameters": [
     {
      "name": "sirket_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": [
        "integer",
        "string"
       ],
       "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
      },
      "description": "Şirket kimliği (`/api/v1/sirketler/` listesindeki `id`).",
      "example": "DENEME-100001"
     },
     {
      "name": "dil",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "enum": [
        "en"
       ]
      },
      "description": "en → İngilizce rapor (varsayılan Türkçe)."
     },
     {
      "name": "rapor",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "pattern": "^DR-"
      },
      "description": "Önceki raporun kimliği: aynı anlık görüntü yeniden çizilir."
     },
     {
      "name": "bicim",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "enum": [
        "pdf",
        "json",
        "html"
       ],
       "default": "pdf"
      },
      "description": "Çıktı biçimi.",
      "example": "json"
     },
     {
      "name": "tam_zorunlu",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "enum": [
        "1"
       ]
      },
      "description": "1 → yalnız DOGRULANDI raporu ver, değilse 409."
     },
     {
      "name": "indir",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "enum": [
        "1"
       ]
      },
      "description": "1 → PDF'i dosya olarak indir."
     }
    ],
    "responses": {
     "200": {
      "description": "Rapor (PDF; ?bicim=json → JSON; ?bicim=html → HTML).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/DogrulamaRaporuJson"
        }
       },
       "application/pdf": {
        "schema": {
         "type": "string",
         "format": "binary"
        }
       },
       "text/html": {
        "schema": {
         "type": "string"
        }
       }
      },
      "headers": {
       "X-Ulawk-Rapor-Kimligi": {
        "schema": {
         "type": "string"
        },
        "description": "DR-… rapor kimliği."
       },
       "X-Ulawk-Muhur": {
        "schema": {
         "type": "string"
        },
        "description": "DOGRULANDI · KISMI · DOGRULANMADI"
       },
       "X-Ulawk-Icerik-Ozeti": {
        "schema": {
         "type": "string"
        },
        "description": "İçeriğin SHA-256 özeti."
       },
       "X-Ulawk-Veri-Durumu": {
        "schema": {
         "type": "string"
        },
        "description": "tam · kismi · hazirlaniyor"
       }
      }
     },
     "404": {
      "description": "Şirket ya da `?rapor=` kimliği bulunamadı (`bulunamadi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "409": {
      "description": "`?tam_zorunlu=1` ve mühür DOGRULANDI değil (`veri_eksik`; `muhur`, `bekleyen_bolumler`, `rapor_kimligi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "503": {
      "description": "PDF şu an üretilemedi (`pdf_uretilemedi`, `?bicim=html` dener) ya da kaynak erişilemiyor.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/dogrulama-raporu/"
   }
  },
  "/api/v1/sirketler/{sirket_id}/imza-kontrol/": {
   "post": {
    "operationId": "imza-kontrol",
    "tags": [
     "dogrulama"
    ],
    "summary": "İmza yetkisi kontrolü",
    "description": "\"Bu kişi bu tarihte, bu işlem ve tutar için şirketi temsil edebilir mi?\" Sonuç ilanlardaki temsil kararlarından, görev dönemlerinden ve varsa iç yönergeden çıkarılır: `yetkili`, `yetkili_degil` ya da `belirsiz`. Her gerekçe kaynak ilanını taşır. Müşterek temsilde `birlikte` ile birlikte imzalayanları verin. Hukuki görüş değildir; güncel imza sirküleriyle teyit edin. Aynı girdi GET sorgusuyla da verilebilir.",
    "parameters": [
     {
      "name": "sirket_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": [
        "integer",
        "string"
       ],
       "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
      },
      "description": "Şirket kimliği (`/api/v1/sirketler/` listesindeki `id`).",
      "example": "DENEME-100001"
     }
    ],
    "responses": {
     "200": {
      "description": "Kontrol sonucu.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ImzaKontrolSonucu"
        }
       }
      }
     },
     "400": {
      "description": "`eksik_parametre` (kisi yok), `gecersiz_tarih`, `gecersiz_tutar`, `gecersiz_govde`, `gecersiz_parametre`.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "404": {
      "description": "Bulunamadı ya da erişim yetkiniz yok (`bulunamadi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "405": {
      "description": "GET ya da POST bekleniyor (`yontem`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "503": {
      "description": "Resmî kaynak şu an erişilemiyor (`kaynak_erisilemiyor`, taraf kaynak). Deneme ortamında DENEME-KAYNAK-KAPALI.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/imza-kontrol/",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "kisi": {
          "type": "string",
          "description": "Yetkilinin adı soyadı (zorunlu; büyük/küçük harf ve aksan farkı önemsiz)."
         },
         "tarih": {
          "type": "string",
          "description": "İmza tarihi YYYY-AA-GG (varsayılan bugün).",
          "format": "date"
         },
         "tutar": {
          "type": [
           "number",
           "string"
          ],
          "description": "İşlem tutarı (1500000 ya da \"1.500.000,00\"); iç yönergedeki sınırla karşılaştırılır."
         },
         "para_birimi": {
          "type": "string",
          "description": "Varsayılan TRY.",
          "default": "TRY"
         },
         "islem": {
          "type": "string",
          "description": "İşlem türü (ör. kredi, satış); boş = genel temsil."
         },
         "birlikte": {
          "type": "array",
          "description": "Birlikte imzalayacakların adları (müşterek temsil; en çok 10).",
          "items": {
           "type": "string"
          }
         }
        },
        "required": [
         "kisi"
        ],
        "additionalProperties": false
       },
       "example": {
        "kisi": "Ayşe Örnek",
        "tarih": "2026-10-01",
        "tutar": 1500000,
        "islem": "kredi"
       }
      }
     }
    }
   },
   "get": {
    "operationId": "imza-kontrol-sorgu",
    "tags": [
     "dogrulama"
    ],
    "summary": "İmza kontrolü (sorguyla) ve kişi listesi",
    "description": "`kisi` verilmezse profildeki yetkili adları (görevdekiler önce) döner; verilirse POST ile aynı kontrol sorgu parametreleriyle yapılır (`birlikte` tekrarlanabilir ya da virgüllü).",
    "parameters": [
     {
      "name": "sirket_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": [
        "integer",
        "string"
       ],
       "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
      },
      "description": "Şirket kimliği (`/api/v1/sirketler/` listesindeki `id`).",
      "example": "DENEME-100001"
     },
     {
      "name": "kisi",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Yetkilinin adı soyadı.",
      "example": "Ayşe Örnek"
     },
     {
      "name": "tarih",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "format": "date"
      },
      "description": "YYYY-AA-GG (varsayılan bugün)."
     },
     {
      "name": "tutar",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "İşlem tutarı."
     },
     {
      "name": "para_birimi",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "default": "TRY"
      },
      "description": "Para birimi."
     },
     {
      "name": "islem",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "İşlem türü."
     },
     {
      "name": "birlikte",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Birlikte imzalayacaklar (virgüllü)."
     }
    ],
    "responses": {
     "200": {
      "description": "`kisi` yoksa kişi listesi, varsa kontrol sonucu.",
      "content": {
       "application/json": {
        "schema": {
         "anyOf": [
          {
           "$ref": "#/components/schemas/ImzaKontrolSonucu"
          },
          {
           "$ref": "#/components/schemas/ImzaKisiListesi"
          }
         ]
        }
       }
      }
     },
     "400": {
      "description": "`gecersiz_tarih`, `gecersiz_tutar`, `gecersiz_parametre`.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "404": {
      "description": "Bulunamadı ya da erişim yetkiniz yok (`bulunamadi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "503": {
      "description": "Resmî kaynak şu an erişilemiyor (`kaynak_erisilemiyor`, taraf kaynak). Deneme ortamında DENEME-KAYNAK-KAPALI.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/imza-kontrol-sorgu/"
   }
  },
  "/api/v1/sirketler/{sirket_id}/degisiklikler/": {
   "get": {
    "operationId": "sirket-degisiklikleri",
    "tags": [
     "degisiklikler"
    ],
    "summary": "Şirketin değişiklikleri",
    "description": "Her değişiklik kaynak gazetesiyle: yetkili atama/ayrılma, sermaye, ortaklık, unvan/adres, esas sözleşme ve durum değişiklikleri tek kronolojik akışta (yeniden eskiye). Yanıtta ayrıca `son_gazete`.",
    "parameters": [
     {
      "name": "sirket_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": [
        "integer",
        "string"
       ],
       "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
      },
      "description": "Şirket kimliği (`/api/v1/sirketler/` listesindeki `id`).",
      "example": "DENEME-100001"
     },
     {
      "name": "tur",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "enum": [
        "yetkili-atama",
        "yetkili-ayrilma",
        "sermaye",
        "ortaklik",
        "unvan-adres",
        "esas-sozlesme",
        "durum"
       ]
      },
      "description": "Değişiklik türü süzgeci."
     },
     {
      "name": "kategoriler",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Virgülle değişiklik kategorisi süzgeci: durum, adres, ortaklik, sermaye, yetkililer, unvan, esas_sozlesme, diger, kapandi. Bilinmeyen kategori 400 `gecersiz_kategori`.",
      "example": "durum,yetkililer"
     },
     {
      "name": "sayfa",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "default": 1
      },
      "description": "Sayfa numarası (1'den)."
     },
     {
      "name": "adet",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 500,
       "default": 100
      },
      "description": "Sayfa başına kayıt (varsayılan 100, en çok 500)."
     }
    ],
    "responses": {
     "200": {
      "description": "Değişiklikler.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/DegisiklikListesi"
        }
       }
      }
     },
     "400": {
      "description": "Geçersiz parametre (`gecersiz_parametre`, `gecersiz_kategori`, `gecersiz_tarih`…) ya da bu uç deneme anahtarıyla kullanılamaz (`deneme_desteklenmiyor`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "404": {
      "description": "Bulunamadı ya da erişim yetkiniz yok (`bulunamadi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "503": {
      "description": "Resmî kaynak şu an erişilemiyor (`kaynak_erisilemiyor`, taraf kaynak). Deneme ortamında DENEME-KAYNAK-KAPALI.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/sirket-degisiklikleri/"
   }
  },
  "/api/v1/degisiklikler/": {
   "get": {
    "operationId": "gunluk-degisiklikler",
    "tags": [
     "degisiklikler"
    ],
    "summary": "Tüm şirketlerde son değişiklikler",
    "description": "Tüm şirketlerinizdeki son değişiklikler tek akışta; her satırda hangi şirket. Günde bir istekle günlük değişiklikleri çekmek için. Webhook istemiyorsanız bu ucu düzenli sorgulayın.",
    "parameters": [
     {
      "name": "gun",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 365,
       "default": 1
      },
      "description": "Kaç gün geriye.",
      "example": 7
     },
     {
      "name": "tur",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "enum": [
        "yetkili-atama",
        "yetkili-ayrilma",
        "sermaye",
        "ortaklik",
        "unvan-adres",
        "esas-sozlesme",
        "durum"
       ]
      },
      "description": "Değişiklik türü süzgeci."
     },
     {
      "name": "kategoriler",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Virgülle değişiklik kategorisi süzgeci: durum, adres, ortaklik, sermaye, yetkililer, unvan, esas_sozlesme, diger, kapandi. Bilinmeyen kategori 400 `gecersiz_kategori`.",
      "example": "durum,yetkililer"
     },
     {
      "name": "sayfa",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "default": 1
      },
      "description": "Sayfa numarası (1'den)."
     },
     {
      "name": "adet",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 500,
       "default": 200
      },
      "description": "Sayfa başına kayıt (varsayılan 200, en çok 500)."
     }
    ],
    "responses": {
     "200": {
      "description": "Değişiklikler.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/GunlukDegisiklikListesi"
        }
       }
      }
     },
     "400": {
      "description": "Geçersiz parametre (`gecersiz_parametre`, `gecersiz_kategori`, `gecersiz_tarih`…) ya da bu uç deneme anahtarıyla kullanılamaz (`deneme_desteklenmiyor`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/gunluk-degisiklikler/"
   }
  },
  "/api/v1/sirketler/{sirket_id}/ilanlar/": {
   "get": {
    "operationId": "ilanlar",
    "tags": [
     "ilanlar"
    ],
    "summary": "Şirketin ilanları",
    "description": "Şirketin Ticaret Sicili Gazetesi ilanları (en yeni önce): tarih, tür, sayı/sayfa, sade dilde başlık ve açıklama, gazete PDF bağlantısı ve değişiklik kategorisi.",
    "parameters": [
     {
      "name": "sirket_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": [
        "integer",
        "string"
       ],
       "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
      },
      "description": "Şirket kimliği (`/api/v1/sirketler/` listesindeki `id`).",
      "example": "DENEME-100001"
     },
     {
      "name": "kategori",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Virgülle ilan türü kategorisi (eski süzgeç): kurulus, konkordato, birlesme, sermaye, ortaklik, yonetim, unvan_adres, genel_kurul, esas, diger."
     },
     {
      "name": "kategoriler",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Virgülle değişiklik kategorisi süzgeci: durum, adres, ortaklik, sermaye, yetkililer, unvan, esas_sozlesme, diger, kapandi. Bilinmeyen kategori 400 `gecersiz_kategori`.",
      "example": "durum,yetkililer"
     }
    ],
    "responses": {
     "200": {
      "description": "İlanlar.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/IlanListesi"
        }
       }
      }
     },
     "400": {
      "description": "Geçersiz parametre (`gecersiz_parametre`, `gecersiz_kategori`, `gecersiz_tarih`…) ya da bu uç deneme anahtarıyla kullanılamaz (`deneme_desteklenmiyor`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "404": {
      "description": "Bulunamadı ya da erişim yetkiniz yok (`bulunamadi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "503": {
      "description": "Resmî kaynak şu an erişilemiyor (`kaynak_erisilemiyor`, taraf kaynak). Deneme ortamında DENEME-KAYNAK-KAPALI.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/ilanlar/"
   }
  },
  "/api/v1/ilanlar/{ilan_id}/pdf/": {
   "get": {
    "operationId": "ilan-pdf",
    "tags": [
     "ilanlar"
    ],
    "summary": "Gazete PDF'i",
    "description": "İlanın yayımlandığı gazetenin PDF'i, arşivimizden. `indir=1` ile dosya olarak iner. Gazete henüz arşive inmediyse 404 `arsivde_yok` (yeniden denenebilir).",
    "parameters": [
     {
      "name": "ilan_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "İlan kimliği (`ilanlar[].ilan_id` ya da `kaynak.ilan_id`).",
      "example": 9000000
     },
     {
      "name": "indir",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "enum": [
        "1"
       ]
      },
      "description": "1 → dosya olarak indir."
     }
    ],
    "responses": {
     "200": {
      "description": "PDF dosyası.",
      "content": {
       "application/pdf": {
        "schema": {
         "type": "string",
         "format": "binary"
        }
       }
      }
     },
     "404": {
      "description": "`bulunamadi` ya da `arsivde_yok`.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "503": {
      "description": "Resmî kaynak şu an erişilemiyor (`kaynak_erisilemiyor`, taraf kaynak). Deneme ortamında DENEME-KAYNAK-KAPALI.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/ilan-pdf/"
   }
  },
  "/api/v1/ilanlar/{ilan_id}/sayfa/{sayfa}/": {
   "get": {
    "operationId": "ilan-sayfasi",
    "tags": [
     "ilanlar"
    ],
    "summary": "Gazete sayfası görseli",
    "description": "Gazetenin n. sayfasının PNG görseli. `kaynak.vurgu.kutular` içindeki oransal kutuları bu görselin üzerine çizerek bilginin yerini işaretleyin.",
    "parameters": [
     {
      "name": "ilan_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "İlan kimliği (`ilanlar[].ilan_id` ya da `kaynak.ilan_id`).",
      "example": 9000000
     },
     {
      "name": "sayfa",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer",
       "minimum": 1
      },
      "description": "Sayfa numarası (`kaynak.vurgu.sayfa`).",
      "example": 1
     }
    ],
    "responses": {
     "200": {
      "description": "PNG görseli.",
      "content": {
       "image/png": {
        "schema": {
         "type": "string",
         "format": "binary"
        }
       }
      }
     },
     "404": {
      "description": "Bulunamadı ya da erişim yetkiniz yok (`bulunamadi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/ilan-sayfasi/"
   }
  },
  "/api/v1/sirketler/{sirket_id}/pdfler/": {
   "get": {
    "operationId": "sirket-gazeteleri",
    "tags": [
     "ilanlar"
    ],
    "summary": "Tüm gazeteler (ZIP)",
    "description": "Şirketin arşivdeki tüm gazete PDF'leri tek ZIP dosyasında (dosya adları tarih ve ilan türüyle).",
    "parameters": [
     {
      "name": "sirket_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": [
        "integer",
        "string"
       ],
       "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
      },
      "description": "Şirket kimliği (`/api/v1/sirketler/` listesindeki `id`).",
      "example": "DENEME-100001"
     }
    ],
    "responses": {
     "200": {
      "description": "ZIP dosyası.",
      "content": {
       "application/zip": {
        "schema": {
         "type": "string",
         "format": "binary"
        }
       }
      }
     },
     "404": {
      "description": "`bulunamadi` ya da `arsivde_yok`.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "503": {
      "description": "Resmî kaynak şu an erişilemiyor (`kaynak_erisilemiyor`, taraf kaynak). Deneme ortamında DENEME-KAYNAK-KAPALI.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/sirket-gazeteleri/"
   }
  },
  "/api/v1/gazeteler/": {
   "get": {
    "operationId": "gazete-arsivi",
    "tags": [
     "ilanlar"
    ],
    "summary": "Gazete arşivi",
    "description": "Tüm ilanlarınızın arşivdeki gazeteleri: ilan, şirket, gazete kimliği, sayfa sayısı, boyut ve PDF bağlantısı. Sayfalı.",
    "parameters": [
     {
      "name": "sayfa",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "default": 1
      },
      "description": "Sayfa numarası (1'den)."
     },
     {
      "name": "adet",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 500,
       "default": 100
      },
      "description": "Sayfa başına kayıt (varsayılan 100, en çok 500)."
     }
    ],
    "responses": {
     "200": {
      "description": "Gazeteler.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/GazeteListesi"
        }
       }
      }
     },
     "400": {
      "description": "Geçersiz parametre (`gecersiz_parametre`, `gecersiz_kategori`, `gecersiz_tarih`…) ya da bu uç deneme anahtarıyla kullanılamaz (`deneme_desteklenmiyor`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/gazete-arsivi/"
   }
  },
  "/api/v1/sirketler/{sirket_id}/kap/": {
   "get": {
    "operationId": "kap",
    "tags": [
     "ilanlar"
    ],
    "summary": "KAP bildirimleri",
    "description": "Şirketin eşleştiği KAP üyesi, kurucusu olduğu fonlar ve şirketin/fonların son KAP bildirimleri (konu, özet, ekler). Eşleşme yoksa 404 `kap_eslesmesi_yok` (taraf kaynak, kaynak kap).",
    "parameters": [
     {
      "name": "sirket_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": [
        "integer",
        "string"
       ],
       "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
      },
      "description": "Şirket kimliği (`/api/v1/sirketler/` listesindeki `id`).",
      "example": "DENEME-100001"
     },
     {
      "name": "adet",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "default": 50
      },
      "description": "En çok bildirim."
     }
    ],
    "responses": {
     "200": {
      "description": "KAP verisi.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/KapYaniti"
        }
       }
      }
     },
     "404": {
      "description": "`bulunamadi` ya da `kap_eslesmesi_yok`.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "400": {
      "description": "Geçersiz parametre (`gecersiz_parametre`, `gecersiz_kategori`, `gecersiz_tarih`…) ya da bu uç deneme anahtarıyla kullanılamaz (`deneme_desteklenmiyor`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "503": {
      "description": "Resmî kaynak şu an erişilemiyor (`kaynak_erisilemiyor`, taraf kaynak). Deneme ortamında DENEME-KAYNAK-KAPALI.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/kap/"
   }
  },
  "/api/v1/raporlar/": {
   "get": {
    "operationId": "raporlar",
    "tags": [
     "raporlar"
    ],
    "summary": "Raporlar",
    "description": "Rapor Al raporlarınız (sayfalı). Liste hız için rapor içeriğini taşımaz; bulgular şirket profilinin `raporlar` alanında gelir.",
    "parameters": [
     {
      "name": "sayfa",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "default": 1
      },
      "description": "Sayfa numarası (1'den)."
     },
     {
      "name": "adet",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 200,
       "default": 50
      },
      "description": "Sayfa başına kayıt (varsayılan 50, en çok 200)."
     }
    ],
    "responses": {
     "200": {
      "description": "Raporlar.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/RaporListesi"
        }
       }
      }
     },
     "400": {
      "description": "Geçersiz parametre (`gecersiz_parametre`, `gecersiz_kategori`, `gecersiz_tarih`…) ya da bu uç deneme anahtarıyla kullanılamaz (`deneme_desteklenmiyor`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/raporlar/"
   }
  },
  "/api/v1/raporlar/{rapor_id}/{tur}/": {
   "get": {
    "operationId": "rapor-dosyasi",
    "tags": [
     "raporlar"
    ],
    "summary": "Rapor dosyası",
    "description": "Raporun dosyası: `rapor` (PDF), `sermaye` (PDF), `rapor-word` (DOCX), `sermaye-excel` (XLSX), `ek-excel` (XLSX).",
    "parameters": [
     {
      "name": "rapor_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Rapor kimliği.",
      "example": 1
     },
     {
      "name": "tur",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string",
       "enum": [
        "rapor",
        "sermaye",
        "rapor-word",
        "sermaye-excel",
        "ek-excel"
       ]
      },
      "description": "Dosya türü.",
      "example": "rapor"
     }
    ],
    "responses": {
     "200": {
      "description": "Dosya.",
      "content": {
       "application/pdf": {
        "schema": {
         "type": "string",
         "format": "binary"
        }
       },
       "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
        "schema": {
         "type": "string",
         "format": "binary"
        }
       },
       "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
        "schema": {
         "type": "string",
         "format": "binary"
        }
       }
      }
     },
     "404": {
      "description": "Bulunamadı ya da erişim yetkiniz yok (`bulunamadi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/rapor-dosyasi/"
   }
  },
  "/api/v1/yaptirim/tara/": {
   "post": {
    "operationId": "yaptirim-tara",
    "tags": [
     "yaptirim"
    ],
    "summary": "Yaptırım taraması",
    "description": "En çok 500 adı yaptırım listelerinde tarar. Eşleşme yalnız birebir addır: adın tüm parçaları aynı olmalı (sıra, aksan ve büyük/küçük harf farkı hariç). Sonuç olası isabettir; kimlik liste kaydıyla doğrulanmalıdır. Deneme anahtarıyla kullanılamaz (401). `benzer_yazim` geriye uyum için kabul edilir, eşleşmeyi genişletmez.",
    "parameters": [],
    "responses": {
     "200": {
      "description": "Tarama sonucu.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/YaptirimTaramasi"
        }
       }
      }
     },
     "400": {
      "description": "`gecersiz_json`.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/EskiHata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "405": {
      "description": "POST bekleniyor.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/EskiHata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": false,
    "x-ulawk-belge": "/gelistirici/api/yaptirim-tara/",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "adlar": {
          "type": "array",
          "description": "Ad ya da {ad, tur} (en çok 500).",
          "items": {
           "anyOf": [
            {
             "type": "string"
            },
            {
             "type": "object",
             "properties": {
              "ad": {
               "type": "string"
              },
              "tur": {
               "type": "string",
               "enum": [
                "kisi",
                "kurum"
               ]
              }
             },
             "required": [
              "ad"
             ],
             "additionalProperties": false
            }
           ]
          },
          "maxItems": 500
         },
         "benzer_yazim": {
          "type": "boolean",
          "description": "Geriye uyum; etkisi yok.",
          "default": true
         }
        },
        "required": [
         "adlar"
        ],
        "additionalProperties": false
       },
       "example": {
        "adlar": [
         "Ayşe Örnek",
         {
          "ad": "Örnek Deneme A.Ş.",
          "tur": "kurum"
         }
        ]
       }
      }
     }
    }
   }
  },
  "/api/v1/webhooklar/": {
   "get": {
    "operationId": "webhook-listesi",
    "tags": [
     "webhooklar"
    ],
    "summary": "Webhook'ları listele",
    "description": "Webhook'larınız (gizli anahtar hariç) ve geçerli kategoriler.",
    "parameters": [],
    "responses": {
     "200": {
      "description": "Webhook'lar.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/WebhookListesi"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/webhook-listesi/"
   },
   "post": {
    "operationId": "webhook-ekle",
    "tags": [
     "webhooklar"
    ],
    "summary": "Webhook ekle",
    "description": "Yeni değişiklik webhook'u. Yalnız `https`; özel ya da yerel ağa çözülen adresler reddedilir. En çok 5 adres. `kategoriler` boşsa tüm kategoriler. Yanıttaki `gizli` imza anahtarı yalnız bu yanıtta gösterilir. Yalnız API anahtarıyla (oturum çerezi kabul edilmez).",
    "parameters": [],
    "responses": {
     "201": {
      "description": "Webhook ve gizli anahtar.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/YeniWebhook"
        }
       }
      }
     },
     "400": {
      "description": "`gecersiz_json` ya da `gecersiz_webhook` (adres, kategori, sınır).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "403": {
      "description": "API anahtarı gerekli (`anahtar_gerekli`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/webhook-ekle/",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string",
          "description": "https adresi (en çok 500 karakter).",
          "format": "uri"
         },
         "kategoriler": {
          "type": "array",
          "description": "Abone olunan kategoriler.",
          "items": {
           "type": "string",
           "enum": [
            "durum",
            "adres",
            "ortaklik",
            "sermaye",
            "yetkililer",
            "unvan",
            "esas_sozlesme",
            "diger",
            "kapandi"
           ]
          }
         }
        },
        "required": [
         "url"
        ],
        "additionalProperties": false
       },
       "example": {
        "url": "https://sisteminiz.ornek.com/ulawk",
        "kategoriler": [
         "durum",
         "yetkililer"
        ]
       }
      }
     }
    }
   }
  },
  "/api/v1/webhooklar/{webhook_id}/": {
   "get": {
    "operationId": "webhook-ayrintisi",
    "tags": [
     "webhooklar"
    ],
    "summary": "Webhook ayrıntısı",
    "description": "Webhook ve son 20 teslim (durum, deneme sayısı, HTTP kodu).",
    "parameters": [
     {
      "name": "webhook_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Webhook kimliği.",
      "example": 1
     }
    ],
    "responses": {
     "200": {
      "description": "Webhook.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Webhook"
        }
       }
      }
     },
     "404": {
      "description": "Bulunamadı ya da erişim yetkiniz yok (`bulunamadi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/webhook-ayrintisi/"
   },
   "patch": {
    "operationId": "webhook-guncelle",
    "tags": [
     "webhooklar"
    ],
    "summary": "Webhook'u güncelle",
    "description": "`aktif` ve/veya `kategoriler`. Yeniden açmak art arda hata sayacını sıfırlar.",
    "parameters": [
     {
      "name": "webhook_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Webhook kimliği.",
      "example": 1
     }
    ],
    "responses": {
     "200": {
      "description": "Güncel webhook.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Webhook"
        }
       }
      }
     },
     "400": {
      "description": "`gecersiz_json` ya da `gecersiz_webhook`.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "403": {
      "description": "`anahtar_gerekli`.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "404": {
      "description": "Bulunamadı ya da erişim yetkiniz yok (`bulunamadi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/webhook-guncelle/",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "aktif": {
          "type": "boolean"
         },
         "kategoriler": {
          "type": "array",
          "items": {
           "type": "string",
           "enum": [
            "durum",
            "adres",
            "ortaklik",
            "sermaye",
            "yetkililer",
            "unvan",
            "esas_sozlesme",
            "diger",
            "kapandi"
           ]
          }
         }
        },
        "required": [],
        "additionalProperties": false
       },
       "example": {
        "aktif": true,
        "kategoriler": [
         "durum",
         "kapandi"
        ]
       }
      }
     }
    }
   },
   "delete": {
    "operationId": "webhook-sil",
    "tags": [
     "webhooklar"
    ],
    "summary": "Webhook'u sil",
    "description": "Webhook'u ve teslim günlüğünü siler.",
    "parameters": [
     {
      "name": "webhook_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Webhook kimliği.",
      "example": 1
     }
    ],
    "responses": {
     "200": {
      "description": "Silindi.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/WebhookSilindi"
        }
       }
      }
     },
     "403": {
      "description": "`anahtar_gerekli`.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "404": {
      "description": "Bulunamadı ya da erişim yetkiniz yok (`bulunamadi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/webhook-sil/"
   }
  },
  "/api/v1/webhooklar/{webhook_id}/test/": {
   "post": {
    "operationId": "webhook-test",
    "tags": [
     "webhooklar"
    ],
    "summary": "Test bildirimi gönder",
    "description": "Uydurma DENEME şirketiyle tek test bildirimi gönderir (gövdede `\"test\": true`) ve sonucu hemen döndürür; yeniden denenmez. Adresiniz 2xx dönmezse 502 `webhook_teslim_hatasi`.",
    "parameters": [
     {
      "name": "webhook_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Webhook kimliği.",
      "example": 1
     }
    ],
    "responses": {
     "200": {
      "description": "Teslim edildi.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/WebhookTestSonucu"
        }
       }
      }
     },
     "403": {
      "description": "`anahtar_gerekli`.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "404": {
      "description": "Bulunamadı ya da erişim yetkiniz yok (`bulunamadi`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "502": {
      "description": "Adresiniz 2xx dönmedi; `teslim` ayrıntıyı taşır.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "401": {
      "description": "Anahtar yok ya da geçersiz (`yetkisiz`).",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "429": {
      "description": "Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     },
     "500": {
      "description": "Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Hata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/webhook-test/"
   }
  },
  "/api/katalog/": {
   "get": {
    "operationId": "katalog",
    "tags": [
     "acik"
    ],
    "summary": "Kapsam kataloğu",
    "description": "Ülke ülke kapsam: kimlikler, veri noktaları, belgeler, yenileme ve yanıt süresi. Anahtarsız, salt okunur, önbellekli (Cache-Control). Yalnız müşteriye açık ülkeler.",
    "parameters": [
     {
      "name": "dil",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "enum": [
        "tr",
        "en"
       ],
       "default": "tr"
      },
      "description": "Metinlerin dili."
     }
    ],
    "responses": {
     "200": {
      "description": "Katalog.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Katalog"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/katalog/",
    "security": []
   }
  },
  "/api/katalog/{kod}/": {
   "get": {
    "operationId": "katalog-ulke",
    "tags": [
     "acik"
    ],
    "summary": "Tek ülkenin kapsamı",
    "description": "Tek ülkenin katalog kaydı. Bilinmeyen ya da henüz açılmamış ülke 404.",
    "parameters": [
     {
      "name": "kod",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string",
       "pattern": "^[A-Za-z]{2}$"
      },
      "description": "ISO 3166-1 alfa-2 ülke kodu.",
      "example": "TR"
     },
     {
      "name": "dil",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "enum": [
        "tr",
        "en"
       ],
       "default": "tr"
      },
      "description": "Metinlerin dili."
     }
    ],
    "responses": {
     "200": {
      "description": "Ülke kaydı.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/KatalogUlke"
        }
       }
      }
     },
     "404": {
      "description": "Ülke bulunamadı.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/BasitHata"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/katalog-ulke/",
    "security": []
   }
  },
  "/durum.json": {
   "get": {
    "operationId": "hizmet-durumu",
    "tags": [
     "acik"
    ],
    "summary": "Hizmet durumu",
    "description": "Ulawk ve kaynakların gün gün durumu (yalnız tarih). Anahtarsız, önbellekli. Sayfa hali /durum/.",
    "parameters": [
     {
      "name": "dil",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "enum": [
        "tr",
        "en"
       ],
       "default": "tr"
      },
      "description": "Metinlerin dili."
     },
     {
      "name": "gun",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "enum": [
        30,
        60,
        90
       ],
       "default": 90
      },
      "description": "Kaç günlük geçmiş."
     }
    ],
    "responses": {
     "200": {
      "description": "Durum.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HizmetDurumu"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": true,
    "x-ulawk-belge": "/gelistirici/api/hizmet-durumu/",
    "security": []
   }
  },
  "/api/v1/companies": {
   "get": {
    "operationId": "eski-sirketler",
    "tags": [
     "eski"
    ],
    "summary": "Eski şirket listesi",
    "description": "İlk sürümden kalan uç; çalışmayı sürdürür. Yeni entegrasyonlarda `/api/v1/sirketler/` kullanın. Deneme anahtarını tanımaz.",
    "parameters": [],
    "responses": {
     "200": {
      "description": "Şirketler.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/EskiSirketListesi"
        }
       }
      }
     },
     "401": {
      "description": "Yetkisiz.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/EskiHataEn"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": false,
    "x-ulawk-belge": "/gelistirici/api/eski-sirketler/",
    "deprecated": true
   }
  },
  "/api/v1/company/{group_id}/profile": {
   "get": {
    "operationId": "eski-profil",
    "tags": [
     "eski"
    ],
    "summary": "Eski profil",
    "description": "İlk sürümden kalan profil ucu; çalışmayı sürdürür. Yeni entegrasyonlarda `/api/v1/sirketler/{sirket_id}/` kullanın: kaynak izi ve `veri_durumu` yalnız orada.",
    "parameters": [
     {
      "name": "group_id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Şirket kimliği.",
      "example": 1
     }
    ],
    "responses": {
     "200": {
      "description": "Profil.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/EskiProfil"
        }
       }
      }
     },
     "401": {
      "description": "Yetkisiz.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/EskiHataEn"
        }
       }
      }
     },
     "404": {
      "description": "Bulunamadı ya da profil hazır değil.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/EskiHataEn"
        }
       }
      }
     }
    },
    "x-ulawk-deneme": false,
    "x-ulawk-belge": "/gelistirici/api/eski-profil/",
    "deprecated": true
   }
  }
 },
 "webhooks": {
  "sirket.degisiklik": {
   "post": {
    "operationId": "webhook-sirket-degisiklik",
    "summary": "Değişiklik bildirimi",
    "description": "Takip edilen şirkette abone olunan kategoride değişiklik olunca, şirket başına tek istek. Başlıklar: X-Ulawk-Imza (t=…,v1=…), X-Ulawk-Teslim, X-Ulawk-Olay.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/WebhookYuku"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "2xx ile hızlıca yanıt verin; işi sonra yapın."
     }
    }
   }
  }
 },
 "components": {
  "schemas": {
   "HataAyrinti": {
    "type": "object",
    "properties": {
     "kod": {
      "type": "string",
      "description": "Makine okunur hata kodu (`hata` ile aynı)."
     },
     "mesaj": {
      "type": "string",
      "description": "İnsan okunur açıklama (`detay` ile aynı)."
     },
     "taraf": {
      "type": "string",
      "description": "Hatanın kimde olduğu: istemci (istek, anahtar, paket), ulawk (bizim taraf), kaynak (resmî kaynak şu an erişilemiyor).",
      "enum": [
       "istemci",
       "ulawk",
       "kaynak"
      ]
     },
     "kaynak": {
      "type": [
       "string",
       "null"
      ],
      "description": "Kaynak kaynaklı hatada hangi kaynak; değilse null.",
      "enum": [
       "ttsg",
       "kap",
       "yurt_disi_sicil",
       null
      ]
     },
     "tekrar_denenebilir": {
      "type": "boolean",
      "description": "Aynı istek daha sonra yeniden denenebilir mi."
     },
     "tekrar_sn": {
      "type": [
       "integer",
       "null"
      ],
      "description": "Önerilen bekleme (saniye). Doluysa Retry-After başlığı da gelir."
     }
    },
    "required": [
     "kod",
     "mesaj",
     "taraf",
     "kaynak",
     "tekrar_denenebilir",
     "tekrar_sn"
    ],
    "additionalProperties": false
   },
   "Hata": {
    "type": "object",
    "properties": {
     "hata": {
      "type": "string",
      "description": "Hata kodu (eski istemciler için; değişmez)."
     },
     "detay": {
      "type": "string",
      "description": "Açıklama."
     },
     "hata_ayrinti": {
      "$ref": "#/components/schemas/HataAyrinti"
     },
     "gecerli_kategoriler": {
      "type": "array",
      "description": "Yalnız `gecersiz_kategori` hatasında.",
      "items": {
       "type": "string",
       "enum": [
        "durum",
        "adres",
        "ortaklik",
        "sermaye",
        "yetkililer",
        "unvan",
        "esas_sozlesme",
        "diger",
        "kapandi"
       ]
      }
     },
     "teslim": {
      "$ref": "#/components/schemas/Teslim"
     },
     "muhur": {
      "type": "string",
      "description": "Yalnız `veri_eksik` (409): raporun mührü.",
      "enum": [
       "DOGRULANDI",
       "KISMI",
       "DOGRULANMADI"
      ]
     },
     "bekleyen_bolumler": {
      "type": "array",
      "description": "Yalnız `veri_eksik`: kısmi ya da hazırlanan bölümler.",
      "items": {
       "type": "string"
      }
     },
     "rapor_kimligi": {
      "type": "string",
      "description": "Yalnız `veri_eksik`: o anki içeriğin rapor kimliği."
     }
    },
    "required": [
     "hata",
     "detay",
     "hata_ayrinti"
    ],
    "additionalProperties": false,
    "description": "Tek hata gövdesi: `hata` + `detay` (geriye uyum) ve yapılandırılmış `hata_ayrinti`."
   },
   "EskiHata": {
    "type": "object",
    "properties": {
     "hata": {
      "type": "string"
     },
     "detay": {
      "type": "string"
     }
    },
    "required": [
     "hata"
    ],
    "additionalProperties": false,
    "description": "Yaptırım taramasının hata gövdesi (`hata_ayrinti` taşımaz)."
   },
   "SirketOzet": {
    "type": "object",
    "properties": {
     "id": {
      "type": [
       "integer",
       "string"
      ],
      "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
     },
     "unvan": {
      "type": [
       "string",
       "null"
      ],
      "description": "Ticaret unvanı."
     },
     "mudurluk": {
      "type": [
       "string",
       "null"
      ],
      "description": "Sicil müdürlüğü (ör. İSTANBUL)."
     },
     "sicil_no": {
      "type": [
       "string",
       "null"
      ],
      "description": "Ticaret sicil numarası."
     }
    },
    "required": [
     "id",
     "unvan",
     "mudurluk",
     "sicil_no"
    ],
    "additionalProperties": false
   },
   "Vurgu": {
    "type": "object",
    "properties": {
     "sayfa": {
      "type": "integer",
      "description": "Gazete sayfası (1'den)."
     },
     "sayfa_gorsel": {
      "type": "string",
      "description": "Sayfanın PNG görseli.",
      "format": "uri"
     },
     "kutular": {
      "type": "array",
      "description": "Bilginin sayfadaki yeri: oransal [x0, y0, x1, y1] kutuları (0–1, sol üst köşe).",
      "items": {
       "type": "array",
       "items": {
        "type": "number"
       },
       "minItems": 4,
       "maxItems": 4
      }
     },
     "kutu_birimi": {
      "type": "string",
      "description": "Kutu biriminin açıklaması."
     }
    },
    "required": [
     "sayfa",
     "sayfa_gorsel",
     "kutular",
     "kutu_birimi"
    ],
    "additionalProperties": false
   },
   "Kaynak": {
    "type": "object",
    "properties": {
     "ilan_id": {
      "type": "integer",
      "description": "Bilginin geçtiği ilan."
     },
     "ilan_tarihi": {
      "type": "string",
      "description": "İlanın yayım tarihi.",
      "format": "date"
     },
     "ilan_turu": {
      "type": "string",
      "description": "Ticaret Sicili Gazetesi ilan türü."
     },
     "alinti": {
      "type": "string",
      "description": "İlan metninden birebir alıntı."
     },
     "alinti_dogrulandi": {
      "type": "boolean",
      "description": "Alıntı ilan metninde birebir bulundu mu."
     },
     "gazete_pdf": {
      "type": "string",
      "description": "Gazete PDF'i.",
      "format": "uri"
     },
     "vurgu": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/Vurgu"
       },
       {
        "type": "null"
       }
      ]
     }
    },
    "required": [
     "ilan_id",
     "ilan_tarihi",
     "ilan_turu",
     "alinti",
     "alinti_dogrulandi",
     "gazete_pdf",
     "vurgu"
    ],
    "additionalProperties": false,
    "description": "Kaynak izi: bilginin dayandığı ilan, birebir alıntı ve gazete bağlantısı."
   },
   "HukukiBicim": {
    "type": "object",
    "properties": {
     "kod": {
      "type": "string",
      "description": "Standart biçim kodu (ör. TR_AS)."
     },
     "yerel_ad": {
      "type": "string"
     },
     "kisaltma": {
      "type": "string"
     },
     "en_ad": {
      "type": "string"
     },
     "standart_kategori": {
      "description": "Biçimin genel sınıfı."
     },
     "iso20275": {
      "type": [
       "string",
       "null"
      ],
      "description": "ISO 20275 (ELF) kodu, doğrulanmışsa."
     },
     "iso20275_liste": {
      "type": [
       "string",
       "null"
      ]
     },
     "ulke": {
      "type": [
       "string",
       "null"
      ]
     },
     "ana_bicim": {
      "type": [
       "object",
       "null"
      ]
     },
     "girdi": {
      "type": "string"
     }
    },
    "required": [
     "kod"
    ],
    "additionalProperties": true,
    "description": "Unvandan ve ilan türünden sabit kurallarla eşlenen hukuki biçim."
   },
   "Rol": {
    "type": "object",
    "properties": {
     "kod": {
      "type": "string"
     },
     "ad": {
      "type": "string"
     },
     "en_ad": {
      "type": "string"
     },
     "organ": {
      "type": [
       "string",
       "null"
      ]
     },
     "temsil_organi": {
      "type": [
       "boolean",
       "null"
      ]
     },
     "kesin": {
      "type": "boolean"
     },
     "roller": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "imza_derecesi": {
      "type": [
       "string",
       "null"
      ]
     },
     "iso5009": {
      "type": [
       "string",
       "null"
      ]
     },
     "iso5009_liste": {
      "type": [
       "string",
       "null"
      ]
     },
     "yerel_ad": {
      "type": "string"
     }
    },
    "required": [
     "kod"
    ],
    "additionalProperties": true,
    "description": "İlandaki sıfattan standart görev."
   },
   "Kimlik": {
    "type": "object",
    "properties": {
     "unvan": {
      "type": [
       "string",
       "null"
      ]
     },
     "tur": {
      "type": [
       "string",
       "null"
      ],
      "description": "Şirket türü (ör. Anonim Şirket)."
     },
     "merkez": {
      "type": [
       "string",
       "null"
      ],
      "description": "Merkez adresi."
     },
     "kurulus_tarihi": {
      "type": [
       "string",
       "null"
      ],
      "description": "Kuruluş tarihi (YYYY-AA-GG; kuruluş ilanı yoksa \"… veya öncesi\")."
     },
     "sermaye": {
      "type": [
       "string",
       "null"
      ]
     },
     "durum": {
      "type": [
       "string",
       "null"
      ],
      "description": "İlanlardaki durum (Faal, Tasfiye halinde…)."
     },
     "durum_aciklama": {
      "type": [
       "string",
       "null"
      ]
     },
     "kurulus_supheli": {
      "type": "boolean",
      "description": "Kuruluş ilanı bulunamadı; tarih en eski ilandan."
     },
     "kurulus_kaynak": {
      "type": [
       "object",
       "null"
      ]
     },
     "hukuki_bicim_standart": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/HukukiBicim"
       },
       {
        "type": "null"
       }
      ]
     },
     "kaynak": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/Kaynak"
       },
       {
        "type": "null"
       }
      ]
     }
    },
    "required": [
     "kaynak"
    ],
    "additionalProperties": true,
    "description": "Kimlik bölümü. Profil alanları eklemeli olarak genişleyebilir."
   },
   "Yetkili": {
    "type": "object",
    "properties": {
     "isim": {
      "type": [
       "string",
       "null"
      ]
     },
     "sifat": {
      "type": [
       "string",
       "null"
      ],
      "description": "İlandaki görev (ör. Yönetim Kurulu Başkanı)."
     },
     "temsil": {
      "type": [
       "string",
       "null"
      ],
      "description": "Temsil şekli (Münferit, Müşterek…)."
     },
     "baslangic": {
      "type": [
       "string",
       "null"
      ],
      "description": "Göreve başlama.",
      "format": "date"
     },
     "bitis": {
      "type": [
       "string",
       "null"
      ],
      "description": "Görev sonu; görevdeyse null.",
      "format": "date"
     },
     "bitis_nedeni": {
      "type": [
       "string",
       "null"
      ]
     },
     "gorev_bitis": {
      "type": [
       "string",
       "null"
      ],
      "description": "Öngörülen görev sonu (seçim süresinden)."
     },
     "gorev_suresi": {
      "type": [
       "string",
       "null"
      ]
     },
     "gorev_dayanak": {
      "type": [
       "string",
       "null"
      ],
      "description": "Görev sonunun dayanağı (ilan ya da kanun maddesi)."
     },
     "kaynak": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/Kaynak"
       },
       {
        "type": "null"
       }
      ]
     },
     "bitis_kaynak": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/Kaynak"
       },
       {
        "type": "null"
       }
      ]
     },
     "gorevde": {
      "type": "boolean",
      "description": "Bugün görevde mi."
     },
     "rol_standart": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/Rol"
       },
       {
        "type": "null"
       }
      ]
     }
    },
    "required": [
     "isim",
     "sifat",
     "temsil",
     "baslangic",
     "bitis",
     "bitis_nedeni",
     "gorev_bitis",
     "gorev_suresi",
     "gorev_dayanak",
     "kaynak",
     "bitis_kaynak",
     "gorevde"
    ],
    "additionalProperties": false
   },
   "SermayeKaydi": {
    "type": "object",
    "properties": {
     "tarih": {
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "islem": {
      "type": [
       "string",
       "null"
      ]
     },
     "onceki": {
      "type": [
       "string",
       "null"
      ]
     },
     "yeni": {
      "type": [
       "string",
       "null"
      ]
     },
     "kaynak": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/Kaynak"
       },
       {
        "type": "null"
       }
      ]
     }
    },
    "required": [
     "tarih",
     "islem",
     "onceki",
     "yeni",
     "kaynak"
    ],
    "additionalProperties": false
   },
   "OrtaklikKaydi": {
    "type": "object",
    "properties": {
     "tarih": {
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "isim": {
      "type": [
       "string",
       "null"
      ]
     },
     "pay_tutari": {
      "type": [
       "string",
       "null"
      ]
     },
     "pay_orani": {
      "type": [
       "string",
       "null"
      ]
     },
     "kaynak": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/Kaynak"
       },
       {
        "type": "null"
       }
      ]
     }
    },
    "required": [
     "tarih",
     "isim",
     "pay_tutari",
     "pay_orani",
     "kaynak"
    ],
    "additionalProperties": false
   },
   "UnvanAdresKaydi": {
    "type": "object",
    "properties": {
     "tarih": {
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "tur": {
      "type": [
       "string",
       "null"
      ],
      "description": "unvan ya da adres"
     },
     "deger": {
      "type": [
       "string",
       "null"
      ]
     },
     "kaynak": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/Kaynak"
       },
       {
        "type": "null"
       }
      ]
     }
    },
    "required": [
     "tarih",
     "tur",
     "deger",
     "kaynak"
    ],
    "additionalProperties": false
   },
   "EsasSozlesmeMaddesi": {
    "type": "object",
    "properties": {
     "madde": {
      "type": [
       "string",
       "null"
      ]
     },
     "baslik": {
      "type": [
       "string",
       "null"
      ]
     },
     "hukum": {
      "type": [
       "string",
       "null"
      ],
      "description": "Maddenin güncel hükmünün yapay zekâ özeti; birebir metin için kaynağa bakın."
     },
     "son_degisiklik": {
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "kaynak": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/Kaynak"
       },
       {
        "type": "null"
       }
      ]
     }
    },
    "required": [
     "madde",
     "baslik",
     "hukum",
     "son_degisiklik",
     "kaynak"
    ],
    "additionalProperties": false
   },
   "Degisiklik": {
    "type": "object",
    "properties": {
     "tur": {
      "type": "string",
      "description": "Değişiklik türü.",
      "enum": [
       "yetkili-atama",
       "yetkili-ayrilma",
       "sermaye",
       "ortaklik",
       "unvan-adres",
       "esas-sozlesme",
       "durum"
      ]
     },
     "tarih": {
      "type": [
       "string",
       "null"
      ],
      "description": "Değişikliğin tarihi.",
      "format": "date"
     },
     "ozet": {
      "type": "string",
      "description": "Tek satırlık özet."
     },
     "kaynak": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/Kaynak"
       },
       {
        "type": "null"
       }
      ]
     },
     "gazete_pdf": {
      "type": [
       "string",
       "null"
      ],
      "description": "Kaynak gazetenin PDF'i.",
      "format": "uri"
     },
     "kategori": {
      "type": "string",
      "description": "Sabit değişiklik kategorisi.",
      "enum": [
       "durum",
       "adres",
       "ortaklik",
       "sermaye",
       "yetkililer",
       "unvan",
       "esas_sozlesme",
       "diger",
       "kapandi"
      ]
     },
     "isim": {
      "type": [
       "string",
       "null"
      ]
     },
     "sifat": {
      "type": [
       "string",
       "null"
      ]
     },
     "onceki": {
      "type": [
       "string",
       "null"
      ]
     },
     "yeni": {
      "type": [
       "string",
       "null"
      ]
     },
     "pay_tutari": {
      "type": [
       "string",
       "null"
      ]
     },
     "pay_orani": {
      "type": [
       "string",
       "null"
      ]
     },
     "alan": {
      "type": [
       "string",
       "null"
      ]
     },
     "deger": {
      "type": [
       "string",
       "null"
      ]
     },
     "madde": {
      "type": [
       "string",
       "null"
      ]
     },
     "baslik": {
      "type": [
       "string",
       "null"
      ]
     },
     "aciklama": {
      "type": [
       "string",
       "null"
      ]
     }
    },
    "required": [
     "tur",
     "tarih",
     "ozet",
     "kaynak",
     "gazete_pdf",
     "kategori"
    ],
    "additionalProperties": false,
    "description": "Türüne göre ek alanlar: yetkili (isim, sifat), sermaye (onceki, yeni), ortaklik (isim, pay_tutari, pay_orani), unvan-adres (alan, deger), esas-sozlesme (madde, baslik), durum (aciklama)."
   },
   "SonGazete": {
    "type": "object",
    "properties": {
     "ilan_id": {
      "type": "integer"
     },
     "tarih": {
      "type": "string",
      "format": "date"
     },
     "tur": {
      "type": "string"
     },
     "gazete_pdf": {
      "type": [
       "string",
       "null"
      ],
      "format": "uri"
     },
     "gazete_arsivde": {
      "type": "boolean"
     }
    },
    "required": [
     "ilan_id",
     "tarih",
     "tur",
     "gazete_pdf",
     "gazete_arsivde"
    ],
    "additionalProperties": false
   },
   "Ilan": {
    "type": "object",
    "properties": {
     "ilan_id": {
      "type": "integer"
     },
     "tarih": {
      "type": "string",
      "format": "date"
     },
     "tur": {
      "type": "string",
      "description": "İlan türü."
     },
     "kategori": {
      "type": "string",
      "description": "İlan türü kategorisi (eski süzgeç `kategori=`).",
      "enum": [
       "kurulus",
       "konkordato",
       "birlesme",
       "sermaye",
       "ortaklik",
       "yonetim",
       "unvan_adres",
       "genel_kurul",
       "esas",
       "diger"
      ]
     },
     "kategori_ad": {
      "type": "string"
     },
     "sicil_no": {
      "type": [
       "string",
       "null"
      ]
     },
     "sayi": {
      "type": [
       "string",
       "null"
      ],
      "description": "Gazete sayısı."
     },
     "sayfa": {
      "type": [
       "string",
       "null"
      ],
      "description": "Gazete sayfası."
     },
     "baslik": {
      "type": [
       "string",
       "null"
      ],
      "description": "Sade dilde başlık."
     },
     "aciklama": {
      "type": [
       "string",
       "null"
      ]
     },
     "kaynak": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/Kaynak"
       },
       {
        "type": "null"
       }
      ]
     },
     "gazete_pdf": {
      "type": [
       "string",
       "null"
      ],
      "description": "Arşivdeyse gazete PDF'i.",
      "format": "uri"
     },
     "gazete_arsivde": {
      "type": "boolean"
     },
     "degisiklik_kategorisi": {
      "type": "string",
      "enum": [
       "durum",
       "adres",
       "ortaklik",
       "sermaye",
       "yetkililer",
       "unvan",
       "esas_sozlesme",
       "diger",
       "kapandi"
      ]
     }
    },
    "required": [
     "ilan_id",
     "tarih",
     "tur",
     "kategori",
     "kategori_ad",
     "sicil_no",
     "sayi",
     "sayfa",
     "baslik",
     "aciklama",
     "kaynak",
     "gazete_pdf",
     "gazete_arsivde",
     "degisiklik_kategorisi"
    ],
    "additionalProperties": false
   },
   "RaporOzeti": {
    "type": "object",
    "properties": {
     "rapor_id": {
      "type": "integer"
     },
     "durum": {
      "type": "string",
      "enum": [
       "hazir",
       "hata",
       "hazirlaniyor"
      ]
     },
     "talep": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "tamamlanma": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "dosyalar": {
      "type": "object",
      "description": "Tür → indirme adresi (rapor, sermaye, rapor-word, sermaye-excel, ek-excel).",
      "additionalProperties": {
       "type": "string",
       "format": "uri"
      }
     },
     "bulgular": {
      "type": [
       "object",
       "null"
      ],
      "additionalProperties": true,
      "description": "Raporun bulguları (yalnız tek şirket profilinde)."
     }
    },
    "required": [
     "rapor_id",
     "durum",
     "talep",
     "tamamlanma",
     "dosyalar",
     "bulgular"
    ],
    "additionalProperties": false
   },
   "VeriDurumuBolum": {
    "type": "object",
    "properties": {
     "durum": {
      "type": "string",
      "description": "tam · kismi · yok (baktık, bulunamadı) · hazirlaniyor · yayimlanmiyor (kaynak yayımlamaz).",
      "enum": [
       "tam",
       "kismi",
       "yok",
       "hazirlaniyor",
       "yayimlanmiyor"
      ]
     },
     "yontem": {
      "type": [
       "string",
       "null"
      ],
      "description": "ilandan · ilandan_kuruldu · turetilmis · yapay_zeka",
      "enum": [
       "ilandan",
       "ilandan_kuruldu",
       "turetilmis",
       "yapay_zeka",
       null
      ]
     },
     "sinirlar": {
      "type": "array",
      "description": "İnsan okunur sınırlar.",
      "items": {
       "type": "string"
      }
     },
     "dayanak_ilan_sayisi": {
      "type": [
       "integer",
       "null"
      ],
      "description": "Dayanılan farklı ilan sayısı."
     }
    },
    "required": [
     "durum",
     "yontem",
     "sinirlar",
     "dayanak_ilan_sayisi"
    ],
    "additionalProperties": false
   },
   "VeriDurumu": {
    "type": "object",
    "properties": {
     "kimlik": {
      "$ref": "#/components/schemas/VeriDurumuBolum"
     },
     "yetkililer": {
      "$ref": "#/components/schemas/VeriDurumuBolum"
     },
     "sermaye": {
      "$ref": "#/components/schemas/VeriDurumuBolum"
     },
     "ortaklik": {
      "$ref": "#/components/schemas/VeriDurumuBolum"
     },
     "unvan_adres": {
      "$ref": "#/components/schemas/VeriDurumuBolum"
     },
     "esas_sozlesme": {
      "$ref": "#/components/schemas/VeriDurumuBolum"
     },
     "ozet": {
      "$ref": "#/components/schemas/VeriDurumuBolum"
     },
     "ilanlar": {
      "$ref": "#/components/schemas/VeriDurumuBolum"
     },
     "raporlar": {
      "$ref": "#/components/schemas/VeriDurumuBolum"
     },
     "gercek_faydalanicilar": {
      "$ref": "#/components/schemas/VeriDurumuBolum"
     },
     "durum": {
      "$ref": "#/components/schemas/VeriDurumuBolum"
     },
     "uyum_sinyalleri": {
      "$ref": "#/components/schemas/VeriDurumuBolum"
     },
     "hukuki_bicim": {
      "$ref": "#/components/schemas/VeriDurumuBolum"
     }
    },
    "required": [
     "kimlik",
     "yetkililer",
     "sermaye",
     "ortaklik",
     "unvan_adres",
     "esas_sozlesme",
     "ilanlar",
     "gercek_faydalanicilar"
    ],
    "additionalProperties": {
     "$ref": "#/components/schemas/VeriDurumuBolum"
    },
    "description": "Bölüm başına tamlık, yöntem ve sınırlar. Yeni bölümler eklemeli gelir."
   },
   "StandartDurum": {
    "type": "object",
    "properties": {
     "kod": {
      "type": "string"
     },
     "ad": {
      "type": "string"
     },
     "ad_en": {
      "type": "string"
     },
     "uluslararasi": {
      "type": [
       "string",
       "null"
      ]
     },
     "renk": {
      "type": [
       "string",
       "null"
      ]
     },
     "tuzel_kisilik_suruyor": {
      "type": [
       "boolean",
       "null"
      ]
     },
     "yerel_durum": {
      "type": [
       "string",
       "null"
      ]
     },
     "kapanis_nedeni": {
      "type": [
       "object",
       "null"
      ]
     },
     "baslangic": {
      "type": [
       "string",
       "null"
      ]
     },
     "kapanis_tarihi": {
      "type": [
       "string",
       "null"
      ]
     },
     "kaynak": {
      "type": [
       "object",
       "null"
      ]
     },
     "dayanak": {
      "type": [
       "string",
       "null"
      ]
     },
     "aciklama": {
      "type": [
       "string",
       "null"
      ]
     },
     "aciklama_en": {
      "type": [
       "string",
       "null"
      ]
     },
     "gecmis": {
      "type": "array",
      "items": {
       "type": "object"
      }
     }
    },
    "required": [
     "kod"
    ],
    "additionalProperties": true,
    "description": "İlanlardaki durum ifadelerinden sabit kurallarla standartlaştırılmış durum."
   },
   "UyumSinyali": {
    "type": "object",
    "properties": {
     "tur": {
      "type": "string"
     },
     "ad": {
      "type": "string"
     },
     "ad_en": {
      "type": "string"
     },
     "aktif": {
      "type": [
       "boolean",
       "null"
      ]
     },
     "aciklama": {
      "type": "string"
     },
     "aciklama_en": {
      "type": "string"
     },
     "kaynak": {
      "type": [
       "object",
       "null"
      ]
     },
     "tarih": {
      "type": [
       "string",
       "null"
      ]
     },
     "tarih_tr": {
      "type": [
       "string",
       "null"
      ]
     },
     "dayanak": {
      "type": [
       "string",
       "null"
      ]
     }
    },
    "required": [
     "tur",
     "aktif"
    ],
    "additionalProperties": true
   },
   "Profil": {
    "type": "object",
    "properties": {
     "sirket": {
      "$ref": "#/components/schemas/SirketOzet"
     },
     "tum_gazeteler_zip": {
      "type": "string",
      "description": "Tüm gazete PDF'leri (ZIP).",
      "format": "uri"
     },
     "profil_hazir": {
      "type": "boolean",
      "description": "Profil üretildi mi. false iken profil bölümleri null döner."
     },
     "guncelleme": {
      "type": [
       "string",
       "null"
      ],
      "description": "Profilin üretim zamanı.",
      "format": "date-time"
     },
     "ozet": {
      "type": [
       "string",
       "null"
      ],
      "description": "Yapay zekâ ile yazılmış tarafsız özet."
     },
     "kimlik": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/Kimlik"
       },
       {
        "type": "null"
       }
      ]
     },
     "yetkililer": {
      "type": [
       "array",
       "null"
      ],
      "items": {
       "$ref": "#/components/schemas/Yetkili"
      }
     },
     "sermaye": {
      "type": [
       "array",
       "null"
      ],
      "items": {
       "$ref": "#/components/schemas/SermayeKaydi"
      }
     },
     "ortaklik": {
      "type": [
       "array",
       "null"
      ],
      "items": {
       "$ref": "#/components/schemas/OrtaklikKaydi"
      }
     },
     "unvan_adres": {
      "type": [
       "array",
       "null"
      ],
      "items": {
       "$ref": "#/components/schemas/UnvanAdresKaydi"
      }
     },
     "esas_sozlesme": {
      "type": [
       "array",
       "null"
      ],
      "items": {
       "$ref": "#/components/schemas/EsasSozlesmeMaddesi"
      }
     },
     "degisiklikler": {
      "type": [
       "array",
       "null"
      ],
      "description": "Tüm değişiklikler tek kronolojik akışta (yeniden eskiye).",
      "items": {
       "$ref": "#/components/schemas/Degisiklik"
      }
     },
     "son_gazete": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/SonGazete"
       },
       {
        "type": "null"
       }
      ]
     },
     "ilanlar": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Ilan"
      }
     },
     "raporlar": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/RaporOzeti"
      }
     },
     "aciklama_degisiklikler": {
      "type": "string"
     },
     "aciklama": {
      "type": "string"
     },
     "aciklama_veri_durumu": {
      "type": "string"
     },
     "veri_durumu": {
      "$ref": "#/components/schemas/VeriDurumu"
     },
     "gercek_faydalanicilar": {
      "type": "string",
      "description": "Türkiye'de gerçek faydalanıcı bilgisi herkese açık bir sicilde yayımlanmaz; profilde ilanlardaki pay dağılımından hesaplanır.",
      "enum": [
       "yayimlanmiyor"
      ]
     },
     "durum": {
      "$ref": "#/components/schemas/StandartDurum"
     },
     "uyum_sinyalleri": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/UyumSinyali"
      }
     }
    },
    "required": [
     "sirket",
     "tum_gazeteler_zip",
     "profil_hazir",
     "guncelleme",
     "ozet",
     "kimlik",
     "yetkililer",
     "sermaye",
     "ortaklik",
     "unvan_adres",
     "esas_sozlesme",
     "degisiklikler",
     "son_gazete",
     "ilanlar",
     "raporlar",
     "aciklama_degisiklikler",
     "aciklama",
     "veri_durumu",
     "gercek_faydalanicilar",
     "aciklama_veri_durumu"
    ],
    "additionalProperties": false
   },
   "SirketSatiri": {
    "type": "object",
    "properties": {
     "id": {
      "type": [
       "integer",
       "string"
      ],
      "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
     },
     "unvan": {
      "type": [
       "string",
       "null"
      ]
     },
     "mudurluk": {
      "type": [
       "string",
       "null"
      ]
     },
     "sicil_no": {
      "type": [
       "string",
       "null"
      ]
     },
     "ilan_sayisi": {
      "type": "integer"
     },
     "profil": {
      "type": "string",
      "format": "uri"
     }
    },
    "required": [
     "id",
     "unvan",
     "mudurluk",
     "sicil_no",
     "ilan_sayisi",
     "profil"
    ],
    "additionalProperties": false
   },
   "SirketListesi": {
    "type": "object",
    "properties": {
     "adet": {
      "type": "integer",
      "description": "Toplam kayıt."
     },
     "sayfa": {
      "type": "integer"
     },
     "sayfa_adedi": {
      "type": "integer",
      "description": "Sayfa başına kayıt."
     },
     "sonraki_sayfa": {
      "type": [
       "integer",
       "null"
      ],
      "description": "Sonraki sayfa; son sayfada null."
     },
     "sirketler": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/SirketSatiri"
      }
     }
    },
    "required": [
     "adet",
     "sayfa",
     "sayfa_adedi",
     "sonraki_sayfa",
     "sirketler"
    ],
    "additionalProperties": false
   },
   "EklemeSonucu": {
    "type": "object",
    "properties": {
     "durum": {
      "type": "string",
      "description": "eklendi (201) ya da zaten_var (200, paket hakkı harcanmaz).",
      "enum": [
       "eklendi",
       "zaten_var"
      ]
     },
     "sirket_id": {
      "type": [
       "integer",
       "string"
      ],
      "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
     },
     "kayit_id": {
      "type": [
       "integer",
       "null"
      ]
     },
     "unvan": {
      "type": [
       "string",
       "null"
      ]
     },
     "mudurluk": {
      "type": "string"
     },
     "sicil_no": {
      "type": "string"
     },
     "aciklama": {
      "type": "string"
     },
     "profil": {
      "type": "string",
      "format": "uri"
     },
     "durum_adresi": {
      "type": "string",
      "description": "Hazırlık durumunu izleme adresi.",
      "format": "uri"
     }
    },
    "required": [
     "durum",
     "sirket_id",
     "kayit_id",
     "mudurluk",
     "sicil_no",
     "profil",
     "durum_adresi"
    ],
    "additionalProperties": false
   },
   "HazirlikDurumu": {
    "type": "object",
    "properties": {
     "sirket": {
      "$ref": "#/components/schemas/SirketOzet"
     },
     "asama": {
      "type": "string",
      "description": "ilanlar-cekiliyor → gazeteler-indiriliyor → profil-hazirlaniyor → hazir; şubede sube.",
      "enum": [
       "ilanlar-cekiliyor",
       "gazeteler-indiriliyor",
       "profil-hazirlaniyor",
       "hazir",
       "sube"
      ]
     },
     "asama_adi": {
      "type": "string"
     },
     "yuzde": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100
     },
     "ilan_sayisi": {
      "type": "integer"
     },
     "arsivdeki_gazete": {
      "type": "integer"
     },
     "profil_hazir": {
      "type": "boolean"
     },
     "guncelleme": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "profil": {
      "type": "string",
      "format": "uri"
     }
    },
    "required": [
     "sirket",
     "asama",
     "asama_adi",
     "yuzde",
     "ilan_sayisi",
     "arsivdeki_gazete",
     "profil_hazir",
     "guncelleme",
     "profil"
    ],
    "additionalProperties": false
   },
   "DegisiklikListesi": {
    "type": "object",
    "properties": {
     "sirket": {
      "$ref": "#/components/schemas/SirketOzet"
     },
     "son_gazete": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/SonGazete"
       },
       {
        "type": "null"
       }
      ]
     },
     "adet": {
      "type": "integer"
     },
     "sayfa": {
      "type": "integer"
     },
     "sayfa_adedi": {
      "type": "integer"
     },
     "sonraki_sayfa": {
      "type": [
       "integer",
       "null"
      ]
     },
     "turler": {
      "type": "array",
      "description": "Bu şirkette görülen türler.",
      "items": {
       "type": "string"
      }
     },
     "kategoriler": {
      "type": "array",
      "items": {
       "type": "string",
       "enum": [
        "durum",
        "adres",
        "ortaklik",
        "sermaye",
        "yetkililer",
        "unvan",
        "esas_sozlesme",
        "diger",
        "kapandi"
       ]
      }
     },
     "profil_hazir": {
      "type": "boolean"
     },
     "degisiklikler": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Degisiklik"
      }
     }
    },
    "required": [
     "sirket",
     "son_gazete",
     "adet",
     "sayfa",
     "sayfa_adedi",
     "sonraki_sayfa",
     "turler",
     "kategoriler",
     "profil_hazir",
     "degisiklikler"
    ],
    "additionalProperties": false
   },
   "GunlukDegisiklik": {
    "type": "object",
    "properties": {
     "tur": {
      "type": "string",
      "description": "Değişiklik türü.",
      "enum": [
       "yetkili-atama",
       "yetkili-ayrilma",
       "sermaye",
       "ortaklik",
       "unvan-adres",
       "esas-sozlesme",
       "durum"
      ]
     },
     "tarih": {
      "type": [
       "string",
       "null"
      ],
      "description": "Değişikliğin tarihi.",
      "format": "date"
     },
     "ozet": {
      "type": "string",
      "description": "Tek satırlık özet."
     },
     "kaynak": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/Kaynak"
       },
       {
        "type": "null"
       }
      ]
     },
     "gazete_pdf": {
      "type": [
       "string",
       "null"
      ],
      "description": "Kaynak gazetenin PDF'i.",
      "format": "uri"
     },
     "kategori": {
      "type": "string",
      "description": "Sabit değişiklik kategorisi.",
      "enum": [
       "durum",
       "adres",
       "ortaklik",
       "sermaye",
       "yetkililer",
       "unvan",
       "esas_sozlesme",
       "diger",
       "kapandi"
      ]
     },
     "isim": {
      "type": [
       "string",
       "null"
      ]
     },
     "sifat": {
      "type": [
       "string",
       "null"
      ]
     },
     "onceki": {
      "type": [
       "string",
       "null"
      ]
     },
     "yeni": {
      "type": [
       "string",
       "null"
      ]
     },
     "pay_tutari": {
      "type": [
       "string",
       "null"
      ]
     },
     "pay_orani": {
      "type": [
       "string",
       "null"
      ]
     },
     "alan": {
      "type": [
       "string",
       "null"
      ]
     },
     "deger": {
      "type": [
       "string",
       "null"
      ]
     },
     "madde": {
      "type": [
       "string",
       "null"
      ]
     },
     "baslik": {
      "type": [
       "string",
       "null"
      ]
     },
     "aciklama": {
      "type": [
       "string",
       "null"
      ]
     },
     "sirket": {
      "type": "object",
      "properties": {
       "id": {
        "type": [
         "integer",
         "string"
        ],
        "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
       },
       "unvan": {
        "type": [
         "string",
         "null"
        ]
       },
       "sicil_no": {
        "type": [
         "string",
         "null"
        ]
       },
       "mudurluk": {
        "type": [
         "string",
         "null"
        ]
       }
      },
      "required": [
       "id",
       "unvan",
       "sicil_no",
       "mudurluk"
      ],
      "additionalProperties": false
     }
    },
    "required": [
     "tur",
     "tarih",
     "ozet",
     "kaynak",
     "gazete_pdf",
     "kategori",
     "sirket"
    ],
    "additionalProperties": false,
    "description": "Değişiklik satırı + hangi şirket."
   },
   "GunlukDegisiklikListesi": {
    "type": "object",
    "properties": {
     "gun": {
      "type": "integer"
     },
     "adet": {
      "type": "integer"
     },
     "sayfa": {
      "type": "integer"
     },
     "sayfa_adedi": {
      "type": "integer"
     },
     "sonraki_sayfa": {
      "type": [
       "integer",
       "null"
      ]
     },
     "degisiklikler": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/GunlukDegisiklik"
      }
     }
    },
    "required": [
     "gun",
     "adet",
     "sayfa",
     "sayfa_adedi",
     "sonraki_sayfa",
     "degisiklikler"
    ],
    "additionalProperties": false
   },
   "YetkiliListesi": {
    "type": "object",
    "properties": {
     "sirket": {
      "$ref": "#/components/schemas/SirketOzet"
     },
     "tarih": {
      "type": "string",
      "description": "İstenen tarih (YYYY-AA-GG) ya da \"güncel\"."
     },
     "adet": {
      "type": "integer"
     },
     "profil_hazir": {
      "type": "boolean"
     },
     "yetkililer": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Yetkili"
      }
     }
    },
    "required": [
     "sirket",
     "tarih",
     "adet",
     "profil_hazir",
     "yetkililer"
    ],
    "additionalProperties": false
   },
   "GorevBitisi": {
    "type": "object",
    "properties": {
     "grup_id": {
      "type": [
       "integer",
       "string"
      ],
      "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
     },
     "unvan": {
      "type": [
       "string",
       "null"
      ]
     },
     "isim": {
      "type": [
       "string",
       "null"
      ]
     },
     "sifat": {
      "type": "string"
     },
     "temsil": {
      "type": "string"
     },
     "gorev_bitis": {
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "kalan": {
      "type": "integer",
      "description": "Kalan gün; dolmuşsa eksi."
     },
     "gorev_suresi": {
      "type": "string"
     },
     "dayanak": {
      "type": "string"
     },
     "durum": {
      "type": "string",
      "enum": [
       "yaklasiyor",
       "doldu"
      ]
     }
    },
    "required": [
     "grup_id",
     "unvan",
     "isim",
     "sifat",
     "temsil",
     "gorev_bitis",
     "kalan",
     "gorev_suresi",
     "dayanak",
     "durum"
    ],
    "additionalProperties": false
   },
   "GorevBitisleri": {
    "type": "object",
    "properties": {
     "ufuk_gun": {
      "type": "integer"
     },
     "adet": {
      "type": "integer"
     },
     "gorevler": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/GorevBitisi"
      }
     }
    },
    "required": [
     "ufuk_gun",
     "adet",
     "gorevler"
    ],
    "additionalProperties": false
   },
   "IlanListesi": {
    "type": "object",
    "properties": {
     "sirket": {
      "$ref": "#/components/schemas/SirketOzet"
     },
     "adet": {
      "type": "integer"
     },
     "ilanlar": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Ilan"
      }
     }
    },
    "required": [
     "sirket",
     "adet",
     "ilanlar"
    ],
    "additionalProperties": false
   },
   "RaporSatiri": {
    "type": "object",
    "properties": {
     "rapor_id": {
      "type": "integer"
     },
     "durum": {
      "type": "string",
      "enum": [
       "hazir",
       "hata",
       "hazirlaniyor"
      ]
     },
     "talep": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "tamamlanma": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "dosyalar": {
      "type": "object",
      "additionalProperties": {
       "type": "string",
       "format": "uri"
      }
     },
     "sirket": {
      "anyOf": [
       {
        "type": "object",
        "properties": {
         "id": {
          "type": "integer"
         },
         "unvan": {
          "type": [
           "string",
           "null"
          ]
         },
         "sicil_no": {
          "type": [
           "string",
           "null"
          ]
         }
        },
        "required": [
         "id",
         "unvan",
         "sicil_no"
        ],
        "additionalProperties": false
       },
       {
        "type": "null"
       }
      ]
     },
     "profil": {
      "type": [
       "string",
       "null"
      ],
      "format": "uri"
     }
    },
    "required": [
     "rapor_id",
     "durum",
     "talep",
     "tamamlanma",
     "dosyalar",
     "sirket",
     "profil"
    ],
    "additionalProperties": false
   },
   "RaporListesi": {
    "type": "object",
    "properties": {
     "adet": {
      "type": "integer"
     },
     "sayfa": {
      "type": "integer"
     },
     "sayfa_adedi": {
      "type": "integer"
     },
     "sonraki_sayfa": {
      "type": [
       "integer",
       "null"
      ]
     },
     "raporlar": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/RaporSatiri"
      }
     }
    },
    "required": [
     "adet",
     "sayfa",
     "sayfa_adedi",
     "sonraki_sayfa",
     "raporlar"
    ],
    "additionalProperties": false
   },
   "GazeteKaydi": {
    "type": "object",
    "properties": {
     "ilan_id": {
      "type": "integer"
     },
     "tarih": {
      "type": "string",
      "format": "date"
     },
     "tur": {
      "type": "string"
     },
     "sirket": {
      "type": "object",
      "properties": {
       "id": {
        "type": [
         "integer",
         "string"
        ],
        "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
       },
       "unvan": {
        "type": [
         "string",
         "null"
        ]
       },
       "sicil_no": {
        "type": [
         "string",
         "null"
        ]
       }
      },
      "required": [
       "id",
       "unvan",
       "sicil_no"
      ],
      "additionalProperties": false
     },
     "gazete": {
      "type": "object",
      "properties": {
       "guid": {
        "type": "string"
       },
       "boyut_bayt": {
        "type": [
         "integer",
         "null"
        ]
       },
       "sayfa_sayisi": {
        "type": [
         "integer",
         "null"
        ]
       },
       "ocr_var": {
        "type": "boolean"
       },
       "indirme": {
        "type": [
         "string",
         "null"
        ],
        "format": "date-time"
       }
      },
      "required": [
       "guid",
       "boyut_bayt",
       "sayfa_sayisi",
       "ocr_var",
       "indirme"
      ],
      "additionalProperties": false
     },
     "pdf": {
      "type": "string",
      "format": "uri"
     }
    },
    "required": [
     "ilan_id",
     "tarih",
     "tur",
     "sirket",
     "gazete",
     "pdf"
    ],
    "additionalProperties": false
   },
   "GazeteListesi": {
    "type": "object",
    "properties": {
     "toplam": {
      "type": "integer"
     },
     "sayfa": {
      "type": "integer"
     },
     "adet": {
      "type": "integer",
      "description": "Sayfa başına kayıt."
     },
     "gazeteler": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/GazeteKaydi"
      }
     }
    },
    "required": [
     "toplam",
     "sayfa",
     "adet",
     "gazeteler"
    ],
    "additionalProperties": false
   },
   "KapYaniti": {
    "type": "object",
    "properties": {
     "sirket": {
      "type": "object",
      "properties": {
       "id": {
        "type": "integer"
       },
       "unvan": {
        "type": [
         "string",
         "null"
        ]
       }
      },
      "required": [
       "id",
       "unvan"
      ],
      "additionalProperties": false
     },
     "kap_sirket": {
      "type": "object",
      "properties": {
       "kap_id": {
        "type": [
         "integer",
         "string"
        ]
       },
       "unvan": {
        "type": [
         "string",
         "null"
        ]
       },
       "borsa_kodu": {
        "type": [
         "string",
         "null"
        ]
       },
       "uye_tipi": {
        "type": [
         "string",
         "null"
        ]
       }
      },
      "required": [
       "kap_id",
       "unvan",
       "borsa_kodu",
       "uye_tipi"
      ],
      "additionalProperties": false
     },
     "fonlar": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "fon_id": {
         "type": [
          "integer",
          "string"
         ]
        },
        "kod": {
         "type": [
          "string",
          "null"
         ]
        },
        "ad": {
         "type": [
          "string",
          "null"
         ]
        },
        "tur": {
         "type": [
          "string",
          "null"
         ]
        },
        "sinif": {
         "type": [
          "string",
          "null"
         ]
        },
        "durum": {
         "type": [
          "string",
          "null"
         ]
        }
       },
       "required": [
        "fon_id",
        "kod",
        "ad",
        "tur",
        "sinif",
        "durum"
       ],
       "additionalProperties": false
      }
     },
     "bildirimler": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "index": {
         "type": [
          "integer",
          "string"
         ]
        },
        "zaman": {
         "type": [
          "string",
          "null"
         ],
         "format": "date-time"
        },
        "tip": {
         "type": [
          "string",
          "null"
         ]
        },
        "sinif": {
         "type": [
          "string",
          "null"
         ]
        },
        "konu": {
         "type": [
          "string",
          "null"
         ]
        },
        "ozet": {
         "type": [
          "string",
          "null"
         ]
        },
        "fon_kod": {
         "type": [
          "string",
          "null"
         ]
        },
        "link": {
         "type": [
          "string",
          "null"
         ]
        },
        "ekler": {
         "type": "array",
         "items": {
          "type": "object",
          "properties": {
           "ad": {
            "type": [
             "string",
             "null"
            ]
           },
           "indir": {
            "type": "string",
            "format": "uri"
           }
          },
          "required": [
           "ad",
           "indir"
          ],
          "additionalProperties": false
         }
        },
        "veri": {
         "description": "Bildirimin yapılandırılmış verisi (varsa)."
        }
       },
       "required": [
        "index",
        "zaman",
        "tip",
        "sinif",
        "konu",
        "ozet",
        "fon_kod",
        "link",
        "ekler",
        "veri"
       ],
       "additionalProperties": false
      }
     },
     "kaynak": {
      "type": "string"
     }
    },
    "required": [
     "sirket",
     "kap_sirket",
     "fonlar",
     "bildirimler",
     "kaynak"
    ],
    "additionalProperties": false
   },
   "YaptirimIsabeti": {
    "type": "object",
    "properties": {
     "ad": {
      "type": "string",
      "description": "Listedeki ad."
     },
     "guven": {
      "type": "string",
      "description": "Eşleşme yalnız birebir addır (sıra, aksan ve büyük/küçük harf farkı hariç): tam.",
      "enum": [
       "tam",
       "kismi",
       "benzer"
      ]
     },
     "puan": {
      "type": [
       "number",
       "integer",
       "null"
      ]
     },
     "oncelik": {
      "type": [
       "integer",
       "string",
       "null"
      ]
     },
     "liste": {
      "type": "string",
      "description": "Liste kodu (BM, AB, MASAK…)."
     },
     "liste_ad": {
      "type": [
       "string",
       "null"
      ]
     },
     "liste_kaydi": {
      "type": [
       "string",
       "null"
      ]
     },
     "program": {
      "type": [
       "string",
       "null"
      ]
     },
     "ayrinti": {
      "type": [
       "string",
       "null"
      ]
     },
     "dis_id": {
      "type": [
       "string",
       "null"
      ]
     }
    },
    "required": [
     "ad",
     "guven",
     "puan",
     "oncelik",
     "liste",
     "liste_ad",
     "liste_kaydi",
     "program",
     "ayrinti",
     "dis_id"
    ],
    "additionalProperties": false
   },
   "YaptirimTaramasi": {
    "type": "object",
    "properties": {
     "taranan": {
      "type": "integer"
     },
     "liste_tarihi": {
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "listeler": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "kod": {
         "type": "string"
        },
        "ad": {
         "type": "string"
        },
        "kayit": {
         "type": "integer"
        },
        "guncelleme": {
         "type": [
          "string",
          "null"
         ],
         "format": "date-time"
        },
        "kaynak_tarihi": {
         "type": [
          "string",
          "null"
         ],
         "format": "date"
        },
        "indirme": {
         "type": [
          "string",
          "null"
         ],
         "format": "date-time"
        },
        "bayat": {
         "type": "boolean"
        },
        "url": {
         "type": "string"
        },
        "hata": {
         "type": [
          "string",
          "null"
         ]
        }
       },
       "required": [
        "kod",
        "ad",
        "kayit",
        "guncelleme",
        "kaynak_tarihi",
        "indirme",
        "bayat",
        "url",
        "hata"
       ],
       "additionalProperties": false
      }
     },
     "tarama_no": {
      "type": [
       "integer",
       "null"
      ]
     },
     "isabetler": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/YaptirimIsabeti"
      }
     },
     "not": {
      "type": "string"
     }
    },
    "required": [
     "taranan",
     "liste_tarihi",
     "listeler",
     "tarama_no",
     "isabetler",
     "not"
    ],
    "additionalProperties": false
   },
   "Teslim": {
    "type": "object",
    "properties": {
     "teslim_id": {
      "type": "string",
      "description": "Yeniden denemelerde aynı (mükerrer ayıklama)."
     },
     "olay": {
      "type": "string",
      "enum": [
       "sirket.degisiklik",
       "test"
      ]
     },
     "test": {
      "type": "boolean"
     },
     "kategoriler": {
      "type": "array",
      "items": {
       "type": "string",
       "enum": [
        "durum",
        "adres",
        "ortaklik",
        "sermaye",
        "yetkililer",
        "unvan",
        "esas_sozlesme",
        "diger",
        "kapandi"
       ]
      }
     },
     "durum": {
      "type": "string",
      "enum": [
       "bekliyor",
       "basarili",
       "hata",
       "vazgecildi"
      ]
     },
     "deneme_sayisi": {
      "type": "integer"
     },
     "http_kodu": {
      "type": [
       "integer",
       "null"
      ]
     },
     "hata": {
      "type": [
       "string",
       "null"
      ]
     },
     "olusturma": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "son_deneme": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     }
    },
    "required": [
     "teslim_id",
     "olay",
     "test",
     "kategoriler",
     "durum",
     "deneme_sayisi",
     "http_kodu",
     "hata",
     "olusturma",
     "son_deneme"
    ],
    "additionalProperties": false
   },
   "Webhook": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer"
     },
     "url": {
      "type": "string",
      "format": "uri"
     },
     "aktif": {
      "type": "boolean"
     },
     "kategoriler": {
      "type": "array",
      "description": "Boş = tüm kategoriler.",
      "items": {
       "type": "string",
       "enum": [
        "durum",
        "adres",
        "ortaklik",
        "sermaye",
        "yetkililer",
        "unvan",
        "esas_sozlesme",
        "diger",
        "kapandi"
       ]
      }
     },
     "tum_kategoriler": {
      "type": "boolean"
     },
     "olusturma": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "son_gonderim": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "son_durum": {
      "type": [
       "string",
       "null"
      ]
     },
     "ardisik_hata": {
      "type": "integer",
      "description": "Art arda başarısız teslim; 20'de webhook durur."
     },
     "son_teslimler": {
      "type": "array",
      "description": "Yalnız tek webhook ayrıntısında (son 20).",
      "items": {
       "$ref": "#/components/schemas/Teslim"
      }
     }
    },
    "required": [
     "id",
     "url",
     "aktif",
     "kategoriler",
     "tum_kategoriler",
     "olusturma",
     "son_gonderim",
     "son_durum",
     "ardisik_hata"
    ],
    "additionalProperties": false
   },
   "YeniWebhook": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer"
     },
     "url": {
      "type": "string",
      "format": "uri"
     },
     "aktif": {
      "type": "boolean"
     },
     "kategoriler": {
      "type": "array",
      "description": "Boş = tüm kategoriler.",
      "items": {
       "type": "string",
       "enum": [
        "durum",
        "adres",
        "ortaklik",
        "sermaye",
        "yetkililer",
        "unvan",
        "esas_sozlesme",
        "diger",
        "kapandi"
       ]
      }
     },
     "tum_kategoriler": {
      "type": "boolean"
     },
     "olusturma": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "son_gonderim": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "son_durum": {
      "type": [
       "string",
       "null"
      ]
     },
     "ardisik_hata": {
      "type": "integer",
      "description": "Art arda başarısız teslim; 20'de webhook durur."
     },
     "son_teslimler": {
      "type": "array",
      "description": "Yalnız tek webhook ayrıntısında (son 20).",
      "items": {
       "$ref": "#/components/schemas/Teslim"
      }
     },
     "gizli": {
      "type": "string",
      "description": "İmza anahtarı (whsec_…): YALNIZ bu yanıtta gösterilir."
     },
     "aciklama": {
      "type": "string"
     }
    },
    "required": [
     "id",
     "url",
     "aktif",
     "kategoriler",
     "tum_kategoriler",
     "olusturma",
     "son_gonderim",
     "son_durum",
     "ardisik_hata",
     "gizli",
     "aciklama"
    ],
    "additionalProperties": false
   },
   "WebhookListesi": {
    "type": "object",
    "properties": {
     "adet": {
      "type": "integer"
     },
     "kategoriler": {
      "type": "array",
      "items": {
       "type": "string",
       "enum": [
        "durum",
        "adres",
        "ortaklik",
        "sermaye",
        "yetkililer",
        "unvan",
        "esas_sozlesme",
        "diger",
        "kapandi"
       ]
      }
     },
     "webhooklar": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Webhook"
      }
     }
    },
    "required": [
     "adet",
     "kategoriler",
     "webhooklar"
    ],
    "additionalProperties": false
   },
   "WebhookSilindi": {
    "type": "object",
    "properties": {
     "silindi": {
      "type": "boolean"
     },
     "id": {
      "type": "integer"
     }
    },
    "required": [
     "silindi",
     "id"
    ],
    "additionalProperties": false
   },
   "WebhookTestSonucu": {
    "type": "object",
    "properties": {
     "teslim": {
      "$ref": "#/components/schemas/Teslim"
     }
    },
    "required": [
     "teslim"
    ],
    "additionalProperties": false
   },
   "WebhookYuku": {
    "type": "object",
    "properties": {
     "olay": {
      "type": "string",
      "enum": [
       "sirket.degisiklik",
       "test"
      ]
     },
     "surum": {
      "type": "integer"
     },
     "teslim_id": {
      "type": "string"
     },
     "test": {
      "type": "boolean"
     },
     "zaman": {
      "type": "string",
      "format": "date-time"
     },
     "sirket": {
      "type": "object",
      "properties": {
       "id": {
        "type": [
         "integer",
         "string"
        ],
        "description": "Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni."
       },
       "unvan": {
        "type": [
         "string",
         "null"
        ]
       },
       "mudurluk": {
        "type": [
         "string",
         "null"
        ]
       },
       "sicil_no": {
        "type": [
         "string",
         "null"
        ]
       },
       "profil": {
        "type": "string",
        "format": "uri"
       },
       "degisiklikler": {
        "type": "string",
        "format": "uri"
       }
      },
      "required": [
       "id",
       "unvan",
       "mudurluk",
       "sicil_no",
       "profil",
       "degisiklikler"
      ],
      "additionalProperties": false
     },
     "kategoriler": {
      "type": "array",
      "items": {
       "type": "string",
       "enum": [
        "durum",
        "adres",
        "ortaklik",
        "sermaye",
        "yetkililer",
        "unvan",
        "esas_sozlesme",
        "diger",
        "kapandi"
       ]
      }
     },
     "degisiklikler": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "kategori": {
         "type": "string",
         "enum": [
          "durum",
          "adres",
          "ortaklik",
          "sermaye",
          "yetkililer",
          "unvan",
          "esas_sozlesme",
          "diger",
          "kapandi"
         ]
        },
        "kategori_ad": {
         "type": [
          "string",
          "null"
         ]
        },
        "tur": {
         "type": "string"
        },
        "tarih": {
         "type": [
          "string",
          "null"
         ],
         "format": "date"
        },
        "ozet": {
         "type": "string"
        },
        "ilan": {
         "anyOf": [
          {
           "type": "object",
           "properties": {
            "ilan_id": {
             "type": "integer"
            },
            "ilan_tarihi": {
             "type": [
              "string",
              "null"
             ],
             "format": "date"
            },
            "ilan_turu": {
             "type": [
              "string",
              "null"
             ]
            },
            "alinti": {
             "type": [
              "string",
              "null"
             ]
            }
           },
           "required": [
            "ilan_id",
            "ilan_tarihi",
            "ilan_turu",
            "alinti"
           ],
           "additionalProperties": false
          },
          {
           "type": "null"
          }
         ]
        },
        "gazete_pdf": {
         "type": [
          "string",
          "null"
         ],
         "format": "uri"
        }
       },
       "required": [
        "kategori",
        "kategori_ad",
        "tur",
        "tarih",
        "ozet",
        "ilan",
        "gazete_pdf"
       ],
       "additionalProperties": false
      }
     }
    },
    "required": [
     "olay",
     "surum",
     "teslim_id",
     "test",
     "zaman",
     "sirket",
     "kategoriler",
     "degisiklikler"
    ],
    "additionalProperties": false,
    "description": "Webhook gövdesi: ilanın kendisi (şirket, kategori, tarih, tür, özet, gazete PDF'i)."
   },
   "KatalogUlke": {
    "type": "object",
    "properties": {
     "kod": {
      "type": "string"
     },
     "ad": {
      "type": "string"
     },
     "bayrak": {
      "type": "string"
     },
     "yerel_ad": {
      "type": "string"
     },
     "bolge": {
      "type": "string"
     },
     "bolge_ad": {
      "type": "string"
     },
     "kademe": {
      "type": "string"
     },
     "kademe_ad": {
      "type": "string"
     },
     "hedef_kademe": {
      "type": [
       "string",
       "null"
      ]
     },
     "beta": {
      "type": "boolean"
     },
     "bekleyen": {
      "type": "boolean"
     },
     "kaynak": {
      "type": "string",
      "description": "Kaynağın genel adı."
     },
     "kimlikler": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "ad": {
         "type": "string"
        },
        "bicim": {
         "type": "string"
        },
        "ornek": {
         "type": "string"
        },
        "kontrol": {
         "type": "string"
        },
        "aranabilir": {
         "type": "boolean"
        },
        "birincil": {
         "type": "boolean"
        }
       },
       "required": [
        "ad",
        "bicim",
        "ornek",
        "kontrol",
        "aranabilir",
        "birincil"
       ],
       "additionalProperties": false
      }
     },
     "veri": {
      "type": "object",
      "additionalProperties": {
       "type": "object",
       "properties": {
        "durum": {
         "type": "string",
         "enum": [
          "var",
          "kismi",
          "ilan",
          "istek",
          "yok"
         ]
        },
        "etiket": {
         "type": "string"
        },
        "not": {
         "type": "string"
        }
       },
       "required": [
        "durum",
        "etiket",
        "not"
       ],
       "additionalProperties": false
      }
     },
     "belgeler": {
      "type": "array",
      "items": {
       "type": "object",
       "additionalProperties": true
      }
     },
     "yenileme": {
      "type": "object",
      "properties": {
       "sinif": {
        "type": "string"
       },
       "ad": {
        "type": "string"
       }
      },
      "required": [
       "sinif",
       "ad"
      ],
      "additionalProperties": false
     },
     "izleme": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "uyum_isaretleri": {
      "type": "array",
      "items": {
       "type": "object",
       "additionalProperties": true
      }
     },
     "uyum_ilkesi": {
      "type": "string"
     },
     "yanit": {
      "type": "object",
      "properties": {
       "sinif": {
        "type": "string"
       },
       "ad": {
        "type": "string"
       }
      },
      "required": [
       "sinif",
       "ad"
      ],
      "additionalProperties": false
     },
     "notlar": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "surum": {
      "type": "string"
     }
    },
    "required": [
     "kod",
     "ad",
     "kademe",
     "kimlikler",
     "veri",
     "belgeler",
     "yenileme",
     "izleme",
     "yanit",
     "notlar"
    ],
    "additionalProperties": true
   },
   "Katalog": {
    "type": "object",
    "properties": {
     "surum": {
      "type": "string"
     },
     "dil": {
      "type": "string",
      "enum": [
       "tr",
       "en"
      ]
     },
     "durumlar": {
      "type": "object",
      "additionalProperties": {
       "type": "string"
      }
     },
     "veri_noktalari": {
      "type": "object",
      "additionalProperties": {
       "type": "string"
      }
     },
     "yenileme_siniflari": {
      "type": "object",
      "additionalProperties": {
       "type": "string"
      }
     },
     "yanit_siniflari": {
      "type": "object",
      "additionalProperties": {
       "type": "string"
      }
     },
     "uyelik": {
      "type": "object",
      "properties": {
       "dahil": {
        "type": "string"
       },
       "istek": {
        "type": "string"
       }
      },
      "required": [
       "dahil",
       "istek"
      ],
      "additionalProperties": false
     },
     "ulke_sayisi": {
      "type": "integer"
     },
     "ulkeler": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/KatalogUlke"
      }
     }
    },
    "required": [
     "surum",
     "dil",
     "durumlar",
     "veri_noktalari",
     "yenileme_siniflari",
     "yanit_siniflari",
     "uyelik",
     "ulke_sayisi",
     "ulkeler"
    ],
    "additionalProperties": true
   },
   "BasitHata": {
    "type": "object",
    "properties": {
     "hata": {
      "type": "string"
     },
     "kod": {
      "type": "string"
     }
    },
    "required": [
     "hata"
    ],
    "additionalProperties": false
   },
   "HizmetDurumu": {
    "type": "object",
    "properties": {
     "surum": {
      "type": "string"
     },
     "dil": {
      "type": "string"
     },
     "gun_sayisi": {
      "type": "integer"
     },
     "baslangic": {
      "type": "string",
      "format": "date"
     },
     "bitis": {
      "type": "string",
      "format": "date"
     },
     "durumlar": {
      "type": "object",
      "additionalProperties": {
       "type": "object",
       "properties": {
        "ad": {
         "type": "string"
        },
        "aciklama": {
         "type": "string"
        }
       },
       "required": [
        "ad",
        "aciklama"
       ],
       "additionalProperties": false
      }
     },
     "genel": {
      "type": "string",
      "enum": [
       "calisiyor",
       "yavas",
       "kesinti",
       "bilinmiyor"
      ]
     },
     "gruplar": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "anahtar": {
         "type": "string"
        },
        "ad": {
         "type": "string"
        },
        "bilesenler": {
         "type": "array",
         "items": {
          "type": "object",
          "properties": {
           "anahtar": {
            "type": "string"
           },
           "ad": {
            "type": "string"
           },
           "aciklama": {
            "type": [
             "string",
             "null"
            ]
           },
           "ulke": {
            "type": [
             "string",
             "null"
            ]
           },
           "durum": {
            "type": "string",
            "enum": [
             "calisiyor",
             "yavas",
             "kesinti",
             "bilinmiyor"
            ]
           },
           "durum_gunu": {
            "type": "string",
            "enum": [
             "bugun",
             "dun"
            ]
           },
           "olculen_gun": {
            "type": "integer"
           },
           "sorunsuz_yuzde": {
            "type": [
             "number",
             "null"
            ]
           },
           "gunler": {
            "type": "array",
            "items": {
             "type": "object",
             "properties": {
              "gun": {
               "type": "string",
               "format": "date"
              },
              "durum": {
               "type": "string"
              },
              "not": {
               "type": "string"
              }
             },
             "required": [
              "gun",
              "durum"
             ],
             "additionalProperties": false
            }
           }
          },
          "required": [
           "anahtar",
           "ad",
           "aciklama",
           "ulke",
           "durum",
           "durum_gunu",
           "olculen_gun",
           "sorunsuz_yuzde",
           "gunler"
          ],
          "additionalProperties": false
         }
        }
       },
       "required": [
        "anahtar",
        "ad",
        "bilesenler"
       ],
       "additionalProperties": false
      }
     },
     "notlar": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "gun": {
         "type": "string",
         "format": "date"
        },
        "bilesen": {
         "type": "string"
        },
        "durum": {
         "type": "string"
        },
        "not": {
         "type": "string"
        }
       },
       "required": [
        "gun",
        "bilesen",
        "durum",
        "not"
       ],
       "additionalProperties": false
      }
     }
    },
    "required": [
     "surum",
     "dil",
     "gun_sayisi",
     "baslangic",
     "bitis",
     "durumlar",
     "genel",
     "gruplar",
     "notlar"
    ],
    "additionalProperties": false
   },
   "EskiSirketListesi": {
    "type": "object",
    "properties": {
     "count": {
      "type": "integer"
     },
     "companies": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "group_id": {
         "type": "integer"
        },
        "unvan": {
         "type": [
          "string",
          "null"
         ]
        },
        "mudurluk": {
         "type": [
          "string",
          "null"
         ]
        },
        "sicil_no": {
         "type": [
          "string",
          "null"
         ]
        },
        "profil_hazir": {
         "type": "boolean"
        }
       },
       "required": [
        "group_id",
        "unvan",
        "mudurluk",
        "sicil_no",
        "profil_hazir"
       ],
       "additionalProperties": false
      }
     }
    },
    "required": [
     "count",
     "companies"
    ],
    "additionalProperties": false
   },
   "EskiProfil": {
    "type": "object",
    "additionalProperties": true,
    "required": [
     "unvan",
     "mudurluk",
     "sicil_no",
     "guncelleme",
     "ilan_sayisi",
     "profil"
    ]
   },
   "EskiHataEn": {
    "type": "object",
    "properties": {
     "error": {
      "type": "string"
     },
     "detail": {
      "type": "string"
     }
    },
    "required": [
     "error"
    ],
    "additionalProperties": false
   },
   "Muhur": {
    "type": "object",
    "properties": {
     "kod": {
      "type": "string",
      "description": "DOGRULANDI: çekirdek bölümler tam ve her bilgi doğrulanmış alıntıya bağlı · KISMI: profil hazır ama bir koşul sağlanmıyor (gerekçeler) · DOGRULANMADI: profil hazır değil.",
      "enum": [
       "DOGRULANDI",
       "KISMI",
       "DOGRULANMADI"
      ]
     },
     "gerekceler": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "tr": {
         "type": "string"
        },
        "en": {
         "type": "string"
        }
       },
       "required": [
        "tr",
        "en"
       ],
       "additionalProperties": false
      }
     }
    },
    "required": [
     "kod",
     "gerekceler"
    ],
    "additionalProperties": false,
    "description": "Mühür içeriğin doğruluğunu değil, bilgilerin kaynağa bağlılığını söyler."
   },
   "DogrulamaVerisi": {
    "type": "object",
    "properties": {
     "surum": {
      "type": "integer"
     },
     "deneme": {
      "type": "boolean"
     },
     "sirket": {
      "$ref": "#/components/schemas/SirketOzet"
     },
     "profil_hazir": {
      "type": "boolean"
     },
     "muhur": {
      "$ref": "#/components/schemas/Muhur"
     },
     "veri_tamligi": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "bolum": {
         "type": "string"
        },
        "durum": {
         "type": "string",
         "enum": [
          "tam",
          "kismi",
          "yok",
          "hazirlaniyor",
          "yayimlanmiyor"
         ]
        },
        "yontem": {
         "type": [
          "string",
          "null"
         ]
        },
        "dayanak": {
         "type": [
          "integer",
          "null"
         ]
        },
        "sinirlar": {
         "type": "array",
         "items": {
          "type": "string"
         }
        },
        "yapisal": {
         "type": "boolean",
         "description": "Kısmi durum yalnız yapısal sınırdan mı (A.Ş. ortaklığı)."
        }
       },
       "required": [
        "bolum",
        "durum",
        "yontem",
        "dayanak",
        "sinirlar",
        "yapisal"
       ],
       "additionalProperties": false
      }
     },
     "alintilar": {
      "type": "object",
      "properties": {
       "toplam": {
        "type": "integer"
       },
       "dogrulanan": {
        "type": "integer"
       },
       "dogrulanmayan": {
        "type": "integer"
       },
       "kaynaksiz": {
        "type": "integer"
       }
      },
      "required": [
       "toplam",
       "dogrulanan",
       "dogrulanmayan",
       "kaynaksiz"
      ],
      "additionalProperties": false
     },
     "kimlik": {
      "anyOf": [
       {
        "type": "object",
        "properties": {
         "unvan": {
          "type": [
           "string",
           "null"
          ]
         },
         "tur": {
          "type": "string"
         },
         "merkez": {
          "type": "string"
         },
         "kurulus_tarihi": {
          "type": "string"
         },
         "sermaye": {
          "type": "string"
         },
         "hukuki_bicim": {
          "type": "string"
         },
         "hukuki_bicim_en": {
          "type": "string"
         },
         "kaynak": {
          "anyOf": [
           {
            "type": "object",
            "properties": {
             "ilan_id": {
              "type": "integer"
             },
             "tarih": {
              "type": "string",
              "description": "İlan tarihi (GG.AA.YYYY)."
             },
             "sayi": {
              "type": "string",
              "description": "Gazete sayısı."
             },
             "sayfa": {
              "type": "string",
              "description": "Gazete sayfası."
             },
             "alinti": {
              "type": "string",
              "description": "İlandan kısa, birebir alıntı."
             },
             "dogrulandi": {
              "type": "boolean"
             }
            },
            "required": [
             "ilan_id",
             "tarih",
             "sayi",
             "sayfa",
             "alinti",
             "dogrulandi"
            ],
            "additionalProperties": false,
            "description": "Kaynak ilanın künyesi (TTSG tarih · sayı · sayfa) ve alıntı."
           },
           {
            "type": "null"
           }
          ]
         }
        },
        "required": [
         "unvan",
         "tur",
         "merkez",
         "kurulus_tarihi",
         "sermaye",
         "hukuki_bicim",
         "hukuki_bicim_en",
         "kaynak"
        ],
        "additionalProperties": false
       },
       {
        "type": "null"
       }
      ]
     },
     "durum": {
      "anyOf": [
       {
        "type": "object",
        "properties": {
         "kod": {
          "type": [
           "string",
           "null"
          ]
         },
         "ad": {
          "type": [
           "string",
           "null"
          ]
         },
         "ad_en": {
          "type": [
           "string",
           "null"
          ]
         },
         "uluslararasi": {
          "type": [
           "string",
           "null"
          ]
         },
         "yerel": {
          "type": "string"
         },
         "aciklama": {
          "type": "string"
         },
         "aciklama_en": {
          "type": "string"
         },
         "dayanak": {
          "type": "string"
         },
         "kaynak": {
          "anyOf": [
           {
            "type": "object",
            "properties": {
             "ilan_id": {
              "type": "integer"
             },
             "tarih": {
              "type": "string",
              "description": "İlan tarihi (GG.AA.YYYY)."
             },
             "sayi": {
              "type": "string",
              "description": "Gazete sayısı."
             },
             "sayfa": {
              "type": "string",
              "description": "Gazete sayfası."
             },
             "alinti": {
              "type": "string",
              "description": "İlandan kısa, birebir alıntı."
             },
             "dogrulandi": {
              "type": "boolean"
             }
            },
            "required": [
             "ilan_id",
             "tarih",
             "sayi",
             "sayfa",
             "alinti",
             "dogrulandi"
            ],
            "additionalProperties": false,
            "description": "Kaynak ilanın künyesi (TTSG tarih · sayı · sayfa) ve alıntı."
           },
           {
            "type": "null"
           }
          ]
         }
        },
        "required": [
         "kod",
         "ad",
         "ad_en",
         "uluslararasi",
         "yerel",
         "aciklama",
         "aciklama_en",
         "dayanak",
         "kaynak"
        ],
        "additionalProperties": false
       },
       {
        "type": "null"
       }
      ]
     },
     "yetkililer": {
      "type": [
       "array",
       "null"
      ],
      "description": "Görevdeki yetkililer (aynı kişinin en yeni ataması).",
      "items": {
       "$ref": "#/components/schemas/RaporYetkilisi"
      }
     },
     "bitmis_gorunen_yetkililer": {
      "type": [
       "array",
       "null"
      ],
      "description": "Süresi dolmuş ve sonraki seçimde adı geçmeyenler.",
      "items": {
       "$ref": "#/components/schemas/RaporYetkilisi"
      }
     },
     "sermaye": {
      "anyOf": [
       {
        "type": "object",
        "properties": {
         "guncel": {
          "type": "string"
         },
         "kaynak": {
          "anyOf": [
           {
            "type": "object",
            "properties": {
             "ilan_id": {
              "type": "integer"
             },
             "tarih": {
              "type": "string",
              "description": "İlan tarihi (GG.AA.YYYY)."
             },
             "sayi": {
              "type": "string",
              "description": "Gazete sayısı."
             },
             "sayfa": {
              "type": "string",
              "description": "Gazete sayfası."
             },
             "alinti": {
              "type": "string",
              "description": "İlandan kısa, birebir alıntı."
             },
             "dogrulandi": {
              "type": "boolean"
             }
            },
            "required": [
             "ilan_id",
             "tarih",
             "sayi",
             "sayfa",
             "alinti",
             "dogrulandi"
            ],
            "additionalProperties": false,
            "description": "Kaynak ilanın künyesi (TTSG tarih · sayı · sayfa) ve alıntı."
           },
           {
            "type": "null"
           }
          ]
         },
         "gecmis": {
          "type": "array",
          "items": {
           "type": "object",
           "properties": {
            "tarih": {
             "type": "string"
            },
            "islem": {
             "type": "string"
            },
            "onceki": {
             "type": "string"
            },
            "yeni": {
             "type": "string"
            },
            "kaynak": {
             "anyOf": [
              {
               "type": "object",
               "properties": {
                "ilan_id": {
                 "type": "integer"
                },
                "tarih": {
                 "type": "string",
                 "description": "İlan tarihi (GG.AA.YYYY)."
                },
                "sayi": {
                 "type": "string",
                 "description": "Gazete sayısı."
                },
                "sayfa": {
                 "type": "string",
                 "description": "Gazete sayfası."
                },
                "alinti": {
                 "type": "string",
                 "description": "İlandan kısa, birebir alıntı."
                },
                "dogrulandi": {
                 "type": "boolean"
                }
               },
               "required": [
                "ilan_id",
                "tarih",
                "sayi",
                "sayfa",
                "alinti",
                "dogrulandi"
               ],
               "additionalProperties": false,
               "description": "Kaynak ilanın künyesi (TTSG tarih · sayı · sayfa) ve alıntı."
              },
              {
               "type": "null"
              }
             ]
            }
           },
           "required": [
            "tarih",
            "islem",
            "onceki",
            "yeni",
            "kaynak"
           ],
           "additionalProperties": false
          }
         }
        },
        "required": [
         "guncel",
         "kaynak",
         "gecmis"
        ],
        "additionalProperties": false
       },
       {
        "type": "null"
       }
      ]
     },
     "ortaklar": {
      "anyOf": [
       {
        "type": "object",
        "properties": {
         "anonim": {
          "type": "boolean"
         },
         "tarih": {
          "type": [
           "string",
           "null"
          ]
         },
         "liste": {
          "type": "array",
          "items": {
           "type": "object",
           "properties": {
            "isim": {
             "type": [
              "string",
              "null"
             ]
            },
            "pay_tutari": {
             "type": "string"
            },
            "pay_orani": {
             "type": "string"
            },
            "kaynak": {
             "anyOf": [
              {
               "type": "object",
               "properties": {
                "ilan_id": {
                 "type": "integer"
                },
                "tarih": {
                 "type": "string",
                 "description": "İlan tarihi (GG.AA.YYYY)."
                },
                "sayi": {
                 "type": "string",
                 "description": "Gazete sayısı."
                },
                "sayfa": {
                 "type": "string",
                 "description": "Gazete sayfası."
                },
                "alinti": {
                 "type": "string",
                 "description": "İlandan kısa, birebir alıntı."
                },
                "dogrulandi": {
                 "type": "boolean"
                }
               },
               "required": [
                "ilan_id",
                "tarih",
                "sayi",
                "sayfa",
                "alinti",
                "dogrulandi"
               ],
               "additionalProperties": false,
               "description": "Kaynak ilanın künyesi (TTSG tarih · sayı · sayfa) ve alıntı."
              },
              {
               "type": "null"
              }
             ]
            }
           },
           "required": [
            "isim",
            "pay_tutari",
            "pay_orani",
            "kaynak"
           ],
           "additionalProperties": false
          }
         }
        },
        "required": [
         "anonim",
         "tarih",
         "liste"
        ],
        "additionalProperties": false
       },
       {
        "type": "null"
       }
      ]
     },
     "uyum": {
      "type": [
       "array",
       "null"
      ],
      "items": {
       "type": "object",
       "properties": {
        "tur": {
         "type": "string"
        },
        "ad": {
         "type": [
          "string",
          "null"
         ]
        },
        "ad_en": {
         "type": [
          "string",
          "null"
         ]
        },
        "aktif": {
         "type": [
          "boolean",
          "null"
         ]
        },
        "aciklama": {
         "type": "string"
        },
        "aciklama_en": {
         "type": "string"
        },
        "dayanak": {
         "type": "string"
        },
        "tarih": {
         "type": "string"
        },
        "kaynak": {
         "anyOf": [
          {
           "type": "object",
           "properties": {
            "ilan_id": {
             "type": "integer"
            },
            "tarih": {
             "type": "string",
             "description": "İlan tarihi (GG.AA.YYYY)."
            },
            "sayi": {
             "type": "string",
             "description": "Gazete sayısı."
            },
            "sayfa": {
             "type": "string",
             "description": "Gazete sayfası."
            },
            "alinti": {
             "type": "string",
             "description": "İlandan kısa, birebir alıntı."
            },
            "dogrulandi": {
             "type": "boolean"
            }
           },
           "required": [
            "ilan_id",
            "tarih",
            "sayi",
            "sayfa",
            "alinti",
            "dogrulandi"
           ],
           "additionalProperties": false,
           "description": "Kaynak ilanın künyesi (TTSG tarih · sayı · sayfa) ve alıntı."
          },
          {
           "type": "null"
          }
         ]
        }
       },
       "required": [
        "tur",
        "ad",
        "ad_en",
        "aktif",
        "aciklama",
        "aciklama_en",
        "dayanak",
        "tarih",
        "kaynak"
       ],
       "additionalProperties": false
      }
     },
     "yaptirim": {
      "type": "object",
      "properties": {
       "tarandi": {
        "type": "boolean"
       },
       "deneme": {
        "type": "boolean"
       },
       "taranan": {
        "type": "integer"
       },
       "isabetler": {
        "type": "array",
        "items": {
         "type": "object",
         "properties": {
          "ad": {
           "type": "string"
          },
          "rol": {
           "type": "string"
          },
          "liste": {
           "type": [
            "string",
            "null"
           ]
          },
          "liste_kaydi": {
           "type": "string"
          },
          "program": {
           "type": "string"
          }
         },
         "required": [
          "ad",
          "rol",
          "liste",
          "liste_kaydi",
          "program"
         ],
         "additionalProperties": false
        }
       },
       "liste_tarihi": {
        "type": "string"
       }
      },
      "required": [
       "tarandi",
       "deneme",
       "taranan",
       "isabetler",
       "liste_tarihi"
      ],
      "additionalProperties": false,
      "description": "Yalnız birebir ad isabetleri; deneme ortamında tarama yapılmaz."
     },
     "degisiklikler": {
      "type": "array",
      "description": "Son 10 değişiklik.",
      "items": {
       "type": "object",
       "properties": {
        "tarih": {
         "type": "string"
        },
        "tur": {
         "type": "string"
        },
        "kategori": {
         "type": "string"
        },
        "ozet": {
         "type": "string"
        },
        "ozet_en": {
         "type": "string"
        },
        "kaynak": {
         "anyOf": [
          {
           "type": "object",
           "properties": {
            "ilan_id": {
             "type": "integer"
            },
            "tarih": {
             "type": "string",
             "description": "İlan tarihi (GG.AA.YYYY)."
            },
            "sayi": {
             "type": "string",
             "description": "Gazete sayısı."
            },
            "sayfa": {
             "type": "string",
             "description": "Gazete sayfası."
            },
            "alinti": {
             "type": "string",
             "description": "İlandan kısa, birebir alıntı."
            },
            "dogrulandi": {
             "type": "boolean"
            }
           },
           "required": [
            "ilan_id",
            "tarih",
            "sayi",
            "sayfa",
            "alinti",
            "dogrulandi"
           ],
           "additionalProperties": false,
           "description": "Kaynak ilanın künyesi (TTSG tarih · sayı · sayfa) ve alıntı."
          },
          {
           "type": "null"
          }
         ]
        }
       },
       "required": [
        "tarih",
        "tur",
        "kategori",
        "ozet",
        "ozet_en",
        "kaynak"
       ],
       "additionalProperties": false
      }
     },
     "ilan_sayisi": {
      "type": "integer"
     }
    },
    "required": [
     "surum",
     "deneme",
     "sirket",
     "profil_hazir",
     "muhur",
     "veri_tamligi",
     "alintilar",
     "kimlik",
     "durum",
     "yetkililer",
     "bitmis_gorunen_yetkililer",
     "sermaye",
     "ortaklar",
     "uyum",
     "yaptirim",
     "degisiklikler",
     "ilan_sayisi"
    ],
    "additionalProperties": false,
    "description": "Raporun dil bağımsız anlık görüntüsü; tarihler GG.AA.YYYY."
   },
   "RaporYetkilisi": {
    "type": "object",
    "properties": {
     "isim": {
      "type": [
       "string",
       "null"
      ]
     },
     "sifat": {
      "type": "string"
     },
     "temsil": {
      "type": "string"
     },
     "baslangic": {
      "type": "string"
     },
     "gorev_bitis": {
      "type": "string"
     },
     "gorev_dayanak": {
      "type": "string"
     },
     "suresi_dolmus": {
      "type": "boolean"
     },
     "yeni_kurul": {
      "type": "string"
     },
     "derece": {
      "type": [
       "string",
       "null"
      ],
      "description": "İmza derecesi (1, 2…)."
     },
     "kaynak": {
      "anyOf": [
       {
        "type": "object",
        "properties": {
         "ilan_id": {
          "type": "integer"
         },
         "tarih": {
          "type": "string",
          "description": "İlan tarihi (GG.AA.YYYY)."
         },
         "sayi": {
          "type": "string",
          "description": "Gazete sayısı."
         },
         "sayfa": {
          "type": "string",
          "description": "Gazete sayfası."
         },
         "alinti": {
          "type": "string",
          "description": "İlandan kısa, birebir alıntı."
         },
         "dogrulandi": {
          "type": "boolean"
         }
        },
        "required": [
         "ilan_id",
         "tarih",
         "sayi",
         "sayfa",
         "alinti",
         "dogrulandi"
        ],
        "additionalProperties": false,
        "description": "Kaynak ilanın künyesi (TTSG tarih · sayı · sayfa) ve alıntı."
       },
       {
        "type": "null"
       }
      ]
     },
     "temsil_kaynak": {
      "anyOf": [
       {
        "type": "object",
        "properties": {
         "ilan_id": {
          "type": "integer"
         },
         "tarih": {
          "type": "string",
          "description": "İlan tarihi (GG.AA.YYYY)."
         },
         "sayi": {
          "type": "string",
          "description": "Gazete sayısı."
         },
         "sayfa": {
          "type": "string",
          "description": "Gazete sayfası."
         },
         "alinti": {
          "type": "string",
          "description": "İlandan kısa, birebir alıntı."
         },
         "dogrulandi": {
          "type": "boolean"
         }
        },
        "required": [
         "ilan_id",
         "tarih",
         "sayi",
         "sayfa",
         "alinti",
         "dogrulandi"
        ],
        "additionalProperties": false,
        "description": "Kaynak ilanın künyesi (TTSG tarih · sayı · sayfa) ve alıntı."
       },
       {
        "type": "null"
       }
      ]
     },
     "birlikte": {
      "type": "array",
      "description": "Müşterek temsilde birlikte imzalayabilecekleri (yalnız görevdekilerde).",
      "items": {
       "type": [
        "string",
        "null"
       ]
      }
     }
    },
    "required": [
     "isim",
     "sifat",
     "temsil",
     "baslangic",
     "gorev_bitis",
     "gorev_dayanak",
     "suresi_dolmus",
     "yeni_kurul",
     "derece",
     "kaynak",
     "temsil_kaynak"
    ],
    "additionalProperties": false
   },
   "DogrulamaRaporuJson": {
    "type": "object",
    "properties": {
     "rapor_kimligi": {
      "type": "string",
      "description": "DR-XXXX-XXXX-XXXX: içerik özetinden; aynı içerik → aynı kimlik."
     },
     "muhur": {
      "type": "string",
      "enum": [
       "DOGRULANDI",
       "KISMI",
       "DOGRULANMADI"
      ]
     },
     "muhur_ad": {
      "type": "string"
     },
     "icerik_ozeti": {
      "type": "string",
      "description": "İçeriğin SHA-256 özeti."
     },
     "uretim_tarihi": {
      "type": "string",
      "format": "date"
     },
     "bekleyen_bolumler": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "veri": {
      "$ref": "#/components/schemas/DogrulamaVerisi"
     },
     "pdf": {
      "type": "string",
      "description": "Aynı raporun PDF'i (?rapor=… ile ücretsiz yeniden indirme).",
      "format": "uri"
     }
    },
    "required": [
     "rapor_kimligi",
     "muhur",
     "muhur_ad",
     "icerik_ozeti",
     "uretim_tarihi",
     "bekleyen_bolumler",
     "veri",
     "pdf"
    ],
    "additionalProperties": false
   },
   "ImzaKaynak": {
    "type": "object",
    "properties": {
     "ilan_id": {
      "type": "integer"
     },
     "ilan_tarihi": {
      "type": [
       "string",
       "null"
      ]
     },
     "sayi": {
      "type": "string"
     },
     "sayfa": {
      "type": "string"
     },
     "ilan_turu": {
      "type": "string"
     },
     "alinti": {
      "type": "string"
     },
     "alinti_dogrulandi": {
      "type": "boolean"
     },
     "gazete_pdf": {
      "type": [
       "string",
       "null"
      ],
      "format": "uri"
     }
    },
    "required": [
     "ilan_id",
     "ilan_tarihi",
     "sayi",
     "sayfa",
     "ilan_turu",
     "alinti",
     "alinti_dogrulandi",
     "gazete_pdf"
    ],
    "additionalProperties": false
   },
   "ImzaKontrolSonucu": {
    "type": "object",
    "properties": {
     "sirket": {
      "$ref": "#/components/schemas/SirketOzet"
     },
     "kisi": {
      "type": "string"
     },
     "tarih": {
      "type": "string",
      "format": "date"
     },
     "islem": {
      "type": [
       "string",
       "null"
      ]
     },
     "tutar": {
      "type": [
       "number",
       "null"
      ]
     },
     "para_birimi": {
      "type": [
       "string",
       "null"
      ]
     },
     "sonuc": {
      "type": "string",
      "description": "yetkili · yetkili_degil · belirsiz (ilanlardan karar verilemiyor; gerekçelere bakın).",
      "enum": [
       "yetkili",
       "yetkili_degil",
       "belirsiz"
      ]
     },
     "sonuc_ad": {
      "type": "string"
     },
     "sonuc_en": {
      "type": "string"
     },
     "bicim": {
      "type": [
       "string",
       "null"
      ],
      "description": "Yetki biçimi.",
      "enum": [
       "tek_basina",
       "birlikte",
       null
      ]
     },
     "bicim_ad": {
      "type": [
       "string",
       "null"
      ]
     },
     "bicim_en": {
      "type": [
       "string",
       "null"
      ]
     },
     "gerekceler": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "kod": {
         "type": "string"
        },
        "etki": {
         "type": "string",
         "enum": [
          "olumlu",
          "olumsuz",
          "belirsiz",
          "bilgi"
         ]
        },
        "metin": {
         "type": "string"
        },
        "metin_en": {
         "type": "string"
        },
        "kaynak": {
         "anyOf": [
          {
           "$ref": "#/components/schemas/ImzaKaynak"
          },
          {
           "type": "null"
          }
         ]
        }
       },
       "required": [
        "kod",
        "etki",
        "metin",
        "metin_en",
        "kaynak"
       ],
       "additionalProperties": false
      }
     },
     "kurallar": {
      "type": "array",
      "description": "Uygulanan temsil kuralları (ilan ya da iç yönerge).",
      "items": {
       "type": "object",
       "properties": {
        "kapsam": {
         "type": "string"
        },
        "bicim": {
         "type": [
          "string",
          "null"
         ]
        },
        "tutar_siniri": {
         "type": [
          "string",
          "null"
         ]
        },
        "kim": {
         "type": "string"
        },
        "madde": {
         "type": "string"
        },
        "birlikte_imza": {
         "type": "array",
         "items": {
          "type": [
           "string",
           "null"
          ]
         }
        },
        "alinti": {
         "type": "string"
        },
        "ilan": {
         "anyOf": [
          {
           "$ref": "#/components/schemas/ImzaKaynak"
          },
          {
           "type": "null"
          }
         ]
        },
        "kaynak_turu": {
         "type": "string",
         "enum": [
          "ilan",
          "ic_yonerge"
         ]
        }
       },
       "required": [
        "kapsam",
        "bicim",
        "tutar_siniri",
        "kim",
        "madde",
        "birlikte_imza",
        "alinti",
        "ilan",
        "kaynak_turu"
       ],
       "additionalProperties": false
      }
     },
     "birlikte_imza": {
      "type": "array",
      "description": "Müşterek temsilde birlikte imzalayabilecekler.",
      "items": {
       "type": [
        "string",
        "null"
       ]
      }
     },
     "gorev_kayitlari": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "isim": {
         "type": [
          "string",
          "null"
         ]
        },
        "sifat": {
         "type": [
          "string",
          "null"
         ]
        },
        "temsil": {
         "type": [
          "string",
          "null"
         ]
        },
        "baslangic": {
         "type": [
          "string",
          "null"
         ]
        },
        "bitis": {
         "type": [
          "string",
          "null"
         ]
        },
        "bitis_nedeni": {
         "type": [
          "string",
          "null"
         ]
        },
        "gorev_bitis": {
         "type": [
          "string",
          "null"
         ]
        },
        "gorev_dayanak": {
         "type": [
          "string",
          "null"
         ]
        },
        "kaynak": {
         "anyOf": [
          {
           "$ref": "#/components/schemas/ImzaKaynak"
          },
          {
           "type": "null"
          }
         ]
        },
        "bitis_kaynak": {
         "anyOf": [
          {
           "$ref": "#/components/schemas/ImzaKaynak"
          },
          {
           "type": "null"
          }
         ]
        },
        "temsil_kaynak": {
         "anyOf": [
          {
           "$ref": "#/components/schemas/ImzaKaynak"
          },
          {
           "type": "null"
          }
         ]
        }
       },
       "required": [
        "isim",
        "sifat",
        "temsil",
        "baslangic",
        "bitis",
        "bitis_nedeni",
        "gorev_bitis",
        "gorev_dayanak",
        "kaynak",
        "bitis_kaynak",
        "temsil_kaynak"
       ],
       "additionalProperties": false
      }
     },
     "profil_hazir": {
      "type": "boolean"
     },
     "sinirlar": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "sinirlar_en": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "uyari": {
      "type": "string",
      "description": "Sonuç ilanlara dayanır; güncel imza sirküleriyle teyit edin."
     },
     "uyari_en": {
      "type": "string"
     }
    },
    "required": [
     "sirket",
     "kisi",
     "tarih",
     "islem",
     "tutar",
     "para_birimi",
     "sonuc",
     "sonuc_ad",
     "sonuc_en",
     "bicim",
     "bicim_ad",
     "bicim_en",
     "gerekceler",
     "kurallar",
     "birlikte_imza",
     "gorev_kayitlari",
     "profil_hazir",
     "sinirlar",
     "sinirlar_en",
     "uyari",
     "uyari_en"
    ],
    "additionalProperties": false
   },
   "ImzaKisiListesi": {
    "type": "object",
    "properties": {
     "sirket": {
      "$ref": "#/components/schemas/SirketOzet"
     },
     "profil_hazir": {
      "type": "boolean"
     },
     "kisiler": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "isim": {
         "type": [
          "string",
          "null"
         ]
        },
        "gorevde": {
         "type": "boolean"
        }
       },
       "required": [
        "isim",
        "gorevde"
       ],
       "additionalProperties": false
      }
     }
    },
    "required": [
     "sirket",
     "profil_hazir",
     "kisiler"
    ],
    "additionalProperties": false,
    "description": "`kisi` verilmeyen GET: profildeki yetkili adları."
   },
   "HizliSorguAdayi": {
    "type": "object",
    "properties": {
     "ulke": {
      "type": "string",
      "description": "ISO ülke kodu (TR; yurt dışında kaydın ülkesi, ZZ = LEI)."
     },
     "kimlik": {
      "type": "string",
      "description": "Dizin kimliği: Türkiye'de `MÜDÜRLÜK/sicil kökü` (ör. İSTANBUL/325075), yurt dışında sicil kimliği."
     },
     "mudurluk": {
      "type": [
       "string",
       "null"
      ],
      "description": "Ticaret sicil müdürlüğü (yalnız Türkiye); `sirket-ekle` gövdesine aynen verilir."
     },
     "sicil_no": {
      "type": [
       "string",
       "null"
      ],
      "description": "Sicil numarası (yalnız Türkiye)."
     },
     "unvan": {
      "type": "string",
      "description": "Unvan (Türkiye'de en yeni TTSG ilanındaki yazımı)."
     },
     "hukuki_bicim": {
      "type": "object",
      "properties": {
       "kod": {
        "type": "string",
        "description": "Ulawk biçim kodu (TR_AS, TR_LTD, YB_GMBH …; bilinmiyorsa BILINMIYOR)."
       },
       "yerel": {
        "type": [
         "string",
         "null"
        ],
        "description": "Yerel ad."
       },
       "en": {
        "type": [
         "string",
         "null"
        ],
        "description": "İngilizce ad."
       },
       "iso": {
        "type": [
         "string",
         "null"
        ],
        "description": "ISO 20275 (ELF) kodu; listede birebir karşılığı yoksa null."
       },
       "kategori": {
        "type": "string",
        "description": "Standart kategori: ANONIM, LIMITED, SAHIS_SIRKETI, KOOPERATIF, SUBE …"
       }
      },
      "required": [
       "kod",
       "yerel",
       "en",
       "iso",
       "kategori"
      ],
      "additionalProperties": false
     },
     "durum": {
      "type": "object",
      "properties": {
       "kod": {
        "type": "string",
        "enum": [
         "FAAL",
         "IFLAS_KONKORDATO",
         "TASFIYEDE",
         "KAPANDI",
         "BILINMIYOR"
        ]
       },
       "ad": {
        "type": "string"
       },
       "yerel": {
        "type": "string",
        "description": "Kaynaktaki ya da ilandaki ifade."
       },
       "uluslararasi": {
        "type": "string",
        "description": "Uluslararası karşılık (ACTIVE, PENDING_DISSOLUTION, CLOSED …)."
       }
      },
      "required": [
       "kod",
       "ad",
       "yerel",
       "uluslararasi"
      ],
      "additionalProperties": false
     },
     "il": {
      "type": [
       "string",
       "null"
      ],
      "description": "İl (müdürlükten; yalnız Türkiye)."
     },
     "adres": {
      "type": [
       "string",
       "null"
      ],
      "description": "Merkez adresi (kaynaklı profilin kimlik bölümünden; yoksa null)."
     },
     "kurulus": {
      "type": [
       "string",
       "null"
      ],
      "description": "Kuruluş tarihi (YYYY-AA-GG) ya da null.",
      "format": "date"
     },
     "son_ilan_tarihi": {
      "type": [
       "string",
       "null"
      ],
      "description": "Dizindeki en yeni ilan/olay tarihi.",
      "format": "date"
     },
     "kaynak": {
      "type": "string",
      "enum": [
       "ulawk_dizini"
      ]
     },
     "guncellik_tarihi": {
      "type": [
       "string",
       "null"
      ],
      "description": "Bilginin Ulawk'ta son gözlendiği gün; yanıtın güncel olduğu anlamına gelmez.",
      "format": "date"
     },
     "eslesme": {
      "type": "string",
      "description": "tam: sicil no / kimlik birebir ya da sade unvan aynı · yakin: unvan sorguyla başlıyor ya da çok benzer · kismi: tüm sözcükler geçiyor.",
      "enum": [
       "tam",
       "yakin",
       "kismi"
      ]
     },
     "skor": {
      "type": "number",
      "description": "0–1 benzerlik.",
      "minimum": 0,
      "maximum": 1
     },
     "takipte": {
      "type": "boolean",
      "description": "Şirket SİZİN listenizde mi (başka müşterilerin listesi hiçbir zaman söylenmez)."
     },
     "sirket_id": {
      "type": [
       "integer",
       "string",
       "null"
      ],
      "description": "Takipteyse şirket kimliğiniz (`/api/v1/sirketler/{id}/`)."
     },
     "profil": {
      "type": [
       "string",
       "null"
      ],
      "description": "Takipteyse kaynaklı profil adresi.",
      "format": "uri"
     }
    },
    "required": [
     "ulke",
     "kimlik",
     "mudurluk",
     "sicil_no",
     "unvan",
     "hukuki_bicim",
     "durum",
     "il",
     "adres",
     "kurulus",
     "son_ilan_tarihi",
     "kaynak",
     "guncellik_tarihi",
     "eslesme",
     "skor",
     "takipte",
     "sirket_id",
     "profil"
    ],
    "additionalProperties": false,
    "description": "Dizin adayı: yalnız şirket düzeyindeki alanlar; kişi adı yok."
   },
   "HizliSorguYaniti": {
    "type": "object",
    "properties": {
     "sorgu": {
      "type": "string"
     },
     "ulke": {
      "type": [
       "string",
       "null"
      ],
      "description": "Süzülen ülke ya da null (tümü)."
     },
     "adet": {
      "type": "integer"
     },
     "kaynak": {
      "type": "string",
      "enum": [
       "ulawk_dizini"
      ]
     },
     "bulunamadi": {
      "type": "boolean",
      "description": "Dizinde aday yok: şirketi takibe alarak kaynaklı profil oluşturun."
     },
     "aciklama": {
      "type": "string"
     },
     "takibe_al": {
      "type": "string",
      "description": "Takibe alma ucu (`POST`).",
      "format": "uri"
     },
     "adaylar": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/HizliSorguAdayi"
      }
     }
    },
    "required": [
     "sorgu",
     "ulke",
     "adet",
     "kaynak",
     "bulunamadi",
     "aciklama",
     "takibe_al",
     "adaylar"
    ],
    "additionalProperties": false
   }
  },
  "securitySchemes": {
   "anahtar": {
    "type": "apiKey",
    "in": "header",
    "name": "X-API-Key",
    "description": "Panel › API Anahtarları'ndan alınan anahtar (ulk_…)."
   },
   "gizli": {
    "type": "apiKey",
    "in": "header",
    "name": "X-API-Secret",
    "description": "Anahtarın gizli eşi (ulsk_…); yalnız oluşturulduğunda bir kez gösterilir."
   }
  }
 },
 "x-ulawk-kategoriler": {
  "durum": "Şirket durumu",
  "adres": "Adres",
  "ortaklik": "Ortaklık",
  "sermaye": "Sermaye",
  "yetkililer": "Yetkililer ve temsil",
  "unvan": "Unvan",
  "esas_sozlesme": "Esas sözleşme",
  "diger": "Diğer",
  "kapandi": "Kapanış (terkin)"
 }
}