This is a continuation of the wiki tutorial starting here:
https://forum.inaturalist.org/t/how-to-use-inaturalists-search-urls-wiki/63
The post body began exceeding the 32,000 character limit, requiring this split. See part 1 above for more background information and usage notes. The following table of contents includes, and is replicated in, both parts, and should be maintained that way to provide seamless connection between the two.
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.
- Other searches (often less versatile) exist for things like comments, identifications, taxa, flags, taxon changes, etc.
- 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
Part 2
Search multiple observers
To limit a search to a specific set of observers add &user_id=
and a comma-separated list of user ids:
User IDs can be either login names or user numbers, but not a mixture of the two:
To exclude one or more observers, you can use ¬_user_id=
:
Search by identifier(s)
If you only want to see observations to which a certain user has added an ID, use the ident_user_id
param. For example, here are all observations to which I have add an ID:
https://www.inaturalist.org/observations?ident_user_id=tiwane
For observations identified by one or more of several users, separate them with commas:
https://www.inaturalist.org/observations?ident_user_id=tiwane,kueda,jdmore
To exclude observations identified by particular user(s), use &without_ident_user_id=
, e.g.
https://www.inaturalist.org/observations?without_ident_user_id=tiwane,jdmore
- Both of these parameters may be used in combination.
- The search looks for any active ID by the user(s), whether or not they match the community ID.
Search by account age (in weeks)
If you want to focus on observations from very new, very old, or in-between user accounts, you can add parameters like the following examples:
&user_after=3w
- users with accounts created more recently than 3 weeks ago
&user_before=52w
- users with accounts created earlier than 52 weeks ago
&user_before=4w&user_after=8w
- accounts created between 4 and 8 weeks ago
- The before and after
1w
options are already available on the Identify Filters panel.
Search by multiple user license types
Single license queries are already available from the Filters panels. To query for multiple license types:
-
&photo_license=cc0,cc-by,cc-by-sa
(example for all photo licenses accepted by Wikipedia) -
&photo_license=cc0,cc-by,cc-by-nc
(example for all photo licenses accepted by GBIF) -
&sound_license=cc0,cc-by
(example for multiple sound licenses)- Use lower-case license parameters to ensure functionality in Identify.
- The
license
andlicensed
API parameters (for observation level licenses) are not currently supported in URLs. - If you want to search for observations that have no photo license (aka all rights reserved), use
photo_licensed=false
. (unfortunately, there is no correspondingsound_licensed
parameter.) - The system default is all observations regardless of license.
Search for observations with or without media (photos, sounds)
photos=true
: has 1 or more photos (available in the GUI)photos=false
: does not have photossounds=true
: has audio (available in the GUI)sounds=false
: does not have audio
Combine for media-less observations, e.g. https://www.inaturalist.org/observations/identify?quality_grade=casual&sounds=false&photos=false&taxon_id=3
Include both Captive and Wild observations
Some parts of the site will only show Wild observations by default, with an option to show Captive only. To be sure you are seeing both kinds of observations, use:
&captive=any&verifiable=any
- Besides
any
, the other options (already in the Filters panels) aretrue
andfalse
.
Search by observation numbers (id numbers)
Each iNat observation has an id number that can be found in the URL for that observation. You can use this number with id=
to restrict a search to specific observations.
For example, to restrict an Identify search to
https://www.inaturalist.org/observations/51170811 and
https://www.inaturalist.org/observations/51170806 use
https://www.inaturalist.org/observations?id=51170811,51170806&verifiable=any&place_id=any
To exclude one or more specific observations, use ¬_id=
:
https://www.inaturalist.org/observations/identify?not_id=51170811,51170806
(Note that not_id
only works in Identify, while id
also works in Explore)
Search for observation fields and values
You can specify observation fields and their values in the URL. For example, here are all of the observations with the observation field āRoadkillā set to āYesā.
https://www.inaturalist.org/observations?field:roadkill=yes
You can search for all observations with a field regardless of the field value (e.g. the field āHabitat (s Afr)ā only):
&field:Habitat%20(s%20Afr)
or with a field and value (e.g. āHabitat (s Afr)=Nama Karooā):
&field:Habitat%20(s%20Afr)=Nama%20Karoo
You can also find observations missing a named field:
&without_field=Name of Associated Plant
You can easily combine these with other search strings. For example, the following shows all observations marked as being of insect herbivores of Eucalyptus.
https://www.inaturalist.org/observations?taxon_id=47158&field:Interaction->Herbivore%20of=51815
The taxon ID for Insecta is 47158 and for Eucalyptus is 51815 (which you find from the URLs of their taxon pages, https://www.inaturalist.org/taxa/47158-Insecta and https://www.inaturalist.org/taxa/51815-Eucalyptus). The observation field used here is āInteraction->Herbivore ofā. Note that the space in that field name needs to be replaced with a %20 in the URL so the browser doesnāt get confused.
Observation field view
https://www.inaturalist.org/observation_fields/1234
Observation field view for a value: (e.g. Fynbos in Habitats-s-afr):
https://www.inaturalist.org/observation_fields/7498?value=Fynbos (case sensitive)
Ascending list of observation fields:
https://www.inaturalist.org/observation_fields?order_by=name&order=asc
Descending list:
https://www.inaturalist.org/observation_fields?order_by=name&order=desc
Search for Annotations
&term_id=
- the annotation group
- 1=Life Stage, 9=Sex, 12=Plant Phenology, 17=Alive or Dead, 22=Evidence of Presence
&term_value_id=
- the value within the group
- Life Stage: 2=Adult, 3=Teneral, 4=Pupa, 5=Nymph, 6=Larva, 7=Egg, 8=Juvenile, 16=Subimago
- Sex: 10=Female, 11=Male
- Plant Phenology: 13=Flowering, 14=Fruiting, 15=Flower Budding, 21=No Evidence of Flowering
- Alive or Dead: 18=Alive, 19=Dead, 20=Cannot Be Determined
- Evidence of Presence: 23=Feather, 24=Organism, 25=Scat, 26=Track, 27=Bone, 28=Molt, 29=Gall, 30=Egg, 31= Hair, 32=Leafmine, 35=Construction
Both the group parameter and value parameter should be included in the URL. And term_value_id should be able to accept a comma-separated list of more than one value.
Here are all verifiable Lepidoptera observations with a Life Stage of Larva: https://www.inaturalist.org/observations?place_id=any&taxon_id=47157&term_id=1&term_value_id=6
And here are all verifiable Lepidoptera observations with a Life Stage of Larva or Adult: https://www.inaturalist.org/observations?page=2&place_id=any&taxon_id=47157&term_id=1&term_value_id=2,6
To exclude observations with particular annotations, use the following similar to the above:
&without_term_id=
to exclude observations with any annotation in this group&term_id=xx&without_term_value_id=
to exclude observations with a specific annotation value
For example, to see observations NOT marked as alive, dead, or undetermined use https://www.inaturalist.org/observations/identify?without_term_id=17
For observations that are marked as alive or undetermined but NOT dead, use https://www.inaturalist.org/observations/identify?term_id=17&without_term_value_id=19
Search by Description, Tag, Name, Place
The Explore and Identify filters include a box called Description / Tags. This box actually searches 4 things: description, tags, names of taxa with active IDs, and place descriptions. To search just one of these at a time, you can specify a search term and also which one to search.
Specify the search term with &q=searchterm
, for example &q=small
. Replace spaces with %20
, for example &very%20small
.
- To restrict the search to the description, use
&search_on=description
- To restrict the search to tags, use
&search_on=tags
- To restrict the search to active ID taxon names, use
&search_on=names
- To restrict the search to the description of the place (also called the ālocality notesā or the place_guess), use
&search_on=place
As an example, https://www.inaturalist.org/observations?q=leaf%20miner&search_on=tags searches for observations with the tag āleaf minerā.
Current limitations: This tool cannot search the text within comments or ID comments.
Project-related queries
&project_id=
is used by the standard filter window, and restricts a search to observations in a selected Project. This is also a good way to look up and copy the Project ID for use with other Project queries.
Use not_in_project=
to find observations that are in a place and not in a project, for example, all beetles in NZ currently not in the NZ beetles project:
place_id=94916 New Zealand Zone
taxon_id=47208 Coleoptera
https://www.inaturalist.org/observations?place_id=94916&taxon_id=47208¬_in_project=nz-beetles-and-their-grubs
If a project is more complicated than just taxa in a place, you can filter observations based on matching the complete rule-set of a project, or on not matching it:
&apply_project_rules_for=
¬_matching_project_rules_for=
NOTE: these are from the iNaturalist API documentation found here (scroll down the page at that link). I havenāt specifically tested these. If they donāt work as expected, please reply to this post.
Search for Observations from iOS, Android, or Seek apps
The &oauth_application_id
parameter allows searching observations by the source of upload.
- &oauth_application_id=2 = iNaturalist Android app
- &oauth_application_id=3 = iNaturalist iOS app
- &oauth_application_id=333 = Seek app
Search by exclusions (not place, not taxon, not observer etc.)
Many of the above searches can also be excluded from results. These options are collected here again for convenience.
&without_taxon_id=
(excludes one or more taxa and their descendants)&exact_taxon_id=
(Identify only; excludes descendants of one or more taxa)&without_direct_taxon_id=
(Identify only; works likewithout_taxon_id
but descendants arenāt excluded)¬_in_place=
(excludes one or more places)&geo=false
without a location (though you may want to also exclude private observations with&geoprivacy=open,obscured&taxon_geoprivacy=open,obscured
)¬_user_id=
(excludes one or more observers)&without_ident_user_id=
(not identified by one or more users)¬_id=
(Identify only; excludes a list of specific observations by id number)&without_term_id=
(the annotation group)&without_term_value_id=
(the value within the annotation group)&without_field=
(the name of a field)¬_in_project=
(not included in one or more projects)¬_matching_project_rules_for=
For example, I want to identify Asteraceae (47604) from California (14), but not sagebrush or rubber rabbitbrush (genus Artemisia 52855 or species Ericameria nauseosa 57934) and not from the Sierra Nevada (52173) or the White Mountains (129416), not my own (51061), and without the plant phenology annotation āfloweringā:
Of course, if any of your āwithā and āwithoutā parameters conflict, you should expect to get conflicting results! (or none at all).
Sort by Dates, Faves, or Randomly
The Identify Filters panel already has options built in to sort by Date Added (default), Date Observed, Date Updated (edited), Faves, or Random. Sorting options are Descending (default) or Ascending.
Two of these options are not available in the Explore filters, but can still be added manually: Date Updated and Random. To add these, use
&order_by=updated_at
&order_by=random
Sorting order is specified by
&order=desc
or&order=asc
For example https://www.inaturalist.org/observations?place_id=any&iconic_taxa=Aves&order_by=updated_at&order=asc will show you all bird observations sorted by date last edited, with observations updated longest ago displayed first.
Look up ID numbers
ID numbers are needed for many of the searches detailed herein. Here are some easy ways to find them:
- User: go to the userās profile page, then add .json to the URL and press enter. ID is first number listed.
- Example to find my ID number: https://www.inaturalist.org/people/jdmore.json
- OR, on the profile page, hover over the Follow or Stop Following button at top, and look for the
friend_id
number in the link URL.
- Taxon: In Identify use the Species box at top to find and select the desired Taxon. The
&taxon_id
number will be added to the URL in the browser address bar.- OR, go to the page for that taxon and the number will be part of the URL.
- Place: In Identify use the Place box at top to find and select the desired Place. The
&place_id
number will be added to the URL in the browser address bar. - Project: In Identify go to Filters, then More Filters, enter and select the project in the Project box. The
&project_id
number will be added to the URL in the browser address bar.- If the project āURL slugā is needed instead of the number, go to the page for that project, or hover over a link to it, and the āslugā follows the last slash (/) in the URL.
- For example,
flora-of-russia
is the URL slug for https://www.inaturalist.org/projects/flora-of-russia
- List: go to the page for that list, or hover over a link to it, and the number will be part of the URL.
Change number of results per page
(works in Identify only)
To change the number of observations displayed per page in Identify, add &per_page=
followed by a number up to 200.
https://www.inaturalist.org/observations/identify?place_id=50&per_page=10
Change page language/locale
To display any translatable iNat page in another language without changing your settings:
- Add
&locale=xx
to the URL, where xx is the 2-letter ISO 639-1 language code - If a code is unavailable or not specified, the site default is
&locale=en
(English) - To see available languages on iNaturalist, visit https://crowdin.com/project/inaturalistweb. Hover over any language that shows about 10% or more translated. The language code will be at the end of the URL that shows when you hover.
- To learn more about helping with translation, visit https://www.inaturalist.org/pages/translate