# Search Google Shopping

> Search Google Shopping is a paid API for AI agents from agents.litescrape.com, paid per call via MPP, $0.000150/call, status unknown (last checked 2026-09-18).

Searches Google Shopping and returns structured product listings with prices, merchants, ratings, and refinement tokens for filtering and pagination.

## Facts

- Endpoint: GET https://agents.litescrape.com/api/google/shopping
- Price: $0.000150/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-09-18
- Activations on Zero: 0
- Provider: agents.litescrape.com
- Website: https://agents.litescrape.com
- Canonical page: https://www.zero.xyz/c/agents-litescrape-com-search-google-shopping-a235fc5a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_guI7IbPKfTPJ7aLiu2jAe

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agents-litescrape-com-search-google-shopping-a235fc5a
```

Example prompt: Search Google Shopping for wireless noise-cancelling headphones under $150, sorted by price low to high, and show me the top 20 results with free shipping in the US.

## When to prefer this

Choose this endpoint when you need live, structured Google Shopping product data including prices, merchants, ratings, and product identifiers — especially when you want to filter by price range, sale status, free shipping, or small business, or sort by price or rating. Prefer this over generic web search endpoints when the user's intent is product discovery or price comparison. Use the shoprs refinement token system for stateful multi-step shopping flows.

## Known failure modes

- Missing required query parameter 'q' when no shoprs token is provided — returns 400 error JSON with error_code and message
- Invalid country code or language code — may return empty results or localization errors
- Mutually exclusive filters used together (e.g. on_sale + free_shipping) — API enforces one refinement at a time, may silently apply only one
- start offset exceeds 1000 — returns 400 or empty results
- Rate limit or payment failure — returns 402 or 429 with retryable flag
- Google Shopping returns no results for niche query — shopping_results array is empty
- Invalid shoprs token from a previous session — may return error or unexpected results

## How this service works

Searches Google Shopping and returns shopping_results (position, title, price, merchant, rating, and the gpcid, headline_offer_docid, and image_docid identifiers that open the product), category blocks, sponsored listings, and Google's refinement chips as shoprs tokens. Google applies one refinement at a time: the price range, on_sale, free_shipping, and small_business filters are mutually exclusive, and sort_by combines with any one of them. num caps the response at up to 100 products and pages through Google's 40-product pages for you. One call is one request.

## Output

Returns a JSON object with shopping_results (array of products with position, title, price, merchant, rating, gpcid, headline_offer_docid, image_docid, and litescrape_product_link), optional category blocks, sponsored listings, Google refinement chips as shoprs tokens for follow-up filtering, search_metadata (id, status, time taken), search_parameters (normalized inputs), and a pagination object with a next URL or next_page_token when more results exist.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "q"
 ],
 "properties": {
  "q": {
   "type": "string",
   "maxLength": 2048,
   "description": "Product query. Optional when a shoprs token is supplied."
  },
  "gl": {
   "type": "string",
   "maxLength": 2,
   "minLength": 2,
   "description": "Two-letter country code for result localization, lowercase."
  },
  "hl": {
   "type": "string",
   "default": "en",
   "description": "Interface and result language code, such as en, en-GB, or de."
  },
  "num": {
   "type": "integer",
   "maximum": 100,
   "minimum": 1,
   "description": "Number of products to return."
  },
  "uule": {
   "type": "string",
   "maxLength": 2048,
   "description": "Pre-encoded Google location token. Conflicts with location."
  },
  "start": {
   "type": "integer",
   "default": 0,
   "maximum": 1000,
   "minimum": 0,
   "description": "Result offset."
  },
  "device": {
   "enum": [
    "desktop",
    "tablet",
    "mobile"
   ],
   "type": "string",
   "default": "desktop",
   "description": "Device layout Google renders."
  },
  "shoprs": {
   "type": "string",
   "maxLength": 4096,
   "description": "Refinement token from a previous response. An explicit refinement replaces the one it carries."
  },
  "on_sale": {
   "type": "boolean",
   "default": false,
   "description": "Only products Google marks as on sale. Excludes the other refinements."
  },
  "sort_by": {
   "enum": [
    "1",
    "2",
    "3",
    "4"
   ],
   "type": "string",
   "description": "1 price low to high, 2 price high to low, 3 rating high to low, 4 Google's default relevance. Combines with one refinement."
  },
  "location": {
   "type": "string",
   "maxLength": 512,
   "description": "Human-readable search origin, such as Austin, Texas. Conflicts with uule."
  },
  "max_price": {
   "type": "number",
   "minimum": 0,
   "description": "Upper price bound, at or above min_price. Excludes the other refinements."
  },
  "min_price": {
   "type": "number",
   "maximum": 1000000000,
   "minimum": 0,
   "description": "Lower price bound. Excludes the other refinements."
  },
  "free_shipping": {
   "type": "boolean",
   "default": false,
   "description": "Only products with free shipping. Excludes the other refinements."
  },
  "google_domain": {
   "type": "string",
   "default": "google.com",
   "description": "Google domain to query, such as google.com or google.co.uk."
  },
  "small_business": {
   "type": "boolean",
   "default": false,
   "description": "Only produ
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "pagination": {
   "type": "object",
   "description": "Present when more results exist: next (a ready-made URL for the next page) or next_page_token."
  },
  "search_metadata": {
   "type": "object",
   "properties": {
    "id": {
     "type": "string"
    },
    "status": {
     "type": "string"
    },
    "total_time_taken": {
     "type": "number"
    }
   }
  },
  "shopping_results": {
   "type": "array",
   "items": {
    "type": "object"
   },
   "description": "Products: position, title, price, merchant, rating, gpcid, headline_offer_docid, image_docid, litescrape_product_link."
  },
  "search_parameters": {
   "type": "object",
   "description": "The request parameters as normalized by the API."
  }
 },
 "description": "Successful responses carry request metadata, the normalized parameters, and the result groups available for the operation. Optional groups are omitted when the source does not provide them. Errors are a JSON body with error, error_code, status_code, request_id, retryable, and the echoed search_parameters."
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-litescrape-com-search-google-shopping-a235fc5a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.litescrape.com](https://www.zero.xyz/host/agents.litescrape.com/llms.txt)
