İçeriğe geç
N'oluyo
REST referansı

Mesajlar

Son güncelleme:

Mesajları listele

GET/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)
Hız sınırı
read 30 istek / 5 sn

Parametreler

AdTürAçıklama
channel_idzorunlustringAdreste

Kanal ID'si.

limitintegerSorguda

Kaç mesaj döneceği.

1–100 · = 50
beforeIDSorguda

Bu ID'den eski mesajlar.

afterIDSorguda

Bu ID'den yeni mesajlar. Ona en yakın olanlar döner, sıra yine en yeniden eskiyedir.

aroundIDSorguda

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ı

JSON
[
  {
    "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

POST/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

AdTürAçıklama
channel_idzorunlustringAdreste

Kanal ID'si.

Gövde alanları

AdTürAçıklama
contentstring≤ 2000
noncestring

Daha uzunu hata vermeden atılır.

≤ 64
message_referenceobject
message_reference.message_idzorunluID

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_mentionsobject
allowed_mentions.replied_userboolean
allowed_mentions.parsestring[]

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.usersID[]

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.rolesID[]

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
forwardobject
forward.channel_idzorunluID

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_idzorunluID

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.

pollobject
poll.questionzorunlustring1–300
poll.answerszorunlustring[]2–10
poll.allow_multiselectboolean
poll.durationinteger

Saat.

1, 4, 8, 24, 72, 168 · = 24
sticker_idsID[]≤ 1
embedsEmbed[]

Yalnızca botlar için; kişi gönderirse validation_failed alır. Embed'li mesajda content gerekmez. Görseller aynı mesajla gönderilen dosyalardan gelir (attachment://); başka bir adres reddedilir.

≤ 10
componentsMessageComponent[]

Yalnızca botlar için. Yalnızca bileşenli mesaj reddedilir: content, embed veya dosya gerekir.

≤ 5
flagsinteger

Yalnızca botlar için. Boş bırak: 64 (ephemeral) ephemeral_forbidden döner çünkü kanal mesajının gösterileceği tek bir kişi yoktur; başka her bit invalid olur.

Ö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ı

JSON
{
  "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

GET/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)
Hız sınırı
read 30 istek / 5 sn

Parametreler

AdTürAçıklama
channel_idzorunlustringAdreste

Kanal ID'si.

message_idzorunlustringAdreste

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ı

JSON
{
  "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

PATCH/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

AdTürAçıklama
channel_idzorunlustringAdreste

Kanal ID'si.

message_idzorunlustringAdreste

Mesaj ID'si.

Gövde alanları

AdTürAçıklama
contentstring≤ 2000
embedsEmbed[]

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
componentsMessageComponent[]

Yalnızca botlar için. Satırların yerine geçer. Yalnızca bu değişirse mesaj düzenlendi sayılmaz.

≤ 5
allowed_mentionsobject
allowed_mentions.replied_userboolean
allowed_mentions.parsestring[]

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.usersID[]

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.rolesID[]

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

application/json
{
  "content": "Merhaba, düzenlendi!"
}

Örnek yanıt

200 Başarılı

JSON
{
  "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

DELETE/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)
Hız sınırı
write 10 istek / 10 sn

Parametreler

AdTürAçıklama
channel_idzorunlustringAdreste

Kanal ID'si.

message_idzorunlustringAdreste

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

POST/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)
Hız sınırı
bulk 1 istek / 1 sn

Parametreler

AdTürAçıklama
channel_idzorunlustringAdreste

Kanal ID'si.

Gövde alanları

AdTürAçıklama
messageszorunluID[]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

application/json
{
  "messages": [
    "111600000000000000",
    "111600000000000100"
  ]
}

Örnek yanıt

204 Başarılı; yanıtın gövdesi yok.

Hatalar