openapi: 3.0.2 x-stoplight: id: gr7tm5a03g740 info: title: OpenAPI version: '1.0' servers: - url: 'http://localhost:3000/v1' tags: - name: player description: Everything about players - name: server description: Everything about servers - name: weapon description: Everything about weapons - name: map description: Everything about maps paths: /weapons/: get: summary: List Weapons tags: [weapon] responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/Weapon' operationId: get-weapon-list description: '' /maps/: get: summary: List Maps tags: [map] responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/Map' operationId: get-map-list /players: get: summary: List Players tags: [player] responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/Player' operationId: get-player-list '/players/{playerId}': parameters: - $ref: '#/components/parameters/playerId' get: summary: Get Player report tags: [player] responses: '200': $ref: '#/components/responses/Player-report' '404': description: User Not Found operationId: get-player-report description: Retrieve the information of the player with the matching id /servers/: get: summary: Get Server list tags: [server] responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/Server' operationId: get-server-list '/servers/{serverId}': parameters: - $ref: '#/components/parameters/serverId' get: summary: Get Server report tags: [server] operationId: get-server-report responses: '200': $ref: '#/components/responses/Server-report' '/server/{serverId}/players': get: summary: List Players for Server tags: [server, player] responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/TopPlayers' operationId: get-player-list-for-server parameters: - $ref: '#/components/parameters/serverId' '/servers/{serverId}/kills': post: summary: Post kills tags: [server] operationId: post-kills responses: '200': description: OK content: application/json: schema: type: object properties: id: type: integer '401': description: Unauthorized parameters: [] security: - server_token: [] description: Allows a Northstar server to record kills on the database parameters: - $ref: '#/components/parameters/serverId' '/servers/{serverId}/weapons': get: summary: Get Weapon report for server tags: [server, weapon] responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/PrefferedWeapon' operationId: get-weapons-report-for-server parameters: [] x-internal: false parameters: - $ref: '#/components/parameters/serverId' '/servers/{serverId}/players/{playerId}': parameters: - $ref: '#/components/parameters/playerId' - $ref: '#/components/parameters/serverId' get: summary: Get Player report for Server tags: [server, player] responses: '200': $ref: '#/components/responses/Player-server-report' '404': description: Not Found operationId: get-player-on-server components: schemas: Player: title: Player x-stoplight: id: be41fcacb2693 type: object properties: id: $ref: '#/components/schemas/PlayerID' description: Player Origin ID name: type: string example: Legonzaur opt-out: type: boolean default: false description: 'If set to true, kill and deaths about this user won''t be sent to the database' hide_TOS: type: boolean default: false description: 'If set to true, TOS will be hidden when player joins a server' required: - id Weapon: title: Weapon x-stoplight: id: 7zc6t20eh3pcc type: object properties: id: $ref: '#/components/schemas/WeaponID' internal: type: string example: mp_weapon_sniper name: type: string example: Kraber description: type: string image: type: string format: uri example: 'https://static.wikia.nocookie.net/titanfall_gamepedia/images/8/8b/Icon_kraber.png' required: - id - internal Map: title: Map x-stoplight: id: hoh2m6pr6gli7 type: object properties: id: $ref: '#/components/schemas/MapID' internal: type: string example: mp_angel_city name: type: string example: Angel City description: type: string image: type: string format: uri example: 'https://media.contentapi.ea.com/content/dam/eacom/en-us/common/articles-tf2-welcome-header.jpg.adapt.320w.jpg' required: - id - internal Server: title: Server x-stoplight: id: hjfwmi2ae419o type: object properties: id: type: string example: '1' name: type: string example: fvnknoots 7v7 Kill: title: Kill x-stoplight: id: a9q2tvsts3z32 type: object properties: id: type: integer readOnly: true server: type: string example: fvnkhead's 7v7 damage_source: $ref: '#/components/schemas/WeaponID' attacker: $ref: '#/components/schemas/PlayerID' attacker_type: type: string attacker_weapon: $ref: '#/components/schemas/WeaponID' attacker_weapon_2: $ref: '#/components/schemas/WeaponID' attacker_weapon_3: $ref: '#/components/schemas/WeaponID' attacker_ordnance: $ref: '#/components/schemas/WeaponID' attacker_ability: $ref: '#/components/schemas/WeaponID' attacker_kit_1: $ref: '#/components/schemas/WeaponID' attacker_kit_2: $ref: '#/components/schemas/WeaponID' victim: $ref: '#/components/schemas/PlayerID' victim_weapon: $ref: '#/components/schemas/WeaponID' victim_weapon_2: $ref: '#/components/schemas/WeaponID' victim_weapon_3: $ref: '#/components/schemas/WeaponID' victim_ordnance: $ref: '#/components/schemas/WeaponID' victim_ability: $ref: '#/components/schemas/WeaponID' victim_kit_1: $ref: '#/components/schemas/WeaponID' victim_kit_2: $ref: '#/components/schemas/WeaponID' map: $ref: '#/components/schemas/MapID' distance: type: number example: 35.45 date: type: string format: date-time readOnly: true required: - server - attacker_type - victim PlayerID: title: EntityID x-stoplight: id: 9icavmq5bgsqp type: integer WeaponID: title: WeaponID x-stoplight: id: p92aomkxku2po type: integer description: '' MapID: title: MapID x-stoplight: id: zoazw8eoi7qwr type: integer PrefferredServer: title: PrefferredServer x-stoplight: id: xok1i1668gx6o type: object properties: server: $ref: '#/components/schemas/Server' killCount: type: integer example: 4988 deathCount: type: integer example: 4671 PrefferedWeapon: title: PrefferedWeapon x-stoplight: id: b52mxxdsbv1wx type: object properties: weapon: $ref: '#/components/schemas/Weapon' killCount: type: integer deathCount: type: integer PrefferedMap: title: PrefferedMap x-stoplight: id: 17kjfi5wu6f4h type: object properties: map: $ref: '#/components/schemas/Map' killCount: type: integer deathCount: type: integer TopPlayers: title: TopPlayers x-stoplight: id: rsl4jqpvwunah type: object properties: player: $ref: '#/components/schemas/Player' kill_count: type: integer death_count: type: integer securitySchemes: server_token: name: API Key type: apiKey in: header description: '' parameters: serverId: name: serverId in: path required: true schema: type: string playerId: name: playerId in: path required: true schema: type: string responses: Server-report: description: OK content: application/json: schema: type: object properties: server: $ref: '#/components/schemas/Server' total_kills: type: integer first_record: type: string format: date-time last_record: type: string format: date-time most_used_weapons: type: array items: $ref: '#/components/schemas/PrefferedWeapon' preffered_maps: type: array items: $ref: '#/components/schemas/PrefferedMap' top_players: type: array maxItems: 5 items: $ref: '#/components/schemas/TopPlayers' Player-server-report: description: OK content: application/json: schema: type: object properties: player: $ref: '#/components/schemas/Player' server: $ref: '#/components/schemas/Server' total_kills: type: integer description: Number of kills of the user in this server total_deaths: type: integer description: Number of deaths of the user in this server first_record: type: string format: date-time last_record: type: string format: date-time most_used_weapons: type: array maxItems: 5 items: $ref: '#/components/schemas/PrefferedWeapon' preferred_maps: type: array maxItems: 5 items: $ref: '#/components/schemas/PrefferedMap' furthest_kill_distance: type: number average_kill_distance: type: number examples: Example 1: value: player: id: 0 name: Legonzaur opt-out: false hide_TOS: false server: id: '1' name: fvnknoots 7v7 total_kills: 9865 total_deaths: 9954 first_record: '2019-08-24T14:15:22Z' last_record: '2019-08-24T14:15:22Z' most_used_weapons: - weapon: id: 0 internal: mp_weapon_sniper name: Kraber description: string image: 'https://static.wikia.nocookie.net/titanfall_gamepedia/images/8/8b/Icon_kraber.png' killCount: 0 deathCount: 0 preferred_maps: - map: id: 0 internal: mp_angel_city name: Angel City description: string image: 'https://media.contentapi.ea.com/content/dam/eacom/en-us/common/articles-tf2-welcome-header.jpg.adapt.320w.jpg' killCount: 0 deathCount: 0 furthest_kill_distance: 0 average_kill_distance: 0 Player-report: description: OK content: application/json: schema: type: object properties: player: $ref: '#/components/schemas/Player' preferred_servers: type: array maxItems: 5 items: $ref: '#/components/schemas/PrefferredServer' total_kills: type: integer description: Number of kills of the user in the entire database total_deaths: type: integer description: Number of kills of the user in the entire database first_record: type: string format: date-time last_record: type: string format: date-time most_used_weapons: type: array maxItems: 5 items: $ref: '#/components/schemas/PrefferedWeapon' preferred_maps: type: array maxItems: 5 items: $ref: '#/components/schemas/PrefferedMap' furthest_kill_distance: type: number average_kill_distance: type: number examples: Example 1: value: player: id: 0 name: Legonzaur opt-out: false hide_TOS: false preferred_servers: - server: id: '1' name: fvnknoots 7v7 killCount: 4988 deathCount: 4671 total_kills: 0 total_deaths: 0 first_record: '2019-08-24T14:15:22Z' last_record: '2019-08-24T14:15:22Z' most_used_weapons: - weapon: id: 0 internal: mp_weapon_sniper name: Kraber description: string image: 'https://static.wikia.nocookie.net/titanfall_gamepedia/images/8/8b/Icon_kraber.png' killCount: 0 deathCount: 0 preferred_maps: - map: id: 0 internal: mp_angel_city name: Angel City description: string image: 'https://media.contentapi.ea.com/content/dam/eacom/en-us/common/articles-tf2-welcome-header.jpg.adapt.320w.jpg' killCount: 0 deathCount: 0 furthest_kill_distance: 0 average_kill_distance: 0 examples: {}