Dieser Artikel behandelt die Webschnittstelle von Mojang. Für die Programmierschnittstelle des Spiels siehe Plugin API.
Die Mojang API (Application Programming Interface) ist eine von Mojang zur Verfügung gestellte Programmierschnittstelle, über die man mit selbst geschriebenen Programmen Spielerdaten abfragen kann. Sie ist für Serverbetreiber und Plugin-Entwickler gedacht und wird durch einen Mojang-Server betrieben.
Alle Abfragen sind zur Zeit auf 600 pro 10 Minuten begrenzt[1]. Manche Abfragen sind auch für Demo-Accounts (registrierte Accounts ohne Kauf des Spiels) möglich, aber nicht alle.
Ein Spielername (Groß-/Kleinschreibung ist egal) und optional eine UNIX-Zeit (Sekunden seit dem 1. Januar 1970). Wird die UNIX-Zeit weggelassen, wird die aktuelle Zeit angenommen. Hier gibt es eine Online-Umrechnung der UNIX-Zeit.
GET-Abfrage
https://api.mojang.com/users/profiles/minecraft/<Spielername> oder https://api.mojang.com/users/profiles/minecraft/<Spielername>?at=<UNIX-Zeit>
name: Der Spielername in korrekter Groß-/Kleinschrift.
legacy:true, wenn es sich um einen alten Minecraft-Account handelt, ansonsten ist legacy nicht in der Ausgabe enthalten.
demo:true, wenn es sich um einen nicht bezahlten Demo-Account handelt, ansonsten ist demo nicht in der Ausgabe enthalten.
Beispiel
https://api.mojang.com/users/profiles/minecraft/OYO123?at=1420066800 liefert die UUID des Spielers "oyo123" zum 1. Januar 2015. Die Ausgabe erfolgt in einer Zeile ohne Leerzeichen und Zeilenumbrüche und wird nur hier strukturiert dargestellt:
Wenn es keinen Spieler mit dem Namen gibt, wird keine Ausgabe geliefert (HTTP Status Code 204 = no content).
Wenn die UNIX-Zeit kein gültiger Wert ist, wird der HTTP Status Code 400 (= bad request) mit folgender Fehlermeldung geliefert: {"error":"IllegalArgumentException","errorMessage":"Invalid timestamp."}
Alle Spielernamen[]
Eingabe
Die UUID eines Spielers.
GET-Abfrage
https://api.mojang.com/user/profiles/<UUID>/names
Ausgabe
Eine Liste mit allen Spielernamen, die dieser Account jemals hatte. Achtung: Das sind nicht die Zweitaccounts, sondern alle geänderten Spielernamen eines Accounts.
Ein Spielername.
name: Der Spielername in korrekter Groß-/Kleinschrift.
changedToAt: Änderungszeitpunkt in UNIX-Zeit (Sekunden seit dem 1. Januar 1970).
Beispiel
https://api.mojang.com/user/profiles/61699b2ed3274a910f1e0ea8c3f06bc6/names liefert den ursprünglichen Spielernamen oyo123, die Änderung vom 4. Februar 2015 in xXoyoXx und die Änderung vom 1. April 2015 in __oyo__. Die Ausgabe erfolgt in einer Zeile ohne Leerzeichen und Zeilenumbrüche und wird nur hier strukturiert dargestellt:
Wenn ein Spielername in der Auflistung fehlt (zwei Kommas hintereinander) oder ein Leerstring "" ist, wird eine IllegalArgumentException geliefert.
Skin und Cape[]
Eingabe
Die UUID eines Spielers und optional die Anforderung einer Signatur. Die Abfrage für eine bestimmte UUID kann frühestens nach einer Minute wiederholt werden.
GET-Abfrage
https://sessionserver.mojang.com/session/minecraft/profile/<UUID> oder https://sessionserver.mojang.com/session/minecraft/profile/<UUID>?unsigned=false
name: Der Spielername in korrekter Groß-/Kleinschrift.
properties: Eine Liste der Eigenschaften des Spielers.
name: Name der Eigenschaft. Es gibt bisher nur die Eigenschaft "textures" ("Spielertexturen").
signature: Nur wenn angefordert, wird hier der private Schlüssel des Mojang-Servers "Yggdrasil" als Base64-String geliefert.
value: Alle Texturen (Skin und ggf. Cape) in einer Base64-Zeichenkette. Für Base64 gibt es Online-Decodierungen, z.B. diese. Nach der Entschlüsselung erhält man folgende Informationen:
Das namenlose Texturobjekt.
profileId: Optional die UUID des Spielers ohne Bindestriche.
profileName: Optional der Spielername.
isPublic: true oder false. Der Wert true ist Standard und kann weggelassen werden. false gibt an, dass die Textur-URL nicht öffentlich zugänglich ist.
url: Die URL der Umhang-Textur. Ein Umhang wird bei Köpfen nicht angezeigt. Ansonsten wird ein Umhang nur angezeigt, wenn in den Account-Daten des Spielers ein Umhang durch Mojang eingetragen wurde.
timestamp: Optional die Unixzeit in Millisekunden des Zeitpunktes, wann die Texturdaten abgerufen wurden. Die Umrechnung von Unix-Sekunden in Realzeit ist z. B. hier möglich, man muss aber vorher die letzten drei Stellen vom timestamp entfernen, da es Millisekunden sind.
Beispiel
https://sessionserver.mojang.com/session/minecraft/profile/61699b2ed3274a910f1e0ea8c3f06bc6 Die Ausgabe erfolgt in einer Zeile ohne Leerzeichen und Zeilenumbrüche und wird nur hier strukturiert dargestellt: