Créer un segment
Creates a new player segment by defining the conditions on player properties. Also, create actions to target the player segments for a title.
Error codes
This operation may return the following PlayFab errors:
| Error | Code |
|---|---|
| InvalidSegment | 1242 |
| NameNotAvailable | 1058 |
| ProductDisabledForTitle | 1609 |
| SegmentManagementInvalidInput | 10005 |
| SegmentManagementInvalidSegmentId | 10004 |
| SegmentManagementInvalidSegmentName | 10006 |
| SegmentManagementNoExpressionTree | 10001 |
| SegmentManagementSegmentCountOverLimit | 10003 |
| SegmentManagementTriggerActionCountOverLimit | 10002 |
| UnknownError | 1039 |
POST
/
Admin
/
CreateSegment
Create Segment
curl --request POST \
--url https://{titleId}.playfabapi.com/Admin/CreateSegment \
--header 'Content-Type: application/json' \
--header 'X-SecretKey: <api-key>' \
--data '
{
"SegmentModel": {
"Name": "My user segment",
"SegmentOrDefinitions": [
{
"SegmentAndDefinitions": [
{
"AllPlayersFilter": {}
}
]
}
],
"EnteredSegmentActions": [
{
"BanPlayerAction": {
"BanHours": 2,
"ReasonForBan": "Not played for a year"
}
}
],
"LeftSegmentActions": [
{
"ExecuteAzureFunctionAction": {
"AzureFunction": "AzureFunction1",
"FunctionParameter": "{\"InputParam\": \"1\"}"
}
}
]
}
}
'import requests
url = "https://{titleId}.playfabapi.com/Admin/CreateSegment"
payload = { "SegmentModel": {
"Name": "My user segment",
"SegmentOrDefinitions": [{ "SegmentAndDefinitions": [{ "AllPlayersFilter": {} }] }],
"EnteredSegmentActions": [{ "BanPlayerAction": {
"BanHours": 2,
"ReasonForBan": "Not played for a year"
} }],
"LeftSegmentActions": [{ "ExecuteAzureFunctionAction": {
"AzureFunction": "AzureFunction1",
"FunctionParameter": "{\"InputParam\": \"1\"}"
} }]
} }
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({
SegmentModel: {
Name: 'My user segment',
SegmentOrDefinitions: [{SegmentAndDefinitions: [{AllPlayersFilter: {}}]}],
EnteredSegmentActions: [{BanPlayerAction: {BanHours: 2, ReasonForBan: 'Not played for a year'}}],
LeftSegmentActions: [
{
ExecuteAzureFunctionAction: {AzureFunction: 'AzureFunction1', FunctionParameter: '{"InputParam": "1"}'}
}
]
}
})
};
fetch('https://{titleId}.playfabapi.com/Admin/CreateSegment', 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/Admin/CreateSegment",
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([
'SegmentModel' => [
'Name' => 'My user segment',
'SegmentOrDefinitions' => [
[
'SegmentAndDefinitions' => [
[
'AllPlayersFilter' => [
]
]
]
]
],
'EnteredSegmentActions' => [
[
'BanPlayerAction' => [
'BanHours' => 2,
'ReasonForBan' => 'Not played for a year'
]
]
],
'LeftSegmentActions' => [
[
'ExecuteAzureFunctionAction' => [
'AzureFunction' => 'AzureFunction1',
'FunctionParameter' => '{"InputParam": "1"}'
]
]
]
]
]),
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/Admin/CreateSegment"
payload := strings.NewReader("{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\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/Admin/CreateSegment")
.header("X-SecretKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Admin/CreateSegment")
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 \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"status": "<string>",
"data": {
"ErrorMessage": "<string>",
"SegmentId": "<string>"
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}Autorisations
This API requires a title secret key, available to title admins, from PlayFab Game Manager.
Corps
application/json
Send all the segment details part of CreateSegmentRequest
Send all the segment details part of CreateSegmentRequest
Segment model with all of the segment properties data.
Show child attributes
Show child attributes
Dernière modification le 6 octobre 2026
Sujets connexes
Offres ciblées d'Economy V2Configuration des segmentsConfiguration des segments de joueursActions en bloc pour un segment de joueurs entierSegments de joueursCette page vous a-t-elle été utile ?
⌘I
Create Segment
curl --request POST \
--url https://{titleId}.playfabapi.com/Admin/CreateSegment \
--header 'Content-Type: application/json' \
--header 'X-SecretKey: <api-key>' \
--data '
{
"SegmentModel": {
"Name": "My user segment",
"SegmentOrDefinitions": [
{
"SegmentAndDefinitions": [
{
"AllPlayersFilter": {}
}
]
}
],
"EnteredSegmentActions": [
{
"BanPlayerAction": {
"BanHours": 2,
"ReasonForBan": "Not played for a year"
}
}
],
"LeftSegmentActions": [
{
"ExecuteAzureFunctionAction": {
"AzureFunction": "AzureFunction1",
"FunctionParameter": "{\"InputParam\": \"1\"}"
}
}
]
}
}
'import requests
url = "https://{titleId}.playfabapi.com/Admin/CreateSegment"
payload = { "SegmentModel": {
"Name": "My user segment",
"SegmentOrDefinitions": [{ "SegmentAndDefinitions": [{ "AllPlayersFilter": {} }] }],
"EnteredSegmentActions": [{ "BanPlayerAction": {
"BanHours": 2,
"ReasonForBan": "Not played for a year"
} }],
"LeftSegmentActions": [{ "ExecuteAzureFunctionAction": {
"AzureFunction": "AzureFunction1",
"FunctionParameter": "{\"InputParam\": \"1\"}"
} }]
} }
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({
SegmentModel: {
Name: 'My user segment',
SegmentOrDefinitions: [{SegmentAndDefinitions: [{AllPlayersFilter: {}}]}],
EnteredSegmentActions: [{BanPlayerAction: {BanHours: 2, ReasonForBan: 'Not played for a year'}}],
LeftSegmentActions: [
{
ExecuteAzureFunctionAction: {AzureFunction: 'AzureFunction1', FunctionParameter: '{"InputParam": "1"}'}
}
]
}
})
};
fetch('https://{titleId}.playfabapi.com/Admin/CreateSegment', 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/Admin/CreateSegment",
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([
'SegmentModel' => [
'Name' => 'My user segment',
'SegmentOrDefinitions' => [
[
'SegmentAndDefinitions' => [
[
'AllPlayersFilter' => [
]
]
]
]
],
'EnteredSegmentActions' => [
[
'BanPlayerAction' => [
'BanHours' => 2,
'ReasonForBan' => 'Not played for a year'
]
]
],
'LeftSegmentActions' => [
[
'ExecuteAzureFunctionAction' => [
'AzureFunction' => 'AzureFunction1',
'FunctionParameter' => '{"InputParam": "1"}'
]
]
]
]
]),
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/Admin/CreateSegment"
payload := strings.NewReader("{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\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/Admin/CreateSegment")
.header("X-SecretKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Admin/CreateSegment")
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 \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"status": "<string>",
"data": {
"ErrorMessage": "<string>",
"SegmentId": "<string>"
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}