API reference
Communities
Communities are shown to people as "servers". A caller who is not a member gets the same 404 as for an ID that does not exist.
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
List my communities
/users/@me/communities
Bot token: Call it with a bot token (people can call it too).
Communities the current user belongs to, in the order they joined.
Try it: GET /users/@me/communities
Sends the bot token from the top of this page.
Request
GET https://api.palloo.app/v1/users/@me/communities
curl command
Response
Responses
- 200
-
The user's communities.
Body: CommunityList
Example response (200) { "communities": [ { "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "name": "string", "owner_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "icon": "string", "icon_dark": "string", "banner": "string", "mfa_level": 0, "default_notification_level": "all", "bot_presence_allowed": false, "tier": "standard", "limits": { "members": 0, "channels": 0, "roles": 0, "upload_bytes": 0, "emoji_slots": 0, "sticker_slots": 0 }, "perks": [ "vanity_invite" ], "features": [ "threads" ], "vanity_code": "string", "organization": { "id": {}, "name": "string", "domain": "string" }, "created_at": "2026-10-15T09:00:00Z", "directory": { "status": {}, "paused": false, "reason": "string", "visible": false, "needs_attention": false, "updated_at": "2026-10-15T09:00:00Z" } } ] } - 401
-
unauthenticated: the bearer token is missing, invalid or expired.Body: Error
WWW-Authenticateheader. - 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
Get community
/communities/{id}
Bot token: Call it with a bot token (people can call it too).
One community. Members only.
Try it: GET /communities/{id}
Sends the bot token from the top of this page.
Request
GET https://api.palloo.app/v1/communities/{id}
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Community ID. |
Responses
- 200
-
The community.
Body: Community
Example response (200) { "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "name": "string", "owner_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "icon": "string", "icon_dark": "string", "banner": "string", "mfa_level": 0, "default_notification_level": "all", "bot_presence_allowed": false, "tier": "standard", "limits": { "members": 0, "channels": 0, "roles": 0, "upload_bytes": 0, "emoji_slots": 0, "sticker_slots": 0 }, "perks": [ "vanity_invite" ], "features": [ "threads" ], "vanity_code": "string", "organization": { "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "name": "string", "domain": "string" }, "created_at": "2026-10-15T09:00:00Z", "directory": { "status": "pending", "paused": false, "reason": "string", "visible": false, "needs_attention": false, "updated_at": "2026-10-15T09:00:00Z" } } - 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
Update community
/communities/{id}
Bot token: Call it with a bot token (people can call it too).
Change a community's name, icon, banner, default notification level or bot presence setting. Requires Manage Community.
Omitted fields keep their value. icon and banner take a finalized upload of the caller's for this community, or null. Members receive community_update.
Required permissions
Requires Manage Community.
Try it: PATCH /communities/{id}
Sends the bot token from the top of this page.
Prefilled from the example above. Replace the placeholder values; unknown fields are refused.
Request
PATCH https://api.palloo.app/v1/communities/{id}
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Community ID. |
Request body
application/json:
UpdateCommunityRequest
(required)
| Field | Type | Description |
|---|---|---|
| name | string | Trimmed, then 1 to 100 characters with no control or invisible formatting characters. |
| default_notification_level | DefaultNotificationLevel | |
| bot_presence_allowed | boolean | Whether bots with the presence intent receive this community's presence. |
| icon | string or null | A finalized |
| icon_dark | string or null | A finalized |
| banner | string or null | A finalized |
{
"name": "string",
"default_notification_level": "all",
"bot_presence_allowed": false,
"icon": "string",
"icon_dark": "string",
"banner": "string"
}
Responses
- 200
-
The updated community.
Body: Community
Example response (200) { "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "name": "string", "owner_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "icon": "string", "icon_dark": "string", "banner": "string", "mfa_level": 0, "default_notification_level": "all", "bot_presence_allowed": false, "tier": "standard", "limits": { "members": 0, "channels": 0, "roles": 0, "upload_bytes": 0, "emoji_slots": 0, "sticker_slots": 0 }, "perks": [ "vanity_invite" ], "features": [ "threads" ], "vanity_code": "string", "organization": { "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "name": "string", "domain": "string" }, "created_at": "2026-10-15T09:00:00Z", "directory": { "status": "pending", "paused": false, "reason": "string", "visible": false, "needs_attention": false, "updated_at": "2026-10-15T09:00:00Z" } } - 400
-
invalid_body,invalid_name,invalid_setting(default_notification_levelis notallormentions) orinvalid_attachment(iconorbanneris not a finished upload for this community).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
-
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
Delete community
/communities/{id}
Bot token: Call it with a bot token (people can call it too).
Delete a community and everything in it. Only the owner can. Delete a community with all of its channels, messages, members and invites. Requires Manage Community.
Required permissions
Requires Manage Community.
Try it: not available. Only people can do this, and Try it takes bot tokens only.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Community ID. |
Responses
- 204
-
Deleted.
- 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, ormfa_sudo_required: the account has MFA and this session has not verified a factor in the last 5 minutes (POST /users/@me/mfa/sudo, then retry).Body: Error
- 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