Topics & Prompts
Create topics
Create one or more topics for a brand.
POST
/
v1
/
brands
/
{brandId}
/
topics
Create topics
curl --request POST \
--url https://api.example.com/v1/brands/{brandId}/topics \
--header 'Content-Type: application/json' \
--data '
{
"topics": [
{}
]
}
'import requests
url = "https://api.example.com/v1/brands/{brandId}/topics"
payload = { "topics": [{}] }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({topics: [{}]})
};
fetch('https://api.example.com/v1/brands/{brandId}/topics', 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/v1/brands/{brandId}/topics",
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([
'topics' => [
[
]
]
]),
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/v1/brands/{brandId}/topics"
payload := strings.NewReader("{\n \"topics\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.example.com/v1/brands/{brandId}/topics")
.header("Content-Type", "application/json")
.body("{\n \"topics\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/brands/{brandId}/topics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"topics\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_bodyCreates topics without adding prompts. Use this to first scaffold the topic structure, then add prompts via Create prompts or Batch create.
Path parameters
Brand UUID. Obtain from List brands.
Request body
Show Topic
Show Topic
Request
curl -s -X POST \
-H "x-spotlight-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "topics": [{ "name": "Pricing" }, { "name": "Support" }] }' \
"https://app.get-spotlight.com/api/v1/brands/BRAND_ID/topics"
Response
{
"topics": [
{ "id": "topic-uuid-1", "name": "Pricing" },
{ "id": "topic-uuid-2", "name": "Support" }
]
}
⌘I
Create topics
curl --request POST \
--url https://api.example.com/v1/brands/{brandId}/topics \
--header 'Content-Type: application/json' \
--data '
{
"topics": [
{}
]
}
'import requests
url = "https://api.example.com/v1/brands/{brandId}/topics"
payload = { "topics": [{}] }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({topics: [{}]})
};
fetch('https://api.example.com/v1/brands/{brandId}/topics', 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/v1/brands/{brandId}/topics",
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([
'topics' => [
[
]
]
]),
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/v1/brands/{brandId}/topics"
payload := strings.NewReader("{\n \"topics\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.example.com/v1/brands/{brandId}/topics")
.header("Content-Type", "application/json")
.body("{\n \"topics\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/brands/{brandId}/topics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"topics\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body
