Get Shopping Product
curl --request GET \
--url https://server.promptwatch.com/api/v2/shopping/items/{id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://server.promptwatch.com/api/v2/shopping/items/{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://server.promptwatch.com/api/v2/shopping/items/{id}', 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://server.promptwatch.com/api/v2/shopping/items/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <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://server.promptwatch.com/api/v2/shopping/items/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<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://server.promptwatch.com/api/v2/shopping/items/{id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.promptwatch.com/api/v2/shopping/items/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": "<string>",
"foreignId": "<string>",
"title": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"appearanceCount": 123,
"promptCount": 123,
"averagePosition": 123,
"latestAppearance": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"description": "<string>",
"priceText": "<string>",
"merchants": "<string>",
"numReviews": 123,
"rating": 123,
"featuredTag": "<string>",
"thumbnailUrl": "<string>",
"productUrl": "<string>",
"normalizedProductUrl": "<string>",
"productDomain": "<string>",
"positionInResponse": 123,
"cite": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"priceStats": {
"average": "<string>",
"high": "<string>",
"low": "<string>",
"offerCount": 123
}
}
}{
"error": "Bad Request",
"code": "DATE_RANGE_TOO_LARGE",
"message": "Date range cannot exceed 90 days"
}{
"error": "Unauthorized",
"message": "Missing or invalid X-API-Key header."
}{
"code": "SHOPPING_INSIGHTS_PLAN_REQUIRED",
"message": "Shopping insights are not available on your current plan"
}{
"code": "SHOPPING_INSIGHTS_PLAN_REQUIRED",
"message": "Shopping insights are not available on your current plan"
}{
"code": "SHOPPING_INSIGHTS_PLAN_REQUIRED",
"message": "Shopping insights are not available on your current plan"
}Shopping
Get Shopping Product
Get one extracted shopping product with appearance stats and its latest appearance
GET
/
shopping
/
items
/
{id}
Get Shopping Product
curl --request GET \
--url https://server.promptwatch.com/api/v2/shopping/items/{id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://server.promptwatch.com/api/v2/shopping/items/{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://server.promptwatch.com/api/v2/shopping/items/{id}', 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://server.promptwatch.com/api/v2/shopping/items/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <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://server.promptwatch.com/api/v2/shopping/items/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<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://server.promptwatch.com/api/v2/shopping/items/{id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.promptwatch.com/api/v2/shopping/items/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": "<string>",
"foreignId": "<string>",
"title": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"appearanceCount": 123,
"promptCount": 123,
"averagePosition": 123,
"latestAppearance": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"description": "<string>",
"priceText": "<string>",
"merchants": "<string>",
"numReviews": 123,
"rating": 123,
"featuredTag": "<string>",
"thumbnailUrl": "<string>",
"productUrl": "<string>",
"normalizedProductUrl": "<string>",
"productDomain": "<string>",
"positionInResponse": 123,
"cite": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"priceStats": {
"average": "<string>",
"high": "<string>",
"low": "<string>",
"offerCount": 123
}
}
}{
"error": "Bad Request",
"code": "DATE_RANGE_TOO_LARGE",
"message": "Date range cannot exceed 90 days"
}{
"error": "Unauthorized",
"message": "Missing or invalid X-API-Key header."
}{
"code": "SHOPPING_INSIGHTS_PLAN_REQUIRED",
"message": "Shopping insights are not available on your current plan"
}{
"code": "SHOPPING_INSIGHTS_PLAN_REQUIRED",
"message": "Shopping insights are not available on your current plan"
}{
"code": "SHOPPING_INSIGHTS_PLAN_REQUIRED",
"message": "Shopping insights are not available on your current plan"
}Authorizations
API key for authentication. Get yours from the Promptwatch dashboard under Settings > API Keys.
Path Parameters
Shopping product identifier
Response
Default Response
Product identifier
Answer engine the product was extracted from
Product identifier in the source answer engine
Product title
When the product was first extracted
When the product was last updated
Number of appearances in AI responses
Number of distinct prompts the product appeared for
Average 0-based position across appearances
Most recent appearance of the product, or null
Show child attributes
Show child attributes
⌘I