{"id":16274517,"url":"https://github.com/datawookie/trundler","last_synced_at":"2025-08-28T05:28:53.792Z","repository":{"id":52720411,"uuid":"240852230","full_name":"datawookie/trundler","owner":"datawookie","description":"Wrapper for Retail Pricing API","archived":false,"fork":false,"pushed_at":"2025-08-25T18:38:26.000Z","size":4033,"stargazers_count":14,"open_issues_count":6,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-08-25T20:40:45.232Z","etag":null,"topics":["api","hacktoberfest","r","rstats"],"latest_commit_sha":null,"homepage":"https://datawookie.github.io/trundler/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datawookie.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-02-16T07:48:41.000Z","updated_at":"2023-08-23T11:30:02.000Z","dependencies_parsed_at":"2024-09-17T01:03:24.637Z","dependency_job_id":"d47d328f-fefb-416e-9555-e58cb203c324","html_url":"https://github.com/datawookie/trundler","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/datawookie/trundler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datawookie%2Ftrundler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datawookie%2Ftrundler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datawookie%2Ftrundler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datawookie%2Ftrundler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datawookie","download_url":"https://codeload.github.com/datawookie/trundler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datawookie%2Ftrundler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272446258,"owners_count":24936514,"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","status":"online","status_checked_at":"2025-08-28T02:00:10.768Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["api","hacktoberfest","r","rstats"],"created_at":"2024-10-10T18:29:06.924Z","updated_at":"2025-08-28T05:28:53.774Z","avatar_url":"https://github.com/datawookie.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\noutput: github_document\n---\n\n```{r setup, include=FALSE}\nknitr::opts_chunk$set(echo = TRUE, comment = NA)\n\noptions(trundler.chatty = FALSE)\n# options(tibble.width = Inf)\n```\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n# trundler \u003cimg src=\"man/figures/logo.png\" align=\"right\" alt=\"\" width=\"120\" /\u003e\n\n[![Travis-CI build status](https://travis-ci.org/datawookie/trundler.svg?branch=master)](https://travis-ci.org/datawookie/trundler)\n[![Codecov test coverage](https://img.shields.io/codecov/c/github/datawookie/trundler.svg)](https://codecov.io/github/datawookie/trundler)\n[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental)\n\n[Trundler](https://www.trundler.dev) provides access to product and historical price data from a range of online retailers.\n\nThe homepage for the {trundler} R package is at https://datawookie.github.io/trundler/.\n\n## Installation\n\nInstall from GitHub.\n\n```{r eval=FALSE}\nremotes::install_github(\"datawookie/trundler\")\n```\n\nIf you want to be closer to the bleeding edge then you can also install from the development branch.\n\n```{r eval=FALSE}\nremotes::install_github(\"datawookie/trundler\", ref = \"dev\")\n```\n\n## Usage\n\n```{r load-package}\nlibrary(trundler)\n```\n\nCheck version.\n\n```{r check-version}\npackageVersion(\"trundler\")\n```\n\n### Set API Key\n\nTo access the full API you'll need to first specify an API key.\n\n```{r eval=FALSE}\n# Example API key (this key will not work).\nset_api_key(\"8f9f3c4e-5dd6-4bff-3a2c-592b45cf2437\")\n```\n\n```{r include=FALSE}\nset_api_key(Sys.getenv(\"TRUNDLER_KEY\"))\n```\n\nTo obtain a key, please get in touch. Contact details are in `DESCRIPTION`.\n\nYou can also subscribe via [RapidAPI](https://rapidapi.com/datawookie/api/trundler).\n\n```{r eval=FALSE}\n# Example RapidAPI key (this key will not work).\nset_api_key(\"5a1ae0ce24mshd483dae6ab7308dp129ef6jsn1f473053d6b0\")\n```\n\n### Retailers\n\nUse `retailer()` to get a list of retailers.\n\n```{r}\nretailer()\n```\n\nOr you can acccess the details for a specific retailer.\n\n```{r}\nretailer(45)\n```\n\n### Products\n\nGet a list of products for a specific retailer.\n\n```{r cache=TRUE}\nretailer_products(5)\n```\n\nProducts can be filtered by name and brand.\n\n```{r cache=TRUE}\nretailer_products(5, product = \"coffee\", brand = \"nespresso\")\n```\n\nA similar search can be applied across *all* retailers.\n\n```{r cache=TRUE}\nproducts(product = \"hand sanitiser\")\nproducts(product = \"coffee\", brand = \"nespresso|nescafe\")\nproducts(product = \"tv\", brand = \"samsung|hisense\")\n```\n\nInformation on a specific product.\n\n```{r}\nitem \u003c- product(530290)\n```\n\nWhat fields are available?\n\n```{r}\nnames(item)\n```\n\nGet product name, [SKU](https://en.wikipedia.org/wiki/Stock_keeping_unit) and barcodes.\n\n```{r}\nitem$product\nitem$sku\nitem$barcodes\n```\n\n### Prices\n\nGet price history data for a specific product.\n\n\n```{r}\nproduct_prices(530290)\n```\n\n### Options\n\nYou can control the volume of console output with options:\n\n* `options(trundler.chatty = TRUE)`: provide more output; and\n* `options(trundler.chatty = FALSE)`: provide less output.\n\n## RMarkdown Template\n\nYou can use the Trundler RMarkdown template to quickly produce visualisations for product price histories.  After installing the package, select \"Trundler Report Template\" under the \"From Template\" option on the **New RMarkdown** dialog.\n\n_Note:_ You might need to restart RStudio before the template shows up in the menu.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatawookie%2Ftrundler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatawookie%2Ftrundler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatawookie%2Ftrundler/lists"}