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}