├── .npmignore ├── test ├── fixtures │ ├── --h shows the help screen_.json │ ├── -v flag prints the version_.json │ ├── --help shows the help screen_.json │ ├── invalid resource returns error_.json │ ├── --version flag prints the version_.json │ ├── no arguments shows the help screen_.json │ ├── fetch a product by sku and output to a file_.json │ ├── fetch a product by sku and output to stdout_.json │ ├── fetch a product by sku and output to a file as xml_.json │ ├── fetch a product by sku and output to stdout as xml_.json │ ├── fetch a product by sku and output to stdout as xml in bare mode_.json │ ├── fetch a category by id and output to stdout_.json │ ├── fetch products as csv_.json │ ├── fetch products as tsv_.json │ ├── fetch products as csv without the header row using --bare_.json │ ├── fetch products as tsv without the header row using --bare_.json │ ├── fetch stores by postalCode and output to stdout_.json │ ├── fetch a product by sku and output to stdout in bare mode_.json │ ├── fetch stores and sort by name_.json │ ├── fetch all stores and sort by name desc_.json │ └── fetch all stores_.json ├── tape-nock-setup.js └── index.test.js ├── images └── download-all-stores.gif ├── .gitignore ├── .github └── workflows │ └── test.yml ├── CHANGELOG.md ├── LICENSE.md ├── package.json ├── README.md ├── index.js └── bin.js /.npmignore: -------------------------------------------------------------------------------- 1 | test/fixtures 2 | -------------------------------------------------------------------------------- /test/fixtures/--h shows the help screen_.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /test/fixtures/-v flag prints the version_.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /test/fixtures/--help shows the help screen_.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /test/fixtures/invalid resource returns error_.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /test/fixtures/--version flag prints the version_.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /test/fixtures/no arguments shows the help screen_.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /images/download-all-stores.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BestBuyAPIs/bestbuy-cli/HEAD/images/download-all-stores.gif -------------------------------------------------------------------------------- /test/tape-nock-setup.js: -------------------------------------------------------------------------------- 1 | const tape = require('tape') 2 | const test = require('tape-nock')(tape, { 3 | defaultTestOptions: { 4 | after: function (scope) { 5 | // when running test, switch apiKey to XXX to match fixtures 6 | scope.filteringPath(/apiKey=[^&]+/g, 'apiKey=XXX') 7 | }, 8 | afterRecord: function (scopes) { 9 | // avoid exposing API keys in the fixtures 10 | let scopesString = JSON.stringify(scopes) 11 | scopesString = scopesString.replace(/apiKey=[^\\<&"]+/g, 'apiKey=XXX') 12 | return JSON.parse(scopesString) 13 | } 14 | } 15 | }) 16 | 17 | module.exports = test 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | 5 | # Runtime data 6 | pids 7 | *.pid 8 | *.seed 9 | 10 | # Directory for instrumented libs generated by jscoverage/JSCover 11 | lib-cov 12 | 13 | # Coverage directory used by tools like istanbul 14 | coverage 15 | 16 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 17 | .grunt 18 | 19 | # node-waf configuration 20 | .lock-wscript 21 | 22 | # Compiled binary addons (http://nodejs.org/api/addons.html) 23 | build/Release 24 | 25 | # Dependency directory 26 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git 27 | node_modules 28 | 29 | dist 30 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: test 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | pull_request: 8 | branches: 9 | - '**' 10 | 11 | jobs: 12 | test: 13 | runs-on: ubuntu-latest 14 | strategy: 15 | matrix: 16 | node: [ '8', '10', '12', '14' ] 17 | fail-fast: false 18 | name: Test with node ${{ matrix.node }} 19 | steps: 20 | - uses: actions/checkout@v2 21 | - name: Setup node 22 | uses: actions/setup-node@v2 23 | with: 24 | node-version: ${{ matrix.node }} 25 | 26 | - name: Install dependencies 27 | run: npm install 28 | 29 | - name: Test 30 | env: 31 | BBY_API_KEY: XXX 32 | NO_UPDATE_NOTIFIER: 1 33 | run: npm test 34 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # bestbuy-cli change log 2 | 3 | All notable changes to this project will be documented in this file. 4 | 5 | The format is based on [Keep a Changelog](http://keepachangelog.com/) 6 | and this project adheres to [Semantic Versioning](http://semver.org/). 7 | 8 | ## 1.1.1 2017-11-20 9 | 10 | * Updated `bestbuy` package as even more stability improvements were added when downloading large streams. 11 | 12 | ## 1.1.0 2017-11-20 13 | 14 | * New feature: added `--debug` flag to help troubleshoot network issues 15 | 16 | ## 1.0.2 2017-11-18 17 | 18 | * Updated `bestbuy` package to improve stability when downloading large streams. 19 | 20 | ## 1.0.1 2017-09-26 21 | 22 | * Avoid throwing errors to make error messages friendlier 23 | 24 | ## 1.0.0 2017-09-25 25 | 26 | * Initial Release. See README for full details. 27 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Best Buy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /test/fixtures/fetch a product by sku and output to a file_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/products/5919905.json?format=json&apiKey=XXX&show=name", 6 | "body": "", 7 | "status": 200, 8 | "response": { 9 | "name": "Nintendo - Switch™ 32GB Super Mario Odyssey Edition Bundle - Red Joy-Con" 10 | }, 11 | "rawHeaders": [ 12 | "Access-Control-Allow-Headers", 13 | "origin, x-requested-with, accept", 14 | "Access-Control-Allow-Methods", 15 | "GET", 16 | "Access-Control-Allow-Origin", 17 | "*", 18 | "Access-Control-Max-Age", 19 | "3628800", 20 | "Content-Type", 21 | "application/json; charset=UTF-8", 22 | "Date", 23 | "Fri, 22 Sep 2017 21:57:58 GMT", 24 | "Server", 25 | "Best Buy Public APIs", 26 | "X-Cache-Hit", 27 | "true", 28 | "Content-Length", 29 | "85", 30 | "Connection", 31 | "Close" 32 | ] 33 | } 34 | ] -------------------------------------------------------------------------------- /test/fixtures/fetch a product by sku and output to stdout_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/products/5919905.json?format=json&apiKey=XXX&show=name", 6 | "body": "", 7 | "status": 200, 8 | "response": { 9 | "name": "Nintendo - Switch™ 32GB Super Mario Odyssey Edition Bundle - Red Joy-Con" 10 | }, 11 | "rawHeaders": [ 12 | "Access-Control-Allow-Headers", 13 | "origin, x-requested-with, accept", 14 | "Access-Control-Allow-Methods", 15 | "GET", 16 | "Access-Control-Allow-Origin", 17 | "*", 18 | "Access-Control-Max-Age", 19 | "3628800", 20 | "Content-Type", 21 | "application/json; charset=UTF-8", 22 | "Date", 23 | "Fri, 22 Sep 2017 21:54:44 GMT", 24 | "Server", 25 | "Best Buy Public APIs", 26 | "X-Cache-Hit", 27 | "true", 28 | "Content-Length", 29 | "85", 30 | "Connection", 31 | "Close" 32 | ] 33 | } 34 | ] -------------------------------------------------------------------------------- /test/fixtures/fetch a product by sku and output to a file as xml_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/products/5919905.xml?format=xml&apiKey=XXX&show=name", 6 | "body": "", 7 | "status": 200, 8 | "response": "\n\n\n Nintendo - Switch™ 32GB Super Mario Odyssey Edition Bundle - Red Joy-Con\n\n", 9 | "rawHeaders": [ 10 | "Access-Control-Allow-Headers", 11 | "origin, x-requested-with, accept", 12 | "Access-Control-Allow-Methods", 13 | "GET", 14 | "Access-Control-Allow-Origin", 15 | "*", 16 | "Access-Control-Max-Age", 17 | "3628800", 18 | "Content-Type", 19 | "text/xml; charset=UTF-8", 20 | "Date", 21 | "Fri, 22 Sep 2017 21:54:44 GMT", 22 | "Server", 23 | "Best Buy Public APIs", 24 | "X-Cache-Hit", 25 | "true", 26 | "Content-Length", 27 | "223", 28 | "Connection", 29 | "Close" 30 | ] 31 | } 32 | ] -------------------------------------------------------------------------------- /test/fixtures/fetch a product by sku and output to stdout as xml_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/products/5919905.xml?format=xml&apiKey=XXX&show=name", 6 | "body": "", 7 | "status": 200, 8 | "response": "\n\n\n Nintendo - Switch™ 32GB Super Mario Odyssey Edition Bundle - Red Joy-Con\n\n", 9 | "rawHeaders": [ 10 | "Access-Control-Allow-Headers", 11 | "origin, x-requested-with, accept", 12 | "Access-Control-Allow-Methods", 13 | "GET", 14 | "Access-Control-Allow-Origin", 15 | "*", 16 | "Access-Control-Max-Age", 17 | "3628800", 18 | "Content-Type", 19 | "text/xml; charset=UTF-8", 20 | "Date", 21 | "Fri, 22 Sep 2017 21:59:35 GMT", 22 | "Server", 23 | "Best Buy Public APIs", 24 | "X-Cache-Hit", 25 | "true", 26 | "Content-Length", 27 | "223", 28 | "Connection", 29 | "Close" 30 | ] 31 | } 32 | ] -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bestbuy-cli", 3 | "description": "Download data from the Best Buy Catalog API in bulk from the command line", 4 | "version": "1.1.1", 5 | "author": "Dan Flettre ", 6 | "bugs": { 7 | "url": "https://github.com/BestBuyAPIs/bestbuy-cli/issues" 8 | }, 9 | "dependencies": { 10 | "JSONStream": "^1.3.1", 11 | "bestbuy": "^2.1.2", 12 | "cliclopts": "^1.1.1", 13 | "fast-csv": "^2.4.0", 14 | "log-update": "^2.1.0", 15 | "minimist": "^1.2.0", 16 | "pretty-ms": "^3.0.0", 17 | "pump": "^1.0.2", 18 | "stdout-stream": "^1.4.0", 19 | "through2": "^2.0.3", 20 | "update-notifier": "^2.2.0" 21 | }, 22 | "devDependencies": { 23 | "concat-stream": "^1.6.0", 24 | "gh-release": "^3.1.1", 25 | "pkg": "^4.2.4", 26 | "rimraf": "^2.6.2", 27 | "standard": "^16.0.3", 28 | "tap-spec": "^4.0.2", 29 | "tape": "^4.8.0", 30 | "tape-nock": "^1.6.0", 31 | "to2": "^1.0.0" 32 | }, 33 | "homepage": "https://github.com/BestBuyAPIs/bestbuy-cli", 34 | "keywords": [ 35 | "api", 36 | "bestbuy", 37 | "bulk", 38 | "catalog", 39 | "cli", 40 | "command", 41 | "download", 42 | "line", 43 | "products" 44 | ], 45 | "license": "MIT", 46 | "main": "index.js", 47 | "bin": { 48 | "bestbuy": "./bin.js", 49 | "bestbuy-cli": "./bin.js" 50 | }, 51 | "repository": { 52 | "type": "git", 53 | "url": "https://github.com/BestBuyAPIs/bestbuy-cli.git" 54 | }, 55 | "scripts": { 56 | "test": "standard && tape test/*.test.js | tap-spec", 57 | "release": "pkg . --out-path dist && gh-release --assets dist/bestbuy-cli-linux,dist/bestbuy-cli-macos,dist/bestbuy-cli-win.exe" 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # bestbuy-cli 2 | 3 | [![npm][npm-image]][npm-url] 4 | [![travis][travis-image]][travis-url] 5 | [![standard][standard-image]][standard-url] 6 | 7 | [npm-image]: https://img.shields.io/npm/v/bestbuy-cli.svg?style=flat-square 8 | [npm-url]: https://www.npmjs.com/package/bestbuy-cli 9 | [travis-image]: https://img.shields.io/travis/BestBuyAPIs/bestbuy-cli.svg?style=flat-square 10 | [travis-url]: https://travis-ci.org/BestBuyAPIs/bestbuy-cli 11 | [standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square 12 | [standard-url]: http://npm.im/standard 13 | 14 | Download data from the Best Buy Catalog API in bulk from the command line. 15 | 16 | Get an API key at [developer.bestbuy.com](https://developer.bestbuy.com). 17 | 18 | ![Best Buy CLI Tool](https://cdn.rawgit.com/BestBuyAPIs/bestbuy-cli/master/images/download-all-stores.gif) 19 | 20 | ## Install 21 | 22 | ``` 23 | npm install --global bestbuy-cli 24 | ``` 25 | 26 | Can't install node? [Download a standalone executable](https://github.com/BestBuyAPIs/bestbuy-cli/releases) from the GitHub Releases page! 27 | 28 | ## Usage 29 | 30 | ```bash 31 | >bestbuy --help 32 | 33 | Best Buy Bulk Download Tool (https://github.com/BestBuyAPIs/bestbuy-cli) 34 | 35 | Usage: bestbuy [resource] [options] 36 | 37 | Examples: 38 | bestbuy categories 39 | bestbuy products --query "active=true" --show "name,sku" --output products.json 40 | bestbuy stores --format xml --output stores.xml 41 | bestbuy stores --query "region=GA&storeType='outlet center'" --output stores.json 42 | 43 | resource resource to download: products, categories, stores 44 | --query, -q use a custom query to filter the results (ampersand separated) 45 | --show, -s fields to show (comma separated) 46 | --sort, -r sort results by fields (comma separated) 47 | --key, -k Best Buy API key (default: "BBY_API_KEY environment variable") 48 | --format, -f format of the response as json, xml, csv or tsv (default: "json") 49 | --output, -o name of file to send output (optional; If not present, out will go to stdout) 50 | --bare, -b newline delimited - each item on own line without extra cruft (default: false) 51 | --version, -v show version information 52 | --help, -h show help 53 | 54 | ``` 55 | Visit the [Best Buy API Documentation](https://developer.bestbuy.com/documentation) for more details on writing custom queries. 56 | 57 | ## License 58 | 59 | [MIT](LICENSE.md) 60 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | module.exports = run 2 | 3 | const bestbuy = require('bestbuy') 4 | const fs = require('fs') 5 | const pump = require('pump') 6 | const JSONStream = require('JSONStream') 7 | const logUpdate = require('log-update') 8 | const prettyMs = require('pretty-ms') 9 | const through = require('through2') 10 | const csv = require('fast-csv') 11 | 12 | function run (opts, stdout, cb) { 13 | let bby 14 | let total = 0 15 | let cnt = 0 16 | const start = process.hrtime() 17 | let progressInterval 18 | const logUpdater = logUpdate.create(stdout) 19 | 20 | let output 21 | let parser 22 | 23 | try { 24 | bby = bestbuy({ key: opts.key, debug: opts.debug }) 25 | } catch (err) { 26 | return cb(err) 27 | } 28 | 29 | opts.format = opts.format.toLowerCase() 30 | 31 | const dataStream = bby[`${opts.resource}AsStream`](opts.query, { 32 | format: opts.format === 'csv' || opts.format === 'tsv' ? 'json' : opts.format, 33 | show: opts.show, 34 | sort: opts.sort 35 | }) 36 | 37 | // a "total" event is emitted so we know how many total products will be sent 38 | dataStream.on('total', t => { 39 | total = t 40 | }) 41 | 42 | dataStream.on('data', () => cnt++) 43 | 44 | if (opts.format === 'json') { 45 | parser = opts.bare ? JSONStream.stringify(false) : JSONStream.stringify() 46 | } else if (opts.format === 'csv' || opts.format === 'tsv') { 47 | const csvStream = csv.createWriteStream({ 48 | headers: !opts.bare, 49 | objectMode: false, 50 | delimiter: opts.format === 'tsv' ? '\t' : ',' 51 | }) 52 | parser = csvStream 53 | } else if (opts.format === 'xml') { 54 | parser = through( 55 | function (chunk, enc, cb) { 56 | if (opts.bare) { 57 | chunk = chunk.toString().replace(/\n/g, '') + '\n' 58 | } 59 | cb(null, chunk) 60 | }, // transform is a noop 61 | function (done) { // flush function 62 | if (!opts.bare) this.push(`\n`) // add end tag 63 | done() 64 | } 65 | ) 66 | if (!opts.bare) parser.write(`<${opts.resource}>\n`) 67 | } else { 68 | return cb(new Error(`unsupported format: ${opts.format}`)) 69 | } 70 | 71 | if (opts.output) { 72 | output = fs.createWriteStream(opts.output) 73 | progressInterval = setInterval(updateProgress, 500) 74 | } else { 75 | output = stdout || require('stdout-stream') 76 | } 77 | 78 | function updateProgress () { 79 | const timeSoFar = process.hrtime(start) 80 | const timeSoFarInMs = ((timeSoFar[0] * 1e9) + timeSoFar[1]) / 1e6 81 | const timeSoFarInSec = timeSoFarInMs / 1e3 82 | 83 | const totalTime = prettyMs(timeSoFarInMs) 84 | logUpdater(`${opts.resource}: ${cnt}/${total} (${(cnt / total * 100).toFixed(2)}%), Time: ${totalTime}, ${opts.resource}/sec: ${Math.round(cnt / timeSoFarInSec)}`) 85 | } 86 | 87 | pump(dataStream, parser, output, err => { 88 | if (progressInterval) { 89 | clearInterval(progressInterval) 90 | updateProgress() 91 | stdout.write('Done.\n') 92 | } 93 | 94 | if (err) return cb(err) 95 | 96 | cb() 97 | }) 98 | } 99 | -------------------------------------------------------------------------------- /test/fixtures/fetch a product by sku and output to stdout as xml in bare mode_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/products(sku%20in%20(5919905,5670100))?format=xml&apiKey=XXX&show=name&cursorMark=*&pageSize=100", 6 | "body": "", 7 | "status": 200, 8 | "response": "\n\n\n \n Nintendo - Switch™ 32GB Console - Neon Red/Neon Blue Joy-Con™\n \n \n Nintendo - Switch™ 32GB Super Mario Odyssey Edition Bundle - Red Joy-Con\n \n\n", 9 | "rawHeaders": [ 10 | "Access-Control-Allow-Headers", 11 | "origin, x-requested-with, accept", 12 | "Access-Control-Allow-Methods", 13 | "GET", 14 | "Access-Control-Allow-Origin", 15 | "*", 16 | "Access-Control-Max-Age", 17 | "3628800", 18 | "Content-Type", 19 | "text/xml; charset=UTF-8", 20 | "Date", 21 | "Fri, 22 Sep 2017 21:54:44 GMT", 22 | "Server", 23 | "Best Buy Public APIs", 24 | "X-Cache-Hit", 25 | "true", 26 | "Content-Length", 27 | "624", 28 | "Connection", 29 | "Close" 30 | ] 31 | }, 32 | { 33 | "scope": "https://api.bestbuy.com:443", 34 | "method": "get", 35 | "path": "/v1/products(sku%20in%20(5919905,5670100))?format=xml&apiKey=XXX&show=name&cursorMark=AoIIP4AAADJwcm9kdWN0XzU5MTk5MDVfdXM%3D&pageSize=100", 36 | "body": "", 37 | "status": 200, 38 | "response": "\n\n\n", 39 | "rawHeaders": [ 40 | "Access-Control-Allow-Headers", 41 | "origin, x-requested-with, accept", 42 | "Access-Control-Allow-Methods", 43 | "GET", 44 | "Access-Control-Allow-Origin", 45 | "*", 46 | "Access-Control-Max-Age", 47 | "3628800", 48 | "Content-Type", 49 | "text/xml; charset=UTF-8", 50 | "Date", 51 | "Fri, 22 Sep 2017 21:57:57 GMT", 52 | "Server", 53 | "Best Buy Public APIs", 54 | "X-Cache-Hit", 55 | "true", 56 | "Content-Length", 57 | "423", 58 | "Connection", 59 | "Close" 60 | ] 61 | } 62 | ] -------------------------------------------------------------------------------- /test/fixtures/fetch a category by id and output to stdout_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/categories(id=abcat0010000)?format=json&apiKey=XXX&show=name&cursorMark=*&pageSize=100", 6 | "body": "", 7 | "status": 200, 8 | "response": { 9 | "nextCursorMark": "AoMsYWJjYXQwMDEwMDAwCD+AAAA4Y2F0ZWdvcnlfYWJjYXQwMDEwMDAwX3Vz", 10 | "total": 1, 11 | "totalPages": 1, 12 | "queryTime": "0.053", 13 | "totalTime": "0.060", 14 | "partial": false, 15 | "canonicalUrl": "/v1/categories(id=\"abcat0010000\")?show=name&pageSize=100&cursorMark=*&format=json&apiKey=XXX", 16 | "categories": [ 17 | { 18 | "name": "Gift Ideas" 19 | } 20 | ] 21 | }, 22 | "rawHeaders": [ 23 | "Access-Control-Allow-Headers", 24 | "origin, x-requested-with, accept", 25 | "Access-Control-Allow-Methods", 26 | "GET", 27 | "Access-Control-Allow-Origin", 28 | "*", 29 | "Access-Control-Max-Age", 30 | "3628800", 31 | "Content-Type", 32 | "application/json; charset=UTF-8", 33 | "Date", 34 | "Fri, 22 Sep 2017 21:59:36 GMT", 35 | "Server", 36 | "Best Buy Public APIs", 37 | "X-Cache-Hit", 38 | "true", 39 | "Content-Length", 40 | "332", 41 | "Connection", 42 | "Close" 43 | ] 44 | }, 45 | { 46 | "scope": "https://api.bestbuy.com:443", 47 | "method": "get", 48 | "path": "/v1/categories(id=abcat0010000)?format=json&apiKey=XXX&show=name&cursorMark=AoMsYWJjYXQwMDEwMDAwCD%2BAAAA4Y2F0ZWdvcnlfYWJjYXQwMDEwMDAwX3Vz&pageSize=100", 49 | "body": "", 50 | "status": 200, 51 | "response": { 52 | "nextCursorMark": "AoMsYWJjYXQwMDEwMDAwCD+AAAA4Y2F0ZWdvcnlfYWJjYXQwMDEwMDAwX3Vz", 53 | "total": 1, 54 | "totalPages": 1, 55 | "queryTime": "0.022", 56 | "totalTime": "0.022", 57 | "partial": false, 58 | "canonicalUrl": "/v1/categories(id=\"abcat0010000\")?show=name&pageSize=100&cursorMark=AoMsYWJjYXQwMDEwMDAwCD+AAAA4Y2F0ZWdvcnlfYWJjYXQwMDEwMDAwX3Vz&format=json&apiKey=XXX", 59 | "categories": [] 60 | }, 61 | "rawHeaders": [ 62 | "Access-Control-Allow-Headers", 63 | "origin, x-requested-with, accept", 64 | "Access-Control-Allow-Methods", 65 | "GET", 66 | "Access-Control-Allow-Origin", 67 | "*", 68 | "Access-Control-Max-Age", 69 | "3628800", 70 | "Content-Type", 71 | "application/json; charset=UTF-8", 72 | "Date", 73 | "Fri, 22 Sep 2017 21:57:58 GMT", 74 | "Server", 75 | "Best Buy Public APIs", 76 | "X-Cache-Hit", 77 | "true", 78 | "Content-Length", 79 | "370", 80 | "Connection", 81 | "Close" 82 | ] 83 | } 84 | ] -------------------------------------------------------------------------------- /test/fixtures/fetch products as csv_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/products(sku=5721722)?format=json&apiKey=XXX&show=name,salePrice,url&cursorMark=*&pageSize=100", 6 | "body": "", 7 | "status": 200, 8 | "response": { 9 | "nextCursorMark": "AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM=", 10 | "total": 1, 11 | "totalPages": 1, 12 | "queryTime": "0.007", 13 | "totalTime": "0.012", 14 | "partial": false, 15 | "canonicalUrl": "/v1/products(sku=5721722)?show=name,salePrice,url&pageSize=100&cursorMark=*&format=json&apiKey=XXX", 16 | "products": [ 17 | { 18 | "name": "Super Mario Odyssey - Nintendo Switch", 19 | "salePrice": 59.99, 20 | "url": "https://api.bestbuy.com/click/-/5721722/pdp" 21 | } 22 | ] 23 | }, 24 | "rawHeaders": [ 25 | "Access-Control-Allow-Headers", 26 | "origin, x-requested-with, accept", 27 | "Access-Control-Allow-Methods", 28 | "GET", 29 | "Access-Control-Allow-Origin", 30 | "*", 31 | "Access-Control-Max-Age", 32 | "3628800", 33 | "Content-Type", 34 | "application/json; charset=UTF-8", 35 | "Date", 36 | "Mon, 25 Sep 2017 17:34:34 GMT", 37 | "Server", 38 | "Best Buy Public APIs", 39 | "X-Cache-Hit", 40 | "true", 41 | "Content-Length", 42 | "407", 43 | "Connection", 44 | "Close" 45 | ] 46 | }, 47 | { 48 | "scope": "https://api.bestbuy.com:443", 49 | "method": "get", 50 | "path": "/v1/products(sku=5721722)?format=json&apiKey=XXX&show=name,salePrice,url&cursorMark=AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM%3D&pageSize=100", 51 | "body": "", 52 | "status": 200, 53 | "response": { 54 | "nextCursorMark": "AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM=", 55 | "total": 1, 56 | "totalPages": 1, 57 | "queryTime": "0.009", 58 | "totalTime": "0.009", 59 | "partial": false, 60 | "canonicalUrl": "/v1/products(sku=5721722)?show=name,salePrice,url&pageSize=100&cursorMark=AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM=&format=json&apiKey=XXX", 61 | "products": [] 62 | }, 63 | "rawHeaders": [ 64 | "Access-Control-Allow-Headers", 65 | "origin, x-requested-with, accept", 66 | "Access-Control-Allow-Methods", 67 | "GET", 68 | "Access-Control-Allow-Origin", 69 | "*", 70 | "Access-Control-Max-Age", 71 | "3628800", 72 | "Content-Type", 73 | "application/json; charset=UTF-8", 74 | "Date", 75 | "Mon, 25 Sep 2017 17:32:55 GMT", 76 | "Server", 77 | "Best Buy Public APIs", 78 | "X-Cache-Hit", 79 | "true", 80 | "Content-Length", 81 | "324", 82 | "Connection", 83 | "Close" 84 | ] 85 | } 86 | ] -------------------------------------------------------------------------------- /test/fixtures/fetch products as tsv_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/products(sku=5721722)?format=json&apiKey=XXX&show=name,salePrice,url&cursorMark=*&pageSize=100", 6 | "body": "", 7 | "status": 200, 8 | "response": { 9 | "nextCursorMark": "AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM=", 10 | "total": 1, 11 | "totalPages": 1, 12 | "queryTime": "0.007", 13 | "totalTime": "0.012", 14 | "partial": false, 15 | "canonicalUrl": "/v1/products(sku=5721722)?show=name,salePrice,url&pageSize=100&cursorMark=*&format=json&apiKey=XXX", 16 | "products": [ 17 | { 18 | "name": "Super Mario Odyssey - Nintendo Switch", 19 | "salePrice": 59.99, 20 | "url": "https://api.bestbuy.com/click/-/5721722/pdp" 21 | } 22 | ] 23 | }, 24 | "rawHeaders": [ 25 | "Access-Control-Allow-Headers", 26 | "origin, x-requested-with, accept", 27 | "Access-Control-Allow-Methods", 28 | "GET", 29 | "Access-Control-Allow-Origin", 30 | "*", 31 | "Access-Control-Max-Age", 32 | "3628800", 33 | "Content-Type", 34 | "application/json; charset=UTF-8", 35 | "Date", 36 | "Mon, 25 Sep 2017 17:56:13 GMT", 37 | "Server", 38 | "Best Buy Public APIs", 39 | "X-Cache-Hit", 40 | "true", 41 | "Content-Length", 42 | "407", 43 | "Connection", 44 | "Close" 45 | ] 46 | }, 47 | { 48 | "scope": "https://api.bestbuy.com:443", 49 | "method": "get", 50 | "path": "/v1/products(sku=5721722)?format=json&apiKey=XXX&show=name,salePrice,url&cursorMark=AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM%3D&pageSize=100", 51 | "body": "", 52 | "status": 200, 53 | "response": { 54 | "nextCursorMark": "AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM=", 55 | "total": 1, 56 | "totalPages": 1, 57 | "queryTime": "0.009", 58 | "totalTime": "0.009", 59 | "partial": false, 60 | "canonicalUrl": "/v1/products(sku=5721722)?show=name,salePrice,url&pageSize=100&cursorMark=AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM=&format=json&apiKey=XXX", 61 | "products": [] 62 | }, 63 | "rawHeaders": [ 64 | "Access-Control-Allow-Headers", 65 | "origin, x-requested-with, accept", 66 | "Access-Control-Allow-Methods", 67 | "GET", 68 | "Access-Control-Allow-Origin", 69 | "*", 70 | "Access-Control-Max-Age", 71 | "3628800", 72 | "Content-Type", 73 | "application/json; charset=UTF-8", 74 | "Date", 75 | "Mon, 25 Sep 2017 17:56:13 GMT", 76 | "Server", 77 | "Best Buy Public APIs", 78 | "X-Cache-Hit", 79 | "true", 80 | "Content-Length", 81 | "324", 82 | "Connection", 83 | "Close" 84 | ] 85 | } 86 | ] -------------------------------------------------------------------------------- /test/fixtures/fetch products as csv without the header row using --bare_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/products(sku=5721722)?format=json&apiKey=XXX&show=name,salePrice,url&cursorMark=*&pageSize=100", 6 | "body": "", 7 | "status": 200, 8 | "response": { 9 | "nextCursorMark": "AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM=", 10 | "total": 1, 11 | "totalPages": 1, 12 | "queryTime": "0.007", 13 | "totalTime": "0.012", 14 | "partial": false, 15 | "canonicalUrl": "/v1/products(sku=5721722)?show=name,salePrice,url&pageSize=100&cursorMark=*&format=json&apiKey=XXX", 16 | "products": [ 17 | { 18 | "name": "Super Mario Odyssey - Nintendo Switch", 19 | "salePrice": 59.99, 20 | "url": "https://api.bestbuy.com/click/-/5721722/pdp" 21 | } 22 | ] 23 | }, 24 | "rawHeaders": [ 25 | "Access-Control-Allow-Headers", 26 | "origin, x-requested-with, accept", 27 | "Access-Control-Allow-Methods", 28 | "GET", 29 | "Access-Control-Allow-Origin", 30 | "*", 31 | "Access-Control-Max-Age", 32 | "3628800", 33 | "Content-Type", 34 | "application/json; charset=UTF-8", 35 | "Date", 36 | "Mon, 25 Sep 2017 17:29:39 GMT", 37 | "Server", 38 | "Best Buy Public APIs", 39 | "X-Cache-Hit", 40 | "true", 41 | "Content-Length", 42 | "407", 43 | "Connection", 44 | "Close" 45 | ] 46 | }, 47 | { 48 | "scope": "https://api.bestbuy.com:443", 49 | "method": "get", 50 | "path": "/v1/products(sku=5721722)?format=json&apiKey=XXX&show=name,salePrice,url&cursorMark=AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM%3D&pageSize=100", 51 | "body": "", 52 | "status": 200, 53 | "response": { 54 | "nextCursorMark": "AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM=", 55 | "total": 1, 56 | "totalPages": 1, 57 | "queryTime": "0.009", 58 | "totalTime": "0.009", 59 | "partial": false, 60 | "canonicalUrl": "/v1/products(sku=5721722)?show=name,salePrice,url&pageSize=100&cursorMark=AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM=&format=json&apiKey=XXX", 61 | "products": [] 62 | }, 63 | "rawHeaders": [ 64 | "Access-Control-Allow-Headers", 65 | "origin, x-requested-with, accept", 66 | "Access-Control-Allow-Methods", 67 | "GET", 68 | "Access-Control-Allow-Origin", 69 | "*", 70 | "Access-Control-Max-Age", 71 | "3628800", 72 | "Content-Type", 73 | "application/json; charset=UTF-8", 74 | "Date", 75 | "Mon, 25 Sep 2017 17:29:39 GMT", 76 | "Server", 77 | "Best Buy Public APIs", 78 | "X-Cache-Hit", 79 | "true", 80 | "Content-Length", 81 | "324", 82 | "Connection", 83 | "Close" 84 | ] 85 | } 86 | ] -------------------------------------------------------------------------------- /test/fixtures/fetch products as tsv without the header row using --bare_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/products(sku=5721722)?format=json&apiKey=XXX&show=name,salePrice,url&cursorMark=*&pageSize=100", 6 | "body": "", 7 | "status": 200, 8 | "response": { 9 | "nextCursorMark": "AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM=", 10 | "total": 1, 11 | "totalPages": 1, 12 | "queryTime": "0.007", 13 | "totalTime": "0.012", 14 | "partial": false, 15 | "canonicalUrl": "/v1/products(sku=5721722)?show=name,salePrice,url&pageSize=100&cursorMark=*&format=json&apiKey=XXX", 16 | "products": [ 17 | { 18 | "name": "Super Mario Odyssey - Nintendo Switch", 19 | "salePrice": 59.99, 20 | "url": "https://api.bestbuy.com/click/-/5721722/pdp" 21 | } 22 | ] 23 | }, 24 | "rawHeaders": [ 25 | "Access-Control-Allow-Headers", 26 | "origin, x-requested-with, accept", 27 | "Access-Control-Allow-Methods", 28 | "GET", 29 | "Access-Control-Allow-Origin", 30 | "*", 31 | "Access-Control-Max-Age", 32 | "3628800", 33 | "Content-Type", 34 | "application/json; charset=UTF-8", 35 | "Date", 36 | "Mon, 25 Sep 2017 17:59:30 GMT", 37 | "Server", 38 | "Best Buy Public APIs", 39 | "X-Cache-Hit", 40 | "true", 41 | "Content-Length", 42 | "407", 43 | "Connection", 44 | "Close" 45 | ] 46 | }, 47 | { 48 | "scope": "https://api.bestbuy.com:443", 49 | "method": "get", 50 | "path": "/v1/products(sku=5721722)?format=json&apiKey=XXX&show=name,salePrice,url&cursorMark=AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM%3D&pageSize=100", 51 | "body": "", 52 | "status": 200, 53 | "response": { 54 | "nextCursorMark": "AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM=", 55 | "total": 1, 56 | "totalPages": 1, 57 | "queryTime": "0.009", 58 | "totalTime": "0.009", 59 | "partial": false, 60 | "canonicalUrl": "/v1/products(sku=5721722)?show=name,salePrice,url&pageSize=100&cursorMark=AoIIP4AAADJwcm9kdWN0XzU3MjE3MjJfdXM=&format=json&apiKey=XXX", 61 | "products": [] 62 | }, 63 | "rawHeaders": [ 64 | "Access-Control-Allow-Headers", 65 | "origin, x-requested-with, accept", 66 | "Access-Control-Allow-Methods", 67 | "GET", 68 | "Access-Control-Allow-Origin", 69 | "*", 70 | "Access-Control-Max-Age", 71 | "3628800", 72 | "Content-Type", 73 | "application/json; charset=UTF-8", 74 | "Date", 75 | "Mon, 25 Sep 2017 17:59:30 GMT", 76 | "Server", 77 | "Best Buy Public APIs", 78 | "X-Cache-Hit", 79 | "true", 80 | "Content-Length", 81 | "324", 82 | "Connection", 83 | "Close" 84 | ] 85 | } 86 | ] -------------------------------------------------------------------------------- /test/fixtures/fetch stores by postalCode and output to stdout_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/stores(postalCode=55109)?format=json&apiKey=XXX&show=name,storeType&cursorMark=*&pageSize=100", 6 | "body": "", 7 | "status": 200, 8 | "response": { 9 | "nextCursorMark": "AoMlNTUxMDkIP4AAAC1zdG9yZV8yNzAxX3Vz", 10 | "total": 2, 11 | "totalPages": 1, 12 | "queryTime": "0.008", 13 | "totalTime": "0.012", 14 | "partial": false, 15 | "canonicalUrl": "/v1/stores(postalCode=\"55109\")?show=name,storeType&pageSize=100&cursorMark=*&format=json&apiKey=XXX", 16 | "stores": [ 17 | { 18 | "name": "MAPLEWOOD MN", 19 | "storeType": "Big Box" 20 | }, 21 | { 22 | "name": "MAPLEWOOD MALL", 23 | "storeType": "Mobile SAS" 24 | } 25 | ] 26 | }, 27 | "rawHeaders": [ 28 | "Access-Control-Allow-Headers", 29 | "origin, x-requested-with, accept", 30 | "Access-Control-Allow-Methods", 31 | "GET", 32 | "Access-Control-Allow-Origin", 33 | "*", 34 | "Access-Control-Max-Age", 35 | "3628800", 36 | "Content-Type", 37 | "application/json; charset=UTF-8", 38 | "Date", 39 | "Fri, 22 Sep 2017 21:59:36 GMT", 40 | "Server", 41 | "Best Buy Public APIs", 42 | "X-Cache-Hit", 43 | "true", 44 | "Content-Length", 45 | "386", 46 | "Connection", 47 | "Close" 48 | ] 49 | }, 50 | { 51 | "scope": "https://api.bestbuy.com:443", 52 | "method": "get", 53 | "path": "/v1/stores(postalCode=55109)?format=json&apiKey=XXX&show=name,storeType&cursorMark=AoMlNTUxMDkIP4AAAC1zdG9yZV8yNzAxX3Vz&pageSize=100", 54 | "body": "", 55 | "status": 200, 56 | "response": { 57 | "nextCursorMark": "AoMlNTUxMDkIP4AAAC1zdG9yZV8yNzAxX3Vz", 58 | "total": 2, 59 | "totalPages": 1, 60 | "queryTime": "0.022", 61 | "totalTime": "0.023", 62 | "partial": false, 63 | "canonicalUrl": "/v1/stores(postalCode=\"55109\")?show=name,storeType&pageSize=100&cursorMark=AoMlNTUxMDkIP4AAAC1zdG9yZV8yNzAxX3Vz&format=json&apiKey=XXX", 64 | "stores": [] 65 | }, 66 | "rawHeaders": [ 67 | "Access-Control-Allow-Headers", 68 | "origin, x-requested-with, accept", 69 | "Access-Control-Allow-Methods", 70 | "GET", 71 | "Access-Control-Allow-Origin", 72 | "*", 73 | "Access-Control-Max-Age", 74 | "3628800", 75 | "Content-Type", 76 | "application/json; charset=UTF-8", 77 | "Date", 78 | "Fri, 22 Sep 2017 21:59:36 GMT", 79 | "Server", 80 | "Best Buy Public APIs", 81 | "X-Cache-Hit", 82 | "true", 83 | "Content-Length", 84 | "325", 85 | "Connection", 86 | "Close" 87 | ] 88 | } 89 | ] -------------------------------------------------------------------------------- /test/fixtures/fetch a product by sku and output to stdout in bare mode_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/products(sku%20in%20(5919905,5670100))?format=json&apiKey=XXX&show=name&cursorMark=*&pageSize=100", 6 | "body": "", 7 | "status": 200, 8 | "response": { 9 | "nextCursorMark": "AoIIP4AAADJwcm9kdWN0XzU5MTk5MDVfdXM=", 10 | "total": 2, 11 | "totalPages": 1, 12 | "queryTime": "0.019", 13 | "totalTime": "0.029", 14 | "partial": false, 15 | "canonicalUrl": "/v1/products(sku in(5919905,5670100))?show=name&pageSize=100&cursorMark=*&format=json&apiKey=XXX", 16 | "products": [ 17 | { 18 | "name": "Nintendo - Switch™ 32GB Console - Neon Red/Neon Blue Joy-Con™" 19 | }, 20 | { 21 | "name": "Nintendo - Switch™ 32GB Super Mario Odyssey Edition Bundle - Red Joy-Con" 22 | } 23 | ] 24 | }, 25 | "rawHeaders": [ 26 | "Access-Control-Allow-Headers", 27 | "origin, x-requested-with, accept", 28 | "Access-Control-Allow-Methods", 29 | "GET", 30 | "Access-Control-Allow-Origin", 31 | "*", 32 | "Access-Control-Max-Age", 33 | "3628800", 34 | "Content-Type", 35 | "application/json; charset=UTF-8", 36 | "Date", 37 | "Fri, 22 Sep 2017 21:59:35 GMT", 38 | "Server", 39 | "Best Buy Public APIs", 40 | "X-Cache-Hit", 41 | "true", 42 | "Content-Length", 43 | "449", 44 | "Connection", 45 | "Close" 46 | ] 47 | }, 48 | { 49 | "scope": "https://api.bestbuy.com:443", 50 | "method": "get", 51 | "path": "/v1/products(sku%20in%20(5919905,5670100))?format=json&apiKey=XXX&show=name&cursorMark=AoIIP4AAADJwcm9kdWN0XzU5MTk5MDVfdXM%3D&pageSize=100", 52 | "body": "", 53 | "status": 200, 54 | "response": { 55 | "nextCursorMark": "AoIIP4AAADJwcm9kdWN0XzU5MTk5MDVfdXM=", 56 | "total": 2, 57 | "totalPages": 1, 58 | "queryTime": "0.030", 59 | "totalTime": "0.031", 60 | "partial": false, 61 | "canonicalUrl": "/v1/products(sku in(5919905,5670100))?show=name&pageSize=100&cursorMark=AoIIP4AAADJwcm9kdWN0XzU5MTk5MDVfdXM=&format=json&apiKey=XXX", 62 | "products": [] 63 | }, 64 | "rawHeaders": [ 65 | "Access-Control-Allow-Headers", 66 | "origin, x-requested-with, accept", 67 | "Access-Control-Allow-Methods", 68 | "GET", 69 | "Access-Control-Allow-Origin", 70 | "*", 71 | "Access-Control-Max-Age", 72 | "3628800", 73 | "Content-Type", 74 | "application/json; charset=UTF-8", 75 | "Date", 76 | "Fri, 22 Sep 2017 21:59:36 GMT", 77 | "Server", 78 | "Best Buy Public APIs", 79 | "X-Cache-Hit", 80 | "true", 81 | "Content-Length", 82 | "322", 83 | "Connection", 84 | "Close" 85 | ] 86 | } 87 | ] -------------------------------------------------------------------------------- /bin.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | const BBY_API_KEY_MSG = 'BBY_API_KEY environment variable' 3 | const RESOURCES = ['products', 'categories', 'stores'] 4 | const pkg = require('./package') 5 | const updateNotifier = require('update-notifier') 6 | 7 | const run = require('.') 8 | 9 | function cli (args, stream, cb) { 10 | const clopts = require('cliclopts')([ 11 | { 12 | name: 'query', 13 | abbr: 'q', 14 | help: 'use a custom query to filter the results' 15 | }, 16 | { 17 | name: 'show', 18 | abbr: 's', 19 | help: 'fields to show' 20 | }, 21 | { 22 | name: 'sort', 23 | abbr: 'r', 24 | help: 'sort results by fields (comma separated)' 25 | }, 26 | { 27 | name: 'key', 28 | abbr: 'k', 29 | help: 'Best Buy API key', 30 | default: BBY_API_KEY_MSG 31 | }, 32 | { 33 | name: 'format', 34 | abbr: 'f', 35 | help: 'format of the response as json, xml, csv or tsv', 36 | default: 'json' 37 | }, 38 | { 39 | name: 'output', 40 | abbr: 'o', 41 | help: 'name of file to send output (optional; If not present, out will go to stdout)' 42 | }, 43 | { 44 | name: 'bare', 45 | abbr: 'b', 46 | help: 'newline delimited - each item on own line without extra cruft', 47 | default: false 48 | }, 49 | { 50 | name: 'version', 51 | abbr: 'v', 52 | boolean: true, 53 | help: 'show version information' 54 | }, 55 | { 56 | name: 'help', 57 | abbr: 'h', 58 | help: 'show help', 59 | boolean: true 60 | }, 61 | { 62 | name: 'debug', 63 | abbr: 'd', 64 | help: 'show debug information', 65 | boolean: true, 66 | default: false 67 | } 68 | ]) 69 | 70 | const argv = require('minimist')(args, { 71 | alias: clopts.alias(), 72 | boolean: clopts.boolean(), 73 | default: clopts.default() 74 | }) 75 | 76 | argv.resource = argv.resource || argv._[0] 77 | 78 | if (argv.version) { 79 | stream.write(pkg.version + '\n') 80 | return cb() 81 | } 82 | 83 | if (!argv.resource) argv.help = true 84 | 85 | if (argv.help) { 86 | stream.write(` 87 | Best Buy Bulk Download Tool (https://github.com/BestBuyAPIs/bestbuy-cli) 88 | 89 | Usage: bestbuy [resource] [options] 90 | 91 | Examples: 92 | bestbuy categories 93 | bestbuy products --query "active=true" --show "name,sku" --output products.json 94 | bestbuy stores --format xml --output stores.xml 95 | 96 | resource resource to download: ${RESOURCES.join(', ')} 97 | `) 98 | clopts.print(stream) 99 | 100 | stream.write('\nVisit https://developer.bestbuy.com/documentation for more details on writing custom queries.\n') 101 | return cb() 102 | } 103 | 104 | argv.query = argv.query || '' 105 | 106 | if (argv.key === BBY_API_KEY_MSG) argv.key = process.env.BBY_API_KEY 107 | 108 | if (RESOURCES.indexOf(argv.resource) < 0) { 109 | return cb(new Error(`Invalid resource: ${argv.resource}`)) 110 | } 111 | run(argv, stream, cb) 112 | } 113 | 114 | if (require.main === module) { 115 | cli(process.argv.slice(2), process.stdout, function done (err) { 116 | let code = 0 117 | if (err) { 118 | console.error(err.message) 119 | console.error(err.stack) 120 | code = -1 121 | } 122 | updateNotifier({ pkg: pkg }).notify() 123 | process.exit(code) 124 | }) 125 | } else { 126 | module.exports = cli 127 | } 128 | -------------------------------------------------------------------------------- /test/fixtures/fetch stores and sort by name_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/stores(region=MN&storeType=Big%20Box)?format=json&apiKey=XXX&show=name&sort=name&cursorMark=*&pageSize=100", 6 | "body": "", 7 | "status": 200, 8 | "response": { 9 | "nextCursorMark": "AoQrc3QgY2xvdWQgbW4lNTYzMDEIP4AAACtzdG9yZV8xMl91cw==", 10 | "total": 22, 11 | "totalPages": 1, 12 | "queryTime": "1.667", 13 | "totalTime": "1.681", 14 | "partial": false, 15 | "canonicalUrl": "/v1/stores(region=\"MN\"&storeType=\"Big Box\")?show=name&sort=name&pageSize=100&cursorMark=*&format=json&apiKey=XXX", 16 | "stores": [ 17 | { 18 | "name": "APPLE VALLEY MN" 19 | }, 20 | { 21 | "name": "BAXTER MN" 22 | }, 23 | { 24 | "name": "BLAINE MN" 25 | }, 26 | { 27 | "name": "BURNSVILLE MN" 28 | }, 29 | { 30 | "name": "COON RAPIDS MN" 31 | }, 32 | { 33 | "name": "DULUTH MN" 34 | }, 35 | { 36 | "name": "EAGAN MN" 37 | }, 38 | { 39 | "name": "EDEN PRAIRIE MN" 40 | }, 41 | { 42 | "name": "HUTCHINSON MN" 43 | }, 44 | { 45 | "name": "INVER GROVE HGTS MN" 46 | }, 47 | { 48 | "name": "MALL OF AMERICA MN" 49 | }, 50 | { 51 | "name": "MANKATO MN" 52 | }, 53 | { 54 | "name": "MAPLE GROVE MN" 55 | }, 56 | { 57 | "name": "MAPLEWOOD MN" 58 | }, 59 | { 60 | "name": "MINNETONKA MN" 61 | }, 62 | { 63 | "name": "NORTHTOWN MN" 64 | }, 65 | { 66 | "name": "OAKDALE MN" 67 | }, 68 | { 69 | "name": "RICHFIELD MN" 70 | }, 71 | { 72 | "name": "ROCHESTER MN" 73 | }, 74 | { 75 | "name": "ROSEVILLE MN" 76 | }, 77 | { 78 | "name": "SHAKOPEE MN" 79 | }, 80 | { 81 | "name": "ST CLOUD MN" 82 | } 83 | ] 84 | }, 85 | "rawHeaders": [ 86 | "Access-Control-Allow-Headers", 87 | "origin, x-requested-with, accept", 88 | "Access-Control-Allow-Methods", 89 | "GET", 90 | "Access-Control-Allow-Origin", 91 | "*", 92 | "Access-Control-Max-Age", 93 | "3628800", 94 | "Content-Type", 95 | "application/json; charset=UTF-8", 96 | "Date", 97 | "Mon, 25 Sep 2017 16:25:20 GMT", 98 | "Server", 99 | "Best Buy Public APIs", 100 | "X-Cache-Hit", 101 | "true", 102 | "Content-Length", 103 | "856", 104 | "Connection", 105 | "Close" 106 | ] 107 | }, 108 | { 109 | "scope": "https://api.bestbuy.com:443", 110 | "method": "get", 111 | "path": "/v1/stores(region=MN&storeType=Big%20Box)?format=json&apiKey=XXX&show=name&sort=name&cursorMark=AoQrc3QgY2xvdWQgbW4lNTYzMDEIP4AAACtzdG9yZV8xMl91cw%3D%3D&pageSize=100", 112 | "body": "", 113 | "status": 200, 114 | "response": { 115 | "nextCursorMark": "AoQrc3QgY2xvdWQgbW4lNTYzMDEIP4AAACtzdG9yZV8xMl91cw==", 116 | "total": 22, 117 | "totalPages": 1, 118 | "queryTime": "0.009", 119 | "totalTime": "0.010", 120 | "partial": false, 121 | "canonicalUrl": "/v1/stores(region=\"MN\"&storeType=\"Big Box\")?show=name&sort=name&pageSize=100&cursorMark=AoQrc3QgY2xvdWQgbW4lNTYzMDEIP4AAACtzdG9yZV8xMl91cw==&format=json&apiKey=XXX", 122 | "stores": [] 123 | }, 124 | "rawHeaders": [ 125 | "Access-Control-Allow-Headers", 126 | "origin, x-requested-with, accept", 127 | "Access-Control-Allow-Methods", 128 | "GET", 129 | "Access-Control-Allow-Origin", 130 | "*", 131 | "Access-Control-Max-Age", 132 | "3628800", 133 | "Content-Type", 134 | "application/json; charset=UTF-8", 135 | "Date", 136 | "Mon, 25 Sep 2017 16:23:41 GMT", 137 | "Server", 138 | "Best Buy Public APIs", 139 | "X-Cache-Hit", 140 | "true", 141 | "Content-Length", 142 | "373", 143 | "Connection", 144 | "Close" 145 | ] 146 | } 147 | ] -------------------------------------------------------------------------------- /test/fixtures/fetch all stores and sort by name desc_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/stores(region=MN&storeType=Big%20Box)?format=json&apiKey=XXX&show=name&sort=name.desc&cursorMark=*&pageSize=100", 6 | "body": "", 7 | "status": 200, 8 | "response": { 9 | "nextCursorMark": "AoQvYXBwbGUgdmFsbGV5IG1uJTU1MTI0CD+AAAAsc3RvcmVfMjQ1X3Vz", 10 | "total": 22, 11 | "totalPages": 1, 12 | "queryTime": "0.034", 13 | "totalTime": "0.051", 14 | "partial": false, 15 | "canonicalUrl": "/v1/stores(region=\"MN\"&storeType=\"Big Box\")?show=name&sort=name.desc&pageSize=100&cursorMark=*&format=json&apiKey=XXX", 16 | "stores": [ 17 | { 18 | "name": "ST CLOUD MN" 19 | }, 20 | { 21 | "name": "SHAKOPEE MN" 22 | }, 23 | { 24 | "name": "ROSEVILLE MN" 25 | }, 26 | { 27 | "name": "ROCHESTER MN" 28 | }, 29 | { 30 | "name": "RICHFIELD MN" 31 | }, 32 | { 33 | "name": "OAKDALE MN" 34 | }, 35 | { 36 | "name": "NORTHTOWN MN" 37 | }, 38 | { 39 | "name": "MINNETONKA MN" 40 | }, 41 | { 42 | "name": "MAPLEWOOD MN" 43 | }, 44 | { 45 | "name": "MAPLE GROVE MN" 46 | }, 47 | { 48 | "name": "MANKATO MN" 49 | }, 50 | { 51 | "name": "MALL OF AMERICA MN" 52 | }, 53 | { 54 | "name": "INVER GROVE HGTS MN" 55 | }, 56 | { 57 | "name": "HUTCHINSON MN" 58 | }, 59 | { 60 | "name": "EDEN PRAIRIE MN" 61 | }, 62 | { 63 | "name": "EAGAN MN" 64 | }, 65 | { 66 | "name": "DULUTH MN" 67 | }, 68 | { 69 | "name": "COON RAPIDS MN" 70 | }, 71 | { 72 | "name": "BURNSVILLE MN" 73 | }, 74 | { 75 | "name": "BLAINE MN" 76 | }, 77 | { 78 | "name": "BAXTER MN" 79 | }, 80 | { 81 | "name": "APPLE VALLEY MN" 82 | } 83 | ] 84 | }, 85 | "rawHeaders": [ 86 | "Access-Control-Allow-Headers", 87 | "origin, x-requested-with, accept", 88 | "Access-Control-Allow-Methods", 89 | "GET", 90 | "Access-Control-Allow-Origin", 91 | "*", 92 | "Access-Control-Max-Age", 93 | "3628800", 94 | "Content-Type", 95 | "application/json; charset=UTF-8", 96 | "Date", 97 | "Mon, 25 Sep 2017 16:25:21 GMT", 98 | "Server", 99 | "Best Buy Public APIs", 100 | "X-Cache-Hit", 101 | "true", 102 | "Content-Length", 103 | "865", 104 | "Connection", 105 | "Close" 106 | ] 107 | }, 108 | { 109 | "scope": "https://api.bestbuy.com:443", 110 | "method": "get", 111 | "path": "/v1/stores(region=MN&storeType=Big%20Box)?format=json&apiKey=XXX&show=name&sort=name.desc&cursorMark=AoQvYXBwbGUgdmFsbGV5IG1uJTU1MTI0CD%2BAAAAsc3RvcmVfMjQ1X3Vz&pageSize=100", 112 | "body": "", 113 | "status": 200, 114 | "response": { 115 | "nextCursorMark": "AoQvYXBwbGUgdmFsbGV5IG1uJTU1MTI0CD+AAAAsc3RvcmVfMjQ1X3Vz", 116 | "total": 22, 117 | "totalPages": 1, 118 | "queryTime": "0.024", 119 | "totalTime": "0.024", 120 | "partial": false, 121 | "canonicalUrl": "/v1/stores(region=\"MN\"&storeType=\"Big Box\")?show=name&sort=name.desc&pageSize=100&cursorMark=AoQvYXBwbGUgdmFsbGV5IG1uJTU1MTI0CD+AAAAsc3RvcmVfMjQ1X3Vz&format=json&apiKey=XXX", 122 | "stores": [] 123 | }, 124 | "rawHeaders": [ 125 | "Access-Control-Allow-Headers", 126 | "origin, x-requested-with, accept", 127 | "Access-Control-Allow-Methods", 128 | "GET", 129 | "Access-Control-Allow-Origin", 130 | "*", 131 | "Access-Control-Max-Age", 132 | "3628800", 133 | "Content-Type", 134 | "application/json; charset=UTF-8", 135 | "Date", 136 | "Mon, 25 Sep 2017 16:20:25 GMT", 137 | "Server", 138 | "Best Buy Public APIs", 139 | "X-Cache-Hit", 140 | "true", 141 | "Content-Length", 142 | "386", 143 | "Connection", 144 | "Close" 145 | ] 146 | } 147 | ] -------------------------------------------------------------------------------- /test/index.test.js: -------------------------------------------------------------------------------- 1 | const test = require('./tape-nock-setup') 2 | 3 | const bin = require('../bin') 4 | const to = require('to2') 5 | const pkg = require('../package.json') 6 | const fs = require('fs') 7 | const rimraf = require('rimraf') 8 | 9 | function bestbuy (cmd, callback) { 10 | let output = '' 11 | 12 | let args = cmd.match(/[\\.-\w]+|"(?:\\"|[^"])+"/g) || [] 13 | args = args.map(a => a.replace(/"/g, '')) 14 | bin(args, to( 15 | (chunk, enc, cb) => { 16 | output += chunk.toString() 17 | cb(null, chunk) 18 | } 19 | ), processResponse) 20 | 21 | function processResponse (err) { 22 | if (err) return callback(err) 23 | callback(null, output) 24 | } 25 | } 26 | 27 | test('--version flag prints the version', function (t) { 28 | bestbuy('--version', function (err, output) { 29 | t.error(err, 'no error') 30 | t.equals(output, `${pkg.version}\n`, 'version matches') 31 | t.end() 32 | }) 33 | }) 34 | 35 | test('-v flag prints the version', function (t) { 36 | bestbuy('-v', function (err, output) { 37 | t.error(err, 'no error') 38 | t.equals(output, `${pkg.version}\n`, 'version matches') 39 | t.end() 40 | }) 41 | }) 42 | 43 | test('no arguments shows the help screen', function (t) { 44 | bestbuy('', function (err, output) { 45 | t.error(err, 'no error') 46 | t.ok(output.startsWith('\nBest Buy Bulk Download Tool'), 'help message shown') 47 | t.end() 48 | }) 49 | }) 50 | 51 | test('--help shows the help screen', function (t) { 52 | bestbuy('--help', function (err, output) { 53 | t.error(err, 'no error') 54 | t.ok(output.startsWith('\nBest Buy Bulk Download Tool'), 'help message shown') 55 | t.end() 56 | }) 57 | }) 58 | 59 | test('--h shows the help screen', function (t) { 60 | bestbuy('-h', function (err, output) { 61 | t.error(err, 'no error') 62 | t.ok(output.startsWith('\nBest Buy Bulk Download Tool'), 'help message shown') 63 | t.end() 64 | }) 65 | }) 66 | 67 | test('invalid resource returns error', function (t) { 68 | bestbuy('blarg', function (err, output) { 69 | t.equals(err.message, 'Invalid resource: blarg', 'correct error returned') 70 | t.equals(output, undefined, 'no other output') 71 | t.end() 72 | }) 73 | }) 74 | 75 | test('fetch a product by sku and output to stdout', function (t) { 76 | bestbuy('products --query 5919905 --show name', function (err, output) { 77 | t.error(err, 'no error') 78 | const expectedOutput = '[\n{"name":"Nintendo - Switch™ 32GB Super Mario Odyssey Edition Bundle - Red Joy-Con"}\n]\n' 79 | t.equals(output, expectedOutput, 'stdout is as expected') 80 | t.end() 81 | }) 82 | }) 83 | 84 | test('fetch a product by sku and output to stdout as xml', function (t) { 85 | bestbuy('products -q 5919905 --s name -f xml', function (err, output) { 86 | t.error(err, 'no error') 87 | const expectedOutput = '\n\n Nintendo - Switch™ 32GB Super Mario Odyssey Edition Bundle - Red Joy-Con\n\n' 88 | t.equals(output, expectedOutput, 'stdout is as expected') 89 | t.end() 90 | }) 91 | }) 92 | 93 | test('fetch a product by sku and output to stdout in bare mode', function (t) { 94 | bestbuy('products --query "sku in (5919905,5670100)" --show name --bare', function (err, output) { 95 | t.error(err, 'no error') 96 | const expectedOutput = '{"name":"Nintendo - Switch™ 32GB Console - Neon Red/Neon Blue Joy-Con™"}\n{"name":"Nintendo - Switch™ 32GB Super Mario Odyssey Edition Bundle - Red Joy-Con"}' 97 | t.equals(output, expectedOutput, 'stdout is as expected') 98 | t.end() 99 | }) 100 | }) 101 | 102 | test('fetch a product by sku and output to stdout as xml in bare mode', function (t) { 103 | bestbuy('products --query "sku in (5919905,5670100)" --show name --format xml --bare', function (err, output) { 104 | t.error(err, 'no error') 105 | const expectedOutput = ` Nintendo - Switch™ 32GB Console - Neon Red/Neon Blue Joy-Con™ 106 | Nintendo - Switch™ 32GB Super Mario Odyssey Edition Bundle - Red Joy-Con 107 | ` 108 | t.equals(output, expectedOutput, 'stdout is as expected') 109 | t.end() 110 | }) 111 | }) 112 | 113 | test('fetch a product by sku and output to a file', function (t) { 114 | bestbuy('products -q 5919905 --s name -o data.json', function (err, output) { 115 | t.error(err, 'no error') 116 | const expectedOutput = 'products: 1/1 (100.00%)' 117 | t.ok(output.startsWith(expectedOutput), 'stdout is as expected') 118 | 119 | // ensure file is good 120 | const dataFile = fs.readFileSync('data.json') 121 | 122 | t.equals(dataFile.toString(), '[\n{"name":"Nintendo - Switch™ 32GB Super Mario Odyssey Edition Bundle - Red Joy-Con"}\n]\n', 'data file has expected content') 123 | rimraf.sync('data.json') 124 | t.end() 125 | }) 126 | }) 127 | 128 | test('fetch a product by sku and output to a file as xml', function (t) { 129 | // delete file 130 | 131 | bestbuy('products --format xml --query 5919905 --show name --output data.xml', function (err, output) { 132 | t.error(err, 'no error') 133 | const expectedOutput = 'products: 1/1 (100.00%)' 134 | t.ok(output.startsWith(expectedOutput), 'stdout is as expected') 135 | 136 | // ensure file is good 137 | const dataFile = fs.readFileSync('data.xml') 138 | 139 | t.equals(dataFile.toString(), '\n\n Nintendo - Switch™ 32GB Super Mario Odyssey Edition Bundle - Red Joy-Con\n\n', 'data file has expected content') 140 | rimraf.sync('data.xml') 141 | t.end() 142 | }) 143 | }) 144 | 145 | test('fetch a category by id and output to stdout', function (t) { 146 | bestbuy('categories --query "id=abcat0010000" --show name', function (err, output) { 147 | t.error(err, 'no error') 148 | const expectedOutput = '[\n{"name":"Gift Ideas"}\n]\n' 149 | t.equals(output, expectedOutput, 'stdout is as expected') 150 | t.end() 151 | }) 152 | }) 153 | 154 | test('fetch stores by postalCode and output to stdout', function (t) { 155 | bestbuy('stores --query "postalCode=55109" --show "name,storeType"', function (err, output) { 156 | t.error(err, 'no error') 157 | const expectedOutput = '[\n{"name":"MAPLEWOOD MN","storeType":"Big Box"}\n,\n{"name":"MAPLEWOOD MALL","storeType":"Mobile SAS"}\n]\n' 158 | t.equals(output, expectedOutput, 'stdout is as expected') 159 | t.end() 160 | }) 161 | }) 162 | 163 | test('fetch all stores', function (t) { 164 | bestbuy('stores -q "storeType=Big Box" --show "storeId"', function (err, output) { 165 | t.error(err, 'no error') 166 | const stores = JSON.parse(output) 167 | t.equals(stores.length, 1021, 'all stores returned') 168 | t.end() 169 | }) 170 | }) 171 | 172 | test('fetch stores and sort by name', function (t) { 173 | bestbuy('stores -q "region=MN&storeType=Big Box" --show name --sort name', function (err, output) { 174 | t.error(err, 'no error') 175 | const stores = JSON.parse(output) 176 | stores.forEach((s, i) => i + 1 < stores.length && t.ok(s.name <= stores[i + 1].name, `${s.name} < ${stores[i + 1].name}`)) 177 | t.end() 178 | }) 179 | }) 180 | 181 | test('fetch all stores and sort by name desc', function (t) { 182 | bestbuy('stores -q "region=MN&storeType=Big Box" --show name --sort "name.desc"', function (err, output) { 183 | t.error(err, 'no error') 184 | const stores = JSON.parse(output) 185 | stores.forEach((s, i) => i + 1 < stores.length && t.ok(s.name >= stores[i + 1].name, `${s.name} < ${stores[i + 1].name}`)) 186 | t.end() 187 | }) 188 | }) 189 | 190 | test('fetch products as csv', function (t) { 191 | bestbuy('products -q "sku=5721722" -s "name,salePrice,url" -f csv', function (err, output) { 192 | t.error(err, 'no error') 193 | 194 | const expected = 'name,salePrice,url\nSuper Mario Odyssey - Nintendo Switch,59.99,https://api.bestbuy.com/click/-/5721722/pdp' 195 | t.equals(output, expected, 'csv header row present') 196 | t.end() 197 | }) 198 | }) 199 | 200 | test('fetch products as csv without the header row using --bare', function (t) { 201 | bestbuy('products --query "sku=5721722" --show "name,salePrice,url" --format csv --bare', function (err, output) { 202 | t.error(err, 'no error') 203 | const expected = 'Super Mario Odyssey - Nintendo Switch,59.99,https://api.bestbuy.com/click/-/5721722/pdp' 204 | t.equals(output, expected, 'csv header row not present') 205 | t.end() 206 | }) 207 | }) 208 | 209 | test('fetch products as tsv', function (t) { 210 | bestbuy('products -q "sku=5721722" -s "name,salePrice,url" -f tsv', function (err, output) { 211 | t.error(err, 'no error') 212 | 213 | const expected = 'name\tsalePrice\turl\nSuper Mario Odyssey - Nintendo Switch\t59.99\thttps://api.bestbuy.com/click/-/5721722/pdp' 214 | t.equals(output, expected, 'tsv header row present') 215 | t.end() 216 | }) 217 | }) 218 | 219 | test('fetch products as tsv without the header row using --bare', function (t) { 220 | bestbuy('products --query "sku=5721722" --show "name,salePrice,url" --format tsv --bare', function (err, output) { 221 | t.error(err, 'no error') 222 | const expected = 'Super Mario Odyssey - Nintendo Switch\t59.99\thttps://api.bestbuy.com/click/-/5721722/pdp' 223 | t.equals(output, expected, 'csv header row not present') 224 | t.end() 225 | }) 226 | }) 227 | -------------------------------------------------------------------------------- /test/fixtures/fetch all stores_.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "scope": "https://api.bestbuy.com:443", 4 | "method": "get", 5 | "path": "/v1/stores(storeType=Big%20Box)?format=json&apiKey=XXX&show=storeId&cursorMark=*&pageSize=100", 6 | "body": "", 7 | "status": 200, 8 | "response": { 9 | "nextCursorMark": "AoMlMTE1ODEIP4AAACxzdG9yZV85NTBfdXM=", 10 | "total": 1021, 11 | "totalPages": 11, 12 | "queryTime": "0.045", 13 | "totalTime": "0.088", 14 | "partial": false, 15 | "canonicalUrl": "/v1/stores(storeType=\"Big Box\")?show=storeId&pageSize=100&cursorMark=*&format=json&apiKey=XXX", 16 | "stores": [ 17 | { 18 | "storeId": 418 19 | }, 20 | { 21 | "storeId": 1433 22 | }, 23 | { 24 | "storeId": 2506 25 | }, 26 | { 27 | "storeId": 567 28 | }, 29 | { 30 | "storeId": 532 31 | }, 32 | { 33 | "storeId": 820 34 | }, 35 | { 36 | "storeId": 1407 37 | }, 38 | { 39 | "storeId": 1532 40 | }, 41 | { 42 | "storeId": 818 43 | }, 44 | { 45 | "storeId": 533 46 | }, 47 | { 48 | "storeId": 436 49 | }, 50 | { 51 | "storeId": 1140 52 | }, 53 | { 54 | "storeId": 1126 55 | }, 56 | { 57 | "storeId": 537 58 | }, 59 | { 60 | "storeId": 1088 61 | }, 62 | { 63 | "storeId": 530 64 | }, 65 | { 66 | "storeId": 877 67 | }, 68 | { 69 | "storeId": 385 70 | }, 71 | { 72 | "storeId": 596 73 | }, 74 | { 75 | "storeId": 568 76 | }, 77 | { 78 | "storeId": 343 79 | }, 80 | { 81 | "storeId": 441 82 | }, 83 | { 84 | "storeId": 806 85 | }, 86 | { 87 | "storeId": 1461 88 | }, 89 | { 90 | "storeId": 569 91 | }, 92 | { 93 | "storeId": 534 94 | }, 95 | { 96 | "storeId": 419 97 | }, 98 | { 99 | "storeId": 536 100 | }, 101 | { 102 | "storeId": 591 103 | }, 104 | { 105 | "storeId": 868 106 | }, 107 | { 108 | "storeId": 535 109 | }, 110 | { 111 | "storeId": 531 112 | }, 113 | { 114 | "storeId": 1420 115 | }, 116 | { 117 | "storeId": 1464 118 | }, 119 | { 120 | "storeId": 463 121 | }, 122 | { 123 | "storeId": 360 124 | }, 125 | { 126 | "storeId": 484 127 | }, 128 | { 129 | "storeId": 1026 130 | }, 131 | { 132 | "storeId": 1468 133 | }, 134 | { 135 | "storeId": 381 136 | }, 137 | { 138 | "storeId": 487 139 | }, 140 | { 141 | "storeId": 549 142 | }, 143 | { 144 | "storeId": 760 145 | }, 146 | { 147 | "storeId": 1488 148 | }, 149 | { 150 | "storeId": 300 151 | }, 152 | { 153 | "storeId": 1067 154 | }, 155 | { 156 | "storeId": 331 157 | }, 158 | { 159 | "storeId": 886 160 | }, 161 | { 162 | "storeId": 472 163 | }, 164 | { 165 | "storeId": 1506 166 | }, 167 | { 168 | "storeId": 474 169 | }, 170 | { 171 | "storeId": 1535 172 | }, 173 | { 174 | "storeId": 468 175 | }, 176 | { 177 | "storeId": 2509 178 | }, 179 | { 180 | "storeId": 344 181 | }, 182 | { 183 | "storeId": 887 184 | }, 185 | { 186 | "storeId": 1895 187 | }, 188 | { 189 | "storeId": 388 190 | }, 191 | { 192 | "storeId": 1137 193 | }, 194 | { 195 | "storeId": 400 196 | }, 197 | { 198 | "storeId": 457 199 | }, 200 | { 201 | "storeId": 473 202 | }, 203 | { 204 | "storeId": 1098 205 | }, 206 | { 207 | "storeId": 1177 208 | }, 209 | { 210 | "storeId": 583 211 | }, 212 | { 213 | "storeId": 579 214 | }, 215 | { 216 | "storeId": 581 217 | }, 218 | { 219 | "storeId": 692 220 | }, 221 | { 222 | "storeId": 578 223 | }, 224 | { 225 | "storeId": 475 226 | }, 227 | { 228 | "storeId": 544 229 | }, 230 | { 231 | "storeId": 598 232 | }, 233 | { 234 | "storeId": 456 235 | }, 236 | { 237 | "storeId": 1154 238 | }, 239 | { 240 | "storeId": 1538 241 | }, 242 | { 243 | "storeId": 1531 244 | }, 245 | { 246 | "storeId": 482 247 | }, 248 | { 249 | "storeId": 609 250 | }, 251 | { 252 | "storeId": 1028 253 | }, 254 | { 255 | "storeId": 1448 256 | }, 257 | { 258 | "storeId": 835 259 | }, 260 | { 261 | "storeId": 469 262 | }, 263 | { 264 | "storeId": 1172 265 | }, 266 | { 267 | "storeId": 1891 268 | }, 269 | { 270 | "storeId": 822 271 | }, 272 | { 273 | "storeId": 1029 274 | }, 275 | { 276 | "storeId": 471 277 | }, 278 | { 279 | "storeId": 374 280 | }, 281 | { 282 | "storeId": 461 283 | }, 284 | { 285 | "storeId": 1394 286 | }, 287 | { 288 | "storeId": 455 289 | }, 290 | { 291 | "storeId": 478 292 | }, 293 | { 294 | "storeId": 599 295 | }, 296 | { 297 | "storeId": 2518 298 | }, 299 | { 300 | "storeId": 1520 301 | }, 302 | { 303 | "storeId": 1886 304 | }, 305 | { 306 | "storeId": 1115 307 | }, 308 | { 309 | "storeId": 483 310 | }, 311 | { 312 | "storeId": 1467 313 | }, 314 | { 315 | "storeId": 950 316 | } 317 | ] 318 | }, 319 | "rawHeaders": [ 320 | "Access-Control-Allow-Headers", 321 | "origin, x-requested-with, accept", 322 | "Access-Control-Allow-Methods", 323 | "GET", 324 | "Access-Control-Allow-Origin", 325 | "*", 326 | "Access-Control-Max-Age", 327 | "3628800", 328 | "Content-Type", 329 | "application/json; charset=UTF-8", 330 | "Date", 331 | "Fri, 22 Sep 2017 22:16:25 GMT", 332 | "Server", 333 | "Best Buy Public APIs", 334 | "X-Cache-Hit", 335 | "true", 336 | "Content-Length", 337 | "1922", 338 | "Connection", 339 | "Close" 340 | ] 341 | }, 342 | { 343 | "scope": "https://api.bestbuy.com:443", 344 | "method": "get", 345 | "path": "/v1/stores(storeType=Big%20Box)?format=json&apiKey=XXX&show=storeId&cursorMark=AoMlMTE1ODEIP4AAACxzdG9yZV85NTBfdXM%3D&pageSize=100", 346 | "body": "", 347 | "status": 200, 348 | "response": { 349 | "nextCursorMark": "AoMlMjIxNTAIP4AAACxzdG9yZV8yNjlfdXM=", 350 | "total": 1021, 351 | "totalPages": 11, 352 | "queryTime": "0.053", 353 | "totalTime": "0.098", 354 | "partial": false, 355 | "canonicalUrl": "/v1/stores(storeType=\"Big Box\")?show=storeId&pageSize=100&cursorMark=AoMlMTE1ODEIP4AAACxzdG9yZV85NTBfdXM=&format=json&apiKey=XXX", 356 | "stores": [ 357 | { 358 | "storeId": 454 359 | }, 360 | { 361 | "storeId": 442 362 | }, 363 | { 364 | "storeId": 458 365 | }, 366 | { 367 | "storeId": 200 368 | }, 369 | { 370 | "storeId": 345 371 | }, 372 | { 373 | "storeId": 467 374 | }, 375 | { 376 | "storeId": 824 377 | }, 378 | { 379 | "storeId": 809 380 | }, 381 | { 382 | "storeId": 428 383 | }, 384 | { 385 | "storeId": 518 386 | }, 387 | { 388 | "storeId": 460 389 | }, 390 | { 391 | "storeId": 541 392 | }, 393 | { 394 | "storeId": 1091 395 | }, 396 | { 397 | "storeId": 1183 398 | }, 399 | { 400 | "storeId": 538 401 | }, 402 | { 403 | "storeId": 1127 404 | }, 405 | { 406 | "storeId": 545 407 | }, 408 | { 409 | "storeId": 1089 410 | }, 411 | { 412 | "storeId": 1380 413 | }, 414 | { 415 | "storeId": 1131 416 | }, 417 | { 418 | "storeId": 1455 419 | }, 420 | { 421 | "storeId": 1152 422 | }, 423 | { 424 | "storeId": 459 425 | }, 426 | { 427 | "storeId": 1541 428 | }, 429 | { 430 | "storeId": 433 431 | }, 432 | { 433 | "storeId": 1400 434 | }, 435 | { 436 | "storeId": 384 437 | }, 438 | { 439 | "storeId": 1036 440 | }, 441 | { 442 | "storeId": 1164 443 | }, 444 | { 445 | "storeId": 586 446 | }, 447 | { 448 | "storeId": 882 449 | }, 450 | { 451 | "storeId": 432 452 | }, 453 | { 454 | "storeId": 588 455 | }, 456 | { 457 | "storeId": 585 458 | }, 459 | { 460 | "storeId": 584 461 | }, 462 | { 463 | "storeId": 595 464 | }, 465 | { 466 | "storeId": 1267 467 | }, 468 | { 469 | "storeId": 825 470 | }, 471 | { 472 | "storeId": 597 473 | }, 474 | { 475 | "storeId": 1015 476 | }, 477 | { 478 | "storeId": 369 479 | }, 480 | { 481 | "storeId": 1478 482 | }, 483 | { 484 | "storeId": 547 485 | }, 486 | { 487 | "storeId": 1087 488 | }, 489 | { 490 | "storeId": 1197 491 | }, 492 | { 493 | "storeId": 1039 494 | }, 495 | { 496 | "storeId": 1794 497 | }, 498 | { 499 | "storeId": 1403 500 | }, 501 | { 502 | "storeId": 587 503 | }, 504 | { 505 | "storeId": 1442 506 | }, 507 | { 508 | "storeId": 341 509 | }, 510 | { 511 | "storeId": 342 512 | }, 513 | { 514 | "storeId": 1395 515 | }, 516 | { 517 | "storeId": 577 518 | }, 519 | { 520 | "storeId": 582 521 | }, 522 | { 523 | "storeId": 576 524 | }, 525 | { 526 | "storeId": 589 527 | }, 528 | { 529 | "storeId": 898 530 | }, 531 | { 532 | "storeId": 1764 533 | }, 534 | { 535 | "storeId": 197 536 | }, 537 | { 538 | "storeId": 1193 539 | }, 540 | { 541 | "storeId": 525 542 | }, 543 | { 544 | "storeId": 448 545 | }, 546 | { 547 | "storeId": 1771 548 | }, 549 | { 550 | "storeId": 580 551 | }, 552 | { 553 | "storeId": 1480 554 | }, 555 | { 556 | "storeId": 465 557 | }, 558 | { 559 | "storeId": 842 560 | }, 561 | { 562 | "storeId": 1092 563 | }, 564 | { 565 | "storeId": 801 566 | }, 567 | { 568 | "storeId": 356 569 | }, 570 | { 571 | "storeId": 1449 572 | }, 573 | { 574 | "storeId": 146 575 | }, 576 | { 577 | "storeId": 1022 578 | }, 579 | { 580 | "storeId": 297 581 | }, 582 | { 583 | "storeId": 446 584 | }, 585 | { 586 | "storeId": 1003 587 | }, 588 | { 589 | "storeId": 1776 590 | }, 591 | { 592 | "storeId": 265 593 | }, 594 | { 595 | "storeId": 486 596 | }, 597 | { 598 | "storeId": 2508 599 | }, 600 | { 601 | "storeId": 293 602 | }, 603 | { 604 | "storeId": 819 605 | }, 606 | { 607 | "storeId": 288 608 | }, 609 | { 610 | "storeId": 1129 611 | }, 612 | { 613 | "storeId": 296 614 | }, 615 | { 616 | "storeId": 290 617 | }, 618 | { 619 | "storeId": 263 620 | }, 621 | { 622 | "storeId": 1053 623 | }, 624 | { 625 | "storeId": 149 626 | }, 627 | { 628 | "storeId": 1436 629 | }, 630 | { 631 | "storeId": 159 632 | }, 633 | { 634 | "storeId": 163 635 | }, 636 | { 637 | "storeId": 427 638 | }, 639 | { 640 | "storeId": 1445 641 | }, 642 | { 643 | "storeId": 772 644 | }, 645 | { 646 | "storeId": 1199 647 | }, 648 | { 649 | "storeId": 273 650 | }, 651 | { 652 | "storeId": 283 653 | }, 654 | { 655 | "storeId": 269 656 | } 657 | ] 658 | }, 659 | "rawHeaders": [ 660 | "Access-Control-Allow-Headers", 661 | "origin, x-requested-with, accept", 662 | "Access-Control-Allow-Methods", 663 | "GET", 664 | "Access-Control-Allow-Origin", 665 | "*", 666 | "Access-Control-Max-Age", 667 | "3628800", 668 | "Content-Type", 669 | "application/json; charset=UTF-8", 670 | "Date", 671 | "Fri, 22 Sep 2017 22:13:12 GMT", 672 | "Server", 673 | "Best Buy Public APIs", 674 | "X-Cache-Hit", 675 | "true", 676 | "Content-Length", 677 | "1959", 678 | "Connection", 679 | "Close" 680 | ] 681 | }, 682 | { 683 | "scope": "https://api.bestbuy.com:443", 684 | "method": "get", 685 | "path": "/v1/stores(storeType=Big%20Box)?format=json&apiKey=XXX&show=storeId&cursorMark=AoMlMjIxNTAIP4AAACxzdG9yZV8yNjlfdXM%3D&pageSize=100", 686 | "body": "", 687 | "status": 200, 688 | "response": { 689 | "nextCursorMark": "AoMlMzEwOTMIP4AAAC1zdG9yZV8xMTg1X3Vz", 690 | "total": 1021, 691 | "totalPages": 11, 692 | "queryTime": "0.010", 693 | "totalTime": "0.053", 694 | "partial": false, 695 | "canonicalUrl": "/v1/stores(storeType=\"Big Box\")?show=storeId&pageSize=100&cursorMark=AoMlMjIxNTAIP4AAACxzdG9yZV8yNjlfdXM=&format=json&apiKey=XXX", 696 | "stores": [ 697 | { 698 | "storeId": 397 699 | }, 700 | { 701 | "storeId": 287 702 | }, 703 | { 704 | "storeId": 276 705 | }, 706 | { 707 | "storeId": 493 708 | }, 709 | { 710 | "storeId": 166 711 | }, 712 | { 713 | "storeId": 1476 714 | }, 715 | { 716 | "storeId": 1086 717 | }, 718 | { 719 | "storeId": 1534 720 | }, 721 | { 722 | "storeId": 860 723 | }, 724 | { 725 | "storeId": 1013 726 | }, 727 | { 728 | "storeId": 423 729 | }, 730 | { 731 | "storeId": 1465 732 | }, 733 | { 734 | "storeId": 1437 735 | }, 736 | { 737 | "storeId": 1444 738 | }, 739 | { 740 | "storeId": 422 741 | }, 742 | { 743 | "storeId": 421 744 | }, 745 | { 746 | "storeId": 766 747 | }, 748 | { 749 | "storeId": 1460 750 | }, 751 | { 752 | "storeId": 420 753 | }, 754 | { 755 | "storeId": 479 756 | }, 757 | { 758 | "storeId": 788 759 | }, 760 | { 761 | "storeId": 434 762 | }, 763 | { 764 | "storeId": 1149 765 | }, 766 | { 767 | "storeId": 1085 768 | }, 769 | { 770 | "storeId": 444 771 | }, 772 | { 773 | "storeId": 1266 774 | }, 775 | { 776 | "storeId": 1528 777 | }, 778 | { 779 | "storeId": 573 780 | }, 781 | { 782 | "storeId": 1798 783 | }, 784 | { 785 | "storeId": 832 786 | }, 787 | { 788 | "storeId": 158 789 | }, 790 | { 791 | "storeId": 648 792 | }, 793 | { 794 | "storeId": 155 795 | }, 796 | { 797 | "storeId": 147 798 | }, 799 | { 800 | "storeId": 574 801 | }, 802 | { 803 | "storeId": 1492 804 | }, 805 | { 806 | "storeId": 299 807 | }, 808 | { 809 | "storeId": 821 810 | }, 811 | { 812 | "storeId": 1453 813 | }, 814 | { 815 | "storeId": 160 816 | }, 817 | { 818 | "storeId": 1051 819 | }, 820 | { 821 | "storeId": 386 822 | }, 823 | { 824 | "storeId": 1892 825 | }, 826 | { 827 | "storeId": 1132 828 | }, 829 | { 830 | "storeId": 268 831 | }, 832 | { 833 | "storeId": 175 834 | }, 835 | { 836 | "storeId": 261 837 | }, 838 | { 839 | "storeId": 1133 840 | }, 841 | { 842 | "storeId": 262 843 | }, 844 | { 845 | "storeId": 1108 846 | }, 847 | { 848 | "storeId": 1155 849 | }, 850 | { 851 | "storeId": 1107 852 | }, 853 | { 854 | "storeId": 1767 855 | }, 856 | { 857 | "storeId": 174 858 | }, 859 | { 860 | "storeId": 601 861 | }, 862 | { 863 | "storeId": 378 864 | }, 865 | { 866 | "storeId": 805 867 | }, 868 | { 869 | "storeId": 1451 870 | }, 871 | { 872 | "storeId": 425 873 | }, 874 | { 875 | "storeId": 953 876 | }, 877 | { 878 | "storeId": 1385 879 | }, 880 | { 881 | "storeId": 445 882 | }, 883 | { 884 | "storeId": 1466 885 | }, 886 | { 887 | "storeId": 264 888 | }, 889 | { 890 | "storeId": 270 891 | }, 892 | { 893 | "storeId": 1515 894 | }, 895 | { 896 | "storeId": 294 897 | }, 898 | { 899 | "storeId": 517 900 | }, 901 | { 902 | "storeId": 1120 903 | }, 904 | { 905 | "storeId": 1428 906 | }, 907 | { 908 | "storeId": 826 909 | }, 910 | { 911 | "storeId": 855 912 | }, 913 | { 914 | "storeId": 272 915 | }, 916 | { 917 | "storeId": 520 918 | }, 919 | { 920 | "storeId": 894 921 | }, 922 | { 923 | "storeId": 664 924 | }, 925 | { 926 | "storeId": 389 927 | }, 928 | { 929 | "storeId": 516 930 | }, 931 | { 932 | "storeId": 1408 933 | }, 934 | { 935 | "storeId": 776 936 | }, 937 | { 938 | "storeId": 502 939 | }, 940 | { 941 | "storeId": 513 942 | }, 943 | { 944 | "storeId": 504 945 | }, 946 | { 947 | "storeId": 1159 948 | }, 949 | { 950 | "storeId": 1186 951 | }, 952 | { 953 | "storeId": 519 954 | }, 955 | { 956 | "storeId": 1486 957 | }, 958 | { 959 | "storeId": 501 960 | }, 961 | { 962 | "storeId": 668 963 | }, 964 | { 965 | "storeId": 505 966 | }, 967 | { 968 | "storeId": 1037 969 | }, 970 | { 971 | "storeId": 1049 972 | }, 973 | { 974 | "storeId": 896 975 | }, 976 | { 977 | "storeId": 890 978 | }, 979 | { 980 | "storeId": 503 981 | }, 982 | { 983 | "storeId": 1071 984 | }, 985 | { 986 | "storeId": 426 987 | }, 988 | { 989 | "storeId": 511 990 | }, 991 | { 992 | "storeId": 507 993 | }, 994 | { 995 | "storeId": 1185 996 | } 997 | ] 998 | }, 999 | "rawHeaders": [ 1000 | "Access-Control-Allow-Headers", 1001 | "origin, x-requested-with, accept", 1002 | "Access-Control-Allow-Methods", 1003 | "GET", 1004 | "Access-Control-Allow-Origin", 1005 | "*", 1006 | "Access-Control-Max-Age", 1007 | "3628800", 1008 | "Content-Type", 1009 | "application/json; charset=UTF-8", 1010 | "Date", 1011 | "Fri, 22 Sep 2017 22:13:12 GMT", 1012 | "Server", 1013 | "Best Buy Public APIs", 1014 | "X-Cache-Hit", 1015 | "true", 1016 | "Content-Length", 1017 | "1959", 1018 | "Connection", 1019 | "Close" 1020 | ] 1021 | }, 1022 | { 1023 | "scope": "https://api.bestbuy.com:443", 1024 | "method": "get", 1025 | "path": "/v1/stores(storeType=Big%20Box)?format=json&apiKey=XXX&show=storeId&cursorMark=AoMlMzEwOTMIP4AAAC1zdG9yZV8xMTg1X3Vz&pageSize=100", 1026 | "body": "", 1027 | "status": 200, 1028 | "response": { 1029 | "nextCursorMark": "AoMlMzg4MDQIP4AAACxzdG9yZV83NzhfdXM=", 1030 | "total": 1021, 1031 | "totalPages": 11, 1032 | "queryTime": "0.007", 1033 | "totalTime": "0.050", 1034 | "partial": false, 1035 | "canonicalUrl": "/v1/stores(storeType=\"Big Box\")?show=storeId&pageSize=100&cursorMark=AoMlMzEwOTMIP4AAAC1zdG9yZV8xMTg1X3Vz&format=json&apiKey=XXX", 1036 | "stores": [ 1037 | { 1038 | "storeId": 365 1039 | }, 1040 | { 1041 | "storeId": 508 1042 | }, 1043 | { 1044 | "storeId": 789 1045 | }, 1046 | { 1047 | "storeId": 843 1048 | }, 1049 | { 1050 | "storeId": 515 1051 | }, 1052 | { 1053 | "storeId": 1763 1054 | }, 1055 | { 1056 | "storeId": 1475 1057 | }, 1058 | { 1059 | "storeId": 429 1060 | }, 1061 | { 1062 | "storeId": 430 1063 | }, 1064 | { 1065 | "storeId": 1790 1066 | }, 1067 | { 1068 | "storeId": 350 1069 | }, 1070 | { 1071 | "storeId": 435 1072 | }, 1073 | { 1074 | "storeId": 857 1075 | }, 1076 | { 1077 | "storeId": 395 1078 | }, 1079 | { 1080 | "storeId": 799 1081 | }, 1082 | { 1083 | "storeId": 424 1084 | }, 1085 | { 1086 | "storeId": 509 1087 | }, 1088 | { 1089 | "storeId": 608 1090 | }, 1091 | { 1092 | "storeId": 157 1093 | }, 1094 | { 1095 | "storeId": 510 1096 | }, 1097 | { 1098 | "storeId": 571 1099 | }, 1100 | { 1101 | "storeId": 1530 1102 | }, 1103 | { 1104 | "storeId": 512 1105 | }, 1106 | { 1107 | "storeId": 816 1108 | }, 1109 | { 1110 | "storeId": 555 1111 | }, 1112 | { 1113 | "storeId": 559 1114 | }, 1115 | { 1116 | "storeId": 1178 1117 | }, 1118 | { 1119 | "storeId": 1424 1120 | }, 1121 | { 1122 | "storeId": 1136 1123 | }, 1124 | { 1125 | "storeId": 1498 1126 | }, 1127 | { 1128 | "storeId": 557 1129 | }, 1130 | { 1131 | "storeId": 553 1132 | }, 1133 | { 1134 | "storeId": 1503 1135 | }, 1136 | { 1137 | "storeId": 1502 1138 | }, 1139 | { 1140 | "storeId": 558 1141 | }, 1142 | { 1143 | "storeId": 552 1144 | }, 1145 | { 1146 | "storeId": 543 1147 | }, 1148 | { 1149 | "storeId": 551 1150 | }, 1151 | { 1152 | "storeId": 1258 1153 | }, 1154 | { 1155 | "storeId": 550 1156 | }, 1157 | { 1158 | "storeId": 688 1159 | }, 1160 | { 1161 | "storeId": 1168 1162 | }, 1163 | { 1164 | "storeId": 808 1165 | }, 1166 | { 1167 | "storeId": 554 1168 | }, 1169 | { 1170 | "storeId": 560 1171 | }, 1172 | { 1173 | "storeId": 1405 1174 | }, 1175 | { 1176 | "storeId": 561 1177 | }, 1178 | { 1179 | "storeId": 462 1180 | }, 1181 | { 1182 | "storeId": 2513 1183 | }, 1184 | { 1185 | "storeId": 565 1186 | }, 1187 | { 1188 | "storeId": 564 1189 | }, 1190 | { 1191 | "storeId": 563 1192 | }, 1193 | { 1194 | "storeId": 1184 1195 | }, 1196 | { 1197 | "storeId": 431 1198 | }, 1199 | { 1200 | "storeId": 1135 1201 | }, 1202 | { 1203 | "storeId": 767 1204 | }, 1205 | { 1206 | "storeId": 1539 1207 | }, 1208 | { 1209 | "storeId": 524 1210 | }, 1211 | { 1212 | "storeId": 1141 1213 | }, 1214 | { 1215 | "storeId": 562 1216 | }, 1217 | { 1218 | "storeId": 1452 1219 | }, 1220 | { 1221 | "storeId": 862 1222 | }, 1223 | { 1224 | "storeId": 1383 1225 | }, 1226 | { 1227 | "storeId": 885 1228 | }, 1229 | { 1230 | "storeId": 1411 1231 | }, 1232 | { 1233 | "storeId": 443 1234 | }, 1235 | { 1236 | "storeId": 1156 1237 | }, 1238 | { 1239 | "storeId": 881 1240 | }, 1241 | { 1242 | "storeId": 1162 1243 | }, 1244 | { 1245 | "storeId": 1446 1246 | }, 1247 | { 1248 | "storeId": 1004 1249 | }, 1250 | { 1251 | "storeId": 383 1252 | }, 1253 | { 1254 | "storeId": 807 1255 | }, 1256 | { 1257 | "storeId": 1540 1258 | }, 1259 | { 1260 | "storeId": 514 1261 | }, 1262 | { 1263 | "storeId": 1785 1264 | }, 1265 | { 1266 | "storeId": 836 1267 | }, 1268 | { 1269 | "storeId": 1097 1270 | }, 1271 | { 1272 | "storeId": 793 1273 | }, 1274 | { 1275 | "storeId": 678 1276 | }, 1277 | { 1278 | "storeId": 340 1279 | }, 1280 | { 1281 | "storeId": 662 1282 | }, 1283 | { 1284 | "storeId": 170 1285 | }, 1286 | { 1287 | "storeId": 663 1288 | }, 1289 | { 1290 | "storeId": 172 1291 | }, 1292 | { 1293 | "storeId": 1064 1294 | }, 1295 | { 1296 | "storeId": 1425 1297 | }, 1298 | { 1299 | "storeId": 1130 1300 | }, 1301 | { 1302 | "storeId": 1070 1303 | }, 1304 | { 1305 | "storeId": 488 1306 | }, 1307 | { 1308 | "storeId": 899 1309 | }, 1310 | { 1311 | "storeId": 1894 1312 | }, 1313 | { 1314 | "storeId": 169 1315 | }, 1316 | { 1317 | "storeId": 1382 1318 | }, 1319 | { 1320 | "storeId": 1399 1321 | }, 1322 | { 1323 | "storeId": 171 1324 | }, 1325 | { 1326 | "storeId": 165 1327 | }, 1328 | { 1329 | "storeId": 853 1330 | }, 1331 | { 1332 | "storeId": 1447 1333 | }, 1334 | { 1335 | "storeId": 778 1336 | } 1337 | ] 1338 | }, 1339 | "rawHeaders": [ 1340 | "Access-Control-Allow-Headers", 1341 | "origin, x-requested-with, accept", 1342 | "Access-Control-Allow-Methods", 1343 | "GET", 1344 | "Access-Control-Allow-Origin", 1345 | "*", 1346 | "Access-Control-Max-Age", 1347 | "3628800", 1348 | "Content-Type", 1349 | "application/json; charset=UTF-8", 1350 | "Date", 1351 | "Fri, 22 Sep 2017 22:13:12 GMT", 1352 | "Server", 1353 | "Best Buy Public APIs", 1354 | "X-Cache-Hit", 1355 | "true", 1356 | "Content-Length", 1357 | "1958", 1358 | "Connection", 1359 | "Close" 1360 | ] 1361 | }, 1362 | { 1363 | "scope": "https://api.bestbuy.com:443", 1364 | "method": "get", 1365 | "path": "/v1/stores(storeType=Big%20Box)?format=json&apiKey=XXX&show=storeId&cursorMark=AoMlMzg4MDQIP4AAACxzdG9yZV83NzhfdXM%3D&pageSize=100", 1366 | "body": "", 1367 | "status": 200, 1368 | "response": { 1369 | "nextCursorMark": "AoMlNDkyMDIIP4AAACxzdG9yZV80NzZfdXM=", 1370 | "total": 1021, 1371 | "totalPages": 11, 1372 | "queryTime": "0.009", 1373 | "totalTime": "0.050", 1374 | "partial": false, 1375 | "canonicalUrl": "/v1/stores(storeType=\"Big Box\")?show=storeId&pageSize=100&cursorMark=AoMlMzg4MDQIP4AAACxzdG9yZV83NzhfdXM=&format=json&apiKey=XXX", 1376 | "stores": [ 1377 | { 1378 | "storeId": 1519 1379 | }, 1380 | { 1381 | "storeId": 938 1382 | }, 1383 | { 1384 | "storeId": 1439 1385 | }, 1386 | { 1387 | "storeId": 661 1388 | }, 1389 | { 1390 | "storeId": 1174 1391 | }, 1392 | { 1393 | "storeId": 1781 1394 | }, 1395 | { 1396 | "storeId": 333 1397 | }, 1398 | { 1399 | "storeId": 335 1400 | }, 1401 | { 1402 | "storeId": 259 1403 | }, 1404 | { 1405 | "storeId": 1477 1406 | }, 1407 | { 1408 | "storeId": 161 1409 | }, 1410 | { 1411 | "storeId": 817 1412 | }, 1413 | { 1414 | "storeId": 440 1415 | }, 1416 | { 1417 | "storeId": 1121 1418 | }, 1419 | { 1420 | "storeId": 791 1421 | }, 1422 | { 1423 | "storeId": 156 1424 | }, 1425 | { 1426 | "storeId": 1167 1427 | }, 1428 | { 1429 | "storeId": 145 1430 | }, 1431 | { 1432 | "storeId": 292 1433 | }, 1434 | { 1435 | "storeId": 1096 1436 | }, 1437 | { 1438 | "storeId": 339 1439 | }, 1440 | { 1441 | "storeId": 295 1442 | }, 1443 | { 1444 | "storeId": 570 1445 | }, 1446 | { 1447 | "storeId": 247 1448 | }, 1449 | { 1450 | "storeId": 1429 1451 | }, 1452 | { 1453 | "storeId": 243 1454 | }, 1455 | { 1456 | "storeId": 1050 1457 | }, 1458 | { 1459 | "storeId": 284 1460 | }, 1461 | { 1462 | "storeId": 758 1463 | }, 1464 | { 1465 | "storeId": 168 1466 | }, 1467 | { 1468 | "storeId": 279 1469 | }, 1470 | { 1471 | "storeId": 271 1472 | }, 1473 | { 1474 | "storeId": 162 1475 | }, 1476 | { 1477 | "storeId": 1099 1478 | }, 1479 | { 1480 | "storeId": 278 1481 | }, 1482 | { 1483 | "storeId": 285 1484 | }, 1485 | { 1486 | "storeId": 834 1487 | }, 1488 | { 1489 | "storeId": 257 1490 | }, 1491 | { 1492 | "storeId": 880 1493 | }, 1494 | { 1495 | "storeId": 286 1496 | }, 1497 | { 1498 | "storeId": 879 1499 | }, 1500 | { 1501 | "storeId": 390 1502 | }, 1503 | { 1504 | "storeId": 617 1505 | }, 1506 | { 1507 | "storeId": 394 1508 | }, 1509 | { 1510 | "storeId": 154 1511 | }, 1512 | { 1513 | "storeId": 153 1514 | }, 1515 | { 1516 | "storeId": 494 1517 | }, 1518 | { 1519 | "storeId": 1474 1520 | }, 1521 | { 1522 | "storeId": 266 1523 | }, 1524 | { 1525 | "storeId": 274 1526 | }, 1527 | { 1528 | "storeId": 790 1529 | }, 1530 | { 1531 | "storeId": 795 1532 | }, 1533 | { 1534 | "storeId": 1094 1535 | }, 1536 | { 1537 | "storeId": 490 1538 | }, 1539 | { 1540 | "storeId": 1025 1541 | }, 1542 | { 1543 | "storeId": 489 1544 | }, 1545 | { 1546 | "storeId": 230 1547 | }, 1548 | { 1549 | "storeId": 232 1550 | }, 1551 | { 1552 | "storeId": 229 1553 | }, 1554 | { 1555 | "storeId": 231 1556 | }, 1557 | { 1558 | "storeId": 1774 1559 | }, 1560 | { 1561 | "storeId": 951 1562 | }, 1563 | { 1564 | "storeId": 309 1565 | }, 1566 | { 1567 | "storeId": 325 1568 | }, 1569 | { 1570 | "storeId": 368 1571 | }, 1572 | { 1573 | "storeId": 228 1574 | }, 1575 | { 1576 | "storeId": 371 1577 | }, 1578 | { 1579 | "storeId": 1010 1580 | }, 1581 | { 1582 | "storeId": 2512 1583 | }, 1584 | { 1585 | "storeId": 491 1586 | }, 1587 | { 1588 | "storeId": 1252 1589 | }, 1590 | { 1591 | "storeId": 858 1592 | }, 1593 | { 1594 | "storeId": 227 1595 | }, 1596 | { 1597 | "storeId": 2501 1598 | }, 1599 | { 1600 | "storeId": 327 1601 | }, 1602 | { 1603 | "storeId": 404 1604 | }, 1605 | { 1606 | "storeId": 1095 1607 | }, 1608 | { 1609 | "storeId": 415 1610 | }, 1611 | { 1612 | "storeId": 407 1613 | }, 1614 | { 1615 | "storeId": 414 1616 | }, 1617 | { 1618 | "storeId": 1406 1619 | }, 1620 | { 1621 | "storeId": 408 1622 | }, 1623 | { 1624 | "storeId": 841 1625 | }, 1626 | { 1627 | "storeId": 410 1628 | }, 1629 | { 1630 | "storeId": 401 1631 | }, 1632 | { 1633 | "storeId": 403 1634 | }, 1635 | { 1636 | "storeId": 412 1637 | }, 1638 | { 1639 | "storeId": 949 1640 | }, 1641 | { 1642 | "storeId": 402 1643 | }, 1644 | { 1645 | "storeId": 449 1646 | }, 1647 | { 1648 | "storeId": 897 1649 | }, 1650 | { 1651 | "storeId": 417 1652 | }, 1653 | { 1654 | "storeId": 411 1655 | }, 1656 | { 1657 | "storeId": 405 1658 | }, 1659 | { 1660 | "storeId": 416 1661 | }, 1662 | { 1663 | "storeId": 803 1664 | }, 1665 | { 1666 | "storeId": 413 1667 | }, 1668 | { 1669 | "storeId": 840 1670 | }, 1671 | { 1672 | "storeId": 376 1673 | }, 1674 | { 1675 | "storeId": 476 1676 | } 1677 | ] 1678 | }, 1679 | "rawHeaders": [ 1680 | "Access-Control-Allow-Headers", 1681 | "origin, x-requested-with, accept", 1682 | "Access-Control-Allow-Methods", 1683 | "GET", 1684 | "Access-Control-Allow-Origin", 1685 | "*", 1686 | "Access-Control-Max-Age", 1687 | "3628800", 1688 | "Content-Type", 1689 | "application/json; charset=UTF-8", 1690 | "Date", 1691 | "Fri, 22 Sep 2017 22:13:12 GMT", 1692 | "Server", 1693 | "Best Buy Public APIs", 1694 | "X-Cache-Hit", 1695 | "true", 1696 | "Content-Length", 1697 | "1943", 1698 | "Connection", 1699 | "Close" 1700 | ] 1701 | }, 1702 | { 1703 | "scope": "https://api.bestbuy.com:443", 1704 | "method": "get", 1705 | "path": "/v1/stores(storeType=Big%20Box)?format=json&apiKey=XXX&show=storeId&cursorMark=AoMlNDkyMDIIP4AAACxzdG9yZV80NzZfdXM%3D&pageSize=100", 1706 | "body": "", 1707 | "status": 200, 1708 | "response": { 1709 | "nextCursorMark": "AoMlNjA1NDIIP4AAAC1zdG9yZV8xNzc4X3Vz", 1710 | "total": 1021, 1711 | "totalPages": 11, 1712 | "queryTime": "0.028", 1713 | "totalTime": "0.068", 1714 | "partial": false, 1715 | "canonicalUrl": "/v1/stores(storeType=\"Big Box\")?show=storeId&pageSize=100&cursorMark=AoMlNDkyMDIIP4AAACxzdG9yZV80NzZfdXM=&format=json&apiKey=XXX", 1716 | "stores": [ 1717 | { 1718 | "storeId": 464 1719 | }, 1720 | { 1721 | "storeId": 883 1722 | }, 1723 | { 1724 | "storeId": 480 1725 | }, 1726 | { 1727 | "storeId": 409 1728 | }, 1729 | { 1730 | "storeId": 406 1731 | }, 1732 | { 1733 | "storeId": 500 1734 | }, 1735 | { 1736 | "storeId": 2515 1737 | }, 1738 | { 1739 | "storeId": 812 1740 | }, 1741 | { 1742 | "storeId": 1512 1743 | }, 1744 | { 1745 | "storeId": 16 1746 | }, 1747 | { 1748 | "storeId": 796 1749 | }, 1750 | { 1751 | "storeId": 604 1752 | }, 1753 | { 1754 | "storeId": 379 1755 | }, 1756 | { 1757 | "storeId": 792 1758 | }, 1759 | { 1760 | "storeId": 878 1761 | }, 1762 | { 1763 | "storeId": 21 1764 | }, 1765 | { 1766 | "storeId": 20 1767 | }, 1768 | { 1769 | "storeId": 22 1770 | }, 1771 | { 1772 | "storeId": 667 1773 | }, 1774 | { 1775 | "storeId": 1192 1776 | }, 1777 | { 1778 | "storeId": 1147 1779 | }, 1780 | { 1781 | "storeId": 44 1782 | }, 1783 | { 1784 | "storeId": 757 1785 | }, 1786 | { 1787 | "storeId": 1191 1788 | }, 1789 | { 1790 | "storeId": 1489 1791 | }, 1792 | { 1793 | "storeId": 654 1794 | }, 1795 | { 1796 | "storeId": 25 1797 | }, 1798 | { 1799 | "storeId": 26 1800 | }, 1801 | { 1802 | "storeId": 29 1803 | }, 1804 | { 1805 | "storeId": 892 1806 | }, 1807 | { 1808 | "storeId": 59 1809 | }, 1810 | { 1811 | "storeId": 208 1812 | }, 1813 | { 1814 | "storeId": 28 1815 | }, 1816 | { 1817 | "storeId": 399 1818 | }, 1819 | { 1820 | "storeId": 1052 1821 | }, 1822 | { 1823 | "storeId": 18 1824 | }, 1825 | { 1826 | "storeId": 40 1827 | }, 1828 | { 1829 | "storeId": 1890 1830 | }, 1831 | { 1832 | "storeId": 27 1833 | }, 1834 | { 1835 | "storeId": 1047 1836 | }, 1837 | { 1838 | "storeId": 6 1839 | }, 1840 | { 1841 | "storeId": 10 1842 | }, 1843 | { 1844 | "storeId": 7 1845 | }, 1846 | { 1847 | "storeId": 1055 1848 | }, 1849 | { 1850 | "storeId": 245 1851 | }, 1852 | { 1853 | "storeId": 15 1854 | }, 1855 | { 1856 | "storeId": 4 1857 | }, 1858 | { 1859 | "storeId": 8 1860 | }, 1861 | { 1862 | "storeId": 611 1863 | }, 1864 | { 1865 | "storeId": 1514 1866 | }, 1867 | { 1868 | "storeId": 329 1869 | }, 1870 | { 1871 | "storeId": 1463 1872 | }, 1873 | { 1874 | "storeId": 281 1875 | }, 1876 | { 1877 | "storeId": 1000 1878 | }, 1879 | { 1880 | "storeId": 11 1881 | }, 1882 | { 1883 | "storeId": 1443 1884 | }, 1885 | { 1886 | "storeId": 540 1887 | }, 1888 | { 1889 | "storeId": 43 1890 | }, 1891 | { 1892 | "storeId": 14 1893 | }, 1894 | { 1895 | "storeId": 330 1896 | }, 1897 | { 1898 | "storeId": 12 1899 | }, 1900 | { 1901 | "storeId": 522 1902 | }, 1903 | { 1904 | "storeId": 17 1905 | }, 1906 | { 1907 | "storeId": 861 1908 | }, 1909 | { 1910 | "storeId": 13 1911 | }, 1912 | { 1913 | "storeId": 337 1914 | }, 1915 | { 1916 | "storeId": 1012 1917 | }, 1918 | { 1919 | "storeId": 1063 1920 | }, 1921 | { 1922 | "storeId": 592 1923 | }, 1924 | { 1925 | "storeId": 593 1926 | }, 1927 | { 1928 | "storeId": 1016 1929 | }, 1930 | { 1931 | "storeId": 303 1932 | }, 1933 | { 1934 | "storeId": 315 1935 | }, 1936 | { 1937 | "storeId": 849 1938 | }, 1939 | { 1940 | "storeId": 647 1941 | }, 1942 | { 1943 | "storeId": 1166 1944 | }, 1945 | { 1946 | "storeId": 318 1947 | }, 1948 | { 1949 | "storeId": 1165 1950 | }, 1951 | { 1952 | "storeId": 302 1953 | }, 1954 | { 1955 | "storeId": 1169 1956 | }, 1957 | { 1958 | "storeId": 304 1959 | }, 1960 | { 1961 | "storeId": 893 1962 | }, 1963 | { 1964 | "storeId": 387 1965 | }, 1966 | { 1967 | "storeId": 322 1968 | }, 1969 | { 1970 | "storeId": 305 1971 | }, 1972 | { 1973 | "storeId": 607 1974 | }, 1975 | { 1976 | "storeId": 313 1977 | }, 1978 | { 1979 | "storeId": 306 1980 | }, 1981 | { 1982 | "storeId": 1048 1983 | }, 1984 | { 1985 | "storeId": 307 1986 | }, 1987 | { 1988 | "storeId": 312 1989 | }, 1990 | { 1991 | "storeId": 311 1992 | }, 1993 | { 1994 | "storeId": 308 1995 | }, 1996 | { 1997 | "storeId": 1066 1998 | }, 1999 | { 2000 | "storeId": 813 2001 | }, 2002 | { 2003 | "storeId": 310 2004 | }, 2005 | { 2006 | "storeId": 301 2007 | }, 2008 | { 2009 | "storeId": 316 2010 | }, 2011 | { 2012 | "storeId": 324 2013 | }, 2014 | { 2015 | "storeId": 1778 2016 | } 2017 | ] 2018 | }, 2019 | "rawHeaders": [ 2020 | "Access-Control-Allow-Headers", 2021 | "origin, x-requested-with, accept", 2022 | "Access-Control-Allow-Methods", 2023 | "GET", 2024 | "Access-Control-Allow-Origin", 2025 | "*", 2026 | "Access-Control-Max-Age", 2027 | "3628800", 2028 | "Content-Type", 2029 | "application/json; charset=UTF-8", 2030 | "Date", 2031 | "Fri, 22 Sep 2017 22:13:13 GMT", 2032 | "Server", 2033 | "Best Buy Public APIs", 2034 | "X-Cache-Hit", 2035 | "true", 2036 | "Content-Length", 2037 | "1916", 2038 | "Connection", 2039 | "Close" 2040 | ] 2041 | }, 2042 | { 2043 | "scope": "https://api.bestbuy.com:443", 2044 | "method": "get", 2045 | "path": "/v1/stores(storeType=Big%20Box)?format=json&apiKey=XXX&show=storeId&cursorMark=AoMlNjA1NDIIP4AAAC1zdG9yZV8xNzc4X3Vz&pageSize=100", 2046 | "body": "", 2047 | "status": 200, 2048 | "response": { 2049 | "nextCursorMark": "AoMlNzUwNzAIP4AAACxzdG9yZV8xOTZfdXM=", 2050 | "total": 1021, 2051 | "totalPages": 11, 2052 | "queryTime": "0.009", 2053 | "totalTime": "0.046", 2054 | "partial": false, 2055 | "canonicalUrl": "/v1/stores(storeType=\"Big Box\")?show=storeId&pageSize=100&cursorMark=AoMlNjA1NDIIP4AAAC1zdG9yZV8xNzc4X3Vz&format=json&apiKey=XXX", 2056 | "stores": [ 2057 | { 2058 | "storeId": 1170 2059 | }, 2060 | { 2061 | "storeId": 320 2062 | }, 2063 | { 2064 | "storeId": 1142 2065 | }, 2066 | { 2067 | "storeId": 1381 2068 | }, 2069 | { 2070 | "storeId": 814 2071 | }, 2072 | { 2073 | "storeId": 1777 2074 | }, 2075 | { 2076 | "storeId": 323 2077 | }, 2078 | { 2079 | "storeId": 319 2080 | }, 2081 | { 2082 | "storeId": 1123 2083 | }, 2084 | { 2085 | "storeId": 45 2086 | }, 2087 | { 2088 | "storeId": 23 2089 | }, 2090 | { 2091 | "storeId": 207 2092 | }, 2093 | { 2094 | "storeId": 49 2095 | }, 2096 | { 2097 | "storeId": 46 2098 | }, 2099 | { 2100 | "storeId": 1426 2101 | }, 2102 | { 2103 | "storeId": 31 2104 | }, 2105 | { 2106 | "storeId": 1073 2107 | }, 2108 | { 2109 | "storeId": 606 2110 | }, 2111 | { 2112 | "storeId": 47 2113 | }, 2114 | { 2115 | "storeId": 492 2116 | }, 2117 | { 2118 | "storeId": 143 2119 | }, 2120 | { 2121 | "storeId": 1897 2122 | }, 2123 | { 2124 | "storeId": 942 2125 | }, 2126 | { 2127 | "storeId": 34 2128 | }, 2129 | { 2130 | "storeId": 30 2131 | }, 2132 | { 2133 | "storeId": 833 2134 | }, 2135 | { 2136 | "storeId": 32 2137 | }, 2138 | { 2139 | "storeId": 1434 2140 | }, 2141 | { 2142 | "storeId": 523 2143 | }, 2144 | { 2145 | "storeId": 36 2146 | }, 2147 | { 2148 | "storeId": 370 2149 | }, 2150 | { 2151 | "storeId": 1501 2152 | }, 2153 | { 2154 | "storeId": 768 2155 | }, 2156 | { 2157 | "storeId": 613 2158 | }, 2159 | { 2160 | "storeId": 346 2161 | }, 2162 | { 2163 | "storeId": 1102 2164 | }, 2165 | { 2166 | "storeId": 602 2167 | }, 2168 | { 2169 | "storeId": 1793 2170 | }, 2171 | { 2172 | "storeId": 52 2173 | }, 2174 | { 2175 | "storeId": 837 2176 | }, 2177 | { 2178 | "storeId": 193 2179 | }, 2180 | { 2181 | "storeId": 277 2182 | }, 2183 | { 2184 | "storeId": 39 2185 | }, 2186 | { 2187 | "storeId": 1101 2188 | }, 2189 | { 2190 | "storeId": 48 2191 | }, 2192 | { 2193 | "storeId": 1513 2194 | }, 2195 | { 2196 | "storeId": 51 2197 | }, 2198 | { 2199 | "storeId": 224 2200 | }, 2201 | { 2202 | "storeId": 1093 2203 | }, 2204 | { 2205 | "storeId": 206 2206 | }, 2207 | { 2208 | "storeId": 240 2209 | }, 2210 | { 2211 | "storeId": 50 2212 | }, 2213 | { 2214 | "storeId": 1034 2215 | }, 2216 | { 2217 | "storeId": 1542 2218 | }, 2219 | { 2220 | "storeId": 572 2221 | }, 2222 | { 2223 | "storeId": 373 2224 | }, 2225 | { 2226 | "storeId": 1456 2227 | }, 2228 | { 2229 | "storeId": 943 2230 | }, 2231 | { 2232 | "storeId": 1388 2233 | }, 2234 | { 2235 | "storeId": 612 2236 | }, 2237 | { 2238 | "storeId": 380 2239 | }, 2240 | { 2241 | "storeId": 347 2242 | }, 2243 | { 2244 | "storeId": 1080 2245 | }, 2246 | { 2247 | "storeId": 1157 2248 | }, 2249 | { 2250 | "storeId": 495 2251 | }, 2252 | { 2253 | "storeId": 363 2254 | }, 2255 | { 2256 | "storeId": 1462 2257 | }, 2258 | { 2259 | "storeId": 1507 2260 | }, 2261 | { 2262 | "storeId": 2507 2263 | }, 2264 | { 2265 | "storeId": 1800 2266 | }, 2267 | { 2268 | "storeId": 1797 2269 | }, 2270 | { 2271 | "storeId": 1438 2272 | }, 2273 | { 2274 | "storeId": 222 2275 | }, 2276 | { 2277 | "storeId": 275 2278 | }, 2279 | { 2280 | "storeId": 1536 2281 | }, 2282 | { 2283 | "storeId": 351 2284 | }, 2285 | { 2286 | "storeId": 1148 2287 | }, 2288 | { 2289 | "storeId": 248 2290 | }, 2291 | { 2292 | "storeId": 875 2293 | }, 2294 | { 2295 | "storeId": 1427 2296 | }, 2297 | { 2298 | "storeId": 220 2299 | }, 2300 | { 2301 | "storeId": 1419 2302 | }, 2303 | { 2304 | "storeId": 646 2305 | }, 2306 | { 2307 | "storeId": 219 2308 | }, 2309 | { 2310 | "storeId": 1787 2311 | }, 2312 | { 2313 | "storeId": 1401 2314 | }, 2315 | { 2316 | "storeId": 2503 2317 | }, 2318 | { 2319 | "storeId": 1499 2320 | }, 2321 | { 2322 | "storeId": 221 2323 | }, 2324 | { 2325 | "storeId": 762 2326 | }, 2327 | { 2328 | "storeId": 2511 2329 | }, 2330 | { 2331 | "storeId": 1780 2332 | }, 2333 | { 2334 | "storeId": 1038 2335 | }, 2336 | { 2337 | "storeId": 1773 2338 | }, 2339 | { 2340 | "storeId": 180 2341 | }, 2342 | { 2343 | "storeId": 1412 2344 | }, 2345 | { 2346 | "storeId": 205 2347 | }, 2348 | { 2349 | "storeId": 1032 2350 | }, 2351 | { 2352 | "storeId": 258 2353 | }, 2354 | { 2355 | "storeId": 196 2356 | } 2357 | ] 2358 | }, 2359 | "rawHeaders": [ 2360 | "Access-Control-Allow-Headers", 2361 | "origin, x-requested-with, accept", 2362 | "Access-Control-Allow-Methods", 2363 | "GET", 2364 | "Access-Control-Allow-Origin", 2365 | "*", 2366 | "Access-Control-Max-Age", 2367 | "3628800", 2368 | "Content-Type", 2369 | "application/json; charset=UTF-8", 2370 | "Date", 2371 | "Fri, 22 Sep 2017 22:18:05 GMT", 2372 | "Server", 2373 | "Best Buy Public APIs", 2374 | "X-Cache-Hit", 2375 | "true", 2376 | "Content-Length", 2377 | "1948", 2378 | "Connection", 2379 | "Close" 2380 | ] 2381 | }, 2382 | { 2383 | "scope": "https://api.bestbuy.com:443", 2384 | "method": "get", 2385 | "path": "/v1/stores(storeType=Big%20Box)?format=json&apiKey=XXX&show=storeId&cursorMark=AoMlNzUwNzAIP4AAACxzdG9yZV8xOTZfdXM%3D&pageSize=100", 2386 | "body": "", 2387 | "status": 200, 2388 | "response": { 2389 | "nextCursorMark": "AoMlODAxMjMIP4AAACxzdG9yZV8yMTBfdXM=", 2390 | "total": 1021, 2391 | "totalPages": 11, 2392 | "queryTime": "0.025", 2393 | "totalTime": "0.071", 2394 | "partial": false, 2395 | "canonicalUrl": "/v1/stores(storeType=\"Big Box\")?show=storeId&pageSize=100&cursorMark=AoMlNzUwNzAIP4AAACxzdG9yZV8xOTZfdXM=&format=json&apiKey=XXX", 2396 | "stores": [ 2397 | { 2398 | "storeId": 202 2399 | }, 2400 | { 2401 | "storeId": 1417 2402 | }, 2403 | { 2404 | "storeId": 1023 2405 | }, 2406 | { 2407 | "storeId": 56 2408 | }, 2409 | { 2410 | "storeId": 54 2411 | }, 2412 | { 2413 | "storeId": 1889 2414 | }, 2415 | { 2416 | "storeId": 58 2417 | }, 2418 | { 2419 | "storeId": 256 2420 | }, 2421 | { 2422 | "storeId": 2504 2423 | }, 2424 | { 2425 | "storeId": 605 2426 | }, 2427 | { 2428 | "storeId": 594 2429 | }, 2430 | { 2431 | "storeId": 246 2432 | }, 2433 | { 2434 | "storeId": 867 2435 | }, 2436 | { 2437 | "storeId": 57 2438 | }, 2439 | { 2440 | "storeId": 665 2441 | }, 2442 | { 2443 | "storeId": 148 2444 | }, 2445 | { 2446 | "storeId": 55 2447 | }, 2448 | { 2449 | "storeId": 1035 2450 | }, 2451 | { 2452 | "storeId": 1024 2453 | }, 2454 | { 2455 | "storeId": 234 2456 | }, 2457 | { 2458 | "storeId": 176 2459 | }, 2460 | { 2461 | "storeId": 1027 2462 | }, 2463 | { 2464 | "storeId": 1494 2465 | }, 2466 | { 2467 | "storeId": 827 2468 | }, 2469 | { 2470 | "storeId": 195 2471 | }, 2472 | { 2473 | "storeId": 1457 2474 | }, 2475 | { 2476 | "storeId": 182 2477 | }, 2478 | { 2479 | "storeId": 244 2480 | }, 2481 | { 2482 | "storeId": 1017 2483 | }, 2484 | { 2485 | "storeId": 213 2486 | }, 2487 | { 2488 | "storeId": 215 2489 | }, 2490 | { 2491 | "storeId": 1160 2492 | }, 2493 | { 2494 | "storeId": 1768 2495 | }, 2496 | { 2497 | "storeId": 216 2498 | }, 2499 | { 2500 | "storeId": 291 2501 | }, 2502 | { 2503 | "storeId": 214 2504 | }, 2505 | { 2506 | "storeId": 239 2507 | }, 2508 | { 2509 | "storeId": 233 2510 | }, 2511 | { 2512 | "storeId": 876 2513 | }, 2514 | { 2515 | "storeId": 2510 2516 | }, 2517 | { 2518 | "storeId": 865 2519 | }, 2520 | { 2521 | "storeId": 255 2522 | }, 2523 | { 2524 | "storeId": 1397 2525 | }, 2526 | { 2527 | "storeId": 167 2528 | }, 2529 | { 2530 | "storeId": 1072 2531 | }, 2532 | { 2533 | "storeId": 1517 2534 | }, 2535 | { 2536 | "storeId": 1413 2537 | }, 2538 | { 2539 | "storeId": 354 2540 | }, 2541 | { 2542 | "storeId": 1404 2543 | }, 2544 | { 2545 | "storeId": 199 2546 | }, 2547 | { 2548 | "storeId": 357 2549 | }, 2550 | { 2551 | "storeId": 952 2552 | }, 2553 | { 2554 | "storeId": 1458 2555 | }, 2556 | { 2557 | "storeId": 1469 2558 | }, 2559 | { 2560 | "storeId": 948 2561 | }, 2562 | { 2563 | "storeId": 242 2564 | }, 2565 | { 2566 | "storeId": 1545 2567 | }, 2568 | { 2569 | "storeId": 238 2570 | }, 2571 | { 2572 | "storeId": 332 2573 | }, 2574 | { 2575 | "storeId": 603 2576 | }, 2577 | { 2578 | "storeId": 1888 2579 | }, 2580 | { 2581 | "storeId": 241 2582 | }, 2583 | { 2584 | "storeId": 1387 2585 | }, 2586 | { 2587 | "storeId": 181 2588 | }, 2589 | { 2590 | "storeId": 201 2591 | }, 2592 | { 2593 | "storeId": 1081 2594 | }, 2595 | { 2596 | "storeId": 1082 2597 | }, 2598 | { 2599 | "storeId": 152 2600 | }, 2601 | { 2602 | "storeId": 1459 2603 | }, 2604 | { 2605 | "storeId": 864 2606 | }, 2607 | { 2608 | "storeId": 235 2609 | }, 2610 | { 2611 | "storeId": 1784 2612 | }, 2613 | { 2614 | "storeId": 236 2615 | }, 2616 | { 2617 | "storeId": 1473 2618 | }, 2619 | { 2620 | "storeId": 353 2621 | }, 2622 | { 2623 | "storeId": 1516 2624 | }, 2625 | { 2626 | "storeId": 178 2627 | }, 2628 | { 2629 | "storeId": 691 2630 | }, 2631 | { 2632 | "storeId": 1762 2633 | }, 2634 | { 2635 | "storeId": 859 2636 | }, 2637 | { 2638 | "storeId": 828 2639 | }, 2640 | { 2641 | "storeId": 1153 2642 | }, 2643 | { 2644 | "storeId": 204 2645 | }, 2646 | { 2647 | "storeId": 1083 2648 | }, 2649 | { 2650 | "storeId": 2516 2651 | }, 2652 | { 2653 | "storeId": 203 2654 | }, 2655 | { 2656 | "storeId": 218 2657 | }, 2658 | { 2659 | "storeId": 226 2660 | }, 2661 | { 2662 | "storeId": 940 2663 | }, 2664 | { 2665 | "storeId": 280 2666 | }, 2667 | { 2668 | "storeId": 1526 2669 | }, 2670 | { 2671 | "storeId": 829 2672 | }, 2673 | { 2674 | "storeId": 237 2675 | }, 2676 | { 2677 | "storeId": 1470 2678 | }, 2679 | { 2680 | "storeId": 1134 2681 | }, 2682 | { 2683 | "storeId": 217 2684 | }, 2685 | { 2686 | "storeId": 694 2687 | }, 2688 | { 2689 | "storeId": 209 2690 | }, 2691 | { 2692 | "storeId": 1171 2693 | }, 2694 | { 2695 | "storeId": 210 2696 | } 2697 | ] 2698 | }, 2699 | "rawHeaders": [ 2700 | "Access-Control-Allow-Headers", 2701 | "origin, x-requested-with, accept", 2702 | "Access-Control-Allow-Methods", 2703 | "GET", 2704 | "Access-Control-Allow-Origin", 2705 | "*", 2706 | "Access-Control-Max-Age", 2707 | "3628800", 2708 | "Content-Type", 2709 | "application/json; charset=UTF-8", 2710 | "Date", 2711 | "Fri, 22 Sep 2017 22:13:13 GMT", 2712 | "Server", 2713 | "Best Buy Public APIs", 2714 | "X-Cache-Hit", 2715 | "true", 2716 | "Content-Length", 2717 | "1954", 2718 | "Connection", 2719 | "Close" 2720 | ] 2721 | }, 2722 | { 2723 | "scope": "https://api.bestbuy.com:443", 2724 | "method": "get", 2725 | "path": "/v1/stores(storeType=Big%20Box)?format=json&apiKey=XXX&show=storeId&cursorMark=AoMlODAxMjMIP4AAACxzdG9yZV8yMTBfdXM%3D&pageSize=100", 2726 | "body": "", 2727 | "status": 200, 2728 | "response": { 2729 | "nextCursorMark": "AoMlOTE3OTAIP4AAACxzdG9yZV8xMDJfdXM=", 2730 | "total": 1021, 2731 | "totalPages": 11, 2732 | "queryTime": "0.007", 2733 | "totalTime": "0.043", 2734 | "partial": false, 2735 | "canonicalUrl": "/v1/stores(storeType=\"Big Box\")?show=storeId&pageSize=100&cursorMark=AoMlODAxMjMIP4AAACxzdG9yZV8yMTBfdXM=&format=json&apiKey=XXX", 2736 | "stores": [ 2737 | { 2738 | "storeId": 164 2739 | }, 2740 | { 2741 | "storeId": 1410 2742 | }, 2743 | { 2744 | "storeId": 211 2745 | }, 2746 | { 2747 | "storeId": 1224 2748 | }, 2749 | { 2750 | "storeId": 1416 2751 | }, 2752 | { 2753 | "storeId": 1031 2754 | }, 2755 | { 2756 | "storeId": 382 2757 | }, 2758 | { 2759 | "storeId": 1079 2760 | }, 2761 | { 2762 | "storeId": 225 2763 | }, 2764 | { 2765 | "storeId": 693 2766 | }, 2767 | { 2768 | "storeId": 1194 2769 | }, 2770 | { 2771 | "storeId": 298 2772 | }, 2773 | { 2774 | "storeId": 212 2775 | }, 2776 | { 2777 | "storeId": 1030 2778 | }, 2779 | { 2780 | "storeId": 1124 2781 | }, 2782 | { 2783 | "storeId": 1527 2784 | }, 2785 | { 2786 | "storeId": 874 2787 | }, 2788 | { 2789 | "storeId": 944 2790 | }, 2791 | { 2792 | "storeId": 1078 2793 | }, 2794 | { 2795 | "storeId": 526 2796 | }, 2797 | { 2798 | "storeId": 655 2799 | }, 2800 | { 2801 | "storeId": 1402 2802 | }, 2803 | { 2804 | "storeId": 773 2805 | }, 2806 | { 2807 | "storeId": 497 2808 | }, 2809 | { 2810 | "storeId": 1146 2811 | }, 2812 | { 2813 | "storeId": 1761 2814 | }, 2815 | { 2816 | "storeId": 521 2817 | }, 2818 | { 2819 | "storeId": 527 2820 | }, 2821 | { 2822 | "storeId": 945 2823 | }, 2824 | { 2825 | "storeId": 496 2826 | }, 2827 | { 2828 | "storeId": 891 2829 | }, 2830 | { 2831 | "storeId": 253 2832 | }, 2833 | { 2834 | "storeId": 250 2835 | }, 2836 | { 2837 | "storeId": 177 2838 | }, 2839 | { 2840 | "storeId": 249 2841 | }, 2842 | { 2843 | "storeId": 1481 2844 | }, 2845 | { 2846 | "storeId": 254 2847 | }, 2848 | { 2849 | "storeId": 869 2850 | }, 2851 | { 2852 | "storeId": 870 2853 | }, 2854 | { 2855 | "storeId": 1002 2856 | }, 2857 | { 2858 | "storeId": 1189 2859 | }, 2860 | { 2861 | "storeId": 251 2862 | }, 2863 | { 2864 | "storeId": 895 2865 | }, 2866 | { 2867 | "storeId": 787 2868 | }, 2869 | { 2870 | "storeId": 1109 2871 | }, 2872 | { 2873 | "storeId": 485 2874 | }, 2875 | { 2876 | "storeId": 1077 2877 | }, 2878 | { 2879 | "storeId": 123 2880 | }, 2881 | { 2882 | "storeId": 1112 2883 | }, 2884 | { 2885 | "storeId": 198 2886 | }, 2887 | { 2888 | "storeId": 1143 2889 | }, 2890 | { 2891 | "storeId": 1084 2892 | }, 2893 | { 2894 | "storeId": 377 2895 | }, 2896 | { 2897 | "storeId": 338 2898 | }, 2899 | { 2900 | "storeId": 223 2901 | }, 2902 | { 2903 | "storeId": 866 2904 | }, 2905 | { 2906 | "storeId": 375 2907 | }, 2908 | { 2909 | "storeId": 802 2910 | }, 2911 | { 2912 | "storeId": 358 2913 | }, 2914 | { 2915 | "storeId": 122 2916 | }, 2917 | { 2918 | "storeId": 1044 2919 | }, 2920 | { 2921 | "storeId": 289 2922 | }, 2923 | { 2924 | "storeId": 1421 2925 | }, 2926 | { 2927 | "storeId": 542 2928 | }, 2929 | { 2930 | "storeId": 1783 2931 | }, 2932 | { 2933 | "storeId": 1014 2934 | }, 2935 | { 2936 | "storeId": 128 2937 | }, 2938 | { 2939 | "storeId": 850 2940 | }, 2941 | { 2942 | "storeId": 393 2943 | }, 2944 | { 2945 | "storeId": 183 2946 | }, 2947 | { 2948 | "storeId": 109 2949 | }, 2950 | { 2951 | "storeId": 1432 2952 | }, 2953 | { 2954 | "storeId": 1510 2955 | }, 2956 | { 2957 | "storeId": 179 2958 | }, 2959 | { 2960 | "storeId": 872 2961 | }, 2962 | { 2963 | "storeId": 1011 2964 | }, 2965 | { 2966 | "storeId": 104 2967 | }, 2968 | { 2969 | "storeId": 107 2970 | }, 2971 | { 2972 | "storeId": 1537 2973 | }, 2974 | { 2975 | "storeId": 117 2976 | }, 2977 | { 2978 | "storeId": 127 2979 | }, 2980 | { 2981 | "storeId": 1119 2982 | }, 2983 | { 2984 | "storeId": 1009 2985 | }, 2986 | { 2987 | "storeId": 1782 2988 | }, 2989 | { 2990 | "storeId": 125 2991 | }, 2992 | { 2993 | "storeId": 116 2994 | }, 2995 | { 2996 | "storeId": 1180 2997 | }, 2998 | { 2999 | "storeId": 130 3000 | }, 3001 | { 3002 | "storeId": 1511 3003 | }, 3004 | { 3005 | "storeId": 113 3006 | }, 3007 | { 3008 | "storeId": 112 3009 | }, 3010 | { 3011 | "storeId": 764 3012 | }, 3013 | { 3014 | "storeId": 137 3015 | }, 3016 | { 3017 | "storeId": 846 3018 | }, 3019 | { 3020 | "storeId": 105 3021 | }, 3022 | { 3023 | "storeId": 1018 3024 | }, 3025 | { 3026 | "storeId": 103 3027 | }, 3028 | { 3029 | "storeId": 775 3030 | }, 3031 | { 3032 | "storeId": 131 3033 | }, 3034 | { 3035 | "storeId": 102 3036 | } 3037 | ] 3038 | }, 3039 | "rawHeaders": [ 3040 | "Access-Control-Allow-Headers", 3041 | "origin, x-requested-with, accept", 3042 | "Access-Control-Allow-Methods", 3043 | "GET", 3044 | "Access-Control-Allow-Origin", 3045 | "*", 3046 | "Access-Control-Max-Age", 3047 | "3628800", 3048 | "Content-Type", 3049 | "application/json; charset=UTF-8", 3050 | "Date", 3051 | "Fri, 22 Sep 2017 22:13:13 GMT", 3052 | "Server", 3053 | "Best Buy Public APIs", 3054 | "X-Cache-Hit", 3055 | "true", 3056 | "Content-Length", 3057 | "1957", 3058 | "Connection", 3059 | "Close" 3060 | ] 3061 | }, 3062 | { 3063 | "scope": "https://api.bestbuy.com:443", 3064 | "method": "get", 3065 | "path": "/v1/stores(storeType=Big%20Box)?format=json&apiKey=XXX&show=storeId&cursorMark=AoMlOTE3OTAIP4AAACxzdG9yZV8xMDJfdXM%3D&pageSize=100", 3066 | "body": "", 3067 | "status": 200, 3068 | "response": { 3069 | "nextCursorMark": "AoMlOTc3MDEIP4AAACxzdG9yZV84NjNfdXM=", 3070 | "total": 1021, 3071 | "totalPages": 11, 3072 | "queryTime": "0.007", 3073 | "totalTime": "0.057", 3074 | "partial": false, 3075 | "canonicalUrl": "/v1/stores(storeType=\"Big Box\")?show=storeId&pageSize=100&cursorMark=AoMlOTE3OTAIP4AAACxzdG9yZV8xMDJfdXM=&format=json&apiKey=XXX", 3076 | "stores": [ 3077 | { 3078 | "storeId": 188 3079 | }, 3080 | { 3081 | "storeId": 1769 3082 | }, 3083 | { 3084 | "storeId": 1386 3085 | }, 3086 | { 3087 | "storeId": 184 3088 | }, 3089 | { 3090 | "storeId": 1187 3091 | }, 3092 | { 3093 | "storeId": 2505 3094 | }, 3095 | { 3096 | "storeId": 437 3097 | }, 3098 | { 3099 | "storeId": 1145 3100 | }, 3101 | { 3102 | "storeId": 871 3103 | }, 3104 | { 3105 | "storeId": 438 3106 | }, 3107 | { 3108 | "storeId": 352 3109 | }, 3110 | { 3111 | "storeId": 1533 3112 | }, 3113 | { 3114 | "storeId": 1441 3115 | }, 3116 | { 3117 | "storeId": 1113 3118 | }, 3119 | { 3120 | "storeId": 1020 3121 | }, 3122 | { 3123 | "storeId": 124 3124 | }, 3125 | { 3126 | "storeId": 1482 3127 | }, 3128 | { 3129 | "storeId": 108 3130 | }, 3131 | { 3132 | "storeId": 150 3133 | }, 3134 | { 3135 | "storeId": 110 3136 | }, 3137 | { 3138 | "storeId": 392 3139 | }, 3140 | { 3141 | "storeId": 115 3142 | }, 3143 | { 3144 | "storeId": 1409 3145 | }, 3146 | { 3147 | "storeId": 1076 3148 | }, 3149 | { 3150 | "storeId": 854 3151 | }, 3152 | { 3153 | "storeId": 119 3154 | }, 3155 | { 3156 | "storeId": 111 3157 | }, 3158 | { 3159 | "storeId": 101 3160 | }, 3161 | { 3162 | "storeId": 774 3163 | }, 3164 | { 3165 | "storeId": 2514 3166 | }, 3167 | { 3168 | "storeId": 114 3169 | }, 3170 | { 3171 | "storeId": 1198 3172 | }, 3173 | { 3174 | "storeId": 947 3175 | }, 3176 | { 3177 | "storeId": 847 3178 | }, 3179 | { 3180 | "storeId": 126 3181 | }, 3182 | { 3183 | "storeId": 118 3184 | }, 3185 | { 3186 | "storeId": 649 3187 | }, 3188 | { 3189 | "storeId": 1391 3190 | }, 3191 | { 3192 | "storeId": 529 3193 | }, 3194 | { 3195 | "storeId": 856 3196 | }, 3197 | { 3198 | "storeId": 396 3199 | }, 3200 | { 3201 | "storeId": 192 3202 | }, 3203 | { 3204 | "storeId": 106 3205 | }, 3206 | { 3207 | "storeId": 1188 3208 | }, 3209 | { 3210 | "storeId": 121 3211 | }, 3212 | { 3213 | "storeId": 1019 3214 | }, 3215 | { 3216 | "storeId": 1061 3217 | }, 3218 | { 3219 | "storeId": 873 3220 | }, 3221 | { 3222 | "storeId": 685 3223 | }, 3224 | { 3225 | "storeId": 1045 3226 | }, 3227 | { 3228 | "storeId": 1896 3229 | }, 3230 | { 3231 | "storeId": 140 3232 | }, 3233 | { 3234 | "storeId": 187 3235 | }, 3236 | { 3237 | "storeId": 1125 3238 | }, 3239 | { 3240 | "storeId": 1046 3241 | }, 3242 | { 3243 | "storeId": 135 3244 | }, 3245 | { 3246 | "storeId": 136 3247 | }, 3248 | { 3249 | "storeId": 138 3250 | }, 3251 | { 3252 | "storeId": 134 3253 | }, 3254 | { 3255 | "storeId": 144 3256 | }, 3257 | { 3258 | "storeId": 1128 3259 | }, 3260 | { 3261 | "storeId": 499 3262 | }, 3263 | { 3264 | "storeId": 1021 3265 | }, 3266 | { 3267 | "storeId": 884 3268 | }, 3269 | { 3270 | "storeId": 142 3271 | }, 3272 | { 3273 | "storeId": 797 3274 | }, 3275 | { 3276 | "storeId": 190 3277 | }, 3278 | { 3279 | "storeId": 1423 3280 | }, 3281 | { 3282 | "storeId": 851 3283 | }, 3284 | { 3285 | "storeId": 528 3286 | }, 3287 | { 3288 | "storeId": 391 3289 | }, 3290 | { 3291 | "storeId": 844 3292 | }, 3293 | { 3294 | "storeId": 141 3295 | }, 3296 | { 3297 | "storeId": 1509 3298 | }, 3299 | { 3300 | "storeId": 120 3301 | }, 3302 | { 3303 | "storeId": 1190 3304 | }, 3305 | { 3306 | "storeId": 364 3307 | }, 3308 | { 3309 | "storeId": 845 3310 | }, 3311 | { 3312 | "storeId": 129 3313 | }, 3314 | { 3315 | "storeId": 1008 3316 | }, 3317 | { 3318 | "storeId": 349 3319 | }, 3320 | { 3321 | "storeId": 1396 3322 | }, 3323 | { 3324 | "storeId": 133 3325 | }, 3326 | { 3327 | "storeId": 660 3328 | }, 3329 | { 3330 | "storeId": 191 3331 | }, 3332 | { 3333 | "storeId": 838 3334 | }, 3335 | { 3336 | "storeId": 852 3337 | }, 3338 | { 3339 | "storeId": 763 3340 | }, 3341 | { 3342 | "storeId": 451 3343 | }, 3344 | { 3345 | "storeId": 1491 3346 | }, 3347 | { 3348 | "storeId": 1454 3349 | }, 3350 | { 3351 | "storeId": 1058 3352 | }, 3353 | { 3354 | "storeId": 1422 3355 | }, 3356 | { 3357 | "storeId": 452 3358 | }, 3359 | { 3360 | "storeId": 1104 3361 | }, 3362 | { 3363 | "storeId": 450 3364 | }, 3365 | { 3366 | "storeId": 453 3367 | }, 3368 | { 3369 | "storeId": 600 3370 | }, 3371 | { 3372 | "storeId": 2517 3373 | }, 3374 | { 3375 | "storeId": 863 3376 | } 3377 | ] 3378 | }, 3379 | "rawHeaders": [ 3380 | "Access-Control-Allow-Headers", 3381 | "origin, x-requested-with, accept", 3382 | "Access-Control-Allow-Methods", 3383 | "GET", 3384 | "Access-Control-Allow-Origin", 3385 | "*", 3386 | "Access-Control-Max-Age", 3387 | "3628800", 3388 | "Content-Type", 3389 | "application/json; charset=UTF-8", 3390 | "Date", 3391 | "Fri, 22 Sep 2017 22:16:27 GMT", 3392 | "Server", 3393 | "Best Buy Public APIs", 3394 | "X-Cache-Hit", 3395 | "true", 3396 | "Content-Length", 3397 | "1957", 3398 | "Connection", 3399 | "Close" 3400 | ] 3401 | }, 3402 | { 3403 | "scope": "https://api.bestbuy.com:443", 3404 | "method": "get", 3405 | "path": "/v1/stores(storeType=Big%20Box)?format=json&apiKey=XXX&show=storeId&cursorMark=AoMlOTc3MDEIP4AAACxzdG9yZV84NjNfdXM%3D&pageSize=100", 3406 | "body": "", 3407 | "status": 200, 3408 | "response": { 3409 | "nextCursorMark": "AoMlOTk1MTUIP4AAACxzdG9yZV81MzlfdXM=", 3410 | "total": 1021, 3411 | "totalPages": 11, 3412 | "queryTime": "0.007", 3413 | "totalTime": "0.023", 3414 | "partial": false, 3415 | "canonicalUrl": "/v1/stores(storeType=\"Big Box\")?show=storeId&pageSize=100&cursorMark=AoMlOTc3MDEIP4AAACxzdG9yZV84NjNfdXM=&format=json&apiKey=XXX", 3416 | "stores": [ 3417 | { 3418 | "storeId": 372 3419 | }, 3420 | { 3421 | "storeId": 498 3422 | }, 3423 | { 3424 | "storeId": 1220 3425 | }, 3426 | { 3427 | "storeId": 477 3428 | }, 3429 | { 3430 | "storeId": 470 3431 | }, 3432 | { 3433 | "storeId": 447 3434 | }, 3435 | { 3436 | "storeId": 566 3437 | }, 3438 | { 3439 | "storeId": 359 3440 | }, 3441 | { 3442 | "storeId": 798 3443 | }, 3444 | { 3445 | "storeId": 1415 3446 | }, 3447 | { 3448 | "storeId": 366 3449 | }, 3450 | { 3451 | "storeId": 398 3452 | }, 3453 | { 3454 | "storeId": 830 3455 | }, 3456 | { 3457 | "storeId": 839 3458 | }, 3459 | { 3460 | "storeId": 1043 3461 | }, 3462 | { 3463 | "storeId": 831 3464 | }, 3465 | { 3466 | "storeId": 355 3467 | }, 3468 | { 3469 | "storeId": 362 3470 | }, 3471 | { 3472 | "storeId": 590 3473 | }, 3474 | { 3475 | "storeId": 1760 3476 | }, 3477 | { 3478 | "storeId": 539 3479 | } 3480 | ] 3481 | }, 3482 | "rawHeaders": [ 3483 | "Access-Control-Allow-Headers", 3484 | "origin, x-requested-with, accept", 3485 | "Access-Control-Allow-Methods", 3486 | "GET", 3487 | "Access-Control-Allow-Origin", 3488 | "*", 3489 | "Access-Control-Max-Age", 3490 | "3628800", 3491 | "Content-Type", 3492 | "application/json; charset=UTF-8", 3493 | "Date", 3494 | "Fri, 22 Sep 2017 22:13:13 GMT", 3495 | "Server", 3496 | "Best Buy Public APIs", 3497 | "X-Cache-Hit", 3498 | "true", 3499 | "Content-Length", 3500 | "662", 3501 | "Connection", 3502 | "Close" 3503 | ] 3504 | }, 3505 | { 3506 | "scope": "https://api.bestbuy.com:443", 3507 | "method": "get", 3508 | "path": "/v1/stores(storeType=Big%20Box)?format=json&apiKey=XXX&show=storeId&cursorMark=AoMlOTk1MTUIP4AAACxzdG9yZV81MzlfdXM%3D&pageSize=100", 3509 | "body": "", 3510 | "status": 200, 3511 | "response": { 3512 | "nextCursorMark": "AoMlOTk1MTUIP4AAACxzdG9yZV81MzlfdXM=", 3513 | "total": 1021, 3514 | "totalPages": 11, 3515 | "queryTime": "0.021", 3516 | "totalTime": "0.022", 3517 | "partial": false, 3518 | "canonicalUrl": "/v1/stores(storeType=\"Big Box\")?show=storeId&pageSize=100&cursorMark=AoMlOTk1MTUIP4AAACxzdG9yZV81MzlfdXM=&format=json&apiKey=XXX", 3519 | "stores": [] 3520 | }, 3521 | "rawHeaders": [ 3522 | "Access-Control-Allow-Headers", 3523 | "origin, x-requested-with, accept", 3524 | "Access-Control-Allow-Methods", 3525 | "GET", 3526 | "Access-Control-Allow-Origin", 3527 | "*", 3528 | "Access-Control-Max-Age", 3529 | "3628800", 3530 | "Content-Type", 3531 | "application/json; charset=UTF-8", 3532 | "Date", 3533 | "Fri, 22 Sep 2017 22:16:27 GMT", 3534 | "Server", 3535 | "Best Buy Public APIs", 3536 | "X-Cache-Hit", 3537 | "true", 3538 | "Content-Length", 3539 | "323", 3540 | "Connection", 3541 | "Close" 3542 | ] 3543 | } 3544 | ] --------------------------------------------------------------------------------