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