Get User Plays
GET /v1/users/:userId/playsReturns a paginated list of a user’s game play records, including outcomes and rewards.
Authentication
Section titled “Authentication”| Header | Required | Value |
|---|---|---|
X-API-Key | Yes | Your public key |
Path Parameters
Section titled “Path Parameters”| Param | Type | Description |
|---|---|---|
userId | string | The user’s external ID |
Query Parameters
Section titled “Query Parameters”| Param | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number |
limit | integer | 20 | Results per page |
Request Examples
Section titled “Request Examples”curl -X GET "https://api.gamifyhost.com/v1/users/user_12345/plays?page=1&limit=10" \ -H "X-API-Key: pk_live_your_public_key"const userId = 'user_12345';const params = new URLSearchParams({ page: '1', limit: '10' });
const response = await fetch( `https://api.gamifyhost.com/v1/users/${userId}/plays?${params}`, { method: 'GET', headers: { 'X-API-Key': 'pk_live_your_public_key', }, });
const data = await response.json();console.log(data.data); // Array of play recordsimport requests
user_id = "user_12345"
response = requests.get( f"https://api.gamifyhost.com/v1/users/{user_id}/plays", headers={"X-API-Key": "pk_live_your_public_key"}, params={"page": 1, "limit": 10},)
data = response.json()for play in data["data"]: print(f"{play['gameType']} — {play['rewardLabel']}")import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.net.URI;
String userId = "user_12345";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.gamifyhost.com/v1/users/" + userId + "/plays?page=1&limit=10")) .header("X-API-Key", "pk_live_your_public_key") .GET() .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());userId := "user_12345"url := fmt.Sprintf("https://api.gamifyhost.com/v1/users/%s/plays?page=1&limit=10", userId)
req, _ := http.NewRequest("GET", url, nil)req.Header.Set("X-API-Key", "pk_live_your_public_key")
resp, err := http.DefaultClient.Do(req)if err != nil { log.Fatal(err)}defer resp.Body.Close()
var result map[string]interface{}json.NewDecoder(resp.Body).Decode(&result)fmt.Println(result["data"])$userId = 'user_12345';
$ch = curl_init("https://api.gamifyhost.com/v1/users/{$userId}/plays?page=1&limit=10");curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'X-API-Key: pk_live_your_public_key', ],]);
$response = curl_exec($ch);curl_close($ch);
$data = json_decode($response, true);print_r($data['data']);require 'net/http'require 'json'
user_id = 'user_12345'
uri = URI("https://api.gamifyhost.com/v1/users/#{user_id}/plays?page=1&limit=10")req = Net::HTTP::Get.new(uri)req['X-API-Key'] = 'pk_live_your_public_key'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }data = JSON.parse(res.body)data['data'].each { |play| puts "#{play['gameType']} — #{play['rewardLabel']}" }using var client = new HttpClient();client.DefaultRequestHeaders.Add("X-API-Key", "pk_live_your_public_key");
var userId = "user_12345";var response = await client.GetAsync($"https://api.gamifyhost.com/v1/users/{userId}/plays?page=1&limit=10");var json = await response.Content.ReadAsStringAsync();Console.WriteLine(json);import 'dart:convert';import 'package:http/http.dart' as http;
const userId = 'user_12345';
final response = await http.get( Uri.parse('https://api.gamifyhost.com/v1/users/$userId/plays?page=1&limit=10'), headers: {'X-API-Key': 'pk_live_your_public_key'},);
final data = jsonDecode(response.body);for (final play in data['data']) { print('${play['gameType']} — ${play['rewardLabel']}');}Response
Section titled “Response”Status: 200 OK
{ "message": "User plays retrieved", "code": 200, "status": "success", "data": [ { "playId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "gameType": "NEON_WHEEL", "pointsSpent": 100, "rewardTier": "rare", "rewardType": "cashback", "rewardValue": 50, "rewardLabel": "$0.50 cashback", "outcome": { "winningSegment": 3, "spinAngle": 247.5 }, "playedAt": "2025-07-15T10:30:00Z" } ], "meta": { "page": 1, "limit": 10, "total": 42, "totalPages": 5 }}Response Fields
Section titled “Response Fields”| Field | Type | Description |
|---|---|---|
playId | uuid | Unique play record ID |
gameType | string | Game type played |
pointsSpent | integer | Points deducted |
rewardTier | string | epic, rare, or common |
rewardType | string | cashback, xp, points, item, or special |
rewardValue | integer | Numeric reward value |
rewardLabel | string | Human-readable reward label |
outcome | object | Game-specific result data |
playedAt | datetime | ISO 8601 timestamp |
Errors
Section titled “Errors”| Code | Message |
|---|---|
404 | User not found |