Sunucu üyeleri¶
Sunucu üyesi, bir sunucuya katılmış bir hesaptır. Üyelik; yalnızca o sunucuda geçerli olan bir takma ad, roller, bir sunucu profili ve moderasyon durumu taşır. Filtrelenmiş üye sorguları Sunucu üyesi arama, yasaklamalar ise Sunucu moderasyonu sayfasındadır.
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; yalnızca kullanıcı olarak işaretlenen yollar bunun dışındadır (bu durumda geçerli bir bot token'ı 403 ACCESS_DENIED ile reddedilir). Sunucunun üyesi olmayan bir çağıran 403 FORBIDDEN alır. Eksik bir izin de 403 FORBIDDEN döndürür. Hata gövdeleri Hatalar sayfasındaki biçimi izler.
Başka bir üye üzerindeki işlemler rol hiyerarşisine uyar: çağıranın en yüksek rolü hedefinkinden kesinlikle daha yüksek olmalıdır; sahip herkes üzerinde işlem yapabilir, sahip üzerinde ise kimse işlem yapamaz.
Sunucu üyesi nesnesi¶
Bu sayfadaki, üye döndüren her /guilds/{guild_id}/members yolu bu nesneyi döndürür: Sunucu üyelerini listeleme, Geçerli sunucu üyesini alma, Sunucu üyesi alma ve başarılı bir Geçerli sunucu üyesini değiştirme ya da Sunucu üyesini değiştirme. Bir kullanıcı profilinin guild_member alanı da bu nesneyi kullanır.
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| user | kısmi kullanıcı nesnesi | Gerçek avatar özeti, avatar_color ve flags ile birlikte hesap. bot her zaman bulunur; bir kişi için false olur |
| nick | ?string | Üyenin bu sunucudaki takma adı veya null |
| avatar | ?string | Üyenin sunucu avatarının özeti; hesap avatarını kullanıyorsa null |
| banner | ?string | Üyenin sunucu afişinin özeti veya null |
| accent_color | ?integer | Sunucu profili vurgu rengi veya null |
| roles | array[snowflake] | Üyenin rollerinin kimlikleri. @everyone hiçbir zaman dahil edilmez |
| joined_at | ISO8601 zaman damgası | Hesabın sunucuya katıldığı an; milisaniyeli ve Z sonekli |
| mute | boolean | Bir moderatörün üyeyi seste sunucu genelinde susturup susturmadığı |
| deaf | boolean | Bir moderatörün üyenin sesini sunucu genelinde kapatıp kapatmadığı |
| communication_disabled_until | ?ISO8601 zaman damgası | Üyenin iletişim zaman aşımının bittiği an veya null. Geçmişteki bir değer zaman aşımının sona erdiği anlamına gelir |
| profile_flags | ?integer | Sunucu profili bayrakları |
| mention_flags | ?integer | Üyenin bu sunucu için yanıtlarda bahsetme tercihi; hesap ayarını kullanmak için null |
REST yanıtları guild_id içermez.
Örnek¶
{
"user": {
"id": "1489002177550843906",
"username": "ada",
"discriminator": "0000",
"global_name": "Ada",
"avatar": "5f2a9c",
"avatar_color": 3447003,
"flags": 0,
"bot": false
},
"nick": "Ada L.",
"avatar": null,
"banner": null,
"accent_color": null,
"roles": ["1489002177550843910"],
"joined_at": "2026-08-14T09:12:44.000Z",
"mute": false,
"deaf": false,
"communication_disabled_until": null,
"profile_flags": null,
"mention_flags": null
}
Gateway üye nesnesi¶
Ready yükü ile Guild Member Add ve Guild Member Update olayları aynı sunucu üyesi nesnesini taşır. Olaylar bu nesneye guild_id ekler.
TEBHOS üye nesnesi¶
Web uygulamasının kullandığı eski /servers/{guild_id}/members yolları (GET /servers/{guild_id}/members, GET /servers/{guild_id}/members/@me ve GET /servers/{guild_id}/members/{user_id}), sunucu üyesi nesnesi yerine bu daha zengin, TEBHOS'a özgü nesneyi döndürür. Nesne, standart üye alanlarını (user, roles, joined_at, mute, deaf) TEBHOS uygulamalarının kullandığı düz kolaylık alanlarıyla birleştirir. GET /servers/{guild_id}/members, offset (varsayılan 0) ve limit (1-200 aralığına sıkıştırılır, varsayılan 100) ile sayfalar, üyeleri katılma zamanına göre sıralar ve toplam üye sayısını X-Total-Count başlığında döndürür.
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| user | üye kullanıcı nesnesi | Üyeliğin ait olduğu hesap |
| roles | array[snowflake] | Üyenin rollerinin kimlikleri, en yüksek konumdaki önce. @everyone hiçbir zaman dahil edilmez |
| joined_at | ISO8601 zaman damgası | Hesabın sunucuya katıldığı an |
| nickname | ?string | Üyenin bu sunucudaki takma adı |
| timeout_until | ?ISO8601 zaman damgası | Üyenin iletişim zaman aşımının bittiği an veya null. Geçmişteki bir değer zaman aşımının sona erdiği anlamına gelir |
| mute | boolean | Bir moderatörün üyeyi seste sunucu genelinde susturup susturmadığı |
| deaf | boolean | Bir moderatörün üyenin sesini sunucu genelinde kapatıp kapatmadığı |
| custom_roles | array[üye rolü nesnesi] | Üyenin rolleri görüntüleme verileriyle, en yüksek konumdaki önce |
| mention_flags | ?integer | Üyenin bu sunucu için yanıtlarda bahsetme tercihi; hesap ayarını kullanmak için null |
| avatar_url | ?string | Üyenin sunucuya özel avatarının tanımlayıcısı; hesap avatarını kullanıyorsa null |
| id | snowflake | Kullanıcı kimliği (user.id ile aynı) |
| profile_id | snowflake | Kullanıcı kimliği (user.id ile aynı) |
| name | string | Hesabın görünen adı |
| username | ?string | Hesabın kullanıcı adı |
| image_url | string | Hesabın avatar URL'si |
| bot | boolean | Hesabın bot olup olmadığı |
| account_created_at | ?ISO8601 zaman damgası | Hesabın oluşturulduğu an |
| invite_code | ?string | Kaydedilmişse üyenin katıldığı davet kodu |
| custom_status | ?string | Bu yanıtta her zaman null |
| active_frame_url | ?string | Bu yanıtta her zaman null |
| active_badge_url | ?string | Her zaman null |
| active_badge_name | ?string | Her zaman null |
| inviter_name | ?string | Her zaman null |
| inviter_image_url | ?string | Her zaman null |
| role | string | Her zaman boş bir string. Eski istemciler için tutulur |
Üye kullanıcı nesnesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| id | snowflake | Kullanıcı kimliği |
| username | string | Kullanıcı adı; hesabın kullanıcı adı yoksa görünen ad |
| discriminator | string | Bu yanıtta her zaman "0" |
| global_name | ?string | Görünen ad |
| avatar | null | Bu yanıtta her zaman null; image_url kullanın |
| avatar_color | null | Bu yanıtta her zaman null |
| flags | integer | Bu yanıtta her zaman 0 |
| image_url | string | Avatar URL'si |
| bot? | boolean | Yalnızca bot hesabında bulunur ve true olur |
| system? | boolean | Yalnızca sistem hesabında bulunur ve true olur |
Üye rolü nesnesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| id | snowflake | Rol kimliği |
| name | string | Rol adı |
| color | string | #RRGGBB biçiminde rol rengi |
| display_separately | boolean | Rolün hoist değeri |
| position | integer | Rol konumu |
Örnek¶
{
"user": {
"id": "1489002177550843906",
"username": "ada",
"discriminator": "0",
"global_name": "Ada",
"avatar": null,
"avatar_color": null,
"flags": 0,
"image_url": "https://tebhos.com/api/v1/avatars/1489002177550843906/5f2a9c.webp"
},
"roles": ["1489002177550843910"],
"joined_at": "2026-08-14T09:12:44+00:00",
"nickname": "Ada L.",
"timeout_until": null,
"mute": false,
"deaf": false,
"custom_roles": [
{"id": "1489002177550843910", "name": "Moderator", "color": "#3498DB", "display_separately": true, "position": 4}
],
"mention_flags": null,
"avatar_url": null,
"id": "1489002177550843906",
"profile_id": "1489002177550843906",
"name": "Ada",
"username": "ada",
"image_url": "https://tebhos.com/api/v1/avatars/1489002177550843906/5f2a9c.webp",
"bot": false,
"account_created_at": "2026-01-02T10:00:00+00:00",
"invite_code": "a1b2c3d4",
"custom_status": null,
"active_frame_url": null,
"active_badge_url": null,
"active_badge_name": null,
"inviter_name": null,
"inviter_image_url": null,
"role": ""
}
Sunucu üyelerini listeleme¶
GET /guilds/{guild_id}/members
Artan kullanıcı kimliğine göre sıralanmış, en fazla limit adet sunucu üyesi nesnesinden oluşan bir dizi döndürür. Üyelik gerektirir; üye olmayan bir çağıran 403 MISSING_ACCESS alır. Hiçbir izin biti denetlenmez.
Hız sınırı: guild:members, hesap ve sunucu başına 10 saniyede 40 (diğer üye okumaları, üye arama ve Sunucu yasaklamalarını listeleme ile paylaşılır).
Sorgu parametreleri¶
| Alan | Tür | Açıklama |
|---|---|---|
| limit? | integer | Döndürülecek en fazla üye sayısı, 1-1000 (varsayılan 1) |
| after? | snowflake | Yalnızca kullanıcı kimliği bu kullanıcı kimliğinden yüksek olan üyeleri döndür |
1-1000 aralığı dışındaki veya tamsayı olmayan bir limit, limit üzerinde INVALID_FORMAT alan koduyla 400 INVALID_FORM_BODY döndürür. Snowflake olmayan bir after da 400 INVALID_FORM_BODY döndürür. offset parametresi ve toplam sayı başlığı yoktur.
Tüm üyeleri okumak için after olmadan başlayın, ardından bir sayfa limit değerinden az üye içerene dek isteği after alanını alınan son üyenin user.id değerine ayarlayarak tekrarlayın.
curl "https://tebhos.com/api/v1/guilds/1489002177550843904/members?limit=1000&after=1489002177550843906" \
-H "Authorization: Bot $TEBHOS_BOT_TOKEN"
Geçerli sunucu üyesini alma¶
GET /guilds/{guild_id}/members/@me
Çağıranın kendi sunucu üyesi nesnesini döndürür. Üyelik gerektirir; üye olmayan bir çağıran 403 MISSING_ACCESS alır.
Hız sınırı: guild:members, hesap ve sunucu başına 10 saniyede 40.
Sunucu üyesi alma¶
GET /guilds/{guild_id}/members/{user_id}
Bir üyenin sunucu üyesi nesnesini döndürür. Üyelik gerektirir; üye olmayan bir çağıran 403 MISSING_ACCESS alır. Üye olmayan bir kullanıcı 404 UNKNOWN_MEMBER döndürür.
Hız sınırı: guild:members, hesap ve sunucu başına 10 saniyede 40.
Geçerli sunucu üyesini değiştirme¶
PATCH /guilds/{guild_id}/members/@me
Çağıranın kendi takma adını ve sunucu profilini günceller. Üyelik gerektirir. Sunucunun her üyesi Guild Member Update alır.
Hız sınırı: guild:member:update, hesap ve sunucu başına 10 saniyede 20.
JSON gövdesi¶
Her alan isteğe bağlıdır; gönderilmeyen alan değişmeden kalır.
| Alan | Tür | Açıklama |
|---|---|---|
| nick? | ?string | Takma ad; kırpıldıktan sonra en fazla 32 karakter. null veya boş string onu kaldırır |
| nickname? | string | nick ile aynı; ikisi birlikte gönderilirse bu önceliklidir. Boş string takma adı kaldırır |
| bio? | string | Sunucu profili biyografisi, en fazla 4000 karakter. Boş string onu kaldırır |
| pronouns? | string | Sunucu zamirleri, en fazla 40 karakter. Boş string onları kaldırır |
| accent_color? | integer | RGB tamsayısı olarak sunucu profili vurgu rengi |
| accent_clear? | boolean | true sunucu vurgu rengini kaldırır |
| avatar_unset? | boolean | true sunucu avatarını kaldırır |
| banner_unset? | boolean | true bu sunucu için afişi gizler |
| mention_flags? | integer | Bu sunucu için yanıtlarda bahsetme tercihi |
- Takma adı değiştirmek
CHANGE_NICKNAMEgerektirir. Bu izin yoksa takma ad değişikliği sessizce atlanır ve diğer alanlar yine uygulanır. Zaman aşımındaki bir üye takma adını değiştirmeye çalışırsa 403FORBIDDENalır. bio,pronouns,accent_color,accent_clear,avatar_unsetvebanner_unsetsunucu profili özellikleridir ve TEBHOS Pro gerektirir; Pro yoksa isteğin tamamı 403FORBIDDENile başarısız olur.bio,pronounsve vurgu rengi, üye ve sunucu başına 30 dakikada en fazla 25 kez değiştirilebilir. Bunu aşan bir değişiklik 400INVALID_FORM_BODYile veBIO_CHANGED_TOO_MANY_TIMES,PRONOUNS_CHANGED_TOO_MANY_TIMESveyaACCENT_COLOR_CHANGED_TOO_MANY_TIMESalan koduyla başarısız olur. Mevcut değeri göndermek sayılmaz.
Başarılı bir istek, çağıranın güncellenmiş sunucu üyesi nesnesiyle birlikte 200 döndürür.
curl -X PATCH https://tebhos.com/api/v1/guilds/1489002177550843904/members/@me \
-H "Authorization: Bot $TEBHOS_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"nick": "Build Bot"}'
Sunucu avatarı ve afişi¶
Sunucuya özel bir avatar veya afiş görüntüsü iki adımda yüklenir. Her ikisi de TEBHOS Pro gerektirir ve yalnızca kullanıcı içindir:
- Avatarı değiştirme ve Afişi değiştirme sayfalarında anlatıldığı gibi hesap avatarı veya afişi için bir yükleme URL'si isteyin ve görüntüyü yükleyin.
- Hesap için onaylamak yerine,
{"storage_key": string}gövdesiylePOST /servers/{guild_id}/members/@me/avatar/confirmveyaPOST /servers/{guild_id}/members/@me/banner/confirmçağrısıyla sunucu için onaylayın.
Sunucu avatarı ve sunucu afişi, üye ve sunucu başına 30 dakikada en fazla 25 kez değiştirilebilir (alan kodları AVATAR_CHANGED_TOO_MANY_TIMES ve BANNER_CHANGED_TOO_MANY_TIMES).
Sunucu üyesini değiştirme¶
PATCH /guilds/{guild_id}/members/{user_id}
Bir üyeye tek bir moderasyon değişikliği uygular. Başarılı her değişiklik, üyenin güncellenmiş sunucu üyesi nesnesiyle birlikte 200 döndürür ve eksiksiz üyeyle birlikte Guild Member Update gönderir.
Hız sınırı: guild:member:update, istemci ve sunucu başına 10 saniyede 20.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| mute? | boolean | Üyeyi seste sunucu genelinde sustur veya susturmayı kaldır |
| deaf? | boolean | Üyenin sesini sunucu genelinde kapat veya aç |
| channel_id? | ?snowflake | Üyeyi bu ses kanalına taşı veya sesten bağlantısını kesmek için null |
| connection_id? | string | Taşımayı veya bağlantı kesmeyi yalnızca bu ses bağlantısına uygula (varsayılan: tüm bağlantılar) |
| roles? | array[snowflake] | Üyenin eksiksiz yeni rol kümesi |
| nick? | ?string | Üyenin takma adı, en fazla 32 karakter. null veya boş string onu kaldırır |
| nickname? | ?string | nick ile aynı |
| communication_disabled_until? | ?ISO8601 zaman damgası | Üyenin zaman aşımının bittiği an veya zaman aşımını kaldırmak için null |
| timeout_reason? | string | Yeni bir zaman aşımıyla birlikte denetim kaydına yazılan neden |
İstek başına tek tür değişiklik
TEBHOS istek başına yalnızca bir alan grubunu şu öncelik sırasıyla uygular: ses (mute, deaf, channel_id), ardından roles, ardından takma ad, ardından communication_disabled_until. Aynı istekteki daha düşük bir gruptan gelen alanlar yok sayılır. Birden fazla şeyi değiştirmek için ayrı istekler gönderin. Bu alanlardan hiçbirini içermeyen bir gövde 400 BAD_REQUEST döndürür.
Ses moderasyonu (mute, deaf, channel_id). mute ve deaf ikisi de MUTE_MEMBERS gerektirir; channel_id MOVE_MEMBERS gerektirir. Başka bir üye üzerinde işlem yapmak ayrıca daha yüksek bir rütbe gerektirir. Üye sunucuda sese bağlı olmalıdır.
| Durum | Kod | Koşul |
|---|---|---|
| 400 | USER_NOT_IN_VOICE |
Üye bir ses kanalında değil veya connection_id üyenin bağlantılarından biri değil |
| 400 | INVALID_FORM_BODY |
Hedef mevcut değil (errors[0].code CHANNEL_DOES_NOT_EXIST) veya bir ses kanalı değil (CHANNEL_MUST_BE_VOICE) |
| 403 | MISSING_PERMISSIONS |
Çağıranın veya üyenin hedefte CONNECT izni yok |
| 404 | UNKNOWN_MEMBER |
Kullanıcı üye değil |
Taşıma bir MEMBER_MOVE, bağlantı kesme bir MEMBER_DISCONNECT, susturma veya sağırlaştırma değişikliği ise bir MEMBER_UPDATE denetim girişi oluşturur.
Roller (roles). Üyenin rol kümesini değiştirir. Sunucu sahibi herhangi bir rolü atayabilir. Diğer herkes MANAGE_ROLES iznine sahip olmalı ve eklenen veya kaldırılan her rolden daha yüksek rütbede olmalıdır; hedefin kendi rütbesi denetlenmez. Bu sunucunun rolü olmayan kimlikler atılır. @everyone rolünü dahil etmek 400 BAD_REQUEST döndürür. Geçici bir davetle katılmış bir üyeye rol vermek üyeliği kalıcı hale getirir. Denetim girişi oluşturulmaz.
Takma ad (nick veya nickname). Başka bir üyenin takma adını değiştirmek MANAGE_NICKNAMES ve daha yüksek bir rütbe gerektirir. user_id çağıranın kendisiyse istek bunun yerine Geçerli sunucu üyesini değiştirme kurallarını izler.
Zaman aşımı (communication_disabled_until). MODERATE_MEMBERS ve daha yüksek bir rütbe gerektirir; hedef çağıranın kendisiyse veya ADMINISTRATOR iznine sahipse 403 FORBIDDEN ile reddedilir. Geçmişteki bir zaman zaman aşımını kaldırır; 365 günden daha ileri bir zaman 400 INVALID_FORM_BODY döndürür. RFC 3339 zaman damgası olmayan bir değer 400 BAD_REQUEST döndürür. Zaman aşımı ayarlamak bir denetim girişi oluşturur (bkz. MEMBER_TIMEOUT). Zaman aşımı sürdüğü müddetçe üye sunucuda iletişim kuramaz; bkz. İletişim zaman aşımı.
Üye olmayan bir hedef; roller, takma ad ve zaman aşımı grupları için 404 NOT_FOUND döndürür.
curl -X PATCH https://tebhos.com/api/v1/guilds/1489002177550843904/members/1489002177550843906 \
-H "Authorization: Bot $TEBHOS_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"communication_disabled_until": "2026-09-24T12:00:00Z", "timeout_reason": "Spam"}'
Eski zaman aşımı ve takma ad yolları
Web uygulaması ayrıca {"timeout_until": ?string, "reason"?: string} ile POST /servers/{guild_id}/members/{user_id}/timeout, DELETE /servers/{guild_id}/members/{user_id}/timeout ve {"nickname": string} ile PATCH /servers/{guild_id}/members/{user_id}/nickname yollarını kullanır. Bunlar yukarıdaki alanlarla aynı kuralları izler.
Sunucu üyesini çıkarma¶
DELETE /guilds/{guild_id}/members/{user_id}
Bir üyeyi sunucudan atar. KICK_MEMBERS ve hedeften daha yüksek bir rütbe gerektirir. {"message": string} ile 200 döndürür.
Hız sınırı: guild:member:remove, hesap ve sunucu başına 10 saniyede 20.
Çağıranın kendisi, sunucu sahibi ve üye olmayan bir kullanıcı için 404 NOT_FOUND döner.
Kalan üyeler Guild Member Remove, çıkarılan hesabın oturumları ise Guild Delete alır. Sunucu hesabın sunucu klasörlerinden kaldırılır ve bir MEMBER_KICK denetim kaydı girişi oluşturulur. Çıkarılan üye takma adını, rollerini ve sunucu profilini kaybeder; bir davetle yeniden katılabilir.
Sunucu sahipliğini devretme¶
POST /guilds/{guild_id}/transfer-ownership
Başka bir üyeyi sunucu sahibi yapar ve güncellenmiş sunucu nesnesini döndürür. Yalnızca kullanıcı. Yalnızca mevcut sahip çağırabilir. Sunucu Guild Update alır.
Hız sınırı: guild:update, istemci ve sunucu başına 10 saniyede 20.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| new_owner_id | snowflake | Sahip olacak üye |
Parola veya sudo kanıtı gerekmez. Yalnızca owner_id değişir: önceki sahip üyeliğini ve rollerini korur. Sunucunun bir İş Sınıfı (Business Class) aboneliği varsa ayrıcalıkları yeni sahibe geçer.
| Durum | Kod | Koşul |
|---|---|---|
| 400 | BAD_REQUEST |
new_owner_id eksik veya snowflake değil, çağıranın kendisi ya da sunucunun üyesi değil |
| 403 | FORBIDDEN |
Çağıran sahip değil |
curl -X POST https://tebhos.com/api/v1/guilds/1489002177550843904/transfer-ownership \
-H "Authorization: Bearer $TEBHOS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"new_owner_id": "1489002177550843906"}'
Sunucu üyesine rol ekleme¶
PUT /guilds/{guild_id}/members/{user_id}/roles/{role_id}
Bir üyeye tek bir rol ekler. {"message": string} ile 200 döndürür. Sunucu Guild Member Update alır.
Hız sınırı: guild:member:role:add, istemci ve sunucu başına 10 saniyede 20.
- Sunucu sahibi sunucunun herhangi bir rolünü ekleyebilir; var olmayan bir rol 404
NOT_FOUNDdöndürür. - Diğer herkes
MANAGE_ROLESve rolden daha yüksek bir rütbe gerektirir; var olmayan bir rol 403FORBIDDENdöndürür. @everyonerolü 400BAD_REQUESTdöndürür.- Üye olmayan bir kullanıcı 404
NOT_FOUNDdöndürür.
Üyenin zaten sahip olduğu bir rolü eklemek değişiklik yapmadan başarılı olur. Denetim girişi oluşturulmaz.
Sunucu üyesinden rol kaldırma¶
DELETE /guilds/{guild_id}/members/{user_id}/roles/{role_id}
Bir üyeden tek bir rolü kaldırır. {"message": string} ile 200 döndürür. Sunucu üyesine rol ekleme ile aynı kurallar geçerlidir ve sunucu Guild Member Update alır.
Hız sınırı: guild:member:role:remove, hesap ve sunucu başına 10 saniyede 20.