Skip to main content
Glama

Get a Shopping product

shopping_get_product
Read-onlyIdempotent

One Google Shopping product: description, specs, images, rating and its offers from each store.

Use when: "what specs does Google list for this product", "how is it described and rated across stores". Not for: the store list with shipping and total price, use shopping_get_sellers. Reviews, use shopping_get_reviews. Returns: Record. product_id, gid, data_docid, title, description, url, images[], rating, ratings_count, specs[] (name, value), offers[] (seller, url, price, regular_price, currency, seller_rating, seller_ratings_count, availability). Pass product_id, gid and data_docid together, from one shopping_search_products row. Cost: 1 credit. Cached 1 day. Can take up to a minute. Example: {"product_id": "13896795030841728717", "gid": "12076690216614034454", "data_docid": "10381679383724335789"}

Input Schema

NameRequiredDescriptionDefault
gidNoFrom shopping_search_products; pass it with product_id.
dry_runNoReturn only meta with the estimate. Costs nothing.
languageNoISO 639-1 language code. Default en.en
locationNoProvider location name or code. Default United States.United States
data_docidNoFrom shopping_search_products; pass it with product_id.
product_idYesFrom shopping_search_products.
max_creditsNoRefuse with BudgetExceeded if the estimate is higher.

Output Schema

NameRequiredDescriptionDefault
gidNo
urlNo
metaYes
errorNo
hintsYes
specsNo
titleNo
imagesNo
offersNo
ratingNo
data_docidNo
product_idNo
descriptionNo
ratings_countNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / meta / properties / monitor_offer
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "This lookup came back on another day: after the task, offer the user once a monitor that repeats it, previewing its cost first.",
      +  "properties": {
      +    "cadence": {
      +      "type": "string"
      +    },
      +    "est_credits_month": {
      +      "type": "number"
      +    },
      +    "fields": {
      +      "additionalProperties": {},
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "message": {
      +      "type": "string"
      +    },
      +    "preset": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "preset",
      +    "fields",
      +    "cadence",
      +    "est_credits_month",
      +    "message"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / properties / meta / properties / credits_remaining / description
      Previous value: -"The workspace's credits left after this call. null when the call did not check the balance (free tools, cache hits, dry runs, tasks) or the balance has no limit."New value: +"The workspace's credits left after this call. null when the call did not check the balance (free tools, cache hits, dry runs, tasks) or the balance has no limit. Leaves out credits held for calls still running, so it can dip during parallel calls and come back; credits_charged is what this call cost."
  3. Changed1 schema field changed
    • addedOutput schema / properties / meta / properties / feedback_request
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Once per workspace: after the task, ask the user once for feedback and send any answer with submit_feedback.",
      +  "properties": {
      +    "message": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "message"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • changedOutput schema / properties / meta / properties / credits_notice / description
      Previous value: -"A free workspace is low on credits, at most once a day. Tell the user once."New value: +"The workspace is low on credits, at most once a day. Tell the user once."
  5. Changed15 schema fields changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / properties / max_credits / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / provider
      Removed value: -{
      -  "description": "Provider id. Defaults to the server default for the tool.",
      -  "type": "string"
      -}
    • removedOutput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / properties / error / additionalProperties
      Added value: +{}
    • removedOutput schema / properties / error / oneOf
      Removed value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "const": "BudgetExceeded",
      -        "type": "string"
      -      },
      -      "est_credits": {
      -        "type": "number"
      -      },
      -      "max_credits": {
      -        "type": "number"
      -      },
      -      "message": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "est_credits",
      -      "max_credits",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "billing_url": {
      -        "type": "string"
      -      },
      -      "error": {
      -        "const": "InsufficientCredits",
      -        "type": "string"
      -      },
      -      "est_credits": {
      -        "type": "number"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "upgrade_url": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "est_credits",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "const": "NoData",
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "const": "InvalidTarget",
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "target": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "target",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "const": "InvalidProvider",
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "provider": {
      -        "type": "string"
      -      },
      -      "valid_providers": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "provider",
      -      "valid_providers",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "const": "ProviderUnavailable",
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "provider": {
      -        "type": "string"
      -      },
      -      "retry_after_s": {
      -        "type": "number"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "provider",
      -      "retry_after_s",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "const": "ConcurrencyLimit",
      -        "type": "string"
      -      },
      -      "limit": {
      -        "type": "number"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "retry_after_s": {
      -        "type": "number"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "limit",
      -      "retry_after_s",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "cap": {
      -        "type": "number"
      -      },
      -      "error": {
      -        "const": "SpendCapReached",
      -        "type": "string"
      -      },
      -      "est_credits": {
      -        "type": "number"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "period": {
      -        "enum": [
      -          "day",
      -          "month"
      -        ],
      -        "type": "string"
      -      },
      -      "resets_at": {
      -        "type": "string"
      -      },
      -      "spent": {
      -        "type": "number"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "period",
      -      "cap",
      -      "spent",
      -      "est_credits",
      -      "resets_at",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "const": "TaskFailed",
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "task_id": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "task_id",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "const": "TaskPending",
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "poll_after_s": {
      -        "type": "number"
      -      },
      -      "task_id": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "task_id",
      -      "poll_after_s",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "connect_url": {
      -        "type": "string"
      -      },
      -      "engine": {
      -        "type": "string"
      -      },
      -      "error": {
      -        "const": "NotConnected",
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "engine",
      -      "connect_url",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "engine": {
      -        "type": "string"
      -      },
      -      "error": {
      -        "const": "EngineMisconfigured",
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "error",
      -      "engine",
      -      "message"
      -    ],
      -    "type": "object"
      -  }
      -]
    • addedOutput schema / properties / error / properties
      Added value: +{
      +  "error": {
      +    "enum": [
      +      "BudgetExceeded",
      +      "InsufficientCredits",
      +      "NoData",
      +      "InvalidTarget",
      +      "InvalidProvider",
      +      "ProviderUnavailable",
      +      "ConcurrencyLimit",
      +      "SpendCapReached",
      +      "TaskFailed",
      +      "TaskPending",
      +      "NotConnected",
      +      "EngineMisconfigured"
      +    ],
      +    "type": "string"
      +  },
      +  "message": {
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / properties / error / required
      Added value: +[
      +  "error",
      +  "message"
      +]
    • addedOutput schema / properties / error / type
      Added value: +"object"
    • removedOutput schema / properties / errors
      Removed value: -{
      -  "description": "Per-input failures of a batch call.",
      -  "items": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "oneOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "error": {
      -                "const": "BudgetExceeded",
      -                "type": "string"
      -              },
      -              "est_credits": {
      -                "type": "number"
      -              },
      -              "max_credits": {
      -                "type": "number"
      -              },
      -              "message": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "error",
      -              "est_credits",
      -              "max_credits",
      -              "message"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "billing_url": {
      -                "type": "string"
      -              },
      -              "error": {
      -                "const": "InsufficientCredits",
      -                "type": "string"
      -              },
      -              "est_credits": {
      -                "type": "number"
      -              },
      -              "message": {
      -                "type": "string"
      -              },
      -              "upgrade_url": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "error",
      -              "est_credits",
      -              "message"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "error": {
      -                "const": "NoData",
      -                "type": "string"
      -              },
      -              "message": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "error",
      -              "message"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "error": {
      -                "const": "InvalidTarget",
      -                "type": "string"
      -              },
      -              "message": {
      -                "type": "string"
      -              },
      -              "target": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "error",
      -              "target",
      -              "message"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "error": {
      -                "const": "InvalidProvider",
      -                "type": "string"
      -              },
      -              "message": {
      -                "type": "string"
      -              },
      -              "provider": {
      -                "type": "string"
      -              },
      -              "valid_providers": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              }
      -            },
      -            "required": [
      -              "error",
      -              "provider",
      -              "valid_providers",
      -              "message"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "error": {
      -                "const": "ProviderUnavailable",
      -                "type": "string"
      -              },
      -              "message": {
      -                "type": "string"
      -              },
      -              "provider": {
      -                "type": "string"
      -              },
      -              "retry_after_s": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "error",
      -              "provider",
      -              "retry_after_s",
      -              "message"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "error": {
      -                "const": "ConcurrencyLimit",
      -                "type": "string"
      -              },
      -              "limit": {
      -                "type": "number"
      -              },
      -              "message": {
      -                "type": "string"
      -              },
      -              "retry_after_s": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "error",
      -              "limit",
      -              "retry_after_s",
      -              "message"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "cap": {
      -                "type": "number"
      -              },
      -              "error": {
      -                "const": "SpendCapReached",
      -                "type": "string"
      -              },
      -              "est_credits": {
      -                "type": "number"
      -              },
      -              "message": {
      -                "type": "string"
      -              },
      -              "period": {
      -                "enum": [
      -                  "day",
      -                  "month"
      -                ],
      -                "type": "string"
      -              },
      -              "resets_at": {
      -                "type": "string"
      -              },
      -              "spent": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "error",
      -              "period",
      -              "cap",
      -              "spent",
      -              "est_credits",
      -              "resets_at",
      -              "message"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "error": {
      -                "const": "TaskFailed",
      -                "type": "string"
      -              },
      -              "message": {
      -                "type": "string"
      -              },
      -              "task_id": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "error",
      -              "task_id",
      -              "message"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "error": {
      -                "const": "TaskPending",
      -                "type": "string"
      -              },
      -              "message": {
      -                "type": "string"
      -              },
      -              "poll_after_s": {
      -                "type": "number"
      -              },
      -              "task_id": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "error",
      -              "task_id",
      -              "poll_after_s",
      -              "message"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "connect_url": {
      -                "type": "string"
      -              },
      -              "engine": {
      -                "type": "string"
      -              },
      -              "error": {
      -                "const": "NotConnected",
      -                "type": "string"
      -              },
      -              "message": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "error",
      -              "engine",
      -              "connect_url",
      -              "message"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "engine": {
      -                "type": "string"
      -              },
      -              "error": {
      -                "const": "EngineMisconfigured",
      -                "type": "string"
      -              },
      -              "message": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "error",
      -              "engine",
      -              "message"
      -            ],
      -            "type": "object"
      -          }
      -        ]
      -      },
      -      "input": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "input",
      -      "error"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • changedOutput schema / properties / meta / properties / rows_available / anyOf
      Previous value: -[
      -  {
      -    "maximum": 9007199254740991,
      -    "minimum": -9007199254740991,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / meta / properties / rows_returned / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / meta / properties / rows_returned / minimum
      Removed value: --9007199254740991
    • changedOutput schema / properties / offers / items / properties / seller_ratings_count / anyOf
      Previous value: -[
      -  {
      -    "maximum": 9007199254740991,
      -    "minimum": -9007199254740991,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / ratings_count / anyOf
      Previous value: -[
      -  {
      -    "maximum": 9007199254740991,
      -    "minimum": -9007199254740991,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  6. Changed3 schema fields changed
    • addedOutput schema / properties / meta / properties / credits_notice
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "A free workspace is low on credits, at most once a day. Tell the user once.",
      +  "properties": {
      +    "message": {
      +      "type": "string"
      +    },
      +    "resets_at": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "upgrade_url": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "upgrade_url",
      +    "resets_at",
      +    "message"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / meta / properties / credits_remaining
      Added value: +{
      +  "description": "The workspace's credits left after this call. null when the call did not check the balance (free tools, cache hits, dry runs, tasks) or the balance has no limit.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / meta / required
      Previous value: -[
      -  "provider",
      -  "credits_charged",
      -  "est_credits",
      -  "cached",
      -  "data_as_of",
      -  "rows_returned",
      -  "rows_available",
      -  "cursor",
      -  "request_id"
      -]New value: +[
      +  "provider",
      +  "credits_charged",
      +  "est_credits",
      +  "cached",
      +  "data_as_of",
      +  "rows_returned",
      +  "rows_available",
      +  "cursor",
      +  "request_id",
      +  "credits_remaining"
      +]
  7. Changed2 schema fields changed
    • removedOutput schema / properties / specs / items / properties / group
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • changedOutput schema / properties / specs / items / required
      Previous value: -[
      -  "group",
      -  "name",
      -  "value"
      -]New value: +[
      +  "name",
      +  "value"
      +]
  8. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources