Product Queries

What does it do?
The product query gives complete access to the BestBuy.com current and past product catalog.
The Product API
          Base URL: http://api.remix.bestbuy.com/{version}/products
          Curent Version: V1
          HTTP Method: GET
Default Queries:
If you run a query without setting the optional parameters, this is what happens:
  • Returns in XML Format. For all attributes see Parameter [format]
  • Sorted by Product -> Name. [sort]
  • A subset of all possible attributes is shown by default. [show]
  • Results will be page 1 of X. 10 results per page.[page]
  • Results are only active SKU's <active>true</active> .[page]
Attributes
Each query URL will have required and optional parameters that must be included to complete a query.
Parameters Required Options
apiKey yes String Value
For more information, see Requesting a Key.
format no String Value
json or xml
page no Positive Integer Value
show no String Value
Specify string of "all" or
Product Attributes
Example: sku,name,url
Comma delimited
sort no String Value
Attribute.{SORT METHOD}
Methods: desc, asc
Basic Examples
#1 This is the most basic query that will return page 1 of all products.
          http://api.remix.bestbuy.com/v1/products?apiKey={YourApiKey}
#2 This query changes the same #1 query format from the default XML to JSON.
          http://api.remix.bestbuy.com/v1/products?format=json&apiKey={YourApiKey}
#3 This query changed the same #1 query to the third page.
          http://api.remix.bestbuy.com/v1/products?page=3&apiKey={API KEY HERE}
#4 This query changes the same #1 query from the subset attributes to ALL attributes.
          http://api.remix.bestbuy.com/v1/products?show=all&apiKey={API KEY HERE}
#5 This query changes the same #1 query to sort by the manufactuer attribute in descending manner.
          http://api.remix.bestbuy.com/v1/products?sort=manufacturer.desc&apiKey={API KEY HERE}
Filtering Functions
You can essentially filter by any active product Attribute. List of Attributes here {Link Coming Soon}
Function Required Options
Operators Supported: =, >, <, <=, >=, !=
products() no String Value
products({attribute} in()) no String Value
comma delimited

Examples for products()
#1 This filter pulls all products that are from the manufactuer Canon.
          http://api.remix.bestbuy.com/v1/products(manufacturer='canon')?apiKey={API KEY HERE}
#2 This filter pulls all products that have a sale price less than $20.33.
          http://api.remix.bestbuy.com/v1/products(salePrice<20.33)?apiKey={API KEY HERE}
#3 This is a combination of #1 and #2. It takes all products from Canon that have a sale price less than $20.33.
          http://api.remix.bestbuy.com/v1/products(manufacturer='canon'&salePrice<20.33)?apiKey={API KEY HERE}
#4 This is a way to get all products that were updated today or any date you specify. Change itemUpdateDate to the date you are checking.
          http://api.remix.bestbuy.com/v1/products(itemUpdateDate=2009-05-07)?apiKey={API KEY HERE}
#5 This is a way to get all products that are in a specific category > id. This one is specific to items in the Outlet Store id.
          http://api.remix.bestbuy.com/v1/products(categoryPath.id=pcmcat152400050000)?apiKey={API KEY HERE}
Examples for products({attribute} in())
#1 This filter pulls the two products that match with SKU 8880044 and 8740311.
          http://api.remix.bestbuy.com/v1/products(sku in(8880044,8740311))?apiKey={API KEY HERE}
#2 This filter pulls all products from the manufacturers canon and sony.
          http://api.remix.bestbuy.com/v1/products(manufacturer in(canon,sony))?apiKey={API KEY HERE}
#3 This filter pulls all products that have a sale price of $19.99 and $99.99.
          http://api.remix.bestbuy.com/v1/products(salePrice in(19.99,99.99))?apiKey={API KEY HERE}
Checking Product Availability by store
You can also search for specific products or types of products in specific stores, by combining 2 type filter operations with a +, in the following form:
  • stores({STORE FILTERS})+products({PRODUCT FILTERS})
  • products({PRODUCT FILTERS})+stores({STORE FILTERS})
In each case, the stores and products yielded by each filter operation are joined such that a store is only returned if they also include one or more of the products yielded by the other query, and vice versa, a product is only returned if it is found in a store from other query. Whichever type is on the left-hand side is the main result of the query. For example, stores({FILTER})+products({FILTER}) will return a list of stores, each with a set of products as sub-elements.
Examples for Product Availablity by store
#1 This filter pulls stores within 20 miles of Richfield, MN (55423) that have 32gb iPod Touch's in stock.
          http://api.remix.bestbuy.com/v1/stores(area(55423,20))+products(name=ipod* touch* 32gb*)?apiKey={API KEY HERE}
#2 This filter is essentially the same as #1 but flips the data and makes the stores the sub-elements
          http://api.remix.bestbuy.com/v1/products(name=ipod* touch* 32gb*)+stores(area(55423,20))?apiKey={API KEY HERE}

Comments