openapi: 3.0.0 servers: - description: csgoWTF API Endpoint url: https://api.csgow.tf info: version: "1.0.0" title: csgoWTF API contact: email: api@csgow.tf license: name: GPLv3 url: 'https://www.gnu.org/licenses/gpl-3.0.html' tags: - name: matches description: All calls related to matches - name: players description: All calls related to players - name: meta description: All calls not related to players or matches paths: /match/{id}: get: tags: - matches summary: gets match by MatchID operationId: getMatch description: | Get match by matchID parameters: - in: path name: id description: match id required: true schema: type: string responses: '200': description: match with id content: application/json: schema: allOf: - $ref: '#/components/schemas/Match' - type: object properties: stats: type: array maxItems: 10 items: $ref: '#/components/schemas/Stats' '400': description: bad input parameter '404': description: match not found '500': description: internal server errror /match/{id}/chat: get: tags: - matches summary: gets match-chat by MatchID operationId: getMatchChat description: | Get match-chat by MatchID parameters: - in: path name: id description: match id required: true schema: type: string - in: query name: translated schema: type: number enum: [0, 1] required: false responses: '200': description: match with id content: application/json: schema: $ref: '#/components/schemas/MatchChat' '400': description: bad input parameter '404': description: match not found '500': description: internal server error /match/{id}/rounds: get: tags: - matches summary: gets match-rounds by MatchID operationId: getMatchRounds description: | Get match-rounds by MatchID parameters: - in: path name: id description: match id required: true schema: type: string responses: '200': description: match with id content: application/json: schema: $ref: '#/components/schemas/MatchRounds' '400': description: bad input parameter '404': description: match not found '500': description: internal server error /match/{id}/weapons: get: tags: - matches summary: gets match-weapons by MatchID operationId: getMatchWeapons description: | Get match-weapons by MatchID parameters: - in: path name: id description: match id required: true schema: type: string responses: '200': description: match with id content: application/json: schema: $ref: '#/components/schemas/MatchWeapons' '400': description: bad input parameter '404': description: match not found '500': description: internal server error /matches: get: tags: - matches summary: gets matches operationId: getMatches description: | Get last 10 matches parameters: - in: query name: after schema: type: integer format: int64 required: false description: Unix time after which games are loaded responses: '200': description: match with id content: application/json: schema: $ref: '#/components/schemas/Match' '400': description: bad input parameter '500': description: internal server error /player/{id}: get: tags: - players summary: gets player by steamID64 operationId: getPlayer description: | Get player by steamid64 parameters: - in: path name: id description: player steamid64 required: true schema: type: string - in: query name: after schema: type: integer format: int64 required: false description: Unix time after which games are loaded responses: '200': description: player with matches and stats content: application/json: schema: $ref: '#/components/schemas/Player' '400': description: bad input parameter '404': description: player not found '500': description: unable to get player /player/{id}/meta: get: tags: - players summary: gets player-meta by steamID64 operationId: getPlayerMeta description: | Get player-meta by steamid64 parameters: - in: path name: id description: player steamid64 required: true schema: type: string - in: query name: limit schema: type: integer minimum: 1 maximum: 10 required: true description: Number of returned meta-stats responses: '200': description: player meta stats content: application/json: schema: $ref: '#/components/schemas/PlayerMeta' '400': description: bad input parameter '404': description: player not found '500': description: unable to get player meta-stats /player/{id}/track: post: tags: - players summary: tracks player with steamid64 by authCode operationId: postPlayerTrack description: | Post player steamid64, authcode (and sharecode) to track games parameters: - in: path name: id description: player steamid64 required: true schema: type: string - in: query name: authcode description: player authcode required: true schema: type: string pattern: '^[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{4}-[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{5}-[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{4}$' - in: query name: sharecode description: player sharecode required: false schema: type: string pattern: '^CSGO(?:-?[ABCDEFGHJKLMNOPQRSTUVWXYZabcdefhijkmnopqrstuvwxyz23456789]{5}){5}$' responses: '202': description: Tracking successful '400': description: Invalid arguments '401': description: Authcode is invalid '404': description: Player not found '412': description: Sharecode is invalid or missing '500': description: Internal server error '503': description: Steam API not available delete: tags: - players summary: deletes tracked player with steamid64 by authCode operationId: deletePlayerTrack description: | Delete player steamid64 and authcode to delete tracked status parameters: - in: path name: id description: player steamid64 required: true schema: type: string - in: query name: authcode description: player authcode required: true schema: type: string pattern: '^[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{4}-[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{5}-[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{4}$' responses: '200': description: Delete successful '400': description: Invalid arguments '401': description: Authcode is invalid '404': description: Player not found '500': description: Internal server error '503': description: Steam API not available components: schemas: Match: type: object properties: match_id: type: string share_code: type: string map: type: string date: type: integer score: type: array items: type: integer maxItems: 2 minItems: 2 duration: type: integer match_result: type: integer enum: [0, 1, 2] max_rounds: type: integer parsed: type: boolean replay_url: type: string vac: type: boolean game_ban: type: boolean avg_rank: type: number tick_rate: type: number required: - match_id - map - date - score - duration - match_result - parsed - vac - game_ban MatchChat: type: object properties: message: type: string all_chat: type: boolean tick: type: integer translated_from: type: string translated_to: type: string required: - message - all_chat - tick MatchRounds: type: object additionalProperties: type: object additionalProperties: type: array items: type: integer minItems: 3 maxItems: 3 MatchWeapons: type: object properties: equipment_map: type: object additionalProperties: type: string stats: type: array items: type: object additionalProperties: type: object additionalProperties: type: array items: type: array items: type: integer minItems: 3 maxItems: 3 spray: type: array items: type: object additionalProperties: type: object additionalProperties: type: array items: type: array items: type: number minItems: 3 maxItems: 3 Player: type: object properties: steamid64: type: string name: type: string avatar: type: string vac: type: boolean vac_date: type: integer format: int64 game_ban: type: boolean game_ban_date: type: integer format: int64 tracked: type: boolean vanity_url: type: string match_stats: type: object properties: win: type: integer loss: type: integer tie: type: integer matches: type: array items: $ref: '#/components/schemas/Match' required: - steamid64 - vac - game_ban - tracked PlayerMeta: type: object properties: player: $ref: '#/components/schemas/Player' best_mates: type: array items: $ref: '#/components/schemas/PlayerMate' most_mates: type: array items: $ref: '#/components/schemas/PlayerMate' eq_map: type: object additionalProperties: type: string weapon_dmg: type: array items: type: object properties: eq: type: integer dmg: type: integer win_maps: type: object additionalProperties: type: number tie_maps: type: object additionalProperties: type: number total_maps: type: object additionalProperties: type: integer required: - player PlayerMate: type: object properties: player: $ref: '#/components/schemas/Player' win_rate: type: number tie_rate: type: number total: type: integer required: - player Stats: type: object properties: team_id: type: integer kills: type: integer deaths: type: integer assists: type: integer headshots: type: integer mvp: type: integer score: type: integer crosshair: type: string color: type: string player: $ref: '#/components/schemas/Player' rank: type: object properties: old: type: integer new: type: integer multi_kills: type: object properties: duo: type: integer triple: type: integer quad: type: integer pent: type: integer dmg: type: object properties: ememy: type: integer team: type: integer flash: type: object properties: duration: type: object properties: self: type: number team: type: number enemy: type: number total: type: object properties: self: type: integer team: type: integer enemy: type: integer required: - team_id - kills - deaths - assists - headshot - mvp - score