Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
372 changes: 372 additions & 0 deletions openapi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,372 @@
openapi: 3.1.0
info:
title: LuckPerms metadata-api
description: |-
A HTTP API which collects and serves various information about the LuckPerms project.
version: 1.0.0
externalDocs:
description: LuckPerms metadata-api on GitHub
url: https://github.com/LuckPerms/metadata-api/
servers:
- url: https://metadata.luckperms.net/
tags:
- name: data
description: Everything related to data
- name: translation
description: Everything related to translations
paths:
/data/all:
get:
tags:
- data
operationId: getAll
responses:
'200':
$ref: '#/components/responses/All'
'500':
description: Unexpected error
content:
text/plain:
schema:
type: string
description: Error message
/data/version:
get:
tags:
- data
operationId: getVersion
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Version'
'500':
$ref: '#/components/responses/ServerError'
/data/changelog:
get:
tags:
- data
operationId: getChangelog
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Changelog'
'500':
$ref: '#/components/responses/ServerError'
/data/downloads:
get:
tags:
- data
operationId: getDownloads
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Downloads'
'500':
$ref: '#/components/responses/ServerError'
/data/extensions:
get:
tags:
- data
operationId: getExtensions
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Extensions'
'500':
$ref: '#/components/responses/ServerError'
/data/additional-plugins:
get:
tags:
- data
operationId: getAdditionalPlugins
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AdditionalPlugins'
'500':
$ref: '#/components/responses/ServerError'
/data/placeholder-expansions:
get:
tags:
- data
operationId: getPlaceholderExpansions
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/PlaceholderExpansions'
'500':
$ref: '#/components/responses/ServerError'
/data/discord-count:
get:
tags:
- data
operationId: getDiscordCount
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DiscordCount'
'500':
$ref: '#/components/responses/ServerError'
/data/patreon-count:
get:
tags:
- data
operationId: getPatreonCount
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/PatreonCount'
'500':
$ref: '#/components/responses/ServerError'
/data/donors:
get:
tags:
- data
operationId: getDonors
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Donors'
'500':
$ref: '#/components/responses/ServerError'
components:
schemas:
Version:
type: object
properties:
version:
type: string
description: Version string of the latest LuckPerms release.
example: 5.5.17
versionTimestamp:
type: integer
description: Unix timestamp in milliseconds of when the latest LuckPerms release was published.
example: 1760177931107
Changelog:
type: object
properties:
changeLog:
$ref: "#/components/schemas/ChangelogArray"
ChangelogArray:
type: array
items:
$ref: "#/components/schemas/ChangelogEntry"
ChangelogEntry:
type: object
properties:
version:
type: string
description: Version string of the release.
example: 5.5.17
timestamp:
type: integer
description: Unix timestamp in milliseconds of when the release was published.
example: 1760177931107
title:
type: string
description: Title of the release.
example: Update to Minecraft 1.21.10
commit:
type: string
description: Git commit hash of the release.
example: 40a39c9381c5c2a4675d533223c987c0f70ccdb4
Downloads:
type: object
properties:
downloads:
$ref: "#/components/schemas/DownloadsList"
DownloadsList:
type: object
properties:
bukkit:
type: string
format: uri
description: Download URL for the latest version of LuckPerms for Bukkit.
example: https://download.luckperms.net/1606/bukkit/loader/LuckPerms-Bukkit-5.5.17.jar
bukkit-legacy:
type: string
format: uri
description: Download URL for the latest version of LuckPerms for Legacy Bukkit.
example: https://download.luckperms.net/1606/bukkit-legacy/loader/LuckPerms-Bukkit-Legacy-5.5.17.jar
bungee:
type: string
format: uri
description: Download URL for the latest version of LuckPerms for BungeeCord.
example: https://download.luckperms.net/1606/bungee/loader/LuckPerms-Bungee-5.5.17.jar
fabric:
type: string
format: uri
description: Download URL for the latest version of LuckPerms for Fabric.
example: https://download.luckperms.net/1606/fabric/LuckPerms-Fabric-5.5.17.jar
forge:
type: string
format: uri
description: Download URL for the latest version of LuckPerms for Forge.
example: https://download.luckperms.net/1606/forge/loader/LuckPerms-Forge-5.5.17.jar
neoforge:
type: string
format: uri
description: Download URL for the latest version of LuckPerms for NeoForge.
example: https://download.luckperms.net/1606/neoforge/loader/LuckPerms-NeoForge-5.5.17.jar
nukkit:
type: string
format: uri
description: Download URL for the latest version of LuckPerms for Nukkit.
example: https://download.luckperms.net/1606/nukkit/loader/LuckPerms-Nukkit-5.5.17.jar
sponge:
type: string
format: uri
description: Download URL for the latest version of LuckPerms for Sponge.
example: https://download.luckperms.net/1606/sponge/loader/LuckPerms-Sponge-5.5.17.jar
velocity:
type: string
format: uri
description: Download URL for the latest version of LuckPerms for Velocity.
example: https://download.luckperms.net/1606/velocity/LuckPerms-Velocity-5.5.17.jar
Extensions:
type: object
properties:
extensions:
$ref: "#/components/schemas/ExtensionsList"
ExtensionsList:
type: object
properties:
extensions-legacy-api:
type: string
format: uri
description: Download URL for the latest version of the extension for the lagacy API.
example: https://ci.lucko.me/job/extension-legacy-api/10/artifact/build/libs/extension-legacy-api-1.0.0.jar
extension-default-assignments:
type: string
format: uri
description: Download URL for the latest version of the extension for default assignments.
example: https://ci.lucko.me/job/extension-default-assignments/5/artifact/build/libs/extension-default-assignments-1.1.0.jar
AdditionalPlugins:
type: object
properties:
additionalPlugins:
$ref: "#/components/schemas/AdditionalPluginsList"
AdditionalPluginsList:
type: object
properties:
extracontexts:
type: string
format: uri
description: Download URL for the latest version of ExtraContexts plugin.
example: https://ci.lucko.me/job/extracontexts/21/artifact/target/ExtraContexts.jar
PlaceholderExpansions:
type: object
properties:
placeholderExpansions:
$ref: "#/components/schemas/PlaceholderExpansionsList"
PlaceholderExpansionsList:
type: object
properties:
bukkit-mvdw:
type: string
format: uri
description: Download URL for the latest version of the MVdW PlaceholderAPI expansion.
example: https://ci.lucko.me/job/LuckPermsPlaceholders/12/artifact/bukkit-mvdw/build/libs/LuckPerms-MVdWPlaceholderAPI-Hook.jar
bukkit-placeholderapi:
type: string
format: uri
description: Download URL for the latest version of the PlaceholderAPI expansion for Bukkit.
example: https://ci.lucko.me/job/LuckPermsPlaceholders/12/artifact/bukkit-placeholderapi/build/libs/Expansion-LuckPerms.jar
fabric-placeholderapi:
type: string
format: uri
description: Download URL for the latest version of the PlaceholderAPI expansion for Fabric.
example: https://ci.lucko.me/job/LuckPermsPlaceholders/12/artifact/fabric-placeholderapi/build/libs/LuckPerms-Fabric-PlaceholderAPI-Hook.jar
DiscordCount:
type: object
properties:
discordUserCount:
type: integer
description: How many users are in the official LuckPerms Discord server.
example: 20735
PatreonCount:
type: object
properties:
patreonCount:
type: integer
description: How many patrons are supporting LuckPerms on Patreon.
example: 83
Donors:
type: array
items:
$ref: "#/components/schemas/Donor"
Donor:
type: object
properties:
name:
type: string
description: Name of the donor
discord:
type: string
default: null
description: Discord ID of the donor, if provided
tiers:
type: array
items:
type: string
default: [ ]
example: [ "Supporter" ]
Error:
type: object
properties:
code:
type: string
message:
type: string
required:
- code
- message
responses:
ServerError:
description: Unexpected error
content:
text/plain:
schema:
type: string
description: Error message
All:
description: Returns all available data in a single response
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/DiscordCount"
- $ref: "#/components/schemas/Version"
- $ref: "#/components/schemas/Downloads"
- $ref: "#/components/schemas/Changelog"
- $ref: "#/components/schemas/PlaceholderExpansions"
- $ref: "#/components/schemas/Extensions"
- $ref: "#/components/schemas/AdditionalPlugins"
- $ref: "#/components/schemas/PatreonCount"