Configure PSN Event Streams
Configures PSN event streams for an existing PSN addon on a title, without requiring a full addon upsert.
Error codes
This operation may return the following PlayFab errors:
| Error | Code |
|---|---|
| AddonDoesntExist | 19009 |
| CatalogBadRequest | 4013 |
| CatalogFeatureDisabled | 4009 |
| InvalidEntityType | 1373 |
| InvalidParams | 1000 |
| InvalidTitleId | 1004 |
POST
/
Addon
/
ConfigurePSNEventStreams
Configure PSN Event Streams
curl --request POST \
--url https://{titleId}.playfabapi.com/Addon/ConfigurePSNEventStreams \
--header 'Content-Type: application/json' \
--header 'X-EntityToken: <api-key>' \
--data '
{
"BackOfficeClientID": "backOfficeId",
"BackOfficeClientSecret": "backOfficeSecret",
"EventStreamInformation": [
{
"StreamURL": "https://example.com/stream",
"EnableEventListener": true,
"TitleId": "NP-TITLE-001"
}
]
}
'import requests
url = "https://{titleId}.playfabapi.com/Addon/ConfigurePSNEventStreams"
payload = {
"BackOfficeClientID": "backOfficeId",
"BackOfficeClientSecret": "backOfficeSecret",
"EventStreamInformation": [
{
"StreamURL": "https://example.com/stream",
"EnableEventListener": True,
"TitleId": "NP-TITLE-001"
}
]
}
headers = {
"X-EntityToken": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-EntityToken': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
BackOfficeClientID: 'backOfficeId',
BackOfficeClientSecret: 'backOfficeSecret',
EventStreamInformation: [
{
StreamURL: 'https://example.com/stream',
EnableEventListener: true,
TitleId: 'NP-TITLE-001'
}
]
})
};
fetch('https://{titleId}.playfabapi.com/Addon/ConfigurePSNEventStreams', 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/Addon/ConfigurePSNEventStreams",
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([
'BackOfficeClientID' => 'backOfficeId',
'BackOfficeClientSecret' => 'backOfficeSecret',
'EventStreamInformation' => [
[
'StreamURL' => 'https://example.com/stream',
'EnableEventListener' => true,
'TitleId' => 'NP-TITLE-001'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-EntityToken: <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/Addon/ConfigurePSNEventStreams"
payload := strings.NewReader("{\n \"BackOfficeClientID\": \"backOfficeId\",\n \"BackOfficeClientSecret\": \"backOfficeSecret\",\n \"EventStreamInformation\": [\n {\n \"StreamURL\": \"https://example.com/stream\",\n \"EnableEventListener\": true,\n \"TitleId\": \"NP-TITLE-001\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-EntityToken", "<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/Addon/ConfigurePSNEventStreams")
.header("X-EntityToken", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"BackOfficeClientID\": \"backOfficeId\",\n \"BackOfficeClientSecret\": \"backOfficeSecret\",\n \"EventStreamInformation\": [\n {\n \"StreamURL\": \"https://example.com/stream\",\n \"EnableEventListener\": true,\n \"TitleId\": \"NP-TITLE-001\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Addon/ConfigurePSNEventStreams")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-EntityToken"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"BackOfficeClientID\": \"backOfficeId\",\n \"BackOfficeClientSecret\": \"backOfficeSecret\",\n \"EventStreamInformation\": [\n {\n \"StreamURL\": \"https://example.com/stream\",\n \"EnableEventListener\": true,\n \"TitleId\": \"NP-TITLE-001\"\n }\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 an Entity Session Token, available from the Entity GetEntityToken method.
Body
application/json
The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
The optional entity to perform this action on. Defaults to the currently logged in entity.
Show child attributes
Show child attributes
Title name obtained after setting a back server for PS5. Used for clawback event listeners.
Last modified on October 1, 2026
Was this page helpful?
⌘I
Configure PSN Event Streams
curl --request POST \
--url https://{titleId}.playfabapi.com/Addon/ConfigurePSNEventStreams \
--header 'Content-Type: application/json' \
--header 'X-EntityToken: <api-key>' \
--data '
{
"BackOfficeClientID": "backOfficeId",
"BackOfficeClientSecret": "backOfficeSecret",
"EventStreamInformation": [
{
"StreamURL": "https://example.com/stream",
"EnableEventListener": true,
"TitleId": "NP-TITLE-001"
}
]
}
'import requests
url = "https://{titleId}.playfabapi.com/Addon/ConfigurePSNEventStreams"
payload = {
"BackOfficeClientID": "backOfficeId",
"BackOfficeClientSecret": "backOfficeSecret",
"EventStreamInformation": [
{
"StreamURL": "https://example.com/stream",
"EnableEventListener": True,
"TitleId": "NP-TITLE-001"
}
]
}
headers = {
"X-EntityToken": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-EntityToken': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
BackOfficeClientID: 'backOfficeId',
BackOfficeClientSecret: 'backOfficeSecret',
EventStreamInformation: [
{
StreamURL: 'https://example.com/stream',
EnableEventListener: true,
TitleId: 'NP-TITLE-001'
}
]
})
};
fetch('https://{titleId}.playfabapi.com/Addon/ConfigurePSNEventStreams', 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/Addon/ConfigurePSNEventStreams",
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([
'BackOfficeClientID' => 'backOfficeId',
'BackOfficeClientSecret' => 'backOfficeSecret',
'EventStreamInformation' => [
[
'StreamURL' => 'https://example.com/stream',
'EnableEventListener' => true,
'TitleId' => 'NP-TITLE-001'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-EntityToken: <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/Addon/ConfigurePSNEventStreams"
payload := strings.NewReader("{\n \"BackOfficeClientID\": \"backOfficeId\",\n \"BackOfficeClientSecret\": \"backOfficeSecret\",\n \"EventStreamInformation\": [\n {\n \"StreamURL\": \"https://example.com/stream\",\n \"EnableEventListener\": true,\n \"TitleId\": \"NP-TITLE-001\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-EntityToken", "<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/Addon/ConfigurePSNEventStreams")
.header("X-EntityToken", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"BackOfficeClientID\": \"backOfficeId\",\n \"BackOfficeClientSecret\": \"backOfficeSecret\",\n \"EventStreamInformation\": [\n {\n \"StreamURL\": \"https://example.com/stream\",\n \"EnableEventListener\": true,\n \"TitleId\": \"NP-TITLE-001\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Addon/ConfigurePSNEventStreams")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-EntityToken"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"BackOfficeClientID\": \"backOfficeId\",\n \"BackOfficeClientSecret\": \"backOfficeSecret\",\n \"EventStreamInformation\": [\n {\n \"StreamURL\": \"https://example.com/stream\",\n \"EnableEventListener\": true,\n \"TitleId\": \"NP-TITLE-001\"\n }\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": {}
}