{"id":64670,"name":"AirBase","description":"An easy downloader for air quality data provided by the European Environment Agency.","url":"https://github.com/johnpaton/airbase","last_synced_at":"2026-06-17T13:00:42.110Z","repository":{"id":36551996,"uuid":"157773686","full_name":"JohnPaton/airbase","owner":"JohnPaton","description":"🌬 An easy downloader for the AirBase air quality data.","archived":false,"fork":false,"pushed_at":"2025-10-14T12:47:33.000Z","size":3070,"stargazers_count":11,"open_issues_count":5,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-05-28T03:04:27.566Z","etag":null,"topics":["air-quality","airbase","data","python"],"latest_commit_sha":null,"homepage":"https://airbase.readthedocs.io","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/JohnPaton.png","metadata":{"files":{"readme":"README.md","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,"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":"2018-11-15T21:15:34.000Z","updated_at":"2026-04-03T12:06:43.000Z","dependencies_parsed_at":"2023-09-24T05:23:24.684Z","dependency_job_id":"8ff220d8-f839-445e-9e66-f5f701d89b92","html_url":"https://github.com/JohnPaton/airbase","commit_stats":{"total_commits":189,"total_committers":3,"mean_commits":63.0,"dds":0.5714285714285714,"last_synced_commit":"530dfd9ac60d90959ccf1dd7da4572912eb5396d"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/JohnPaton/airbase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JohnPaton","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33932048,"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-05T02:00:06.157Z","response_time":120,"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"}},"owner":{"login":"JohnPaton","name":"John Paton","uuid":"18459252","kind":"user","description":"📊  Machine Learning Engineer /  🎓  Theoretical physics /  🐍  Pythonista /  💼  Booking.com /  📍 Netherlands 🇳🇱","email":"","website":"https://johnpaton.net","location":null,"twitter":null,"company":"@bookingcom","icon_url":"https://avatars.githubusercontent.com/u/18459252?u=05f4cc62fe0abbb76058d5a0b283f0158027265b\u0026v=4","repositories_count":5,"last_synced_at":"2023-03-03T15:01:13.188Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/JohnPaton","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-14T01:27:26.750Z","updated_at":"2023-03-03T15:01:13.198Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JohnPaton","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JohnPaton/repositories"},"packages":[{"id":2635319,"name":"airbase","ecosystem":"pypi","description":"An easy downloader for the AirBase air quality data.","homepage":null,"licenses":"MIT License","normalized_licenses":["MIT"],"repository_url":"https://github.com/johnpaton/airbase","keywords_array":[],"namespace":null,"versions_count":15,"first_release_published_at":"2019-03-11T19:22:17.000Z","latest_release_published_at":"2024-12-05T13:04:41.000Z","latest_release_number":"1.0.0","last_synced_at":"2026-06-15T14:40:27.970Z","created_at":"2022-04-10T09:59:43.693Z","updated_at":"2026-06-15T14:40:27.971Z","registry_url":"https://pypi.org/project/airbase/","install_command":"pip install airbase --index-url https://pypi.org/simple","documentation_url":"https://airbase.readthedocs.io","metadata":{"funding":null,"documentation":"https://airbase.readthedocs.io","classifiers":["Intended Audience :: Science/Research","License :: OSI Approved :: MIT License","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Topic :: Scientific/Engineering","Topic :: Scientific/Engineering :: Atmospheric Science"],"normalized_name":"airbase","project_status":null},"repo_metadata":{"id":36551996,"uuid":"157773686","full_name":"JohnPaton/airbase","owner":"JohnPaton","description":"🌬 An easy downloader for the AirBase air quality data.","archived":false,"fork":false,"pushed_at":"2025-10-14T12:47:33.000Z","size":3070,"stargazers_count":11,"open_issues_count":5,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-05-20T00:39:21.153Z","etag":null,"topics":["air-quality","airbase","data","python"],"latest_commit_sha":null,"homepage":"https://airbase.readthedocs.io","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/JohnPaton.png","metadata":{"files":{"readme":"README.md","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,"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":"2018-11-15T21:15:34.000Z","updated_at":"2026-04-03T12:06:43.000Z","dependencies_parsed_at":"2023-09-24T05:23:24.684Z","dependency_job_id":"8ff220d8-f839-445e-9e66-f5f701d89b92","html_url":"https://github.com/JohnPaton/airbase","commit_stats":{"total_commits":189,"total_committers":3,"mean_commits":63.0,"dds":0.5714285714285714,"last_synced_commit":"530dfd9ac60d90959ccf1dd7da4572912eb5396d"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/JohnPaton/airbase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JohnPaton","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33320465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T12:23:38.849Z","status":"ssl_error","status_checked_at":"2026-05-21T12:22:11.673Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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"},"owner_record":{"login":"JohnPaton","name":"John Paton","uuid":"18459252","kind":"user","description":"📊  Machine Learning Engineer /  🎓  Theoretical physics /  🐍  Pythonista /  💼  Booking.com /  📍 Netherlands 🇳🇱","email":"","website":"https://johnpaton.net","location":null,"twitter":null,"company":"@bookingcom","icon_url":"https://avatars.githubusercontent.com/u/18459252?u=05f4cc62fe0abbb76058d5a0b283f0158027265b\u0026v=4","repositories_count":5,"last_synced_at":"2023-03-03T15:01:13.188Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/JohnPaton","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-14T01:27:26.750Z","updated_at":"2023-03-03T15:01:13.198Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JohnPaton","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JohnPaton/repositories"},"tags":[{"name":"v1.0.0","sha":"fd30af1277e895653bff9e41cec4a6cf1c6c7316","kind":"commit","published_at":"2024-12-05T12:39:28.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v1.0.0","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v1.0.0/manifests"},{"name":"v1.0.0.rc0","sha":"be93cd1d1571d6a9481ac2ddcfd7d82fefcbd15d","kind":"commit","published_at":"2024-12-04T16:21:28.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v1.0.0.rc0","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v1.0.0.rc0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v1.0.0.rc0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v1.0.0.rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v1.0.0.rc0/manifests"},{"name":"v0.8.1","sha":"95a1378a7e17c88874dcad726ffcbac643f728b6","kind":"commit","published_at":"2024-09-03T12:06:20.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.8.1","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.8.1/manifests"},{"name":"v0.8.0","sha":"6043d7155961d7d2871c23635b2a90d8b9cad9e5","kind":"commit","published_at":"2024-06-26T08:34:43.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.8.0","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.8.0/manifests"},{"name":"v0.7.0","sha":"530dfd9ac60d90959ccf1dd7da4572912eb5396d","kind":"tag","published_at":"2023-04-25T08:24:00.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.7.0","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"51b88d2d11b7915a1de4f0ad2fb354f84630f25d","kind":"tag","published_at":"2022-10-27T14:11:15.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.6.0","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"e5e040a703c2b42d8d5d350be3720787bb42a97a","kind":"commit","published_at":"2022-08-29T14:17:50.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.5.0","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"0693d2063965aff85a3ef7860ae763f8e902fab4","kind":"commit","published_at":"2022-03-03T13:12:36.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.4.0","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"163c6947de75fc66303d6daf740de051b84c7b6f","kind":"commit","published_at":"2022-02-09T16:45:40.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.3.0","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.3.0/manifests"},{"name":"v0.2.7","sha":"79c02d84bf53d1ee91888d12a016afe9d565f4f6","kind":"commit","published_at":"2020-02-02T15:03:06.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.2.7","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.2.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.2.7/manifests"},{"name":"v0.2.6","sha":"0a7cab54bd556e279a5e197c35a9013373c7a55b","kind":"commit","published_at":"2020-02-01T13:05:26.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.2.6","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.2.6/manifests"},{"name":"v0.2.5","sha":"d48097e621e4cba7fae35e1f38208610c29b40f9","kind":"commit","published_at":"2019-12-16T17:15:12.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.2.5","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.2.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.2.5/manifests"},{"name":"v0.2.4","sha":"4be40d456db9a8eede693c37c7c420caa6b8386d","kind":"commit","published_at":"2019-10-11T13:08:54.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.2.4","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.2.4/manifests"},{"name":"v0.2.2","sha":"04345997d07e398f0e0090ff9fa86f094839fc30","kind":"commit","published_at":"2019-04-22T13:09:59.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.2.2","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.2.2/manifests"},{"name":"v0.2.1","sha":"9d4b8ef4106d9167a6c284b1618653cb4131d7ea","kind":"commit","published_at":"2019-04-22T12:53:37.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.2.1","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"9d4b8ef4106d9167a6c284b1618653cb4131d7ea","kind":"commit","published_at":"2019-04-22T12:53:37.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.2.0","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"6255a8253e92ea22ba355ac7354477c2fe43b09b","kind":"commit","published_at":"2019-03-11T19:13:26.000Z","download_url":"https://codeload.github.com/JohnPaton/airbase/tar.gz/v0.1.0","html_url":"https://github.com/JohnPaton/airbase/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/JohnPaton/airbase@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2026-06-13T14:21:26.852Z","dependent_packages_count":0,"downloads":418,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":23.758295972904715,"dependent_repos_count":68.49572803520945,"dependent_packages_count":7.31012528119255,"stargazers_count":18.528633826503544,"forks_count":15.415533589022216,"docker_downloads_count":null,"average":26.701663340966498},"purl":"pkg:pypi/airbase","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/airbase","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/airbase","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/airbase/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-11-16T05:00:43.408Z","issues_count":26,"pull_requests_count":68,"avg_time_to_close_issue":23785270.782608695,"avg_time_to_close_pull_request":3085070.9122807016,"issues_closed_count":23,"pull_requests_closed_count":57,"pull_request_authors_count":3,"issue_authors_count":6,"avg_comments_per_issue":1.7692307692307692,"avg_comments_per_pull_request":1.852941176470588,"merged_pull_requests_count":48,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":5,"past_year_pull_requests_count":18,"past_year_avg_time_to_close_issue":1039633.0,"past_year_avg_time_to_close_pull_request":423102.36363636365,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":11,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.2,"past_year_avg_comments_per_pull_request":1.3888888888888888,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":9,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/issues","maintainers":[{"login":"avaldebe","count":47,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/avaldebe"},{"login":"JohnPaton","count":41,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JohnPaton"}],"active_maintainers":[{"login":"avaldebe","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/avaldebe"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/airbase/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/airbase/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/airbase/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/airbase/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/airbase/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/airbase/codemeta","maintainers":[{"uuid":"johnpaton","login":"johnpaton","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/johnpaton/","role":null,"created_at":"2022-11-15T01:25:53.938Z","updated_at":"2022-11-15T01:25:53.938Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/johnpaton/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":887921,"maintainers_count":380223,"namespaces_count":0,"keywords_count":289179,"github":"pypi","metadata":{"funded_packages_count":54301},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-06-10T05:13:28.296Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"id":532745,"full_name":"JohnPaton/airbase","default_branch":"master","total_commits":407,"total_committers":4,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":101.75,"dds":0.29729729729729726,"past_year_total_commits":11,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":11.0,"past_year_dds":0.0,"last_synced_at":"2026-06-16T16:32:24.823Z","last_synced_commit":"efa69ced547bc5fdd8af49a7d5953eba36f7343d","created_at":"2023-03-09T03:52:01.446Z","updated_at":"2026-06-16T16:32:10.193Z","committers":[{"name":"Alvaro Valdebenito","email":"alvarov@met.no","login":"avaldebe","count":286},{"name":"John Paton","email":"john@johnpaton.net","login":"JohnPaton","count":88},{"name":"JohnPaton","email":"j.paton@catawiki.nl","login":null,"count":32},{"name":"Heiko Klein","email":"heiko.klein@met.no","login":"heikoklein","count":1}],"past_year_committers":[{"name":"Alvaro Valdebenito","email":"alvarov@met.no","login":"avaldebe","count":11}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-06-17T00:00:13.021Z","repositories_count":6261014,"commits_count":877217935,"contributors_count":35050466,"owners_count":1167375,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"JohnPaton/airbase","html_url":"https://github.com/JohnPaton/airbase","last_synced_at":"2026-06-13T11:00:59.442Z","status":"active","issues_count":26,"pull_requests_count":69,"avg_time_to_close_issue":23785270.782608695,"avg_time_to_close_pull_request":3085070.9122807016,"issues_closed_count":23,"pull_requests_closed_count":57,"pull_request_authors_count":4,"issue_authors_count":6,"avg_comments_per_issue":1.7692307692307692,"avg_comments_per_pull_request":1.826086956521739,"merged_pull_requests_count":48,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":233066.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":1,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.5,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"created_at":"2023-05-14T08:40:48.620Z","updated_at":"2026-06-13T11:00:59.442Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnPaton%2Fairbase/issues","issue_labels_count":{"enhancement":9,"bug":2,"wontfix":1},"pull_request_labels_count":{"enhancement":8,"bug":2},"issue_author_associations_count":{"OWNER":13,"COLLABORATOR":9,"NONE":3,"CONTRIBUTOR":1},"pull_request_author_associations_count":{"COLLABORATOR":38,"OWNER":28,"NONE":2,"CONTRIBUTOR":1},"issue_authors":{"JohnPaton":13,"avaldebe":9,"heikoklein":1,"omidnabavi":1,"b-kode":1,"charlienegri":1},"pull_request_authors":{"avaldebe":38,"JohnPaton":28,"heikoklein":2,"charlienegri":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-06-15T00:00:22.443Z","repositories_count":14809199,"issues_count":33182178,"pull_requests_count":109443202,"authors_count":11306839,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"COLLABORATOR":3,"NONE":1},"past_year_issue_authors":{},"past_year_pull_request_authors":{"avaldebe":3,"charlienegri":1},"maintainers":[{"login":"avaldebe","count":47,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/avaldebe"},{"login":"JohnPaton","count":41,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JohnPaton"}],"active_maintainers":[{"login":"avaldebe","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/avaldebe"}]},"events":{"total":{"ReleaseEvent":2,"DeleteEvent":3,"PullRequestEvent":13,"IssuesEvent":13,"WatchEvent":2,"IssueCommentEvent":16,"PushEvent":72,"PullRequestReviewCommentEvent":3,"PullRequestReviewEvent":14,"CreateEvent":13},"last_year":{"PullRequestEvent":1,"IssueCommentEvent":1,"PushEvent":7,"PullRequestReviewEvent":3,"CreateEvent":2}},"keywords":["air-quality","airbase","data","python"],"dependencies":[{"ecosystem":"pypi","filepath":"docs/requirements.txt","sha":null,"kind":"manifest","created_at":"2022-08-08T15:30:43.351Z","updated_at":"2022-08-08T15:30:43.351Z","repository_link":"https://github.com/JohnPaton/airbase/blob/master/docs/requirements.txt","dependencies":[{"id":671690881,"package_name":"sphinx","ecosystem":"pypi","requirements":"\u003e=4.2.0","direct":true,"kind":"runtime","optional":false},{"id":671690882,"package_name":"sphinx_rtd_theme","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":671690883,"package_name":"importlib_metadata","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/cicd.yaml","sha":null,"kind":"manifest","created_at":"2023-01-17T02:45:42.604Z","updated_at":"2023-01-17T02:45:42.604Z","repository_link":"https://github.com/JohnPaton/airbase/blob/master/.github/workflows/cicd.yaml","dependencies":[{"id":6965573146,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6965573147,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6965573148,"package_name":"pre-commit/action","ecosystem":"actions","requirements":"v2.0.3","direct":true,"kind":"composite","optional":false},{"id":6965573149,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"release/v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-09-24T05:23:24.640Z","updated_at":"2023-09-24T05:23:24.640Z","repository_link":"https://github.com/JohnPaton/airbase/blob/master/pyproject.toml","dependencies":[]}],"score":10.196754003281809,"created_at":"2023-09-18T13:10:19.563Z","updated_at":"2026-06-17T13:00:42.112Z","avatar_url":"https://github.com/JohnPaton.png","language":"Python","category":"Natural Resources","sub_category":"Air Quality","monthly_downloads":418,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"[![PyPI version](https://badge.fury.io/py/airbase.svg)](https://badge.fury.io/py/airbase)\n[![Downloads](https://pepy.tech/badge/airbase)](https://pepy.tech/project/airbase)\n[![CI/CD](https://github.com/JohnPaton/airbase/actions/workflows/cicd.yaml/badge.svg?branch=master)](https://github.com/JohnPaton/airbase/actions/workflows/cicd.yaml)\n[![Documentation Status](https://readthedocs.org/projects/airbase/badge/?version=latest)](https://airbase.readthedocs.io/en/latest/?badge=latest)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![Code style: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/format.json)](https://github.com/astral-sh/ruff)\n[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)\n\n# 🌬 AirBase\n\nAn easy downloader for air quality data provided by the European Environment Agency (EEA).\n\nThe data is available for download at\n[the portal](https://eeadmz1-downloads-webapp.azurewebsites.net/), but\nthe interface makes it a bit time consuming to do bulk downloads. Hence, an easy\nPython-based interface.\n\nRead the full documentation at https://airbase.readthedocs.io.\n\n## 🔌 Installation\n\nTo install `airbase`, simply run\n\n```bash\n$ pip install airbase\n```\n\n## 🚀 Getting Started\n\n🗺 Get info about available countries and pollutants:\n\n```pycon\n\u003e\u003e\u003e import airbase\n\u003e\u003e\u003e client = airbase.AirbaseClient()\n\u003e\u003e\u003e client.countries\nfrozenset({'LI', 'CY', 'IE', 'LV', 'BE', 'EE', ...})\n\n\u003e\u003e\u003e client.pollutants\nfrozenset({'Co', 'sum-PCB', 'PCB-26', 'HNO3', ...})\n\n\n\u003e\u003e\u003e client.search_pollutant(\"O3\")\n[{'poll': 'O3', 'id': 7}, {'poll': 'NO3', 'id': 46}, ...]\n```\n\n🗂 Request download links from the server and save the resulting Parquet files into a directory:\n\n```pycon\n\u003e\u003e\u003e r = client.request(\"Verified\", \"NL\", \"DE\", poll=[\"NO3\", \"NO3- in PM2.5\", \"NO3- in PM10\"])\n\u003e\u003e\u003e r.download(dir=\"data\", skip_existing=True)\nsummary : 100%|█████| 2/2 [00:00\u003c00:00,  4.48requests/s]\nURLs    : 100%|█████| 29.0/29.0 [00:00\u003c00:00, 490URL/s]\ndownload: 386kb [00:00, 570kb/s]\n```\n\n📦 Download the entire dataset (not for the faint of heart):\n\n```pycon\n\u003e\u003e\u003e r = client.request()\n\u003e\u003e\u003e r.download_to_directory(\"data\")\nsummary : 100%|█████| 39/39 [00:15\u003c00:00,  2.54requests/s]\nURLs    : 100%|█████| 47.0k/47.0k [00:00\u003c00:00, 77.7kURL/s]\ndownload: 20.6Gb [54:36, 6.74Mb/s]\n```\n\n🌡 Don't forget to get the metadata about the measurement stations:\n\n```pycon\n\u003e\u003e\u003e client.download_metadata(\"data/metadata.csv\")\nWriting metadata to data/metadata.csv...\n```\n\n## 🚆 Command line interface\n\n### Historical data delivered between 2002 and 2012\n\n``` console\n$ airbase historical --help\nUsage: airbase historical [OPTIONS]\n\n  Historical Airbase data delivered between 2002 and 2012 before Air Quality\n  Directive 2008/50/EC entered into force.\n\n  Use -c/--country and -p/--pollutant to restrict the download specific countries and pollutants, e.g.\n  - download only Norwegian, Danish and Finish sites\n    airbase historical -c NO -c DK -c FI\n  - download only SO2, PM10 and PM2.5 observations\n    airbase historical -p SO2 -p PM10 -p PM2.5\n\n  Use -C/--city to further restrict the download to specific cities, e.g.\n  - download only PM10 and PM2.5 from Valletta, the Capital of Malta\n    airbase historical -C Valletta -c MT -p PM10 -p PM2.5\n\nOptions:\n  -c, --country [AD|AL|AT|...]\n  -p, --pollutant [k|V|NT|...]\n  -C, --city TEXT                 only from selected \u003ccities\u003e\n  -F, --aggregation-type, --frequency [hourly|daily|other]\n                                  only hourly data, daily data or other\n                                  aggregation frequency\n  -M, --metadata                  download station metadata\n  --path PATH                     [default: data/historical]\n  -n, --dry-run, --summary        Total download files/size, nothing will be\n                                  downloaded.\n  -O, --overwrite                 Re-download existing files.\n  -q, --quiet                     No progress-bar.\n  --help                          Show this message and exit.\n```\n\n### Verified data from 2013 to 2024\n\n``` console\n$ airbase verified --help\nUsage: airbase verified [OPTIONS]\n\n  Verified data (E1a) from 2013 to 2024 reported by countries by 30 September\n  each year for the previous year.\n\n  Use -c/--country and -p/--pollutant to restrict the download specific countries and pollutants, e.g.\n  - download only Norwegian, Danish and Finish sites\n    airbase verified -c NO -c DK -c FI\n  - download only SO2, PM10 and PM2.5 observations\n    airbase verified -p SO2 -p PM10 -p PM2.5\n\n  Use -C/--city to further restrict the download to specific cities, e.g.\n  - download only PM10 and PM2.5 from Valletta, the Capital of Malta\n    airbase verified -C Valletta -c MT -p PM10 -p PM2.5\n\nOptions:\n  -c, --country [AD|AL|AT|...]\n  -p, --pollutant [k|V|NT|...]\n  -C, --city TEXT                 only from selected \u003ccities\u003e\n  -F, --aggregation-type, --frequency [hourly|daily|other]\n                                  only hourly data, daily data or other\n                                  aggregation frequency\n  -M, --metadata                  download station metadata\n  --path PATH                     [default: data/verified]\n  -n, --dry-run, --summary        Total download files/size, nothing will be\n                                  downloaded.\n  -O, --overwrite                 Re-download existing files.\n  -q, --quiet                     No progress-bar.\n  --help                          Show this message and exit.\n```\n\n### Unverified data from the beginning of 2025\n\n``` console\n$ airbase unverified --help\nUsage: airbase unverified [OPTIONS]\n\n  Unverified data transmitted continuously (Up-To-Date/UTD/E2a) data from the\n  beginning of 2025.\n\n  Use -c/--country and -p/--pollutant to restrict the download specific countries and pollutants, e.g.\n  - download only Norwegian, Danish and Finish sites\n    airbase unverified -c NO -c DK -c FI\n  - download only SO2, PM10 and PM2.5 observations\n    airbase unverified -p SO2 -p PM10 -p PM2.5\n\n  Use -C/--city to further restrict the download to specific cities, e.g.\n  - download only PM10 and PM2.5 from Valletta, the Capital of Malta\n    airbase unverified -C Valletta -c MT -p PM10 -p PM2.5\n\nOptions:\n  -c, --country [AD|AL|AT|...]\n  -p, --pollutant [k|V|NT|...]\n  -C, --city TEXT                 only from selected \u003ccities\u003e\n  -F, --aggregation-type, --frequency [hourly|daily|other]\n                                  only hourly data, daily data or other\n                                  aggregation frequency\n  -M, --metadata                  download station metadata\n  --path PATH                     [default: data/unverified]\n  -n, --dry-run, --summary        Total download files/size, nothing will be\n                                  downloaded.\n  -O, --overwrite                 Re-download existing files.\n  -q, --quiet                     No progress-bar.\n  --help                          Show this message and exit.\n```\n\n## 🛣 Roadmap\n\n* ~~Parallel CSV downloads~~ Contributed by @avaldebe\n* ~~CLI to avoid using Python all together~~ Contributed by @avaldebe\n* Data wrangling module for AirBase output data\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["aerocom","aerosol","climate-science","earth-observation","model-evaluation"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/64670","html_url":"https://ost.ecosyste.ms/projects/64670"}