Shopping Results
curl --request GET \
--url https://api.example.com/api/v1/brands/{brandId}/shopping \
--header 'Authorization: <authorization>'import requests
url = "https://api.example.com/api/v1/brands/{brandId}/shopping"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.example.com/api/v1/brands/{brandId}/shopping', 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/v1/brands/{brandId}/shopping",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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/v1/brands/{brandId}/shopping"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
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/v1/brands/{brandId}/shopping")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/brands/{brandId}/shopping")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"success": true,
"pagination": {
"total": 123,
"count": 123,
"limit": 123,
"offset": 123
},
"shopping": [
{
"id": "<string>",
"productName": "<string>",
"description": "<string>",
"image": "<string>",
"rating": 123,
"reviews": 123,
"options": [
{}
],
"prompt": "<string>",
"createdAt": "<string>"
}
]
}Insights
Shopping Results
Product recommendations from AI responses
GET
/
api
/
v1
/
brands
/
{brandId}
/
shopping
Shopping Results
curl --request GET \
--url https://api.example.com/api/v1/brands/{brandId}/shopping \
--header 'Authorization: <authorization>'import requests
url = "https://api.example.com/api/v1/brands/{brandId}/shopping"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.example.com/api/v1/brands/{brandId}/shopping', 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/v1/brands/{brandId}/shopping",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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/v1/brands/{brandId}/shopping"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
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/v1/brands/{brandId}/shopping")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/brands/{brandId}/shopping")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"success": true,
"pagination": {
"total": 123,
"count": 123,
"limit": 123,
"offset": 123
},
"shopping": [
{
"id": "<string>",
"productName": "<string>",
"description": "<string>",
"image": "<string>",
"rating": 123,
"reviews": 123,
"options": [
{}
],
"prompt": "<string>",
"createdAt": "<string>"
}
]
}Access product recommendations extracted from AI responses, primarily from Google AI Overview shopping results. Track which products AI platforms recommend in your industry.
List Shopping Insights
string
required
Bearer token. Example:
Bearer qw-api-xxxGET /api/v1/brands/{brandId}/shopping
Path Parameters
string
required
The unique identifier of the brand
Query Parameters
number
Number of days to include. If not specified, returns all data.
string
Start date (ISO 8601 format)
string
End date (ISO 8601 format)
string
Filter by AI provider. Supports comma-separated multi-select (e.g.,
chatgpt,claude).number
default:"50"
Maximum number of products to return (max: 100)
number
default:"0"
Number of results to skip for pagination
string
default:"createdAt"
Field to sort by:
createdAt, rating, reviews, productNamestring
default:"desc"
Sort order:
asc or descResponse
boolean
Indicates if the request was successful
object
array
Example Request
curl -X GET "https://www.qwairy.co/api/v1/brands/cm1234567890abcdef/shopping?limit=10" \
-H "Authorization: Bearer qw-api-your-token-here"
Example Response
{
"success": true,
"pagination": {
"total": 85,
"count": 2,
"limit": 10,
"offset": 0
},
"shopping": [
{
"id": "shop1",
"productName": "Acme Pro CRM Suite",
"description": "Enterprise-grade CRM solution with AI features",
"image": "https://example.com/product-image.jpg",
"rating": 4.5,
"reviews": 1250,
"options": [
{
"price": "$99/month",
"currency": "USD",
"websiteName": "Acme",
"websiteUrl": "https://acme.com/pricing"
}
],
"prompt": "What is the best CRM software for enterprise?",
"createdAt": "2024-12-15T10:30:00Z"
},
{
"id": "shop2",
"productName": "DataFlow Analytics Pro",
"description": "Real-time analytics platform",
"image": null,
"rating": 4.2,
"reviews": 890,
"options": [],
"prompt": "Compare top analytics platforms",
"createdAt": "2024-12-14T15:45:00Z"
}
]
}
Error Responses
| Status | Code | Description |
|---|---|---|
| 401 | INVALID_TOKEN | Authentication failed |
| 404 | BRAND_NOT_FOUND | Brand doesn’t exist or not accessible |
⌘I

