OpenAPI Specification
openapi: 3.0.3
info:
title: Minecraft Services Attributes Presence 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: Presence
description: Online / playing presence reporting
paths:
/presence:
post:
operationId: reportPresence
summary: Report Presence
description: Publish the player's online / playing presence. Returns the current presence of every online friend.
tags:
- Presence
security:
- bearerAuth: []
requestBody:
required: true
description: Presence payload.
content:
application/json:
schema:
$ref: '#/components/schemas/PresenceReport'
responses:
'200':
description: Friends' presence snapshot.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PresenceEntry'
'401':
description: Missing or invalid access token.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
schemas:
PresenceReport:
type: object
description: Body for POST /presence.
required:
- status
properties:
status:
type: string
enum:
- OFFLINE
- ONLINE
- PLAYING_OFFLINE
- PLAYING_HOSTED_SERVER
- PLAYING_REALMS
- PLAYING_SERVER
example: PLAYING_SERVER
joinInfo:
type: object
additionalProperties: true
description: Optional server / realm join metadata.
PresenceEntry:
type: object
description: A friend's current presence.
properties:
profileId:
type: string
description: Friend UUID.
example: 853c80ef3c3749fdaa49938b674adae6
status:
type: string
enum:
- OFFLINE
- ONLINE
- PLAYING_OFFLINE
- PLAYING_HOSTED_SERVER
- PLAYING_REALMS
- PLAYING_SERVER
example: PLAYING_SERVER
lastUpdated:
type: string
format: date-time
example: '2026-05-30T12:00:00Z'
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
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: 'Minecraft access token issued by /authentication/login_with_xbox. Used as `Authorization: Bearer {token}`.'