# Google Shopping Product Search

> Google Shopping Product Search is a paid API for AI agents from agents.openwebninja.com, paid per call via MPP, price unknown, status unknown (last checked 2026-10-14).

Search Google Shopping for product listings with full details, sponsored products, and filter refinements using keywords and optional filters.

## Facts

- Endpoint: GET https://agents.openwebninja.com/realtime-product-search/v2/search?utm_source=zero.xyz
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Provider: agents.openwebninja.com
- Website: https://agents.openwebninja.com
- Canonical page: https://www.zero.xyz/c/agents-openwebninja-com-google-shopping-product-search-fd6f2cd1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_fuOEoPOIRDQpDWxIyZsZ9

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-openwebninja-com-google-shopping-product-search-fd6f2cd1
```

Example prompt: Search Google Shopping for wireless noise-cancelling headphones under $200, sorted by lowest price, only from Amazon or Best Buy, with free shipping, and show me the first 20 results in the US.

## When to prefer this

Use this endpoint when you need real-time Google Shopping product listings with full details, pricing, and store availability across multiple retailers. Prefer it over Amazon-specific or retailer-specific endpoints when you want cross-retailer comparison, need Google Shopping's filter/refinement system, or need to serve results for countries beyond the US. It is the right choice when the user wants ranked, filterable product search results rather than a single product's details.

## Known failure modes

- Missing required 'q' parameter returns validation error
- Invalid country code returns no results or error
- Requested page beyond available results returns empty product list
- Store name misspelling results in no filtered offers
- Price range filters that are too narrow may return zero results
- Rate limiting or quota exhaustion returns 402 or 429 error

## How this service works

Search and get product listings (including full product details), sponsored products, and search filters / refinements from Google Shopping.

## Output

Returns an object containing an array of product listings (with full product details and sponsored items), an array of available search filters/refinements (each with title, selectable values, query parameters, and shoprs reference IDs for chaining), plus a status string and unique request ID.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "q"
 ],
 "properties": {
  "q": {
   "type": "string",
   "description": "Search query / keyword"
  },
  "page": {
   "type": "integer",
   "default": 1,
   "maximum": 100,
   "minimum": 1,
   "description": "Results page to return (each page contains up to 40 product results)."
  },
  "limit": {
   "type": "integer",
   "default": 40,
   "maximum": 120,
   "minimum": 1,
   "description": "Maximum number of products to return."
  },
  "shoprs": {
   "type": "string",
   "description": "The parameter controls filtering, along with the q parameter.  \n  It should be used in combination with the updated q parameter, which now contains the name of the filter applied next to your original query.  \n  You can get the shoprs filter value from the response of this endpoint, under the filters response field.  \n  In addition, it can be obtained directly from Google Shopping and used with the endpoint."
  },
  "stores": {
   "type": "string",
   "description": "Only return product offers from specific stores.  Accepts a single or a comma delimited list of store names (e.g. best buy,walmart,amazon)."
  },
  "country": {
   "type": "string",
   "default": "us",
   "description": "Country code of the region/country to return offers for. Allowed values: See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2."
  },
  "on_sale": {
   "type": "boolean",
   "default": false,
   "description": "Only return product offers that are currently on sale."
  },
  "sort_by": {
   "enum": [
    "BEST_MATCH",
    "TOP_RATED",
    "LOWEST_PRICE",
    "HIGHEST_PRICE"
   ],
   "type": "string",
   "default": "BEST_MATCH",
   "description": "Sort product offers by best match, top rated, lowest or highest price."
  },
  "language": {
   "type": "string",
   "default": "en",
   "description": "The language of the results. Allowed values: See https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes."
  },
  "max_price": {
   "type": "number",
   "description": "Only return product offers with price lower than a certain value"
  },
  "min_price": {
   "type": "number",
   "description": "Only return product offers with price greater than a certain value"
  },
  "free_returns": {
   "type": "boolean",
   "default": false,
   "description": "Only return product offers that offer free returns."
  },
  "free_shipping": {
   "type": "boolean",
   "default": false,
   "description": "Only return product offers that offer free shipping/delivery."
  },
  "return_filte
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "data": {
   "type": "object",
   "properties": {
    "filters": {
     "type": "array",
     "items": {
      "type": "object",
      "properties": {
       "title": {
        "type": "string",
        "description": "The title of the filter."
       },
       "values": {
        "type": "array",
        "items": {
         "type": "object",
         "properties": {
          "q": {
           "type": "string",
           "description": "The query parameter value for the filter."
          },
          "title": {
           "type": "string",
           "description": "The display name of the filter value."
          },
          "shoprs": {
           "type": "string",
           "description": "A reference ID for shopping results."
          }
         }
        }
       },
       "multivalue": {
        "type": "boolean",
        "description": "Indicates if multiple values can be selected for the filter."
       }
      }
     }
    }
   }
  },
  "status": {
   "type": "string",
   "description": "The status of the response, indicating success or failure."
  },
  "request_id": {
   "type": "string",
   "description": "A unique identifier for the request."
  }
 }
}
```

## More

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