Override backfill state (server-authoritative)
curl --request PATCH \
--url https://api.computeflow.cloud/api/v3/servers/{instance_id}/backfill \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"accepting": true,
"skillBand": {
"field": "<string>",
"min": 123,
"max": 123
}
}
'import requests
url = "https://api.computeflow.cloud/api/v3/servers/{instance_id}/backfill"
payload = {
"accepting": True,
"skillBand": {
"field": "<string>",
"min": 123,
"max": 123
}
}
headers = {
"api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({accepting: true, skillBand: {field: '<string>', min: 123, max: 123}})
};
fetch('https://api.computeflow.cloud/api/v3/servers/{instance_id}/backfill', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.computeflow.cloud/api/v3/servers/{instance_id}/backfill",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'accepting' => true,
'skillBand' => [
'field' => '<string>',
'min' => 123,
'max' => 123
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.computeflow.cloud/api/v3/servers/{instance_id}/backfill"
payload := strings.NewReader("{\n \"accepting\": true,\n \"skillBand\": {\n \"field\": \"<string>\",\n \"min\": 123,\n \"max\": 123\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.computeflow.cloud/api/v3/servers/{instance_id}/backfill")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"accepting\": true,\n \"skillBand\": {\n \"field\": \"<string>\",\n \"min\": 123,\n \"max\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.computeflow.cloud/api/v3/servers/{instance_id}/backfill")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accepting\": true,\n \"skillBand\": {\n \"field\": \"<string>\",\n \"min\": 123,\n \"max\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"match_id": "<string>",
"instance_id": "<string>",
"status": "in_game",
"backfill_open": true,
"backfill_deadline": "2023-11-07T05:31:56Z",
"skill_band": {
"field": "<string>",
"min": 123,
"max": 123
},
"roster_version": 123
}{
"error": "<string>",
"status": 123,
"detail": "<string>"
}Servers
Override backfill state (server-authoritative)
Lets an advanced game server take control of its match’s backfill. Set accepting to open or close backfill joiners, and optionally replace the skillBand that gates joiners.
This is an optional override — the engine manages backfill automatically for modes with backfill enabled. Use this only when the game server has better knowledge of when it can accept joiners (e.g., between rounds).
Requires a server API key (pf_...).
PATCH
/
api
/
v3
/
servers
/
{instance_id}
/
backfill
Override backfill state (server-authoritative)
curl --request PATCH \
--url https://api.computeflow.cloud/api/v3/servers/{instance_id}/backfill \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"accepting": true,
"skillBand": {
"field": "<string>",
"min": 123,
"max": 123
}
}
'import requests
url = "https://api.computeflow.cloud/api/v3/servers/{instance_id}/backfill"
payload = {
"accepting": True,
"skillBand": {
"field": "<string>",
"min": 123,
"max": 123
}
}
headers = {
"api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({accepting: true, skillBand: {field: '<string>', min: 123, max: 123}})
};
fetch('https://api.computeflow.cloud/api/v3/servers/{instance_id}/backfill', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.computeflow.cloud/api/v3/servers/{instance_id}/backfill",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'accepting' => true,
'skillBand' => [
'field' => '<string>',
'min' => 123,
'max' => 123
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.computeflow.cloud/api/v3/servers/{instance_id}/backfill"
payload := strings.NewReader("{\n \"accepting\": true,\n \"skillBand\": {\n \"field\": \"<string>\",\n \"min\": 123,\n \"max\": 123\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.computeflow.cloud/api/v3/servers/{instance_id}/backfill")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"accepting\": true,\n \"skillBand\": {\n \"field\": \"<string>\",\n \"min\": 123,\n \"max\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.computeflow.cloud/api/v3/servers/{instance_id}/backfill")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accepting\": true,\n \"skillBand\": {\n \"field\": \"<string>\",\n \"min\": 123,\n \"max\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"match_id": "<string>",
"instance_id": "<string>",
"status": "in_game",
"backfill_open": true,
"backfill_deadline": "2023-11-07T05:31:56Z",
"skill_band": {
"field": "<string>",
"min": 123,
"max": 123
},
"roster_version": 123
}{
"error": "<string>",
"status": 123,
"detail": "<string>"
}Body
application/json
Server-authoritative override of a match's backfill state.
Response
Backfill state updated. The roster mirror and roster_version reflect the change.
Result of a server-authoritative backfill state change.