OpenAPI Specification
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}`.'