Skip to content
Fluxer API

Admin badges

A custom badge is an image that instance admins make and give out. A user badge shows on the profile of each account it’s given to, after the built-in badges. A guild badge shows next to the guild name, after its verified, partnered or discoverable badge, and instance discovery lists every guild badge for clients.

You can make up to 10 badges of each type, and an account or guild can have up to 10. Give badges with Update user badges and the badge_ids field of Update guild. Deleting a badge takes it off everyone who had it.

FieldTypeDescription
idsnowflakeThe ID of the badge
typestringuser or guild
namestringThe name of the badge (1-64 characters)
description?stringThe tooltip text under the name (1-256 characters), or null
asset_urlstringThe badge image as WebP from the media proxy
href?stringThe https URL a click opens, or null
{
"id": "1489002177550843904",
"type": "user",
"name": "Translator",
"description": "Helps translate Fluxer",
"asset_url": "https://media.example.com/custom-badges/1489002177550843904/3f2a9c1d.webp",
"href": null
}
GET/v1/admin/badgesAudit reason

Returns every custom badge in display order, which is the order they were made in. You need badge:list.

FieldTypeDescription
badgesarray[Admin custom badge object]The badges of both types
StatusBodyCondition
200response bodyThe badges were returned

The rate limit is 200 requests per minute, on the admin:lookup bucket.

POST/v1/admin/badgesAudit reason

Uploads the image to the media proxy, makes the badge and returns it. You need badge:create.

FieldTypeDescription
typestringuser or guild
namestringThe name of the badge (1-64 characters)
description??stringThe tooltip text (1-256 characters)
href??stringThe https URL a click opens
image1stringThe image as a base64 data URI (up to 16000000 characters)

1 Up to the avatar_max_size limit, 10 MiB by default, as PNG, JPEG, WebP, GIF, APNG, still AVIF, HEIC, HEIF, JXL or SVG, and at least 128 by 128 pixels. Clients always get a WebP version

StatusBodyCondition
200Admin custom badge objectThe badge was made
400error responseMAX_BADGES when the type already has 10 badges, or INVALID_FORM_BODY for a bad field
400error responseIMAGE_SIZE_EXCEEDS_LIMIT, INVALID_IMAGE_FORMAT or FAILED_TO_UPLOAD_IMAGE for a bad image

The rate limit is 100 requests per minute, on the admin:user:modify bucket.

PATCH/v1/admin/badges/{badge_id}Audit reason

Replaces the name, description and link of a badge, and its image when you send one, and returns the badge. The type can’t change. You need badge:update.

FieldTypeDescription
namestringThe name of the badge (1-64 characters)
description?stringThe tooltip text under the name (1-256 characters), or null
href?stringThe https URL a click opens, or null
image?1stringA new image as a base64 data URI. Leave it out to keep the current one

1 The same formats and limits as Create badge

StatusBodyCondition
200Admin custom badge objectThe badge was updated
400error responseINVALID_FORM_BODY for a bad field
400error responseIMAGE_SIZE_EXCEEDS_LIMIT, INVALID_IMAGE_FORMAT or FAILED_TO_UPLOAD_IMAGE for a bad image
404error responseUNKNOWN_BADGE when the badge doesn’t exist

The rate limit is 100 requests per minute, on the admin:user:modify bucket.

DELETE/v1/admin/badges/{badge_id}Audit reason

Deletes a badge and its image and returns 204. Accounts and guilds that had it stop showing it. You need badge:delete.

StatusBodyCondition
204noneThe badge was deleted
404error responseUNKNOWN_BADGE when the badge doesn’t exist

The rate limit is 100 requests per minute, on the admin:user:modify bucket.