Agent Copilot Configurations
Update an Agent Copilot Configuration
Updates an existing Agent Copilot configuration in a Project. Allows modifying the grid layout, tiles, or metadata of a configuration. You must provide the relevant project ID and the configuration ID to apply changes.
PATCH
/
v2.0
/
aicopilotconfigs
/
{configId}
Update an Agent Copilot Configuration
curl --request PATCH \
--url https://api-trial.cognigy.ai/new/v2.0/aicopilotconfigs/{configId} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "<string>",
"description": "<string>",
"config": {
"grid": {
"columns": 123,
"rows": 123,
"gap": 123
},
"tiles": {
"tile-id": {
"x": 123,
"y": 123,
"columns": 123,
"rows": 123
}
}
}
}
'import requests
url = "https://api-trial.cognigy.ai/new/v2.0/aicopilotconfigs/{configId}"
payload = {
"name": "<string>",
"description": "<string>",
"config": {
"grid": {
"columns": 123,
"rows": 123,
"gap": 123
},
"tiles": { "tile-id": {
"x": 123,
"y": 123,
"columns": 123,
"rows": 123
} }
}
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
config: {
grid: {columns: 123, rows: 123, gap: 123},
tiles: {'tile-id': {x: 123, y: 123, columns: 123, rows: 123}}
}
})
};
fetch('https://api-trial.cognigy.ai/new/v2.0/aicopilotconfigs/{configId}', 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-trial.cognigy.ai/new/v2.0/aicopilotconfigs/{configId}",
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([
'name' => '<string>',
'description' => '<string>',
'config' => [
'grid' => [
'columns' => 123,
'rows' => 123,
'gap' => 123
],
'tiles' => [
'tile-id' => [
'x' => 123,
'y' => 123,
'columns' => 123,
'rows' => 123
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-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-trial.cognigy.ai/new/v2.0/aicopilotconfigs/{configId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"config\": {\n \"grid\": {\n \"columns\": 123,\n \"rows\": 123,\n \"gap\": 123\n },\n \"tiles\": {\n \"tile-id\": {\n \"x\": 123,\n \"y\": 123,\n \"columns\": 123,\n \"rows\": 123\n }\n }\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-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-trial.cognigy.ai/new/v2.0/aicopilotconfigs/{configId}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"config\": {\n \"grid\": {\n \"columns\": 123,\n \"rows\": 123,\n \"gap\": 123\n },\n \"tiles\": {\n \"tile-id\": {\n \"x\": 123,\n \"y\": 123,\n \"columns\": 123,\n \"rows\": 123\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-trial.cognigy.ai/new/v2.0/aicopilotconfigs/{configId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"config\": {\n \"grid\": {\n \"columns\": 123,\n \"rows\": 123,\n \"gap\": 123\n },\n \"tiles\": {\n \"tile-id\": {\n \"x\": 123,\n \"y\": 123,\n \"columns\": 123,\n \"rows\": 123\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"type": "Bad Request",
"title": "Bad Request Error",
"status": 400,
"detail": "Validation failed. Missing payload.",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Unauthorized",
"title": "Unauthorized Error",
"status": 401,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 401,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Payment Required",
"title": "Payment Required Error",
"status": 402,
"detail": "Validation failed. Missing payload.",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 402,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Forbidden",
"title": "Forbidden Error",
"status": 403,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Not Found",
"title": "Not Found Error",
"status": 404,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {},
"logLevel": "error"
}{
"type": "Method Not Allowed",
"title": "Method Not Allowed Error",
"status": 405,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Conflict",
"title": "Conflict Error",
"status": 409,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1004,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Payload Too Large",
"title": "Payload Too Large Error",
"status": 413,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Internal Server Error",
"title": "Internal Server Error",
"status": 500,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Not Implemented",
"title": "Not Implemented Error",
"status": 501,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1009,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Bad Gateway",
"title": "Bad Gateway Error",
"status": 502,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Service Unavailable",
"title": "Service Unavailable Error",
"status": 503,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 503,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Gateway Timeout",
"title": "Gateway Timeout Error",
"status": 504,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}Authorizations
APIKeyHeaderAPIKeyQueryParamCXoneTokenHeaderOAuth2
Supply the API Key in the HTTP-Header
Headers
The Accept header specifies the media type that the client expects in the response. Available options: application/json, application/hal+json, application/xml, text/xml, text/csv. The default value is application/json.
Available options:
application/json, application/hal+json, application/xml, text/xml, text/csv Path Parameters
The Id of the Ai Copilot config
Required string length:
24Pattern:
^[a-z0-9]{24}$Body
application/json
Response
The Agent Copilot Configuration was successfully updated.
Last modified on July 22, 2026
Previous
Create an Agent Copilot ConfigurationCreates an Agent Copilot configuration in a Project. The Agent Copilot configuration defines the grid layout, which serves as the structure for your AI Copilot Workspace. After creation, select the configuration in the Cognigy.AI Endpoint under the Copilot section.
Next
⌘I
Update an Agent Copilot Configuration
curl --request PATCH \
--url https://api-trial.cognigy.ai/new/v2.0/aicopilotconfigs/{configId} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "<string>",
"description": "<string>",
"config": {
"grid": {
"columns": 123,
"rows": 123,
"gap": 123
},
"tiles": {
"tile-id": {
"x": 123,
"y": 123,
"columns": 123,
"rows": 123
}
}
}
}
'import requests
url = "https://api-trial.cognigy.ai/new/v2.0/aicopilotconfigs/{configId}"
payload = {
"name": "<string>",
"description": "<string>",
"config": {
"grid": {
"columns": 123,
"rows": 123,
"gap": 123
},
"tiles": { "tile-id": {
"x": 123,
"y": 123,
"columns": 123,
"rows": 123
} }
}
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
config: {
grid: {columns: 123, rows: 123, gap: 123},
tiles: {'tile-id': {x: 123, y: 123, columns: 123, rows: 123}}
}
})
};
fetch('https://api-trial.cognigy.ai/new/v2.0/aicopilotconfigs/{configId}', 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-trial.cognigy.ai/new/v2.0/aicopilotconfigs/{configId}",
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([
'name' => '<string>',
'description' => '<string>',
'config' => [
'grid' => [
'columns' => 123,
'rows' => 123,
'gap' => 123
],
'tiles' => [
'tile-id' => [
'x' => 123,
'y' => 123,
'columns' => 123,
'rows' => 123
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-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-trial.cognigy.ai/new/v2.0/aicopilotconfigs/{configId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"config\": {\n \"grid\": {\n \"columns\": 123,\n \"rows\": 123,\n \"gap\": 123\n },\n \"tiles\": {\n \"tile-id\": {\n \"x\": 123,\n \"y\": 123,\n \"columns\": 123,\n \"rows\": 123\n }\n }\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-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-trial.cognigy.ai/new/v2.0/aicopilotconfigs/{configId}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"config\": {\n \"grid\": {\n \"columns\": 123,\n \"rows\": 123,\n \"gap\": 123\n },\n \"tiles\": {\n \"tile-id\": {\n \"x\": 123,\n \"y\": 123,\n \"columns\": 123,\n \"rows\": 123\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-trial.cognigy.ai/new/v2.0/aicopilotconfigs/{configId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"config\": {\n \"grid\": {\n \"columns\": 123,\n \"rows\": 123,\n \"gap\": 123\n },\n \"tiles\": {\n \"tile-id\": {\n \"x\": 123,\n \"y\": 123,\n \"columns\": 123,\n \"rows\": 123\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"type": "Bad Request",
"title": "Bad Request Error",
"status": 400,
"detail": "Validation failed. Missing payload.",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Unauthorized",
"title": "Unauthorized Error",
"status": 401,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 401,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Payment Required",
"title": "Payment Required Error",
"status": 402,
"detail": "Validation failed. Missing payload.",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 402,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Forbidden",
"title": "Forbidden Error",
"status": 403,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Not Found",
"title": "Not Found Error",
"status": 404,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {},
"logLevel": "error"
}{
"type": "Method Not Allowed",
"title": "Method Not Allowed Error",
"status": 405,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Conflict",
"title": "Conflict Error",
"status": 409,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1004,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Payload Too Large",
"title": "Payload Too Large Error",
"status": 413,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Internal Server Error",
"title": "Internal Server Error",
"status": 500,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Not Implemented",
"title": "Not Implemented Error",
"status": 501,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1009,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Bad Gateway",
"title": "Bad Gateway Error",
"status": 502,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Service Unavailable",
"title": "Service Unavailable Error",
"status": 503,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 503,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}{
"type": "Gateway Timeout",
"title": "Gateway Timeout Error",
"status": 504,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}