# Get Filtered Player Stats GET /api/v1/player/stats/ Retrieves player statistics with time period filtering and metric selection for chart visualization. Reference: https://docs.aisquare.studio/api-reference/ai-square-studio-api/player/stats-retrieve ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: AISquare Studio API version: 1.0.0 paths: /api/v1/player/stats/: get: operationId: stats-retrieve summary: Get Filtered Player Stats description: >- Retrieves player statistics with time period filtering and metric selection for chart visualization. tags: - subpackage_player parameters: - name: filter in: query description: Time period filter required: true schema: $ref: '#/components/schemas/ApiV1PlayerStatsGetParametersFilter' - name: metric in: query description: Metric to display required: true schema: $ref: '#/components/schemas/ApiV1PlayerStatsGetParametersMetric' - name: quest_id in: query description: Quest ID to filter stats by (optional) required: false schema: type: string format: uuid responses: '200': description: Player statistics chart data content: application/json: schema: $ref: '#/components/schemas/PlayerStatsChart' '400': description: Invalid filter or metric parameter content: application/json: schema: description: Any type '401': description: Unauthorized content: application/json: schema: description: Any type '404': description: Player not found content: application/json: schema: description: Any type components: schemas: ApiV1PlayerStatsGetParametersFilter: type: string enum: - Last 3 months - Last 7 days - Last Month title: ApiV1PlayerStatsGetParametersFilter ApiV1PlayerStatsGetParametersMetric: type: string enum: - Accuracy - Elo - Speed title: ApiV1PlayerStatsGetParametersMetric PlayerStatsChart: type: object properties: x_axis: type: string y_axis: type: string labels: type: array items: type: string data: type: array items: type: number format: double period: type: string metric: type: string required: - x_axis - y_axis - labels - data - period - metric description: Serializer for filtered player stats with chart data title: PlayerStatsChart ``` ## SDK Code Examples ```python Last 7 days Elo Example import requests url = "https://api.example.com/api/v1/player/stats/" querystring = {"filter":"Last 3 months","metric":"Accuracy"} response = requests.get(url, params=querystring) print(response.json()) ``` ```javascript Last 7 days Elo Example const url = 'https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy'; const options = {method: 'GET'}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Last 7 days Elo Example package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy" req, _ := http.NewRequest("GET", url, nil) res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Last 7 days Elo Example require 'uri' require 'net/http' url = URI("https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```java Last 7 days Elo Example import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy") .asString(); ``` ```php Last 7 days Elo Example request('GET', 'https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy'); echo $response->getBody(); ``` ```csharp Last 7 days Elo Example using RestSharp; var client = new RestClient("https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy"); var request = new RestRequest(Method.GET); IRestResponse response = client.Execute(request); ``` ```swift Last 7 days Elo Example import Foundation let request = NSMutableURLRequest(url: NSURL(string: "https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Last Month Accuracy Example import requests url = "https://api.example.com/api/v1/player/stats/" querystring = {"filter":"Last 3 months","metric":"Accuracy"} response = requests.get(url, params=querystring) print(response.json()) ``` ```javascript Last Month Accuracy Example const url = 'https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy'; const options = {method: 'GET'}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Last Month Accuracy Example package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy" req, _ := http.NewRequest("GET", url, nil) res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Last Month Accuracy Example require 'uri' require 'net/http' url = URI("https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```java Last Month Accuracy Example import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy") .asString(); ``` ```php Last Month Accuracy Example request('GET', 'https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy'); echo $response->getBody(); ``` ```csharp Last Month Accuracy Example using RestSharp; var client = new RestClient("https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy"); var request = new RestRequest(Method.GET); IRestResponse response = client.Execute(request); ``` ```swift Last Month Accuracy Example import Foundation let request = NSMutableURLRequest(url: NSURL(string: "https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Last 3 months Speed Example import requests url = "https://api.example.com/api/v1/player/stats/" querystring = {"filter":"Last 3 months","metric":"Accuracy"} response = requests.get(url, params=querystring) print(response.json()) ``` ```javascript Last 3 months Speed Example const url = 'https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy'; const options = {method: 'GET'}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Last 3 months Speed Example package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy" req, _ := http.NewRequest("GET", url, nil) res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Last 3 months Speed Example require 'uri' require 'net/http' url = URI("https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```java Last 3 months Speed Example import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy") .asString(); ``` ```php Last 3 months Speed Example request('GET', 'https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy'); echo $response->getBody(); ``` ```csharp Last 3 months Speed Example using RestSharp; var client = new RestClient("https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy"); var request = new RestRequest(Method.GET); IRestResponse response = client.Execute(request); ``` ```swift Last 3 months Speed Example import Foundation let request = NSMutableURLRequest(url: NSURL(string: "https://api.example.com/api/v1/player/stats/?filter=Last+3+months&metric=Accuracy")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```