Get per-game academic outcomes (server-to-server)
Aggregated academic-outcome funnel for one game, computed from the durable outcome store. Authenticated with the pre-shared outcomes API key.
Path Parameters
- Type: stringgame
Id min length:1max length:64required
Responses
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
Request Example for get/outcomes/v1/games/{gameId}
curl https://api-integration.trashcat.rp.devfactory.com/outcomes/v1/games/trashcat \
--header 'X-Api-Key: YOUR_SECRET_TOKEN'
{
"gameId": "string",
"computedAt": "2026-09-01T14:22:20.122Z",
"playersExcluded": 0,
"population": {
"programAffiliated": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"cold": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"unclassified": {
"value": null,
"availability": "measured",
"blockedByUrl": null
}
},
"startingLineYield": {
"windowDays": 1,
"bars": {
"confirmAtOrAbove": 0,
"reopenAtOrBelow": 0
},
"cold": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"programAffiliated": {
"value": null,
"availability": "measured",
"blockedByUrl": null
}
},
"verdictContradiction": {
"rollingPlacements": 1,
"placementsInWindow": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"barRate": 0,
"exposures": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"misses": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"rate": {
"value": null,
"availability": "measured",
"blockedByUrl": null
}
},
"cumulative": [
{
"skillId": "string",
"skillDisplayName": "string",
"skillGroup": "string",
"playersStarted": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"placementStarted": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"placementCompleted": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"placementYieldRate": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"enteredWithMastery": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"denominator": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"reachedMastery": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"masteryAchieved": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"pending": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"inactive": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"masteredInThisGame": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"masteredElsewhere": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"successRate": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"masteryEarned": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"masteryFromPlacement": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"timeToMastery": {
"calendarDays": {
"availability": "measured",
"blockedByUrl": null,
"average": null,
"percentiles": {
"p10": 1,
"p25": 1,
"p50": 1,
"p75": 1,
"p90": 1
},
"histogram": [
{
"lowerBound": 1,
"upperBound": null,
"playerCount": 0
}
]
},
"playHours": {
"availability": "measured",
"blockedByUrl": null,
"average": null,
"percentiles": {
"p10": 1,
"p25": 1,
"p50": 1,
"p75": 1,
"p90": 1
},
"histogram": [
{
"lowerBound": 1,
"upperBound": null,
"playerCount": 0
}
]
}
}
}
],
"cohorts": [
{
"isoWeek": "string",
"cohortStartDate": "string",
"skills": [
{
"skillId": "string",
"skillDisplayName": "string",
"skillGroup": "string",
"playersStarted": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"placementStarted": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"placementCompleted": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"placementYieldRate": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"enteredWithMastery": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"denominator": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"reachedMastery": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"masteryAchieved": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"pending": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"inactive": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"masteredInThisGame": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"masteredElsewhere": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"successRate": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"masteryEarned": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"masteryFromPlacement": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"timeToMastery": {
"calendarDays": {
"availability": "measured",
"blockedByUrl": null,
"average": null,
"percentiles": {
"p10": 1,
"p25": 1,
"p50": 1,
"p75": 1,
"p90": 1
},
"histogram": [
{
"lowerBound": 1,
"upperBound": null,
"playerCount": 0
}
]
},
"playHours": {
"availability": "measured",
"blockedByUrl": null,
"average": null,
"percentiles": {
"p10": 1,
"p25": 1,
"p50": 1,
"p75": 1,
"p90": 1
},
"histogram": [
{
"lowerBound": 1,
"upperBound": null,
"playerCount": 0
}
]
}
}
}
]
}
],
"courses": [
{
"courseId": "string",
"courseDisplayName": "string",
"enteredWithMastery": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"reachedMastery": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"inactiveBeforeAssessment": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"pendingAssessment": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"inactiveWhileLearning": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"pendingLearning": {
"value": null,
"availability": "measured",
"blockedByUrl": null
},
"timeToMastery": {
"calendarDays": {
"availability": "measured",
"blockedByUrl": null,
"average": null,
"percentiles": {
"p10": 1,
"p25": 1,
"p50": 1,
"p75": 1,
"p90": 1
},
"histogram": [
{
"lowerBound": 1,
"upperBound": null,
"playerCount": 0
}
]
},
"playHours": {
"availability": "measured",
"blockedByUrl": null,
"average": null,
"percentiles": {
"p10": 1,
"p25": 1,
"p50": 1,
"p75": 1,
"p90": 1
},
"histogram": [
{
"lowerBound": 1,
"upperBound": null,
"playerCount": 0
}
]
}
},
"effortBeforeInactivity": {
"calendarDays": {
"availability": "measured",
"blockedByUrl": null,
"average": null,
"percentiles": {
"p10": 1,
"p25": 1,
"p50": 1,
"p75": 1,
"p90": 1
},
"histogram": [
{
"lowerBound": 1,
"upperBound": null,
"playerCount": 0
}
]
},
"playHours": {
"availability": "measured",
"blockedByUrl": null,
"average": null,
"percentiles": {
"p10": 1,
"p25": 1,
"p50": 1,
"p75": 1,
"p90": 1
},
"histogram": [
{
"lowerBound": 1,
"upperBound": null,
"playerCount": 0
}
]
}
}
}
],
"overallTimeToMastery": {
"calendarDays": {
"availability": "measured",
"blockedByUrl": null,
"average": null,
"percentiles": {
"p10": 1,
"p25": 1,
"p50": 1,
"p75": 1,
"p90": 1
},
"histogram": [
{
"lowerBound": 1,
"upperBound": null,
"playerCount": 0
}
]
},
"playHours": {
"availability": "measured",
"blockedByUrl": null,
"average": null,
"percentiles": {
"p10": 1,
"p25": 1,
"p50": 1,
"p75": 1,
"p90": 1
},
"histogram": [
{
"lowerBound": 1,
"upperBound": null,
"playerCount": 0
}
]
}
},
"overallEffortBeforeInactivity": {
"calendarDays": {
"availability": "measured",
"blockedByUrl": null,
"average": null,
"percentiles": {
"p10": 1,
"p25": 1,
"p50": 1,
"p75": 1,
"p90": 1
},
"histogram": [
{
"lowerBound": 1,
"upperBound": null,
"playerCount": 0
}
]
},
"playHours": {
"availability": "measured",
"blockedByUrl": null,
"average": null,
"percentiles": {
"p10": 1,
"p25": 1,
"p50": 1,
"p75": 1,
"p90": 1
},
"histogram": [
{
"lowerBound": 1,
"upperBound": null,
"playerCount": 0
}
]
}
}
}