Mesajlar
Mesajları listele
/channels/{channel_id}/messages Mesajları en yeniden eskiye döndürür: son sayfayı ya da bir mesajın öncesini, sonrasını veya çevresini. before ile after birlikte, around da bunlardan biriyle kullanılamaz. ReadMessageHistory yoksa yanıt hata değil, boş listedir. Çağıranın tepkileri reactions[].me ile işaretlenir. Sunucu kanalında, içerik intent'i olmayan bir bot başkalarının mesajlarını içeriği çıkarılmış olarak alır; botu etiketleyenler hariç.
- Kimlik
- Bot token'ı (bir kişinin oturumu da olur)
- İzinler
- ReadMessageHistory
- Hız sınırı
- read 30 istek / 5 sn
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
channel_idzorunlu | string | Adreste Kanal ID'si. |
limit | integer | Sorguda Kaç mesaj döneceği. 1–100 · = 50 |
before | ID | Sorguda Bu ID'den eski mesajlar. |
after | ID | Sorguda Bu ID'den yeni mesajlar. Ona en yakın olanlar döner, sıra yine en yeniden eskiyedir. |
around | ID | Sorguda Bu ID'nin çevresindeki mesajlar: kendisi ve yenileri sayfanın büyük yarısını doldurur. |
Örnek istek
curl "https://noluyo.net/api/v1/channels/111500000000000100/messages?limit=50" \
-H "Authorization: Bot $BOT_TOKEN"Örnek yanıt
200 Başarılı
[
{
"id": "111600000000000000",
"type": 0,
"channel_id": "111500000000000100",
"guild_id": "111500000000000000",
"author": {
"id": "111540000000000001",
"username": "ornek_bot",
"display_name": "Örnek Bot",
"avatar": null,
"cosmetics": null,
"bot": true
},
"content": "Merhaba!",
"timestamp": "2026-11-04T22:58:33.427Z",
"edited_timestamp": null,
"attachments": [],
"mentions": [],
"mention_roles": [],
"mention_everyone": false,
"pinned": false
}
]Hatalar
Mesaj gönder
/channels/{channel_id}/messages Metin kanalına mesaj gönderir ve mesajla birlikte 200 döner. content en çok 2000 karakterdir; mesajda dosya, iletme, anket veya çıkartma yoksa zorunludur. Dosya göndermek için multipart/form-data kullan: JSON payload_json adlı parçada, en çok on dosya files[0], files[1] gibi adlandırılmış parçalarda olur; bunun için AttachFiles gerekir. message_reference mesajı yanıta çevirir (ReadMessageHistory); allowed_mentions.replied_user false, yanıtın kişiyi etiketlemesini önler. En çok 64 karakterlik nonce yalnızca bu yanıtta geri gelir. Bir mesajda anket, iletme ve çıkartmadan yalnızca biri olabilir; hiçbiri dosyayla birlikte gönderilemez. Sunucunun otomatik moderasyonu mesajı automod_blocked, kanalın yavaş modu slowmode ile reddedebilir. Botlar mesaja embed (en çok 10 kart) ve bileşen (buton ve menü, en çok 5 satır) ekleyebilir; nasıl yapıldığını embed rehberi anlatır. Embed görselleri mesajla gönderilen dosyalardır, başka bir adres olamaz. flags 64 (ephemeral) ephemeral_forbidden döner. Embed ve bileşenler ayrıca, boyutları sunucunun üye sayısıyla çarpılarak x-rate-limits içindeki fanout tavanına sayılır: X-RateLimit-Scope bot ile gelen 429 sahibinin payı ya da bekleme süresidir, shared ile gelen 429 tüm botların ortak tavanıdır ve botun suçu değildir; max_bytes ile gelen 400 fanout_too_large, mesajın o kanal için fazla büyük olduğunu söyler. Bir kişinin botunla açtığı DM'de kendiliğinden ancak kişinin son mesajı, komutu ya da basmasından sonraki 24 saat içinde yazabilirsin (dm_window_closed); kişi DM'yi kapattıysa ya da botu engellediyse hiç yazamazsın (dm_closed); tüm DM'lerinde toplam dm_send sınırı geçerlidir. Ayrıntılar özel mesajlar rehberinde.
- Kimlik
- Bot token'ı (bir kişinin oturumu da olur)
- İzinler
- SendMessagesAttachFilesReadMessageHistoryMentionEveryoneUseExternalStickersBirden çok izin varsa bazıları yalnızca belirli durumlarda gerekir; yukarıdaki açıklamaya bak.
- Hız sınırı
- message 5 istek / 5 sn
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
channel_idzorunlu | string | Adreste Kanal ID'si. |
Gövde alanları
| Ad | Tür | Açıklama |
|---|---|---|
content | string | ≤ 2000 |
nonce | string | Daha uzunu hata vermeden atılır. ≤ 64 |
message_reference | object | |
message_reference.message_idzorunlu | ID | 64 bitlik ID; yanıtta da istekte de her zaman metin olarak yazılır. ID'ler oluşturulma zamanına göre sıralanır. |
allowed_mentions | object | |
allowed_mentions.replied_user | boolean | |
allowed_mentions.parse | string[] | Yalnızca botlar için. Metindeki hangi etiket türlerinin bildirim göndereceği. parse, users veya roles gönderilirse yalnızca listelenenler bildirim gönderir; varsayılan için üçünü de yazma. |
allowed_mentions.users | ID[] | Yalnızca botlar için. parse içinde users yokken de bildirim gönderen kullanıcılar. parse içindeki users ile birlikte yazılamaz. En çok 100. ≤ 100 |
allowed_mentions.roles | ID[] | Yalnızca botlar için. parse içinde roles yokken de bildirim gönderen roller. parse içindeki roles ile birlikte yazılamaz. En çok 100. ≤ 100 |
forward | object | |
forward.channel_idzorunlu | ID | 64 bitlik ID; yanıtta da istekte de her zaman metin olarak yazılır. ID'ler oluşturulma zamanına göre sıralanır. |
forward.message_idzorunlu | ID | 64 bitlik ID; yanıtta da istekte de her zaman metin olarak yazılır. ID'ler oluşturulma zamanına göre sıralanır. |
poll | object | |
poll.questionzorunlu | string | 1–300 |
poll.answerszorunlu | string[] | 2–10 |
poll.allow_multiselect | boolean | |
poll.duration | integer | Saat. 1, 4, 8, 24, 72, 168 · = 24 |
sticker_ids | ID[] | ≤ 1 |
embeds | Embed[] | Yalnızca botlar için; kişi gönderirse |
components | MessageComponent[] | Yalnızca botlar için. Yalnızca bileşenli mesaj reddedilir: content, embed veya dosya gerekir. ≤ 5 |
flags | integer | Yalnızca botlar için. Boş bırak: 64 (ephemeral) |
Örnek istek
curl -X POST "https://noluyo.net/api/v1/channels/111500000000000100/messages" \
-H "Authorization: Bot $BOT_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"content":"Merhaba!"}'Örnek gövde
{
"content": "Yeni sürüm yayında",
"embeds": [
{
"title": "v1.4.0",
"description": "Karanlık tema geldi.",
"color": 3368703,
"fields": [
{
"name": "Hata düzeltme",
"value": "12",
"inline": true
}
]
}
],
"nonce": "istek-1"
}Örnek yanıt
200 Başarılı
{
"id": "111600000000000000",
"type": 0,
"channel_id": "111500000000000100",
"guild_id": "111500000000000000",
"author": {
"id": "111540000000000001",
"username": "ornek_bot",
"display_name": "Örnek Bot",
"avatar": null,
"cosmetics": null,
"bot": true
},
"content": "Merhaba!",
"timestamp": "2026-11-04T22:58:33.427Z",
"edited_timestamp": null,
"attachments": [],
"mentions": [],
"mention_roles": [],
"mention_everyone": false,
"pinned": false,
"nonce": "istek-1"
}Hatalar
Mesajı getir
/channels/{channel_id}/messages/{message_id} Tek bir mesajı döndürür. Listeden farklı olarak, ReadMessageHistory yoksa missing_permissions döner. Sunucu kanalında, içerik intent'i olmayan bir bot başkalarının mesajlarını içeriği çıkarılmış olarak alır; botu etiketleyenler hariç.
- Kimlik
- Bot token'ı (bir kişinin oturumu da olur)
- İzinler
- ReadMessageHistory
- Hız sınırı
- read 30 istek / 5 sn
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
channel_idzorunlu | string | Adreste Kanal ID'si. |
message_idzorunlu | string | Adreste Mesaj ID'si. |
Örnek istek
curl -X GET "https://noluyo.net/api/v1/channels/111500000000000100/messages/111600000000000000" \
-H "Authorization: Bot $BOT_TOKEN"Örnek yanıt
200 Başarılı
{
"id": "111600000000000000",
"type": 0,
"channel_id": "111500000000000100",
"guild_id": "111500000000000000",
"author": {
"id": "111540000000000001",
"username": "ornek_bot",
"display_name": "Örnek Bot",
"avatar": null,
"cosmetics": null,
"bot": true
},
"content": "Merhaba!",
"timestamp": "2026-11-04T22:58:33.427Z",
"edited_timestamp": null,
"attachments": [],
"mentions": [],
"mention_roles": [],
"mention_everyone": false,
"pinned": false
}Hatalar
Mesajı düzenle
/channels/{channel_id}/messages/{message_id} Çağıranın kendi mesajını değiştirir. Kişi yalnızca content değiştirir. Bot content, embeds ve components alanlarını ayrı ayrı değiştirebilir: göndermediği alan kalır, boş liste embed veya bileşenleri kaldırır, yalnızca bileşen değişirse mesaj düzenlendi sayılmaz. Embed içindeki attachment:// yalnızca mesajın var olan dosyalarına bakar; yeni dosyalı istek reddedilir. Düzenleme, etiketlenenleri günceller ama kimseye yeniden bildirim göndermez. Dosya, iletme, anket, çıkartma veya embed içeren mesajın metni boşaltılabilir.
- Kimlik
- Bot token'ı (bir kişinin oturumu da olur)
- İzinler
- SendMessages
- Hız sınırı
- write 10 istek / 10 sn
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
channel_idzorunlu | string | Adreste Kanal ID'si. |
message_idzorunlu | string | Adreste Mesaj ID'si. |
Gövde alanları
| Ad | Tür | Açıklama |
|---|---|---|
content | string | ≤ 2000 |
embeds | Embed[] | Yalnızca botlar için. Embed'lerin yerine geçer. attachment:// yalnızca mesajın var olan dosyalarına bakar; yeni dosya yeni mesajla gelir. ≤ 10 |
components | MessageComponent[] | Yalnızca botlar için. Satırların yerine geçer. Yalnızca bu değişirse mesaj düzenlendi sayılmaz. ≤ 5 |
allowed_mentions | object | |
allowed_mentions.replied_user | boolean | |
allowed_mentions.parse | string[] | Yalnızca botlar için. Metindeki hangi etiket türlerinin bildirim göndereceği. parse, users veya roles gönderilirse yalnızca listelenenler bildirim gönderir; varsayılan için üçünü de yazma. |
allowed_mentions.users | ID[] | Yalnızca botlar için. parse içinde users yokken de bildirim gönderen kullanıcılar. parse içindeki users ile birlikte yazılamaz. En çok 100. ≤ 100 |
allowed_mentions.roles | ID[] | Yalnızca botlar için. parse içinde roles yokken de bildirim gönderen roller. parse içindeki roles ile birlikte yazılamaz. En çok 100. ≤ 100 |
Örnek istek
curl -X PATCH "https://noluyo.net/api/v1/channels/111500000000000100/messages/111600000000000000" \
-H "Authorization: Bot $BOT_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"content":"Merhaba, düzenlendi!"}'Örnek gövde
{
"content": "Merhaba, düzenlendi!"
}Örnek yanıt
200 Başarılı
{
"id": "111600000000000000",
"type": 0,
"channel_id": "111500000000000100",
"guild_id": "111500000000000000",
"author": {
"id": "111540000000000001",
"username": "ornek_bot",
"display_name": "Örnek Bot",
"avatar": null,
"cosmetics": null,
"bot": true
},
"content": "Merhaba, düzenlendi!",
"timestamp": "2026-11-04T22:58:33.427Z",
"edited_timestamp": "2026-11-05T09:00:00Z",
"attachments": [],
"mentions": [],
"mention_roles": [],
"mention_everyone": false,
"pinned": false
}Hatalar
Mesajı sil
/channels/{channel_id}/messages/{message_id} Mesajı siler. Çağıranın kendi mesajı izin istemez; başkasının mesajı veya sunucudaki sistem mesajı ManageMessages ister.
- Kimlik
- Bot token'ı (bir kişinin oturumu da olur)
- İzinler
- ManageMessages
- Hız sınırı
- write 10 istek / 10 sn
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
channel_idzorunlu | string | Adreste Kanal ID'si. |
message_idzorunlu | string | Adreste Mesaj ID'si. |
Örnek istek
curl -X DELETE "https://noluyo.net/api/v1/channels/111500000000000100/messages/111600000000000000" \
-H "Authorization: Bot $BOT_TOKEN"Örnek yanıt
204 Başarılı; yanıtın gövdesi yok.
Hatalar
Birden çok mesajı sil
/channels/{channel_id}/messages/bulk-delete Sunucudaki bir metin kanalının 2 ile 100 arası mesajını siler; hiçbiri 14 günden eski olamaz. Var olmayan mesajların ID'leri yok sayılır, tekrar edenler bir kez sayılır.
- Kimlik
- Bot token'ı (bir kişinin oturumu da olur)
- İzinler
- ManageMessages
- Hız sınırı
- bulk 1 istek / 1 sn
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
channel_idzorunlu | string | Adreste Kanal ID'si. |
Gövde alanları
| Ad | Tür | Açıklama |
|---|---|---|
messageszorunlu | ID[] | 2–100 |
Örnek istek
curl -X POST "https://noluyo.net/api/v1/channels/111500000000000100/messages/bulk-delete" \
-H "Authorization: Bot $BOT_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"messages":["111600000000000000","111600000000000100"]}'Örnek gövde
{
"messages": [
"111600000000000000",
"111600000000000100"
]
}Örnek yanıt
204 Başarılı; yanıtın gövdesi yok.