{"id":17046486,"url":"https://github.com/reubano/amzn-search-api","last_synced_at":"2026-04-10T16:48:31.569Z","repository":{"id":16449246,"uuid":"19201063","full_name":"reubano/amzn-search-api","owner":"reubano","description":"RESTful API for searching Amazon sites","archived":false,"fork":false,"pushed_at":"2017-06-11T10:39:40.000Z","size":573,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-28T09:44:54.500Z","etag":null,"topics":["amazon","api","aws","ecommerce","featured","flask","python","search-engine"],"latest_commit_sha":null,"homepage":"https://amzn-search-api.herokuapp.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reubano.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-04-27T10:02:33.000Z","updated_at":"2019-07-21T17:02:46.000Z","dependencies_parsed_at":"2022-09-24T12:01:28.213Z","dependency_job_id":null,"html_url":"https://github.com/reubano/amzn-search-api","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reubano%2Famzn-search-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reubano%2Famzn-search-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reubano%2Famzn-search-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reubano%2Famzn-search-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reubano","download_url":"https://codeload.github.com/reubano/amzn-search-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245049360,"owners_count":20552675,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amazon","api","aws","ecommerce","featured","flask","python","search-engine"],"created_at":"2024-10-14T09:46:25.924Z","updated_at":"2026-04-10T16:48:26.546Z","avatar_url":"https://github.com/reubano.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"AMZN Search API |travis|\n========================\n\n.. |travis| image:: https://img.shields.io/travis/reubano/amzn-search-api/master.svg\n    :target: https://travis-ci.org/reubano/amzn-search-api\n\nIntroduction\n------------\n\n`AMZN Search API \u003chttp://amzn-search-api.herokuapp.com\u003e`_ is a `Flask \u003chttp://flask.pocoo.org\u003e`_ (`About Flask`_) powered RESTful API wrapper to the `Amazon search portal \u003chttps://www.amazon.com/ref=nb_sb_noss_null\u003e`_.\n\nRequirements\n------------\n\nAMZN Search API has been tested and known to work on the following configurations:\n\n- MacOS X 10.9.5\n- Ubuntu 14.04 LTS\n- Python 2.7, 3.5, and 3.6\n\nFramework\n---------\n\nFlask Extensions\n^^^^^^^^^^^^^^^^\n\n- Route caching with `Flask-Caching \u003chttps://pythonhosted.org/Flask-Caching/\u003e`_.\n- GZIPed responses with `Flask-Compress \u003chttps://github.com/libwilliam/flask-compress\u003e`_.\n- CORS support with `Flask-Cors \u003chttps://flask-cors.readthedocs.io/en/latest/\u003e`_\n- Enforced SSL with `Flask-SSLify \u003chttps://github.com/kennethreitz/flask-sslify\u003e`_\n\nProduction Server\n^^^^^^^^^^^^^^^^^\n\n- `Memcached \u003chttps://memcached.org/\u003e`_\n- `gunicorn \u003chttps://gunicorn.org/\u003e`_\n- `gevent \u003chttps://www.gevent.org/\u003e`_\n\nQuick Start\n-----------\n\nPreparation\n^^^^^^^^^^^\n\n*Check that the correct version of Python is installed*\n\n.. code-block:: bash\n\n    python -V\n\nActivate your `virtualenv \u003chttp://docs.python-guide.org/en/latest/dev/virtualenvs/#virtualenvironments-ref\u003e`_\n\nInstallation\n^^^^^^^^^^^^\n\n*Clone the repo*\n\n.. code-block:: bash\n\n    git clone git@github.com:reubano/amzn-search-api.git\n\n*Install requirements*\n\n.. code-block:: bash\n\n    cd amzn-search-api\n    pip install -r base-requirements.txt\n\n*Run API server*\n\n.. code-block:: bash\n\n    manage serve\n\nNow *view the API documentation* at ``http://localhost:5000``\n\nScripts\n-------\n\nAMZN Search API comes with a built in script manager ``manage.py``. Use it to\nstart the server, run tests, and initialize the database.\n\nUsage\n^^^^^\n\n.. code-block:: bash\n\n    manage \u003ccommand\u003e [command-options] [manager-options]\n\nExamples\n^^^^^^^^\n\n*Start server*\n\n.. code-block:: bash\n\n    manage serve\n\n*Run tests*\n\n.. code-block:: bash\n\n    manage test\n\n*Run linters*\n\n.. code-block:: bash\n\n    manage lint\n\nManager options\n^^^^^^^^^^^^^^^\n\n      -m MODE, --cfgmode=MODE  set the configuration mode, must be one of\n                               ['Production', 'Development', 'Test'] defaults\n                               to 'Development'. See `config.py` for details\n      -f FILE, --cfgfile=FILE  set the configuration file (absolute path)\n\nCommands\n^^^^^^^^\n\n    runserver           Runs the flask development server\n    serve               Runs the flask development server\n    check               Check staged changes for lint errors\n    lint                Check style with linters\n    test                Run nose, tox, and script tests\n    add_keys            Deploy staging app\n    deploy              Deploy staging app\n    install             Install requirements\n    shell               Runs a Python shell inside Flask application context.\n\nCommand options\n^^^^^^^^^^^^^^^\n\nType ``manage \u003ccommand\u003e --help`` to view any command's options\n\n.. code-block:: bash\n\n    manage manage serve --help\n\nOutput\n\n    usage: manage serve [-?] [-t] [-T TIMEOUT] [-l] [-o] [-p PORT] [-h HOST]\n\n    Runs the flask development server\n\n    optional arguments:\n      -?, --help            show this help message and exit\n      -t, --threaded        Run multiple threads\n      -T TIMEOUT, --timeout TIMEOUT\n                            Fetch timeout\n      -l, --live            Use live data\n      -o, --offline         Offline mode\n      -p PORT, --port PORT  The server port\n      -h HOST, --host HOST  The server host\n\nExample\n^^^^^^^\n\n*Start production server on port 1000*\n\n.. code-block:: bash\n\n    manage serve -p 1000 -m Production\n\nConfiguration\n-------------\n\nConfig Variables\n^^^^^^^^^^^^^^^^\n\nThe following configurations settings are available in ``config.py``:\n\n======================== ================================================================ =========================================\nvariable                 description                                                      default value\n======================== ================================================================ =========================================\n__DOMAIN__               your custom domain                                               nerevu.com\nCACHE_TIMEOUT            amount of time (in seconds) to cache responses                   60 minutes\nAPI_RESULTS_PER_PAGE     the number of results returned per page                          24\nAPI_MAX_RESULTS_PER_PAGE the maximum number of results returned per page                  1024\nAPI_URL_PREFIX           string to prefix each resource in the api url                    '/api/v1'\n======================== ================================================================ =========================================\n\nEnvironment Variables\n^^^^^^^^^^^^^^^^^^^^^\n\nAMZN Search API references the following environment variables:\n\n======================== ========================================\nvariable                 description\n======================== ========================================\nAWS_ACCESS_KEY_ID        your AWS access key ID\nAWS_SECRET_ACCESS_KEY    your AWS access key secret\nAWS_ASSOCIATE_TAG_US     your AWS Associate tag for US region\nAWS_ASSOCIATE_TAG_UK     your AWS Associate tag for UK region\n======================== ========================================\n\nTo set an environment variable, e.g. MY_ENV, *do the following*:\n\n.. code-block:: bash\n\n    echo 'export MY_ENV=value' \u003e\u003e ~/.profile\n\nDocumentation\n-------------\n\nFor a list of available resources, example requests and responses, and code samples,\nview the `online documentation \u003chttps://amzn-search-api.herokuapp.com/\u003e`_.\n\nAdvanced Installation\n---------------------\n\nProduction Server\n^^^^^^^^^^^^^^^^^\n\nPreparation\n~~~~~~~~~~~\n\nGetting ``gevent`` up and running is a bit tricky so follow these instructions carefully.\n\nTo use ``gevent``, you first need to install ``libevent``.\n\n*Linux*\n\n.. code-block:: bash\n\n    apt-get install libevent-dev\n\n*Mac OS X via* `homebrew \u003chttp://mxcl.github.com/homebrew/\u003e`_\n\n.. code-block:: bash\n\n    brew install libevent\n\n*Mac OS X via* `macports \u003chttp://www.macports.com/\u003e`_\n\n.. code-block:: bash\n\n    sudo port install libevent\n\n*Mac OS X via DMG*\n\n`download on Rudix \u003chttp://rudix.org/packages-jkl.html#libevent\u003e`_\n\n\nInstallation\n~~~~~~~~~~~~\n\nNow that libevent is handy, *install the remaining requirements*\n\n.. code-block:: bash\n\n    pip install -r requirements.txt\n\nOr via the following if you installed libevent from macports\n\n.. code-block:: bash\n\n    sudo CFLAGS=\"-I /opt/local/include -L /opt/local/lib\" pip install gevent\n    pip install -r requirements.txt\n\nForeman\n~~~~~~~\n\nFinally, *install foreman*\n\n.. code-block:: bash\n\n    sudo gem install foreman\n\nNow, you can *run the application* locally\n\n.. code-block:: bash\n\n    foreman start\n\nYou can also *specify what port you'd prefer to use*\n\n.. code-block:: bash\n\n    foreman start -p 5555\n\nDeployment\n^^^^^^^^^^\n\nIf you haven't `signed up for Heroku \u003chttps://api.heroku.com/signup\u003e`_, go\nahead and do that. You should then be able to `add your SSH key to\nHeroku \u003chttp://devcenter.heroku.com/articles/quickstart\u003e`_, and also\n`heroku login` from the commandline.\n\n*Install heroku and create your app*\n\n.. code-block:: bash\n\n    sudo gem install heroku\n    heroku create -s cedar app_name\n\n*Add memcachier*\n\n.. code-block:: bash\n\n    heroku addons:add memcachier\n\n*Push to Heroku*\n\n.. code-block:: bash\n\n    git push heroku master\n\n*Start the web instance and make sure the application is up and running*\n\n.. code-block:: bash\n\n    heroku ps:scale web=1\n    heroku ps\n\nNow, we can *view the application in our web browser*\n\n.. code-block:: bash\n\n    heroku open\n\nAnd anytime you want to redeploy, it's as simple as ``git push heroku master``.\nOnce you are done coding, deactivate your virtualenv with ``deactivate``.\n\nDirectory Structure\n-------------------\n\n.. code-block:: bash\n\n    $ tree . | sed 's/+----/├──/; /.pyc/d; /.DS_Store/d'\n    .\n    ├── LICENSE\n    ├── MANIFEST.in\n    ├── Procfile\n    ├── README.rst\n    ├── app\n    │   ├── __init__.py\n    │   ├── api.py\n    │   ├── doc_parser.py\n    │   ├── frs.py\n    │   ├── helper.py\n    │   ├── static\n    │   │   ├── favicon-16x16.png\n    │   │   ├── favicon-32x32.png\n    │   │   ├── index.html\n    │   │   ├── oauth2-redirect.html\n    │   │   ├── swagger-ui-bundle.js\n    │   │   ├── swagger-ui-bundle.js.map\n    │   │   ├── swagger-ui-standalone-preset.js\n    │   │   ├── swagger-ui-standalone-preset.js.map\n    │   │   ├── swagger-ui.css\n    │   │   ├── swagger-ui.css.map\n    │   │   ├── swagger-ui.js\n    │   │   └── swagger-ui.js.map\n    │   ├── templates\n    │   │   └── index.html\n    │   ├── tests\n    │   │   ├── standard.rc\n    │   │   ├── test.sh\n    │   │   ├── test_site.py\n    │   ├── utils.py\n    │   ├── views.py\n    ├── base-requirements.txt\n    ├── config.py\n    ├── dev-requirements.txt\n    ├── helpers\n    │   ├── check-stage\n    │   ├── clean\n    │   ├── pippy\n    │   ├── srcdist\n    │   └── wheel\n    ├── manage.py\n    ├── py2-requirements.txt\n    ├── requirements.txt\n    ├── runtime.txt\n    ├── setup.cfg\n    ├── setup.py\n    ├── test.txt\n    └── tox.ini\n\nContributing\n------------\n\n*First time*\n\n1. Fork\n2. Clone\n3. Code (if you are having problems committing because of git pre-commit\n   hook errors, just run ``manage check`` to see what the issues are.)\n4. Use tabs **not** spaces\n5. Add upstream ``git remote add upstream https://github.com/reubano/amzn-search-api.git``\n6. Rebase ``git rebase upstream/master``\n7. Test ``manage test``\n8. Push ``git push origin master``\n9. Submit a pull request\n\n*Continuing*\n\n1. Code (if you are having problems committing because of git pre-commit\n   hook errors, just run ``manage check`` to see what the issues are.)\n2. Use tabs **not** spaces\n3. Update upstream ``git fetch upstream``\n4. Rebase ``git rebase upstream/master``\n5. Test ``manage test``\n6. Push ``git push origin master``\n7. Submit a pull request\n\nContributors\n------------\n\n.. code-block:: bash\n\n    $ git shortlog -sn\n        95  Reuben Cummings\n\nAbout Flask\n-----------\n\n`Flask \u003chttp://flask.pocoo.org\u003e`_ is a BSD-licensed microframework for Python based on\n`Werkzeug \u003chttp://werkzeug.pocoo.org/\u003e`_, `Jinja2 \u003chttp://jinja.pocoo.org\u003e`_ and good intentions.\n\nLicense\n-------\n\nAMZN Search API is distributed under the `MIT License \u003chttp://opensource.org/licenses/MIT\u003e`_.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freubano%2Famzn-search-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freubano%2Famzn-search-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freubano%2Famzn-search-api/lists"}