Files
2024-03-12 00:39:54 -07:00

839 lines
23 KiB
JSON

{
"components": {
"responses": {},
"schemas": {
"ConvertedSkin": {
"description": "Data representing a skin that has been converted and uploaded to Java Edition",
"properties": {
"hash": {
"description": "The hash of the skin bytes",
"type": "string"
},
"is_steve": {
"description": "If the skin is a Steve or an Alex",
"type": "boolean"
},
"signature": {
"description": "The signature of the skin data used by Minecraft",
"type": "string"
},
"texture_id": {
"description": "The texture id used by Minecraft",
"type": "string"
},
"value": {
"description": "The value of the skin data used by Minecraft",
"type": "string"
}
},
"required": [
"hash",
"texture_id",
"value",
"singature",
"is_steve"
],
"title": "ConvertedSkin",
"type": "object"
},
"Error": {
"description": "Generic format for pretty much every error",
"required": [
"message"
],
"properties": {
"message": {
"description": "The error message",
"type": "string"
}
},
"title": "Error",
"type": "object"
},
"Link": {
"description": "A link between a Java and a Bedrock account",
"properties": {
"bedrock_id": {
"description": "xuid of the Bedrock player",
"example": 2535432196048835,
"format": "int64",
"type": "integer"
},
"java_id": {
"description": "UUID of the Java player",
"example": "d34eb447-6e90-4c78-9281-600df88aef1d",
"format": "uuid",
"type": "string"
},
"java_name": {
"description": "Username of the Java player",
"example": "Tim203",
"type": "string"
},
"last_name_update": {
"description": "Unix millis of the last Java name update check",
"format": "int64",
"type": "integer"
}
},
"required": [
"bedrock_id",
"java_id",
"java_name",
"last_name_update"
],
"title": "Link",
"type": "object"
},
"LinkList": {
"description": "Response schema for a list of links",
"items": {
"$ref": "#/components/schemas/Link"
},
"title": "LinkList",
"type": "array"
},
"RecentConvertedSkinList": {
"description": "List of most recently converted skins. Ordered by most recently converted",
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/RecentConvertedSkinReference"
},
"type": "array"
},
"total_pages": {
"description": "The amount of pages available",
"type": "integer"
}
},
"title": "RecentConvertedSkinList",
"type": "object"
},
"RecentConvertedSkinReference": {
"description": "The most basic info required to show a Java skin on the site",
"properties": {
"id": {
"description": "The converted skin id",
"type": "integer"
},
"texture_id": {
"description": "The texture id used by Minecraft",
"type": "string"
}
},
"required": [
"id",
"texture_id"
],
"title": "RecentConvertedSkinReference",
"type": "object"
},
"Statistics": {
"description": "All publicly available statistics",
"properties": {
"pre_upload_queue": {
"properties": {
"length": {
"description": "The amount of skins in the pre-upload queue",
"type": "integer"
}
},
"type": "object"
},
"upload_queue": {
"properties": {
"estimated_duration": {
"description": "Estimated duration to upload 'length' amount of skins",
"format": "decimal",
"type": "number"
},
"length": {
"description": "The amount of skins in the upload queue",
"type": "integer"
}
},
"type": "object"
}
},
"title": "Statistics",
"type": "object"
},
"UsernameProfile": {
"description": "Username to Floodgate UUID in Mojang Minecraft profile format",
"properties": {
"id": {
"description": "The Floodgate UUID of the Bedrock player",
"example": "0000000000000000000901f64f65c7c3",
"format": "uuid",
"type": "string"
},
"name": {
"description": "The Floodgate username",
"example": ".Tim203",
"type": "string"
}
},
"required": [
"id",
"name"
],
"title": "UsernameProfile",
"type": "object"
},
"XboxGamertagResult": {
"description": "Get gamertag from xuid result",
"required": [
"gamertag"
],
"properties": {
"gamertag": {
"description": "The gamertag",
"example": "Tim203",
"type": "string"
}
},
"title": "XboxGamertagResult",
"type": "object"
},
"XboxXuidResult": {
"description": "Get xuid from gamertag result",
"required": [
"xuid"
],
"properties": {
"xuid": {
"description": "The xuid",
"example": 2535432196048835,
"format": "int64",
"type": "integer"
}
},
"title": "XboxXuidResult",
"type": "object"
}
}
},
"info": {
"title": "Global Api",
"version": "1.0.2"
},
"openapi": "3.0.0",
"paths": {
"/health": {
"get": {
"callbacks": {},
"operationId": "GlobalApiWeb.Api.HealthController.health",
"parameters": [],
"responses": {
"204": {
"description": "The server is online"
}
},
"summary": "Simple server online check",
"tags": [
"health"
]
}
},
"/render/front/{texture_id}": {
"get": {
"operationId": "GlobalApiWeb.Api.RenderController.get_front_texture",
"parameters": [
{
"description": "Java texture id",
"example": "a90790c57e181ed13aded14c47ee2f7c8de3533e017ba957af7bdf9df1bde94f",
"in": "path",
"name": "texture_id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "ok"
}
}
}
},
"/render/raw/{texture_id}": {
"get": {
"operationId": "GlobalApiWeb.Api.RenderController.get_raw_texture",
"parameters": [
{
"description": "Java texture id",
"example": "a90790c57e181ed13aded14c47ee2f7c8de3533e017ba957af7bdf9df1bde94f",
"in": "path",
"name": "texture_id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "ok"
}
}
}
},
"/v1/link/bedrock/{xuid}": {
"get": {
"callbacks": {},
"deprecated": true,
"operationId": "GlobalApiWeb.Api.LinkController.get_bedrock_link_v1",
"parameters": [
{
"description": "Bedrock xuid",
"example": "2535432196048835",
"in": "path",
"name": "xuid",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"400": {
"description": "Deprecated"
}
},
"tags": [
"link"
]
}
},
"/v1/link/java/{uuid}": {
"get": {
"callbacks": {},
"deprecated": true,
"operationId": "GlobalApiWeb.Api.LinkController.get_java_link_v1",
"parameters": [
{
"description": "Java UUID",
"example": "d34eb447-6e90-4c78-9281-600df88aef1d",
"in": "path",
"name": "uuid",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"400": {
"description": "Deprecated"
}
},
"tags": [
"link"
]
}
},
"/v1/stats": {
"get": {
"callbacks": {},
"operationId": "GlobalApiWeb.Api.StatsController.get_all_stats",
"parameters": [],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Statistics"
}
}
},
"description": "Statistics"
}
},
"summary": "Get all publicly available Global Api statistics",
"tags": [
"stats"
]
}
},
"/v1/xbox/gamertag/{xuid}": {
"get": {
"callbacks": {},
"deprecated": true,
"operationId": "GlobalApiWeb.Api.XboxController.get_gamertag_v1",
"parameters": [
{
"description": "Bedrock xuid",
"example": "2535432196048835",
"in": "path",
"name": "xuid",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"400": {
"description": "Deprecated"
}
},
"tags": [
"xbox"
]
}
},
"/v1/xbox/xuid/{gamertag}": {
"get": {
"callbacks": {},
"deprecated": true,
"operationId": "GlobalApiWeb.Api.XboxController.get_xuid_v1",
"parameters": [
{
"description": "The gamertag of the Bedrock player",
"in": "path",
"name": "gamertag",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"400": {
"description": "Deprecated"
}
},
"tags": [
"xbox"
]
}
},
"/v2/admin/xbox/token": {},
"/v2/link/bedrock/{xuid}": {
"get": {
"callbacks": {},
"operationId": "GlobalApiWeb.Api.LinkController.get_bedrock_link_v2",
"parameters": [
{
"description": "Bedrock xuid",
"example": "2535432196048835",
"in": "path",
"name": "xuid",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Link"
}
}
},
"description": "Linked accounts or an empty object if there is no account linked"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "No xuid provided or invalid"
}
},
"summary": "Get linked Java account from Bedrock xuid",
"tags": [
"link"
]
}
},
"/v2/link/java/{uuid}": {
"get": {
"callbacks": {},
"operationId": "GlobalApiWeb.Api.LinkController.get_java_link_v2",
"parameters": [
{
"description": "Java UUID",
"example": "d34eb447-6e90-4c78-9281-600df88aef1d",
"in": "path",
"name": "uuid",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LinkList"
}
}
},
"description": "Linked account or an empty object if there is no account linked"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "No UUID provided or invalid"
}
},
"summary": "Get linked Bedrock account from Java UUID",
"tags": [
"link"
]
}
},
"/v2/link/online": {},
"/v2/skin/bedrock/recent/{page}": {
"get": {
"callbacks": {},
"operationId": "GlobalApiWeb.Api.SkinController.get_recent_uploads.page",
"parameters": [
{
"description": "Number between 1 - page limit. Defaults to 1",
"example": 1,
"in": "path",
"name": "page",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RecentConvertedSkinList"
}
}
},
"description": "The most recently uploaded skins. First element has been uploaded most recently etc."
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Invalid page number (e.g. negative, decimal, too large)"
}
},
"summary": "Get a list of the most recently uploaded skins",
"tags": [
"skin"
]
}
},
"/v2/skin/bedrock/recent": {
"get": {
"callbacks": {},
"operationId": "GlobalApiWeb.Api.SkinController.get_recent_uploads",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RecentConvertedSkinList"
}
}
},
"description": "The most recently uploaded skins. First element has been uploaded most recently etc."
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Invalid page number (e.g. negative, decimal, too large)"
}
},
"summary": "Get a list of the most recently uploaded skins",
"tags": [
"skin"
]
}
},
"/v2/skin/{xuid}": {
"get": {
"callbacks": {},
"operationId": "GlobalApiWeb.Api.SkinController.get_skin",
"parameters": [
{
"description": "Bedrock xuid",
"example": "2535432196048835",
"in": "path",
"name": "xuid",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConvertedSkin"
}
}
},
"description": "Converted skin or an empty object if there is no skin stored for that player"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Invalid xuid (not an int)"
}
},
"summary": "Get the most recently converted skin of a Bedrock player",
"tags": [
"skin"
]
}
},
"/v2/stats": {
"get": {
"callbacks": {},
"operationId": "GlobalApiWeb.Api.StatsController.get_all_stats (2)",
"parameters": [],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Statistics"
}
}
},
"description": "Statistics"
}
},
"summary": "Get all publicly available Global Api statistics",
"tags": [
"stats"
]
}
},
"/v2/utils/uuid/bedrock_or_java/{username}": {
"get": {
"callbacks": {},
"operationId": "GlobalApiWeb.Api.UtilsController.get_bedrock_or_java_uuid",
"parameters": [
{
"description": "The username of the Minecraft player",
"examples": {
"bedrock": {
"value": ".Tim203"
},
"java": {
"value": "Tim203"
}
},
"in": "path",
"name": "username",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The prefix used in your Floodgate config",
"example": ".",
"in": "query",
"name": "prefix",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UsernameProfile"
}
}
},
"description": "The Bedrock xuid in Floodgate UUID format and username. Response made to be identical to the Mojang endpoint"
},
"204": {
"description": "Either the gamertag is too long or too short once the prefix was removed or there is no Xbox account registered to the gamertag"
},
"302": {
"description": "The player is a Java player and we'll redirect you to the Mojang endpoint for that username"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Invalid prefix (no prefix, empty or too long)"
},
"503": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "The requested account was not cached and we were not able to call the Xbox Live API (rate limited / not setup)"
}
},
"summary": "Utility endpoint to get either a Java UUID or a Bedrock xuid",
"tags": [
"utils"
]
}
},
"/v2/xbox/batch/gamertag": {},
"/v2/xbox/gamertag/{xuid}": {
"get": {
"callbacks": {},
"operationId": "GlobalApiWeb.Api.XboxController.get_gamertag_v2",
"parameters": [
{
"description": "The xuid of the Bedrock player",
"in": "path",
"name": "xuid",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/XboxGamertagResult"
}
}
},
"description": "The gamertag associated with the xuid or an empty object if there is account with the given xuid"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "The xuid is invalid (not an int)"
},
"503": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "The requested account was not cached and we were not able to call the Xbox Live API (rate limited / not setup)"
}
},
"summary": "Get the gamertag from a xuid",
"tags": [
"xbox"
]
}
},
"/v2/xbox/xuid/{gamertag}": {
"get": {
"callbacks": {},
"operationId": "GlobalApiWeb.Api.XboxController.get_xuid_v2",
"parameters": [
{
"description": "The gamertag of the Bedrock player",
"in": "path",
"name": "gamertag",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/XboxXuidResult"
}
}
},
"description": "The xuid associated with the gamertag or an empty object if there is account with the given gamertag"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "The gamertag is invalid (empty or longer than 16 chars)"
},
"503": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "The requested account was not cached and we were not able to call the Xbox Live API (rate limited / not setup)"
}
},
"summary": "Get the xuid from a gamertag",
"tags": [
"xbox"
]
}
}
},
"security": [],
"servers": [
{
"url": "https://api.geysermc.org",
"variables": {}
}
],
"tags": []
}