openapi: 3.0.3 info: title: Minecraft Services Attributes Capes API description: Microsoft-managed Minecraft Services API (api.minecraftservices.com). Covers authenticated player profile management, name change, skin and cape management, player attributes (chat, friends, profanity filter), privacy blocklist, friends graph, presence reporting, signature keypair issuance, public-key publication for chat signature verification, and player entitlement / ownership checks. Most endpoints require a Minecraft Bearer access token obtained via the Xbox Live -> XSTS -> Minecraft authentication chain. version: 1.0.0 contact: name: Mojang Studios url: https://www.minecraft.net license: name: Mojang Brand and Asset Usage Guidelines url: https://www.minecraft.net/en-us/usage-guidelines x-generated-from: documentation x-last-validated: '2026-05-30' servers: - url: https://api.minecraftservices.com description: Microsoft / Minecraft Services API (production) security: [] tags: - name: Capes description: Cape selection and visibility paths: /minecraft/profile/capes/active: put: operationId: showCape summary: Show Cape description: Set a cape (by UUID) as the player's active cape. tags: - Capes security: - bearerAuth: [] requestBody: required: true description: Cape selection. content: application/json: schema: $ref: '#/components/schemas/CapeSelection' responses: '200': description: Updated profile. content: application/json: schema: $ref: '#/components/schemas/AuthenticatedProfile' '400': description: Player does not own the requested cape. content: application/json: schema: $ref: '#/components/schemas/Error' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: hideCape summary: Hide Cape description: Hide the player's currently active cape. tags: - Capes security: - bearerAuth: [] responses: '200': description: Updated profile. content: application/json: schema: $ref: '#/components/schemas/AuthenticatedProfile' '401': description: Missing or invalid access token. content: application/json: schema: $ref: '#/components/schemas/Error' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: Error: type: object description: Standard Minecraft Services error envelope. properties: path: type: string description: Request path that produced the error. example: /minecraft/profile/lookup/name/zzzzzzzzzzzzzz errorType: type: string description: Mojang error class. example: NOT_FOUND error: type: string description: Short error name. example: NOT_FOUND errorMessage: type: string description: Human-readable description. example: Couldn't find any profile with name zzzzzzzzzzzzzz developerMessage: type: string description: Optional developer-facing message. example: Couldn't find any profile with name zzzzzzzzzzzzzz CapeSelection: type: object description: Cape-selection payload. required: - capeId properties: capeId: type: string description: UUID of the cape to set active. example: 1981aad373fa9754 Cape: type: object description: A cape owned by the authenticated player. required: - id - state - url properties: id: type: string description: Cape UUID. example: 1981aad373fa9754 state: type: string enum: - ACTIVE - INACTIVE example: ACTIVE url: type: string format: uri description: Cape texture URL. example: https://textures.minecraft.net/texture/cape123... alias: type: string description: Cape display name. example: Migrator AuthenticatedProfile: type: object description: The authenticated player's own profile with skins and capes. required: - id - name properties: id: type: string description: Player UUID without hyphens. example: 853c80ef3c3749fdaa49938b674adae6 name: type: string description: Current username. example: jeb_ skins: type: array description: All skins owned by the player; one is marked ACTIVE. items: $ref: '#/components/schemas/Skin' capes: type: array description: All capes owned by the player; one may be marked ACTIVE. items: $ref: '#/components/schemas/Cape' profileActions: type: array description: Sanctions in effect on the profile (e.g. FORCED_NAME_CHANGE). items: type: string example: [] Skin: type: object description: A skin owned by the authenticated player. required: - id - state - url - variant properties: id: type: string description: Skin UUID. example: cd9a82a0-0b9c-4f10-8c2a-1b1f87b2af80 state: type: string enum: - ACTIVE - INACTIVE example: ACTIVE url: type: string format: uri description: Texture URL. example: https://textures.minecraft.net/texture/abc123... textureKey: type: string description: Texture content hash. example: abc123def456... variant: type: string enum: - CLASSIC - SLIM example: CLASSIC alias: type: string description: Skin alias / nickname. example: Steve securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: 'Minecraft access token issued by /authentication/login_with_xbox. Used as `Authorization: Bearer {token}`.'