{"id":65385,"name":"pyinaturalist","description":"Python client for iNaturalist, a community science platform that helps people get involved in the natural world by observing and identifying the living things around them.","url":"https://github.com/pyinat/pyinaturalist","last_synced_at":"2026-04-10T03:30:27.431Z","repository":{"id":38014927,"uuid":"152389967","full_name":"pyinat/pyinaturalist","owner":"pyinat","description":"Python client for iNaturalist","archived":false,"fork":false,"pushed_at":"2026-03-18T03:13:32.000Z","size":16073,"stargazers_count":164,"open_issues_count":8,"forks_count":21,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-03-18T06:05:45.033Z","etag":null,"topics":["api","api-client","biodiversity","biodiversity-data","biodiversity-informatics","citizen-science","inaturalist","python"],"latest_commit_sha":null,"homepage":"https://pyinaturalist.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/pyinat.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/code_of_conduct.md","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-10-10T08:34:57.000Z","updated_at":"2026-03-18T03:09:59.000Z","dependencies_parsed_at":"2023-09-21T19:31:36.229Z","dependency_job_id":"64e28a74-6a2d-46da-9cf2-cd00d011f6dd","html_url":"https://github.com/pyinat/pyinaturalist","commit_stats":{"total_commits":887,"total_committers":12,"mean_commits":73.91666666666667,"dds":0.09921082299887263,"last_synced_commit":"8b4f4c6d6b0f7799fcd3663ff2cc3148f34e3b85"},"previous_names":["niconoe/pyinaturalist"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/pyinat/pyinaturalist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyinat","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30865212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-23T18:35:51.002Z","status":"ssl_error","status_checked_at":"2026-03-23T18:35:42.451Z","response_time":59,"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":{"login":"pyinat","name":"pyinat","uuid":"105503620","kind":"organization","description":"Python tools for interacting with iNaturalist","email":null,"website":"https://pyinaturalist.readthedocs.io","location":"United States of America","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/105503620?v=4","repositories_count":6,"last_synced_at":"2024-05-12T00:45:45.872Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/pyinat","funding_links":[],"total_stars":173,"followers":10,"following":0,"created_at":"2022-11-14T17:10:52.763Z","updated_at":"2024-05-12T00:45:46.962Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyinat","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyinat/repositories"},"packages":[{"id":11733538,"name":"github.com/pyinat/pyinaturalist","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/pyinat/pyinaturalist","keywords_array":[],"namespace":null,"versions_count":26,"first_release_published_at":"2018-10-31T15:04:05.000Z","latest_release_published_at":"2025-08-19T20:40:39.000Z","latest_release_number":"v0.20.2","last_synced_at":"2025-10-29T20:17:54.718Z","created_at":"2025-06-05T11:16:56.743Z","updated_at":"2025-10-29T20:17:54.718Z","registry_url":"https://pkg.go.dev/github.com/pyinat/pyinaturalist","install_command":"go get github.com/pyinat/pyinaturalist","documentation_url":"https://pkg.go.dev/github.com/pyinat/pyinaturalist#section-documentation","metadata":{},"repo_metadata":{"id":38014927,"uuid":"152389967","full_name":"pyinat/pyinaturalist","owner":"pyinat","description":"Python client for iNaturalist","archived":false,"fork":false,"pushed_at":"2025-10-11T16:01:15.000Z","size":15655,"stargazers_count":153,"open_issues_count":25,"forks_count":18,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-10-24T17:12:36.981Z","etag":null,"topics":["api","api-client","biodiversity","biodiversity-data","biodiversity-informatics","citizen-science","inaturalist","python"],"latest_commit_sha":null,"homepage":"https://pyinaturalist.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/pyinat.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/code_of_conduct.md","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-10-10T08:34:57.000Z","updated_at":"2025-10-15T19:37:48.000Z","dependencies_parsed_at":"2023-09-21T19:31:36.229Z","dependency_job_id":"64e28a74-6a2d-46da-9cf2-cd00d011f6dd","html_url":"https://github.com/pyinat/pyinaturalist","commit_stats":{"total_commits":887,"total_committers":12,"mean_commits":73.91666666666667,"dds":0.09921082299887263,"last_synced_commit":"8b4f4c6d6b0f7799fcd3663ff2cc3148f34e3b85"},"previous_names":["niconoe/pyinaturalist"],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/pyinat/pyinaturalist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyinat","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281155558,"owners_count":26452905,"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-10-26T02:00:06.575Z","response_time":61,"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_record":{"login":"pyinat","name":"pyinat","uuid":"105503620","kind":"organization","description":"Python tools for interacting with iNaturalist","email":null,"website":"https://pyinaturalist.readthedocs.io","location":"United States of America","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/105503620?v=4","repositories_count":6,"last_synced_at":"2024-05-12T00:45:45.872Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/pyinat","funding_links":[],"total_stars":173,"followers":10,"following":0,"created_at":"2022-11-14T17:10:52.763Z","updated_at":"2024-05-12T00:45:46.962Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyinat","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyinat/repositories"},"tags":[{"name":"v0.20.2","sha":"de8bd4e50e89c405237a019c4d33e91199343e16","kind":"commit","published_at":"2025-08-19T20:40:39.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.20.2","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.20.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.20.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.20.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.20.2/manifests"},{"name":"v0.20.1","sha":"fbc37eb5e0275b772573dc1b84b1675f715aadbc","kind":"commit","published_at":"2025-01-18T06:03:57.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.20.1","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.20.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.20.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.20.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.20.1/manifests"},{"name":"v0.20.0","sha":"60982b4f5c02ca5db6dd597c2eb29f31a9d02918","kind":"commit","published_at":"2025-01-02T17:23:44.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.20.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.20.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.20.0/manifests"},{"name":"v0.19.0","sha":"2a1250e46bdc25a4a1d19194393c2a0398f703e2","kind":"commit","published_at":"2023-12-12T06:36:48.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.19.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.19.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.19.0/manifests"},{"name":"v0.18.0","sha":"ae2388ae6ea08df05f8b14c8c82cc6c12163598a","kind":"commit","published_at":"2023-02-27T18:03:47.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.18.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.18.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.18.0/manifests"},{"name":"v0.17.4","sha":"49949aab59fbba532685c8a9482def37bde42bdf","kind":"commit","published_at":"2022-07-11T18:19:24.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.4","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.17.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.4/manifests"},{"name":"v0.17.3","sha":"34b97a4f414b33cfe6c7cd267b7c0e73d0f910f6","kind":"commit","published_at":"2022-06-28T16:00:05.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.3","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.17.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.3/manifests"},{"name":"v0.17.2","sha":"4c3d86a70e5f203492a72b46d1a6d43a655a854d","kind":"commit","published_at":"2022-06-12T03:22:39.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.2","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.17.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.2/manifests"},{"name":"v0.17.1","sha":"9f32eb7e2394e737313d55340505fa0880107fd2","kind":"commit","published_at":"2022-05-21T01:47:56.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.1","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.17.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.1/manifests"},{"name":"v0.17.0","sha":"88694c84778787c65d43e71eb4235b96ad6ea5b3","kind":"commit","published_at":"2022-05-17T14:39:59.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.17.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.0/manifests"},{"name":"v0.16.0","sha":"e8668e71e2382a3b3e84d03e28df06f09698d7f7","kind":"commit","published_at":"2022-02-23T03:54:28.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.16.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.16.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.16.0/manifests"},{"name":"v0.15.0","sha":"572731cc68d5ae0a6eb3a8ad7029fbde4b07274f","kind":"commit","published_at":"2021-09-07T15:45:44.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.15.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.15.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.15.0/manifests"},{"name":"v0.14.1","sha":"de5cb05ef7e08ec1dc10a38d83a1cdc2976eb5b4","kind":"commit","published_at":"2021-07-20T14:07:33.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.14.1","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.14.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.14.1/manifests"},{"name":"v0.14.0","sha":"dbbc60f59dc006e523f00cfeca2feb03ca43d4e8","kind":"commit","published_at":"2021-07-14T23:03:20.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.14.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.14.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.14.0/manifests"},{"name":"v0.10.0","sha":"e6c200601093702612cac9f7601d945ab313108e","kind":"commit","published_at":"2021-06-19T19:01:32.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.10.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.10.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.10.0/manifests"},{"name":"v0.13.0","sha":"79246873b56e06adc79f444505133f9132299f23","kind":"commit","published_at":"2021-05-21T23:21:30.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.13.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.13.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.13.0/manifests"},{"name":"v0.12.1","sha":"67a86031fb1d6fc7d4b4934f0268d092e249f00e","kind":"commit","published_at":"2021-03-07T16:00:19.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.12.1","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.12.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.12.1/manifests"},{"name":"v0.12","sha":"6624ca6046da572f4bd894d42551e11fa7fd662a","kind":"commit","published_at":"2021-02-03T05:04:41.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.12","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.12/manifests"},{"name":"v0.11","sha":"89f0b84185960df1c14b172846f901d1b4a0de78","kind":"commit","published_at":"2020-11-04T19:13:59.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.11","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.11/manifests"},{"name":"v0.10","sha":"91d35316e55146dccd1c0144edcbedd442a8119d","kind":"commit","published_at":"2020-06-16T15:52:10.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.10","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.10/manifests"},{"name":"v0.9.1","sha":"71a297ff38cfc02a85289902b4ed5230b2653acf","kind":"commit","published_at":"2020-05-26T10:51:20.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.9.1","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.9.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.9.1/manifests"},{"name":"v0.9.0","sha":"96e1524462f90ab35cf5a93af1cdbc12b7e9e354","kind":"commit","published_at":"2020-05-06T13:49:02.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.9.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.9.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.9.0/manifests"},{"name":"v0.8.0","sha":"b88d22ec720790515af295df12a13f51acc8f702","kind":"commit","published_at":"2019-07-11T12:28:52.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.8.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.8.0/manifests"},{"name":"v0.7.0","sha":"3b56ac4640a7c120e4732c1458dc09427d297995","kind":"commit","published_at":"2019-05-08T10:01:43.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.7.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"e104597a8d005394bfea82fd9b73a11f98a293bb","kind":"commit","published_at":"2018-11-13T10:41:42.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.6.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"df58add394175d8ca5e3cfd52c2a6b20efd80794","kind":"commit","published_at":"2018-11-05T14:54:09.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.5.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"2ae4c51080bc6a75c9b2ab7fac6f5abf962968cc","kind":"commit","published_at":"2018-11-05T10:55:47.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.4.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"94b7240befa25aaffd7ef1bb15af271fe716ed0c","kind":"commit","published_at":"2018-11-05T08:58:49.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.3.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"84877394b9b1a4f9ab4d7b4afac968c2f5d5d8c2","kind":"commit","published_at":"2018-10-31T15:04:05.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.2.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.2.0/manifests"}]},"repo_metadata_updated_at":"2025-10-27T04:20:31.475Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.757538697138725,"dependent_packages_count":5.395053785167736,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.57629624115323},"purl":"pkg:golang/github.com/pyinat/pyinaturalist","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/pyinat/pyinaturalist","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/pyinat/pyinaturalist","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/pyinat/pyinaturalist/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-24T21:00:21.588Z","issues_count":217,"pull_requests_count":446,"avg_time_to_close_issue":7206464.30927835,"avg_time_to_close_pull_request":564207.8045977012,"issues_closed_count":194,"pull_requests_closed_count":435,"pull_request_authors_count":9,"issue_authors_count":29,"avg_comments_per_issue":2.023041474654378,"avg_comments_per_pull_request":0.7668161434977578,"merged_pull_requests_count":325,"bot_issues_count":1,"bot_pull_requests_count":190,"past_year_issues_count":6,"past_year_pull_requests_count":37,"past_year_avg_time_to_close_issue":238229.75,"past_year_avg_time_to_close_pull_request":348326.2413793103,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":29,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":5,"past_year_avg_comments_per_issue":1.5,"past_year_avg_comments_per_pull_request":0.6216216216216216,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":23,"past_year_merged_pull_requests_count":15,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/issues","maintainers":[{"login":"JWCook","count":394,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JWCook"},{"login":"niconoe","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/niconoe"},{"login":"pleary","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pleary"}],"active_maintainers":[{"login":"JWCook","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JWCook"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpyinat%2Fpyinaturalist/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpyinat%2Fpyinaturalist/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpyinat%2Fpyinaturalist/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpyinat%2Fpyinaturalist/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpyinat%2Fpyinaturalist/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":1982391,"maintainers_count":0,"namespaces_count":748632,"keywords_count":111330,"github":"golang","metadata":{"funded_packages_count":52718},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2025-10-30T05:50:02.839Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":5300858,"name":"pyinaturalist","ecosystem":"conda","description":null,"homepage":"https://github.com/pyinat/pyinaturalist","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/pyinat/pyinaturalist","keywords_array":[],"namespace":null,"versions_count":6,"first_release_published_at":"2021-04-26T19:53:02.000Z","latest_release_published_at":"2022-02-23T12:26:45.000Z","latest_release_number":"0.16.0","last_synced_at":"2025-10-29T20:17:56.673Z","created_at":"2022-10-03T16:09:41.331Z","updated_at":"2025-10-29T20:17:56.673Z","registry_url":"https://anaconda.org/conda-forge/pyinaturalist","install_command":"conda install -c conda-forge pyinaturalist","documentation_url":null,"metadata":{},"repo_metadata":{"id":38014927,"uuid":"152389967","full_name":"pyinat/pyinaturalist","owner":"pyinat","description":"Python client for iNaturalist","archived":false,"fork":false,"pushed_at":"2025-10-11T16:01:15.000Z","size":15655,"stargazers_count":153,"open_issues_count":25,"forks_count":18,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-10-24T17:12:36.981Z","etag":null,"topics":["api","api-client","biodiversity","biodiversity-data","biodiversity-informatics","citizen-science","inaturalist","python"],"latest_commit_sha":null,"homepage":"https://pyinaturalist.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/pyinat.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/code_of_conduct.md","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-10-10T08:34:57.000Z","updated_at":"2025-10-15T19:37:48.000Z","dependencies_parsed_at":"2023-09-21T19:31:36.229Z","dependency_job_id":"64e28a74-6a2d-46da-9cf2-cd00d011f6dd","html_url":"https://github.com/pyinat/pyinaturalist","commit_stats":{"total_commits":887,"total_committers":12,"mean_commits":73.91666666666667,"dds":0.09921082299887263,"last_synced_commit":"8b4f4c6d6b0f7799fcd3663ff2cc3148f34e3b85"},"previous_names":["niconoe/pyinaturalist"],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/pyinat/pyinaturalist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyinat","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281155558,"owners_count":26452905,"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-10-26T02:00:06.575Z","response_time":61,"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_record":{"login":"pyinat","name":"pyinat","uuid":"105503620","kind":"organization","description":"Python tools for interacting with iNaturalist","email":null,"website":"https://pyinaturalist.readthedocs.io","location":"United States of America","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/105503620?v=4","repositories_count":6,"last_synced_at":"2024-05-12T00:45:45.872Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/pyinat","funding_links":[],"total_stars":173,"followers":10,"following":0,"created_at":"2022-11-14T17:10:52.763Z","updated_at":"2024-05-12T00:45:46.962Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyinat","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyinat/repositories"},"tags":[{"name":"v0.20.2","sha":"de8bd4e50e89c405237a019c4d33e91199343e16","kind":"commit","published_at":"2025-08-19T20:40:39.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.20.2","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.20.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.20.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.20.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.20.2/manifests"},{"name":"v0.20.1","sha":"fbc37eb5e0275b772573dc1b84b1675f715aadbc","kind":"commit","published_at":"2025-01-18T06:03:57.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.20.1","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.20.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.20.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.20.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.20.1/manifests"},{"name":"v0.20.0","sha":"60982b4f5c02ca5db6dd597c2eb29f31a9d02918","kind":"commit","published_at":"2025-01-02T17:23:44.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.20.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.20.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.20.0/manifests"},{"name":"v0.19.0","sha":"2a1250e46bdc25a4a1d19194393c2a0398f703e2","kind":"commit","published_at":"2023-12-12T06:36:48.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.19.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.19.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.19.0/manifests"},{"name":"v0.18.0","sha":"ae2388ae6ea08df05f8b14c8c82cc6c12163598a","kind":"commit","published_at":"2023-02-27T18:03:47.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.18.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.18.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.18.0/manifests"},{"name":"v0.17.4","sha":"49949aab59fbba532685c8a9482def37bde42bdf","kind":"commit","published_at":"2022-07-11T18:19:24.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.4","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.17.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.4/manifests"},{"name":"v0.17.3","sha":"34b97a4f414b33cfe6c7cd267b7c0e73d0f910f6","kind":"commit","published_at":"2022-06-28T16:00:05.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.3","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.17.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.3/manifests"},{"name":"v0.17.2","sha":"4c3d86a70e5f203492a72b46d1a6d43a655a854d","kind":"commit","published_at":"2022-06-12T03:22:39.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.2","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.17.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.2/manifests"},{"name":"v0.17.1","sha":"9f32eb7e2394e737313d55340505fa0880107fd2","kind":"commit","published_at":"2022-05-21T01:47:56.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.1","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.17.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.1/manifests"},{"name":"v0.17.0","sha":"88694c84778787c65d43e71eb4235b96ad6ea5b3","kind":"commit","published_at":"2022-05-17T14:39:59.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.17.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.0/manifests"},{"name":"v0.16.0","sha":"e8668e71e2382a3b3e84d03e28df06f09698d7f7","kind":"commit","published_at":"2022-02-23T03:54:28.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.16.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.16.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.16.0/manifests"},{"name":"v0.15.0","sha":"572731cc68d5ae0a6eb3a8ad7029fbde4b07274f","kind":"commit","published_at":"2021-09-07T15:45:44.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.15.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.15.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.15.0/manifests"},{"name":"v0.14.1","sha":"de5cb05ef7e08ec1dc10a38d83a1cdc2976eb5b4","kind":"commit","published_at":"2021-07-20T14:07:33.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.14.1","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.14.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.14.1/manifests"},{"name":"v0.14.0","sha":"dbbc60f59dc006e523f00cfeca2feb03ca43d4e8","kind":"commit","published_at":"2021-07-14T23:03:20.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.14.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.14.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.14.0/manifests"},{"name":"v0.10.0","sha":"e6c200601093702612cac9f7601d945ab313108e","kind":"commit","published_at":"2021-06-19T19:01:32.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.10.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.10.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.10.0/manifests"},{"name":"v0.13.0","sha":"79246873b56e06adc79f444505133f9132299f23","kind":"commit","published_at":"2021-05-21T23:21:30.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.13.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.13.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.13.0/manifests"},{"name":"v0.12.1","sha":"67a86031fb1d6fc7d4b4934f0268d092e249f00e","kind":"commit","published_at":"2021-03-07T16:00:19.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.12.1","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.12.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.12.1/manifests"},{"name":"v0.12","sha":"6624ca6046da572f4bd894d42551e11fa7fd662a","kind":"commit","published_at":"2021-02-03T05:04:41.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.12","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.12/manifests"},{"name":"v0.11","sha":"89f0b84185960df1c14b172846f901d1b4a0de78","kind":"commit","published_at":"2020-11-04T19:13:59.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.11","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.11/manifests"},{"name":"v0.10","sha":"91d35316e55146dccd1c0144edcbedd442a8119d","kind":"commit","published_at":"2020-06-16T15:52:10.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.10","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.10/manifests"},{"name":"v0.9.1","sha":"71a297ff38cfc02a85289902b4ed5230b2653acf","kind":"commit","published_at":"2020-05-26T10:51:20.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.9.1","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.9.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.9.1/manifests"},{"name":"v0.9.0","sha":"96e1524462f90ab35cf5a93af1cdbc12b7e9e354","kind":"commit","published_at":"2020-05-06T13:49:02.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.9.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.9.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.9.0/manifests"},{"name":"v0.8.0","sha":"b88d22ec720790515af295df12a13f51acc8f702","kind":"commit","published_at":"2019-07-11T12:28:52.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.8.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.8.0/manifests"},{"name":"v0.7.0","sha":"3b56ac4640a7c120e4732c1458dc09427d297995","kind":"commit","published_at":"2019-05-08T10:01:43.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.7.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"e104597a8d005394bfea82fd9b73a11f98a293bb","kind":"commit","published_at":"2018-11-13T10:41:42.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.6.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"df58add394175d8ca5e3cfd52c2a6b20efd80794","kind":"commit","published_at":"2018-11-05T14:54:09.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.5.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"2ae4c51080bc6a75c9b2ab7fac6f5abf962968cc","kind":"commit","published_at":"2018-11-05T10:55:47.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.4.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"94b7240befa25aaffd7ef1bb15af271fe716ed0c","kind":"commit","published_at":"2018-11-05T08:58:49.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.3.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"84877394b9b1a4f9ab4d7b4afac968c2f5d5d8c2","kind":"commit","published_at":"2018-10-31T15:04:05.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.2.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyinat/pyinaturalist@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.2.0/manifests"}]},"repo_metadata_updated_at":"2025-10-27T04:20:31.476Z","dependent_packages_count":1,"downloads":null,"downloads_period":null,"dependent_repos_count":1,"rankings":{"downloads":null,"dependent_repos_count":24.347522331453668,"dependent_packages_count":28.978491940715607,"stargazers_count":35.21133789111233,"forks_count":44.942362393333,"docker_downloads_count":null,"average":33.36992863915365},"purl":"pkg:conda/pyinaturalist?repository_url=https://conda-forge.org","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/pyinaturalist","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/pyinaturalist","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/pyinaturalist/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-24T21:00:21.588Z","issues_count":217,"pull_requests_count":446,"avg_time_to_close_issue":7206464.30927835,"avg_time_to_close_pull_request":564207.8045977012,"issues_closed_count":194,"pull_requests_closed_count":435,"pull_request_authors_count":9,"issue_authors_count":29,"avg_comments_per_issue":2.023041474654378,"avg_comments_per_pull_request":0.7668161434977578,"merged_pull_requests_count":325,"bot_issues_count":1,"bot_pull_requests_count":190,"past_year_issues_count":6,"past_year_pull_requests_count":37,"past_year_avg_time_to_close_issue":238229.75,"past_year_avg_time_to_close_pull_request":348326.2413793103,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":29,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":5,"past_year_avg_comments_per_issue":1.5,"past_year_avg_comments_per_pull_request":0.6216216216216216,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":23,"past_year_merged_pull_requests_count":15,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/issues","maintainers":[{"login":"JWCook","count":394,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JWCook"},{"login":"niconoe","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/niconoe"},{"login":"pleary","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pleary"}],"active_maintainers":[{"login":"JWCook","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JWCook"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pyinaturalist/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pyinaturalist/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pyinaturalist/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pyinaturalist/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pyinaturalist/codemeta","maintainers":[],"registry":{"name":"conda-forge.org","url":"https://conda-forge.org","ecosystem":"conda","default":false,"packages_count":20636,"maintainers_count":0,"namespaces_count":0,"keywords_count":13539,"github":"conda-forge","metadata":{"kind":"conda-forge","key":"CondaForge","api":"https://conda.anaconda.org"},"icon_url":"https://github.com/conda-forge.png","created_at":"2022-10-03T15:37:08.743Z","updated_at":"2025-10-30T15:32:42.079Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/namespaces"}},{"id":2873698,"name":"pyinaturalist","ecosystem":"pypi","description":"iNaturalist API client for python","homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/pyinat/pyinaturalist","keywords_array":["api","api-client","biodiversity","citizen-science","community-science","conservation","data-model","inaturalist","requests"],"namespace":null,"versions_count":69,"first_release_published_at":"2018-10-10T14:16:22.000Z","latest_release_published_at":"2025-08-19T20:42:15.000Z","latest_release_number":"0.20.2","last_synced_at":"2025-10-29T20:17:54.857Z","created_at":"2022-04-10T12:13:55.874Z","updated_at":"2025-10-29T20:17:54.857Z","registry_url":"https://pypi.org/project/pyinaturalist/","install_command":"pip install pyinaturalist --index-url https://pypi.org/simple","documentation_url":"https://pyinaturalist.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 4 - Beta","Intended Audience :: Developers","Intended Audience :: Education","Intended Audience :: Science/Research","Topic :: Software Development :: Libraries :: Python Modules","Typing :: Typed"],"normalized_name":"pyinaturalist","project_status":null},"repo_metadata":{"id":38014927,"uuid":"152389967","full_name":"pyinat/pyinaturalist","owner":"pyinat","description":"Python client for iNaturalist","archived":false,"fork":false,"pushed_at":"2024-04-26T18:36:28.000Z","size":14593,"stargazers_count":128,"open_issues_count":24,"forks_count":16,"subscribers_count":12,"default_branch":"main","last_synced_at":"2024-06-11T17:29:50.591Z","etag":null,"topics":["api","api-client","biodiversity","biodiversity-data","biodiversity-informatics","citizen-science","inaturalist","python"],"latest_commit_sha":null,"homepage":"https://pyinaturalist.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/pyinat.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/code_of_conduct.md","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}},"created_at":"2018-10-10T08:34:57.000Z","updated_at":"2024-06-04T13:48:26.000Z","dependencies_parsed_at":"2023-09-21T19:31:36.229Z","dependency_job_id":"64e28a74-6a2d-46da-9cf2-cd00d011f6dd","html_url":"https://github.com/pyinat/pyinaturalist","commit_stats":{"total_commits":864,"total_committers":12,"mean_commits":72.0,"dds":0.09953703703703709,"last_synced_commit":"52dfd56400e983dcc0246c352e4704925f6b9ddf"},"previous_names":["niconoe/pyinaturalist"],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyinat","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":206633373,"owners_count":14602583,"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"},"owner_record":{"login":"pyinat","name":"pyinat","uuid":"105503620","kind":"organization","description":"Python tools for interacting with iNaturalist","email":null,"website":"https://pyinaturalist.readthedocs.io","location":"United States of America","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/105503620?v=4","repositories_count":6,"last_synced_at":"2024-05-12T00:45:45.872Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/pyinat","funding_links":[],"total_stars":173,"followers":10,"following":0,"created_at":"2022-11-14T17:10:52.763Z","updated_at":"2024-05-12T00:45:46.962Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyinat","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyinat/repositories"},"tags":[{"name":"v0.19.0","sha":"2a1250e46bdc25a4a1d19194393c2a0398f703e2","kind":"commit","published_at":"2023-12-12T06:36:48.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.19.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.19.0/manifests"},{"name":"v0.18.0","sha":"ae2388ae6ea08df05f8b14c8c82cc6c12163598a","kind":"commit","published_at":"2023-02-27T18:03:47.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.18.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.18.0/manifests"},{"name":"v0.17.4","sha":"49949aab59fbba532685c8a9482def37bde42bdf","kind":"commit","published_at":"2022-07-11T18:19:24.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.4","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.4/manifests"},{"name":"v0.17.3","sha":"34b97a4f414b33cfe6c7cd267b7c0e73d0f910f6","kind":"commit","published_at":"2022-06-28T16:00:05.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.3","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.3/manifests"},{"name":"v0.17.2","sha":"4c3d86a70e5f203492a72b46d1a6d43a655a854d","kind":"commit","published_at":"2022-06-12T03:22:39.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.2","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.2/manifests"},{"name":"v0.17.1","sha":"9f32eb7e2394e737313d55340505fa0880107fd2","kind":"commit","published_at":"2022-05-21T01:47:56.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.1","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.1/manifests"},{"name":"v0.17.0","sha":"88694c84778787c65d43e71eb4235b96ad6ea5b3","kind":"commit","published_at":"2022-05-17T14:39:59.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.17.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.17.0/manifests"},{"name":"v0.16.0","sha":"e8668e71e2382a3b3e84d03e28df06f09698d7f7","kind":"commit","published_at":"2022-02-23T03:54:28.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.16.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.16.0/manifests"},{"name":"v0.15.0","sha":"572731cc68d5ae0a6eb3a8ad7029fbde4b07274f","kind":"commit","published_at":"2021-09-07T15:45:44.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.15.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.15.0/manifests"},{"name":"v0.14.1","sha":"de5cb05ef7e08ec1dc10a38d83a1cdc2976eb5b4","kind":"commit","published_at":"2021-07-20T14:07:33.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.14.1","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.14.1/manifests"},{"name":"v0.14.0","sha":"dbbc60f59dc006e523f00cfeca2feb03ca43d4e8","kind":"commit","published_at":"2021-07-14T23:03:20.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.14.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.14.0/manifests"},{"name":"v0.10.0","sha":"e6c200601093702612cac9f7601d945ab313108e","kind":"commit","published_at":"2021-06-19T19:01:32.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.10.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.10.0/manifests"},{"name":"v0.13.0","sha":"79246873b56e06adc79f444505133f9132299f23","kind":"commit","published_at":"2021-05-21T23:21:30.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.13.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.13.0/manifests"},{"name":"v0.12.1","sha":"67a86031fb1d6fc7d4b4934f0268d092e249f00e","kind":"commit","published_at":"2021-03-07T16:00:19.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.12.1","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.12.1/manifests"},{"name":"v0.12","sha":"6624ca6046da572f4bd894d42551e11fa7fd662a","kind":"commit","published_at":"2021-02-03T05:04:41.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.12","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.12/manifests"},{"name":"v0.11","sha":"89f0b84185960df1c14b172846f901d1b4a0de78","kind":"commit","published_at":"2020-11-04T19:13:59.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.11","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.11/manifests"},{"name":"v0.10","sha":"91d35316e55146dccd1c0144edcbedd442a8119d","kind":"commit","published_at":"2020-06-16T15:52:10.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.10","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.10/manifests"},{"name":"v0.9.1","sha":"71a297ff38cfc02a85289902b4ed5230b2653acf","kind":"commit","published_at":"2020-05-26T10:51:20.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.9.1","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.9.1/manifests"},{"name":"v0.9.0","sha":"96e1524462f90ab35cf5a93af1cdbc12b7e9e354","kind":"commit","published_at":"2020-05-06T13:49:02.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.9.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.9.0/manifests"},{"name":"v0.8.0","sha":"b88d22ec720790515af295df12a13f51acc8f702","kind":"commit","published_at":"2019-07-11T12:28:52.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.8.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.8.0/manifests"},{"name":"v0.7.0","sha":"3b56ac4640a7c120e4732c1458dc09427d297995","kind":"commit","published_at":"2019-05-08T10:01:43.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.7.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"e104597a8d005394bfea82fd9b73a11f98a293bb","kind":"commit","published_at":"2018-11-13T10:41:42.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.6.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"df58add394175d8ca5e3cfd52c2a6b20efd80794","kind":"commit","published_at":"2018-11-05T14:54:09.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.5.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"2ae4c51080bc6a75c9b2ab7fac6f5abf962968cc","kind":"commit","published_at":"2018-11-05T10:55:47.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.4.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"94b7240befa25aaffd7ef1bb15af271fe716ed0c","kind":"commit","published_at":"2018-11-05T08:58:49.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.3.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"84877394b9b1a4f9ab4d7b4afac968c2f5d5d8c2","kind":"commit","published_at":"2018-10-31T15:04:05.000Z","download_url":"https://codeload.github.com/pyinat/pyinaturalist/tar.gz/v0.2.0","html_url":"https://github.com/pyinat/pyinaturalist/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/tags/v0.2.0/manifests"}]},"repo_metadata_updated_at":"2024-09-07T20:57:03.825Z","dependent_packages_count":4,"downloads":3912,"downloads_period":"last-month","dependent_repos_count":15,"rankings":{"downloads":13.548921892732027,"dependent_repos_count":3.7895385052639057,"dependent_packages_count":1.6105957546732337,"stargazers_count":6.884158087538685,"forks_count":10.557377437342394,"docker_downloads_count":null,"average":7.278118335510049},"purl":"pkg:pypi/pyinaturalist","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/pyinaturalist","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/pyinaturalist","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/pyinaturalist/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2024-09-07T20:05:58.022Z","issues_count":215,"pull_requests_count":383,"avg_time_to_close_issue":6595438.65625,"avg_time_to_close_pull_request":366751.756684492,"issues_closed_count":192,"pull_requests_closed_count":374,"pull_request_authors_count":8,"issue_authors_count":26,"avg_comments_per_issue":2.13953488372093,"avg_comments_per_pull_request":0.804177545691906,"merged_pull_requests_count":291,"bot_issues_count":0,"bot_pull_requests_count":155,"past_year_issues_count":27,"past_year_pull_requests_count":50,"past_year_avg_time_to_close_issue":1049899.0,"past_year_avg_time_to_close_pull_request":358266.0243902439,"past_year_issues_closed_count":18,"past_year_pull_requests_closed_count":41,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":7,"past_year_avg_comments_per_issue":2.7777777777777777,"past_year_avg_comments_per_pull_request":0.4,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":27,"past_year_merged_pull_requests_count":33,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/issues","maintainers":[{"login":"JWCook","count":374,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JWCook"},{"login":"niconoe","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/niconoe"},{"login":"pleary","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pleary"}],"active_maintainers":[{"login":"JWCook","count":27,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JWCook"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyinaturalist/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyinaturalist/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyinaturalist/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyinaturalist/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyinaturalist/codemeta","maintainers":[{"uuid":"JWCook","login":"JWCook","name":null,"email":null,"url":null,"packages_count":9,"html_url":"https://pypi.org/user/JWCook/","role":null,"created_at":"2022-11-22T20:10:23.122Z","updated_at":"2022-11-22T20:10:23.122Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/JWCook/packages"},{"uuid":"niconoe","login":"niconoe","name":null,"email":null,"url":null,"packages_count":7,"html_url":"https://pypi.org/user/niconoe/","role":null,"created_at":"2022-11-22T20:10:23.134Z","updated_at":"2022-11-22T20:10:23.134Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/niconoe/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":745764,"maintainers_count":316549,"namespaces_count":0,"keywords_count":245871,"github":"pypi","metadata":{"funded_packages_count":52290},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-10-29T05:45:24.783Z","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":637416,"full_name":"pyinat/pyinaturalist","default_branch":"main","total_commits":929,"total_committers":13,"total_bot_commits":19,"total_bot_committers":1,"mean_commits":71.46153846153847,"dds":0.10226049515608182,"past_year_total_commits":42,"past_year_total_committers":4,"past_year_total_bot_commits":2,"past_year_total_bot_committers":1,"past_year_mean_commits":10.5,"past_year_dds":0.16666666666666663,"last_synced_at":"2025-10-29T07:11:57.630Z","last_synced_commit":"862a98372767c43e294657ceb681ab4292935d8d","created_at":"2023-03-09T08:41:45.079Z","updated_at":"2025-10-29T07:11:09.514Z","committers":[{"name":"Jordan Cook","email":"jordan.cook@pioneer.com","login":"JWCook","count":834},{"name":"Nicolas Noé","email":"nicolas@niconoe.eu","login":"niconoe","count":52},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":19},{"name":"Nicolas Noé","email":"nicolas.noe@inbo.be","login":null,"count":6},{"name":"Will Kuhn","email":"kuhn.will@gmail.com","login":"willkuhn","count":4},{"name":"Darren Kirby","email":"bulliver@gmail.com","login":"DarrenKirby","count":4},{"name":"Peter Desmet","email":"peter.desmet.work@gmail.com","login":"peterdesmet","count":3},{"name":"Oleksii Brodnikov","email":"oleksii.brodnikov@2xideas.com","login":null,"count":2},{"name":"Richard Littauer","email":"richard.littauer@gmail.com","login":"RichardLitt","count":1},{"name":"Eduardo Ramírez","email":"edu.rh90@gmail.com","login":"eduramirezh","count":1},{"name":"Ben Armstrong","email":"synrg@debian.org","login":"synrg","count":1},{"name":"Stijn Van Hoey","email":"stijn.vanhoey@inbo.be","login":null,"count":1},{"name":"Eduardo","email":"eduardo.ramirez@adevinta.com","login":null,"count":1}],"past_year_committers":[{"name":"Jordan Cook","email":"jordan.cook.git@proton.me","login":"JWCook","count":35},{"name":"Darren Kirby","email":"bulliver@gmail.com","login":"DarrenKirby","count":3},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":2},{"name":"Oleksii Brodnikov","email":"oleksii.brodnikov@2xideas.com","login":null,"count":2}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-10-29T00:00:18.766Z","repositories_count":6089584,"commits_count":922516440,"contributors_count":35983866,"owners_count":1109633,"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":"pyinat/pyinaturalist","html_url":"https://github.com/pyinat/pyinaturalist","last_synced_at":"2025-10-24T21:00:21.588Z","status":null,"issues_count":217,"pull_requests_count":446,"avg_time_to_close_issue":7206464.30927835,"avg_time_to_close_pull_request":564207.8045977012,"issues_closed_count":194,"pull_requests_closed_count":435,"pull_request_authors_count":9,"issue_authors_count":29,"avg_comments_per_issue":2.023041474654378,"avg_comments_per_pull_request":0.7668161434977578,"merged_pull_requests_count":325,"bot_issues_count":1,"bot_pull_requests_count":190,"past_year_issues_count":6,"past_year_pull_requests_count":37,"past_year_avg_time_to_close_issue":238229.75,"past_year_avg_time_to_close_pull_request":348326.2413793103,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":29,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":5,"past_year_avg_comments_per_issue":1.5,"past_year_avg_comments_per_pull_request":0.6216216216216216,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":23,"past_year_merged_pull_requests_count":15,"created_at":"2023-05-09T10:37:40.188Z","updated_at":"2025-10-24T21:00:21.589Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist/issues","issue_labels_count":{"enhancement":86,"new endpoint":42,"bug":34,"docs":26,"logistics":23,"question":12,"examples":11,"refactoring":2,"good first issue":2,"wontfix":2,"tests":1,"dependencies":1,"github_actions":1},"pull_request_labels_count":{"enhancement":111,"dependencies":103,"python":85,"docs":44,"new endpoint":32,"bug":30,"logistics":26,"github_actions":18,"examples":7,"refactoring":6,"tests":3},"issue_author_associations_count":{"COLLABORATOR":154,"NONE":44,"MEMBER":11,"CONTRIBUTOR":8},"pull_request_author_associations_count":{"CONTRIBUTOR":201,"COLLABORATOR":199,"MEMBER":40,"NONE":6},"issue_authors":{"JWCook":155,"synrg":11,"arky":10,"niconoe":9,"nigelcharman":4,"abubelinha":3,"svshepherd":2,"AugustT":2,"aubreymoore":1,"peterdesmet":1,"FelipeSBarros":1,"nleguillarme":1,"jhuus":1,"jwidness":1,"dependabot[bot]":1,"sdjbrown":1,"lubianat":1,"DarrenKirby":1,"LucaCappelletti94":1,"agrosh24":1,"Gasp34":1,"willkuhn":1,"oolonek":1,"tghoward":1,"Cewein":1,"pleary":1,"mcalvera":1,"AEHamrick":1,"j-h-m":1},"pull_request_authors":{"JWCook":239,"dependabot[bot]":190,"DarrenKirby":6,"alterionisto":3,"eduramirezh":2,"LucaCappelletti94":2,"willkuhn":2,"RichardLitt":1,"synrg":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-10-29T00:00:18.463Z","repositories_count":11243475,"issues_count":34945556,"pull_requests_count":113355275,"authors_count":11042044,"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":{"bug":4,"docs":2,"enhancement":1,"logistics":1},"past_year_pull_request_labels_count":{"dependencies":23,"python":15,"github_actions":8,"docs":4,"enhancement":3,"bug":2},"past_year_issue_author_associations_count":{"CONTRIBUTOR":3,"NONE":2,"MEMBER":1},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":27,"MEMBER":7,"NONE":3},"past_year_issue_authors":{"synrg":2,"DarrenKirby":1,"jhuus":1,"JWCook":1,"nigelcharman":1},"past_year_pull_request_authors":{"dependabot[bot]":23,"JWCook":7,"DarrenKirby":4,"alterionisto":3},"maintainers":[{"login":"JWCook","count":394,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JWCook"},{"login":"niconoe","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/niconoe"},{"login":"pleary","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pleary"}],"active_maintainers":[{"login":"JWCook","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JWCook"}]},"events":{"total":{"CreateEvent":18,"ReleaseEvent":1,"IssuesEvent":16,"WatchEvent":13,"DeleteEvent":22,"IssueCommentEvent":38,"PushEvent":60,"PullRequestEvent":45,"ForkEvent":3},"last_year":{"CreateEvent":18,"ReleaseEvent":1,"IssuesEvent":16,"WatchEvent":13,"DeleteEvent":22,"IssueCommentEvent":38,"PushEvent":60,"PullRequestEvent":45,"ForkEvent":3}},"keywords":["api","api-client","biodiversity","biodiversity-data","biodiversity-informatics","citizen-science","inaturalist","python"],"dependencies":[{"ecosystem":"pypi","filepath":"poetry.lock","sha":null,"kind":"lockfile","created_at":"2022-07-29T12:49:30.518Z","updated_at":"2022-07-29T12:49:30.518Z","repository_link":"https://github.com/pyinat/pyinaturalist/blob/main/poetry.lock","dependencies":[{"id":507442048,"package_name":"alabaster","ecosystem":"pypi","requirements":"0.7.12","direct":false,"kind":"develop","optional":false},{"id":507442049,"package_name":"appnope","ecosystem":"pypi","requirements":"0.1.3","direct":false,"kind":"develop","optional":false},{"id":507442050,"package_name":"argcomplete","ecosystem":"pypi","requirements":"1.12.3","direct":false,"kind":"develop","optional":false},{"id":507442051,"package_name":"atomicwrites","ecosystem":"pypi","requirements":"1.4.1","direct":false,"kind":"develop","optional":false},{"id":507442052,"package_name":"attrs","ecosystem":"pypi","requirements":"21.4.0","direct":false,"kind":"develop","optional":false},{"id":507442053,"package_name":"babel","ecosystem":"pypi","requirements":"2.10.3","direct":false,"kind":"develop","optional":false},{"id":507442054,"package_name":"backcall","ecosystem":"pypi","requirements":"0.2.0","direct":false,"kind":"develop","optional":false},{"id":507442055,"package_name":"beautifulsoup4","ecosystem":"pypi","requirements":"4.11.1","direct":false,"kind":"develop","optional":false},{"id":507442056,"package_name":"bleach","ecosystem":"pypi","requirements":"5.0.1","direct":false,"kind":"develop","optional":false},{"id":507442057,"package_name":"cattrs","ecosystem":"pypi","requirements":"22.1.0","direct":false,"kind":"develop","optional":false},{"id":507442058,"package_name":"certifi","ecosystem":"pypi","requirements":"2022.6.15","direct":false,"kind":"develop","optional":false},{"id":507442059,"package_name":"cffi","ecosystem":"pypi","requirements":"1.15.1","direct":false,"kind":"develop","optional":false},{"id":507442060,"package_name":"cfgv","ecosystem":"pypi","requirements":"3.3.1","direct":false,"kind":"develop","optional":false},{"id":507442061,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"develop","optional":false},{"id":507442062,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.5","direct":false,"kind":"develop","optional":false},{"id":507442063,"package_name":"colorlog","ecosystem":"pypi","requirements":"6.6.0","direct":false,"kind":"develop","optional":false},{"id":507442064,"package_name":"commonmark","ecosystem":"pypi","requirements":"0.9.1","direct":false,"kind":"develop","optional":false},{"id":507442065,"package_name":"coverage","ecosystem":"pypi","requirements":"6.4.1","direct":false,"kind":"develop","optional":false},{"id":507442066,"package_name":"cryptography","ecosystem":"pypi","requirements":"37.0.4","direct":false,"kind":"develop","optional":false},{"id":507442067,"package_name":"decorator","ecosystem":"pypi","requirements":"5.1.1","direct":false,"kind":"develop","optional":false},{"id":507442068,"package_name":"defusedxml","ecosystem":"pypi","requirements":"0.7.1","direct":false,"kind":"develop","optional":false},{"id":507442069,"package_name":"distlib","ecosystem":"pypi","requirements":"0.3.4","direct":false,"kind":"develop","optional":false},{"id":507442070,"package_name":"docutils","ecosystem":"pypi","requirements":"0.17.1","direct":false,"kind":"develop","optional":false},{"id":507442071,"package_name":"entrypoints","ecosystem":"pypi","requirements":"0.4","direct":false,"kind":"develop","optional":false},{"id":507442072,"package_name":"exceptiongroup","ecosystem":"pypi","requirements":"1.0.0rc8","direct":false,"kind":"develop","optional":false},{"id":507442073,"package_name":"execnet","ecosystem":"pypi","requirements":"1.9.0","direct":false,"kind":"develop","optional":false},{"id":507442074,"package_name":"fastjsonschema","ecosystem":"pypi","requirements":"2.15.3","direct":false,"kind":"develop","optional":false},{"id":507442075,"package_name":"filelock","ecosystem":"pypi","requirements":"3.7.1","direct":false,"kind":"develop","optional":false},{"id":507442076,"package_name":"furo","ecosystem":"pypi","requirements":"2022.6.21","direct":false,"kind":"develop","optional":false},{"id":507442077,"package_name":"identify","ecosystem":"pypi","requirements":"2.5.1","direct":false,"kind":"develop","optional":false},{"id":507442078,"package_name":"idna","ecosystem":"pypi","requirements":"3.3","direct":false,"kind":"develop","optional":false},{"id":507442079,"package_name":"imagesize","ecosystem":"pypi","requirements":"1.4.1","direct":false,"kind":"develop","optional":false},{"id":507442080,"package_name":"importlib-metadata","ecosystem":"pypi","requirements":"4.12.0","direct":false,"kind":"develop","optional":false},{"id":507442081,"package_name":"importlib-resources","ecosystem":"pypi","requirements":"5.8.0","direct":false,"kind":"develop","optional":false},{"id":507442082,"package_name":"iniconfig","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"develop","optional":false},{"id":507442083,"package_name":"ipython","ecosystem":"pypi","requirements":"7.34.0","direct":false,"kind":"develop","optional":false},{"id":507442084,"package_name":"jedi","ecosystem":"pypi","requirements":"0.18.1","direct":false,"kind":"develop","optional":false},{"id":507442085,"package_name":"jeepney","ecosystem":"pypi","requirements":"0.8.0","direct":false,"kind":"develop","optional":false},{"id":507442086,"package_name":"jinja2","ecosystem":"pypi","requirements":"3.1.2","direct":false,"kind":"develop","optional":false},{"id":507442087,"package_name":"jsonschema","ecosystem":"pypi","requirements":"4.7.1","direct":false,"kind":"develop","optional":false},{"id":507442088,"package_name":"jupyter-client","ecosystem":"pypi","requirements":"7.3.4","direct":false,"kind":"develop","optional":false},{"id":507442089,"package_name":"jupyter-core","ecosystem":"pypi","requirements":"4.11.1","direct":false,"kind":"develop","optional":false},{"id":507442090,"package_name":"jupyterlab-pygments","ecosystem":"pypi","requirements":"0.2.2","direct":false,"kind":"develop","optional":false},{"id":507442091,"package_name":"keyring","ecosystem":"pypi","requirements":"23.6.0","direct":false,"kind":"develop","optional":false},{"id":507442092,"package_name":"linkify-it-py","ecosystem":"pypi","requirements":"1.0.3","direct":false,"kind":"develop","optional":false},{"id":507442093,"package_name":"livereload","ecosystem":"pypi","requirements":"2.6.3","direct":false,"kind":"develop","optional":false},{"id":507442094,"package_name":"markdown-it-py","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"develop","optional":false},{"id":507442095,"package_name":"markupsafe","ecosystem":"pypi","requirements":"2.1.1","direct":false,"kind":"develop","optional":false},{"id":507442096,"package_name":"matplotlib-inline","ecosystem":"pypi","requirements":"0.1.3","direct":false,"kind":"develop","optional":false},{"id":507442097,"package_name":"mdit-py-plugins","ecosystem":"pypi","requirements":"0.3.0","direct":false,"kind":"develop","optional":false},{"id":507442098,"package_name":"mdurl","ecosystem":"pypi","requirements":"0.1.1","direct":false,"kind":"develop","optional":false},{"id":507442099,"package_name":"mistune","ecosystem":"pypi","requirements":"0.8.4","direct":false,"kind":"develop","optional":false},{"id":507442100,"package_name":"myst-parser","ecosystem":"pypi","requirements":"0.17.2","direct":false,"kind":"develop","optional":false},{"id":507442101,"package_name":"nbclient","ecosystem":"pypi","requirements":"0.6.6","direct":false,"kind":"develop","optional":false},{"id":507442102,"package_name":"nbconvert","ecosystem":"pypi","requirements":"6.5.0","direct":false,"kind":"develop","optional":false},{"id":507442103,"package_name":"nbformat","ecosystem":"pypi","requirements":"5.4.0","direct":false,"kind":"develop","optional":false},{"id":507442104,"package_name":"nbsphinx","ecosystem":"pypi","requirements":"0.8.9","direct":false,"kind":"develop","optional":false},{"id":507442105,"package_name":"nest-asyncio","ecosystem":"pypi","requirements":"1.5.5","direct":false,"kind":"develop","optional":false},{"id":507442106,"package_name":"nodeenv","ecosystem":"pypi","requirements":"1.7.0","direct":false,"kind":"develop","optional":false},{"id":507442107,"package_name":"nox","ecosystem":"pypi","requirements":"2022.1.7","direct":false,"kind":"develop","optional":false},{"id":507442108,"package_name":"nox-poetry","ecosystem":"pypi","requirements":"1.0.1","direct":false,"kind":"develop","optional":false},{"id":507442109,"package_name":"packaging","ecosystem":"pypi","requirements":"21.3","direct":false,"kind":"develop","optional":false},{"id":507442110,"package_name":"pandocfilters","ecosystem":"pypi","requirements":"1.5.0","direct":false,"kind":"develop","optional":false},{"id":507442111,"package_name":"parso","ecosystem":"pypi","requirements":"0.8.3","direct":false,"kind":"develop","optional":false},{"id":507442112,"package_name":"pbr","ecosystem":"pypi","requirements":"5.9.0","direct":false,"kind":"develop","optional":false},{"id":507442113,"package_name":"pexpect","ecosystem":"pypi","requirements":"4.8.0","direct":false,"kind":"develop","optional":false},{"id":507442114,"package_name":"pickleshare","ecosystem":"pypi","requirements":"0.7.5","direct":false,"kind":"develop","optional":false},{"id":507442115,"package_name":"platformdirs","ecosystem":"pypi","requirements":"2.5.2","direct":false,"kind":"develop","optional":false},{"id":507442116,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"develop","optional":false},{"id":507442117,"package_name":"pre-commit","ecosystem":"pypi","requirements":"2.20.0","direct":false,"kind":"develop","optional":false},{"id":507442118,"package_name":"pretty-errors","ecosystem":"pypi","requirements":"1.2.25","direct":false,"kind":"develop","optional":false},{"id":507442119,"package_name":"prompt-toolkit","ecosystem":"pypi","requirements":"3.0.30","direct":false,"kind":"develop","optional":false},{"id":507442120,"package_name":"ptyprocess","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":"develop","optional":false},{"id":507442121,"package_name":"py","ecosystem":"pypi","requirements":"1.11.0","direct":false,"kind":"develop","optional":false},{"id":507442122,"package_name":"pycparser","ecosystem":"pypi","requirements":"2.21","direct":false,"kind":"develop","optional":false},{"id":507442123,"package_name":"pygments","ecosystem":"pypi","requirements":"2.12.0","direct":false,"kind":"develop","optional":false},{"id":507442124,"package_name":"pyparsing","ecosystem":"pypi","requirements":"3.0.9","direct":false,"kind":"develop","optional":false},{"id":507442125,"package_name":"pyrate-limiter","ecosystem":"pypi","requirements":"2.8.1","direct":false,"kind":"develop","optional":false},{"id":507442126,"package_name":"pyrsistent","ecosystem":"pypi","requirements":"0.18.1","direct":false,"kind":"develop","optional":false},{"id":507442127,"package_name":"pytest","ecosystem":"pypi","requirements":"7.1.2","direct":false,"kind":"develop","optional":false},{"id":507442128,"package_name":"pytest-asyncio","ecosystem":"pypi","requirements":"0.18.3","direct":false,"kind":"develop","optional":false},{"id":507442129,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"develop","optional":false},{"id":507442130,"package_name":"pytest-forked","ecosystem":"pypi","requirements":"1.4.0","direct":false,"kind":"develop","optional":false},{"id":507442131,"package_name":"pytest-xdist","ecosystem":"pypi","requirements":"2.5.0","direct":false,"kind":"develop","optional":false},{"id":507442132,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"2.8.2","direct":false,"kind":"develop","optional":false},{"id":507442133,"package_name":"python-forge","ecosystem":"pypi","requirements":"18.6.0","direct":false,"kind":"develop","optional":false},{"id":507442134,"package_name":"pytz","ecosystem":"pypi","requirements":"2022.1","direct":false,"kind":"develop","optional":false},{"id":507442135,"package_name":"pywin32","ecosystem":"pypi","requirements":"304","direct":false,"kind":"develop","optional":false},{"id":507442136,"package_name":"pywin32-ctypes","ecosystem":"pypi","requirements":"0.2.0","direct":false,"kind":"develop","optional":false},{"id":507442137,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0","direct":false,"kind":"develop","optional":false},{"id":507442138,"package_name":"pyzmq","ecosystem":"pypi","requirements":"23.2.0","direct":false,"kind":"develop","optional":false},{"id":507442139,"package_name":"requests","ecosystem":"pypi","requirements":"2.28.1","direct":false,"kind":"develop","optional":false},{"id":507442140,"package_name":"requests-cache","ecosystem":"pypi","requirements":"1.0.0a1","direct":false,"kind":"develop","optional":false},{"id":507442141,"package_name":"requests-mock","ecosystem":"pypi","requirements":"1.9.3","direct":false,"kind":"develop","optional":false},{"id":507442142,"package_name":"requests-ratelimiter","ecosystem":"pypi","requirements":"0.3.2","direct":false,"kind":"develop","optional":false},{"id":507442143,"package_name":"rich","ecosystem":"pypi","requirements":"12.5.1","direct":false,"kind":"develop","optional":false},{"id":507442144,"package_name":"secretstorage","ecosystem":"pypi","requirements":"3.3.2","direct":false,"kind":"develop","optional":false},{"id":507442145,"package_name":"setuptools","ecosystem":"pypi","requirements":"63.1.0","direct":false,"kind":"develop","optional":false},{"id":507442146,"package_name":"six","ecosystem":"pypi","requirements":"1.16.0","direct":false,"kind":"develop","optional":false},{"id":507442147,"package_name":"snowballstemmer","ecosystem":"pypi","requirements":"2.2.0","direct":false,"kind":"develop","optional":false},{"id":507442148,"package_name":"soupsieve","ecosystem":"pypi","requirements":"2.3.2.post1","direct":false,"kind":"develop","optional":false},{"id":507442149,"package_name":"sphinx","ecosystem":"pypi","requirements":"4.5.0","direct":false,"kind":"develop","optional":false},{"id":507442150,"package_name":"sphinx-autobuild","ecosystem":"pypi","requirements":"2021.3.14","direct":false,"kind":"develop","optional":false},{"id":507442151,"package_name":"sphinx-autodoc-typehints","ecosystem":"pypi","requirements":"1.18.3","direct":false,"kind":"develop","optional":false},{"id":507442152,"package_name":"sphinx-automodapi","ecosystem":"pypi","requirements":"0.14.1","direct":false,"kind":"develop","optional":false},{"id":507442153,"package_name":"sphinx-basic-ng","ecosystem":"pypi","requirements":"0.0.1a12","direct":false,"kind":"develop","optional":false},{"id":507442154,"package_name":"sphinx-copybutton","ecosystem":"pypi","requirements":"0.5.0","direct":false,"kind":"develop","optional":false},{"id":507442155,"package_name":"sphinx-inline-tabs","ecosystem":"pypi","requirements":"2022.1.2b11","direct":false,"kind":"develop","optional":false},{"id":507442156,"package_name":"sphinx-panels","ecosystem":"pypi","requirements":"0.6.0","direct":false,"kind":"develop","optional":false},{"id":507442157,"package_name":"sphinxcontrib-apidoc","ecosystem":"pypi","requirements":"0.3.0","direct":false,"kind":"develop","optional":false},{"id":507442158,"package_name":"sphinxcontrib-applehelp","ecosystem":"pypi","requirements":"1.0.2","direct":false,"kind":"develop","optional":false},{"id":507442159,"package_name":"sphinxcontrib-devhelp","ecosystem":"pypi","requirements":"1.0.2","direct":false,"kind":"develop","optional":false},{"id":507442160,"package_name":"sphinxcontrib-htmlhelp","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"develop","optional":false},{"id":507442161,"package_name":"sphinxcontrib-jsmath","ecosystem":"pypi","requirements":"1.0.1","direct":false,"kind":"develop","optional":false},{"id":507442162,"package_name":"sphinxcontrib-qthelp","ecosystem":"pypi","requirements":"1.0.3","direct":false,"kind":"develop","optional":false},{"id":507442163,"package_name":"sphinxcontrib-serializinghtml","ecosystem":"pypi","requirements":"1.1.5","direct":false,"kind":"develop","optional":false},{"id":507442164,"package_name":"tinycss2","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"develop","optional":false},{"id":507442165,"package_name":"toml","ecosystem":"pypi","requirements":"0.10.2","direct":false,"kind":"develop","optional":false},{"id":507442166,"package_name":"tomli","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":"develop","optional":false},{"id":507442167,"package_name":"tomlkit","ecosystem":"pypi","requirements":"0.11.1","direct":false,"kind":"develop","optional":false},{"id":507442168,"package_name":"tornado","ecosystem":"pypi","requirements":"6.2","direct":false,"kind":"develop","optional":false},{"id":507442169,"package_name":"traitlets","ecosystem":"pypi","requirements":"5.3.0","direct":false,"kind":"develop","optional":false},{"id":507442170,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.3.0","direct":false,"kind":"develop","optional":false},{"id":507442171,"package_name":"uc-micro-py","ecosystem":"pypi","requirements":"1.0.1","direct":false,"kind":"develop","optional":false},{"id":507442172,"package_name":"url-normalize","ecosystem":"pypi","requirements":"1.4.3","direct":false,"kind":"develop","optional":false},{"id":507442173,"package_name":"urllib3","ecosystem":"pypi","requirements":"1.26.10","direct":false,"kind":"develop","optional":false},{"id":507442174,"package_name":"virtualenv","ecosystem":"pypi","requirements":"20.15.1","direct":false,"kind":"develop","optional":false},{"id":507442175,"package_name":"wcwidth","ecosystem":"pypi","requirements":"0.2.5","direct":false,"kind":"develop","optional":false},{"id":507442176,"package_name":"webencodings","ecosystem":"pypi","requirements":"0.5.1","direct":false,"kind":"develop","optional":false},{"id":507442177,"package_name":"zipp","ecosystem":"pypi","requirements":"3.8.0","direct":false,"kind":"develop","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2022-07-29T12:49:30.678Z","updated_at":"2022-07-29T12:49:30.678Z","repository_link":"https://github.com/pyinat/pyinaturalist/blob/main/pyproject.toml","dependencies":[{"id":507445329,"package_name":"python","ecosystem":"pypi","requirements":"^3.7","direct":true,"kind":"runtime","optional":false},{"id":507445330,"package_name":"attrs","ecosystem":"pypi","requirements":"\u003e=21.2","direct":true,"kind":"runtime","optional":false},{"id":507445331,"package_name":"keyring","ecosystem":"pypi","requirements":"\u003e=22.3","direct":true,"kind":"runtime","optional":false},{"id":507445332,"package_name":"platformdirs","ecosystem":"pypi","requirements":"\u003e=2.5","direct":true,"kind":"runtime","optional":false},{"id":507445333,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"\u003e=2.0","direct":true,"kind":"runtime","optional":false},{"id":507445334,"package_name":"python-forge","ecosystem":"pypi","requirements":"\u003e=18.6","direct":true,"kind":"runtime","optional":false},{"id":507445335,"package_name":"requests","ecosystem":"pypi","requirements":"\u003e=2.22","direct":true,"kind":"runtime","optional":false},{"id":507445336,"package_name":"requests-cache","ecosystem":"pypi","requirements":"\u003e=1.0.0a1","direct":true,"kind":"runtime","optional":false},{"id":507445337,"package_name":"requests-ratelimiter","ecosystem":"pypi","requirements":"\u003e=0.3.2","direct":true,"kind":"runtime","optional":false},{"id":507445338,"package_name":"rich","ecosystem":"pypi","requirements":"\u003e=10.9","direct":true,"kind":"runtime","optional":false},{"id":507445339,"package_name":"furo","ecosystem":"pypi","requirements":"^2022.2.14.1","direct":true,"kind":"runtime","optional":false},{"id":507445340,"package_name":"ipython","ecosystem":"pypi","requirements":"^7.25.0","direct":true,"kind":"runtime","optional":false},{"id":507445341,"package_name":"linkify-it-py","ecosystem":"pypi","requirements":"^1.0.1","direct":true,"kind":"runtime","optional":false},{"id":507445342,"package_name":"myst-parser","ecosystem":"pypi","requirements":"^0.17.0","direct":true,"kind":"runtime","optional":false},{"id":507445343,"package_name":"nbsphinx","ecosystem":"pypi","requirements":"^0.8.5","direct":true,"kind":"runtime","optional":false},{"id":507445344,"package_name":"sphinx","ecosystem":"pypi","requirements":"^4.2.0","direct":true,"kind":"runtime","optional":false},{"id":507445345,"package_name":"sphinx-automodapi","ecosystem":"pypi","requirements":"^0.14","direct":true,"kind":"runtime","optional":false},{"id":507445346,"package_name":"sphinx-autodoc-typehints","ecosystem":"pypi","requirements":"^1.17","direct":true,"kind":"runtime","optional":false},{"id":507445347,"package_name":"sphinx-copybutton","ecosystem":"pypi","requirements":"\u003e=0.5","direct":true,"kind":"runtime","optional":false},{"id":507445348,"package_name":"sphinx-inline-tabs","ecosystem":"pypi","requirements":"^2022.1.2b11","direct":true,"kind":"runtime","optional":false},{"id":507445349,"package_name":"sphinx-panels","ecosystem":"pypi","requirements":"^0.6.0","direct":true,"kind":"runtime","optional":false},{"id":507445350,"package_name":"sphinxcontrib-apidoc","ecosystem":"pypi","requirements":"^0.3","direct":true,"kind":"runtime","optional":false},{"id":507445351,"package_name":"coverage","ecosystem":"pypi","requirements":"\u003e=6.3","direct":true,"kind":"develop","optional":false},{"id":507445352,"package_name":"nox","ecosystem":"pypi","requirements":"^2022.1.7","direct":true,"kind":"develop","optional":false},{"id":507445353,"package_name":"nox-poetry","ecosystem":"pypi","requirements":"^1.0.0","direct":true,"kind":"develop","optional":false},{"id":507445354,"package_name":"pre-commit","ecosystem":"pypi","requirements":"^2.19","direct":true,"kind":"develop","optional":false},{"id":507445355,"package_name":"pretty-errors","ecosystem":"pypi","requirements":"^1.2.23","direct":true,"kind":"develop","optional":false},{"id":507445356,"package_name":"pytest","ecosystem":"pypi","requirements":"^7.0","direct":true,"kind":"develop","optional":false},{"id":507445357,"package_name":"pytest-asyncio","ecosystem":"pypi","requirements":"^0.18.1","direct":true,"kind":"develop","optional":false},{"id":507445358,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"\u003e=3.0","direct":true,"kind":"develop","optional":false},{"id":507445359,"package_name":"pytest-xdist","ecosystem":"pypi","requirements":"\u003e=2.2","direct":true,"kind":"develop","optional":false},{"id":507445360,"package_name":"requests-mock","ecosystem":"pypi","requirements":"^1.8","direct":true,"kind":"develop","optional":false},{"id":507445361,"package_name":"sphinx-autobuild","ecosystem":"pypi","requirements":"\u003e=2021.3.14","direct":true,"kind":"develop","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/build.yml","sha":null,"kind":"manifest","created_at":"2023-02-01T00:47:24.461Z","updated_at":"2023-02-01T00:47:24.461Z","repository_link":"https://github.com/pyinat/pyinaturalist/blob/main/.github/workflows/build.yml","dependencies":[{"id":7284878780,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7284878781,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":7284878782,"package_name":"snok/install-poetry","ecosystem":"actions","requirements":"v1.3","direct":true,"kind":"composite","optional":false},{"id":7284878783,"package_name":"actions/cache","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7284878784,"package_name":"codecov/codecov-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7284878785,"package_name":"pre-commit/action","ecosystem":"actions","requirements":"v3.0.0","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/deploy.yml","sha":null,"kind":"manifest","created_at":"2023-02-01T00:47:24.516Z","updated_at":"2023-02-01T00:47:24.516Z","repository_link":"https://github.com/pyinat/pyinaturalist/blob/main/.github/workflows/deploy.yml","dependencies":[{"id":7284878789,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7284878790,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":7284878791,"package_name":"snok/install-poetry","ecosystem":"actions","requirements":"v1.3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"Dockerfile","sha":null,"kind":"manifest","created_at":"2023-02-01T00:47:24.570Z","updated_at":"2023-02-01T00:47:24.570Z","repository_link":"https://github.com/pyinat/pyinaturalist/blob/main/Dockerfile","dependencies":[{"id":7284878801,"package_name":"jxcook/pyinaturalist-notebook","ecosystem":"docker","requirements":"0.14","direct":true,"kind":"build","optional":false}]},{"ecosystem":"docker","filepath":"docker-compose.yml","sha":null,"kind":"manifest","created_at":"2023-02-01T00:47:24.636Z","updated_at":"2023-02-01T00:47:24.636Z","repository_link":"https://github.com/pyinat/pyinaturalist/blob/main/docker-compose.yml","dependencies":[{"id":7284878807,"package_name":"jxcook/pyinaturalist-notebook","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false}]}],"score":15.990109995126492,"created_at":"2023-09-18T13:11:03.703Z","updated_at":"2026-04-10T03:30:27.460Z","avatar_url":"https://github.com/pyinat.png","language":"Python","category":"Biosphere","sub_category":"Biodiversity Citizen Science","monthly_downloads":3912,"total_dependent_repos":16,"total_dependent_packages":5,"readme":"# pyinaturalist\n\n[![Build](https://github.com/pyinat/pyinaturalist/actions/workflows/build.yml/badge.svg)](https://github.com/pyinat/pyinaturalist/actions)\n[![Codecov](https://codecov.io/gh/pyinat/pyinaturalist/branch/main/graph/badge.svg)](https://codecov.io/gh/pyinat/pyinaturalist)\n[![Documentation](https://img.shields.io/readthedocs/pyinaturalist/stable)](https://pyinaturalist.readthedocs.io)\n\n[![PyPI](https://img.shields.io/pypi/v/pyinaturalist?color=blue)](https://pypi.org/project/pyinaturalist)\n[![Conda](https://img.shields.io/conda/vn/conda-forge/pyinaturalist?color=blue)](https://anaconda.org/conda-forge/pyinaturalist)\n[![PyPI - Python Versions](https://img.shields.io/pypi/pyversions/pyinaturalist)](https://pypi.org/project/pyinaturalist)\n\n[![Run with Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/pyinat/pyinaturalist/main?urlpath=lab/tree/examples)\n\n\u003cbr/\u003e\n\n[![](docs/images/pyinaturalist_logo_med.png)](https://pyinaturalist.readthedocs.io)\n\n# Introduction\n[**iNaturalist**](https://www.inaturalist.org) is a community science platform that helps people\nget involved in the natural world by observing and identifying the living things around them.\nCollectively, the community produces a rich source of global biodiversity data that can be valuable\nto anyone from hobbyists to scientists.\n\n**pyinaturalist** is a client for the [iNaturalist API](https://api.inaturalist.org/v1) that makes\nthese data easily accessible in the python programming language.\n\n- [Features](#features)\n- [Quickstart](#quickstart)\n- [Next Steps](#next-steps)\n- [Feedback](#feedback)\n- [Related Projects](#related-projects)\n\n## Features\n* ➡️ **Easier requests:** Simplified request formats, easy pagination, and complete request\n  parameter type annotations for better IDE integration\n* ⬅️ **Convenient responses:** Type conversions to the things you would expect in python, and an\n  optional object-oriented interface for response data\n* 🔒 **Security:** Keyring integration for secure credential storage\n* 📗 **Docs:** Example requests, responses, scripts, and Jupyter notebooks to help get you started\n* 💚 **Responsible use:** Follows the\n  [API Recommended Practices](https://www.inaturalist.org/pages/api+recommended+practices)\n  by default, so you can be nice to the iNaturalist servers and not worry about rate-limiting errors\n* 🧪 **Testing:** A dry-run testing mode to preview your requests before potentially modifying data\n\n### Supported Endpoints\nMany of the most relevant API endpoints are supported, including:\n* 📝 Annotations and observation fields\n* 🆔 Identifications\n* 💬 Messages\n* 👀 Observations (multiple formats)\n* 📷 Observation photos + sounds\n* 📊 Observation histograms, observers, identifiers, life lists, and species counts\n* 📍 Places\n* 👥 Projects\n* 🐦 Species\n* 👤 Users\n\n## Quickstart\nHere are usage examples for some of the most commonly used features.\n\nFirst, install with pip:\n```bash\npip install pyinaturalist\n```\n\nThen, import the main API functions:\n```python\nfrom pyinaturalist import *\n```\n\n### Search observations\nLet's start by searching for all your own observations. There are\n[numerous fields you can search on](https://pyinaturalist.readthedocs.io/en/stable/modules/pyinaturalist.v1.observations.html#pyinaturalist.v1.observations.create_observation), but we'll just use `user_id` for now:\n```python\n\u003e\u003e\u003e observations = get_observations(user_id='my_username')\n```\n\nThe full response will be in JSON format, but we can use `pyinaturalist.pprint()` to print out a summary:\n```python\n\u003e\u003e\u003e for obs in observations['results']:\n\u003e\u003e\u003e    pprint(obs)\nID         Taxon                               Observed on   User     Location\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n117585709  Genus: Hyoscyamus (henbanes)        May 18, 2022  niconoe  Calvi, France\n117464920  Genus: Omophlus                     May 17, 2022  niconoe  Galéria, France\n117464393  Genus: Briza (Rattlesnake Grasses)  May 17, 2022  niconoe  Galéria, France\n...\n```\n\nYou can also get\n[observation counts by species](https://pyinaturalist.readthedocs.io/en/stable/modules/pyinaturalist.v1.observations.html#pyinaturalist.v1.observations.get_observation_species_counts).\nOn iNaturalist.org, this information can be found on the 'Species' tab of search results.\nFor example, to get species counts of all your own research-grade observations:\n```python\n\u003e\u003e\u003e counts = get_observation_species_counts(user_id='my_username', quality_grade='research')\n\u003e\u003e\u003e pprint(counts)\n ID     Rank      Scientific name               Common name             Count\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n47934   species   🐛 Libellula luctuosa         Widow Skimmer           7\n48627   species   🌻 Echinacea purpurea         Purple Coneflower       6\n504060  species   🍄 Pleurotus citrinopileatus  Golden Oyster Mushroom  6\n...\n```\n\nAnother useful format is the\n[observation histogram](https://pyinaturalist.readthedocs.io/en/stable/modules/pyinaturalist.v1.observations.html#pyinaturalist.v1.observations.get_observation_histogram),\nwhich shows the number of observations over a given interval. The default is `month_of_year`:\n```python\n\u003e\u003e\u003e histogram = get_observation_histogram(user_id='my_username')\n\u003e\u003e\u003e print(histogram)\n{\n    1: 8,  # January\n    2: 1,  # February\n    3: 19, # March\n    ...,   # etc.\n}\n```\n\n### Create and update observations\nTo create or modify observations, you will first need to log in.\nThis requires creating an [iNaturalist app](https://www.inaturalist.org/oauth/applications/new),\nwhich will be used to get an access token.\n```python\ntoken = get_access_token(\n    username='my_username',\n    password='my_password',\n    app_id='my_app_id',\n    app_secret='my_app_secret',\n)\n```\nSee [Authentication](https://pyinaturalist.readthedocs.io/en/stable/authentication.md)\nfor more options including environment variables, keyrings, and password managers.\n\nNow we can [create a new observation](https://pyinaturalist.readthedocs.io/en/stable/modules/pyinaturalist.v1.observations.html#pyinaturalist.v1.observations.create_observation):\n```python\nfrom datetime import datetime\n\nresponse = create_observation(\n    taxon_id=54327,  # Vespa Crabro\n    observed_on_string=datetime.now(),\n    time_zone='Brussels',\n    description='This is a free text comment for the observation',\n    tag_list='wasp, Belgium',\n    latitude=50.647143,\n    longitude=4.360216,\n    positional_accuracy=50,  # GPS accuracy in meters\n    access_token=token,\n    photos=['~/observations/wasp1.jpg', '~/observations/wasp2.jpg'],\n    sounds=['~/observations/recording.mp3'],\n)\n\n# Save the new observation ID\nnew_observation_id = response[0]['id']\n```\n\nWe can then [update the observation](https://pyinaturalist.readthedocs.io/en/stable/modules/pyinaturalist.v1.observations.html#pyinaturalist.v1.observations.update_observation) information, photos, or sounds:\n```python\nupdate_observation(\n    new_observation_id,\n    access_token=token,\n    description='updated description !',\n    photos='~/observations/wasp_nest.jpg',\n    sounds='~/observations/wasp_nest.mp3',\n)\n```\n\n### Search species\nLet's say you partially remember either a genus or family name that started with **'vespi'**-something.\nThe [taxa endpoint](https://pyinaturalist.readthedocs.io/en/stable/modules/pyinaturalist.v1.taxa.html#pyinaturalist.v1.taxa.get_taxa)\ncan be used to search by name, rank, and several other criteria\n```python\n\u003e\u003e\u003e response = get_taxa(q='vespi', rank=['genus', 'family'])\n```\n\nAs with observations, there is a lot of information in the response, but we'll print just a few basic details:\n```python\n\u003e\u003e\u003e pprint(response)\n[52747] Family: Vespidae (Hornets, Paper Wasps, Potter Wasps, and Allies)\n[92786] Genus: Vespicula\n[84737] Genus: Vespina\n...\n```\n\n## Next Steps\nFor more information, see:\n\n* [User Guide](https://pyinaturalist.readthedocs.io/en/stable/user_guide/index.html):\n  introduction and general features that apply to most endpoints\n* [Endpoint Summary](https://pyinaturalist.readthedocs.io/en/stable/endpoints.html):\n  a complete list of endpoints wrapped by pyinaturalist\n* [Examples](https://pyinaturalist.readthedocs.io/en/stable/examples.html):\n  data visualizations and other examples of things to do with iNaturalist data\n* [Reference](https://pyinaturalist.readthedocs.io/en/stable/reference.html): Detailed API documentation\n* [Contributing Guide](https://pyinaturalist.readthedocs.io/en/stable/contributing.html):\n  development details for anyone interested in contributing to pyinaturalist\n* [History](https://github.com/pyinat/pyinaturalist/blob/dev/HISTORY.md):\n  details on past and current releases\n* [Issues](https://github.com/pyinat/pyinaturalist/issues): planned \u0026 proposed features\n\n## Feedback\nIf you have any problems, suggestions, or questions about pyinaturalist, you are welcome to [create an issue](https://github.com/pyinat/pyinaturalist/issues/new/choose) or [discussion](https://github.com/orgs/pyinat/discussions). Also, **PRs are welcome!**\n\n**Note:** pyinaturalist is developed by members of the iNaturalist community, and is not endorsed by\niNaturalist.org or the California Academy of Sciences. If you have non-python-specific questions\nabout the iNaturalist API or iNaturalist in general, the\n[iNaturalist Community Forum](https://forum.inaturalist.org/) is the best place to start.\n\n## Related Projects\nOther python projects related to iNaturalist:\n\n* [naturtag](https://github.com/pyinat/naturtag): A desktop application for tagging image files with iNaturalist taxonomy \u0026 observation metadata\n* [pyinaturalist-convert](https://github.com/pyinat/pyinaturalist-convert): Tools to convert observation data to and from a variety of useful formats\n* [pyinaturalist-notebook](https://github.com/pyinat/pyinaturalist-notebook): Jupyter notebook Docker image for pyinaturalist\n* [dronefly](https://github.com/dronefly-garden/dronefly): A Discord bot with iNaturalist integration, used by the iNaturalist Discord server.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["birding","dwc","taxonomy","ebird","gbif","invasive-species","biodiversity-standards","oscibio","aeroecology"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/65385","html_url":"https://ost.ecosyste.ms/projects/65385"}