Özel kanallar¶
Özel kanal, herhangi bir sunucunun dışındaki bir sohbettir. İki hesap arasındaki bir doğrudan mesaj (DM) ya da kendi katılımcı kümesi olan bir grup DM'dir. Her ikisi de kanal nesnesidir; özel kanallara özgü alanlar aşağıda listelenmiştir.
Özel kanalları listele ve Özel kanal oluştur bir kullanıcı oturumunu (Authorization: Bearer <token>) veya bir bot token'ını (Authorization: Bot <token>) kabul eder. Bu sayfadaki diğer tüm yollar yalnızca kullanıcılara açıktır ve geçerli bir bot token'ı orada 403 ACCESS_DENIED ile reddedilir.
Açık olma durumu katılımcıya özeldir
Bir doğrudan mesaj kanalı, bir hesap çifti için yalnızca bir kez var olur ve her katılımcı kendi açık olma durumunu tutar. Bir tarafı kapatmak kanalı ve mesajlarını yerinde bırakır; bu nedenle aynı çift için daha sonra yapılan bir Özel kanal oluştur isteği o kayıtlı kanalı döndürür.
Özel kanal nesnesi¶
Özel kanal, API'nin geri kalanının kullandığı kanal yapısıyla döndürülür. Bir DM veya grup DM için önemli olan alanlar şunlardır:
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| id | snowflake | Kanal kimliği |
| type | string | HTTP yanıtlarında "DM" veya "GROUP_DM". Gateway Channel Create yükü burada bunun yerine sayısal kodu taşır |
| channel_type | integer | Sayısal kanal türü: DM için 1, grup DM için 3 |
| name | string | Grup DM adı; DM için ve adsız bir grup DM için boş dize |
| recipients | alıcı nesneleri dizisi | Çağıran dahil her katılımcı, kimliğe göre sıralı |
| owner_id? | snowflake | Grup DM sahibi. DM'de bulunmaz |
| icon? | string | Grup DM simgesinin karması. Ayarlanmamışsa bulunmaz |
| last_message_id? | snowflake | En son mesajın kimliği. Kanalda mesaj yoksa bulunmaz |
| last_message? | son mesaj nesnesi | En son mesajın özeti. Kanalda mesaj yoksa veya en son mesaj silindiyse bulunmaz |
| last_message_at? | ISO8601 timestamp | En son mesajın zamanı; kimliğinden türetilir |
| last_pin_timestamp | ?ISO8601 timestamp | En son sabitlemenin zamanı veya null |
| nicks? | map[snowflake, string] | Kullanıcı kimliğine göre anahtarlanmış grup DM takma adları. Yalnızca en az biri ayarlanmışsa bulunur |
| created_at | ISO8601 timestamp | Kanal kimliğinden türetilen oluşturulma zamanı |
Nesne, paylaşılan kanal yapısının sunucu kanalı alanlarını da sabit değerlerle taşır (guild_id yok, server_id boş, topic ve parent_id null, is_nsfw false vb.). TEBHOS'ta yaş kısıtlamalı kanal olmadığından is_nsfw her zaman false olur.
Örnek¶
{
"id": "1501314428688998182",
"name": "",
"type": "DM",
"channel_type": 1,
"recipients": [
{ "id": "1501300000000000001", "name": "Aria", "image_url": null },
{ "id": "1501300000000000002", "name": "deniz", "image_url": "3f1c0a9d2b7e4c55" }
],
"last_message_id": "1501320000000000000",
"last_message": {
"id": "1501320000000000000",
"content": "see you tomorrow",
"sender_id": "1501300000000000002",
"created_at": "2026-09-20T18:04:11+00:00",
"deleted": false
},
"last_message_at": "2026-09-20T18:04:11+00:00",
"last_pin_timestamp": null,
"created_at": "2026-09-01T10:00:00+00:00",
"locked": false,
"order": 0,
"category": "",
"category_id": null,
"parent_id": null,
"topic": null,
"slow_mode": 0,
"is_private": false,
"is_nsfw": false,
"bitrate": 0,
"user_limit": 0,
"server_id": "",
"permission_overrides": []
}
Özel kanal alıcısı nesnesi¶
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| id | snowflake | Katılımcının kullanıcı kimliği |
| name | string | Katılımcının global_name değeri; genel ad ayarlanmamışsa username. Hesap çözümlenemiyorsa boş |
| image_url | ?string | Katılımcının avatar karması veya null. Görsel URL'sini karmadan kullanıcı nesneleri için açıklandığı şekilde oluşturun |
Son mesaj nesnesi¶
last_message ve Özel kanal mesajlarını önceden yükle tarafından kullanılan, tek bir mesajın kısa özeti.
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| id | snowflake | Mesaj kimliği |
| content | string | Mesaj metni veya boş dize |
| sender_id | snowflake | Yazarın kullanıcı kimliği |
| created_at | ISO8601 timestamp | Mesajın gönderildiği zaman; kimliğinden türetilir |
| deleted | boolean | Her zaman false; silinmiş bir mesaj hiç döndürülmez |
Önceden yüklenmiş mesajlar nesnesi¶
Her iki önceden yükleme işleminin yanıtı. Sabit bir alan kümesi yoktur: her özellik adı istenen bir kanal kimliğidir.
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| {channel_id} | ?son mesaj nesnesi | Kanaldaki en son mesaj veya null |
İstenen her kimlik bir özellik alır. Kimlik sayı değilse, kanal mevcut değilse, DM veya grup DM değilse, çağıran katılımcı değilse, kanalda mesaj yoksa ya da en son mesaj silindiyse değer null olur. Tekrarlanan bir kimlik tek bir özelliğe indirgenir.
Özel kanalları listele¶
GET /users/@me/channels
Çağıranın açık DM ve grup DM kanallarını döndürür.
Kapatılmış bir DM, kanal ve geçmişi hâlâ var olsa bile listede bulunmaz. Liste en son etkinliğe göre, en yeniden eskiye sıralanır (last_message_id değerine göre; mesajı olmayan bir kanal için kanal kimliğine göre). Sayfalanmaz.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | nesne | Açık özel kanallar döndürüldü |
Gövde listeyi bir items alanına sarar:
| Alan | Tür | Açıklama |
|---|---|---|
| items | özel kanal nesneleri dizisi | Çağıranın açık DM'leri ve grup DM'leri |
Hız sınırı¶
user:channels kovasında kimliği doğrulanmış her kullanıcı için 10 saniyede 40 istek; Özel kanal oluştur, Özel kanalı sabitle ve Özel kanalın sabitlemesini kaldır ile paylaşılır.
Özel kanal oluştur¶
POST /users/@me/channels
Bir hesapla DM açar veya bir grup DM oluşturur. Oluşturulan ya da yeniden açılan kanalı aşağıdaki sade biçimde 200 ile döndürür (eksiksiz özel kanal nesnesi değil).
recipient_ids içindeki kimlik sayısı kanal türünü belirler. Tam olarak bir kimlik bir DM açar. Sıfır dahil diğer tüm sayılar bir grup DM oluşturur: boş bir dizi, tek katılımcısı çağıran olan bir grup DM oluşturur; daha fazla katılımcı sonradan Grup DM alıcısı ekle ile eklenebilir.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| recipient_id? | snowflake dizesi | Bu hesapla DM açar. recipient_id ya da recipient_ids gönderilir, ikisi birlikte gönderilemez (aksi hâlde 400 INVALID_FORM_BODY / INVALID_FORMAT) |
| recipient_ids? | snowflake dizeleri dizisi | Çağıran hariç diğer katılımcılar (en fazla 49) |
| name? | string | Grup DM adı. Baştaki ve sondaki boşluklar kırpılır; boş değer grubu adsız bırakır. DM için yok sayılır |
Kabul¶
Ortak kurallar:
- Sayı olmayan bir kimlik 400
BAD_REQUESTdöndürür. - 49'dan fazla alıcı 400
BAD_REQUESTdöndürür. Dolayısıyla bir grup DM, çağıran dahil en fazla 50 katılımcı barındırır. recipient_idsiçinde çağıranın kendi kimliği 400BAD_REQUESTdöndürür.
Doğrudan mesaj. Bir arkadaşa her zaman mesaj gönderilebilir. Aksi hâlde iki hesabın en az bir ortak sunucusu olmalı ve her iki hesabın kullanıcı ayarlarında belirlediği doğrudan mesaj kısıtlamaları (sunucuya özel kısıtlamalar dahil) buna izin vermelidir. Ret durumunda 400 CANNOT_SEND_MESSAGES_TO_USER döndürülür. Hiçbir hesaba karşılık gelmeyen bir kimlik de aynı kontrolde başarısız olur.
Grup DM. Her alıcının kullanıcı ayarlarındaki grup DM'ye ekleme izni ayarı çağırana göre kontrol edilir. Alıcının hiç kimseye izin vermediği durum dışında, alıcının bir arkadaşı her zaman geçer; aksi hâlde ayar, arkadaşların arkadaşlarının veya ortak bir sunucunun üyelerinin kabul edilip edilmeyeceğini belirler. Çağıranı reddeden ilk alıcı, isteğin tamamını 403 MISSING_ACCESS ile başarısız kılar. Alıcının ayarı çağıranı kabul ediyorsa arkadaşlık gerekmez.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | kanal nesnesi (aşağıya bakın) | DM veya grup DM oluşturuldu ya da mevcut bir DM yeniden açıldı |
| 400 | hata yanıtı | Gövde geçersiz, alıcı sayısı veya kümesi geçersiz ya da DM CANNOT_SEND_MESSAGES_TO_USER ile reddedildi |
| 403 | hata yanıtı | Bir grup DM alıcısının ayarları çağıranı reddediyor (MISSING_ACCESS) |
Kanal nesnesi id, sayısal type (1 = DM, 3 = grup DM), last_message_id ve last_pin_timestamp (değer yoksa null) ile recipients alanını taşır; recipients diğer katılımcıları kısmi kullanıcı nesnesi olarak listeler (id, username, discriminator, global_name, avatar, ...; başka katılımcı yoksa alan yoktur). Grup DM ayrıca name (ayarlıysa), icon, owner_id ve nicks (bir takma ad ayarlıysa) taşır.
Yan etkiler¶
Yeni veya mevcut bir DM'yi açmak, onu yalnızca çağıran için açar ve çağırana Channel Create gönderir. Diğer katılımcının tarafı, kendisi açana veya kanalda bir mesaj gönderilene (bu da onun için kanalı açar) kadar kapalı kalır.
Grup DM oluşturmak çağıranı sahibi yapar, katılımcı kümesinin tamamını ekler ve her katılımcıya Channel Create gönderir. Ardından diğer her alıcı için çağıran tarafından yazılmış bir RECIPIENT_ADD sistem mesajı oluşturur ve her biri için Message Create gönderir. İlk oluşturma, daha sonra eklenen alıcılara ayrılmış olan Channel Recipient Add olayını göndermez. Boş bir diziden oluşturulan grup DM hiçbir sistem mesajı üretmez.
TEBHOS'ta desteklenmez
Grup DM oluşturma CAPTCHA kullanmaz ve açık grup DM sayısı için hesap başına bir üst sınır yoktur.
Hız sınırı¶
user:channels kovasında kimliği doğrulanmış her kullanıcı için 10 saniyede 40 istek; Özel kanalları listele, Özel kanalı sabitle ve Özel kanalın sabitlemesini kaldır ile paylaşılır.
recipient_ids tam olarak bir kimlik içermeyen bir istek ayrıca user:group_dm:create kovasından da tüketir: kimliği doğrulanmış her kullanıcı için saatte 10 istek.
Özel kanalı kapat¶
DELETE /users/@me/channels/{channel_id}
Bir DM veya grup DM'yi yalnızca çağıran için kapatır. Boş bir gövdeyle 204 döndürür.
Kanala, mesajlarına ve diğer katılımcılara dokunulmaz; bir grup DM'yi kapatmak ondan ayrılmak anlamına gelmez. Kanal, çağıran onu Özel kanal oluştur ile yeniden açana ya da bir DM için içinde yeni bir mesaj gönderilene kadar çağıranın Özel kanalları listele sonucunda görünmez. Bir grup DM'den ayrılmak için kendinizi Grup DM alıcısını kaldır ile çıkarın.
Yol parametreleri¶
| Alan | Tür | Açıklama |
|---|---|---|
| channel_id | snowflake | DM veya grup DM kimliği |
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 204 | boş | Kanal çağıran için kapatıldı |
| 400 | hata yanıtı | channel_id sayı değil |
| 404 | hata yanıtı | Kanal mevcut değil veya çağıran katılımcı değil (NOT_FOUND) |
Yan etkiler¶
Channel Delete, id, channel_id ve sayısal type ile çağıranın kendi oturumlarına ulaşır; böylece diğer cihazlar kanalı listelerinden çıkarır. Başka hiçbir katılımcı bir gönderim (Dispatch) almaz.
Özel kanal mesajlarını önceden yükle¶
POST /users/@me/preload-messages
İstenen her özel kanalın en son mesajını tutan önceden yüklenmiş mesajlar nesnesini döndürür.
TEBHOS istenen her kanalı bağımsız olarak çözümler; bilinmeyen bir kanalı, çağıranın katılımcısı olmadığı bir kanalı veya eksik bir mesajı o kanal için null olarak bildirir. İstek yine de 200 ile yanıtlanır; bu nedenle çağıranın göremediği bir kanal, geçmişi boş olan bir kanaldan ayırt edilemez.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| channels | snowflake dizeleri dizisi | Önceden yüklenecek özel kanallar (en fazla 100) |
channels zorunludur. Boş bir dizi boş bir nesne döndürür; 100'den fazla öğe ise herhangi bir kanal okunmadan önce 400 BAD_REQUEST döndürür.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | önceden yüklenmiş mesajlar nesnesi | İstenen kanallar çözümlendi |
| 400 | hata yanıtı | channels eksik veya 100'den fazla öğe içeriyor |
Yan etkiler¶
Bu okuma hiçbir mesajı okundu olarak işaretlemez ve çağıranın okuma durumunu değiştirmez.
Hız sınırı¶
user:preload_messages kovasında kimliği doğrulanmış her kullanıcı için 10 saniyede 40 istek; Özel kanal mesajlarını diğer adla önceden yükle ile paylaşılır.
Özel kanal mesajlarını diğer adla önceden yükle¶
POST /users/@me/channels/messages/preload
Özel kanal mesajlarını önceden yükle için bir diğer ad. İstek gövdesi, yanıt, yetkilendirme ve hız sınırı kovası aynıdır; iki yol tek bir kotayı paylaşır.
Sabitlenmiş özel kanalları listele¶
GET /users/@me/pinned-dms
Çağıranın sabitlenmiş DM ve grup DM kimliklerini sabitleme sırasıyla döndürür.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | sabitlenmiş kanallar nesnesi | Sabitleme sırası döndürüldü; boş olabilir |
Sabitlenmiş kanallar nesnesi¶
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| channels | snowflake dizeleri dizisi | Sabitleme sırasıyla sabitlenmiş kanal kimlikleri |
Örnek¶
Özel kanalı sabitle¶
PUT /users/@me/channels/{channel_id}/pin
Bir kanalı çağıranın sabitleme sırasına ekler. Ortaya çıkan sabitlenmiş kanallar nesnesini döndürür. Bir User Pinned DMs Update Gateway olayı gönderir.
Yeni sabitlenen kanal, zaten sabitlenmiş tüm kanalların sonuna eklenir. Zaten sabitlenmiş bir kanalı sabitlemek sırayı değiştirmez; yine de 200 döndürür ve gönderimi (Dispatch) yapar. Daha sonra kapatılan, ayrılınan veya silinen bir kanal, sabitlemesi kaldırılana kadar sabitlenmiş kümede kalır.
Kanal doğrulanmaz
TEBHOS, channel_id değerinin çağıranın katılımcısı olduğu mevcut bir DM'yi veya grup DM'yi gösterip göstermediğini kontrol etmez. Yalnızca Özel kanalları listele veya Gateway üzerinden alınan kimlikleri sabitleyin.
Yol parametreleri¶
| Alan | Tür | Açıklama |
|---|---|---|
| channel_id | snowflake | DM veya grup DM kimliği |
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | sabitlenmiş kanallar nesnesi | Kanal sabitlenmiş kümede bulunuyor |
| 400 | hata yanıtı | channel_id sayı değil (BAD_REQUEST) |
Yan etkiler¶
Kanal çağıranın sabitleme sırasının sonuna eklenir ve User Pinned DMs Update yalnızca çağırana ulaşır. Yükü, ortaya çıkan sıranın tamamını bir channels dizisinde tutan aynı sabitlenmiş kanallar nesnesidir. Kanalın kendisi değiştirilmez ve başka hiçbir katılımcı çağıranın sabitleme sırasını göremez.
Hız sınırı¶
user:channels kovasında kimliği doğrulanmış her kullanıcı için 10 saniyede 40 istek; Özel kanalları listele, Özel kanal oluştur ve Özel kanalın sabitlemesini kaldır ile paylaşılır.
Özel kanalın sabitlemesini kaldır¶
DELETE /users/@me/channels/{channel_id}/pin
Bir kanalı çağıranın sabitleme sırasından çıkarır. Ortaya çıkan sabitlenmiş kanallar nesnesini döndürür. Bir User Pinned DMs Update Gateway olayı gönderir.
Sabitlemeyi kaldırmak, kalan tüm kanalların göreli sırasını korur; daha sonraki bir sabitleme sona eklenir. Kanalın var olması gerekmez; bu nedenle silinmiş bir kanala ait girdi her zaman kaldırılabilir. Sabitlenmemiş bir kanalın sabitlemesini kaldırmak da 200 döndürür ve aynı gönderimi yapar.
Yol parametreleri¶
| Alan | Tür | Açıklama |
|---|---|---|
| channel_id | snowflake | DM veya grup DM kimliği |
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | sabitlenmiş kanallar nesnesi | Kanal sabitlenmiş kümede bulunmuyor |
| 400 | hata yanıtı | channel_id sayı değil (BAD_REQUEST) |
Yan etkiler¶
Kanal çağıranın sabitleme sırasından çıkarılır ve User Pinned DMs Update, ortaya çıkan sıranın tamamıyla yalnızca çağırana ulaşır. Kanalın kendisi kapatılmaz veya silinmez ve katılımcıları hiçbir gönderim almaz.
Hız sınırı¶
user:channels kovasında kimliği doğrulanmış her kullanıcı için 10 saniyede 40 istek; Özel kanalları listele, Özel kanal oluştur ve Özel kanalı sabitle ile paylaşılır.