curl --request PATCH \
--url https://app.backend.genezio.ai/customer/v1/brands/{brand_id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"answer_engines": [],
"websites": [
"https://acme.com",
"https://shop.acme.com"
]
}
'import requests
url = "https://app.backend.genezio.ai/customer/v1/brands/{brand_id}"
payload = {
"answer_engines": [],
"websites": ["https://acme.com", "https://shop.acme.com"]
}
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({answer_engines: [], websites: ['https://acme.com', 'https://shop.acme.com']})
};
fetch('https://app.backend.genezio.ai/customer/v1/brands/{brand_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": 123,
"name": "<string>",
"answer_engines": [
"<string>"
],
"industry": "<string>",
"topics_with_other_engines": [
{
"engines": [
"<string>"
],
"name": "<string>",
"topic_id": 123
}
],
"websites": [
"<string>"
]
}{
"error": {
"code": "brand_access_denied",
"message": "This API key has no access to this brand",
"details": [
{
"field": "page_size",
"message": "Input should be less than or equal to 100"
}
],
"request_id": "4f3c2e1a-9b7d-4c1e-8f2a-1d3e5b7c9a0f"
}
}{
"error": {
"code": "brand_access_denied",
"message": "This API key has no access to this brand",
"details": [
{
"field": "page_size",
"message": "Input should be less than or equal to 100"
}
],
"request_id": "4f3c2e1a-9b7d-4c1e-8f2a-1d3e5b7c9a0f"
}
}{
"error": {
"code": "brand_access_denied",
"message": "This API key has no access to this brand",
"details": [
{
"field": "page_size",
"message": "Input should be less than or equal to 100"
}
],
"request_id": "4f3c2e1a-9b7d-4c1e-8f2a-1d3e5b7c9a0f"
}
}{
"error": {
"code": "brand_access_denied",
"message": "This API key has no access to this brand",
"details": [
{
"field": "page_size",
"message": "Input should be less than or equal to 100"
}
],
"request_id": "4f3c2e1a-9b7d-4c1e-8f2a-1d3e5b7c9a0f"
}
}{
"error": {
"code": "brand_access_denied",
"message": "This API key has no access to this brand",
"details": [
{
"field": "page_size",
"message": "Input should be less than or equal to 100"
}
],
"request_id": "4f3c2e1a-9b7d-4c1e-8f2a-1d3e5b7c9a0f"
}
}{
"error": {
"code": "brand_access_denied",
"message": "This API key has no access to this brand",
"details": [
{
"field": "page_size",
"message": "Input should be less than or equal to 100"
}
],
"request_id": "4f3c2e1a-9b7d-4c1e-8f2a-1d3e5b7c9a0f"
}
}{
"error": {
"code": "brand_access_denied",
"message": "This API key has no access to this brand",
"details": [
{
"field": "page_size",
"message": "Input should be less than or equal to 100"
}
],
"request_id": "4f3c2e1a-9b7d-4c1e-8f2a-1d3e5b7c9a0f"
}
}Update Brand
Change the websites or the answer engines of the brand.
websites replaces each website: the platform reads a page of these
websites as a page of the brand. An engine that the plan does not hold
gets 403 plan_limit_reached. A topic with its own engines keeps them,
and topics_with_other_engines names each topic whose engines the brand
does not have now.
curl --request PATCH \
--url https://app.backend.genezio.ai/customer/v1/brands/{brand_id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"answer_engines": [],
"websites": [
"https://acme.com",
"https://shop.acme.com"
]
}
'import requests
url = "https://app.backend.genezio.ai/customer/v1/brands/{brand_id}"
payload = {
"answer_engines": [],
"websites": ["https://acme.com", "https://shop.acme.com"]
}
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({answer_engines: [], websites: ['https://acme.com', 'https://shop.acme.com']})
};
fetch('https://app.backend.genezio.ai/customer/v1/brands/{brand_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": 123,
"name": "<string>",
"answer_engines": [
"<string>"
],
"industry": "<string>",
"topics_with_other_engines": [
{
"engines": [
"<string>"
],
"name": "<string>",
"topic_id": 123
}
],
"websites": [
"<string>"
]
}{
"error": {
"code": "brand_access_denied",
"message": "This API key has no access to this brand",
"details": [
{
"field": "page_size",
"message": "Input should be less than or equal to 100"
}
],
"request_id": "4f3c2e1a-9b7d-4c1e-8f2a-1d3e5b7c9a0f"
}
}{
"error": {
"code": "brand_access_denied",
"message": "This API key has no access to this brand",
"details": [
{
"field": "page_size",
"message": "Input should be less than or equal to 100"
}
],
"request_id": "4f3c2e1a-9b7d-4c1e-8f2a-1d3e5b7c9a0f"
}
}{
"error": {
"code": "brand_access_denied",
"message": "This API key has no access to this brand",
"details": [
{
"field": "page_size",
"message": "Input should be less than or equal to 100"
}
],
"request_id": "4f3c2e1a-9b7d-4c1e-8f2a-1d3e5b7c9a0f"
}
}{
"error": {
"code": "brand_access_denied",
"message": "This API key has no access to this brand",
"details": [
{
"field": "page_size",
"message": "Input should be less than or equal to 100"
}
],
"request_id": "4f3c2e1a-9b7d-4c1e-8f2a-1d3e5b7c9a0f"
}
}{
"error": {
"code": "brand_access_denied",
"message": "This API key has no access to this brand",
"details": [
{
"field": "page_size",
"message": "Input should be less than or equal to 100"
}
],
"request_id": "4f3c2e1a-9b7d-4c1e-8f2a-1d3e5b7c9a0f"
}
}{
"error": {
"code": "brand_access_denied",
"message": "This API key has no access to this brand",
"details": [
{
"field": "page_size",
"message": "Input should be less than or equal to 100"
}
],
"request_id": "4f3c2e1a-9b7d-4c1e-8f2a-1d3e5b7c9a0f"
}
}{
"error": {
"code": "brand_access_denied",
"message": "This API key has no access to this brand",
"details": [
{
"field": "page_size",
"message": "Input should be less than or equal to 100"
}
],
"request_id": "4f3c2e1a-9b7d-4c1e-8f2a-1d3e5b7c9a0f"
}
}Authorizations
An API key of your account, from Settings > API Keys. It starts with gnz-.
Headers
Any unique string, such as a UUID. Send the same key again to get the first answer and not a second write. The API keeps an answer for 24 hours.
Path Parameters
Body
Only the fields that the request sends change.
The answer engines of the brand. Each must be in the plan.
1The answer engines that the public API names.
The platform also runs models of the API of OpenAI for its own work, such
as gpt-4o. A customer does not choose them, thus the public API does not
name them. Each value is a value of dtos.simulation.LlmModel.
chatgpt.com, google-ai-overview, perplexity, claude, google-ai-mode, google-gemini, copilot, deepseek, grok, gpt-5.4 Each website of the brand. The list replaces the websites.
1 - 20 elements1 - 2048["https://acme.com", "https://shop.acme.com"]
Response
Successful Response
The answer engines of the brand. A topic can have its own.
Topics with their own engines that the brand does not have now. They keep their engines: change them with PATCH of the topic.
Show child attributes
Show child attributes