Patch Sso
PATCH
/
admin
/
api
/
v1
/
sso
Patch Sso
curl --request PATCH \
--url https://api.example.com/admin/api/v1/sso \
--header 'Content-Type: application/json' \
--data '
{
"sso": {
"issuer": "<string>",
"clientId": "<string>",
"enabled": true,
"audience": "<string>",
"allowedDomains": [
"<string>"
],
"allowedEmails": [
"<string>"
]
}
}
'import requests
url = "https://api.example.com/admin/api/v1/sso"
payload = { "sso": {
"issuer": "<string>",
"clientId": "<string>",
"enabled": True,
"audience": "<string>",
"allowedDomains": ["<string>"],
"allowedEmails": ["<string>"]
} }
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
sso: {
issuer: '<string>',
clientId: '<string>',
enabled: true,
audience: '<string>',
allowedDomains: ['<string>'],
allowedEmails: ['<string>']
}
})
};
fetch('https://api.example.com/admin/api/v1/sso', 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.example.com/admin/api/v1/sso",
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([
'sso' => [
'issuer' => '<string>',
'clientId' => '<string>',
'enabled' => true,
'audience' => '<string>',
'allowedDomains' => [
'<string>'
],
'allowedEmails' => [
'<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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.example.com/admin/api/v1/sso"
payload := strings.NewReader("{\n \"sso\": {\n \"issuer\": \"<string>\",\n \"clientId\": \"<string>\",\n \"enabled\": true,\n \"audience\": \"<string>\",\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"allowedEmails\": [\n \"<string>\"\n ]\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
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.example.com/admin/api/v1/sso")
.header("Content-Type", "application/json")
.body("{\n \"sso\": {\n \"issuer\": \"<string>\",\n \"clientId\": \"<string>\",\n \"enabled\": true,\n \"audience\": \"<string>\",\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"allowedEmails\": [\n \"<string>\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/admin/api/v1/sso")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"sso\": {\n \"issuer\": \"<string>\",\n \"clientId\": \"<string>\",\n \"enabled\": true,\n \"audience\": \"<string>\",\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"allowedEmails\": [\n \"<string>\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"sso": {
"issuer": "<string>",
"clientId": "<string>",
"enabled": true,
"audience": "<string>",
"allowedDomains": [
"<string>"
],
"allowedEmails": [
"<string>"
]
},
"updatedAt": "2023-11-07T05:31:56Z"
},
"reload": {
"message": "<string>",
"error": "<string>"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Body
application/json
Body for PATCH /admin/api/v1/sso. All fields optional.
OIDC Single Sign-On configuration.
When enabled, the engine validates JWT tokens on protected routes
(/agent/invoke, /agent/stream, /agent/copilotkit/stream)
against the configured OIDC provider's JWKS endpoint, discovered via
{issuer}/.well-known/openid-configuration.
Show child attributes
Show child attributes
Response
Successful Response
GET response and the data payload of PATCH responses.
Show child attributes
Show child attributes
Reload outcome attached to every admin mutation response.
reloaded means DB committed and runtime now uses the new config.
restart_required means DB committed and process restart is needed.
reload_failed means DB rolled back and runtime is unchanged.
Show child attributes
Show child attributes
Last modified on June 8, 2026
Was this page helpful?
⌘I
Patch Sso
curl --request PATCH \
--url https://api.example.com/admin/api/v1/sso \
--header 'Content-Type: application/json' \
--data '
{
"sso": {
"issuer": "<string>",
"clientId": "<string>",
"enabled": true,
"audience": "<string>",
"allowedDomains": [
"<string>"
],
"allowedEmails": [
"<string>"
]
}
}
'import requests
url = "https://api.example.com/admin/api/v1/sso"
payload = { "sso": {
"issuer": "<string>",
"clientId": "<string>",
"enabled": True,
"audience": "<string>",
"allowedDomains": ["<string>"],
"allowedEmails": ["<string>"]
} }
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
sso: {
issuer: '<string>',
clientId: '<string>',
enabled: true,
audience: '<string>',
allowedDomains: ['<string>'],
allowedEmails: ['<string>']
}
})
};
fetch('https://api.example.com/admin/api/v1/sso', 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.example.com/admin/api/v1/sso",
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([
'sso' => [
'issuer' => '<string>',
'clientId' => '<string>',
'enabled' => true,
'audience' => '<string>',
'allowedDomains' => [
'<string>'
],
'allowedEmails' => [
'<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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.example.com/admin/api/v1/sso"
payload := strings.NewReader("{\n \"sso\": {\n \"issuer\": \"<string>\",\n \"clientId\": \"<string>\",\n \"enabled\": true,\n \"audience\": \"<string>\",\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"allowedEmails\": [\n \"<string>\"\n ]\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
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.example.com/admin/api/v1/sso")
.header("Content-Type", "application/json")
.body("{\n \"sso\": {\n \"issuer\": \"<string>\",\n \"clientId\": \"<string>\",\n \"enabled\": true,\n \"audience\": \"<string>\",\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"allowedEmails\": [\n \"<string>\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/admin/api/v1/sso")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"sso\": {\n \"issuer\": \"<string>\",\n \"clientId\": \"<string>\",\n \"enabled\": true,\n \"audience\": \"<string>\",\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"allowedEmails\": [\n \"<string>\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"sso": {
"issuer": "<string>",
"clientId": "<string>",
"enabled": true,
"audience": "<string>",
"allowedDomains": [
"<string>"
],
"allowedEmails": [
"<string>"
]
},
"updatedAt": "2023-11-07T05:31:56Z"
},
"reload": {
"message": "<string>",
"error": "<string>"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}