curl --request GET \
--url https://app.backend.genezio.ai/customer/v1/brands/{brand_id}/products/{product_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://app.backend.genezio.ai/customer/v1/brands/{brand_id}/products/{product_id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://app.backend.genezio.ai/customer/v1/brands/{brand_id}/products/{product_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": 123,
"label": "<string>",
"title": "<string>",
"category": "<string>",
"competitor_name": "<string>",
"image_url": "<string>",
"manufacturer": "<string>",
"offers": [
{
"retailers": [
{
"name": "<string>",
"offer_share": 123,
"offers": 123,
"domain": "<string>",
"price_range": {
"high": "<string>",
"low": "<string>"
}
}
],
"share_of_voice": 123,
"title": "<string>",
"variant": {},
"image_url": "<string>",
"price_range": {
"high": "<string>",
"low": "<string>"
}
}
],
"product_line": "<string>",
"product_name": "<string>",
"searches": [
{
"conversations": 123,
"query": "<string>"
}
],
"shopping_queries": [
{
"conversations": 123,
"query": "<string>"
}
],
"snapshot": {
"description": "<string>",
"merchants": "<string>",
"price": "<string>",
"rating": 123,
"reviews": 123,
"title": "<string>"
},
"titles": [
{
"conversations": 123,
"title": "<string>"
}
],
"topics": [
{
"conversations": 123,
"name": "<string>",
"topic_id": 123
}
],
"variant_axes": [
"color",
"size"
]
}{
"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"
}
}Get a product
One product: its newest price and rating, the searches and the topics that show it, and the retailers of the product and of each variant.
curl --request GET \
--url https://app.backend.genezio.ai/customer/v1/brands/{brand_id}/products/{product_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://app.backend.genezio.ai/customer/v1/brands/{brand_id}/products/{product_id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://app.backend.genezio.ai/customer/v1/brands/{brand_id}/products/{product_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": 123,
"label": "<string>",
"title": "<string>",
"category": "<string>",
"competitor_name": "<string>",
"image_url": "<string>",
"manufacturer": "<string>",
"offers": [
{
"retailers": [
{
"name": "<string>",
"offer_share": 123,
"offers": 123,
"domain": "<string>",
"price_range": {
"high": "<string>",
"low": "<string>"
}
}
],
"share_of_voice": 123,
"title": "<string>",
"variant": {},
"image_url": "<string>",
"price_range": {
"high": "<string>",
"low": "<string>"
}
}
],
"product_line": "<string>",
"product_name": "<string>",
"searches": [
{
"conversations": 123,
"query": "<string>"
}
],
"shopping_queries": [
{
"conversations": 123,
"query": "<string>"
}
],
"snapshot": {
"description": "<string>",
"merchants": "<string>",
"price": "<string>",
"rating": 123,
"reviews": 123,
"title": "<string>"
},
"titles": [
{
"conversations": 123,
"title": "<string>"
}
],
"topics": [
{
"conversations": 123,
"name": "<string>",
"topic_id": 123
}
],
"variant_axes": [
"color",
"size"
]
}{
"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-.
Query Parameters
YYYY-MM-DD (a day in UTC) or an ISO 8601 datetime. Both ends of the range are inclusive: an end date covers its whole day.
YYYY-MM-DD (a day in UTC) or an ISO 8601 datetime. Both ends of the range are inclusive: an end date covers its whole day.
The answer engines. With no list, the engines of the brand.
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 The topics of the brand. With no list, each topic.
1Response
Successful Response
The retailers of the product and of each variant.
Show child attributes
Show child attributes
The web searches of the engines that led to it, top 5.
Show child attributes
Show child attributes
The shopping queries of the engines that show it, top 5.
Show child attributes
Show child attributes
The product in the newest answer that shows it.
Show child attributes
Show child attributes
The names that the answers give it, top 5.
Show child attributes
Show child attributes
The topics that show it, top 5.
Show child attributes
Show child attributes
["color", "size"]