Web (Site Kurucu)

_web

94 uç · /api/web/v1/_web

İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 94 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.

POST/_web/aramayi-kaydet

POST /_web/aramayi-kaydet — kayıtlı arama oluştur.

Oturum

🔴 Kaydetmek ile HABER ALMAK ayrı kararlardır: uyarısı varsayılan olarak açık bir kayıt, kullanıcının istemediği bir e-posta akışı demekti (bülten çift onayının aynı dersi).

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/aramayi-kaydet" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/aramayi-sil/{id}

POST /_web/aramayi-sil/{id}

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/aramayi-sil/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/bagis/{slug}/bagisla

POST /_web/bagis/{slug}/bagisla — bağış sözü.

OturumYol parametresi: slug

🔴 Kapı UÇTADIR: kampanya açık mı, tutar asgarinin üstünde mi, önerilen dışı tutara izin var mı, düzenli bağış açık mı, aralık kampanyanın kümesinde mi, vergi numarası isteniyorsa sağlaması doğru mu — hepsi burada yeniden sorulur (formu çizmemek bir kapı değildir).

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/bagis/<slug>/bagisla" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/bagisci/{kod}

GET /api/web/v1/donation-campaigns/{id}

OturumYol parametresi: kod
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/bagisci/<kod>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/bagisci/{kod}/iptal

POST /api/web/v1/donations/{id}/cancel — ekip sözü kapatır (sebep zorunlu).

OturumYol parametresi: kod
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/bagisci/<kod>/iptal" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/bagisci/{kod}/makbuz/{no}

GET /_web/bagisci/{kod}/makbuz/{no}

OturumYol parametresi: kodno
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/bagisci/<kod>/makbuz/<no>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/bagisci/{kod}/ozet/{yil}

GET /_web/bagisci/{kod}/ozet/{yil}

OturumYol parametresi: kodyil
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/bagisci/<kod>/ozet/<yil>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/bant/{id}/git

GET /_web/bant/{id}/git — tıkı say, **303** ile hedefe gönder.

OturumYol parametresi: id

🔴 Hedef SUNUCUDAN okunur ve ALLOWLIST'ten geçer (menu::url_gecerli): hedefi sorgudan alan bir sürüm, sitenin alan adını taşıyan açık bir yönlendirici olurdu ve kimlik avı bağlantıları o adresten dağıtılırdı.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/bant/<id>/git" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/begen/{post}

POST /_web/begen/{post} — beğeniyi AÇ/KAPA (toggle).

OturumYol parametresi: post

⚠ Toggle bilinçli: ayrı bir "beğeniyi geri al" ucu, ziyaretçiye iki düğme çizmek ve hangisinin görüneceğini istemcide karar vermek demekti — JS'siz düzlemde o karar sunucunundur.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/begen/<post>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/bilet/{code}

GET /_web/bilet/{code} — katılımcının bileti.

OturumYol parametresi: code

🔴 Sayfa noindextir ve önbelleğe GİRMEZ: kod bir sırdır ve bu sayfa bir kişiye aittir. Arama motoruna verilen ya da paylaşılan bir önbellek, bileti başkasına açardı.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/bilet/<code>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/bilet/{code}/iptal

POST /api/web/v1/donations/{id}/cancel — ekip sözü kapatır (sebep zorunlu).

OturumYol parametresi: code
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/bilet/<code>/iptal" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/birak

GET /_web/bulten — **onay/çıkış SAYFASI** (eylem YAPMAZ).

Oturum

🔴 Mutasyon burada YAPILMAZ: e-posta istemcileri bağlantıları ÖN YÜKLER ve GET'e bağlı bir çıkış, ziyaretçiyi hiç tıklamadan abonelikten çıkarırdı.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/birak" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/birak

POST /api/web/v1/ab-tests/{id}/apply — kazananı yayına al.

Oturum

🔴 Yayın AYNI kapıdan (pages::yayinla): ikinci bir yayın yolu, arama indeksini · dış duyuruyu · önbellek kuşağını yeniden hatırlamak zorunda kalan ikinci bir yer açardı. ⚠ Test ÖNCE applied yapılır, yayın SONRA: yayın kapısı "koşan test varsa yayın yok" der ve sıra ters olsaydı kendi kapısına takılırdı.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/birak" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/bulten

GET /_web/bulten — **onay/çıkış SAYFASI** (eylem YAPMAZ).

Oturum

🔴 Mutasyon burada YAPILMAZ: e-posta istemcileri bağlantıları ÖN YÜKLER ve GET'e bağlı bir çıkış, ziyaretçiyi hiç tıklamadan abonelikten çıkarırdı.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/bulten" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/bulten

POST /api/web/v1/ab-tests/{id}/apply — kazananı yayına al.

Oturum

🔴 Yayın AYNI kapıdan (pages::yayinla): ikinci bir yayın yolu, arama indeksini · dış duyuruyu · önbellek kuşağını yeniden hatırlamak zorunda kalan ikinci bir yer açardı. ⚠ Test ÖNCE applied yapılır, yayın SONRA: yayın kapısı "koşan test varsa yayın yok" der ve sıra ters olsaydı kendi kapısına takılırdı.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/bulten" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/cerez

POST /_web/cerez — kararı yaz, **303** ile geri dön.

Oturum
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/cerez" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/dokuman/{slug}/geri-bildirim

POST /_web/dokuman/{slug}/geri-bildirim (BLE22-14074 · 14076)

OturumYol parametresi: slug

🔴 Ziyaretçi KİMLİĞİ saklanmaz: mükerrer koruması gün + IP'nin ÖZETİNDEN türer (form gönderimlerinin ziyaretci_ozeti kararı). Ham IP ya da çerez yazan bir sürüm, çerezsiz analitik sözünü bozardı. ⚠ Mükerrer oy bir HATA DEĞİLDİR: aynı ziyaretçi ikinci kez oy verirse teşekkür ekranı gösterilir ve satır yazılmaz (formların "mükerrer = başarı" kararı).

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/dokuman/<slug>/geri-bildirim" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/dokuman/{slug}/md

🔴 Markdown ikizi KAYNAKTAN üretilir; tanınmayan blok METNİYLE yazılır.

OturumYol parametresi: slug
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/dokuman/<slug>/md" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/dokuman/{slug}/oneri

GET /arama.json — canlı öneri (BLE2-13461).

OturumYol parametresi: slug

⚠ Site CSP'sinde script-src YOK, yani bu ucu SİTENİN kendisi çağıramaz. Panelin önizlemesi ve dış istemciler (bir gün tema JS'i açılırsa) için duruyor — ve **bugün kullanılmıyor olması** bir eksiklik değil, mimarinin sonucudur. Ziyaretçinin araması GET /arama formuyla, JS'siz çalışır.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/dokuman/<slug>/oneri" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/duyuru-kapat

POST /_web/duyuru-kapat — çerezi yaz, **303** ile geri dön.

Oturum

⚠ Kampanya bandı da BU kapıdan kapanır (WEB15 · BLE22-13668): ikinci bir kapatma ucu, çerezi iki farklı biçimde yazma riskiydi. Band kimliği geldiyse kapatma AYRICA sayılır — tık ve kapatma bandın GERÇEK olaylarıdır (gösterim önbellekten dönen isteklerde sayılamaz, web.promo_band_dailynin belgesi).

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/duyuru-kapat" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/e/a/{queue}/{jeton}

GET /_web/e/a/{queue}/{jeton} — açılma pikseli.

OturumYol parametresi: queuejeton

🔴 İmza geçersizse de PİKSEL döner (kaydetmeden): 404 dönen bir uç, mektubun kutuda kırık bir görsel göstermesi demektir ve alıcıya izlendiğini söyler.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/e/a/<queue>/<jeton>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/e/t/{queue}/{jeton}

GET /_web/e/t/{queue}/{jeton}?u=<hedef> — tıklama ve yönlendirme.

OturumYol parametresi: queuejeton

🔴 İmza geçersizse YÖNLENDİRME YAPILMAZ. Yapan bir sürüm, müşterinin alan adını herkesin kullanabileceği bir açık yönlendiriciye çevirirdi.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/e/t/<queue>/<jeton>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/eposta/olay/{site}/{jeton}

POST /_web/eposta/olay/{site}/{jeton} — sağlayıcı olay bildirimi.

OturumYol parametresi: sitejeton

# 🔴 Geçersiz imzada 401 döner, 200 değil "Sağlayıcı tekrar denemesin" diye her şeye 200 demek, yanlış yapılandırılmış bir webhook'u sonsuza kadar sessizce yutmaktır. Sağlayıcı tekrarlanan 401'de kancayı kapatır — ve bu DOĞRU davranıştır: kimse bize onun adına yazamamalı. ⚠ Doğru imzalı bir gövdedeki tanınmayan olaylar sessizce atlanır: sağlayıcı yarın yeni bir olay türü ekleyebilir ve onun için 4xx dönmek, çalışan kancayı bozar.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/eposta/olay/<site>/<jeton>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/etkinlik/{slug}/ics

GET /_web/etkinlik/{slug}/ics — tek etkinliğin takvim dosyası.

OturumYol parametresi: slug
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/etkinlik/<slug>/ics" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/etkinlik/{slug}/kayit

POST /_web/etkinlik/{slug}/kayit

OturumYol parametresi: slug

🔴 Başarıda **303**: 302'de bazı istemciler POST'u TEKRARLAR ve ziyaretçi sayfayı yenileyince ikinci bir kayıt doğar (yorumların aynı kararı).

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/etkinlik/<slug>/kayit" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/etkinlikler.ics

GET /_web/etkinlikler.ics — sitenin takvim beslemesi.

Oturum
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/etkinlikler.ics" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/favori/{item}

POST /_web/favori/{item} — favoriyi AÇ/KAPAT (aynı düğme).

OturumYol parametresi: item

🔴 İki ayrı uç (ekle/çıkar) DEĞİL: aynı düğmenin iki hâli tek yerde karar verilir; iki uç, birinde uygulanıp öbüründe unutulan bir kapı (tavan · yayın kontrolü) demekti (beğeninin aynı kararı).

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/favori/<item>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/form/{form}

POST /api/web/v1/sites/{site}/newsletter/campaigns/{id}/send

OturumYol parametresi: form
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/form/<form>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/inceleme

GET /_web/inceleme?p=…&e=…&s=…

Oturum
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/inceleme" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/inceleme

POST /_web/inceleme — misafir notu (form-encoded).

Oturum
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/inceleme" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/kaynak/{hak}/{jeton}

Adresi indir — **SSRF kapısından geçerek**.

OturumYol parametresi: hakjeton

🔴 Kapı rss::adres_gecerli: adres KİRACININ yazdığı bir alandır ve istek SUNUCUMUZDAN çıkar. İkinci bir allowlist yazan sürümde biri güncellenir, öbürü unutulur — ve unutulan taraf iç ağı taramanın aracı olur. ⚠ Yönlendirme İZLENMEZ: allowlist'ten geçen bir adres, 302 ile iç ağa yollayabilir. Kapının arkasından dolaşmanın en ucuz yolu budur. # Errors Adres reddedilirse, istek düşerse ya da yanıt 2xx değilse.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/kaynak/<hak>/<jeton>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/kurs/ders-geri-al

POST /_web/kurs/ders-geri-al

Oturum

⚠ İşaret KALDIRILABİLİR: bu bir denetim defteri değil, öğrencinin kendi kaydıdır. Yanlışlıkla işaretleyen öğrenciyi kursu bitirmiş göstermek, sertifikayı da yanlış kişiye verirdi.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/kurs/ders-geri-al" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/kurs/ders-tamam

POST /_web/kurs/ders-tamam

Oturum
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/kurs/ders-tamam" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/kurs/dosya/{ders}

GET /_web/kurs/dosya/{ders} — dosya dersinin eki.

OturumYol parametresi: ders

🔴 KAPIDAN geçer: medya kütüphanesinin public adresini sayfaya yazmak, kilitli dersin ekini adresi bilen herkese açardı. ⚠ Var olmayan ders ile ERİŞİLEMEYEN ders aynı cevabı almaz: erişilemeyende sebep söylenir (kayıt/damla/sıra) — burada kimlik saydırma riski yok, ders kimlikleri zaten kurs sayfasında yazılı.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/kurs/dosya/<ders>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/kurs/kayit

POST /_web/etkinlik/{slug}/kayit

Oturum

🔴 Başarıda **303**: 302'de bazı istemciler POST'u TEKRARLAR ve ziyaretçi sayfayı yenileyince ikinci bir kayıt doğar (yorumların aynı kararı).

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/kurs/kayit" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/kurs/not

PATCH /api/web/v1/donations/{id} — ekip notu (bağışçıya GÖSTERİLMEZ).

Oturum
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/kurs/not" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/kurs/odev

POST /_web/kurs/odev (multipart)

Oturum

🔴 Dosya MEDYA KÜTÜPHANESİNE GİRMEZ ve public yolu YOKTUR: öğrencinin teslimi kişisel veridir (form ekinin ve üye belgesinin aynı kararı). 🔴 Sıra: önce NESNE, sonra SATIR — reddedilen dosyada satır HİÇ olmaz.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/kurs/odev" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/kurs/sinav-basla

POST /_web/kurs/sinav-basla

Oturum

🔴 Soru seti BURADA DONAR (question_ids + seed): her okumada rastgele seçen bir sınavda, sayfayı yenileyen öğrenci yeni sorular alır ve hiçbir sonuç karşılaştırılabilir olmaz.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/kurs/sinav-basla" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/kurs/sinav-bitir

POST /_web/kurs/sinav-bitir

Oturum

🔴 Süre dolmuşsa da AYNI yol çalışır — "otomatik teslim" budur: kaydedilenler puanlanır, durum expired değil GERÇEK sonucu taşır (passed/failed/grading); yalnız hiç cevap yoksa expired kalır.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/kurs/sinav-bitir" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/kurs/sinav-cevap

POST /_web/kurs/sinav-cevap

Oturum
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/kurs/sinav-cevap" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/kurs/soru

POST /_web/kurs/soru

Oturum

🔴 Yanıtın üstü AYNI DERSTE olmalı: başka dersin sorusuna yanıt yazan bir istek, o dersin öğrencilerine görünmeyen bir yanıt üretirdi.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/kurs/soru" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/media/{*key}

Serve

OturumYol parametresi: *key
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/media/<*key>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/onizleme

GET /_web/onizleme?v=…&e=…&s=… — ziyaretçi düzleminde.

Oturum
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/onizleme" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/portal/belge

POST /_web/portal/belge — üye kendi belgesini yükler (multipart).

Oturum

🔴 Kapı UÇTADIR: formu gizlemek bir kapı değildir. portal_member_upload kapalıysa 403; özel nitelikli modda rıza yoksa 403.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/portal/belge" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/portal/belge/{id}

GET /_web/portal/belge/{id} — belge indirme.

OturumYol parametresi: id

🔴 attachment + nosniff + no-store: PDF inline açılırsa içindeki JS sitenin origin'inde koşar. Var olmayan belge ile BAŞKASININ belgesi AYNI cevabı alır (404): "var ama senin değil" demek belge kimliklerini saydırır.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/portal/belge/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/portal/mesaj

POST /_web/portal/mesaj — üye ekibe yazar.

Oturum
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/portal/mesaj" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/portal/riza

POST /_web/portal/riza — özel nitelikli veri için açık rıza.

Oturum

🔴 Aynı rıza İKİNCİ kez yazılmaz (aktif kayıt varsa): her tıklamada yeni satır açan bir sürüm defteri kopyalarla doldururdu.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/portal/riza" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/portal/riza-geri-al

POST /_web/portal/riza-geri-al — rızayı DAMGALAR, silmez.

Oturum
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/portal/riza-geri-al" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/randevu

POST /api/web/v1/sites/{site}/ab-tests

Oturum

🔴 KONTROL VARYANTINI SUNUCU EKLER ve sayfanın CANLI sürümünü kullanır. Kontrolü istemciye bıraktığımız bir sürümde panel yanlış (ya da eski) bir sürümü taban gösterebilirdi — ve karşılaştırmanın tabanı, ziyaretçinin gerçekte gördüğü sayfa OLMAK ZORUNDADIR.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/randevu" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/randevu/{code}

GET /api/web/v1/donation-campaigns/{id}

OturumYol parametresi: code
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/randevu/<code>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/randevu/{code}/iptal

POST /api/web/v1/donations/{id}/cancel — ekip sözü kapatır (sebep zorunlu).

OturumYol parametresi: code
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/randevu/<code>/iptal" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/sertifika

GET /_web/sertifika — kod giriş formu.

Oturum

⚠ Form GET'tir ve sonuç KENDİ ADRESİNE taşınır: doğrulanan belgenin bağlantısı paylaşılabilir olmalı (POST edilen bir doğrulama, e-postayla gönderilemezdi).

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/sertifika" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/sertifika/{seri}

Eylem ve değeri doğrula — saf karar.

OturumYol parametresi: seri

# Errors Eylem ya da değer kümenin dışındaysa.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/sertifika/<seri>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/sertifika/{seri}/pdf

GET /_web/sertifika/{seri}/pdf

OturumYol parametresi: seri

⚠ Belge kodun KENDİSİYLE korunur: kodu bilen kişi zaten belgeyi görmüştür. İkinci bir kapı (giriş) koymak, işverenin PDF'i indirmesini engellerdi.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/sertifika/<seri>/pdf" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/siparis

GET /_web/sertifika — kod giriş formu.

Oturum

⚠ Form GET'tir ve sonuç KENDİ ADRESİNE taşınır: doğrulanan belgenin bağlantısı paylaşılabilir olmalı (POST edilen bir doğrulama, e-postayla gönderilemezdi).

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/siparis" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/siparis/{kod}

GET /_web/siparis/{kod} — takip sayfası.

OturumYol parametresi: kod

🔴 OTURUMSUZDUR: yemek siparişi için hesap açtırmak, siparişin kendisini kaybettirir. Kapı, tahmin edilemez kod + IP hız sınırıdır.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/siparis/<kod>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/siparis/cikar

POST /_web/siparis/cikar

Oturum
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/siparis/cikar" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/siparis/ekle

İki sayımı topla (öğe öğe biriktirme).

Oturum
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/siparis/ekle" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/siparis/ver

POST /_web/siparis/ver

Oturum
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/siparis/ver" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/sube-sec

Ağırlıklı varyant seçimi.

Oturum

⚠ rastgele çağıranın ürettiği bir sayıdır (test edilebilirlik): burada üretilseydi seçimin kendisi ölçülemezdi. 🔴 Toplam ağırlık 0 olamaz (şema weight >= 1 der); yine de savunma olarak ilk varyant döner — None dönen bir sürüm, çağrı yerinde sessizce "test yok" gibi davranırdı.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/sube-sec" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/teklif/{kod}

GET /api/web/v1/donation-campaigns/{id}

OturumYol parametresi: kod
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/teklif/<kod>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/teklif/{kod}/pdf

GET /_web/sertifika/{seri}/pdf

OturumYol parametresi: kod

⚠ Belge kodun KENDİSİYLE korunur: kodu bilen kişi zaten belgeyi görmüştür. İkinci bir kapı (giriş) koymak, işverenin PDF'i indirmesini engellerdi.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/teklif/<kod>/pdf" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/teklif/{kod}/yanit

POST /_web/teklif/{kod}/yanit — müşterinin kabulü ya da reddi.

OturumYol parametresi: kod

🔴 Kapı UÇTADIR: sayfanın formu çizmemesi bir kapı değildir. Uç durumu, süreyi ve revizyonu satır KİLİTLİYKEN yeniden sorar (teklif::yanit_kapisi). 🔴 Kabul ONAY KUTUSU + AD ister ve ikisi de SUNUCUDA sorulur.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/teklif/<kod>/yanit" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/tur-rezervasyonu/{kod}

GET /api/web/v1/donation-campaigns/{id}

OturumYol parametresi: kod
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/tur-rezervasyonu/<kod>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/tur-rezervasyonu/{kod}/iptal

POST /api/web/v1/donations/{id}/cancel — ekip sözü kapatır (sebep zorunlu).

OturumYol parametresi: kod
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/tur-rezervasyonu/<kod>/iptal" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/tur/{slug}/rezervasyon

GET /api/web/v1/tour-bookings/{id} — rezervasyon + yolcular + defter +

OturumYol parametresi: slug

iptal önizlemesi.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/tur/<slug>/rezervasyon" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/unlock

GET /_web/onizleme?v=…&e=…&s=… — ziyaretçi düzleminde.

Oturum
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/unlock" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/urun-gorseli/{*key}

GET /_web/urun-gorseli/{*key} — mağaza ürün görselinin **aynı origin**

OturumYol parametresi: *key

vekili. # 🔴 Neden vekil ŞART Ziyaretçi sayfalarının CSP'si img-src 'self' data:tır (WEB-CSP-01). Mağazanın host'u BAŞKA bir origin'dir: doğrudan <img src="https://…shop…"> yazan bir sürümde görsel **sessizce** engellenir — curl doğru HTML'i gösterir, uç 200 döner, log temizdir ve hata YALNIZ ziyaretçinin ekranındadır. ⚠ Baytlar uygulamadan akar; yönlendirme (302) YAPILMAZ — 302'nin hedefi de çapraz origin olurdu ve CSP onu da keserdi.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/urun-gorseli/<*key>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/2fa

POST /_web/uye/2fa — ikinci adım.

Oturum
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/2fa" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/2fa-baslat

POST /_web/uye/2fa-baslat — sır üretir ve DOĞRULAMA bekler.

Oturum

🔴 Sır üretilir ama 2FA **AÇILMAZ**: kodu bir kez doğrulamadan açan bir sürüm, uygulamasına ekleyemeyen kullanıcıyı kendi hesabından kilitler. 🔴 **QR ÜRETİLMEZ ve bu bilinçli.** QR bir görüntü kodlayıcı (yeni bağımlılık + yeni bir ayrıştırma yüzeyi) ister; kimlik doğrulayıcı uygulamaların hepsi **elle anahtar girmeyi** destekler. Ekran hem base32 anahtarı hem otpauth:// bağlantısını verir — bağlantı mobilde doğrudan uygulamayı açar.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/2fa-baslat" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/2fa-kapat

POST /_web/uye/2fa-kapat — **PAROLA sorar**.

Oturum

🔴 Parolasız bir kapatma, açık kalmış bir oturumu eline geçiren kişinin ikinci faktörü tek tıkla kaldırması demekti — yani faktörün kendisini iptal etmek.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/2fa-kapat" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/2fa-onayla

POST /_web/uye/2fa-onayla — kodu doğrula ve 2FA'yı AÇ.

Oturum
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/2fa-onayla" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/avatar

POST /_web/uye/avatar — giriş yapmış üye profil fotoğrafını yükler.

Oturum

# 🔴 Avatar MEDYA KÜTÜPHANESİNE girmez Kütüphane bir İÇERİK deposudur (seçilir, sayfaya konur, kiracının kotasından düşer); avatar üyenin KİŞİSEL VERİSİDİR. Aynı rafa koymak, üyenin yüklediği fotoğrafı ilk medya seçicisinde ekibin önüne çıkarırdı (form eklerinin aynı kararı). # 🔴 Sunum yolu İKİNCİ bir kapı AÇMAZ Baytlar var olan /_web/media/{key} kapısından akar: anahtar web/<tenant>/ önekiyle doğduğu için çapraz-kiracı guard'ı onu zaten kapsıyor. İkinci bir sunum yolu, o guard'ın ikinci bir kopyası demekti.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/avatar" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/avatar-sil

POST /_web/uye/avatar-sil — üye kendi fotoğrafını kaldırır.

Oturum

🔴 Önce SATIR, sonra NESNE: ters sırada bir an için *satırı olan ama nesnesi olmayan* avatar doğar ve sayfada KIRIK görsel çıkar (medyanın aynı doktrini).

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/avatar-sil" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/cikis

POST /_web/uye/cikis — oturumu SUNUCUDA da kapatır.

Oturum

🔴 Yalnız çerezi silmek YETMEZ: jeton bir yerde kopyalanmışsa hâlâ geçerlidir. Satır revoked_at ile kapatılır.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/cikis" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/uye/davet

GET /_web/uye/davet — daveti kabul formu (**mutasyon YOK**).

Oturum
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/uye/davet" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/davet

POST /_web/uye/davet — parolayı belirler ve üyeliği AKTİF eder.

Oturum
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/davet" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/uye/dogrula

GET /_web/uye/dogrula — **mutasyon YAPMAZ**.

Oturum

🔴 E-posta istemcileri bağlantıları ÖN YÜKLER: GET'te doğrulayan bir sürümde hesap, kullanıcı tıklamadan "doğrulanmış" olurdu (bültenin aynı dersi).

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/uye/dogrula" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/dogrula

Eylem ve değeri doğrula — saf karar.

Oturum

# Errors Eylem ya da değer kümenin dışındaysa.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/dogrula" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/giris

POST /api/web/v1/events/{id}/checkin — kapı girişi (BLE22-14034).

Oturum

🔴 İkinci okutma HATA DEĞİL, BİLGİDİR: "zaten giriş yaptı" der ve NE ZAMAN yaptığını söyler. Kapıda tartışma çıkaran şey, cevabı olmayan bir hatadır. 🔴 İPTAL edilmiş ve BEKLEME listesindeki bilet içeri ALINMAZ ve sebebi ayrı ayrı söylenir — "geçersiz kod" demek, kapıdaki görevliyi çaresiz bırakır.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/giris" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/hesabimi-sil

POST /_web/uye/hesabimi-sil — KVKK "unutulma hakkı" (BLE22-13599).

Oturum

🔴 Anonimleştirme DEĞİL SİLME: üyelik kaydı kişisel veridir ve kullanıcı silinmesini istiyor. Yorumları gibi ilişkili içerik için karar AYRI verilir (bugün yorumlar üyeliğe bağlı değil).

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/hesabimi-sil" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/kayit

POST /_web/etkinlik/{slug}/kayit

Oturum

🔴 Başarıda **303**: 302'de bazı istemciler POST'u TEKRARLAR ve ziyaretçi sayfayı yenileyince ikinci bir kayıt doğar (yorumların aynı kararı).

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/kayit" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/oturumlari-kapat

POST /_web/uye/oturumlari-kapat — ÖTEKİ cihazlardaki oturumları kapatır

Oturum

(BLE22-14088).

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/oturumlari-kapat" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/uye/parola

GET /_web/uye/parola — yeni parola formu (mutasyon YOK).

Oturum
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/uye/parola" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/parola

POST /_web/uye/parola — parolayı değiştirir ve **TÜM oturumları kapatır**.

Oturum

🔴 Parola değişiminde eski oturumlar kapanmazsa, hesabı ele geçiren kişi parola sıfırlansa bile içeride kalır.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/parola" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/parola-degistir

POST /_web/uye/parola-degistir — giriş yapmış üye parolasını değiştirir.

Oturum

🔴 MEVCUT parola sorulur: sorulmayan bir sürümde, açık kalmış bir oturumu eline geçiren kişi hesabı kalıcı olarak devralırdı. 🔴 ÖTEKİ oturumlar kapanır, BU oturum kalır: kullanıcıyı kendi işleminden sonra dışarı atmak, parolayı değiştirmekten caydırır.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/parola-degistir" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/parola-talep

POST /_web/uye/parola-talep — sıfırlama bağlantısı gönderir.

Oturum

🔴 Cevap her durumda AYNI: adres kayıtlı olmasa da "gönderildi" denir (hesap sayımını engeller).

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/parola-talep" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/uye/profil

POST /_web/uye/profil — üye kendi adını günceller (BLE22-13601).

Oturum

🔴 E-POSTA BURADAN DEĞİŞMEZ: adres kimliğin kendisidir ve değişimi yeni adresin DOĞRULANMASINI ister; tek adımda değiştiren bir sürüm, yazım hatasıyla hesabı ulaşılamaz yapardı.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/uye/profil" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/veri-talebi

POST /api/web/v1/sites/{site}/ab-tests

Oturum

🔴 KONTROL VARYANTINI SUNUCU EKLER ve sayfanın CANLI sürümünü kullanır. Kontrolü istemciye bıraktığımız bir sürümde panel yanlış (ya da eski) bir sürümü taban gösterebilirdi — ve karşılaştırmanın tabanı, ziyaretçinin gerçekte gördüğü sayfa OLMAK ZORUNDADIR.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/veri-talebi" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/_web/veri-talebi/dogrula

GET /_web/uye/dogrula — **mutasyon YAPMAZ**.

Oturum

🔴 E-posta istemcileri bağlantıları ÖN YÜKLER: GET'te doğrulayan bir sürümde hesap, kullanıcı tıklamadan "doğrulanmış" olurdu (bültenin aynı dersi).

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/_web/veri-talebi/dogrula" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/veri-talebi/dogrula

Eylem ve değeri doğrula — saf karar.

Oturum

# Errors Eylem ya da değer kümenin dışındaysa.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/veri-talebi/dogrula" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/yas

POST /_web/yas — doğum yılını değerlendir, **303** ile geri dön.

Oturum

🔴 Yıl SAKLANMAZ: yalnız "asgari yaşı geçti" bilgisi çerezde durur. Doğum yılını deftere yazan bir sürüm, yaş kapısı kurmanın bedelini yeni bir kişisel veri yığınına çevirirdi (veri minimizasyonu, KVKK m.4).

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/yas" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/yorum-sikayet/{comment}

POST /_web/yorum-sikayet/{comment} — yorumu şikayet et.

OturumYol parametresi: comment
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/yorum-sikayet/<comment>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/_web/yorum/{post}

POST /api/web/v1/sites/{site}/newsletter/campaigns/{id}/send

OturumYol parametresi: post
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/_web/yorum/<post>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
Bu sayfa işine yaradı mı?