Percent endemic or native is going to be tricky without knowing the geographic scope of the project. Species can be endemic to a whole country or just a state (province, island, etc.). Species can also be introduced within one state but be native to other states in the same country.
The other two can easily be determined with Excel, Google Docs, R, [insert any coding software here] after you download the data as a CSV.
I agree with Nina’s (tockgoestick) cautions on endemism. I will also add that many (most?) taxa do not have establishment means status on iNat. If you really want to evaluate native vs. endemic vs. introduced, you should be very familiar with your taxa and region and not rely solely on the completeness of information on iNat. (I speak with experience on bees, and I assume most invertebrates have similar or worse curation levels. Things may be different for the better-known birds/mammals. I’m not sure about plants/fungi).
Most of this can be done directly on iNaturalist, without any external tool:
**1. Endemic / native / introduced**
Open the project’s observations in Explore and use *Filters → Establishment means*. You can also add the parameters to the URL, e.g. `inaturalist.org/observations?project_id=YOUR_PROJECT&view=species&native=true` (or `introduced=true`, `endemic=true`). Compare each species count with the total to get the percentages. Keep in mind that establishment means depend on the place checklists, so many species are simply “unknown” and the three categories won’t add up to 100%.
(use `interval=month` for a month-by-month timeline).
**3. Rarest species**
There is no built-in “rarity” metric. A common approach is to take the project’s species list (`/v1/observations/species_counts?project_id=…`) and sort it by each taxon’s global `observations_count`, the number of observations on iNaturalist worldwide. Fewer records means “rarer on iNaturalist”. That reflects observer effort as much as true rarity, so it is not a conservation status. For threatened species, use the `threatened=true` filter.
**Tools**
For custom analyses, the R package `rinat` and the Python package `pyinaturalist` wrap the API well. I have also built two free Shiny apps that may help:
They accept a user, a project or a place as input, so you can run them directly on your project. The profile card, for example, summarizes observations and species and breaks the species down into threatened, endemic, native and introduced. That answers your first question in a couple of clicks, with the same caveat as before: species without establishment means on iNaturalist are not counted in any of the three categories.