matchPredictions permission.Content-Type: application/json required (415 UNSUPPORTED_MEDIA_TYPE otherwise). items length 1-100 inclusive; 0 → 400 EMPTY_ITEMS, 101+ → 400 TOO_MANY_ITEMS. Duplicate matchPredictionId in the same request → 400 DUPLICATE_ITEM_ID.Idempotency-Key header required. Same key + same body returns original 202 with same jobId. Same key + different body → 409 IDEMPOTENCY_KEY_CONFLICT.operationId (mpbu_...), statusUrl, resultsUrl. Poll status endpoint until terminal state (completed, completed_with_errors, or failed).MATCH_PREDICTION_NOT_FOUND per-item on the results endpoint — no existence leak.RATE_LIMITED with Retry-After header.MATCH_PREDICTION_FROZEN while ops has frozen the API.curl --location 'https://adss-uat-integration.returning.ai/apis/v1/match-predictions/bulk-updates' \
--header 'Idempotency-Key: 01HXYZABCDEFG1234567890' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"items": [
{
"matchPredictionId": "mp_01abc",
"version": 3,
"changes": {
"lockAt": "2026-08-08T09:59:00.000Z",
"kickoffAt": "2026-08-08T10:00:00.000Z"
}
},
{
"matchPredictionId": "mp_02abc",
"version": 1,
"changes": {
"title": "Updated fixture title"
}
}
]
}'{
"meta": {
"status": "success",
"statusCode": 202,
"code": "MATCH_PREDICTION_BULK_UPDATE_ACCEPTED",
"requestId": "req_01abc",
"timestamp": "2026-08-07T12:00:00.000Z"
},
"message": "Bulk update job accepted.",
"data": {
"operationId": "mpbu_01abc",
"type": "bulk_update",
"status": "queued",
"submitted": 2,
"statusUrl": "/v1/match-predictions/bulk-jobs/mpbu_01abc",
"resultsUrl": "/v1/match-predictions/bulk-jobs/mpbu_01abc/results"
}
}