{"id":13724518,"url":"https://github.com/gbif/pygbif","last_synced_at":"2026-03-17T20:05:02.971Z","repository":{"id":25232636,"uuid":"28657166","full_name":"gbif/pygbif","owner":"gbif","description":"GBIF Python client","archived":false,"fork":false,"pushed_at":"2026-01-08T13:04:40.000Z","size":23267,"stargazers_count":142,"open_issues_count":35,"forks_count":37,"subscribers_count":15,"default_branch":"master","last_synced_at":"2026-02-04T03:05:47.569Z","etag":null,"topics":["api","biodiversity","data","ecology","gbif"],"latest_commit_sha":null,"homepage":"https://pygbif.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"puppetlabs/puppetlabs-vcsrepo","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gbif.png","metadata":{"files":{"readme":"README.rst","changelog":"Changelog.rst","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-12-31T05:36:27.000Z","updated_at":"2026-01-28T05:47:08.000Z","dependencies_parsed_at":"2024-03-12T11:57:11.908Z","dependency_job_id":"91c288fc-cf8d-4832-8b64-43d5f164c456","html_url":"https://github.com/gbif/pygbif","commit_stats":{"total_commits":292,"total_committers":18,"mean_commits":16.22222222222222,"dds":"0.31506849315068497","last_synced_commit":"dd7f89c62adc9f67f4a6f610de449e24af08ea81"},"previous_names":["sckott/pygbif"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/gbif/pygbif","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbif%2Fpygbif","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbif%2Fpygbif/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbif%2Fpygbif/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbif%2Fpygbif/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gbif","download_url":"https://codeload.github.com/gbif/pygbif/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbif%2Fpygbif/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30630042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T17:32:55.572Z","status":"ssl_error","status_checked_at":"2026-03-17T17:32:38.732Z","response_time":56,"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"}},"keywords":["api","biodiversity","data","ecology","gbif"],"created_at":"2024-08-03T01:01:58.601Z","updated_at":"2026-03-17T20:05:02.965Z","avatar_url":"https://github.com/gbif.png","language":"Python","funding_links":[],"categories":["Python","Biosphere"],"sub_categories":["Biodiversity Data Access and Management"],"readme":"pygbif\r\n======\r\n\r\n|pypi| |docs| |ghactions| |coverage| |black|\r\n\r\nPython client for the `GBIF API \u003chttps://www.gbif.org/developer/summary\u003e`_\r\n\r\n`Source on GitHub at gbif/pygbif \u003chttps://github.com/gbif/pygbif\u003e`_\r\n\r\nOther GBIF clients:\r\n\r\n* R: `rgbif`, `ropensci/rgbif \u003chttps://github.com/ropensci/rgbif\u003e`_\r\n* Ruby: `gbifrb`, `sckott/gbifrb \u003chttps://github.com/sckott/gbifrb\u003e`_\r\n* PHP: `php-gbif`, `restelae/php-gbif \u003chttps://gitlab.res-telae.cat/restelae/php-gbif\u003e`_\r\n\r\nContributing: `CONTRIBUTING.md \u003chttps://github.com/gbif/pygbif/blob/master/.github/CONTRIBUTING.md\u003e`_\r\n\r\nInstallation\r\n============\r\n\r\nStable from pypi\r\n\r\n.. code-block:: console\r\n\r\n    pip install pygbif\r\n\r\nDevelopment version\r\n\r\n.. code-block:: console\r\n\r\n    [sudo] pip install git+git://github.com/gbif/pygbif.git#egg=pygbif\r\n\r\n\r\n`pygbif` is split up into modules for each of the major groups of API methods.\r\n\r\n* Registry - Datasets, Nodes, Installations, Networks, Organizations\r\n* Species - Taxonomic names\r\n* Occurrences - Occurrence data, including the download API\r\n* Maps - Maps, get raster maps from GBIF as png or mvt\r\n\r\nYou can import the entire library, or each module individually as needed.\r\n\r\nIn addition there is a utils module, currently with one method: `wkt_rewind`, and\r\na `caching` method to manage whether HTTP requests are cached or not. See `?pygbif.caching`.\r\n\r\nRegistry module\r\n===============\r\n\r\nregistry module API:\r\n\r\n* `organizations`\r\n* `nodes`\r\n* `networks`\r\n* `installations`\r\n* `datasets`\r\n* `dataset_metrics`\r\n* `dataset_suggest`\r\n* `dataset_search`\r\n\r\nExample usage:\n\r\n.. code-block:: python\r\n\r\n    from pygbif import registry\r\n    registry.dataset_metrics(uuid='3f8a1297-3259-4700-91fc-acc4170b27ce')\r\n\r\nSpecies module\r\n==============\r\n\r\nspecies module API:\r\n\r\n* `name_backbone`\r\n* `name_suggest`\r\n* `name_usage`\r\n* `name_lookup`\r\n* `name_parser`\r\n\r\nExample usage:\r\n\r\n.. code-block:: python\r\n\r\n    from pygbif import species\r\n    species.name_suggest(q='Puma concolor')\r\n\r\nOccurrences module\r\n==================\r\n\r\noccurrences module API:\r\n\r\n* `search`\r\n* `get`\r\n* `get_verbatim`\r\n* `get_fragment`\r\n* `count`\r\n* `count_basisofrecord`\r\n* `count_year`\r\n* `count_datasets`\r\n* `count_countries`\r\n* `count_schema`\r\n* `count_publishingcountries`\r\n* `download`\r\n* `download_meta`\r\n* `download_list`\r\n* `download_get`\r\n* `download_citation`\r\n* `download_describe`\r\n* `download_sql`\r\n\r\nExample usage:\r\n\r\n.. code-block:: python\r\n\r\n    from pygbif import occurrences as occ\r\n    occ.search(taxonKey = 3329049)\r\n    occ.get(key = 252408386)\r\n    occ.count(isGeoreferenced = True)\r\n    occ.download('basisOfRecord = PRESERVED_SPECIMEN')\r\n    occ.download('taxonKey = 3119195')\r\n    occ.download('decimalLatitude \u003e 50')\r\n    occ.download_list(user = \"sckott\", limit = 5)\r\n    occ.download_meta(key = \"0000099-140929101555934\")\r\n    occ.download_get(\"0000066-140928181241064\")\r\n    occ.download_citation(\"0002526-241107131044228\")\r\n    occ.download_describe(\"simpleCsv\")\n    occ.download_sql(\"SELECT gbifid,countryCode FROM occurrence WHERE genusKey = 2435098\")\n\n.. note::\n    Download endpoints require GBIF credentials.\n    Set them as environment variables:\n\n    .. code-block:: bash\n\n        export GBIF_USER=\"your_gbif_username\"\n        export GBIF_PWD=\"your_gbif_password\"\n\n    You can also pass credentials directly via ``user=`` and ``pwd=`` arguments.\n\r\nMaps module\r\n===========\r\n\r\nmaps module API:\r\n\r\n* `map`\r\n\r\nExample usage:\r\n\r\n.. code-block:: python\r\n\r\n    from pygbif import maps\r\n    out = maps.map(taxonKey = 212, year = 1998, bin = \"hex\",\r\n           hexPerTile = 30, style = \"classic-noborder.poly\")\r\n    out.response\r\n    out.path\r\n    out.img\r\n    out.plot()\r\n\r\n.. image:: https://github.com/gbif/pygbif/raw/master/gbif_map.png\r\n   :width: 25%\r\n\r\nutils module\r\n============\r\n\r\nutils module API:\r\n\r\n* `wkt_rewind`\r\n\r\nExample usage:\r\n\r\n.. code-block:: python\r\n\r\n    from pygbif import utils\r\n    x = 'POLYGON((144.6 13.2, 144.6 13.6, 144.9 13.6, 144.9 13.2, 144.6 13.2))'\r\n    utils.wkt_rewind(x)\r\n\r\n\r\n\r\nContributors\r\n============\r\n\r\n* `Scott Chamberlain \u003chttps://github.com/sckott\u003e`_\r\n* `Robert Forkel \u003chttps://github.com/xrotwang\u003e`_\r\n* `Jan Legind \u003chttps://github.com/jlegind\u003e`_\r\n* `Stijn Van Hoey \u003chttps://github.com/stijnvanhoey\u003e`_\r\n* `Peter Desmet \u003chttps://github.com/peterdesmet\u003e`_\r\n* `Nicolas Noé \u003chttps://github.com/niconoe\u003e`_\r\n\r\nMeta\r\n====\r\n\r\n* License: MIT, see `LICENSE file \u003cLICENSE\u003e`_\r\n* Please note that this project is released with a `Contributor Code of Conduct \u003cCONDUCT.md\u003e`_. By participating in this project you agree to abide by its terms.\r\n\r\n.. |pypi| image:: https://img.shields.io/pypi/v/pygbif.svg\r\n   :target: https://pypi.python.org/pypi/pygbif\r\n\r\n.. |docs| image:: https://readthedocs.org/projects/pygbif/badge/?version=latest\r\n   :target: http://pygbif.rtfd.org/\r\n\r\n.. |ghactions| image:: https://github.com/gbif/pygbif/workflows/Python/badge.svg\r\n   :target: https://github.com/gbif/pygbif/actions?query=workflow%3APython\r\n\r\n.. |coverage| image:: https://codecov.io/gh/gbif/pygbif/branch/master/graph/badge.svg?token=frXPREGk1D\r\n   :target: https://codecov.io/gh/gbif/pygbif\r\n\r\n.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg\r\n   :target: https://github.com/psf/black\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgbif%2Fpygbif","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgbif%2Fpygbif","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgbif%2Fpygbif/lists"}