How to use iNaturalist's Search URLs - wiki part 1 of 2

part 2 here

Background

The Explore page (aka Observations search) at https://www.inaturalist.org/observations is the primary way for iNaturalist users to search for a set of observations. The page has multiple filters available in the user interface that one can use. Each time a filter is applied, you will notice the search URL (AKA web address) changes. For example, a search for all snake observations…

…creates this URL: https://www.inaturalist.org/observations?place_id=any&taxon_id=85553

This URL is basically a set of search instructions for iNaturalist and it will always show all verifiable snake observations worldwide if you paste it into a browser (try it!).

In order to keep the user interface from containing an overwhelming number of search parameters, editing the URL is the only way to access some of these results. What follows are examples of different URLs you can use to create more complicated searches than are available through the user interface. And remember, once you have a search you like, you can always bookmark the URL to save the search.

Because this is a wiki post, feel free to add your own examples! (If the Table of Contents changes, please be sure to replicate those changes in Part 2, and at the bottom of Part 1 if topics in Part 2 are involved.)


NOTES:

  • The search methods below are only for Observations in explore or identify mode. Most will work in both contexts, but some may only work in one context or the other. Most can be combined in one search URL.
  • Searches may return fewer results than expected unless you first override certain default filters (quality_grade=needs_id, reviewed=false in Identify; verifiable=true in Explore; default place in either). Any or all these defaults can be overridden using the existing Filters window. To ensure that no default filters are limiting results you can also manually add the following to any search URL:
    &quality_grade=any&reviewed=any&verifiable=any&place_id=any
  • Because these URL parameters are based on the API, further information may be found in the API documentation

Contents (part 1)

WHAT (taxa and identifications)
Search for multiple taxa
Search multiple taxa using a list
Search for single taxon by name, synonym, or common name
Search for exact taxon (no descendants)
Search by active identification(s)
Search for observations that have no identifications
Search by taxon status (introduced, native, threatened)
WHERE (places and geography)
Search multiple places
Search by bounding box or circle
Search by location (positional) accuracy
Search by geoprivacy
Search for observations with or without georeferenced coordinates
Search for mappable/unmappable observations
WHEN (dates and times)
Search by date with time
Search by month(s) of year or day(s) of month

Contents (part 2)

WHO (observers and identifiers)
Search multiple observers
Search by identifier(s)
Search by account age (in weeks)
Search by multiple user license types
Other observation properties
Search for observations with or without media (photos, sounds)
Include both Captive and Wild observations
Search by observation numbers (id numbers)
Search for observation fields and values
Search for Annotations
Search by Description, Tag, Name, Place
Project-related queries
Search for Observations from iOS, Android, or Seek apps
More tools and tips
Search by exclusions (not place, not taxon, not observer, etc.)
Sort by Dates, Faves, or Randomly
Look up ID numbers
Change number of results per page
Change page language/locale


Search for multiple taxa

We’ll start off with something simple.

You’ll notice the last part of the URL above says taxon_id=85553. That number is iNaturalist’s ID for the taxon Serpentes. You can always find that number by going to the taxon’s page and looking at the URL (e.g. https://www.inaturalist.org/taxa/85553-Serpentes for Serpentes) or searching for it on Explore and looking at the URL.

So if you want to search for more than one taxon at a time, you can edit that URL to include multiple taxon IDs. Let’s say I wanted to search for all snakes and all crocodilians (https://www.inaturalist.org/taxa/26039-Crocodylia). I will have to change taxon_id to taxon_ids and I can add another taxon number to it by using a comma, so I would end up with:

https://www.inaturalist.org/observations?place_id=any&taxon_ids=85553,26039

You can append more taxon IDs to this URL to search for more taxa. For example, here are all snakes, crocodilians, and nudibranchs:

https://www.inaturalist.org/observations?place_id=any&taxon_ids=85553,26039,47113

You can also exclude taxa by using &without_taxon_id=. For example, all snakes, crocodilians, and nudibranchs, but without vipers:

https://www.inaturalist.org/observations?place_id=any&taxon_ids=85553,26039,47113&without_taxon_id=30667

Search multiple taxa using a List

You can use Lists to restrict a search to particular taxa. For example, https://www.inaturalist.org/lists/1139967-quickspp is a list that is already set up. Using &list_id=XXXX restricts the search to the taxa in XXXX list, so https://www.inaturalist.org/observations?list_id=1139967 brings back only results from the list linked above.

Search for single taxon by name, synonym, or common name

Use &taxon_name=, omit any rank designations

Search for exact taxon (no descendants)

(works in Identify only)

If you want to search for observations only at an exact taxon, you can use &exact_taxon_id= in Identify mode. This is essentially equivalent to searching for that taxon, but also using the Rank filter for the rank of that taxon, i.e. it will not return observations of descendants. So this returns observations of Aves, but not identified to family, genus, species, etc.:
https://www.inaturalist.org/observations/identify?exact_taxon_id=3

Unlike a Filters search, however, you can show multiple exact taxa by separating them with commas. To see observations identified as Birds or Mammals (but not a descendant thereof) use
https://www.inaturalist.org/observations/identify?exact_taxon_id=3,40151

If you want to exclude one or more exact taxa, but keep their descendants, you can use &without_direct_taxon_id=. This is all snakes except observations at the exact rank of vipers or pythons:
https://www.inaturalist.org/observations/identify?taxon_ids=85553&without_direct_taxon_id=30667,67532

Search by active identification(s)

To find observations to which a particular ID has been added (even if that is not the consensus ID), use ident_taxon_id=.

For example, this should show observations which have an active Dysdera crocata ID, a commonly misidentified spider.

https://www.inaturalist.org/observations?ident_taxon_id=68912

You can also string together multiple taxa with ident_taxon_id_exclusive=. For example, https://www.inaturalist.org/observations?ident_taxon_id_exclusive=46020,46017 will bring back observations that have identifications of both Sciurus carolinensis and Sciurus niger. And https://www.inaturalist.org/observations?ident_taxon_id_exclusive=46020,46017,46023 will return observations with IDs of S. carolinensis, S. niger, and S. griseus.

Search for observations that have no identifications

Observations of Bacteria, Archaea, Viruses, and Life show up under the Unknown category. To filter just for observation with no ID at all, use &identified=false.
e.g. https://www.inaturalist.org/observations?place_id=1&identified=false

Search by taxon status (introduced, native, threatened)

To limit results to observations whose taxa are introduced, native, and/or threatened in their places, add

&native= true|false|any (default is any)
&introduced= true|false|any (default is any; true is available in Filters panel)
&threatened= true|false|any (default is any; true is available in Filters panel)

Notes:

  • &native=true will not find only &introduced=false, nor vice-versa. Results depend on the Establishment Means set in the appropriate place checklists.
  • &native=true finds taxa set to native or endemic.
  • &native=false finds taxa set to unknown or introduced.
  • &introduced=true finds taxa set to introduced.
  • &introduced=false finds taxa set to unknown, native, or endemic.
  • &threatened=true includes taxa that have a conservation status with an IUCN equivalent of NT (Near Threatened) or worse specified, regardless of the taxon geoprivacy setting. See Search by geoprivacy to combine taxon geoprivacy in the search.

Search multiple places

This is pretty similar the multiple taxa URL. Like taxa, places have their own unique ID number, which you can find by searching for it and looking at the resulting URL. For example, here are all observations in Hong Kong:

https://www.inaturalist.org/observations?place_id=7613

So Hong Kong’s ID number is 7613. If I wanted to search for observations in both Hong Kong and Macao, all I have to do is append Macao’s ID number to the end:

https://www.inaturalist.org/observations?place_id=7613,10301

You can then start combining place and taxa search by using an ampersand (&). Here is a search for all snakes, crocodilians, and nudibranchs in Hong Kong and Macao:

https://www.inaturalist.org/observations?taxon_ids=85553,26039,47113&place_id=7613,10301

To exclude a place from your search, use &not_in_place=. This is a search for all snakes, crocodilians, and nudibranchs in the United States, but not in California:

https://www.inaturalist.org/observations?taxon_ids=85553,26039,47113&place_id=1&not_in_place=14

Search by bounding box or circle

If you would like to search an area that does not have a place ID, you can put in a rectangular bounding box or a circle with a defined center and radius. A bounding box search can be done by either using Explore to zoom on the map area you want and clicking “Redo search in map”, or by manually entering the coordinates into the URL. For example, https://www.inaturalist.org/observations?nelat=30.849458&nelng=-94.939413&swlat=30.220087&swlng=-95.792015 finds observations in a rectangular area north of Houston, Texas. You can use Google Maps to find the lat/long points – just click on the map and it will give you the numbers.

The circle has to be manually entered into the URL. For example, https://www.inaturalist.org/observations?lat=38.92&lng=-77.07&radius=16 finds observations in a 16 km circle around Washington, DC. You can use the circle tool of the ruler menu of Google Earth to draw a circle and to find out the center point.

Search by location (positional) accuracy

Search by geoprivacy

There are two params here: geoprivacy and taxon_geoprivacy.

geoprivacy: the observer has manually chosen the geoprivacy for the observation.
taxon_geoprivacy: iNaturalist has chosen the observation’s geoprivacy due to the taxon’s conservation status.

You can use geoprivacy and taxon_geoprivacy in combination, but the results will be observations with both settings, i.e. it is an AND search, not an OR search.

The four values possible here are open, obscured, private, and obscured_private.

Search for observations with or without georeferenced coordinates

The parameter geo specifies whether an observation has georeferenced coordinates (a location). Note that observations where either the geoprivacy or taxon_geoprivacy is private (see previous section) are considered to have no georeferenced coordinates. So here are observations that have a public location: https://www.inaturalist.org/observations?geo=true&verifiable=any

And here are observations with no location data entered: https://www.inaturalist.org/observations?geo=false&geoprivacy=open,obscured&taxon_geoprivacy=open,obscured&verifiable=any

Search for mappable/unmappable observations

The Explore page map only shows observations which are mappable, that is, with public lat/lon and a location accuracy less than the diagonal of a rectangle measuring 0.2 degrees by 0.2 degrees. This is about 31 km at the equator, about 27 km at 45 degrees latitude, and about 23 km at 80 degrees latitude. (mappable also requires a few other things, like passing quality checks.)
In Identify, mappable is set to any by default, but can be changed in the URL:

  • &mappable=true to find obs with public lat/lon and location accuracy below threshold
  • &mappable=false to find obs with either no public lat/lon or large location accuracy (or failing quality checks)
  • &mappable=false&geo=true to find obs with large location accuracy (see previous section for details on geo)

Search by date with time

Within the Filters menu, there is an option to search by date Range. The pop-up calendar chooser allows dates to be selected, but times need to be added manually. They can be typed into the Range boxes with the dates, or modified in the URL. Unless you want to search using UTC, you also need to add an offset for the time zone.

Example: https://www.inaturalist.org/observations?d1=2020-10-25T10:00-05:00&d2=2020-10-25T11:00-05:00&place_id=1859

This searches a location that is in CDT, using the offset -05:00, which is the offset between CDT and UTC. So results are observations made locally between 10am and 11am on October 25, 2020.

Search by month(s) of year or day(s) of month

To find observation from particular time(s) of year, the following may be helpful:

The following are less helpful and/or already covered by existing filters, but are listed for completeness. They can be combined with the &month= search:

  • &day=21 finds observations on the 21st of any month.
  • &year=1980,1981,1982 should be self-explanatory.

Time Zone is ignored. Results just reflect the recorded date in any time zone.

Contents (part 2)

WHO (observers and identifiers)
Search multiple observers
Search by identifier(s)
Search by account age (in weeks)
Search by multiple user license types
Other observation properties
Search for observations with or without media (photos, sounds)
Include both Captive and Wild observations
Search by observation numbers (id numbers)
Search for observation fields and values
Search for Annotations
Search by Description, Tag, Name, Place
Project-related queries
Search for Observations from iOS, Android, or Seek apps
More tools and tips
Search by exclusions (not place, not taxon, not observer, etc.)
Sort by Dates, Faves, or Randomly
Look up ID numbers
Change number of results per page
Change page language/locale

part 2 here

108 Likes

How do I add a language in an URL?

1 Like

Is there a way to search for taxa that I haven’t yet reviewed? I haven’t been able to figure out a URL for this.

For example, I want to see all Limacoidea in a specific area, that is easy, but when there are 1000s of observations I keep seeing the same ones each time I come back a do a search.

3 Likes

If you’re using the Identify page, it defaults automatically to “needs ID” and reviewed=false.
https://www.inaturalist.org/observations/identify?taxon_id=512198

But you can also add reviewed=false to the Observation page URL:
https://www.inaturalist.org/observations?taxon_id=512198&reviewed=false

7 Likes

I think you can add ?locale=nl to any iNat URL to change the language, in this example, to Dutch. It’s not really a search URL though.

4 Likes

@bouteloua thanks for the feedback. Are you able to edit the original post, since it’s a Wiki?

2 Likes

Yes! I made a couple edits on Feb 12th to test it out.

3 Likes

Excellent.

1 Like

It worked well. I’ve just added a simple observation field search.

3 Likes

This is excellent, I just used to it to focus on my local area and things of interest to me.

I was also interested in using the IDENTIFY pop up window, and using your method I adjusted the URL and IT WORKED… Really great, thanks…

My example URL (notice the adjustment for IDENTIFY)
https://www.inaturalist.org/observations/identify?place_id=130874,30464,30479,30481&quality_grade=needs_id&iconic_taxa=Plantae,Fungi,Insecta

2 Likes

Is there a way to exclude certain taxa? Say I want to see all the plant species that are NOT mosses or algae?

2 Likes

without_taxon_id parameter

multiple entries separated by comma, you just need to know the id

This does all plants in Ontario excluding mosses and cacti (Ontario has way too many cacti it gets boring looking at them all)
For instance https://www.inaturalist.org/observations?place_id=6883&subview=table&taxon_id=47126&view=species&without_taxon_id=311249,47903

7 Likes

Ontario has lots of cacti??

5 Likes

Nearly every windowsill you look at has one.

But amazingly we do have some native growing ones.

9 Likes

That’s exactly what I needed, thank you!

1 Like

This is very useful thanks…previously I have always “glazed over” when any sort of code or URL has been mentioned but atf least the first one or two examples sound feasible even to me…assuming the Url changes in the browser header with each filter.

Am i correct in my impression that it is not possible to bulk edit the results of such searches even using the filter to producd only kne’s own obs?

3 Likes

@kaipatiki_naturewatc Yes, the URL updates in the search box with each filter change. Anything you can filter through the user interface, you can copy/save/bookmark a URL that re-creates that filter each time you go there. After playing with the filter and seeing the resulting URL changes for a while, you should get a pretty good idea of how it works.

And then there are some other filter parameters NOT available through the regular user interface, such as the without_taxon_id= parameter mentioned earlier. This wiki will be especially helpful for documenting those, and I hope will eventually include a complete list of them. (I’ve been collecting a list as I learn about them, but it’s probably missing some things…)

If by “bulk edit” you mean edit the contents of your own observations, I think you would be limited to the capabilities of the Batch Edit functionality at https://www.inaturalist.org/observations/{{username}}, after applying an appropriate Search filter. And that search filter could include manually adding other URL parameters not available through the standard Search filter.

1 Like

Is there a parameter such as without_place_ID. I’m aiming to exclude certain locations from my search. I tried <> and - but this did not work.

To create the opposite search of my URL
https://www.inaturalist.org/observations/identify?place_id=130874,30464,30479,30481&quality_grade=needs_id&iconic_taxa=Plantae,Fungi,Insecta

1 Like

try not_in_place

1 Like

That appears to have worked.

https://www.inaturalist.org/observations/identify?page=5&iconic_taxa=Plantae%2CFungi%2CInsecta&not_in_place=130874%2C30464%2C30479%2C30481

So perhaps the wiki needs a few criteria ideas for IS and IS NOT. With that in place, I think this is a very powerful method to manage views in Inat. It is perhaps not for everyone, but for some, this would certainly give much greater flexibility.

3 Likes