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

id= works in Identify, but not in Explore, so you can’t get a species summary there. But unless I’m misunderstanding, I think @pisum’s Observation Species Count page will do what you’re asking.

We are putting together our monthly newsletter for the Friends of SWNP and we’ve started including some of our favorite photos from inat, taken during the previous month. I wanted to send a list to my co-editor so she could see what I was liking.

1 Like

Beautiful! Thanks so much!

Gotcha. That makes total sense. Sort of like an old school contact sheet. Great idea. Instead of getting out the magnifying loupe to check over the images one can just click on the ones that catch the eye.

Is there a way to find species which haven’t been observed in a project? I’m looking for a way of finding obvious species that we might have failed to observe in our local green space.

I could do this to get the most observed species in England which I haven’t seen:

But could I do something similar for a project? Or for a place? The project I’m interested in only has two places.


I’m not sure what you mean by “species which haven’t been observed.” Do you mean things on a place check-list that have no observations in that place? If so, that’s a built-in feature on the place check-list web page. Go to a place, then click on the “View Check-List Page” link (on the “Species” tab below the taxonomic outline on the left side of the page). Then, in the “Stats” box on the left side of the page, click “no” under “Observed”, then scroll down in the box and click the “Filter” button. This of course depends on someone having put together a check list in the first place that has unobserved species, so I’m guessing that’s probably not quite entirely what you are looking for. As an example, here’s the unobserved list for England:
As projects don’t have checklists, I assume there is no similar feature for them.

I’m thinking of a place like a nature reserve, park, woods or other open space which doesn’t have a checklist as the person who created the place doesn’t know what is there. I can go to the place and look for species but there are going to be some common species which I might ignore because I assume I’ve already observed them there. Also there may be some species missing as I have observed them but the accuracy circle wasn’t entirely within the project boundary (e.g. because I took the photo from the place boundary and forgot to change the location to the place the organism was). For a project at a popular location which would have lots of contributors this wouldn’t matter as someone else would likely observer the species.

I was wondering if there was a quick way of finding species which are likely to be there but haven’t been observed yet. There are a few ways I can find species that are likely to be near me that I haven’t observed so I was wondering if there was something similar for a place or project.

For instance could I see which commonly observed species in England haven’t been seen in Bassett Wood & Daisy Dip or in one of the two places which make up this project.

1 Like

I’m trying to create a search showing observations with organisms that are flying. To that end, I try a query searching for tags, but I get way more hits than I want. Using the form, of course, it searches four different things, as explained in the documentation. However, even restricting to tags by editing the URL, I still get more than I want. It looks like the search engine is searching not only by my search term but also anything cognate to it in any language. So, for example, a search for tag having “flying” returns insects having the German word for fly. I don’t want those. Is there any solution to this?

I love these tips & I use them frequently!

Is there a way to search for observations of taxa that have less than a certain threshold of total observations? For example, “species that have only ever been observed once”?

I can’t think of any way to do that within the current UI. You can use pisum’s tool to do something similar though – it will display taxa in reverse order of number of observations. So this shows bird species, starting with species that have only one observation.

If you really wanted, for example, all observations of bird species where the species had 5 or fewer observations, I guess I would call the API until you got back something with 6, then make an iNat List out of the previous species (the ones with fewer than 6), then search on that list_id.

Hello! I’ve been trying to use some of the search queries from this thread but I can’t seem to find a very specific search I’d like to perform. Is it possible to search for all observations made ONLY by a specific user?

For example, I can search in Big Cypress National Preserve for plant observations & compare that to a search excluding me ( which shows that I have 66 unique plant observations. If possible, I’d like to generate a list of those, or even just a list of each unique observation including the observer.

Any help with this would be greatly appreciated!

Welcome to the forum!
I don’t think there’s an easy way to do that, but there are a few somewhat complicated ways you could try.
This search will show observations in Big Cypress National Preserve that are unique: (just scroll down until taxon obs count changes to 2)

So there are currently 450 species only observed once, but you’ll have to do more to filter it by user. You can copy/paste the text off that page, process the json from the API yourself, or maybe if we ask nicely, @pisum will add an export tool.
Once you have the list of 450 unique species, I would import that back into iNat as a list, and then use the list_id as a search parameter. Since each species is unique, every observation returned shows the only user to have seen that species at that location. If you add yourself as a search parameter, it should return only species in Big Cypress that you (and no one else) have seen.

It’s not ideal if you want to be able to do it repeatedly, but I think it should get the job done.

Edit: I realized that it won’t find species that no one else has observed, but that you have observed more than once. I’ll have to think about that…


i don’t totally understand what you’re looking for, but maybe the experimental compare tool might get you something like what you’re looking for?

example usage:

UPDATE: i read the request again with rested eyes / brain, and i think i understand what you’re asking for now. i think you’re saying that you want to pull back observations where the taxon has been observed only by that user.

for me, the easiest thing (without creating some sort of specific tool to do this) to do would be to just export the dataset, load that into something that allows you to run a SQL query on it, and then run some variant of the following SQL statement:

   SELECT taxon_id, COUNT(taxon_id), MIN(user_id), MAX(user_id)
   FROM observations
   GROUP BY taxon_id
   HAVING MAX(user_id) = MIN(user_id)
   ) A
INNER JOIN observations B
   ON A.taxon_id = B.taxon_id

i wrote the SQL statement above in so it should work there (i think), and it should work in Microsoft Access (as long as you put brackets around the table name for some reason). i vaguely recall that Excel should also handle SQL through Microsoft Query or Power Query, but i’m not patient enough to figure that out today. i tried fancier SQL statements with WITH clauses and WHERE…IN and other syntaxes, but the statement above is the only one that i could get to pull what seemed like reasonable results. so either the tools i tried don’t handle that fancier syntax correctly, or my SQL is really rusty.


As far as I can tell, the link you provided to the compare tool does exactly what I was trying to do!

Thank you!

Sorry if this exists somewhere - I looked and didn’t see a match. I want to QC my IDs of others’ observations - I seem to have a lot recently where I make an ID that turns out to be incorrect. I’d just look through my IDs, but I have over 10K, and of course every day potentially brings a new set of opportunities…

So, the characteristics would be:

All of these

  • I made the ID, but was not the observer
  • My ID is not maverick
  • Any quality level (RG, NI, C)
  • Exclude observations where I have already withdrawn my ID

Any of these

  • My ID was followed by other IDs that are different on the same or higher taxon level (e.g., my ID was genus level, but it is followed by a different genus or higher, e,g., I entered Corvus (crows) but it is followed by Cuculidae (cuckoos))
  • My ID is species level but is followed by others that are genus level or higher (i.e., mine were more granular than warranted but otherwise correct, e.g., I said Quercus rubra (red oak) but is followed by Quercus, or I said Quercus but it is followed by Fagaceae)
  • My ID is preventing the overall ID from progressing to RG (I know this may not be possible to code)

Thanks so much for any/all help.


I think &current=false with either &category=leading or &category=improving could work


I’m looking at and I am wondering if it is possible to see only observations that have a value in the last column “disagreement with.” This isn’t one of the listed params so it might not exist, but I would find it useful.

I think that’s what current=false would help with, sort of.

My understanding is that value is for when your active ID doesn’t match the community ID (the problem is it doesn’t distinguish between whether the mismatch is due to disagreement or refinement).

Oh is that what that means? I thought it meant I withdrew the ID, ha. Well I forgot about the scheduled maintenance, so I guess I will have to check on this tomorrow.

1 Like

That page won’t filter by disgreement status, but the API does take that parameter. So you can see your disagreeing IDs using the tool @pisum made:

The column labeled “ID = disagree” lets you know your ID was a disagreement, and the column labeled “Prev Obs Taxon Name” tells you what you were disagreeing with.

There are two ways to have your ID register as a disagreement. First, if you give an ID that is incompatible with the Observation Taxon, your ID will automatically disagree with it. Second, if you give an ID that is coarser than the Observation Taxon, you can choose to disagree or not (via the much-maligned popup with orange and green buttons).

This is one of the first kind:

And this is one of the second kind:

In both cases, you can tell it’s a disagreement because of the text at the bottom of the ID, and because it shows up in the algorithm summary.

Whether an ID is a disagreeing ID or not is independent of whether it is active. So here’s an ID that isn’t active, but is a disagreeing ID:

When your ID is a refinement of the Observation Taxon (e.g. you add species to a genus level observation), it doesn’t count as a disagreement. So this is not a disagreement: