Sunucu emojileri¶
Özel emoji, tek bir sunucunun sahip olduğu bir görseldir. Üyeler onu mesajlarda <:name:id> (hareketliyse <a:name:id>) olarak ve tepkilerde kullanır. Emoji meta verilerini getir, bir emojiyi sunucusuna üye olmadan çözümler.
Tüm yollar https://tebhos.com/api/v1 adresine görelidir, kimlik doğrulama gerektirir ve hem kullanıcı oturumlarını hem de bot token'larını kabul eder. Sunucunun üyesi olmayan veya gereken izne sahip olmayan bir çağıran 403 FORBIDDEN alır. Hata gövdeleri Hatalar sayfasındaki biçime uyar.
Emoji kimlikleri¶
Emoji id değeri, tüm sunucular genelinde benzersiz bir snowflake dizesidir. Mesaj işaretlemesinde, tepkilerde ve bu sayfadaki her yolda kullanılacak kimlik budur.
Eski UUID tanımlayıcıları
21 Eylül 2026'ya kadar API emoji id değeri olarak bir UUID döndürüyordu. Emojiler bu tür tanımlayıcıyı hâlâ legacy_id olarak taşır (yeni emojiler de bir tane alır); böylece eski istemciler, saklanmış bağlantılar ve mesaj işaretlemesi çalışmaya devam eder. emoji_id alan her yol snowflake'i veya eski UUID'yi kabul eder. Yeni kod yalnızca id kullanmalıdır.
Sunucu emojisi nesnesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| id | snowflake | Emojinin kimliği |
| legacy_id | ?string | Eski UUID tanımlayıcısı (bkz. Emoji kimlikleri) |
| guild_id | snowflake | Emojinin sahibi olan sunucunun kimliği |
| name | string | Emoji adı; 1-32 ASCII harf, rakam ve alt çizgi |
| animated | boolean | Görselin hareketli olup olmadığı (GIF, hareketli PNG veya hareketli WebP) |
| available | boolean | Her zaman true |
| nsfw | boolean | Her zaman false |
| image_url | string | Saklanan görselin URL'si |
| created_at | ISO8601 zaman damgası | Emojinin oluşturulduğu zaman |
| user? | kısmi kullanıcı nesnesi | Emojiyi yükleyen hesap. Yalnızca Sunucu emojilerini listele bunu içerir |
{
"id": "1501314428688998182",
"legacy_id": "b4497791-c19c-4b6b-9a2f-df4bc155a9f7",
"guild_id": "1489002177550843904",
"name": "party_parrot",
"animated": true,
"available": true,
"nsfw": false,
"image_url": "https://cdn.tebhos.com/emojis/1489002177550843904/0c8f5a52-7e0b-4f3e-9a41-2d6f3b7c9e10/9f2c1d4e7b.gif",
"created_at": "2026-09-14T09:12:44+00:00"
}
Gateway Guild Emojis Update olayı, sunucunun eksiksiz emoji listesini taşır. Öğelerinde id, legacy_id, guild_id, name, image_url, animated, nsfw, created_by, created_at, creator_name ve creator_avatar bulunur.
Sınırlar¶
| Sınır | Değer |
|---|---|
| Sunucu başına emoji | 50; yükleyen üyenin TEBHOS Pro'su varsa 100 |
| Görsel boyutu | Kodu çözülmüş hâliyle 256 KiB (262144 bayt) |
| Görsel biçimleri | Dosya içeriğinden algılanan PNG, JPEG, GIF ve WebP. SVG kabul edilmez |
| Ad | 1-32 karakter: ASCII harfler, rakamlar ve _. Sunucu içinde benzersiz |
Sunucu başına sınır, her emoji oluşturulduğunda mevcut emoji sayısına göre denetlenir; bu yüzden emojiyi oluşturan üyenin TEBHOS Pro'ya sahip olup olmamasına bağlıdır.
Hareketli emojiler, yükleyen üye için TEBHOS Pro veya takviye seviyesi 1 ya da daha yüksek olan bir sunucu gerektirir. Aksi hâlde hareketli bir emoji oluşturmak veya kopyalamak 403 FORBIDDEN döndürür.
Emoji oluşturma nesnesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| name | string | Kırpılmış emoji adı |
| image | string | Ham base64 veya bir data: URL'si olarak görsel |
{
"name": "party_parrot",
"image": "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEAAAAALAAAAAABAAEAAAI="
}
Sunucu emojilerini listele¶
GET /guilds/{guild_id}/emojis
Sunucunun her sunucu emojisi nesnesini user ile birlikte döndürür. Üyelik gerektirir; hiçbir izin denetlenmez. Sayfalama yoktur.
Hız sınırı: guild:emojis:list, hesap ve sunucu başına 10 saniyede 60.
curl https://tebhos.com/api/v1/guilds/1489002177550843904/emojis \
-H "Authorization: Bot $TEBHOS_BOT_TOKEN"
Sunucu emojisi oluştur¶
POST /guilds/{guild_id}/emojis
Bir emoji oluşturma nesnesinden emoji oluşturur ve sunucu emojisi nesnesini (user olmadan) 200 durumuyla döndürür. CREATE_EXPRESSIONS gerektirir. Sunucu Guild Emojis Update alır ve bir EMOJI_CREATE denetim kaydı girdisi kaydedilir. İstek gövdesi en fazla 2 MiB olabilir.
Hız sınırı: guild:emoji:create, hesap ve sunucu başına 30 saniyede 10.
| Durum | Kod | Koşul |
|---|---|---|
| 400 | INVALID_FORM_BODY |
Ad boş, 32 karakterden uzun veya başka karakterler içeriyor |
| 400 | BAD_REQUEST |
Görsel boş, geçerli base64 değil, 256 KiB'den büyük veya kabul edilen bir biçimde değil ya da sunucu emoji sınırına ulaşmış |
| 403 | FORBIDDEN |
CREATE_EXPRESSIONS eksik veya görsel hareketli ve ne Pro ne de takviye seviyesi 1 geçerli |
| 409 | CONFLICT |
Sunucuda zaten bu ada sahip bir emoji var |
curl -X POST https://tebhos.com/api/v1/guilds/1489002177550843904/emojis \
-H "Authorization: Bot $TEBHOS_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "shipit", "image": "data:image/png;base64,iVBORw0KGgo..."}'
Sunucu emojilerini toplu oluştur¶
POST /guilds/{guild_id}/emojis/bulk
1-50 emoji oluşturmayı dener ve {"success": [...], "failed": [...]} döndürür. CREATE_EXPRESSIONS gerektirir. İstek gövdesi en fazla 40 MiB olabilir.
Hız sınırı: guild:emoji:bulk_create, hesap ve sunucu başına 60 saniyede 6.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| emojis | array[emoji oluşturma nesnesi] | Oluşturulacak emojiler, 1-50 öğe; sırayla denenir |
Her öğe bağımsız olarak işlenir. success, oluşturulan sunucu emojisi nesnelerini tutar; failed ise reddedilen her öğe için {"name": string, "error": string} tutar; burada error insan tarafından okunabilir bir mesajdır. Tüm öğeler başarısız olsa bile yanıt 200'dür. Boş bir dizi veya 50'den fazla öğe 400 INVALID_FORM_BODY döndürür.
En az bir emoji oluşturulduğunda sunucu tek bir Guild Emojis Update alır.
Sunucu emojisini kopyala¶
POST /guilds/{guild_id}/emojis/clone
Herhangi bir sunucudaki bir emojiyi bu sunucuya kopyalar ve yeni sunucu emojisi nesnesini döndürür. Hedef sunucuda CREATE_EXPRESSIONS gerektirir; kaynak sunucuya üyelik gerekmez. Kopya yeni bir kimlik alır, yükleyen olarak çağıranı ve kaynak görseli alır.
Hız sınırı: guild:emoji:clone, hesap ve sunucu başına 30 saniyede 10.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| source_emoji_id | string | Kopyalanacak emojinin kimliği (snowflake veya eski UUID) |
| name? | string | Kopya için bir ad. Varsayılanı kaynağın adıdır |
| Durum | Kod | Koşul |
|---|---|---|
| 403 | FORBIDDEN |
CREATE_EXPRESSIONS eksik veya kaynak sunucuda CLONE_EMOJI_DISABLED özelliği var |
| 404 | NOT_FOUND |
Kaynak emoji mevcut değil |
| 409 | CONFLICT |
Hedef sunucuda zaten bu ada sahip bir emoji var |
Hedef sunucunun emoji sınırı uygulanır. Kopyalama bir EMOJI_CREATE denetim girdisi kaydeder ve hedef sunucuda Guild Emojis Update gönderir.
Sunucu emojisini değiştir¶
PATCH /guilds/{guild_id}/emojis/{emoji_id}
Bir emojiyi yeniden adlandırır ve sunucu emojisi nesnesini döndürür. Görsel değiştirilemez. Emojiyi yükleyen üyenin CREATE_EXPRESSIONS, diğer herkesin MANAGE_EXPRESSIONS iznine ihtiyacı vardır.
Hız sınırı: guild:emoji:update, hesap ve sunucu başına 10 saniyede 20.
| Alan | Tür | Açıklama |
|---|---|---|
| name? | string | Yeni ad. Oluşturmadaki kuralların aynısı geçerlidir |
Yeniden adlandırma bir EMOJI_UPDATE denetim girdisi kaydeder. Her başarılı istek Guild Emojis Update gönderir. Bu sunucuda olmayan bir emoji 404 NOT_FOUND, sunucunun başka bir emojisinin kullandığı bir ad ise 409 CONFLICT döndürür.
Sunucu emojisini sil¶
DELETE /guilds/{guild_id}/emojis/{emoji_id}
Bir emojiyi siler ve 204 döndürür. Yükleyenin CREATE_EXPRESSIONS, diğer herkesin MANAGE_EXPRESSIONS iznine ihtiyacı vardır.
Hız sınırı: guild:emoji:delete, hesap ve sunucu başına 30 saniyede 10.
Silme bir emoji yuvasını boşaltır, bir EMOJI_DELETE denetim girdisi kaydeder ve Guild Emojis Update gönderir. Emojiyi zaten içeren mesajlar değiştirilmez. Yol purge parametresi almaz. Bu sunucuda olmayan bir emoji 404 NOT_FOUND döndürür.
Yükleme akışı¶
TEBHOS web uygulaması emoji görsellerini base64 göndermek yerine doğrudan depolamaya yükler. İki adım da yalnızca kullanıcıya yöneliktir (bot token'ı 403 ACCESS_DENIED alır) ve üyelik ile CREATE_EXPRESSIONS gerektirir.
{"filename": string, "content_type": string, "size": integer}ilePOST /servers/{guild_id}/emojis/upload-url.sizeen fazla 262144 olabilir vecontent_typekabul edilen bir görsel türü olmalıdır.upload_url(300 saniye geçerli, önceden imzalanmış bir URL),storage_key,urlveexpires_indöndürür.- Baytları
upload_urladresinePUTile gönderin, ardından{"storage_key": string, "name": string, "animated": boolean}ilePOST /servers/{guild_id}/emojis/confirmçağrısını yapın.
Onaylama; ad uzunluğunu (1-32, 400 BAD_REQUEST), adın benzersizliğini (409 CONFLICT) ve hareketli emoji kuralını denetler, bir EMOJI_CREATE denetim girdisi kaydeder, Guild Emojis Update gönderir ve {"id", "guild_id", "name", "image_url", "animated"} döndürür.