Markalama varlığı yükle

POST /v1/branding/assets · izin branding:write

Barındırılan giriş sayfası için bir görsel yükler: logo, favicon ya da arka plan görseli. Yanıttaki id, tema alanlarına (logo, favicon ya da background_image) yazdığınız değerdir (bkz. Markalamayı güncelle); görsel yayımladıktan sonra giriş sayfasında görünür.

Her görsel yalıtılmış bir süreçte çözülür ve en çok 1024 × 1024 piksel PNG olarak yeniden kodlanır; bütün meta veri atılır. Favicon için 32 px ve 180 px sürümler de üretilir. id işlenmiş PNG'nin SHA-256'sıdır; aynı görseli aynı alan için yeniden yüklemek var olan varlığı 200 OK ile döndürür.

Kabul edilen biçimler PNG, JPEG ve WebP'dir; ICO yalnız favicon için kabul edilir. SVG kabul edilmez. Yazı tipi yükleme yoktur.

Bir ortamda en çok 200 varlık ve toplam 50 MB bulunabilir.

İstek

Gövde multipart/form-data'dır; dosya en çok 1 MiB.

Parça Tür Zorunlu Açıklama
kind string evet logo, favicon ya da background_image.
file dosya evet Görsel. En çok 1 MiB ve bir kenarı en çok 8192 piksel.

Idempotency-Key ile yinelenen istek, çok parçalı sınırlayıcı dahil aynı baytları göndermelidir.

Yanıt

Yeni varlıkta 201 Created; aynı görsel aynı alan için daha önce yüklendiyse 200 OK.

{
  "id": "3f0c…e91a",
  "kind": "favicon",
  "url": "https://acme.eu1.keenauth.app/assets/3f0c…e91a.png",
  "width": 256,
  "height": 256,
  "byte_size": 48213,
  "source_format": "ico",
  "favicon_32_url": "https://acme.eu1.keenauth.app/assets/9b1d…04c2.png",
  "favicon_180_url": "https://acme.eu1.keenauth.app/assets/c7e2…5a10.png",
  "created_at": "2026-10-19T20:30:00Z"
}

byte_size, varlığın saklanan bütün PNG'lerinin boyutudur ve kotaya sayılır.

Hatalar

HTTP code Ne zaman
400 malformed_request Çok parçalı gövde okunamıyor ya da bir kind ve bir file dışında parça var.
401 unauthenticated Kimlik bilgisi yok, geçersiz ya da iptal edilmiş.
403 insufficient_permissions Kimlik bilgisinde gerekli izin yok.
403 quota_exceeded Ortamda zaten 200 varlık ya da 50 MB var.
413 payload_too_large Dosya 1 MiB'tan büyük.
415 unsupported_media_type Gövde multipart/form-data değil ya da dosya kabul edilen bir biçimde değil (errors[] içinde unsupported_media_type, svg_not_allowed, ico_favicon_only).
422 validation_failed kind ya da file eksik veya geçersiz (yazı tipinde /kind font_upload_disabled) ya da görsel kullanılamıyor: invalid_image, image_too_large, image_dimensions_too_large, image_output_too_large, image_processing_limit.
422 idempotency_key_reuse Aynı Idempotency-Key farklı gövdeyle kullanıldı.
429 rate_limited Hız sınırı aşıldı; Retry-After süresinden sonra yeniden deneyin.
503 service_unavailable Varlık deposu geçici olarak erişilemiyor; Retry-After süresinden sonra yeniden deneyin.

Örnek

curl -X POST https://api.eu.keenauth.com/v1/branding/assets \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -F kind=logo \
  -F file=@logo.png

CLI ile:

keenauth branding assets upload --kind logo --file logo.png