From a682a5b038e39622b9d663716401c597c983ad3e Mon Sep 17 00:00:00 2001 From: vikingowl Date: Wed, 2 Mar 2022 14:53:45 +0100 Subject: [PATCH] added api json --- csgowtf_api.json | 874 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 874 insertions(+) create mode 100644 csgowtf_api.json diff --git a/csgowtf_api.json b/csgowtf_api.json new file mode 100644 index 0000000..1506793 --- /dev/null +++ b/csgowtf_api.json @@ -0,0 +1,874 @@ +{ + "openapi" : "3.0.0", + "info" : { + "contact" : { + "email" : "api@csgow.tf" + }, + "license" : { + "name" : "GPLv3", + "url" : "https://www.gnu.org/licenses/gpl-3.0.html" + }, + "title" : "csgoWTF API", + "version" : "1.0.0" + }, + "servers" : [ { + "description" : "csgoWTF API Endpoint", + "url" : "https://api.csgow.tf" + } ], + "tags" : [ { + "description" : "All calls related to matches", + "name" : "matches" + }, { + "description" : "All calls related to players", + "name" : "players" + }, { + "description" : "All calls not related to players or matches", + "name" : "meta" + } ], + "paths" : { + "/match/{id}" : { + "get" : { + "description" : "Get match by matchID\n", + "operationId" : "getMatch", + "parameters" : [ { + "description" : "match id", + "explode" : false, + "in" : "path", + "name" : "id", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "allOf" : [ { + "$ref" : "#/components/schemas/Match" + }, { + "properties" : { + "stats" : { + "items" : { + "$ref" : "#/components/schemas/Stats" + }, + "maxItems" : 10, + "type" : "array" + } + }, + "type" : "object" + } ] + } + } + }, + "description" : "match with id" + }, + "400" : { + "description" : "bad input parameter" + }, + "404" : { + "description" : "match not found" + }, + "500" : { + "description" : "internal server errror" + } + }, + "summary" : "gets match by MatchID", + "tags" : [ "matches" ] + } + }, + "/match/{id}/chat" : { + "get" : { + "description" : "Get match-chat by MatchID\n", + "operationId" : "getMatchChat", + "parameters" : [ { + "description" : "match id", + "explode" : false, + "in" : "path", + "name" : "id", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "explode" : true, + "in" : "query", + "name" : "translated", + "required" : false, + "schema" : { + "enum" : [ 0, 1 ], + "type" : "number" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MatchChat" + } + } + }, + "description" : "match with id" + }, + "400" : { + "description" : "bad input parameter" + }, + "404" : { + "description" : "match not found" + }, + "500" : { + "description" : "internal server error" + } + }, + "summary" : "gets match-chat by MatchID", + "tags" : [ "matches" ] + } + }, + "/match/{id}/rounds" : { + "get" : { + "description" : "Get match-rounds by MatchID\n", + "operationId" : "getMatchRounds", + "parameters" : [ { + "description" : "match id", + "explode" : false, + "in" : "path", + "name" : "id", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MatchRounds" + } + } + }, + "description" : "match with id" + }, + "400" : { + "description" : "bad input parameter" + }, + "404" : { + "description" : "match not found" + }, + "500" : { + "description" : "internal server error" + } + }, + "summary" : "gets match-rounds by MatchID", + "tags" : [ "matches" ] + } + }, + "/match/{id}/weapons" : { + "get" : { + "description" : "Get match-weapons by MatchID\n", + "operationId" : "getMatchWeapons", + "parameters" : [ { + "description" : "match id", + "explode" : false, + "in" : "path", + "name" : "id", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MatchWeapons" + } + } + }, + "description" : "match with id" + }, + "400" : { + "description" : "bad input parameter" + }, + "404" : { + "description" : "match not found" + }, + "500" : { + "description" : "internal server error" + } + }, + "summary" : "gets match-weapons by MatchID", + "tags" : [ "matches" ] + } + }, + "/matches" : { + "get" : { + "description" : "Get last 10 matches\n", + "operationId" : "getMatches", + "parameters" : [ { + "description" : "Unix time after which games are loaded", + "explode" : true, + "in" : "query", + "name" : "after", + "required" : false, + "schema" : { + "format" : "int64", + "type" : "integer" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Match" + } + } + }, + "description" : "match with id" + }, + "400" : { + "description" : "bad input parameter" + }, + "500" : { + "description" : "internal server error" + } + }, + "summary" : "gets matches", + "tags" : [ "matches" ] + } + }, + "/player/{id}" : { + "get" : { + "description" : "Get player by steamid64\n", + "operationId" : "getPlayer", + "parameters" : [ { + "description" : "player steamid64", + "explode" : false, + "in" : "path", + "name" : "id", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "description" : "Unix time after which games are loaded", + "explode" : true, + "in" : "query", + "name" : "after", + "required" : false, + "schema" : { + "format" : "int64", + "type" : "integer" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Player" + } + } + }, + "description" : "player with matches and stats" + }, + "400" : { + "description" : "bad input parameter" + }, + "404" : { + "description" : "player not found" + }, + "500" : { + "description" : "unable to get player" + } + }, + "summary" : "gets player by steamID64", + "tags" : [ "players" ] + } + }, + "/player/{id}/meta" : { + "get" : { + "description" : "Get player-meta by steamid64\n", + "operationId" : "getPlayerMeta", + "parameters" : [ { + "description" : "player steamid64", + "explode" : false, + "in" : "path", + "name" : "id", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "description" : "Number of returned meta-stats", + "explode" : true, + "in" : "query", + "name" : "limit", + "required" : true, + "schema" : { + "maximum" : 10, + "minimum" : 1, + "type" : "integer" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PlayerMeta" + } + } + }, + "description" : "player meta stats" + }, + "400" : { + "description" : "bad input parameter" + }, + "404" : { + "description" : "player not found" + }, + "500" : { + "description" : "unable to get player meta-stats" + } + }, + "summary" : "gets player-meta by steamID64", + "tags" : [ "players" ] + } + }, + "/player/{id}/track" : { + "delete" : { + "description" : "Delete player steamid64 and authcode to delete tracked status\n", + "operationId" : "deletePlayerTrack", + "parameters" : [ { + "description" : "player steamid64", + "explode" : false, + "in" : "path", + "name" : "id", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "description" : "player authcode", + "explode" : true, + "in" : "query", + "name" : "authcode", + "required" : true, + "schema" : { + "pattern" : "^[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{4}-[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{5}-[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{4}$", + "type" : "string" + }, + "style" : "form" + } ], + "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" + } + }, + "summary" : "deletes tracked player with steamid64 by authCode", + "tags" : [ "players" ] + }, + "post" : { + "description" : "Post player steamid64, authcode (and sharecode) to track games\n", + "operationId" : "postPlayerTrack", + "parameters" : [ { + "description" : "player steamid64", + "explode" : false, + "in" : "path", + "name" : "id", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "description" : "player authcode", + "explode" : true, + "in" : "query", + "name" : "authcode", + "required" : true, + "schema" : { + "pattern" : "^[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{4}-[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{5}-[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{4}$", + "type" : "string" + }, + "style" : "form" + }, { + "description" : "player sharecode", + "explode" : true, + "in" : "query", + "name" : "sharecode", + "required" : false, + "schema" : { + "pattern" : "^CSGO(?:-?[ABCDEFGHJKLMNOPQRSTUVWXYZabcdefhijkmnopqrstuvwxyz23456789]{5}){5}$", + "type" : "string" + }, + "style" : "form" + } ], + "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" + } + }, + "summary" : "tracks player with steamid64 by authCode", + "tags" : [ "players" ] + } + } + }, + "components" : { + "schemas" : { + "Match" : { + "properties" : { + "match_id" : { + "type" : "string" + }, + "share_code" : { + "type" : "string" + }, + "map" : { + "type" : "string" + }, + "date" : { + "type" : "integer" + }, + "score" : { + "items" : { + "type" : "integer" + }, + "maxItems" : 2, + "minItems" : 2, + "type" : "array" + }, + "duration" : { + "type" : "integer" + }, + "match_result" : { + "enum" : [ 0, 1, 2 ], + "type" : "integer" + }, + "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" : [ "date", "duration", "game_ban", "map", "match_id", "match_result", "parsed", "score", "vac" ], + "type" : "object" + }, + "MatchChat" : { + "properties" : { + "message" : { + "type" : "string" + }, + "all_chat" : { + "type" : "boolean" + }, + "tick" : { + "type" : "integer" + }, + "translated_from" : { + "type" : "string" + }, + "translated_to" : { + "type" : "string" + } + }, + "required" : [ "all_chat", "message", "tick" ], + "type" : "object" + }, + "MatchRounds" : { + "additionalProperties" : { + "additionalProperties" : { + "items" : { + "type" : "integer" + }, + "maxItems" : 3, + "minItems" : 3, + "type" : "array" + }, + "type" : "object" + }, + "type" : "object" + }, + "MatchWeapons" : { + "properties" : { + "equipment_map" : { + "additionalProperties" : { + "type" : "string" + }, + "type" : "object" + }, + "stats" : { + "items" : { + "additionalProperties" : { + "additionalProperties" : { + "items" : { + "items" : { + "type" : "integer" + }, + "maxItems" : 3, + "minItems" : 3, + "type" : "array" + }, + "type" : "array" + }, + "type" : "object" + }, + "type" : "object" + }, + "type" : "array" + }, + "spray" : { + "items" : { + "additionalProperties" : { + "additionalProperties" : { + "items" : { + "items" : { + "type" : "number" + }, + "maxItems" : 3, + "minItems" : 3, + "type" : "array" + }, + "type" : "array" + }, + "type" : "object" + }, + "type" : "object" + }, + "type" : "array" + } + }, + "type" : "object" + }, + "Player" : { + "properties" : { + "steamid64" : { + "type" : "string" + }, + "name" : { + "type" : "string" + }, + "avatar" : { + "type" : "string" + }, + "vac" : { + "type" : "boolean" + }, + "vac_date" : { + "format" : "int64", + "type" : "integer" + }, + "game_ban" : { + "type" : "boolean" + }, + "game_ban_date" : { + "format" : "int64", + "type" : "integer" + }, + "tracked" : { + "type" : "boolean" + }, + "vanity_url" : { + "type" : "string" + }, + "match_stats" : { + "$ref" : "#/components/schemas/Player_match_stats" + }, + "matches" : { + "items" : { + "$ref" : "#/components/schemas/Match" + }, + "type" : "array" + } + }, + "required" : [ "game_ban", "steamid64", "tracked", "vac" ], + "type" : "object" + }, + "PlayerMeta" : { + "properties" : { + "player" : { + "$ref" : "#/components/schemas/Player" + }, + "best_mates" : { + "items" : { + "$ref" : "#/components/schemas/PlayerMate" + }, + "type" : "array" + }, + "most_mates" : { + "items" : { + "$ref" : "#/components/schemas/PlayerMate" + }, + "type" : "array" + }, + "eq_map" : { + "additionalProperties" : { + "type" : "string" + }, + "type" : "object" + }, + "weapon_dmg" : { + "items" : { + "$ref" : "#/components/schemas/PlayerMeta_weapon_dmg" + }, + "type" : "array" + }, + "win_maps" : { + "additionalProperties" : { + "type" : "number" + }, + "type" : "object" + }, + "tie_maps" : { + "additionalProperties" : { + "type" : "number" + }, + "type" : "object" + }, + "total_maps" : { + "additionalProperties" : { + "type" : "integer" + }, + "type" : "object" + } + }, + "required" : [ "player" ], + "type" : "object" + }, + "PlayerMate" : { + "properties" : { + "player" : { + "$ref" : "#/components/schemas/Player" + }, + "win_rate" : { + "type" : "number" + }, + "tie_rate" : { + "type" : "number" + }, + "total" : { + "type" : "integer" + } + }, + "required" : [ "player" ], + "type" : "object" + }, + "Stats" : { + "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" : { + "$ref" : "#/components/schemas/Stats_rank" + }, + "multi_kills" : { + "$ref" : "#/components/schemas/Stats_multi_kills" + }, + "dmg" : { + "$ref" : "#/components/schemas/Stats_dmg" + }, + "flash" : { + "$ref" : "#/components/schemas/Stats_flash" + } + }, + "required" : [ "assists", "deaths", "headshot", "kills", "mvp", "score", "team_id" ], + "type" : "object" + }, + "Player_match_stats" : { + "properties" : { + "win" : { + "type" : "integer" + }, + "loss" : { + "type" : "integer" + }, + "tie" : { + "type" : "integer" + } + }, + "type" : "object" + }, + "PlayerMeta_weapon_dmg" : { + "properties" : { + "eq" : { + "type" : "integer" + }, + "dmg" : { + "type" : "integer" + } + }, + "type" : "object" + }, + "Stats_rank" : { + "properties" : { + "old" : { + "type" : "integer" + }, + "new" : { + "type" : "integer" + } + }, + "type" : "object" + }, + "Stats_multi_kills" : { + "properties" : { + "duo" : { + "type" : "integer" + }, + "triple" : { + "type" : "integer" + }, + "quad" : { + "type" : "integer" + }, + "pent" : { + "type" : "integer" + } + }, + "type" : "object" + }, + "Stats_dmg" : { + "properties" : { + "ememy" : { + "type" : "integer" + }, + "team" : { + "type" : "integer" + } + }, + "type" : "object" + }, + "Stats_flash_duration" : { + "properties" : { + "self" : { + "type" : "number" + }, + "team" : { + "type" : "number" + }, + "enemy" : { + "type" : "number" + } + }, + "type" : "object" + }, + "Stats_flash_total" : { + "properties" : { + "self" : { + "type" : "integer" + }, + "team" : { + "type" : "integer" + }, + "enemy" : { + "type" : "integer" + } + }, + "type" : "object" + }, + "Stats_flash" : { + "properties" : { + "duration" : { + "$ref" : "#/components/schemas/Stats_flash_duration" + }, + "total" : { + "$ref" : "#/components/schemas/Stats_flash_total" + } + }, + "type" : "object" + } + } + } +} \ No newline at end of file