{
  "object": "tool_definitions",
  "base_url": "https://cart-route.com/",
  "auth": {
    "header": "Authorization: Bearer cr_live_...",
    "keyless": "Optional for every tool except get_account: without a key you get 10 calls per day per IP, answered from recent searches and daily-tracked products. A key gets fresh retailer lookups.",
    "get_a_key": "https://cart-route.com/signup",
    "self_register": {
      "method": "POST",
      "url": "https://cart-route.com/api/v1/accounts"
    }
  },
  "execute": {
    "search_products": {
      "method": "GET",
      "url": "https://cart-route.com/api/v1/search",
      "arguments_to_query": {
        "query": "q"
      },
      "path_params": [],
      "needs_key": false
    },
    "get_product": {
      "method": "GET",
      "url": "https://cart-route.com/api/v1/products/{id}",
      "arguments_to_query": {},
      "path_params": [
        "id"
      ],
      "needs_key": false
    },
    "get_price_history": {
      "method": "GET",
      "url": "https://cart-route.com/api/v1/products/{id}/price-history",
      "arguments_to_query": {},
      "path_params": [
        "id"
      ],
      "needs_key": false
    },
    "find_coupons": {
      "method": "GET",
      "url": "https://cart-route.com/api/v1/coupons",
      "arguments_to_query": {},
      "path_params": [],
      "needs_key": false
    },
    "list_retailers": {
      "method": "GET",
      "url": "https://cart-route.com/api/v1/retailers",
      "arguments_to_query": {},
      "path_params": [],
      "needs_key": false
    },
    "list_categories": {
      "method": "GET",
      "url": "https://cart-route.com/api/v1/categories",
      "arguments_to_query": {},
      "path_params": [],
      "needs_key": false
    },
    "get_account": {
      "method": "GET",
      "url": "https://cart-route.com/api/v1/account",
      "arguments_to_query": {},
      "path_params": [],
      "needs_key": true
    }
  },
  "how_to_execute": "Substitute path_params into url, send the remaining arguments as query parameters (renamed per arguments_to_query; arrays comma-separated), and return the JSON response to the model. Add format=md for a compact Markdown answer.",
  "mcp": {
    "url": "https://cart-route.com/mcp",
    "transport": "streamable-http",
    "same_tools": true
  },
  "openai": [
    {
      "type": "function",
      "function": {
        "name": "search_products",
        "description": "Search Amazon, Best Buy and eBay in one call. Returns matched products, each with every retailer offer, landed price (price + shipping), the best applicable coupon, effective price after that coupon, and a 90-day price verdict. Natural-language price bounds in the query (\"under $400\") are understood. Costs 1 credit.",
        "parameters": {
          "type": "object",
          "properties": {
            "query": {
              "type": "string",
              "description": "What to find, e.g. \"sony noise cancelling headphones under $400\". Max 200 characters.",
              "maxLength": 200
            },
            "category": {
              "type": "string",
              "description": "Exact category name from list_categories, e.g. \"TVs\"."
            },
            "brand": {
              "type": "string",
              "description": "Exact brand name, e.g. \"Sony\"."
            },
            "retailers": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Limit to these retailer ids, e.g. [\"amazon\",\"bestbuy\"]."
            },
            "min_price": {
              "type": "number",
              "minimum": 0,
              "description": "Minimum effective price in USD."
            },
            "max_price": {
              "type": "number",
              "minimum": 0,
              "description": "Maximum effective price in USD."
            },
            "condition": {
              "type": "string",
              "enum": [
                "any",
                "new",
                "used"
              ],
              "description": "any (default), new, or used (renewed, refurbished, open box, used). Out-of-stock offers are never returned."
            },
            "include_membership": {
              "type": "boolean",
              "description": "Include retailers that need a paid membership to buy. Default true."
            },
            "sort": {
              "type": "string",
              "enum": [
                "relevance",
                "price_asc",
                "price_desc",
                "savings",
                "rating"
              ],
              "description": "Default relevance."
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 25,
              "description": "Products per page. Default 10."
            },
            "cursor": {
              "type": "string",
              "description": "next_cursor from a previous call, unchanged."
            }
          },
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "get_product",
        "description": "Full product record: specs, every retailer offer, applicable coupons and price verdict. Accepts a product id (prd_...), slug, GTIN or MPN. Costs 1 credit.",
        "parameters": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "Product id, slug, GTIN or MPN."
            }
          },
          "required": [
            "id"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "get_price_history",
        "description": "Daily lowest price and per-retailer series for one product. Use it to judge whether today's price is a real deal. Costs 1 credit.",
        "parameters": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "Product id, slug, GTIN or MPN."
            },
            "days": {
              "type": "integer",
              "minimum": 7,
              "maximum": 180,
              "description": "Window length. Default 90."
            }
          },
          "required": [
            "id"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "find_coupons",
        "description": "Retailer coupon codes. Not yet connected for the live retailers, so this returns an empty list; use discount_from_list_pct on offers instead. Costs 0 credit.",
        "parameters": {
          "type": "object",
          "properties": {
            "retailer": {
              "type": "string",
              "description": "Retailer id, e.g. \"amazon\"."
            },
            "category": {
              "type": "string",
              "description": "Category name, e.g. \"Kitchen\"."
            },
            "product": {
              "type": "string",
              "description": "Product id, slug, GTIN or MPN."
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "list_retailers",
        "description": "Retailer ids, membership requirements, free-shipping thresholds, return windows and refresh intervals. Free.",
        "parameters": {
          "type": "object",
          "properties": {},
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "list_categories",
        "description": "Category names with product counts, for use as the `category` filter. Free.",
        "parameters": {
          "type": "object",
          "properties": {},
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "get_account",
        "description": "Remaining credits and whether the email-verification bonus is still available. Free; needs an API key.",
        "parameters": {
          "type": "object",
          "properties": {},
          "additionalProperties": false
        }
      }
    }
  ],
  "anthropic": [
    {
      "name": "search_products",
      "description": "Search Amazon, Best Buy and eBay in one call. Returns matched products, each with every retailer offer, landed price (price + shipping), the best applicable coupon, effective price after that coupon, and a 90-day price verdict. Natural-language price bounds in the query (\"under $400\") are understood. Costs 1 credit.",
      "input_schema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "What to find, e.g. \"sony noise cancelling headphones under $400\". Max 200 characters.",
            "maxLength": 200
          },
          "category": {
            "type": "string",
            "description": "Exact category name from list_categories, e.g. \"TVs\"."
          },
          "brand": {
            "type": "string",
            "description": "Exact brand name, e.g. \"Sony\"."
          },
          "retailers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Limit to these retailer ids, e.g. [\"amazon\",\"bestbuy\"]."
          },
          "min_price": {
            "type": "number",
            "minimum": 0,
            "description": "Minimum effective price in USD."
          },
          "max_price": {
            "type": "number",
            "minimum": 0,
            "description": "Maximum effective price in USD."
          },
          "condition": {
            "type": "string",
            "enum": [
              "any",
              "new",
              "used"
            ],
            "description": "any (default), new, or used (renewed, refurbished, open box, used). Out-of-stock offers are never returned."
          },
          "include_membership": {
            "type": "boolean",
            "description": "Include retailers that need a paid membership to buy. Default true."
          },
          "sort": {
            "type": "string",
            "enum": [
              "relevance",
              "price_asc",
              "price_desc",
              "savings",
              "rating"
            ],
            "description": "Default relevance."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Products per page. Default 10."
          },
          "cursor": {
            "type": "string",
            "description": "next_cursor from a previous call, unchanged."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "get_product",
      "description": "Full product record: specs, every retailer offer, applicable coupons and price verdict. Accepts a product id (prd_...), slug, GTIN or MPN. Costs 1 credit.",
      "input_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Product id, slug, GTIN or MPN."
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "get_price_history",
      "description": "Daily lowest price and per-retailer series for one product. Use it to judge whether today's price is a real deal. Costs 1 credit.",
      "input_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Product id, slug, GTIN or MPN."
          },
          "days": {
            "type": "integer",
            "minimum": 7,
            "maximum": 180,
            "description": "Window length. Default 90."
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "find_coupons",
      "description": "Retailer coupon codes. Not yet connected for the live retailers, so this returns an empty list; use discount_from_list_pct on offers instead. Costs 0 credit.",
      "input_schema": {
        "type": "object",
        "properties": {
          "retailer": {
            "type": "string",
            "description": "Retailer id, e.g. \"amazon\"."
          },
          "category": {
            "type": "string",
            "description": "Category name, e.g. \"Kitchen\"."
          },
          "product": {
            "type": "string",
            "description": "Product id, slug, GTIN or MPN."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "list_retailers",
      "description": "Retailer ids, membership requirements, free-shipping thresholds, return windows and refresh intervals. Free.",
      "input_schema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    },
    {
      "name": "list_categories",
      "description": "Category names with product counts, for use as the `category` filter. Free.",
      "input_schema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    },
    {
      "name": "get_account",
      "description": "Remaining credits and whether the email-verification bonus is still available. Free; needs an API key.",
      "input_schema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
  ],
  "gemini": {
    "function_declarations": [
      {
        "name": "search_products",
        "description": "Search Amazon, Best Buy and eBay in one call. Returns matched products, each with every retailer offer, landed price (price + shipping), the best applicable coupon, effective price after that coupon, and a 90-day price verdict. Natural-language price bounds in the query (\"under $400\") are understood. Costs 1 credit.",
        "parameters": {
          "type": "object",
          "properties": {
            "query": {
              "type": "string",
              "description": "What to find, e.g. \"sony noise cancelling headphones under $400\". Max 200 characters."
            },
            "category": {
              "type": "string",
              "description": "Exact category name from list_categories, e.g. \"TVs\"."
            },
            "brand": {
              "type": "string",
              "description": "Exact brand name, e.g. \"Sony\"."
            },
            "retailers": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Limit to these retailer ids, e.g. [\"amazon\",\"bestbuy\"]."
            },
            "min_price": {
              "type": "number",
              "minimum": 0,
              "description": "Minimum effective price in USD."
            },
            "max_price": {
              "type": "number",
              "minimum": 0,
              "description": "Maximum effective price in USD."
            },
            "condition": {
              "type": "string",
              "enum": [
                "any",
                "new",
                "used"
              ],
              "description": "any (default), new, or used (renewed, refurbished, open box, used). Out-of-stock offers are never returned."
            },
            "include_membership": {
              "type": "boolean",
              "description": "Include retailers that need a paid membership to buy. Default true."
            },
            "sort": {
              "type": "string",
              "enum": [
                "relevance",
                "price_asc",
                "price_desc",
                "savings",
                "rating"
              ],
              "description": "Default relevance."
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 25,
              "description": "Products per page. Default 10."
            },
            "cursor": {
              "type": "string",
              "description": "next_cursor from a previous call, unchanged."
            }
          }
        }
      },
      {
        "name": "get_product",
        "description": "Full product record: specs, every retailer offer, applicable coupons and price verdict. Accepts a product id (prd_...), slug, GTIN or MPN. Costs 1 credit.",
        "parameters": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "Product id, slug, GTIN or MPN."
            }
          },
          "required": [
            "id"
          ]
        }
      },
      {
        "name": "get_price_history",
        "description": "Daily lowest price and per-retailer series for one product. Use it to judge whether today's price is a real deal. Costs 1 credit.",
        "parameters": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "Product id, slug, GTIN or MPN."
            },
            "days": {
              "type": "integer",
              "minimum": 7,
              "maximum": 180,
              "description": "Window length. Default 90."
            }
          },
          "required": [
            "id"
          ]
        }
      },
      {
        "name": "find_coupons",
        "description": "Retailer coupon codes. Not yet connected for the live retailers, so this returns an empty list; use discount_from_list_pct on offers instead. Costs 0 credit.",
        "parameters": {
          "type": "object",
          "properties": {
            "retailer": {
              "type": "string",
              "description": "Retailer id, e.g. \"amazon\"."
            },
            "category": {
              "type": "string",
              "description": "Category name, e.g. \"Kitchen\"."
            },
            "product": {
              "type": "string",
              "description": "Product id, slug, GTIN or MPN."
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        }
      },
      {
        "name": "list_retailers",
        "description": "Retailer ids, membership requirements, free-shipping thresholds, return windows and refresh intervals. Free.",
        "parameters": {
          "type": "object",
          "properties": {}
        }
      },
      {
        "name": "list_categories",
        "description": "Category names with product counts, for use as the `category` filter. Free.",
        "parameters": {
          "type": "object",
          "properties": {}
        }
      },
      {
        "name": "get_account",
        "description": "Remaining credits and whether the email-verification bonus is still available. Free; needs an API key.",
        "parameters": {
          "type": "object",
          "properties": {}
        }
      }
    ]
  }
}