API reference
Tiers
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
Get vanity invite
/communities/{id}/vanity
Bot token: Call it with a bot token (people can call it too).
The community's vanity code, with its uses and any lapse. Needs Manage Community.
Try it: GET /communities/{id}/vanity
Sends the bot token from the top of this page.
Request
GET https://api.palloo.app/v1/communities/{id}/vanity
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Community ID. |
Responses
- 200
-
The vanity code.
Body: VanityInvite
Example response (200) { "community_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "code": "string", "uses": 0, "created_at": "2026-10-15T09:00:00Z", "lapsed_at": "2026-10-15T09:00:00Z", "release_at": "2026-10-15T09:00:00Z" } - 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_foundorvanity_not_found.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
Set vanity invite
/communities/{id}/vanity
Bot token: Call it with a bot token (people can call it too).
Set or change the vanity code (/invite/<code>). Needs Manage Community and a tier with the vanity_invite perk. The code is lowercased. A replaced code is held for 90 days, during which only this community can take it back; a community holds at most one released code, so a new hold ends the previous one. A community can change its code twice in 12 hours (429 after that). Logged as community.vanity_update.
Try it: PUT /communities/{id}/vanity
Sends the bot token from the top of this page.
Prefilled from the example above. Replace the placeholder values; unknown fields are refused.
Request
PUT https://api.palloo.app/v1/communities/{id}/vanity
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Community ID. |
Request body
application/json:
SetVanityRequest
(required)
| Field | Type | Description |
|---|---|---|
| codeRequired | string | 3 to 32 letters, digits and single hyphens, not starting or ending with a hyphen. Lowercased. |
{
"code": "string"
}
Responses
- 200
-
The vanity code.
Body: VanityInvite
Example response (200) { "community_id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A", "code": "string", "uses": 0, "created_at": "2026-10-15T09:00:00Z", "lapsed_at": "2026-10-15T09:00:00Z", "release_at": "2026-10-15T09:00:00Z" } - 400
-
invalid_bodyorinvalid_vanity_code.Body: Error
- 401
-
unauthenticated: the bearer token is missing, invalid or expired.Body: Error
WWW-Authenticateheader. - 403
-
missing_permissionortier_required.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
- 409
-
vanity_reserved(on the built-in or the instance's reserved list, or held by the instance after a takedown or a deleted community) orvanity_taken(used, held by another community after a release, or equal, ignoring case, to any random invite code ever issued, including revoked and expired ones).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 vanity invite
/communities/{id}/vanity
Bot token: Call it with a bot token (people can call it too).
Remove the vanity code. Needs Manage Community. The code is held for this community for 90 days, replacing any earlier hold.
Try it: DELETE /communities/{id}/vanity
Sends the bot token from the top of this page.
Request
DELETE https://api.palloo.app/v1/communities/{id}/vanity
curl command
Response
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id Required | path | string |
Community ID. |
| X-Audit-Log-Reason | header | string |
A reason recorded in the community's moderation log, percent-encoded UTF-8. Trimmed, then at most 512 characters with no control or invisible formatting characters. |
Responses
- 204
-
Removed.
- 400
-
invalid_reason.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_foundorvanity_not_found.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