List match predictions
List the match predictions in your community, filtered by status, fixture ID or text, one page at a time.
- Method
- GET
- Path
https://api.returning.ai / v1/ match-predictions - Permission
- matchPredictions
- Retries
- Read-only; exact retries are safe
When to use this
- Find the match prediction for one of your fixtures by its
externalReference. - Show which matches are open for predictions right now.
- Find matches that have locked and still need a result.
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.
This read changes nothing. It returns drafts too, and match predictions your team created in the dashboard. status is worked out from the clock when you ask, so a published match moves from scheduled to open to locked without any call. Filters combine, and status filters on that worked-out status.
kickoffFrom and kickoffTo currently match no match predictions. Until that changes, sort by kickoffAt and filter on your side. Matches with the same sort value come back in the order they were created.
Request#
Query parameters#
Ruledraft, scheduled, open, locked, settlement_in_progress, settled, settlement_failed, void_in_progress, voided or void_failed
Eg"open,locked"
Eg"provider-fixture-123"
RuleUp to 128 characters
Eg"New Zealand"
RuleISO 8601 in UTC ending in Z
Eg"2026-10-01T00:00:00.000Z"
RuleISO 8601 in UTC ending in Z; not before kickoffFrom
Eg"2026-10-31T23:59:59.000Z"
RulekickoffAt (default), createdAt, updatedAt or title
Eg"kickoffAt"
Ruleasc (default) or desc
Eg"asc"
RuleWhole number, 1 or more; default 1
Eg"1"
RuleDefault 20; max 100
Eg"20"
Headers#
curl --request GET \
--url 'https://api.returning.ai/v1/match-predictions?status=open,locked&limit=20' \
--header 'Authorization: Bearer <API_KEY>'
Response#
A 200 returns the page in data and the paging totals in meta.page, meta.limit and meta.total. settlement is always null in this list; read one match with Get match prediction for its settlement totals.
Rulesuccess
RuleMATCH_PREDICTIONS_LISTED
X-Request-Id if you sent one, otherwise a generated req_... ID. Quote it when you contact support.Rulemp_ and 24 hex characters
.000.Ruleregulation or extra_time
correctResult when the called score is also exact.true when predicting costs coins.0 when enabled is false.draft until published. Then scheduled before predictionStartAt, open while traders can predict and locked from lockAt, all worked out from the clock. The rest follow a settle or void.Ruledraft, scheduled, open, locked, settlement_in_progress, settled, settlement_failed, void_in_progress, voided or void_failed
true once published.true while the match is open and the time is between predictionStartAt and lockAt.null here. Read the match with Get match prediction for its settlement totals.{
"meta": {
"status": "success",
"statusCode": 200,
"code": "MATCH_PREDICTIONS_LISTED",
"requestId": "req_66f00000000000000000000000000811",
"page": 1,
"limit": 20,
"total": 1
},
"message": "Match predictions retrieved.",
"data": [
{
"id": "mp_66f000000000000000000801",
"title": "Australia vs New Zealand",
"teamA": {
"name": "Australia",
"imageUrl": "https://cdn.example.com/teams/australia.png"
},
"teamB": {
"name": "New Zealand",
"imageUrl": "https://cdn.example.com/teams/new-zealand.png"
},
"predictionStartAt": "2026-10-01T08:00:00.000Z",
"lockAt": "2026-10-10T18:55:00.000Z",
"kickoffAt": "2026-10-10T19:00:00.000Z",
"scoreBasis": "regulation",
"viewPermission": {
"roleIds": ["66f000000000000000000806"],
"userIds": []
},
"rewards": {
"correctResult": {
"coins": 100,
"xp": 50
},
"exactScoreBonus": {
"coins": 200,
"xp": 100
}
},
"entryCost": {
"enabled": false,
"coins": 0
},
"status": "open",
"isPublished": true,
"acceptingPredictions": true,
"attemptCount": 120,
"settlement": null,
"version": 3,
"createdAt": "2026-09-27T09:00:00.000Z",
"updatedAt": "2026-09-28T10:00:00.000Z",
"externalReference": "provider-fixture-123",
"description": "Predict the final score."
}
]
}
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, an unknown status (INVALID_STATUS), a time not in UTC ISO 8601, kickoffTo before kickoffFrom (KICKOFF_RANGE_INVALID), search over 128 characters, or an unknown sort or order. details names each one.READ_ONLY_FIELDFix the requestid, communityId 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 data01
COMMUNITY_NOT_FOUNDFix the dataRetry with backoff04
RATE_LIMITEDRetry with backoffRetry-After, then retry.INTERNAL_ERRORRetry with backoffAUTHENTICATION_FAILEDRetry with backoffMATCH_PREDICTION_FROZENRetry with backoff{
"meta": {
"status": "success",
"statusCode": 200,
"code": "MATCH_PREDICTIONS_LISTED",
"requestId": "req_66f00000000000000000000000000811",
"page": 1,
"limit": 20,
"total": 1
},
"message": "Match predictions retrieved.",
"data": [
{
"id": "mp_66f000000000000000000801",
"title": "Australia vs New Zealand",
"teamA": {
"name": "Australia",
"imageUrl": "https://cdn.example.com/teams/australia.png"
},
"teamB": {
"name": "New Zealand",
"imageUrl": "https://cdn.example.com/teams/new-zealand.png"
},
"predictionStartAt": "2026-10-01T08:00:00.000Z",
"lockAt": "2026-10-10T18:55:00.000Z",
"kickoffAt": "2026-10-10T19:00:00.000Z",
"scoreBasis": "regulation",
"viewPermission": {
"roleIds": ["66f000000000000000000806"],
"userIds": []
},
"rewards": {
"correctResult": {
"coins": 100,
"xp": 50
},
"exactScoreBonus": {
"coins": 200,
"xp": 100
}
},
"entryCost": {
"enabled": false,
"coins": 0
},
"status": "open",
"isPublished": true,
"acceptingPredictions": true,
"attemptCount": 120,
"settlement": null,
"version": 3,
"createdAt": "2026-09-27T09:00:00.000Z",
"updatedAt": "2026-09-28T10:00:00.000Z",
"externalReference": "provider-fixture-123",
"description": "Predict the final score."
}
]
}