Skip to main content

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-id
  • x-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 activityRequestId for idempotency and traceability: send a stable event id from your system (depositId, roundId, etc.).
  • Keep additionalData small 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.