Blesyum Core

me

16 uç · /api/v1/me

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

GET/api/v1/me

Me

Oturum
İstek
curl -X GET "https://api.blesyum.com/api/v1/me" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/v1/me/appearance

Read the signed-in user's appearance preferences (sidebar dock-magnify).

Oturum
İstek
curl -X GET "https://api.blesyum.com/api/v1/me/appearance" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PATCH/api/v1/me/appearance

Merge a patch into the signed-in user's appearance preferences.

Oturum
İstek
curl -X PATCH "https://api.blesyum.com/api/v1/me/appearance" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/me/avatar

Upload the caller's own profile photo (self-service, no permission gate — like

Oturum

[`update_profile`]). Multipart file stored under a user-scoped key in object storage; type verified by magic bytes (SEC-12), size-capped at `MAX_AVATAR_BYTES`. The previous avatar object (if any) is deleted. Writes the servable URL onto `core.users.avatar_url` and returns it.

İstek
curl -X POST "https://api.blesyum.com/api/v1/me/avatar" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/v1/me/avatar

Remove the caller's profile photo (self-service). Deletes the stored object and

Oturum

nulls the column. Idempotent — succeeds even when no avatar is set.

İstek
curl -X DELETE "https://api.blesyum.com/api/v1/me/avatar" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/v1/me/avatar/{*key}

Serve a profile photo. Only `users/<id>/avatar-*` keys are servable and the path

OturumYol parametresi: *key

is validated against traversal. Public but unguessable (the key embeds a random v7 id) so it loads in a plain `<img>`; same S3-redirect / local-stream split and long-lived immutable caching as branding assets.

İstek
curl -X GET "https://api.blesyum.com/api/v1/me/avatar/<*key>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/v1/me/consents

List the signed-in user's consents with withdrawal status (DG-05). Self-service

Oturum

read; requires a valid session only. Read-only, so no audit entry.

İstek
curl -X GET "https://api.blesyum.com/api/v1/me/consents" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/me/consents/withdraw

Withdraw a previously-granted consent (SEC-20 / DG-05).

Oturum
İstek
curl -X POST "https://api.blesyum.com/api/v1/me/consents/withdraw" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/v1/me/data-export

KVKK/GDPR "right to access" — export the signed-in user's personal data as

Oturum

JSON (SEC-19). Self-service; requires a valid session only.

İstek
curl -X GET "https://api.blesyum.com/api/v1/me/data-export" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/me/delete-account

KVKK/GDPR "right to be forgotten" (SEC-19): erase the signed-in user's

Oturum

account. Re-authenticates with the current password (irreversible) and refuses while they still own an active workspace.

İstek
curl -X POST "https://api.blesyum.com/api/v1/me/delete-account" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/v1/me/kb

Signed-in help center (SUP-12 ext): the public articles plus any the caller's

Oturum

role unlocks. The panel reads this instead of `/api/v1/kb` so an approved developer sees the developer guides in the list and on the article page.

İstek
curl -X GET "https://api.blesyum.com/api/v1/me/kb" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/v1/me/kb/{slug}

Signed-in help center (SUP-12 ext): one published article by slug, gated by

OturumYol parametresi: slug

audience. A caller without the role gets 404 — not 403 — so the existence of a developer-only guide is not disclosed.

İstek
curl -X GET "https://api.blesyum.com/api/v1/me/kb/<slug>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/me/leave-tenant

**Kullanıcı kendi isteğiyle çalışma alanından ayrılır** (2026-08-18).

Oturum

# Neden var Kullanıcı vakası: *"eklenen kişi kendi isteğiyle çıkabilmeli; bu sorun Meta Business'ta, Play Console'da var — adam bana 5 yıl önce yetki verdi, çıkamıyorum, illa onun silmesi lazım."* Doğru bir şikayet: üyelik iki taraflı bir ilişkidir ve bir tarafın onu bitirebilmesi için diğerinin iznine ihtiyacı olmamalı. Kişi ayrıca o çalışma alanının verisini GÖRMEYE devam ettiği için bu bir gizlilik sorunudur. # Kısıtlar * **Onay kodu ZORUNLU** — `leave-tenant/challenge` ile e-postaya gider (gerekçe orada). * **SAHİP ayrılamaz** (409). Önce sahipliği devretmeli; aksi hâlde sahipsiz bir çalışma alanı kalır ve faturalama/KYC kararlarını kimse veremez. * Ayrılan kişinin bekleyen davetleri de iptal edilir — yoksa eski bir davet bağlantısı onu geri alabilirdi. * Oturumun aktif kiracısı buysa, oturum kalan bir üyeliğe taşınır (yoksa kiracısız kalır). Aksi hâlde kişi ayrıldığı kiracının oturumuyla 403 duvarına çarpardı. İzin İSTEMEZ: bu kişinin kendi üyeliğidir. (`core.users.manage` istemek, tam da şikayet edilen "sahibinin insafına kalma" durumunu üretirdi.)

İstek
curl -X POST "https://api.blesyum.com/api/v1/me/leave-tenant" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/me/leave-tenant/challenge

**Ayrılma onay kodu iste** (2026-08-18, kullanıcı kararı: *"ayrılmadan önce maile kod

Oturum

gidecek, onay alacak, çalışma alanının adını yazacak, ağır güvenlik önlemleri"*). # Neden üç kapı Ayrılmak geri alınamaz: kişi kendi erişimini kapatır ve geri dönmek için bir yöneticinin onu YENİDEN davet etmesi gerekir. Üç kapının her biri FARKLI bir vakayı karşılıyor; biri diğerinin yerine geçmez: | Kapı | Neyi engeller | |---|---| | **Parola** | Çalınmış/açık bırakılmış oturumla kurbanı kendi alanından atmayı | | **Çalışma alanı adını yazma** | Yanlış tıklamayı ve YANLIŞ ALANDAN çıkmayı (çok üyelikli kullanıcı) | | **E-postaya giden kod** | Parolayı bilen ama posta kutusuna erişemeyen saldırganı | # Kod NEDEN parola+addan SONRA gönderiliyor Sırayı ters kurmak (önce kod, sonra parola) bu ucu ücretsiz bir posta bombası yapardı: saldırgan kurbanın kutusuna istediği kadar "ayrılma kodu" yağdırırdı. Bu sırada e-posta ancak parolayı ve alan adını doğru bilen birine gider. Yanlış parola **422** döner, 401 değil — 401 dönseydi merkezî oturum kapısı kullanıcıyı panelden atardı (kök AGENTS.md: "yeniden-kimlik ucu 422 döner").

İstek
curl -X POST "https://api.blesyum.com/api/v1/me/leave-tenant/challenge" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/me/locale

Set the signed-in user's preferred UI locale (I18N-03).

Oturum
İstek
curl -X POST "https://api.blesyum.com/api/v1/me/locale" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/me/profile

Self-service profile rectification (SEC-19 / KVKK): update own name/phone.

Oturum
İstek
curl -X POST "https://api.blesyum.com/api/v1/me/profile" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
Bu sayfa işine yaradı mı?