Endpoints

api_authenticate

Methods
POST, GET
URL
/api/1/authenticate

Check to see if a Minecraft™ player is authorized to join. GET is limited to 1 token requests, POST can do multiple.
The owner of a token will always be authenticated with the name 'APIToken'.

GET Parameters

Example:
/api/1/authenticate?token=p2ShHehvweBFwbDcjwEBG6rM0YqT7rVJ&uuid=c93ca410-8003-40ef-81d7-ac88719e2038&uuid=27c83172-954b-4ccb-b434-c5430be3dce1&Twitch&GameWisp=3

POST Data

An object with a tokens and a uuids key.
The uuids are a list of player uuids.
The tokens key corresponds to an object with (token → services).
The services are (name → list of parameters) pairs.
Remember that this parameters need to be in order. A json null value can be used to fill an unwanted optional argument.
If no parameters are needed, use an empty list.

{
    "tokens": {
        "kJQ7q3Rif3tm7oyhyl4JO9QVZMp0RPz5": {
            "Twitch": []
        },
        "p2ShHehvweBFwbDcjwEBG6rM0YqT7rVJ": {
            "Twitch": [2000]
        }
    },
    "uuids": [
        "c93ca410-8003-40ef-81d7-ac88719e2038",
        "27c83172-954b-4ccb-b434-c5430be3dce1"
    ]
}

Output

An object with (token → list of authenticated services) pairs.
The authenticated services are objects with at least name (name of the service) and token (uuid or the token that allowed entry) key, extra data may be present.
If there are no items in the array, the user should not be considered authenticated.

Example:

{
    "27c83172-954b-4ccb-b434-c5430be3dce1": [
        {
            "name": "APIToken",
            "token": "27c83172-954b-4ccb-b434-c5430be3dce1"
        },
        {
            "name": "Twitch",
            "sub_plan": "3000",
            "token": "27c83172-954b-4ccb-b434-c5430be3dce1"
        }
    ],
    "c93ca410-8003-40ef-81d7-ac88719e2038": [
        {
            "name": "APIToken",
            "token": "c93ca410-8003-40ef-81d7-ac88719e2038"
        }
    ]
}

api_info

Methods
POST, GET
URL
/api/1/info, /api/1/info/<service>

Get information from a service about a uuid

URL Parameters

GET Parameters

Example:
/api/1/info?uuid=c93ca410-8003-40ef-81d7-ac88719e2038&uuid=c93ca410-8003-40ef-81d7-ac88719e2037

POST Data

An array of uuids.

Example:

[ "c93ca410-8003-40ef-81d7-ac88719e2038", "c93ca410-8003-40ef-81d7-ac88719e2037" ]

Output

Object of (uuid -> info) pairs.
The info depends on service. (See the specific service documentation.)
If the info is null, the user does not have their account linked up.

Example:

{
    "c93ca410-8003-40ef-81d7-ac88719e2037": {
        "Twitch": null
    },
    "c93ca410-8003-40ef-81d7-ac88719e2038": {
        "Twitch": {
            "display_name": "Dries007",
            "id": 27645482
        }
    }
}

api_services

Methods
GET
URL
/api/1/services

Get a list of currently available services.

Output

An object with (service namesinfo) pairs.
The info object always includes:

Example:

{
    "Twitch": {
        "info": {
            "display_name": "The display name at the moment of account linking. May be out of date.",
            "id": "The user's ID. Should not changed unless the user links a different account."
        },
        "optional_args": {
            "sub_plan": "...snip..."
        },
        "required_args": {

        },
        "website": "https://twitch.tv"
    }
}

api_status

Methods
GET
URL
/api/1/status

General status API

Output

An object with at least:

Example:

{
    "message": null,
    "api_version": 1
    "server": {
        "address": "mclink.dries007.net:15556",
        "version": "1.10.2 to 1.12.2"
    }
}

api_uuid

Methods
POST, GET
URL
/api/1/uuid

Get the Minecraft UUIDs that belongs to an API tokens

GET Parameters

Example:
/api/1/uuid?token=kJQ7q3Rif3tm7oyhyl4JO9QVZMp0RPz5

POST Data

An array of tokens.

Example:

[ "kJQ7q3Rif3tm7oyhyl4JO9QVZMp0RPz5" ]

Output

An object with (tokenuuid) pairs.
If a uuid is null, the token is invalid.

Example:

{ "kJQ7q3Rif3tm7oyhyl4JO9QVZMp0RPz5": "ca9b7bc4-13e2-3990-b699-f65f559b2477" }