Skip to main content

Pushing casino ratings

A rating is a record of how a player played: where they sat, what they bet, what they bought in with, what the house won, and over what period. eConnect uses ratings for the Ratings grid, player appraisals, behaviour reports, and the dashboards and alerts built on them.

If your table-management or player-tracking system is the system of record for ratings, push them here and the whole module works on your data.

POST /api/v2/casino-connect/plugins/{pluginInstalledId}/ratings

The body is an array, so this is the batch endpoint as well as the single one.

The payload​

[
{
"utcDataTimeStamp": "2026-10-02T21:14:05Z",
"utcRatingStarted": "2026-10-02T20:05:00Z",
"utcRatingEnded": "2026-10-02T21:12:30Z",
"locationId": "PIT-3",
"locationName": "High Limit",
"gamingDeviceId": "BJ-114",
"gamingDeviceName": "Blackjack 114",
"seatNumber": 3,
"patronId": "P-99120",
"patronName": "Example Patron",
"dealerId": "E-2210",
"dealerName": "A. Dealer",
"employeeId": "E-4471",
"employeeName": "A. Supervisor",
"transactionId": "RTG-2026-10-02-114-3",
"averageBet": 75.0,
"bet": 1500.0,
"cashBuyIn": 1000.0,
"chipBuyIn": 500.0,
"casinoWin": 220.0,
"theorWin": 61.5,
"playCount": 42,
"walkedWith": 1280.0,
"isVoided": false
}
]

Fields that carry the weight​

FieldWhy it matters
utcRatingStarted / utcRatingEndedThe period the rating covers. Everything time-based — shift reports, appraisals, the DVR links from a rating row — works from these
gamingDeviceIdMust match the device as eConnect knows it, or the rating cannot be associated with a camera
locationIdThe pit or area; drives the grouping in reports
patronIdYour identifier for the player. Keep it stable: it is how a player's history joins up
averageBet, bet, casinoWin, theorWinThe figures appraisals and behaviour reports are built on
transactionIdYour own id for the rating. Carry one — it is what makes a retry traceable
isVoidedSend the void rather than deleting: the record stays, marked

Every field is optional at the wire level, which is not permission to send a handful: a rating with no times and no figures will be stored and will tell nobody anything.

Matching devices and locations​

gamingDeviceId and locationId have to line up with the entities eConnect holds, or the rating arrives orphaned — visible in the grid, unreachable from a camera. Read the entities first:

GET /api/v2/casino-connect/plugins/{pluginInstalledId}/entities

Map your ids to eConnect's once, at start-up, and fail loudly if a device you are about to send is not in the list. That one check prevents the most common integration fault.

Sending it​

curl -X POST \
"https://your-server/api/v2/casino-connect/plugins/$CASINO_ID/ratings" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d @ratings-batch.json
var ratings = new[]
{
new
{
utcDataTimeStamp = DateTime.UtcNow,
utcRatingStarted = start,
utcRatingEnded = end,
locationId = "PIT-3",
gamingDeviceId = "BJ-114",
seatNumber = 3,
patronId = "P-99120",
averageBet = 75.0,
bet = 1500.0,
casinoWin = 220.0,
playCount = 42,
transactionId = $"RTG-{end:yyyyMMdd-HHmmss}-114-3",
},
};

var response = await http.PostAsJsonAsync($"casino-connect/plugins/{casinoId}/ratings", ratings);
response.EnsureSuccessStatusCode();

// The response is the ids eConnect assigned, in the order you sent them.
var ids = await response.Content.ReadFromJsonAsync<List<int>>();
import requests

resp = requests.post(
f"{BASE}/casino-connect/plugins/{casino_id}/ratings",
headers={"Authorization": f"Bearer {access_token}"},
json=[rating], # a list, even for one
timeout=30,
)
resp.raise_for_status()
ids = resp.json()
MethodPathWhat it does
POSTcasino-connect/plugins/{id}/ratingsAdd ratings (array)
POSTcasino-connect/plugins/{id}/journal-rating-addThe single-record form
GETcasino-connect/plugins/{id}/ratingsQuery what is there
GETcasino-connect/plugins/{id}/entitiesDevices and locations to map against
POSTcasino-connect/plugins/{id}/bet-sessions/recalculateRecalculate totals after a correction

The full list is on the Casino reference page.

Permissions​

The service account needs the CasinoConnect* keys for the operations it performs — adding ratings needs the add key, reading them back needs the view key — and the casino plugin instance must be within its logical group. Grant the minimum: an ingress account that only pushes does not need to read. See the Permission Keys reference.

What operators see​

A pushed rating is indistinguishable from one eConnect collected: it appears in Ratings, feeds player appraisals and the behaviour report, and — where the device is associated with a camera — the row opens the footage for the period it covers.