iNaturalist Event Type

Part of the iNaturalist integration.

Overview

The iNaturalist integration brings community wildlife observations from iNaturalist into EarthRanger as events. Each observation records what was seen, who recorded it, where, and how far the identification has been verified by the iNaturalist community, so sightings around your conservancy show up alongside the rest of your operational picture.

Observations arrive already resolved: they are records of something that was seen, not incidents that need a response.

Supported event types

EarthRanger event type Display title iNaturalist source
inat_observation iNat Observation One iNaturalist observation

Fields

Field Label Type What it holds
taxon_common_name Common Name Text Species common name, e.g. Grevy's Zebra.
species_guess Species Guess Text What the observer typed when recording the sighting, before identification.
taxon_name Scientific Name Text Binomial name, e.g. Equus grevyi.
taxon_rank Taxon Rank Text How precise the identification is — species, genus, family and so on.
taxon_id Taxon ID Number iNaturalist's identifier for the taxon.
taxon_conservation_status Conservation Status Text Conservation status recorded for the taxon, where iNaturalist holds one.
taxon_wikipedia_url Wikipedia URL Link to the taxon's Wikipedia article.
quality_grade Quality Grade Text How far the community has verified the identification — research, needs_id or casual.
captive Captive or Cultivated Yes/No Whether the organism was captive or cultivated rather than wild.
location_obscured Location Obscured Yes/No Whether iNaturalist has blurred the coordinates, which it does for sensitive species.
place_guess Place Text The place description attached to the observation.
place_ids Place IDs Text iNaturalist place identifiers the observation falls within, comma-separated.
inat_id iNaturalist ID Text The observation's own identifier in iNaturalist.
inat_url iNaturalist Link URL Link back to the observation on iNaturalist.
user_name Observer Text The iNaturalist account that recorded the observation.
user_id Observer ID Number That account's identifier.
created_at Created At Text When the observation was created in iNaturalist.
updated_at Updated At Text When it was last changed in iNaturalist.

How to create this event type

1. Install the command-line tool and sign in

You need a terminal with Python 3.11 or newer and pipx installed, and an EarthRanger account on the target site.

pipx install earthranger-cli                         # install the tool; this gives you the 'er' command

er profile add sitename --server sitename --username you   # save the site as a profile ('sitename' is the site's subdomain, e.g. 'borana' for borana.pamdas.org)
export ER_PROFILE=sitename                                 # tell 'er' to use that profile in this terminal
er auth login                                              # asks for your EarthRanger password and signs you in

Important: the account you log in with must have permissions on the Event Category that will host this event type.

2. Save this spec as inat.yaml

Set category to the category that should host the iNaturalist events on this site (for example tourism or monitoring).

category:
  value: tourism
  display: Tourism
event_types:
- value: inat_observation
  display: iNat Observation
  icon_id: inaturalist_rep
  default_state: resolved
  layout:
    label: ''
    columns: 1
  fields:
  - key: taxon_common_name
    label: Common Name
    type: string
  - key: species_guess
    label: Species Guess
    type: string
  - key: taxon_name
    label: Scientific Name
    type: string
  - key: taxon_rank
    label: Taxon Rank
    type: string
  - key: taxon_id
    label: Taxon ID
    type: number
  - key: taxon_conservation_status
    label: Conservation Status
    type: string
  - key: taxon_wikipedia_url
    label: Wikipedia
    type: url
  - key: quality_grade
    label: Quality Grade
    type: string
  - key: captive
    label: Captive or Cultivated
    type: boolean
  - key: location_obscured
    label: Location Obscured
    type: boolean
  - key: place_guess
    label: Place
    type: string
  - key: place_ids
    label: Place IDs
    type: string
  - key: inat_id
    label: iNaturalist ID
    type: string
  - key: inat_url
    label: iNaturalist Link
    type: url
  - key: user_name
    label: Observer
    type: string
  - key: user_id
    label: Observer ID
    type: number
  - key: created_at
    label: Created At
    type: string
  - key: updated_at
    label: Updated At
    type: string

3. Preview, then apply

er events apply inat.yaml --dry-run   # shows what will be created or changed
er events apply inat.yaml             # actually does it

Applying is safe to repeat: it creates what is missing and patches only what differs. Nothing is ever deleted.

4. Verify

er events show event-type inat_observation

Changelog

September 2026 — first published field set. Before this revision the event type existed with no fields at all, so iNaturalist data was stored on each event but nothing appeared on the event form. These eighteen fields were added: taxon_common_name, species_guess, taxon_name, taxon_rank, taxon_id, taxon_conservation_status, taxon_wikipedia_url, quality_grade, captive, location_obscured, place_guess, place_ids, inat_id, inat_url, user_name, user_id, created_at, updated_at.

Events recorded before the update keep the values they arrived with — once the fields exist, that older data becomes visible on the form too. Nothing needs to be re-sent.

 

CLI tool and full spec documentation: https://github.com/PADAS/earthranger-cli