Gen rest docs from JSON

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
This commit is contained in:
Joshua Castle committed 2024-03-12 00:39:54 -07:00
1 parent ef727cf6db
commit 66d6ba1d41
5 files changed
+1447 -4

No files matched your search

+1 -1
View File
@@ -347,7 +347,7 @@ Gets information related to a specific build.
value={"Example (from schema)"}
>
<ResponseSamples
responseExample={"{\n \"project_id\": \"geyser\",\n \"project_name\": \"Geyser\",\n \"version\": \"2.1.0\",\n \"build\": 30,\n \"time\": \"2024-03-12T07:16:17.367Z\",\n \"channel\": \"default\",\n \"promoted\": true,\n \"changes\": [\n {\n \"commit\": \"string\",\n \"summary\": \"string\",\n \"message\": \"string\"\n }\n ],\n \"downloads\": {}\n}"}
responseExample={"{\n \"project_id\": \"geyser\",\n \"project_name\": \"Geyser\",\n \"version\": \"2.1.0\",\n \"build\": 30,\n \"time\": \"2024-03-12T07:39:10.078Z\",\n \"channel\": \"default\",\n \"promoted\": true,\n \"changes\": [\n {\n \"commit\": \"string\",\n \"summary\": \"string\",\n \"message\": \"string\"\n }\n ],\n \"downloads\": {}\n}"}
language={"json"}
>
+1 -1
View File
@@ -384,7 +384,7 @@ Gets all available builds for a project's version.
value={"Example (from schema)"}
>
<ResponseSamples
responseExample={"{\n \"project_id\": \"geyser\",\n \"project_name\": \"Geyser\",\n \"version\": \"2.1.0\",\n \"builds\": [\n {\n \"build\": 30,\n \"time\": \"2024-03-12T07:16:17.366Z\",\n \"channel\": \"default\",\n \"promoted\": true,\n \"changes\": [\n {\n \"commit\": \"string\",\n \"summary\": \"string\",\n \"message\": \"string\"\n }\n ],\n \"downloads\": {}\n }\n ]\n}"}
responseExample={"{\n \"project_id\": \"geyser\",\n \"project_name\": \"Geyser\",\n \"version\": \"2.1.0\",\n \"builds\": [\n {\n \"build\": 30,\n \"time\": \"2024-03-12T07:39:10.075Z\",\n \"channel\": \"default\",\n \"promoted\": true,\n \"changes\": [\n {\n \"commit\": \"string\",\n \"summary\": \"string\",\n \"message\": \"string\"\n }\n ],\n \"downloads\": {}\n }\n ]\n}"}
language={"json"}
>
+2 -2
View File
@@ -57,11 +57,11 @@ const config: Config = {
docsPluginId: "classic",
config: {
downloads: {
specPath: "openapi/downloads.yaml",
specPath: "openapi/downloads.json",
outputDir: "docs/api/downloads",
},
global: {
specPath: "openapi/global.yaml",
specPath: "openapi/global.json",
outputDir: "docs/api/global",
}
}
+604
View File
@@ -0,0 +1,604 @@
{
"openapi": "3.0.1",
"info": {
"title": "Downloads API",
"version": "1.0.0"
},
"servers": [
{
"url": "https://download.geysermc.org"
}
],
"paths": {
"/v2/projects": {
"get": {
"tags": [
"projects-controller"
],
"summary": "Gets a list of all available projects.",
"operationId": "projects",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProjectsResponse"
}
}
}
}
}
}
},
"/v2/projects/{project}": {
"get": {
"tags": [
"project-controller"
],
"summary": "Gets information about a project.",
"operationId": "project",
"parameters": [
{
"name": "project",
"in": "path",
"description": "The project identifier.",
"required": true,
"schema": {
"pattern": "[a-z]+",
"type": "string"
},
"example": "geyser"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProjectResponse"
}
}
}
}
}
}
},
"/v2/projects/{project}/versions/{version}": {
"get": {
"tags": [
"version-controller"
],
"summary": "Gets information about a version.",
"operationId": "version",
"parameters": [
{
"name": "project",
"in": "path",
"description": "The project identifier.",
"required": true,
"schema": {
"pattern": "[a-z]+",
"type": "string"
},
"example": "geyser"
},
{
"name": "version",
"in": "path",
"description": "A version of the project.",
"required": true,
"schema": {
"pattern": "(?:latest|[0-9.]+-?(?:pre|SNAPSHOT)?(?:[0-9.]+)?)?",
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VersionResponse"
}
}
}
}
}
}
},
"/v2/projects/{project}/versions/{version}/builds": {
"get": {
"tags": [
"version-builds-controller"
],
"summary": "Gets all available builds for a project's version.",
"operationId": "builds",
"parameters": [
{
"name": "project",
"in": "path",
"description": "The project identifier.",
"required": true,
"schema": {
"pattern": "[a-z]+",
"type": "string"
},
"example": "geyser"
},
{
"name": "version",
"in": "path",
"description": "A version of the project.",
"required": true,
"schema": {
"pattern": "(?:latest|[0-9.]+-?(?:pre|SNAPSHOT)?(?:[0-9.]+)?)?",
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BuildsResponse"
}
}
}
}
}
}
},
"/v2/projects/{project}/versions/{version}/builds/{build}": {
"get": {
"tags": [
"version-build-controller"
],
"summary": "Gets information related to a specific build.",
"operationId": "buildSpecific",
"parameters": [
{
"name": "project",
"in": "path",
"description": "The project identifier.",
"required": true,
"schema": {
"pattern": "[a-z]+",
"type": "string"
},
"example": "geyser"
},
{
"name": "version",
"in": "path",
"description": "A version of the project.",
"required": true,
"schema": {
"pattern": "(?:latest|[0-9.]+-?(?:pre|SNAPSHOT)?(?:[0-9.]+)?)?",
"type": "string"
}
},
{
"name": "build",
"in": "path",
"description": "A build of the version.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BuildResponse"
}
}
}
}
}
}
},
"/v2/projects/{project}/versions/{version}/builds/{build}/downloads/{download}": {
"get": {
"tags": [
"download-controller"
],
"summary": "Downloads the given file from a build's data.",
"operationId": "downloadSpecific",
"parameters": [
{
"name": "project",
"in": "path",
"description": "The project identifier.",
"required": true,
"schema": {
"pattern": "[a-z]+",
"type": "string"
},
"example": "geyser"
},
{
"name": "version",
"in": "path",
"description": "A version of the project.",
"required": true,
"schema": {
"pattern": "(?:latest|[0-9.]+-?(?:pre|SNAPSHOT)?(?:[0-9.]+)?)?",
"type": "string"
}
},
{
"name": "build",
"in": "path",
"description": "A build of the version.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "download",
"in": "path",
"description": "A download of the build.",
"required": true,
"schema": {
"pattern": "[a-zA-Z0-9._-]+",
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"headers": {
"ETag": {
"description": "An identifier for a specific version of a resource. It lets caches be more efficient and save bandwidth, as a web server does not need to resend a full response if the content has not changed.",
"style": "simple",
"schema": {
"type": "string"
}
},
"Content-Disposition": {
"description": "A header indicating that the content is expected to be displayed as an attachment, that is downloaded and saved locally.",
"style": "simple",
"schema": {
"type": "string"
}
},
"Last-Modified": {
"description": "The date and time at which the origin server believes the resource was last modified.",
"style": "simple",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object"
}
},
"*/*": {
"schema": {
"type": "object"
}
}
}
}
}
}
},
"/v2/projects/{project}/versions/{version}/builds/latest": {
"get": {
"tags": [
"version-build-controller"
],
"summary": "Gets information related to a specific build.",
"operationId": "buildLatest",
"parameters": [
{
"name": "project",
"in": "path",
"description": "The project identifier.",
"required": true,
"schema": {
"pattern": "[a-z]+",
"type": "string"
},
"example": "geyser"
},
{
"name": "version",
"in": "path",
"description": "A version of the project.",
"required": true,
"schema": {
"pattern": "(?:latest|[0-9.]+-?(?:pre|SNAPSHOT)?(?:[0-9.]+)?)?",
"type": "string"
}
}
],
"responses": {
"302": {
"description": "Found",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
}
}
},
"/v2/projects/{project}/versions/{version}/builds/latest/downloads/{download}": {
"get": {
"tags": [
"download-controller"
],
"summary": "Downloads the given file from a build's data.",
"operationId": "downloadLatest",
"parameters": [
{
"name": "project",
"in": "path",
"description": "The project identifier.",
"required": true,
"schema": {
"pattern": "[a-z]+",
"type": "string"
},
"example": "geyser"
},
{
"name": "version",
"in": "path",
"description": "A version of the project.",
"required": true,
"schema": {
"pattern": "(?:latest|[0-9.]+-?(?:pre|SNAPSHOT)?(?:[0-9.]+)?)?",
"type": "string"
}
},
{
"name": "download",
"in": "path",
"description": "A download of the build.",
"required": true,
"schema": {
"pattern": "[a-zA-Z0-9._-]+",
"type": "string"
}
}
],
"responses": {
"302": {
"description": "Found",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"BuildResponse": {
"type": "object",
"properties": {
"project_id": {
"pattern": "[a-z]+",
"type": "string",
"example": "geyser"
},
"project_name": {
"type": "string",
"example": "Geyser"
},
"version": {
"pattern": "(?:latest|[0-9.]+-?(?:pre|SNAPSHOT)?(?:[0-9.]+)?)?",
"type": "string",
"example": "2.1.0"
},
"build": {
"pattern": "\\d+",
"type": "integer",
"format": "int32",
"example": 30
},
"time": {
"type": "string",
"format": "date-time"
},
"channel": {
"type": "string",
"enum": [
"default",
"experimental"
]
},
"promoted": {
"type": "boolean"
},
"changes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Change"
}
},
"downloads": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Download"
}
}
}
},
"BuildsResponse": {
"type": "object",
"properties": {
"project_id": {
"pattern": "[a-z]+",
"type": "string",
"example": "geyser"
},
"project_name": {
"type": "string",
"example": "Geyser"
},
"version": {
"pattern": "(?:latest|[0-9.]+-?(?:pre|SNAPSHOT)?(?:[0-9.]+)?)?",
"type": "string",
"example": "2.1.0"
},
"builds": {
"type": "array",
"items": {
"$ref": "#/components/schemas/VersionBuild"
}
}
}
},
"Change": {
"type": "object",
"properties": {
"commit": {
"type": "string"
},
"summary": {
"type": "string"
},
"message": {
"type": "string"
}
}
},
"Download": {
"type": "object",
"properties": {
"name": {
"pattern": "[a-z0-9._-]+",
"type": "string",
"example": "Geyser-Spigot.jar"
},
"sha256": {
"pattern": "[a-f0-9]{64}",
"type": "string",
"example": "9ecc7374c2110a077f6c288fa4ad53a6812c09d5690dae0bc96508f939d4cb8a"
}
}
},
"ProjectResponse": {
"type": "object",
"properties": {
"project_id": {
"pattern": "[a-z]+",
"type": "string",
"example": "geyser"
},
"project_name": {
"type": "string",
"example": "Geyser"
},
"versions": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"ProjectsResponse": {
"type": "object",
"properties": {
"projects": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"VersionBuild": {
"type": "object",
"properties": {
"build": {
"pattern": "\\d+",
"type": "integer",
"format": "int32",
"example": 30
},
"time": {
"type": "string",
"format": "date-time"
},
"channel": {
"type": "string",
"enum": [
"default",
"experimental"
]
},
"promoted": {
"type": "boolean"
},
"changes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Change"
}
},
"downloads": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Download"
}
}
}
},
"VersionResponse": {
"type": "object",
"properties": {
"project_id": {
"pattern": "[a-z]+",
"type": "string",
"example": "geyser"
},
"project_name": {
"type": "string",
"example": "Geyser"
},
"version": {
"pattern": "(?:latest|[0-9.]+-?(?:pre|SNAPSHOT)?(?:[0-9.]+)?)?",
"type": "string",
"example": "2.1.0"
},
"builds": {
"type": "array",
"items": {
"type": "integer",
"format": "int32"
}
}
}
}
}
}
}
+839
View File
@@ -0,0 +1,839 @@
{
"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": []
}