Get product highlights
curl --request GET \
--url https://api.example.com/api/highlights/{productId} \
--header 'Tenantid: <api-key>'import requests
url = "https://api.example.com/api/highlights/{productId}"
headers = {"Tenantid": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Tenantid: '<api-key>'}};
fetch('https://api.example.com/api/highlights/{productId}', 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/api/highlights/{productId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Tenantid: <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"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/highlights/{productId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Tenantid", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/highlights/{productId}")
.header("Tenantid", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/highlights/{productId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Tenantid"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"highlights": [
"Waterproof shell for wet-weather protection",
"Lightweight design for comfortable everyday wear"
],
"highlightsGeneratedAt": "2026-08-05T09:32:00Z"
}"Tenant ID Invalid.""Tenant tenant-123 not found #000"Product content
Get product highlights
Retrieve generated selling points for a product.
GET
/
api
/
highlights
/
{productId}
Get product highlights
curl --request GET \
--url https://api.example.com/api/highlights/{productId} \
--header 'Tenantid: <api-key>'import requests
url = "https://api.example.com/api/highlights/{productId}"
headers = {"Tenantid": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Tenantid: '<api-key>'}};
fetch('https://api.example.com/api/highlights/{productId}', 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/api/highlights/{productId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Tenantid: <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"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/highlights/{productId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Tenantid", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/highlights/{productId}")
.header("Tenantid", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/highlights/{productId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Tenantid"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"highlights": [
"Waterproof shell for wet-weather protection",
"Lightweight design for comfortable everyday wear"
],
"highlightsGeneratedAt": "2026-08-05T09:32:00Z"
}"Tenant ID Invalid.""Tenant tenant-123 not found #000"Retrieve concise, pre-generated selling points for a product detail page. Highlight content is scoped to the catalogue selected by the
Use the exact product identifier from your preezie catalogue. URL-encode the identifier when it contains characters that are not safe in a URL path.
Treat an empty array as content unavailable and render your product page without the highlights section. It is not necessary to show an error to the shopper.
To generate this content for a catalogue, see Configure FAQ and Highlights jobs.
Tenantid header.
This endpoint does not require a Core Intent operation token.
Request example
curl --request GET \
"$PREEZIE_API_URL/api/highlights/product-123" \
--header "Tenantid: $PREEZIE_TENANT_ID"
Response
The endpoint returns a JSON object containing the generated highlights and their most recent generation time:{
"highlights": [
"Waterproof shell for wet-weather protection",
"Lightweight design for comfortable everyday wear",
"Adjustable hood and cuffs for a personalised fit"
],
"highlightsGeneratedAt": "2026-08-05T09:32:00Z"
}
| Field | Description |
|---|---|
highlights | Array of generated product selling points. |
highlightsGeneratedAt | UTC date and time when the highlights were most recently generated. |
Content not available
A successful request returns200 OK even when highlight content has not been generated for the product:
{
"highlights": [],
"highlightsGeneratedAt": null
}
Highlights are generated ahead of time. This endpoint retrieves stored content and does not start content generation.
Authorizations
The preezie tenant identifier. This value identifies the catalogue and is not a secret.
Path Parameters
The product identifier used in the tenant's catalogue.
Response
The generated highlights for the product.
