NAV
bash javascript php

Info

Welcome to the generated API reference. Get Postman Collection

Authentication

All calls to the API must use the API Token, which can be generated in your user profile. If the API Token is incorrect then the server will respond with an HTTP status code of 401 Unauthorized.

Maps

List Maps

Get a paginated list of all maps


Requires authentication

Example request:

curl -X GET \
    -G "https://haloraceleaderboard.effakt.info/api/maps" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://haloraceleaderboard.effakt.info/api/maps"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://haloraceleaderboard.effakt.info/api/maps',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": [
        {
            "id": 1,
            "name": "bloodgulch",
            "label": "Bloodgulch"
        },
        {
            "id": 2,
            "name": "dangercanyon",
            "label": "Danger Canyon"
        },
        {
            "id": 3,
            "name": "timberland",
            "label": "Timberland"
        },
        {
            "id": 4,
            "name": "deathisland",
            "label": "Death Island"
        },
        {
            "id": 5,
            "name": "gephyrophobia",
            "label": "Gephyrophobia"
        },
        {
            "id": 6,
            "name": "icefields",
            "label": "Ice Fields"
        },
        {
            "id": 7,
            "name": "infinity",
            "label": "Infinity"
        },
        {
            "id": 8,
            "name": "sidewinder",
            "label": "Sidewinder"
        },
        {
            "id": 9,
            "name": "chillout",
            "label": "Chillout"
        },
        {
            "id": 10,
            "name": "bloodgulch",
            "label": "Bloodgulch - Any Order"
        }
    ],
    "links": {
        "first": "https:\/\/haloraceleaderboard.effakt.info\/api\/maps?page=1",
        "last": "https:\/\/haloraceleaderboard.effakt.info\/api\/maps?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "https:\/\/haloraceleaderboard.effakt.info\/api\/maps",
        "per_page": "10",
        "to": 10,
        "total": 10
    }
}

HTTP Request

GET api/maps

Get Map

Get a map and a list of its lap times


Requires authentication

Example request:

curl -X GET \
    -G "https://haloraceleaderboard.effakt.info/api/maps/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://haloraceleaderboard.effakt.info/api/maps/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://haloraceleaderboard.effakt.info/api/maps/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": {
        "id": 1,
        "name": "bloodgulch",
        "label": "Bloodgulch"
    },
    "laps": [
        {
            "id": 886,
            "time": "62.10",
            "date": "2018-07-05T00:00:00.000000Z",
            "player": {
                "id": 6,
                "name ": "HLN«ßÕX3R»"
            },
            "server": {
                "id": 4,
                "ip": "163.47.230.216",
                "port": "2302",
                "name": "Halo Race Leaderboard - Demo Server 04.04.20"
            }
        },
        {
            "id": 876,
            "time": "65.37",
            "date": "2018-03-01T00:00:00.000000Z",
            "player": {
                "id": 5,
                "name ": "©opyrite"
            },
            "server": {
                "id": 4,
                "ip": "163.47.230.216",
                "port": "2302",
                "name": "Halo Race Leaderboard - Demo Server 04.04.20"
            }
        }
    ]
}

HTTP Request

GET api/maps/{map}

Players

List Players

Get a paginated list of all players


Requires authentication

Example request:

curl -X GET \
    -G "https://haloraceleaderboard.effakt.info/api/players" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://haloraceleaderboard.effakt.info/api/players"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://haloraceleaderboard.effakt.info/api/players',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": [
        {
            "id": 5,
            "name ": "©opyrite"
        },
        {
            "id": 6,
            "name ": "HLN«ßÕX3R»"
        },
        {
            "id": 7,
            "name ": "WarNeverDie"
        },
        {
            "id": 8,
            "name ": "CryForce"
        },
        {
            "id": 9,
            "name ": "destroyer"
        },
        {
            "id": 10,
            "name ": "GåþøFêîk¬£Q"
        },
        {
            "id": 11,
            "name ": "Pretty Girl"
        },
        {
            "id": 12,
            "name ": "Fooch"
        },
        {
            "id": 13,
            "name ": "Mr Hankey"
        },
        {
            "id": 14,
            "name ": "Malleus"
        }
    ],
    "links": {
        "first": "https:\/\/haloraceleaderboard.effakt.info\/api\/players?page=1",
        "last": "https:\/\/haloraceleaderboard.effakt.info\/api\/players?page=14",
        "prev": null,
        "next": "https:\/\/haloraceleaderboard.effakt.info\/api\/players?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 14,
        "path": "https:\/\/haloraceleaderboard.effakt.info\/api\/players",
        "per_page": "10",
        "to": 10,
        "total": 140
    }
}

HTTP Request

GET api/players

Get Player

Get a specific player and a list of their lap times


Requires authentication

Example request:

curl -X GET \
    -G "https://haloraceleaderboard.effakt.info/api/players/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://haloraceleaderboard.effakt.info/api/players/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://haloraceleaderboard.effakt.info/api/players/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": {
        "id": 5,
        "name ": "©opyrite"
    },
    "laps": [
        {
            "id": 912,
            "time": "42.90",
            "date": "2018-04-21T00:00:00.000000Z",
            "map": {
                "id": 9,
                "name": "chillout",
                "label": "Chillout"
            },
            "server": {
                "id": 4,
                "ip": "163.47.230.216",
                "port": "2302",
                "name": "Halo Race Leaderboard - Demo Server 04.04.20"
            }
        },
        {
            "id": 875,
            "time": "47.27",
            "date": "2020-04-03T00:00:00.000000Z",
            "map": {
                "id": 3,
                "name": "timberland",
                "label": "Timberland"
            },
            "server": {
                "id": 4,
                "ip": "163.47.230.216",
                "port": "2302",
                "name": "Halo Race Leaderboard - Demo Server 04.04.20"
            }
        }
    ]
}

HTTP Request

GET api/players/{player}

Servers

List Servers

Get a paginated list of all servers


Requires authentication

Example request:

curl -X GET \
    -G "https://haloraceleaderboard.effakt.info/api/servers" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://haloraceleaderboard.effakt.info/api/servers"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://haloraceleaderboard.effakt.info/api/servers',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": [
        {
            "id": 4,
            "ip": "163.47.230.216",
            "port": "2302",
            "name": "Halo Race Leaderboard - Demo Server 04.04.20",
            "created_at": "2020-04-02T23:14:44.000000Z",
            "latest_lap": {
                "id": 1096,
                "time": "100.00",
                "date": "2020-04-11T00:00:00.000000Z",
                "map": {
                    "id": 1,
                    "name": "bloodgulch",
                    "label": "Bloodgulch"
                },
                "player": {
                    "id": 143,
                    "name ": "EffakT"
                }
            }
        }
    ],
    "links": {
        "first": "https:\/\/haloraceleaderboard.effakt.info\/api\/servers?page=1",
        "last": "https:\/\/haloraceleaderboard.effakt.info\/api\/servers?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "https:\/\/haloraceleaderboard.effakt.info\/api\/servers",
        "per_page": "10",
        "to": 1,
        "total": 1
    }
}

HTTP Request

GET api/servers

Get Server

Get a specific server and a list of its lap times


Requires authentication

Example request:

curl -X GET \
    -G "https://haloraceleaderboard.effakt.info/api/servers/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://haloraceleaderboard.effakt.info/api/servers/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://haloraceleaderboard.effakt.info/api/servers/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "data": {
        "id": 4,
        "ip": "163.47.230.216",
        "port": "2302",
        "name": "Halo Race Leaderboard - Demo Server 04.04.20",
        "created_at": "2020-04-02T23:14:44.000000Z",
        "latest_lap": {
            "id": 1096,
            "time": "100.00",
            "date": "2020-04-11T00:00:00.000000Z",
            "map": {
                "id": 1,
                "name": "bloodgulch",
                "label": "Bloodgulch"
            },
            "player": {
                "id": 143,
                "name ": "EffakT"
            }
        }
    },
    "laps": [
        {
            "id": 9,
            "time": "38.87",
            "date": "2018-07-05T00:00:00.000000Z",
            "map": {
                "id": 9,
                "name": "chillout",
                "label": "Chillout"
            },
            "player": {
                "id": 6,
                "name ": "HLN«ßÕX3R»"
            }
        },
        {
            "id": 9,
            "time": "42.90",
            "date": "2018-04-21T00:00:00.000000Z",
            "map": {
                "id": 9,
                "name": "chillout",
                "label": "Chillout"
            },
            "player": {
                "id": 5,
                "name ": "©opyrite"
            }
        }
    ]
}

HTTP Request

GET api/servers/{server}