Get migration token
This endpoint allows an authenticated user to get their migration token, used later for Microsoft Account (MSA) migration.
NOTE: These docs are unfinished.
These docs were submitted by Dusks via DM to me on Discord, and I've formatted them and posted here + added a bit more data to them. Thank you, Dusks! Some endpoints have also been documented by fweak.
Request
- Method:
POST
- Endpoint:
/migration/token
- Full URL:
https://api.minecraftservices.com/migration/token
- Headers:
Authorization: Bearer [JWT/auth token here]
Content-Type: application/json
The POST body for this request should be similar to this:
{
"sessionEmail": "cooluser@gmail.com" // current email of the Mojang account
}
Note: This endpoint can also be used with the GET
method with no body and no Content-Type
header, and will return the same data. Status code 400 will not occur with the GET
method.
Response
200: OK
Got token successfully. Sample response:
eyJhbGciOiJSUzI1NiIsIng1dCI6Ik1waTNjYlliNHJpWWwzcVl1YzFOTm5HeDdvOCIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2FwaS5taW5lY3JhZnRzZXJ2aWNlcy5jb20iLCJhdWQiOiJodHRwOi8vbG9naW4ubGl2ZS5jb20iLCJ2ZXIiOiIxLjAiLCJpYXQiOjE2MTg2ODczMzksImV4cCI6MTYxODY4ODUzOSwibmJmIjoxNjE4Njg3MzM5LCJhZGRyZXNzIjp7ImNvdW50cnkiOiJ0d29fbGV0dGVyX2NvdW50cnlfY29kZSJ9LCJiaXJ0aGRhdGUiOiJZWVlZLU1NLUREIiwiZW1haWwiOiJlbWFpbF9vZl9tb2phbmdfYWNjb3VudEBkb21haW4udGxkIiwiZW1haWxfdmVyaWZpZWQiOnRydWV9.qLmgkntcdORU35vplL0989N6kd7-ZKz43ZEYwhMcyrIH13bIs7SlHCbmTDW9s0HN2W9x3RSJZCZ5Eh6K3b5K8PTvfI1QQn4m84UBuZa0GQz0KQcDHhxWd_XTByoqWaEwbSUqWr95WdyMUHU7FqF9-eYnQTtmWw6tF6SxXWYnR7Ub4mQyb96hL1Jo5zF1U6yykipMbnG4i3LAd9SsRpTtgCWPioMa2UWb_ETHDQwvc7Jz1YsPi4oOSqZJpIEqJQO8W1oQt9Th_1XY0W4Qr3iK0LSosVrEr55mB2soNHuQg4FK4pvGoUYfdm_1Yn2ikjpIwB6_PZdNpdK3D9275hUjsA
400: Bad Request
You have provided an incorrect email as the sessionEmail
, or neglected to provide a POST body entirely.
// incorrect email (always returned with legacy accounts, even with the correct email or email hash)
{
"path": "/migration/token",
"errorMessage": "Supplied e-mail doesn't match account e-mail",
"developerMessage": "Supplied e-mail doesn't match account e-mail"
}
// did not pass an email
{
"path": "/migration/token",
"errorType": "CONSTRAINT_VIOLATION",
"error": "CONSTRAINT_VIOLATION",
"errorMessage": "getMigrationToken.tokenRequest.sessionEmail: must not be blank",
"developerMessage": "getMigrationToken.tokenRequest.sessionEmail: must not be blank"
}
// blank POST data
{
"path": "/migration/token",
"errorType": "Bad Request",
"error": "Bad Request",
"errorMessage": "Required Body [tokenRequest] not specified",
"developerMessage": "Required Body [tokenRequest] not specified"
}
401: Unauthorized
You provided an invalid Bearer token or neglected to fill in the Authorization
header entirely.
No body is returned for this response.
403: Forbidden
This status code is returned when you try to get your token with a MSA (already migrated or newly created).
{
"path": "/migration/token",
"errorType": "FORBIDDEN",
"error": "FORBIDDEN"
}
500: Internal Server Error
In testing as of June 20, 2021, I have not observed this to occur with unmigrated / legacy accounts as previously noted here.
{
"path": "/migration/token"
}