
# Markalama önizleme bağlantısı oluştur

`POST /v1/branding:preview-link` · izin `branding:write`

Barındırılan giriş sayfasını ortamın güncel markalama taslaklarıyla, yayımlanmadan önce gösteren bir bağlantı oluşturur. Sayfa her zaman en son taslağı çizer: taslağı değiştirip sayfayı yenilediğinizde değişikliği görürsünüz. Sayfanın üstünde önizleme olduğunu söyleyen bir şerit vardır ve giriş denetimlerinin hepsi kapalıdır. Taslak metin geçersiz kılmaları sayfanın dilinde gösterilir; önizleme şeridini değiştiremezler.

Bağlantı 10 dakika geçerlidir ve geri çağrılamaz; süre dolunca `404` verir. Bağlantıyı bilen herkes taslağı görebilir; yalnız tasarımı inceleyecek kişilerle paylaşın. Bir ortamda aynı anda en çok 20 geçerli bağlantı olabilir.

## İstek

Gövde isteğe bağlıdır. Gövde yoksa sayfa yalnız ortam taslağını gösterir.

| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| `application_id` | string | hayır | Bu uygulamanın taslağını da uygula (`app_…`). |
| `org_id` | string | hayır | Bu organizasyonun taslağını da uygula (`org_…`): logosu ve birincil rengi. |

## Yanıt

`200 OK`. `url` yalnız bu yanıtta, `Cache-Control: no-store` ile döner. Aynı `Idempotency-Key` ile tekrarlanan istek `url` döndürmez, `secret_redacted: true` döner; yeni bir bağlantı oluşturun.

```json
{
  "url": "https://acme.eu1.keenauth.app/u/preview?token=…",
  "expires_at": "2026-10-19T12:10:00Z"
}
```

## Hatalar

| HTTP | code | Ne zaman |
|---|---|---|
| 400 | `unknown_field` | Gövdede bilinmeyen bir alan var ya da gövde bir JSON nesnesi değil. |
| 404 | `not_found` | Uygulama bu ortamda yok. |
| 422 | `validation_failed` | `application_id` ya da `org_id` geçerli bir kimlik değil (`invalid_value`). |
| 401 | `unauthenticated` | Kimlik bilgisi eksik, geçersiz ya da iptal edilmiş. |
| 403 | `insufficient_permissions` | Kimlik bilgisinin gereken izni yok. |
| 429 | `rate_limited` | Ortamda zaten 20 geçerli bağlantı var ya da hız sınırı aşıldı; `Retry-After` süresinden sonra yeniden deneyin. |
| 503 | `service_unavailable` | Bir bağımlılık geçici olarak kullanılamıyor; `Retry-After` süresinden sonra yeniden deneyin. |

## Örnek

```bash
curl -X POST https://api.eu.keenauth.com/v1/branding:preview-link \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"application_id":"app_01jb…"}'
```

CLI ile:

```bash
keenauth branding preview-link --application-id app_01jb…
```
