How to use iNaturalist's Search URLs - wiki

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’ll 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 in Identify may return fewer results unless you first override certain default states (quality_grade=needs_id, reviewed=false) using the Identify filters.
  • If you have a default Place set in your filters, this may exclude observations from your search. To avoid this, clear the Place from your filter, or add &place_id=any to the URL.

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
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 field 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 Texas:

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’d like to search an area that doesn’t 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 will have to use both if you want to see all the obscured, private, or open observations in your search.

The three values possible here are open, obscured, and 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 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 field 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

78 Likes
Boolean operators for iNat searches
Show me what I haven't seen yet
How to find a list of "unidentified/unknown" observations?
How to use iNaturalist's Search URLs - wiki - part 2
A Tree Survey Question
Create Filter by Location Accuracy
Filter observations by camera model
Identification by elimination
Amount of "Unknown" records is decreasing
Viewing posts from two countries
Using iNat maps to illustrate Ensatina as a ring species
URL search when field is NOT set
URL search when field is NOT set
Searching for exact match in tag or description
Siphoning off specific data
Priority to new users
Observing & Identifying Wildlife - wiki
Ability to search observations near (within range of) a place
What does "No Evidence of Flowering" mean?
Any way to search through your identifications?
Annotations not exporting
Annotations not exporting
How do I find my identifications of a particular species?
iNat posting etiquette questions
Allow for "blocking" of observations(/photos?) of a particular taxa
Can taxa be excluded from a search?
Photos of Animals Shot During Hunting Ok?
A way to search needed/missing species?
Restrict observations to time range?
Search and filter identifications
Species per page on observation - question
Bug with exporting data from a project
Search URLs: All Filter Examples by Search Parameter?
Wrong page opens when trying to add observations to a traditional project
Search with excluding a territory?
Announcing the (JANUARY) 2021 ID-a-thon (all welcome)
How to use iNaturalist's Search URLs - wiki - part 2
Searching with exclusions . .
Overthinking plant identification
Is it possible to filter for more than 1 Person in filters box?
What would you like to learn about getting data from the system?
Split Plantae into several iconic taxa
Countries become rectangular when using the Location bar in Explore
Identify the observations most in need of identification
Using Excel + API
Obtaining lists of obscured taxa
Is it possible to sort by species abundance in a location?
New to INat - please help!
In pursuit of mappiness (part 1)
Is there an aggregation of specifically categorized land areas (i.e. National Parks or Forests)
Is there any way to search for a term, but to exclude results from a given project?
Find all observations that have been identified as species X at least once
Inconsistent or unavailable locations on explore and identify pages
Ideas for a revamped Explore/Observations Search Page
Conservation status not being reflected accurately on iNaturalist Australia
Changes to the Agree button/functionality and addition of Markdown in comments and ID Remarks
Search and filter identifications
Western North America as a location for Identify searches?
Dealing with low quality observations and inappropriate content on iNaturalist
Filter multiple taxa in the "Identify" page?
Select Multiple Places in Filters
Include taxon_geoprivacy in search filters
Geographically Limited Searches
Filtering searches by geographic features (mountains, riparian, etc)?
"Open in new tab" as default from Identify
Separate Lichen and Fungi into two Categories?
Find/Exclude observations without a location?
Exclude certain taxa in Identify user interface
Search observations by color, etc on Identify
Easier to search for common conflicting IDs
How do I search for observations annotated as alive?
Records on iNat that are of "no value" because they're not identifiable
Large batch of gray squirrel observations with bad locations
Place: If it already exists on Google Maps do I need to create it also in iNaturalist?
How to query a geographic range without a specific user ID and observation field?
Viewing species in a project beyond the top 500
Is there a way to search for identifications I've made of a specific species?
Searching Observations using Annotations
Allow Boolean or Advanced Searches
How to exclude user-specified taxa in a search?
Excluding self in search
Provide a way to filter observations by disputed IDs
Combine places when searching?
fixed categories possible?
How to search for subdivisions within plants?
What is the one thing you wish you could do on iNaturalist?
What is the one thing you wish you could do on iNaturalist?
How to find which species found in one place are not found within another place?
Using R to extract observations of a specific phenological state
Create taxon field functionality analogous to observation fields
How do I search for observations annotated as alive?
How do I 'explore' a geographic region?
Is there an index of experimental tools?
Sorting by original ID
Can I filter out observations for which I have already provided ID?
Ideas for a revamped Explore/Observations Search Page
Forum steals CNTL-f hot key!
Search and filter identifications
Add "None" to taxon page photo browser annotation filter options
Add "None" to taxon page photo browser annotation filter options
'Moths' not a search option
Ideas for making it easier to find observations with conflicting IDs in Identify
Searching for multiple counties at once?
Plot comparative distribution maps for taxa
How to search for (or see a list of) comments I've made on other people's observations?
How do I exclude my observations from a search?
Data users— what are your use cases and requests for exporting data?
Qualifying observation excluded from inventory project
How to create an annual list?
Why is there no search filter "with annotation" on the Explore page?
In Identify, add filter for species I have observed (or species I have identified)
Finding observations without observation fields?
Is it possible to filter out observations by a specific user?
Find species unobserved by me in a specific place
What would make it easier for you to do more identifying?
Please subdivide Lepidoptera (Butterflies & Moths) and create a sub order Lepidoptera (Moths only)
Documentation for Observation Widget?
Downloading Annotations
The iNaturalist Explore Page - An Introduction
The iNaturalist Explore Page - An Introduction
Vague location names on observations
Searching by location uncertainty values

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

6 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