Test new API format

This commit is contained in:
2023-04-04 18:36:45 +02:00
parent 86118d37f2
commit 2401511b46
3 changed files with 17 additions and 784 deletions
+592
View File
@@ -0,0 +1,592 @@
openapi: 3.0.2
info:
title: ToneAPI
version: '1.0'
contact:
name: Legonzaur
url: 'https://github.com/Legonzaur'
license:
name: The Unlicense
url: 'https://unlicense.org/'
description: 'Stats tracking API for Titanfall 2 Northstar '
servers:
- url: 'https://tone.sleepycat.date/v1'
paths:
/client/servers:
get:
summary: List of servers
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
title: Server
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: fvnknoots 7v7
examples:
Example 1:
value:
- id: 1
name: fvnknoots 7v7
operationId: get-server-list
description: An array containing the list of servers as objects
parameters: []
/client/weapons:
get:
summary: Statistics for all weapons
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
hemlock:
title: Weapon
type: object
properties:
max_kill_distance:
type: integer
avg_kill_distance:
type: number
kills:
type: integer
examples:
Example 1:
value:
hemlock:
max_kill_distance: 0
avg_kill_distance: 0
kills: 0
lstar:
max_kill_distance: 0
avg_kill_distance: 0
kills: 0
operationId: get-client-weapons
parameters:
- name: server
in: query
required: false
schema:
type: number
example: 2
description: Fetch data for specific server
- name: player
in: query
required: false
schema:
type: number
example: 1005930844007
description: Fetch data for specific player
requestBody:
content: {}
description: A JSON Object with weapon IDS as keys and weapon data as value
description: A JSON Object with weapon IDs as key and weapon data as value
parameters: []
'/client/weapons/{weaponId}':
parameters:
- schema:
type: string
example: epg
name: weaponId
in: path
required: true
description: ID of a weapon
get:
summary: Statistics for a single weapon
operationId: get-client-weapons-weaponId
requestBody:
content: {}
parameters:
- name: server
in: query
required: false
schema:
type: number
example: 2
description: Fetch data for specific server
- name: player
in: query
required: false
schema:
type: number
example: 1005930844007
description: Fetch data for specific player
description: Data for a specific weapon
responses:
'200':
description: OK
content:
application/json:
schema:
title: Weapon
type: object
properties:
max_kill_distance:
type: integer
x-stoplight:
id: npckmqv4zdoje
avg_kill_distance:
type: number
x-stoplight:
id: 8plgr96gp1ke8
kills:
type: integer
x-stoplight:
id: pha6hu1qjfsgk
/client/players:
get:
summary: Statistics for all players
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
'2250125460':
title: Player
type: object
properties:
name:
type: string
example: Legonzaur
deaths:
type: integer
kills:
type: integer
max_kill_distance:
type: integer
avg_kill_distance:
type: number
examples:
Example 1:
value:
'2250125460':
name: Legonzaur
deaths: 0
kills: 0
max_kill_distance: 0
avg_kill_distance: 0
operationId: get-client-players
parameters:
- name: weapon
in: query
required: false
schema:
type: string
example: epg
description: Fetch data for specific weapon
- name: server
in: query
required: false
schema:
type: number
example: 2
description: Fetch data for specific server
description: A JSON Object with player IDs as key and player data as value
'/client/players/{playerId}':
parameters:
- schema:
type: string
name: playerId
in: path
required: true
description: ID of a player
get:
summary: Statistics for a single player
responses:
'200':
description: OK
content:
application/json:
schema:
title: Player
type: object
properties:
name:
type: string
example: Legonzaur
deaths:
type: integer
x-stoplight:
id: xhi261df7kcqo
kills:
type: integer
x-stoplight:
id: ofjpw5sevnf64
max_kill_distance:
type: integer
x-stoplight:
id: qjqm0t2n6o93p
avg_kill_distance:
type: number
x-stoplight:
id: y0i5i1eja7v84
operationId: get-client-players-playerId
parameters:
- name: server
in: query
required: false
schema:
type: number
example: 2
description: Fetch data for specific server
- name: weapon
in: query
required: false
schema:
type: string
example: epg
description: Fetch data for specific weapon
description: Data for a specific player
'/servers/{serverId}':
parameters:
- schema:
type: string
example: '2'
name: serverId
in: path
required: true
description: ID of the server
post:
summary: ''
operationId: post-servers-serverId
responses:
'200':
description: OK
'403':
description: Forbidden
description: Used to test auth
security:
- Auth_Token: []
'/servers/{serverId}/kills':
post:
summary: Post kills
operationId: post-kills
responses:
'201':
description: Created
'400':
description: Bad Request
'401':
description: Unauthorized
parameters: []
security:
- Auth_Token: []
description: Allows a Northstar server to record kills on the database
requestBody:
content:
application/json:
schema:
title: Kill
type: object
properties:
id:
type: integer
readOnly: true
server:
type: string
readOnly: true
tone_version:
type: string
match_id:
type: string
game_mode:
type: string
map:
type: string
game_time:
type: string
format: time
player_count:
type: integer
attacker_name:
type: string
attacker_id:
type: integer
attacker_current_weapon:
type: string
attacker_current_weapon_mods:
type: integer
attacker_weapon_1:
type: string
attacker_weapon_1_mods:
type: integer
attacker_weapon_2:
type: string
attacker_weapon_2_mods:
type: integer
attacker_weapon_3:
type: string
attacker_weapon_3_mods:
type: integer
attacker_offhand_weapon_1:
type: integer
attacker_offhand_weapon_2:
type: integer
victim_name:
type: string
victim_id:
type: integer
victim_current_weapon:
type: string
victim_current_weapon_mods:
type: integer
victim_weapon_1:
type: string
victim_weapon_1_mods:
type: integer
victim_weapon_2:
type: string
victim_weapon_2_mods:
type: integer
victim_weapon_3:
type: string
victim_weapon_3_mods:
type: integer
victim_offhand_weapon_1:
type: integer
victim_offhand_weapon_2:
type: integer
cause_of_death:
type: string
distance:
type: number
required:
- cause_of_death
description: ''
parameters:
- schema:
type: string
example: '2'
name: serverId
in: path
required: true
description: ID of the server
components:
schemas:
Player:
title: Player
x-stoplight:
id: c9lv0bwq7hdx7
type: object
x-examples:
Example 1:
name: Legonzaur
deaths: 0
kills: 0
max_kill_distance: 0
avg_kill_distance: 0
properties:
name:
type: string
example: Legonzaur
deaths:
type: integer
x-stoplight:
id: xhi261df7kcqo
kills:
type: integer
x-stoplight:
id: ofjpw5sevnf64
max_kill_distance:
type: integer
x-stoplight:
id: qjqm0t2n6o93p
avg_kill_distance:
type: number
x-stoplight:
id: y0i5i1eja7v84
Weapon:
title: Weapon
x-stoplight:
id: l8j4cdsuxxrx0
type: object
x-examples:
Example 1:
max_kill_distance: 0
avg_kill_distance: 0
kills: 0
properties:
max_kill_distance:
type: integer
x-stoplight:
id: npckmqv4zdoje
avg_kill_distance:
type: number
x-stoplight:
id: 8plgr96gp1ke8
kills:
type: integer
x-stoplight:
id: pha6hu1qjfsgk
Server:
title: Server
x-stoplight:
id: g45919da0b3rc
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: fvnknoots 7v7
Kill:
title: Kill
x-stoplight:
id: 8w7qpo5dz7fo9
type: object
x-examples:
Example 1:
id: 0
server: string
tone_version: ks_3.0.0
match_id: 1cde15ee
game_mode: tdm
map: string
game_time: 385.417
player_count: 1
attacker_name: Legonzaur
attacker_id: 0
attacker_current_weapon: rspn101
attacker_current_weapon_mods: 0
attacker_weapon_1: rspn101
attacker_weapon_1_mods: 0
attacker_weapon_2: autopistol
attacker_weapon_2_mods: 0
attacker_weapon_3: defender
attacker_weapon_3_mods: 0
attacker_offhand_weapon_1: 0
attacker_offhand_weapon_2: 8
victim_name: Legonzaur
victim_id: 0
victim_current_weapon: rspn101
victim_current_weapon_mods: 0
victim_weapon_1: rspn101
victim_weapon_1_mods: 0
victim_weapon_2: autopistol
victim_weapon_2_mods: 0
victim_weapon_3: defender
victim_weapon_3_mods: 0
victim_offhand_weapon_1: 0
victim_offhand_weapon_2: 8
cause_of_death: frag_grenade
distance: 0
properties:
id:
type: integer
readOnly: true
server:
type: string
readOnly: true
tone_version:
type: string
match_id:
type: string
game_mode:
type: string
map:
type: string
game_time:
type: string
format: time
player_count:
type: integer
attacker_name:
type: string
attacker_id:
type: integer
attacker_current_weapon:
type: string
attacker_current_weapon_mods:
type: integer
attacker_weapon_1:
type: string
attacker_weapon_1_mods:
type: integer
attacker_weapon_2:
type: string
attacker_weapon_2_mods:
type: integer
attacker_weapon_3:
type: string
attacker_weapon_3_mods:
type: integer
attacker_offhand_weapon_1:
type: integer
attacker_offhand_weapon_2:
type: integer
victim_name:
type: string
victim_id:
type: integer
victim_current_weapon:
type: string
victim_current_weapon_mods:
type: integer
victim_weapon_1:
type: string
victim_weapon_1_mods:
type: integer
victim_weapon_2:
type: string
victim_weapon_2_mods:
type: integer
victim_weapon_3:
type: string
victim_weapon_3_mods:
type: integer
victim_offhand_weapon_1:
type: integer
victim_offhand_weapon_2:
type: integer
cause_of_death:
type: string
distance:
type: number
required:
- cause_of_death
securitySchemes:
Auth_Token:
type: http
scheme: basic
parameters:
server:
name: server
in: query
required: false
schema:
type: number
example: 2
description: Fetch data for specific server
player:
name: player
in: query
required: false
schema:
type: number
example: 1005930844007
description: Fetch data for specific player
weapon:
name: weapon
in: query
required: false
schema:
type: string
example: epg
description: Fetch data for specific weapon
responses: {}
examples: {}
+17
View File
@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8">
<meta name=”viewport” content=”width=device-width, initial-scale=1">
<link rel=”stylesheet” type=”text/css” href=”//pagecdn.io/lib/swagger-ui/v3.31.1/swagger-ui.css”>
<title>OpenAPI Petstore</title>
<body><div id=”openapi”><script src=”//pagecdn.io/lib/swagger-ui/v3.31.1/swagger-ui-bundle.js”></script>
<script>
window.onload = function () {
const ui = SwaggerUIBundle({
url: "OpenAPI.yml",
dom_id: "openapi"
})
}
</script>
</body>
-784
View File
@@ -1,784 +0,0 @@
---
title: ToneAPI v1.0
language_tabs:
- javascript: JavaScript
language_clients:
- javascript: request.
toc_footers: []
includes: []
search: true
highlight_theme: darkula
headingLevel: 2
---
<!-- Generator: Widdershins v4.0.1 -->
<h1 id="toneapi">ToneAPI v1.0</h1>
> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Stats tracking API for Titanfall 2 Northstar
Base URLs:
* <a href="https://tone.sleepycat.date/v1">https://tone.sleepycat.date/v1</a>
Web: <a href="https://github.com/Legonzaur">Legonzaur</a>
License: <a href="https://unlicense.org/">The Unlicense</a>
# Authentication
- HTTP Authentication, scheme: basic
<h1 id="toneapi-default">Default</h1>
## get-server-list
<a id="opIdget-server-list"></a>
> Code samples
```javascript
const headers = {
'Accept':'application/json'
};
fetch('https://tone.sleepycat.date/v1/client/servers',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
```
`GET /client/servers`
*List of servers*
An array containing the list of servers as objects
> Example responses
> OK
```json
[
{
"id": 1,
"name": "fvnknoots 7v7"
}
]
```
<h3 id="get-server-list-responses">Responses</h3>
|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
<h3 id="get-server-list-responseschema">Response Schema</h3>
Status Code **200**
|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» Server|object|false|none|none|
|»» id|integer|false|none|none|
|»» name|string|false|none|none|
<aside class="success">
This operation does not require authentication
</aside>
## get-client-weapons
<a id="opIdget-client-weapons"></a>
> Code samples
```javascript
const headers = {
'Accept':'application/json'
};
fetch('https://tone.sleepycat.date/v1/client/weapons',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
```
`GET /client/weapons`
*Statistics for all weapons*
A JSON Object with weapon IDs as key and weapon data as value
> Body parameter
<h3 id="get-client-weapons-parameters">Parameters</h3>
|Name|In|Type|Required|Description|
|---|---|---|---|---|
|server|query|number|false|Fetch data for specific server|
|player|query|number|false|Fetch data for specific player|
> Example responses
> OK
```json
{
"hemlock": {
"max_kill_distance": 0,
"avg_kill_distance": 0,
"kills": 0
},
"lstar": {
"max_kill_distance": 0,
"avg_kill_distance": 0,
"kills": 0
}
}
```
<h3 id="get-client-weapons-responses">Responses</h3>
|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
<h3 id="get-client-weapons-responseschema">Response Schema</h3>
Status Code **200**
|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» hemlock|object|false|none|none|
|»» max_kill_distance|integer|false|none|none|
|»» avg_kill_distance|number|false|none|none|
|»» kills|integer|false|none|none|
<aside class="success">
This operation does not require authentication
</aside>
## get-client-weapons-weaponId
<a id="opIdget-client-weapons-weaponId"></a>
> Code samples
```javascript
const headers = {
'Accept':'application/json'
};
fetch('https://tone.sleepycat.date/v1/client/weapons/{weaponId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
```
`GET /client/weapons/{weaponId}`
*Statistics for a single weapon*
Data for a specific weapon
> Body parameter
<h3 id="get-client-weapons-weaponid-parameters">Parameters</h3>
|Name|In|Type|Required|Description|
|---|---|---|---|---|
|server|query|number|false|Fetch data for specific server|
|player|query|number|false|Fetch data for specific player|
|weaponId|path|string|true|ID of a weapon|
> Example responses
> 200 Response
```json
{
"max_kill_distance": 0,
"avg_kill_distance": 0,
"kills": 0
}
```
<h3 id="get-client-weapons-weaponid-responses">Responses</h3>
|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
<h3 id="get-client-weapons-weaponid-responseschema">Response Schema</h3>
Status Code **200**
*Weapon*
|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» max_kill_distance|integer|false|none|none|
|» avg_kill_distance|number|false|none|none|
|» kills|integer|false|none|none|
<aside class="success">
This operation does not require authentication
</aside>
## get-client-players
<a id="opIdget-client-players"></a>
> Code samples
```javascript
const headers = {
'Accept':'application/json'
};
fetch('https://tone.sleepycat.date/v1/client/players',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
```
`GET /client/players`
*Statistics for all players*
A JSON Object with player IDs as key and player data as value
<h3 id="get-client-players-parameters">Parameters</h3>
|Name|In|Type|Required|Description|
|---|---|---|---|---|
|weapon|query|string|false|Fetch data for specific weapon|
|server|query|number|false|Fetch data for specific server|
> Example responses
> OK
```json
{
"2250125460": {
"name": "Legonzaur",
"deaths": 0,
"kills": 0,
"max_kill_distance": 0,
"avg_kill_distance": 0
}
}
```
<h3 id="get-client-players-responses">Responses</h3>
|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
<h3 id="get-client-players-responseschema">Response Schema</h3>
Status Code **200**
|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» 2250125460|object|false|none|none|
|»» name|string|false|none|none|
|»» deaths|integer|false|none|none|
|»» kills|integer|false|none|none|
|»» max_kill_distance|integer|false|none|none|
|»» avg_kill_distance|number|false|none|none|
<aside class="success">
This operation does not require authentication
</aside>
## get-client-players-playerId
<a id="opIdget-client-players-playerId"></a>
> Code samples
```javascript
const headers = {
'Accept':'application/json'
};
fetch('https://tone.sleepycat.date/v1/client/players/{playerId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
```
`GET /client/players/{playerId}`
*Statistics for a single player*
Data for a specific player
<h3 id="get-client-players-playerid-parameters">Parameters</h3>
|Name|In|Type|Required|Description|
|---|---|---|---|---|
|server|query|number|false|Fetch data for specific server|
|weapon|query|string|false|Fetch data for specific weapon|
|playerId|path|string|true|ID of a player|
> Example responses
> 200 Response
```json
{
"name": "Legonzaur",
"deaths": 0,
"kills": 0,
"max_kill_distance": 0,
"avg_kill_distance": 0
}
```
<h3 id="get-client-players-playerid-responses">Responses</h3>
|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
<h3 id="get-client-players-playerid-responseschema">Response Schema</h3>
Status Code **200**
*Player*
|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» name|string|false|none|none|
|» deaths|integer|false|none|none|
|» kills|integer|false|none|none|
|» max_kill_distance|integer|false|none|none|
|» avg_kill_distance|number|false|none|none|
<aside class="success">
This operation does not require authentication
</aside>
## post-servers-serverId
<a id="opIdpost-servers-serverId"></a>
> Code samples
```javascript
fetch('https://tone.sleepycat.date/v1/servers/{serverId}',
{
method: 'POST'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
```
`POST /servers/{serverId}`
Used to test auth
<h3 id="post-servers-serverid-parameters">Parameters</h3>
|Name|In|Type|Required|Description|
|---|---|---|---|---|
|serverId|path|string|true|ID of the server|
<h3 id="post-servers-serverid-responses">Responses</h3>
|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
Auth_Token
</aside>
## post-kills
<a id="opIdpost-kills"></a>
> Code samples
```javascript
const inputBody = '{
"tone_version": "string",
"match_id": "string",
"game_mode": "string",
"map": "string",
"game_time": "14:15:22Z",
"player_count": 0,
"attacker_name": "string",
"attacker_id": 0,
"attacker_current_weapon": "string",
"attacker_current_weapon_mods": 0,
"attacker_weapon_1": "string",
"attacker_weapon_1_mods": 0,
"attacker_weapon_2": "string",
"attacker_weapon_2_mods": 0,
"attacker_weapon_3": "string",
"attacker_weapon_3_mods": 0,
"attacker_offhand_weapon_1": 0,
"attacker_offhand_weapon_2": 0,
"victim_name": "string",
"victim_id": 0,
"victim_current_weapon": "string",
"victim_current_weapon_mods": 0,
"victim_weapon_1": "string",
"victim_weapon_1_mods": 0,
"victim_weapon_2": "string",
"victim_weapon_2_mods": 0,
"victim_weapon_3": "string",
"victim_weapon_3_mods": 0,
"victim_offhand_weapon_1": 0,
"victim_offhand_weapon_2": 0,
"cause_of_death": "string",
"distance": 0
}';
const headers = {
'Content-Type':'application/json'
};
fetch('https://tone.sleepycat.date/v1/servers/{serverId}/kills',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
```
`POST /servers/{serverId}/kills`
*Post kills*
Allows a Northstar server to record kills on the database
> Body parameter
```json
{
"tone_version": "string",
"match_id": "string",
"game_mode": "string",
"map": "string",
"game_time": "14:15:22Z",
"player_count": 0,
"attacker_name": "string",
"attacker_id": 0,
"attacker_current_weapon": "string",
"attacker_current_weapon_mods": 0,
"attacker_weapon_1": "string",
"attacker_weapon_1_mods": 0,
"attacker_weapon_2": "string",
"attacker_weapon_2_mods": 0,
"attacker_weapon_3": "string",
"attacker_weapon_3_mods": 0,
"attacker_offhand_weapon_1": 0,
"attacker_offhand_weapon_2": 0,
"victim_name": "string",
"victim_id": 0,
"victim_current_weapon": "string",
"victim_current_weapon_mods": 0,
"victim_weapon_1": "string",
"victim_weapon_1_mods": 0,
"victim_weapon_2": "string",
"victim_weapon_2_mods": 0,
"victim_weapon_3": "string",
"victim_weapon_3_mods": 0,
"victim_offhand_weapon_1": 0,
"victim_offhand_weapon_2": 0,
"cause_of_death": "string",
"distance": 0
}
```
<h3 id="post-kills-parameters">Parameters</h3>
|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|object|false|none|
|» id|body|integer|false|none|
|» server|body|string|false|none|
|» tone_version|body|string|false|none|
|» match_id|body|string|false|none|
|» game_mode|body|string|false|none|
|» map|body|string|false|none|
|» game_time|body|string(time)|false|none|
|» player_count|body|integer|false|none|
|» attacker_name|body|string|false|none|
|» attacker_id|body|integer|false|none|
|» attacker_current_weapon|body|string|false|none|
|» attacker_current_weapon_mods|body|integer|false|none|
|» attacker_weapon_1|body|string|false|none|
|» attacker_weapon_1_mods|body|integer|false|none|
|» attacker_weapon_2|body|string|false|none|
|» attacker_weapon_2_mods|body|integer|false|none|
|» attacker_weapon_3|body|string|false|none|
|» attacker_weapon_3_mods|body|integer|false|none|
|» attacker_offhand_weapon_1|body|integer|false|none|
|» attacker_offhand_weapon_2|body|integer|false|none|
|» victim_name|body|string|false|none|
|» victim_id|body|integer|false|none|
|» victim_current_weapon|body|string|false|none|
|» victim_current_weapon_mods|body|integer|false|none|
|» victim_weapon_1|body|string|false|none|
|» victim_weapon_1_mods|body|integer|false|none|
|» victim_weapon_2|body|string|false|none|
|» victim_weapon_2_mods|body|integer|false|none|
|» victim_weapon_3|body|string|false|none|
|» victim_weapon_3_mods|body|integer|false|none|
|» victim_offhand_weapon_1|body|integer|false|none|
|» victim_offhand_weapon_2|body|integer|false|none|
|» cause_of_death|body|string|true|none|
|» distance|body|number|false|none|
|serverId|path|string|true|ID of the server|
<h3 id="post-kills-responses">Responses</h3>
|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Created|None|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
Auth_Token
</aside>
# Schemas
<h2 id="tocS_Player">Player</h2>
<!-- backwards compatibility -->
<a id="schemaplayer"></a>
<a id="schema_Player"></a>
<a id="tocSplayer"></a>
<a id="tocsplayer"></a>
```json
{
"name": "Legonzaur",
"deaths": 0,
"kills": 0,
"max_kill_distance": 0,
"avg_kill_distance": 0
}
```
Player
### Properties
|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|false|none|none|
|deaths|integer|false|none|none|
|kills|integer|false|none|none|
|max_kill_distance|integer|false|none|none|
|avg_kill_distance|number|false|none|none|
<h2 id="tocS_Weapon">Weapon</h2>
<!-- backwards compatibility -->
<a id="schemaweapon"></a>
<a id="schema_Weapon"></a>
<a id="tocSweapon"></a>
<a id="tocsweapon"></a>
```json
{
"max_kill_distance": 0,
"avg_kill_distance": 0,
"kills": 0
}
```
Weapon
### Properties
|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|max_kill_distance|integer|false|none|none|
|avg_kill_distance|number|false|none|none|
|kills|integer|false|none|none|
<h2 id="tocS_Server">Server</h2>
<!-- backwards compatibility -->
<a id="schemaserver"></a>
<a id="schema_Server"></a>
<a id="tocSserver"></a>
<a id="tocsserver"></a>
```json
{
"id": 1,
"name": "fvnknoots 7v7"
}
```
Server
### Properties
|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|integer|false|none|none|
|name|string|false|none|none|
<h2 id="tocS_Kill">Kill</h2>
<!-- backwards compatibility -->
<a id="schemakill"></a>
<a id="schema_Kill"></a>
<a id="tocSkill"></a>
<a id="tocskill"></a>
```json
{
"id": 0,
"server": "string",
"tone_version": "string",
"match_id": "string",
"game_mode": "string",
"map": "string",
"game_time": "14:15:22Z",
"player_count": 0,
"attacker_name": "string",
"attacker_id": 0,
"attacker_current_weapon": "string",
"attacker_current_weapon_mods": 0,
"attacker_weapon_1": "string",
"attacker_weapon_1_mods": 0,
"attacker_weapon_2": "string",
"attacker_weapon_2_mods": 0,
"attacker_weapon_3": "string",
"attacker_weapon_3_mods": 0,
"attacker_offhand_weapon_1": 0,
"attacker_offhand_weapon_2": 0,
"victim_name": "string",
"victim_id": 0,
"victim_current_weapon": "string",
"victim_current_weapon_mods": 0,
"victim_weapon_1": "string",
"victim_weapon_1_mods": 0,
"victim_weapon_2": "string",
"victim_weapon_2_mods": 0,
"victim_weapon_3": "string",
"victim_weapon_3_mods": 0,
"victim_offhand_weapon_1": 0,
"victim_offhand_weapon_2": 0,
"cause_of_death": "string",
"distance": 0
}
```
Kill
### Properties
|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|integer|false|read-only|none|
|server|string|false|read-only|none|
|tone_version|string|false|none|none|
|match_id|string|false|none|none|
|game_mode|string|false|none|none|
|map|string|false|none|none|
|game_time|string(time)|false|none|none|
|player_count|integer|false|none|none|
|attacker_name|string|false|none|none|
|attacker_id|integer|false|none|none|
|attacker_current_weapon|string|false|none|none|
|attacker_current_weapon_mods|integer|false|none|none|
|attacker_weapon_1|string|false|none|none|
|attacker_weapon_1_mods|integer|false|none|none|
|attacker_weapon_2|string|false|none|none|
|attacker_weapon_2_mods|integer|false|none|none|
|attacker_weapon_3|string|false|none|none|
|attacker_weapon_3_mods|integer|false|none|none|
|attacker_offhand_weapon_1|integer|false|none|none|
|attacker_offhand_weapon_2|integer|false|none|none|
|victim_name|string|false|none|none|
|victim_id|integer|false|none|none|
|victim_current_weapon|string|false|none|none|
|victim_current_weapon_mods|integer|false|none|none|
|victim_weapon_1|string|false|none|none|
|victim_weapon_1_mods|integer|false|none|none|
|victim_weapon_2|string|false|none|none|
|victim_weapon_2_mods|integer|false|none|none|
|victim_weapon_3|string|false|none|none|
|victim_weapon_3_mods|integer|false|none|none|
|victim_offhand_weapon_1|integer|false|none|none|
|victim_offhand_weapon_2|integer|false|none|none|
|cause_of_death|string|true|none|none|
|distance|number|false|none|none|