curl --request PATCH \
--url https://{instance}.omniapp.co/api/v1/models/{modelId}/topic/{topicName} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "Details about the Blobs R Us product roadmap",
"groupLabel": "Product",
"hidden": false,
"label": "Blob Roadmap",
"newTopicName": "2026 Blob Roadmap"
}
'import requests
url = "https://{instance}.omniapp.co/api/v1/models/{modelId}/topic/{topicName}"
payload = {
"description": "Details about the Blobs R Us product roadmap",
"groupLabel": "Product",
"hidden": False,
"label": "Blob Roadmap",
"newTopicName": "2026 Blob Roadmap"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: 'Details about the Blobs R Us product roadmap',
groupLabel: 'Product',
hidden: false,
label: 'Blob Roadmap',
newTopicName: '2026 Blob Roadmap'
})
};
fetch('https://{instance}.omniapp.co/api/v1/models/{modelId}/topic/{topicName}', 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://{instance}.omniapp.co/api/v1/models/{modelId}/topic/{topicName}",
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([
'description' => 'Details about the Blobs R Us product roadmap',
'groupLabel' => 'Product',
'hidden' => false,
'label' => 'Blob Roadmap',
'newTopicName' => '2026 Blob Roadmap'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://{instance}.omniapp.co/api/v1/models/{modelId}/topic/{topicName}"
payload := strings.NewReader("{\n \"description\": \"Details about the Blobs R Us product roadmap\",\n \"groupLabel\": \"Product\",\n \"hidden\": false,\n \"label\": \"Blob Roadmap\",\n \"newTopicName\": \"2026 Blob Roadmap\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://{instance}.omniapp.co/api/v1/models/{modelId}/topic/{topicName}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"Details about the Blobs R Us product roadmap\",\n \"groupLabel\": \"Product\",\n \"hidden\": false,\n \"label\": \"Blob Roadmap\",\n \"newTopicName\": \"2026 Blob Roadmap\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{instance}.omniapp.co/api/v1/models/{modelId}/topic/{topicName}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"Details about the Blobs R Us product roadmap\",\n \"groupLabel\": \"Product\",\n \"hidden\": false,\n \"label\": \"Blob Roadmap\",\n \"newTopicName\": \"2026 Blob Roadmap\"\n}"
response = http.request(request)
puts response.read_body{
"success": true
}{
"detail": "<string>",
"status": 400
}{
"detail": "Unauthorized: Missing or invalid API key",
"status": 401
}{
"detail": "<string>",
"status": 403
}{
"detail": "<string>",
"status": 404
}Update topic
Update an existing topic.
curl --request PATCH \
--url https://{instance}.omniapp.co/api/v1/models/{modelId}/topic/{topicName} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "Details about the Blobs R Us product roadmap",
"groupLabel": "Product",
"hidden": false,
"label": "Blob Roadmap",
"newTopicName": "2026 Blob Roadmap"
}
'import requests
url = "https://{instance}.omniapp.co/api/v1/models/{modelId}/topic/{topicName}"
payload = {
"description": "Details about the Blobs R Us product roadmap",
"groupLabel": "Product",
"hidden": False,
"label": "Blob Roadmap",
"newTopicName": "2026 Blob Roadmap"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: 'Details about the Blobs R Us product roadmap',
groupLabel: 'Product',
hidden: false,
label: 'Blob Roadmap',
newTopicName: '2026 Blob Roadmap'
})
};
fetch('https://{instance}.omniapp.co/api/v1/models/{modelId}/topic/{topicName}', 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://{instance}.omniapp.co/api/v1/models/{modelId}/topic/{topicName}",
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([
'description' => 'Details about the Blobs R Us product roadmap',
'groupLabel' => 'Product',
'hidden' => false,
'label' => 'Blob Roadmap',
'newTopicName' => '2026 Blob Roadmap'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://{instance}.omniapp.co/api/v1/models/{modelId}/topic/{topicName}"
payload := strings.NewReader("{\n \"description\": \"Details about the Blobs R Us product roadmap\",\n \"groupLabel\": \"Product\",\n \"hidden\": false,\n \"label\": \"Blob Roadmap\",\n \"newTopicName\": \"2026 Blob Roadmap\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://{instance}.omniapp.co/api/v1/models/{modelId}/topic/{topicName}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"Details about the Blobs R Us product roadmap\",\n \"groupLabel\": \"Product\",\n \"hidden\": false,\n \"label\": \"Blob Roadmap\",\n \"newTopicName\": \"2026 Blob Roadmap\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{instance}.omniapp.co/api/v1/models/{modelId}/topic/{topicName}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"Details about the Blobs R Us product roadmap\",\n \"groupLabel\": \"Product\",\n \"hidden\": false,\n \"label\": \"Blob Roadmap\",\n \"newTopicName\": \"2026 Blob Roadmap\"\n}"
response = http.request(request)
puts response.read_body{
"success": true
}{
"detail": "<string>",
"status": 400
}{
"detail": "Unauthorized: Missing or invalid API key",
"status": 401
}{
"detail": "<string>",
"status": 403
}{
"detail": "<string>",
"status": 404
}Authorizations
Can be either an Organization API Key or Personal Access Token (PAT).
Include in the Authorization header as: Bearer YOUR_TOKEN
Path Parameters
The ID of the model.
"123e4567-e89b-12d3-a456-426614174000"
The name of the topic.
"sales_analytics"
Query Parameters
Branch ID to use for branch-aware operations. Accepts either the org-wide branch ID (an orgBranchId, also returned by the Branches API) or the ID of that branch's layer on this specific model.
"123e4567-e89b-12d3-a456-426614174001"
Body
Description of the topic, shown in the topic picker
"Details about the Blobs R Us product roadmap"
Group label for the topic
"Product"
Whether the topic is hidden from the topic picker.
false
The display label for the topic
"Blob Roadmap"
The new name of the topic, if performing a rename.
"2026 Blob Roadmap"
Response
Topic updated successfully
true
Was this page helpful?

