# API changes with CoL XR

**URL:** <https://discourse.gbif.org/t/api-changes-with-col-xr/6397>\
**Category:** Data Use\
**Tags:** taxonomy\
**Created:** [June 23, 2026, 8:58am UTC](https://discourse.gbif.org/t/api-changes-with-col-xr/6397 "2026-06-23T08:58:48Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![larsgw](https://sea1.discourse-cdn.com/gbif1/user_avatar/discourse.gbif.org/larsgw/32/715_2.png) [@larsgw](https://discourse.gbif.org/u/larsgw)\
**Post date:** [June 23, 2026, 8:58am UTC](https://discourse.gbif.org/t/api-changes-with-col-xr/6397/1 "2026-06-23T08:58:48Z")

</div>

First of all, congrats on the launch and thanks for all the hard work!

I was wondering what the plans are for the API regarding the taxonomy changes. I maintain a database ([identification-resources.github.io](https://identification-resources.github.io/)) and a number of tools (e.g. [github.com/larsgw/biodiversity-matcher](https://github.com/larsgw/biodiversity-matcher)) where I use the GBIF Backbone Taxonomy, and I want to be prepared for what needs to change and when.

1. How long will the `/v1/species` and `/v1/occurrence` APIs keep working with the GBIF Backbone Taxonomy identifiers?
2. Will the occurrence data in the v1 API keep updating?
3. Is there (or will there be) a public, stable API for taxonomy info in GBIF that can be called with CoL XR identifiers? Or should I use ChecklistBank directly?
4. Is the mapping between the GBIF Backbone Taxonomy and CoL XR available somewhere?

I’ve also noticed the redirects from the GBIF Backbone Taxonomy to CoL XR are not fully complete. For example, [https://www.gbif.org/species/9650](https://www.gbif.org/species/9650) ([https://old.gbif.org/species/9650](https://old.gbif.org/species/9650)) does not redirect to [https://www.gbif.org/taxon/BXWJD](https://www.gbif.org/taxon/BXWJD). Is this something that can be amended at a later point? Are there statistics on the amount of unmapped taxa?

---

<div class="post-metadata">

**Author:** ![markus](https://sea1.discourse-cdn.com/gbif1/user_avatar/discourse.gbif.org/markus/32/411_2.png) [@markus](https://discourse.gbif.org/u/markus)\
**Post date:** [June 23, 2026, 9:34am UTC](https://discourse.gbif.org/t/api-changes-with-col-xr/6397/2 "2026-06-23T09:34:40Z")

</div>

1. I don’t know, but expect at least one year and likely longer. But at least for the species v1 API do not expect and fresh content, we will stop indexing new data at some point and expose it as read only
2. I believe so, but I am not the best to ask
3. yes. Right now it is exposed as experimental as we want to give us the freedom to potentially apply some changes. But it has been tested a lot and is what drives the new portal, so I would expect only minimal changes if any. It is described here: [https://techdocs.gbif-test.org/en/openapi/v2/taxon](https://techdocs.gbif-test.org/en/openapi/v2/taxon)  
But on prod we expose it as [https://api.gbif-dev.org/v2/experimental/taxon/7ddf754f-d193-4cc9-b351-99906754a03b/CS5HF](https://api.gbif-dev.org/v2/experimental/taxon/7ddf754f-d193-4cc9-b351-99906754a03b/CS5HF)
4. I just produces a mapping file for GBIF → COL: [https://download.checklistbank.org/col/gbif/README.html](https://download.checklistbank.org/col/gbif/README.html)  
I am still reviewing the gaps to see if we can improve the mapping, but for the majority it should be useful already.

---

<div class="post-metadata">

**Author:** ![markus](https://sea1.discourse-cdn.com/gbif1/user_avatar/discourse.gbif.org/markus/32/411_2.png) [@markus](https://discourse.gbif.org/u/markus)\
**Post date:** [June 23, 2026, 9:35am UTC](https://discourse.gbif.org/t/api-changes-with-col-xr/6397/3 "2026-06-23T09:35:38Z")

</div>

We are also working on better redirects. We know they are inferior to our matching, so I hope we can get sth changed very soon.

---

<div class="post-metadata">

**Author:** ![markus](https://sea1.discourse-cdn.com/gbif1/user_avatar/discourse.gbif.org/markus/32/411_2.png) [@markus](https://discourse.gbif.org/u/markus)\
**Post date:** [June 23, 2026, 9:38am UTC](https://discourse.gbif.org/t/api-changes-with-col-xr/6397/4 "2026-06-23T09:38:09Z")

</div>

statistics for the mapping file (which should be better than the current redirect) are here: [GBIF Backbone → COL 26.5 XR mapping — analysis](https://download.checklistbank.org/col/gbif/gbif-col265-analysis.html)

---

<div class="post-metadata">

**Author:** ![larsgw](https://sea1.discourse-cdn.com/gbif1/user_avatar/discourse.gbif.org/larsgw/32/715_2.png) [@larsgw](https://discourse.gbif.org/u/larsgw)\
**Post date:** [June 23, 2026, 12:36pm UTC](https://discourse.gbif.org/t/api-changes-with-col-xr/6397/5 "2026-06-23T12:36:03Z")

</div>

Wonderful, thanks for the info!

---

<div class="post-metadata">

**Author:** ![larsgw](https://sea1.discourse-cdn.com/gbif1/user_avatar/discourse.gbif.org/larsgw/32/715_2.png) [@larsgw](https://discourse.gbif.org/u/larsgw)\
**Post date:** [July 16, 2026, 6:12pm UTC](https://discourse.gbif.org/t/api-changes-with-col-xr/6397/6 "2026-07-16T18:12:28Z")

</div>

@markus Is it possible for me to easily generate a mapping file like this myself?

I would like to have the mappings between [https://www.gbif.org/dataset/4dd32523-a3a3-43b7-84df-4cda02f15cf7](https://www.gbif.org/dataset/4dd32523-a3a3-43b7-84df-4cda02f15cf7) and the latest COL XR. This would be possible with the v2 API `/taxon/{datasetKey}/{taxonKey}/related` but only for a single taxon at a time. I previously used the v1 API `/species?datasetKey={datasetKey}` which worked well enough, but it still uses the GBIF Backbone Taxonomy. The semi-equivalent `/taxon/search/{datasetKey}` does not include COL identifiers.

---

<div class="post-metadata">

**Author:** ![markus](https://sea1.discourse-cdn.com/gbif1/user_avatar/discourse.gbif.org/markus/32/411_2.png) [@markus](https://discourse.gbif.org/u/markus)\
**Post date:** [July 20, 2026, 11:47am UTC](https://discourse.gbif.org/t/api-changes-with-col-xr/6397/7 "2026-07-20T11:47:31Z")

</div>

better use the CLB API directly. the GBIF related resource is not made for bulk access.

Easiest is to go to [ChecklistBank](https://www.checklistbank.org/tools/name-match)

pick the latest XR as the target to match against (default), turn on Asynchronous mode and “Choose dataset in ChecklistBank” with your list to map. Then submit the job and you’ll get a full list matching by email after a while.

 ![image](https://global.discourse-cdn.com/gbif1/original/2X/7/75e42e6c3d3bd8ca95a1585cd3fb787f93725807.png)
