{"id":16931093,"url":"https://github.com/issif/docker-pulls-scraper","last_synced_at":"2026-06-30T09:31:37.008Z","repository":{"id":200916570,"uuid":"706257335","full_name":"Issif/docker-pulls-scraper","owner":"Issif","description":"Scrape DockerHub stats to track the count of pulls of your images","archived":false,"fork":false,"pushed_at":"2026-06-25T08:44:22.000Z","size":7198,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-25T10:20:44.086Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://issif.github.io/docker-pulls-scraper","language":"HTML","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/Issif.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-10-17T15:37:47.000Z","updated_at":"2026-06-25T08:44:26.000Z","dependencies_parsed_at":"2026-02-25T09:00:50.180Z","dependency_job_id":null,"html_url":"https://github.com/Issif/docker-pulls-scraper","commit_stats":null,"previous_names":["issif/docker-pulls-scraper"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Issif/docker-pulls-scraper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Issif%2Fdocker-pulls-scraper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Issif%2Fdocker-pulls-scraper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Issif%2Fdocker-pulls-scraper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Issif%2Fdocker-pulls-scraper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Issif","download_url":"https://codeload.github.com/Issif/docker-pulls-scraper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Issif%2Fdocker-pulls-scraper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34961543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-30T02:00:05.919Z","response_time":92,"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":[],"created_at":"2024-10-13T20:43:12.464Z","updated_at":"2026-06-30T09:31:36.981Z","avatar_url":"https://github.com/Issif.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker pulls scraper\n\nDockerHub provides an API endpoint to track the number of pulls of the images it hosts but no history. This small program allows to get that count and updates a .csv file to keep a record.\nIt generates one `.csv` file per image, with the columns: `Date, Count`. Up to you to run the script every X times to add a new line in the files.\n\n## Build\n\n```shell\ngo build\n```\n\n## Usage\n\n```shell\nUsage of docker-pulls-scraper:\n  -d string\n        Destination folder for .csv (default \"./data\")\n  -l string\n        File with the list of images to track\n  -r string\n        Destination folder for the .html (default \"./render\")\n```\n\n## List of images\n\nThe list of images must be in file, with one image per line, like this:\n\n```\nowner/image-1\nowner/image-2\nowner/image-3\n```\n\n### Results\n\nLog:\n```\n❯ go run . -l list.txt\n2023/10/17 18:34:58 Folder './data' already exists\n2023/10/17 18:34:58 Scrape pull count for the image 'falcosecurity/falco'\n2023/10/17 18:34:59 Writing of the .csv for the image 'falcosecurity/falco' in './data/falcosecurity_falco.csv'\n2023/10/17 18:34:59 Scrape pull count for the image 'falcosecurity/falcosidekick'\n2023/10/17 18:34:59 Writing of the .csv for the image 'falcosecurity/falcosidekick' in './data/falcosecurity_falcosidekick.csv'\n2023/10/17 18:34:59 Scrape pull count for the image 'falcosecurity/falcosidekick-ui'\n2023/10/17 18:34:59 Writing of the .csv for the image 'falcosecurity/falcosidekick-ui' in './data/falcosecurity_falcosidekick-ui.csv'\n2023/10/17 18:34:59 Scrape pull count for the image 'falcosecurity/driverkit'\n2023/10/17 18:34:59 Writing of the .csv for the image 'falcosecurity/driverkit' in './data/falcosecurity_driverkit.csv'\n2023/10/17 18:34:59 Scrape pull count for the image 'falcosecurity/falcoctl'\n2023/10/17 18:34:59 Writing of the .csv for the image 'falcosecurity/falcoctl' in './data/falcosecurity_falcoctl.csv'\n```\n\nExample of a `.csv` file:\n```csv\nDate,Count\n2023/03/15,43254957\n2023/03/16,43268631\n2023/03/17,43283486\n2023/03/18,43293650\n```\n\n## Author\n\nThomas Labarussias (https://github.com/Issif)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fissif%2Fdocker-pulls-scraper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fissif%2Fdocker-pulls-scraper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fissif%2Fdocker-pulls-scraper/lists"}