Docs/API Reference/Players API

Players API

Manage player profiles, attributes, and segments via the Players API.

12 min read

Overview

The Players API allows you to create and manage player profiles, track sessions and purchases, and access player data.

EndpointMethodDescription
/players/playersPOSTRegister/update player
/players/players/{id}GETGet player by ID
/players/players/external/{external_id}GETGet player by external ID
/players/players/{id}PATCHUpdate player attributes
/players/players/{id}/sessionPOSTRecord session
/players/players/{id}/purchasePOSTRecord purchase
/players/players/{id}/lifecycleGETGet player lifecycle
/players/players/{id}/churn-riskGETGet churn risk

Register Player

Creates a new player or updates an existing one based on external_id.

POST /v1/players/players
bash
curl -X POST class="code-string">"https:class="code-commentclass="code-string">">//api.ilara.ai/v1/players/players" \
-H class="code-string">"X-API-Key: pk_live_xxx" \
-H class="code-string">"Content-Type: application/json" \
-d '{
class="code-string">"external_id": class="code-string">"player_123",
class="code-string">"device_id": class="code-string">"device_abc",
class="code-string">"email": class="code-string">"[email protected]",
class="code-string">"attributes": {
class="code-string">"level": 45,
class="code-string">"country": class="code-string">"US",
class="code-string">"language": class="code-string">"en",
class="code-string">"is_vip": true
}
}'

Parameters

ParameterTypeRequiredDescription
external_idstringYesYour unique player identifier
device_idstringNoDevice identifier
emailstringNoPlayer email (for campaigns)
attributesobjectNoCustom player attributes

Response

Player Response
json
{
class="code-string">"success": true,
class="code-string">"data": {
class="code-string">"id": class="code-string">"550e8400-e29b-41d4-a716-446655440000",
class="code-string">"external_id": class="code-string">"player_123",
class="code-string">"device_id": class="code-string">"device_abc",
class="code-string">"email": class="code-string">"[email protected]",
class="code-string">"lifecycle_stage": class="code-string">"active",
class="code-string">"session_count": 12,
class="code-string">"total_revenue": 49.99,
class="code-string">"is_payer": true,
class="code-string">"first_seen_at": class="code-string">"2025-01-01T00:00:00Z",
class="code-string">"last_seen_at": class="code-string">"2025-01-25T14:30:00Z",
class="code-string">"attributes": {
class="code-string">"level": 45,
class="code-string">"country": class="code-string">"US",
class="code-string">"language": class="code-string">"en",
class="code-string">"is_vip": true
}
}
}

Get Player

GET /v1/players/players/{id}
bash
curl -X GET class="code-string">"https:class="code-commentclass="code-string">">//api.ilara.ai/v1/players/players/550e8400-e29b-41d4-a716-446655440000" \
-H class="code-string">"X-API-Key: pk_live_xxx"
Lookup by External ID
You can also look up by external_id using the dedicated endpoint: /players/players/external/{external_id}
GET /v1/players/players/external/{external_id}
bash
curl -X GET class="code-string">"https:class="code-commentclass="code-string">">//api.ilara.ai/v1/players/players/external/player_123" \
-H class="code-string">"X-API-Key: pk_live_xxx"

Update Player

Update player attributes for an existing player.

PATCH /v1/players/players/{id}
bash
curl -X PATCH class="code-string">"https:class="code-commentclass="code-string">">//api.ilara.ai/v1/players/players/550e8400-e29b-41d4-a716-446655440000" \
-H class="code-string">"X-API-Key: pk_live_xxx" \
-H class="code-string">"Content-Type: application/json" \
-d '{
class="code-string">"email": class="code-string">"[email protected]",
class="code-string">"attributes": {
class="code-string">"level": 50,
class="code-string">"is_vip": true
}
}'

Record Session

POST /v1/players/players/{id}/session
bash
curl -X POST class="code-string">"https:class="code-commentclass="code-string">">//api.ilara.ai/v1/players/players/550e8400-e29b-41d4-a716-446655440000/session" \
-H class="code-string">"X-API-Key: pk_live_xxx" \
-H class="code-string">"Content-Type: application/json" \
-d '{
class="code-string">"session_id": class="code-string">"session_abc123",
class="code-string">"duration_seconds": 1800,
class="code-string">"start_time": class="code-string">"2025-01-25T14:00:00Z",
class="code-string">"end_time": class="code-string">"2025-01-25T14:30:00Z"
}'

Record Purchase

Record a player purchase and update monetization metrics. The purchase amount is passed as a query parameter.

POST /v1/players/players/{id}/purchase?amount={amount}
bash
curl -X POST class="code-string">"https:class="code-commentclass="code-string">">//api.ilara.ai/v1/players/players/550e8400-e29b-41d4-a716-446655440000/purchase?amount=9.99" \
-H class="code-string">"X-API-Key: pk_live_xxx"

Query Parameters

ParameterTypeRequiredDescription
amountfloatYesPurchase amount (must be greater than 0)

Get Churn Risk

GET /v1/players/players/{id}/churn-risk
bash
curl -X GET class="code-string">"https:class="code-commentclass="code-string">">//api.ilara.ai/v1/players/players/550e8400-e29b-41d4-a716-446655440000/churn-risk" \
-H class="code-string">"X-API-Key: sk_live_xxx"
Churn Risk Response
json
{
class="code-string">"success": true,
class="code-string">"data": {
class="code-string">"player_id": class="code-string">"550e8400-e29b-41d4-a716-446655440000",
class="code-string">"risk_score": 0.72,
class="code-string">"risk_level": class="code-string">"high",
class="code-string">"factors": [
{
class="code-string">"factor": class="code-string">"session_decline",
class="code-string">"description": class="code-string">"Sessions dropped 65% over 14 days",
class="code-string">"contribution": 0.35
},
{
class="code-string">"factor": class="code-string">"playtime_decline",
class="code-string">"description": class="code-string">"Session length dropped from 25min to 8min",
class="code-string">"contribution": 0.22
}
],
class="code-string">"prediction_date": class="code-string">"2025-01-25T00:00:00Z",
class="code-string">"confidence": 0.85
}
}

Get Player Lifecycle

Get a player's current lifecycle stage and activity summary.

GET /v1/players/players/{id}/lifecycle
bash
curl -X GET class="code-string">"https:class="code-commentclass="code-string">">//api.ilara.ai/v1/players/players/550e8400-e29b-41d4-a716-446655440000/lifecycle" \
-H class="code-string">"X-API-Key: pk_live_xxx"
Lifecycle Response
json
{
class="code-string">"success": true,
class="code-string">"data": {
class="code-string">"player_id": class="code-string">"550e8400-e29b-41d4-a716-446655440000",
class="code-string">"lifecycle_stage": class="code-string">"active",
class="code-string">"lifecycle_changed_at": class="code-string">"2025-01-20T10:00:00+00:00",
class="code-string">"first_seen_at": class="code-string">"2025-01-01T00:00:00+00:00",
class="code-string">"last_seen_at": class="code-string">"2025-01-25T14:30:00+00:00",
class="code-string">"session_count": 12,
class="code-string">"total_playtime_seconds": 54000
}
}

Error Responses

StatusCodeDescription
400VALIDATION_ERRORInvalid request data
401UNAUTHORIZEDInvalid API key
404PLAYER_NOT_FOUNDPlayer does not exist
409DUPLICATE_PLAYERPlayer with external_id exists

Next Steps