Get settlement results
Read the outcome of a settlement or void: the totals and each trader's prediction and payout or refund, one page at a time.
- Method
- GET
- Path
https://api.returning.ai / v1/ match-predictions/ {matchPredictionId}/ results - Permission
- matchPredictions
- Retries
- Read-only; poll at the Retry-After interval
When to use this
- Poll after you settle or void a match until the work finishes.
- Reconcile the coins and XP each winner received against your own records.
- After a void, confirm which traders had their entry cost refunded.
Authentication#
- Header
Authorization: Bearer <API_KEY>- Permission
- matchPredictionsShown in the dashboard as “Match Prediction”
Use a Community API key with matchPredictions, shown in the dashboard as Match Prediction, and keep it on your server. The key decides the community: you only see and change match predictions in that community, and an ID from another community returns 404, the same as an unknown ID. Personal API keys are rejected with 403.
Behaviour#
api.returning.ai doesn't serve this route yet: requests return an empty 404. Ask Returning.AI before you build on it.
What you get depends on where the match is:
- Settling or voiding:
202withMATCH_PREDICTION_SETTLEMENT_IN_PROGRESSorMATCH_PREDICTION_VOID_IN_PROGRESS, progress counts, and aRetry-Afterheader of 5 seconds. - Settled:
200withMATCH_PREDICTION_RESULTS_RETRIEVED, the totals and each prediction. - Voided:
200withMATCH_PREDICTION_VOID_COMPLETED, refund totals and each prediction. - Settlement or void failed:
409 MATCH_PREDICTION_SETTLEMENT_FAILEDor409 MATCH_PREDICTION_VOID_FAILED. - Not settled or voided yet:
409 INVALID_LIFECYCLE_TRANSITION.
This read changes nothing. summary always covers the whole match; filters and paging apply only to participants.
Request#
Path parameters#
Rulemp_ and 24 hex characters
Eg"mp_66f000000000000000000801"
Query parameters#
true keeps right-result predictions, exact or not; false keeps wrong results.Ruletrue or false
Eg"true"
Rulecorrect_result, exact_score or missed
Eg"exact_score"
not_applicable keeps predictions with no entry cost.Rulepaid or not_applicable
Eg"paid"
RulePlatform user ID
Eg"3247779"
RulesubmittedAt (default), settledAt, outcome or payout.coins
Eg"submittedAt"
Ruleasc (default) or desc
Eg"asc"
RuleWhole number, 1 or more; default 1
Eg"1"
RuleDefault 20; max 100
Eg"50"
Headers#
curl --request GET \
--url 'https://api.returning.ai/v1/match-predictions/mp_66f000000000000000000801/results?winner=true&limit=50' \
--header 'Authorization: Bearer <API_KEY>'
Response#
The fields listed are for a settled match. A voided match returns a different shape:
summary:attemptsTouched(predictions processed),refunded,notApplicable(no entry cost to refund),failedandcoinsRefunded.- Each participant:
attemptId,userId,username,pick,calledScore,payoutStatus(refundedornot_applicable),outcome(alwaysrefunded),refundAmount,submittedAtandrefundedAt.
On a voided match winner and outcome filters are ignored.
Rulesuccess
RuleMATCH_PREDICTION_RESULTS_RETRIEVED (settled) or MATCH_PREDICTION_VOID_COMPLETED (voided)
X-Request-Id if you sent one, otherwise a generated req_... ID. Quote it when you contact support.0. Returned entry costs are counted in coinsPaid.mps_...).null if the account no longer exists.null if unknown.RuleteamA, draw or teamB
unclassified if it wasn't scored.Rulecorrect_result, exact_score, missed or unclassified
paid once the payout was made; not_applicable for a miss or a payout that failed.Rulepaid or not_applicable
0. A winner's entry cost is included in coins.true for correct_result and exact_score.{
"meta": {
"status": "success",
"statusCode": 200,
"code": "MATCH_PREDICTION_RESULTS_RETRIEVED",
"requestId": "req_66f00000000000000000000000000811",
"page": 1,
"limit": 50,
"total": 48
},
"message": "Match prediction results retrieved.",
"data": {
"summary": {
"fullTimeScore": {
"teamA": 2,
"teamB": 1
},
"predictionsTotal": 120,
"winnerCount": 48,
"correctResultCount": 40,
"exactScoreCount": 8,
"missedCount": 72,
"coinsPaid": 5600,
"xpPaid": 2800,
"entryCoinsReturned": 0,
"payoutFailureCount": 0,
"settledAt": "2026-10-10T21:05:00.000Z",
"operationId": "mps_66f00000000000000000000000000803"
},
"participants": [
{
"attemptId": "66f000000000000000000805",
"userId": 3247779,
"username": "sample_trader",
"pick": "teamA",
"calledScore": {
"teamA": 2,
"teamB": 1
},
"outcome": "exact_score",
"payoutStatus": "paid",
"entryCostPaid": 0,
"payout": {
"coins": 300,
"xp": 150,
"entryCoinsReturned": 0
},
"winner": true,
"submittedAt": "2026-10-05T12:00:00.000Z",
"settledAt": "2026-10-10T21:04:00.000Z"
}
]
}
}
Errors#
Every error carries its code in meta.code and the request's ID in meta.requestId. Validation errors list each problem in details, with a field, code and message. The API key checks (401, 403, 404 COMMUNITY_NOT_FOUND and 500 AUTHENTICATION_FAILED) return detail and solution instead. A 404 with an empty body means the route isn't available on api.returning.ai yet.
Fix the request05
MATCH_PREDICTION_VALIDATION_FAILEDFix the requestpage below 1, limit outside 1-100, winner other than true or false, an unknown outcome, payoutStatus, sort or order, or a userId that isn't a whole number. details names each one.READ_ONLY_FIELDFix the requestid or version, in the query. details names it. Remove it.AUTHENTICATION_REQUIREDFix the requestAuthorization: Bearer <API_KEY> with a current Community API key.API_KEY_PERMISSION_DENIEDFix the requestmatchPredictions, or it is a personal key. Use a Community API key and add Match Prediction in Settings > Integration > API Keys.Fix the data05
MATCH_PREDICTION_NOT_FOUNDFix the datamp_... ID from Create match prediction or List match predictions.COMMUNITY_NOT_FOUNDFix the dataINVALID_LIFECYCLE_TRANSITIONFix the dataMATCH_PREDICTION_SETTLEMENT_FAILEDFix the dataIdempotency-Key.MATCH_PREDICTION_VOID_FAILEDFix the dataIdempotency-Key.Retry with backoff04
RATE_LIMITEDRetry with backoffRetry-After, then retry.INTERNAL_ERRORRetry with backoffAUTHENTICATION_FAILEDRetry with backoffMATCH_PREDICTION_FROZENRetry with backoff{
"meta": {
"status": "error",
"statusCode": 404,
"code": "MATCH_PREDICTION_NOT_FOUND",
"requestId": "req_66f00000000000000000000000000811"
},
"message": "Match prediction not found."
}