Add Shared Group Members
Adds users to the set of those able to update both the shared data, as well as the set of users in the group. Only users in the group (and the server) can add new members. Shared Groups are designed for sharing data between a very small number of players, please see our guide: https://learn.microsoft.com/gaming/playfab/features/social/groups/using-shared-group-data
Error codes
This operation may return the following PlayFab errors:
| Error | Code |
|---|---|
| InvalidSharedGroupId | 1088 |
| ProductDisabledForTitle | 1609 |
| UserAlreadyAdded | 1235 |
POST
/
Server
/
AddSharedGroupMembers
Add Shared Group Members
curl --request POST \
--url https://{titleId}.playfabapi.com/Server/AddSharedGroupMembers \
--header 'Content-Type: application/json' \
--header 'X-SecretKey: <api-key>' \
--data '
{
"SharedGroupId": "Clan Data",
"PlayFabIds": [
"D984A64B832",
"F74A523E1562"
]
}
'import requests
url = "https://{titleId}.playfabapi.com/Server/AddSharedGroupMembers"
payload = {
"SharedGroupId": "Clan Data",
"PlayFabIds": ["D984A64B832", "F74A523E1562"]
}
headers = {
"X-SecretKey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-SecretKey': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({SharedGroupId: 'Clan Data', PlayFabIds: ['D984A64B832', 'F74A523E1562']})
};
fetch('https://{titleId}.playfabapi.com/Server/AddSharedGroupMembers', 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://{titleId}.playfabapi.com/Server/AddSharedGroupMembers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'SharedGroupId' => 'Clan Data',
'PlayFabIds' => [
'D984A64B832',
'F74A523E1562'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-SecretKey: <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://{titleId}.playfabapi.com/Server/AddSharedGroupMembers"
payload := strings.NewReader("{\n \"SharedGroupId\": \"Clan Data\",\n \"PlayFabIds\": [\n \"D984A64B832\",\n \"F74A523E1562\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-SecretKey", "<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.post("https://{titleId}.playfabapi.com/Server/AddSharedGroupMembers")
.header("X-SecretKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"SharedGroupId\": \"Clan Data\",\n \"PlayFabIds\": [\n \"D984A64B832\",\n \"F74A523E1562\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Server/AddSharedGroupMembers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-SecretKey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"SharedGroupId\": \"Clan Data\",\n \"PlayFabIds\": [\n \"D984A64B832\",\n \"F74A523E1562\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"status": "<string>",
"data": {}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}Authorizations
This API requires a title secret key, available to title admins, from PlayFab Game Manager.
Body
application/json
Last modified on October 1, 2026
Was this page helpful?
⌘I
Add Shared Group Members
curl --request POST \
--url https://{titleId}.playfabapi.com/Server/AddSharedGroupMembers \
--header 'Content-Type: application/json' \
--header 'X-SecretKey: <api-key>' \
--data '
{
"SharedGroupId": "Clan Data",
"PlayFabIds": [
"D984A64B832",
"F74A523E1562"
]
}
'import requests
url = "https://{titleId}.playfabapi.com/Server/AddSharedGroupMembers"
payload = {
"SharedGroupId": "Clan Data",
"PlayFabIds": ["D984A64B832", "F74A523E1562"]
}
headers = {
"X-SecretKey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-SecretKey': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({SharedGroupId: 'Clan Data', PlayFabIds: ['D984A64B832', 'F74A523E1562']})
};
fetch('https://{titleId}.playfabapi.com/Server/AddSharedGroupMembers', 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://{titleId}.playfabapi.com/Server/AddSharedGroupMembers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'SharedGroupId' => 'Clan Data',
'PlayFabIds' => [
'D984A64B832',
'F74A523E1562'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-SecretKey: <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://{titleId}.playfabapi.com/Server/AddSharedGroupMembers"
payload := strings.NewReader("{\n \"SharedGroupId\": \"Clan Data\",\n \"PlayFabIds\": [\n \"D984A64B832\",\n \"F74A523E1562\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-SecretKey", "<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.post("https://{titleId}.playfabapi.com/Server/AddSharedGroupMembers")
.header("X-SecretKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"SharedGroupId\": \"Clan Data\",\n \"PlayFabIds\": [\n \"D984A64B832\",\n \"F74A523E1562\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Server/AddSharedGroupMembers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-SecretKey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"SharedGroupId\": \"Clan Data\",\n \"PlayFabIds\": [\n \"D984A64B832\",\n \"F74A523E1562\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"status": "<string>",
"data": {}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}