# Bing Shopping Search

> Bing Shopping 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 Bing Shopping for products across multiple stores with price, rating, sale, and shipping data, plus sponsored product listings.

## Facts

- Endpoint: GET https://agents.openwebninja.com/realtime-bing-search-data/shopping?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-bing-shopping-search-1cf6c7bc
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_WKziOLkOtce3IW7tk9TDJ

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-bing-shopping-search-1cf6c7bc
```

Example prompt: Search Bing Shopping for 'coffee maker' in the US market, sorted by lowest price, and show me the first page of results including prices, ratings, and store names.

## When to prefer this

Use this endpoint when you need real-time product search results from Bing Shopping across multiple stores, including prices, sale badges, ratings, shipping info, and sponsored listings. Prefer this over Amazon-specific or Google Shopping APIs when you want Bing's multi-store coverage with built-in price filtering and sorting. Best for price comparison tasks, deal hunting, and retrieving product IDs to pass to the companion /product-details endpoint.

## Known failure modes

- Invalid country/language combination (e.g. country=us&language=es) returns HTTP 400
- Country without Bing Shopping support returns HTTP 400
- Page number past the end of results returns HTTP 200 with empty product arrays
- Page with no products in the requested price range returns HTTP 404
- Missing required 'query' parameter causes a validation error
- Unsupported sort_by value returns an error

## How this service works

Search Bing Shopping for products across stores, with Bing's own price sort and price
range filters.

Each product carries its price as displayed and parsed, sale and shipping badges, rating,
the store and its product page, and a `product_id` to pass to `/product-details`.
Products from Bing's paid product grid are returned separately, in `sponsored_products`.
On some markets, such as Japan, Brazil and Canada, Bing often shows only that grid.

**Pagination.** Bing serves up to about 180 products per query. Most markets show 36
products per page, so pages 1 to 5 hold results; markets and queries where Bing uses its
list layout show 20 per page, up to page 9. A page past the end returns a `200` with
empty arrays.

**Market and language.** `country` sets the stores, prices and currency. Bing Shopping
serves `language=en` and the market's own language; a combination it does not serve,
such as `country=us&language=es`, returns a 400, as does a country without Bing Shopping.

**Billing:** one request per call.

## Output

Returns a structured object containing an array of organic products and an array of sponsored products. Each product includes: product title, display price, extracted numeric price, original price (if on sale), currency code, sale flag, offer badge, shipping note, product rating, review count, store name, store favicon URL, product photo URL, product page URL, offer page URL, product ID (for use with /product-details), offer ID, sponsored flag, and 1-based rank position across pages.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "query"
 ],
 "properties": {
  "page": {
   "type": "integer",
   "default": 1,
   "maximum": 9,
   "minimum": 1,
   "description": "Page to return (each page includes up to 36 products, or 20 on Bing's list layout).\nBing serves up to about 180 products per query.\n\n**Default:** `1`\n\n**Allowed values:** `1-9`"
  },
  "query": {
   "type": "string",
   "example": "coffee maker",
   "description": "Search query, as you would type it on Bing Shopping.\n\n**Examples:**\n\n`coffee maker`\n\n`nike running shoes`"
  },
  "country": {
   "type": "string",
   "default": "us",
   "description": "Country code of the market to search, see ISO 3166-1 alpha-2. It sets the stores,\nprices and currency of the results.\n\n**Default:** `us`"
  },
  "sort_by": {
   "enum": [
    "BEST_MATCH",
    "LOWEST_PRICE",
    "HIGHEST_PRICE"
   ],
   "type": "string",
   "default": "BEST_MATCH",
   "description": "Return the products in a specific sort order. Applied by Bing.\n\n**Default:** `BEST_MATCH`\n\n**Allowed values:** `BEST_MATCH`, `LOWEST_PRICE`, `HIGHEST_PRICE`"
  },
  "language": {
   "type": "string",
   "default": "en",
   "description": "Language code for Bing's interface language, see ISO 639-1. Use `en` or the market's\nown language.\n\n**Default:** `en`"
  },
  "max_price": {
   "type": "number",
   "minimum": 0,
   "description": "Only return products priced at or below this value (`extracted_price`), in the\ncurrency of `country`. Applied by Bing where it supports price filtering, otherwise to\neach page of results; a page with no product in the range returns 404."
  },
  "min_price": {
   "type": "number",
   "minimum": 0,
   "description": "Only return products priced at or above this value (`extracted_price`), in the\ncurrency of `country`. Applied by Bing where it supports price filtering, otherwise to\neach page of results; a page with no product in the range returns 404."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "status",
  "request_id",
  "parameters",
  "data"
 ],
 "properties": {
  "data": {
   "type": "object",
   "required": [
    "products",
    "sponsored_products"
   ],
   "properties": {
    "products": {
     "type": "array",
     "items": {
      "type": "object",
      "required": [
       "product_id",
       "offer_id",
       "product_title",
       "price",
       "extracted_price",
       "original_price",
       "extracted_original_price",
       "currency",
       "on_sale",
       "installment_down_payment",
       "installment_monthly_payment",
       "installment_months",
       "product_condition",
       "offer_badge",
       "product_rating",
       "product_num_reviews",
       "store_name",
       "store_favicon",
       "shipping",
       "product_photo",
       "product_page_url",
       "offer_page_url",
       "sponsored",
       "position"
      ],
      "properties": {
       "price": {
        "type": "string",
        "example": "$98.58",
        "nullable": true,
        "description": "Current price as displayed, with its currency symbol."
       },
       "on_sale": {
        "type": "boolean",
        "example": true,
        "description": "Whether the product is on sale, shown with a previous price, a sale badge or a deal price."
       },
       "currency": {
        "type": "string",
        "example": "USD",
        "nullable": true,
        "description": "ISO 4217 code of the price currency, derived from the price symbol and the market."
       },
       "offer_id": {
        "type": "string",
        "example": "48020867475",
        "description": "Bing's id for this offer, one store's listing of the product."
       },
       "position": {
        "type": "integer",
        "example": 4,
        "description": "1-based rank of the product. In `products` it counts across pages, so page 2 starts at 37 on 36-product pages; in `sponsored_products` it counts within the page."
       },
       "shipping": {
        "type": "string",
        "example": "Free shipping",
        "nullable": true,
        "description": "Shipping note as Bing prints it, for example `Free shipping`."
       },
       "sponsored": {
        "type": "boolean",
        "example": false,
        "description": "`true` on `sponsored_products`, the paid listings, and `false` on `products`."
       },
       "product_id": {
        "type": "string",
        "example": "MXx1c3wxN3wzfDE3N0IwNEE3MkNFQTg0NjAyNTg0MEEx
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-openwebninja-com-bing-shopping-search-1cf6c7bc/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)
