Mojang Attributes API

Profanity filter, friends, chat preferences

OpenAPI Specification

mojang-attributes-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Minecraft Services Attributes 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: Attributes
  description: Profanity filter, friends, chat preferences
paths:
  /player/attributes:
    get:
      operationId: getPlayerAttributes
      summary: Get Player Attributes
      description: 'Returns the player''s account attributes: privileges, profanity filter preferences, friends preferences, chat settings, and ban / suspension status.'
      tags:
      - Attributes
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Player attributes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlayerAttributes'
        '401':
          description: Missing or invalid access token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: updatePlayerAttributes
      summary: Update Player Attributes
      description: Update the player's profanity filter and friends preferences.
      tags:
      - Attributes
      security:
      - bearerAuth: []
      requestBody:
        required: true
        description: Patch payload (only changed sections need be supplied).
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlayerAttributesUpdate'
      responses:
        '200':
          description: Updated attributes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlayerAttributes'
        '400':
          description: Invalid attribute payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    BanStatus:
      type: object
      description: Active ban / suspension status, if any.
      properties:
        bannedScopes:
          type: object
          additionalProperties: true
          description: Map of scope -> ban metadata.
    PlayerAttributes:
      type: object
      description: Account-level player attributes.
      properties:
        privileges:
          $ref: '#/components/schemas/PrivilegeMap'
        profanityFilterPreferences:
          $ref: '#/components/schemas/ProfanityFilterPreferences'
        friendsPreferences:
          $ref: '#/components/schemas/FriendsPreferences'
        banStatus:
          $ref: '#/components/schemas/BanStatus'
    PrivilegeMap:
      type: object
      description: Flag map of account privileges.
      properties:
        onlineChat:
          type: object
          properties:
            enabled:
              type: boolean
              example: true
        multiplayerServer:
          type: object
          properties:
            enabled:
              type: boolean
              example: true
        multiplayerRealms:
          type: object
          properties:
            enabled:
              type: boolean
              example: true
        telemetry:
          type: object
          properties:
            enabled:
              type: boolean
              example: true
    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
    ProfanityFilterPreferences:
      type: object
      description: Profanity filter settings.
      properties:
        profanityFilterOn:
          type: boolean
          description: Master toggle for the profanity filter on inbound chat.
          example: true
    FriendsPreferences:
      type: object
      description: Friends-graph privacy settings.
      properties:
        allowFriendRequests:
          type: boolean
          description: Whether other players may send friend requests.
          example: true
    PlayerAttributesUpdate:
      type: object
      description: Patch payload for updating player attributes.
      properties:
        profanityFilterPreferences:
          $ref: '#/components/schemas/ProfanityFilterPreferences'
        friendsPreferences:
          $ref: '#/components/schemas/FriendsPreferences'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Minecraft access token issued by /authentication/login_with_xbox. Used as `Authorization: Bearer {token}`.'