Observations/Identifiers count discrepancies

for example:

This shows chauncey with 1011 identifications of J. grandis.

Go to taxon information page:

This shows chauncey with 542 observations and 654 identifications.

I’m perplexed. What am I missing?

Thanks for your help.

Platform PC, website

Browser, Chrome

the number identifications that shows up in the Observation detail page includes seems to represent identifications you made on any research-grade observation, including your own observations (see https://jumear.github.io/stirfry/iNatAPIv1_identifications_identifiers.html?&taxon_id=77599&per_page=50&quality_grade=research); whereas the number of identifications that shows up on the Taxon page includes only identifications you made for others’ observations of any grade (see https://jumear.github.io/stirfry/iNatAPIv1_identifications_identifiers.html?&taxon_id=77599&per_page=50&own_observation=false).

i’m not sure why the two pages are counting different things, but i’m not sure it’s necessarily a bug either.

1 Like

Thanks for looking into this. I’m not totally sure what to make of it, but sounds like things are working as they should.

Hi @odole your post and analysis seemed relevant to this recent bug report, so I hope it’s ok that I moved it here.

Thank you for your detailed analysis of the count differences. Not sure I have any definitive answers, and the developers might have to answer for sure. But a couple of factors that might be at play here are:

  • are only active IDs being counted, or active + inactive?
  • are they being counted on observations of all quality grades, or are Casual observations being excluded?

Maybe someone else will be able to chime in with better answers.

URL 1 is using the default hidden param verifiable=true, while 2 also includes IDs on observations that are not verifiable.


26675 is smaller than 27515 because 26675 is the number of verifiable observations by tiwane, while 27515 is the number of IDs tiwane made on all of his observations. They’re not asking for the same data – the first is asking for number of observations and only includes verifiable, and the second is asking for number of IDs and includes all observations. He could (and does) have some observations that aren’t verifiable, and he could (and does) have some observations that he never added an ID to, e.g. this one. So we wouldn’t expect these numbers to be the same, either one could be larger.


The profile page includes current=true, while the identifications page shows current=any. This was a design choice that probably only the developers could comment on.

1 Like

I think some of the confusion is because iNat treats searches for IDs very differently from searches for observations. You can see the API docs for IDs here and for observations here.


Correct, URL 2 is an ID search and doesn’t accept the verifiable parameter.


For URL 1, current isn’t a parameter for observation searches.
For URL 2, the API docs (or some experimenting) show that the default is current=true.
URL 5 is also an ID search, it doesn’t take the verifiable parameter.


I’m not sure what you expect it to show? It’s the number of current IDs that tiwane has made on any of his observations.

1 Like

the Explore (aka Observation Search) screen by default will look for non-spam, verifiable records. however, the Observation API endpoints don’t apply those parameters by default.

so https://www.inaturalist.org/observations?ident_user_id=tiwane would be equivalent to

and https://www.inaturalist.org/observations?ident_user_id=tiwane&verifiable=any would be equivalent to

the Explore page and Observation API endpoints return observations. there are other API endpoints that return identifications. observations and identifications are different things. so the user_id parameter on observation endpoints will refer to observers, while the user_id parameter on identification endpoints will refer to identifiers. the ident_user_id parameter is available to the observations endpoints as a way to reference identifiers (users who have current identifications on those observations).

so https://jumear.github.io/stirfry/iNatAPIv1_observations.html?ident_user_id=tiwane should be (more or less) equivalent to

not sure if this answers the question you were asking, but hopefully it puts things in context.

3 Likes