{
    "openapi": "3.0.3",
    "info": {
        "title": "CrewPlay MC API",
        "version": "2026-06-04.2"
    },
    "servers": [
        {
            "url": "https://mc-api.crewplay.de"
        },
        {
            "url": "https://pack.crewplay.de/api"
        }
    ],
    "components": {
        "securitySchemes": {
            "ApiTokenHeader": {
                "type": "apiKey",
                "in": "header",
                "name": "X-API-Token"
            },
            "BearerAuth": {
                "type": "http",
                "scheme": "bearer"
            }
        }
    },
    "paths": {
        "/v1": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/status": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/dynamic": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/static": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/servers": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/worlds": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/storage": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/leaderboards": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/leaderboards/skyblock/islands": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/leaderboards/survival/balance": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/leaderboards/survival/jobs": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/leaderboards/survival/playtime": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/leaderboards/survival/playerpoints": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/leaderboards/bingo/ratings": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/leaderboards/bingo/score": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/leaderboards/bingo/fastest": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/leaderboards/bingo/recent": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/ops": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/ops/overview": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/ops/performance": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/ops/activity": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/ops/capacity": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        },
        "/v1/ops/health": {
            "get": {
                "security": [
                    {
                        "ApiTokenHeader": []
                    },
                    {
                        "BearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "API token required"
                    },
                    "403": {
                        "description": "Full-read token required for ops endpoints"
                    },
                    "429": {
                        "description": "Rate limit exceeded"
                    }
                }
            }
        }
    }
}