Game events (Activity)
SavageTech can react to “game events” that happen in your product. These are simple server-to-server calls you send to the API so the system can:
- Progress mission slots automatically (e.g. “place 10 bets”, “make a deposit”)
- Drive progression systems that depend on player activity
This page covers the two most common activity events:
- Bet placed (
betPlaced) - Deposit made (
depositMade)
How to think about activity events
Authentication
Send vendor (app) credentials as headers:
x-client-idx-client-secret
Event: betPlaced
Use this when the player places a bet/spin/round in your game.
- Method:
POST - Path:
/api/v1/activity/betPlaced
Body
{
"playerId": "player-123",
"amount": 1.25,
"currency": "usd",
"gameId": "slots",
"payout": 0,
"outcome": "loss",
"additionalData": {
"roundId": "r-001",
"table": "A"
},
"activityRequestId": "evt_01H..."
}
cURL
curl -X POST "$SAVAGE_API_BASE_URL/api/v1/activity/betPlaced" \
-H "content-type: application/json" \
-H "x-client-id: $SAVAGE_X_CLIENT_ID" \
-H "x-client-secret: $SAVAGE_X_CLIENT_SECRET" \
-d '{
"playerId": "player-123",
"amount": 1.25,
"currency": "usd",
"gameId": "slots",
"payout": 0,
"outcome": "loss",
"additionalData": { "roundId": "r-001" },
"activityRequestId": "evt_round_r-001"
}'
What this event does inside SavageTech
- Progresses missions that track bet activity (qualifiers can check amount, gameId, and additionalData)
- Feeds into combat/progression systems that derive gameplay from bet activity (vendor-configurable)
Event: depositMade
Use this when the player deposits funds (or completes a “deposit-like” wallet action you want to count).
- Method:
POST - Path:
/api/v1/activity/depositMade
Body
{
"playerId": "player-123",
"amount": 25,
"currency": "usd",
"additionalData": {
"provider": "stripe",
"depositId": "dep_123"
},
"activityRequestId": "evt_01H..."
}
cURL
curl -X POST "$SAVAGE_API_BASE_URL/api/v1/activity/depositMade" \
-H "content-type: application/json" \
-H "x-client-id: $SAVAGE_X_CLIENT_ID" \
-H "x-client-secret: $SAVAGE_X_CLIENT_SECRET" \
-d '{
"playerId": "player-123",
"amount": 25,
"currency": "usd",
"additionalData": { "depositId": "dep_123" },
"activityRequestId": "evt_deposit_dep_123"
}'
What this event does inside SavageTech
- Progresses missions that track deposit activity (and can use qualifiers like amount/additionalData)
Best practices
- Use
activityRequestIdfor idempotency and traceability: send a stable event id from your system (depositId,roundId, etc.). - Keep
additionalDatasmall and structured: only include fields you plan to use for mission qualifiers/debugging. - Use microbets for high-frequency slot spins: if you have thousands of spins/minute, see Microbets aggregation.