API reference
Threads
Discord threads (not forums). A thread is a channel of kind public_thread or private_thread whose parent_id is the text channel it belongs to; it has no overwrites of its own and uses its parent's. Seeing a public thread needs View Channel in the parent; a private thread also needs membership of the thread or Manage Threads in the parent. Reading its history needs Read Message History in the parent and sending needs Send Messages in Threads (Send Messages is not used). A locked thread takes messages only from members with Manage Threads; sending in an archived, unlocked thread unarchives it, as on Discord. A community holds at most 1000 active (unarchived) threads; a thread archives itself after auto_archive_duration minutes without a message. Thread messages, pins, typing and acks use the message operations with the thread's ID.
Every path is relative to https://api.palloo.app/v1.
Send a bot token as Authorization: Bearer palloo_bot_... unless the operation says otherwise; see Authentication.
Try it
Send real requests to https://api.palloo.app/v1 from this page. Open Try it under an operation, fill in its fields and send it.
A bot token is a password.
Anyone who has it can act as your bot. Use a test bot in a test server, never a production bot. The token stays in this tab's memory only: it is not saved, and it goes to the API and nowhere else. Reloading or leaving the page forgets it.
Starts with palloo_bot_. People's tokens are refused here.
On this page
Create thread
/channels/{id}/threads
Bot token: Call it with a bot token (people can call it too).
Start a thread in a text channel without a message (the header's thread button). Requires View Channel and Create Public Threads, or Create Private Threads for a private one.
The caller becomes the thread's owner and first member. A public thread also posts a thread_created system message in the channel; a private one posts nothing there, so nobody outside it learns that it exists. Recorded as thread.create. Sends thread_create, thread_members_update and the caller's thread_member_update. Rate limited per caller and, once the caller is known to be able to view the channel, per channel. A member can have at most 25 active threads they started in a community (50 with Manage Threads in the channel), and a thread at most 1000 members. Answers 403 threads_disabled while the instance has threads off (PALLOO_THREADS_ENABLED, see threads_enabled on GET /instance).
Required permissions
Requires View Channel and Create Public Threads, or Create Private Threads for a private one.
Try it: POST /channels/{id}/threads
Sends the bot token from the top of this page.
Prefilled from the example above. Replace the placeholder values; unknown fields are refused.
Request
POST https://api.palloo.app/v1/channels/{id}/threads
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Channel ID. |
Request body
application/json:
CreateThreadRequest
(required)
| Field | Type | Description |
|---|---|---|
| nameRequired | string | 1-100 characters after trimming, with no control characters and no bidirectional overrides, isolates or other invisible formatting characters, as for channel names. Unlike text channel names it keeps its case and spaces. While at least 1 characters; at most 100 characters |
| kind | string | Defaults to One of |
| auto_archive_duration | integer | Defaults to 1440 (24 hours). One of |
| invitable | boolean | Private threads only; defaults to true. |
{
"name": "string",
"kind": "public_thread",
"auto_archive_duration": 60,
"invitable": false
}
Responses
- 201
-
The thread.
Body: ChannelState
Example response (201) { "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "community_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "name": "string", "kind": "text", "position": 0, "parent_id": "string", "topic": "string", "created_at": "2026-10-15T09:00:00Z", "overwrites": [ { "type": "role", "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "allow": "2748678791", "deny": "2748678791" } ], "owner_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "message_count": 0, "member_count": 0, "thread_metadata": { "archived": false, "auto_archive_duration": 60, "archive_timestamp": "2026-10-15T09:00:00Z", "locked": false, "invitable": false, "create_timestamp": "2026-10-15T09:00:00Z" }, "last_message_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "last_read_message_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "mention_count": 0, "last_pin_timestamp": "2026-10-15T09:00:00Z", "member": { "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "user_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "join_timestamp": "2026-10-15T09:00:00Z", "flags": 0, "member": { "user": {}, "nickname": "string", "avatar": {}, "avatar_dark": {}, "banner": {}, "bio": "string", "pronouns": "string", "roles": [], "joined_at": "2026-10-15T09:00:00Z", "timeout_until": "2026-10-15T09:00:00Z", "bot_presence_intent": false } } } - 400
-
invalid_body,invalid_name,invalid_thread_kind,invalid_auto_archive_durationorinvalid_thread_parent(not a text channel).Body: Error
- 401
-
unauthenticated: the bearer token is missing, invalid or expired.Body: Error
WWW-Authenticateheader. - 403
-
missing_permission,timed_outorthreads_disabled(threads are off on this instance).Body: Error
- 404
-
channel_not_found: no such channel, or the caller is not a member of its community or cannot view the channel.Body: Error
- 409
-
thread_limit_reached(the community has 1000 active threads) orthread_user_limit_reached(the caller has 25 active threads there, 50 with Manage Threads).Body: Error
- 429
-
rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).Body: Error
Retry-Afterheader. - 500
-
internal: an unexpected server error. Details are only in server logs.Body: Error
Create thread from message
/channels/{id}/messages/{messageID}/threads
Bot token: Call it with a bot token (people can call it too).
Start a public thread from a message of a text channel. Requires View Channel, Read Message History and Create Public Threads.
The thread gets the message's ID, the message shows it in thread (sent as message_update in the channel) and the thread opens with a thread_starter_message that carries the message. A message can start one thread; system messages cannot start any. Otherwise as for starting a thread from the header.
Required permissions
Requires View Channel, Read Message History and Create Public Threads.
Try it: POST /channels/{id}/messages/{messageID}/threads
Sends the bot token from the top of this page.
Prefilled from the example above. Replace the placeholder values; unknown fields are refused.
Request
POST https://api.palloo.app/v1/channels/{id}/messages/{messageID}/threads
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Channel ID. |
| messageID Required | path | string |
Message ID. The message must be in the channel. |
Request body
application/json:
CreateThreadRequest
(required)
| Field | Type | Description |
|---|---|---|
| nameRequired | string | 1-100 characters after trimming, with no control characters and no bidirectional overrides, isolates or other invisible formatting characters, as for channel names. Unlike text channel names it keeps its case and spaces. While at least 1 characters; at most 100 characters |
| kind | string | Defaults to One of |
| auto_archive_duration | integer | Defaults to 1440 (24 hours). One of |
| invitable | boolean | Private threads only; defaults to true. |
{
"name": "string",
"kind": "public_thread",
"auto_archive_duration": 60,
"invitable": false
}
Responses
- 201
-
The thread.
Body: ChannelState
Example response (201) { "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "community_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "name": "string", "kind": "text", "position": 0, "parent_id": "string", "topic": "string", "created_at": "2026-10-15T09:00:00Z", "overwrites": [ { "type": "role", "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "allow": "2748678791", "deny": "2748678791" } ], "owner_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "message_count": 0, "member_count": 0, "thread_metadata": { "archived": false, "auto_archive_duration": 60, "archive_timestamp": "2026-10-15T09:00:00Z", "locked": false, "invitable": false, "create_timestamp": "2026-10-15T09:00:00Z" }, "last_message_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "last_read_message_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "mention_count": 0, "last_pin_timestamp": "2026-10-15T09:00:00Z", "member": { "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "user_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "join_timestamp": "2026-10-15T09:00:00Z", "flags": 0, "member": { "user": {}, "nickname": "string", "avatar": {}, "avatar_dark": {}, "banner": {}, "bio": "string", "pronouns": "string", "roles": [], "joined_at": "2026-10-15T09:00:00Z", "timeout_until": "2026-10-15T09:00:00Z", "bot_presence_intent": false } } } - 400
-
invalid_body,invalid_name,invalid_thread_kind,invalid_auto_archive_duration,invalid_thread_parentorsystem_message.Body: Error
- 401
-
unauthenticated: the bearer token is missing, invalid or expired.Body: Error
WWW-Authenticateheader. - 403
-
missing_permission,timed_outorthreads_disabled(threads are off on this instance).Body: Error
- 404
-
channel_not_foundormessage_not_found.Body: Error
- 409
-
thread_exists(the message already has a thread, also when two requests race),thread_limit_reachedorthread_user_limit_reached.Body: Error
- 429
-
rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).Body: Error
Retry-Afterheader. - 500
-
internal: an unexpected server error. Details are only in server logs.Body: Error
List archived public threads
/channels/{id}/threads/archived/public
Bot token: Call it with a bot token (people can call it too).
Archived public threads of a text channel, most recently archived first. Requires View Channel and Read Message History.
Required permissions
Requires View Channel and Read Message History.
Try it: GET /channels/{id}/threads/archived/public
Sends the bot token from the top of this page.
Request
GET https://api.palloo.app/v1/channels/{id}/threads/archived/public
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Channel ID. |
| before | query | string (date-time) |
An |
| before_id | query | string |
With |
| limit | query | integer |
1-100, default 50. at least 1; at most 100 |
Responses
- 200
-
A page of threads.
Body: ThreadList
Example response (200) { "threads": [ { "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "community_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "name": "string", "kind": "text", "position": 0, "parent_id": "string", "topic": "string", "created_at": "2026-10-15T09:00:00Z", "overwrites": [ { "type": "role", "id": {}, "allow": {}, "deny": {} } ], "owner_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "message_count": 0, "member_count": 0, "thread_metadata": { "archived": false, "auto_archive_duration": 60, "archive_timestamp": "2026-10-15T09:00:00Z", "locked": false, "invitable": false, "create_timestamp": "2026-10-15T09:00:00Z" }, "last_message_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "last_read_message_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "mention_count": 0, "last_pin_timestamp": "2026-10-15T09:00:00Z", "member": { "id": {}, "user_id": {}, "join_timestamp": "2026-10-15T09:00:00Z", "flags": 0, "member": {} } } ], "has_more": false } - 400
-
invalid_query, orinvalid_thread_parentwhen the channel is not a text channel.Body: Error
- 401
-
unauthenticated: the bearer token is missing, invalid or expired.Body: Error
WWW-Authenticateheader. - 403
-
missing_permission: the caller is a member but lacks the permission.Body: Error
- 404
-
channel_not_found: no such channel, or the caller is not a member of its community or cannot view the channel.Body: Error
- 429
-
rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).Body: Error
Retry-Afterheader. - 500
-
internal: an unexpected server error. Details are only in server logs.Body: Error
List archived private threads
/channels/{id}/threads/archived/private
Bot token: Call it with a bot token (people can call it too).
Archived private threads of a text channel, most recently archived first. Requires View Channel, Read Message History and Manage Threads.
Required permissions
Requires View Channel, Read Message History and Manage Threads.
Try it: GET /channels/{id}/threads/archived/private
Sends the bot token from the top of this page.
Request
GET https://api.palloo.app/v1/channels/{id}/threads/archived/private
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Channel ID. |
| before | query | string (date-time) |
An |
| before_id | query | string |
With |
| limit | query | integer |
1-100, default 50. at least 1; at most 100 |
Responses
- 200
-
A page of threads.
Body: ThreadList
Example response (200) { "threads": [ { "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "community_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "name": "string", "kind": "text", "position": 0, "parent_id": "string", "topic": "string", "created_at": "2026-10-15T09:00:00Z", "overwrites": [ { "type": "role", "id": {}, "allow": {}, "deny": {} } ], "owner_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "message_count": 0, "member_count": 0, "thread_metadata": { "archived": false, "auto_archive_duration": 60, "archive_timestamp": "2026-10-15T09:00:00Z", "locked": false, "invitable": false, "create_timestamp": "2026-10-15T09:00:00Z" }, "last_message_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "last_read_message_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "mention_count": 0, "last_pin_timestamp": "2026-10-15T09:00:00Z", "member": { "id": {}, "user_id": {}, "join_timestamp": "2026-10-15T09:00:00Z", "flags": 0, "member": {} } } ], "has_more": false } - 400
-
invalid_query, orinvalid_thread_parentwhen the channel is not a text channel.Body: Error
- 401
-
unauthenticated: the bearer token is missing, invalid or expired.Body: Error
WWW-Authenticateheader. - 403
-
missing_permission: the caller is a member but lacks the permission.Body: Error
- 404
-
channel_not_found: no such channel, or the caller is not a member of its community or cannot view the channel.Body: Error
- 429
-
rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).Body: Error
Retry-Afterheader. - 500
-
internal: an unexpected server error. Details are only in server logs.Body: Error
List joined archived private threads
/channels/{id}/users/@me/threads/archived/private
Bot token: Call it with a bot token (people can call it too).
Archived private threads of a text channel that the caller is a member of. Requires View Channel and Read Message History.
Required permissions
Requires View Channel and Read Message History.
Try it: GET /channels/{id}/users/@me/threads/archived/private
Sends the bot token from the top of this page.
Request
GET https://api.palloo.app/v1/channels/{id}/users/@me/threads/archived/private
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Channel ID. |
| before | query | string (date-time) |
An |
| before_id | query | string |
With |
| limit | query | integer |
1-100, default 50. at least 1; at most 100 |
Responses
- 200
-
A page of threads.
Body: ThreadList
Example response (200) { "threads": [ { "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "community_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "name": "string", "kind": "text", "position": 0, "parent_id": "string", "topic": "string", "created_at": "2026-10-15T09:00:00Z", "overwrites": [ { "type": "role", "id": {}, "allow": {}, "deny": {} } ], "owner_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "message_count": 0, "member_count": 0, "thread_metadata": { "archived": false, "auto_archive_duration": 60, "archive_timestamp": "2026-10-15T09:00:00Z", "locked": false, "invitable": false, "create_timestamp": "2026-10-15T09:00:00Z" }, "last_message_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "last_read_message_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "mention_count": 0, "last_pin_timestamp": "2026-10-15T09:00:00Z", "member": { "id": {}, "user_id": {}, "join_timestamp": "2026-10-15T09:00:00Z", "flags": 0, "member": {} } } ], "has_more": false } - 400
-
invalid_query, orinvalid_thread_parentwhen the channel is not a text channel.Body: Error
- 401
-
unauthenticated: the bearer token is missing, invalid or expired.Body: Error
WWW-Authenticateheader. - 403
-
missing_permission: the caller is a member but lacks the permission.Body: Error
- 404
-
channel_not_found: no such channel, or the caller is not a member of its community or cannot view the channel.Body: Error
- 429
-
rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).Body: Error
Retry-Afterheader. - 500
-
internal: an unexpected server error. Details are only in server logs.Body: Error
List active threads
/communities/{id}/threads/active
Bot token: Call it with a bot token (people can call it too).
Every active thread of the community the caller can see, with member on the ones they joined. At most 1000.
Try it: GET /communities/{id}/threads/active
Sends the bot token from the top of this page.
Request
GET https://api.palloo.app/v1/communities/{id}/threads/active
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Community ID. |
Responses
- 200
-
A page of threads.
Body: ThreadList
Example response (200) { "threads": [ { "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "community_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "name": "string", "kind": "text", "position": 0, "parent_id": "string", "topic": "string", "created_at": "2026-10-15T09:00:00Z", "overwrites": [ { "type": "role", "id": {}, "allow": {}, "deny": {} } ], "owner_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "message_count": 0, "member_count": 0, "thread_metadata": { "archived": false, "auto_archive_duration": 60, "archive_timestamp": "2026-10-15T09:00:00Z", "locked": false, "invitable": false, "create_timestamp": "2026-10-15T09:00:00Z" }, "last_message_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "last_read_message_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "mention_count": 0, "last_pin_timestamp": "2026-10-15T09:00:00Z", "member": { "id": {}, "user_id": {}, "join_timestamp": "2026-10-15T09:00:00Z", "flags": 0, "member": {} } } ], "has_more": false } - 401
-
unauthenticated: the bearer token is missing, invalid or expired.Body: Error
WWW-Authenticateheader. - 404
-
community_not_found: no such community, or the caller is not a member. The two cases are indistinguishable on purpose.Body: Error
- 429
-
rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).Body: Error
Retry-Afterheader. - 500
-
internal: an unexpected server error. Details are only in server logs.Body: Error
List thread members
/channels/{id}/thread-members
Bot token: Call it with a bot token (people can call it too).
The members of a thread the caller can see, by user ID, with their community member.
Try it: GET /channels/{id}/thread-members
Sends the bot token from the top of this page.
Request
GET https://api.palloo.app/v1/channels/{id}/thread-members
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Channel ID. |
| after | query | string |
A user ID; list members after it. |
| limit | query | integer |
1-100, default 100. at least 1; at most 100 |
Responses
- 200
-
A page of members.
Body: ThreadMemberList
Example response (200) { "members": [ { "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "user_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "join_timestamp": "2026-10-15T09:00:00Z", "flags": 0, "member": { "user": {}, "nickname": "string", "avatar": {}, "avatar_dark": {}, "banner": {}, "bio": "string", "pronouns": "string", "roles": [], "joined_at": "2026-10-15T09:00:00Z", "timeout_until": "2026-10-15T09:00:00Z", "bot_presence_intent": false } } ], "next": "string" } - 400
-
invalid_query, orinvalid_thread_parentwhen the channel is not a text channel.Body: Error
- 401
-
unauthenticated: the bearer token is missing, invalid or expired.Body: Error
WWW-Authenticateheader. - 404
-
channel_not_found: no such channel, or the caller is not a member of its community or cannot view the channel.Body: Error
- 429
-
rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).Body: Error
Retry-Afterheader. - 500
-
internal: an unexpected server error. Details are only in server logs.Body: Error
Join thread
/channels/{id}/thread-members/@me
Bot token: Call it with a bot token (people can call it too).
Join a thread the caller can see. The thread must not be archived. Joining twice changes nothing. A thread has at most 1000 members. Sends thread_members_update and the caller's thread_member_update.
Try it: PUT /channels/{id}/thread-members/@me
Sends the bot token from the top of this page.
Request
PUT https://api.palloo.app/v1/channels/{id}/thread-members/@me
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Channel ID. |
Responses
- 204
-
Joined.
- 400
-
not_thread: the channel is not a thread.Body: Error
- 401
-
unauthenticated: the bearer token is missing, invalid or expired.Body: Error
WWW-Authenticateheader. - 403
-
missing_permission: the caller is a member but lacks the permission.Body: Error
- 404
-
channel_not_found: no such channel, or the caller is not a member of its community or cannot view the channel.Body: Error
- 409
-
thread_archived(unarchive the thread first) orthread_member_limit_reached(the thread has 1000 members).Body: Error
- 429
-
rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).Body: Error
Retry-Afterheader. - 500
-
internal: an unexpected server error. Details are only in server logs.Body: Error
Leave thread
/channels/{id}/thread-members/@me
Bot token: Call it with a bot token (people can call it too).
Leave a thread. The thread must not be archived. Leaving a private thread hides it unless the caller has Manage Threads.
Try it: DELETE /channels/{id}/thread-members/@me
Sends the bot token from the top of this page.
Request
DELETE https://api.palloo.app/v1/channels/{id}/thread-members/@me
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Channel ID. |
Responses
- 204
-
Left.
- 400
-
not_thread: the channel is not a thread.Body: Error
- 401
-
unauthenticated: the bearer token is missing, invalid or expired.Body: Error
WWW-Authenticateheader. - 403
-
missing_permission: the caller is a member but lacks the permission.Body: Error
- 404
-
channel_not_found, orthread_member_not_foundwhen the caller is not a member.Body: Error
- 409
-
thread_archived: unarchive the thread first.Body: Error
- 429
-
rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).Body: Error
Retry-Afterheader. - 500
-
internal: an unexpected server error. Details are only in server logs.Body: Error
Add thread member
/channels/{id}/thread-members/{userID}
Bot token: Call it with a bot token (people can call it too).
Add a member who can view the parent channel to a thread. Requires being able to send in the thread; for a private thread also that it is invitable or that the caller has Manage Threads. The thread must not be archived and has at most 1000 members. An added member of a private thread receives thread_create for it. A message adds at most 20 of the users it mentions.
Required permissions
Requires being able to send in the thread; for a private thread also that it is invitable or that the caller has Manage Threads.
Try it: PUT /channels/{id}/thread-members/{userID}
Sends the bot token from the top of this page.
Request
PUT https://api.palloo.app/v1/channels/{id}/thread-members/{userID}
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Channel ID. |
| userID Required | path | string |
The member's user ID. |
Responses
- 204
-
Added, or already a member.
- 400
-
not_thread: the channel is not a thread.Body: Error
- 401
-
unauthenticated: the bearer token is missing, invalid or expired.Body: Error
WWW-Authenticateheader. - 403
-
missing_permission,timed_out,thread_lockedorcannot_view_thread(the member cannot view the parent).Body: Error
- 404
-
channel_not_foundormember_not_found.Body: Error
- 409
-
thread_archived(unarchive the thread first) orthread_member_limit_reached(the thread has 1000 members).Body: Error
- 429
-
rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).Body: Error
Retry-Afterheader. - 500
-
internal: an unexpected server error. Details are only in server logs.Body: Error
Remove thread member
/channels/{id}/thread-members/{userID}
Bot token: Call it with a bot token (people can call it too).
Remove a member from a thread. Requires Manage Threads, or being the owner of a private thread. The thread must not be archived.
Required permissions
Requires Manage Threads, or being the owner of a private thread.
Try it: DELETE /channels/{id}/thread-members/{userID}
Sends the bot token from the top of this page.
Request
DELETE https://api.palloo.app/v1/channels/{id}/thread-members/{userID}
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Channel ID. |
| userID Required | path | string |
The member's user ID. |
Responses
- 204
-
Removed.
- 400
-
not_thread: the channel is not a thread.Body: Error
- 401
-
unauthenticated: the bearer token is missing, invalid or expired.Body: Error
WWW-Authenticateheader. - 403
-
missing_permission: the caller is a member but lacks the permission.Body: Error
- 404
-
channel_not_foundorthread_member_not_found.Body: Error
- 409
-
thread_archived: unarchive the thread first.Body: Error
- 429
-
rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).Body: Error
Retry-Afterheader. - 500
-
internal: an unexpected server error. Details are only in server logs.Body: Error