# iNaturalist API
> iNaturalist as an API — the world's largest citizen-science nature platform, returned as clean JSON, no key. Search hundreds of millions of wildlife observations by species name, place or quality grade and get each one with its photos, identified species, location, date and observer. Open a single observation, search taxa (species) and open a taxon for its common name, rank, full ancestry, photos, Wikipedia link, conservation status and observation count. Discover the most-observed species in any place (by place id or latitude/longitude), autocomplete places, and rank the top observers. Live data straight from iNaturalist. Distinct from taxonomic registries: this is real community observations with photos and locations — ideal for nature, birding and species-identification apps, biodiversity dashboards and education. 7 data endpoints. Authenticated with an x-oanor-key; fair-use rate limits per plan.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/inaturalist-api/..."
```

## Pricing
- **Free** (Free) — 3,300 calls/Mo, 5 req/s
- **Starter** ($6/Mo) — 47,000 calls/Mo, 15 req/s
- **Pro** ($28/Mo) — 260,000 calls/Mo, 30 req/s
- **Mega** ($87/Mo) — 1,050,000 calls/Mo, 80 req/s

## Endpoints

### Observations

#### `GET /v1/observation` — Observation detail

**Parameters:**
- `id` (query, required, string) — Observation id Example: `92440451`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/inaturalist-api/v1/observation?id=92440451"
```

**Response:**
```json
{
    "data": {
        "observation": {
            "id": 92440451,
            "uri": "https://www.inaturalist.org/observations/92440451",
            "user": {
                "icon": "https://static.inaturalist.org/attachments/users/icons/3243751/thumb.jpeg?1593169006",
                "name": "Jannik Peters",
                "login": "yonnix",
                "observations_count": 927
            },
            "taxon": {
                "id": 1081616,
                "name": "Vulpes vulpes crucigera",
                "rank": "subspecies",
                "photo": "https://inaturalist-open-data.s3.amazonaws.com/photos/607195408/medium.jpg",
                "common_name": "European Red Fox",
                "iconic_taxon": "Mammalia"
            },
            "photos": [
                "https://static.inaturalist.org/photos/153063583/medium.jpg"
            ],
            "sounds": [],
            "license": null,
            "location": "52.2688736,10.5267696",
            "faves_count": 43,
            "observed_on": "2021-08-25",
            "place_guess": "Braunschweig, Deutschland",
            "quality_grade": "research",
            "species_guess": "European Red Fox",
            "comments_count": 6,
            "time_observed_at": "2021-08-25T07:14:00+00:00",
            "identifications_count": 16
        }
    },
    "meta": {
        "timestamp": "2026-06-07T16:46:41.404Z",
        "request_id": "26a4a740-8db7-4b52-8aef-6e68b5ec680b"
    },
    "status": "ok
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/observations` — Search observations

**Parameters:**
- `taxon_name` (query, optional, string) — Species name Example: `red fox`
- `query` (query, optional, string) — Free-text query
- `place_id` (query, optional, string) — Place id filter
- `order_by` (query, optional, string) — votes, created_at, observed_on Example: `votes`
- `per_page` (query, optional, string) — Max results (1–30) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/inaturalist-api/v1/observations?taxon_name=red+fox&order_by=votes&per_page=20"
```

**Response:**
```json
{
    "data": {
        "count": 20,
        "total": 176632,
        "observations": [
            {
                "id": 92440451,
                "uri": "https://www.inaturalist.org/observations/92440451",
                "user": {
                    "icon": "https://static.inaturalist.org/attachments/users/icons/3243751/thumb.jpeg?1593169006",
                    "name": "Jannik Peters",
                    "login": "yonnix",
                    "observations_count": 927
                },
                "taxon": {
                    "id": 1081616,
                    "name": "Vulpes vulpes crucigera",
                    "rank": "subspecies",
                    "photo": "https://inaturalist-open-data.s3.amazonaws.com/photos/607195408/medium.jpg",
                    "common_name": "European Red Fox",
                    "iconic_taxon": "Mammalia"
                },
                "photos": [
                    "https://static.inaturalist.org/photos/153063583/medium.jpg"
                ],
                "sounds": [],
                "license": null,
                "location": "52.2688736,10.5267696",
                "faves_count": 43,
                "observed_on": "2021-08-25",
                "place_guess": "Braunschweig, Deutschland",
                "quality_grade": "research",
                "species_guess": "European Red Fox",
                "comments_count": 6,
                "time_observed_at": "2021-08-25T07:14:00+00:00",
                "identificat
…(truncated, see openapi.json for full schema)
```

### Taxa

#### `GET /v1/taxa` — Search taxa (species)

**Parameters:**
- `query` (query, required, string) — Species name Example: `red fox`
- `rank` (query, optional, string) — Filter by rank (species, genus…)
- `per_page` (query, optional, string) — Max results Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/inaturalist-api/v1/taxa?query=red+fox&per_page=20"
```

**Response:**
```json
{
    "data": {
        "taxa": [
            {
                "id": 42069,
                "name": "Vulpes vulpes",
                "rank": "species",
                "photo": "https://static.inaturalist.org/photos/265916780/medium.jpg",
                "common_name": "Red Fox",
                "iconic_taxon": "Mammalia"
            },
            {
                "id": 9156,
                "name": "Passerella iliaca",
                "rank": "species",
                "photo": "https://static.inaturalist.org/photos/177760469/medium.jpg",
                "common_name": "Fox Sparrow",
                "iconic_taxon": "Aves"
            },
            {
                "id": 1081616,
                "name": "Vulpes vulpes crucigera",
                "rank": "subspecies",
                "photo": "https://inaturalist-open-data.s3.amazonaws.com/photos/607195408/medium.jpg",
                "common_name": "European Red Fox",
                "iconic_taxon": "Mammalia"
            },
            {
                "id": 126770,
                "name": "Vulpes vulpes fulva",
                "rank": "subspecies",
                "photo": "https://inaturalist-open-data.s3.amazonaws.com/photos/6568100/medium.jpg",
                "common_name": "Eastern American Red Fox",
                "iconic_taxon": "Mammalia"
            },
            {
                "id": 40908,
                "name": "Pteropus scapulatus",
                "rank": "species",
                "photo": "https:/
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/taxon` — Taxon detail

**Parameters:**
- `id` (query, required, string) — Taxon id Example: `42069`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/inaturalist-api/v1/taxon?id=42069"
```

**Response:**
```json
{
    "data": {
        "taxon": {
            "id": 42069,
            "name": "Vulpes vulpes",
            "rank": "species",
            "photo": "https://static.inaturalist.org/photos/265916780/medium.jpg",
            "photos": [
                "https://static.inaturalist.org/photos/265916780/medium.jpg",
                "https://inaturalist-open-data.s3.amazonaws.com/photos/6568074/medium.jpg",
                "https://inaturalist-open-data.s3.amazonaws.com/photos/212643682/medium.jpeg",
                "https://inaturalist-open-data.s3.amazonaws.com/photos/15458580/medium.jpg",
                "https://inaturalist-open-data.s3.amazonaws.com/photos/254372438/medium.jpeg",
                "https://inaturalist-open-data.s3.amazonaws.com/photos/361375699/medium.jpg"
            ],
            "extinct": false,
            "ancestors": [
                {
                    "id": 1,
                    "name": "Animalia",
                    "rank": "kingdom",
                    "common_name": "Animals"
                },
                {
                    "id": 2,
                    "name": "Chordata",
                    "rank": "phylum",
                    "common_name": "Chordates"
                },
                {
                    "id": 355675,
                    "name": "Vertebrata",
                    "rank": "subphylum",
                    "common_name": "Vertebrates"
                },
                {
                    "id": 40151,
            
…(truncated, see openapi.json for full schema)
```

### Discover

#### `GET /v1/observers` — Top observers

**Parameters:**
- `place_id` (query, optional, string) — Place id Example: `1`
- `taxon_id` (query, optional, string) — Taxon id
- `per_page` (query, optional, string) — Max results Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/inaturalist-api/v1/observers?place_id=1&per_page=20"
```

**Response:**
```json
{
    "data": {
        "count": 20,
        "total": 2353029,
        "observers": [
            {
                "user": {
                    "icon": "https://static.inaturalist.org/attachments/users/icons/264009/081f51703025eefe742a791fb22c7ae7-thumb.jpeg?1766241360",
                    "name": "CK2AZ",
                    "login": "ck2az",
                    "observations_count": 330735
                },
                "species_count": 5358,
                "observation_count": 330699
            },
            {
                "user": {
                    "icon": "https://static.inaturalist.org/attachments/users/icons/35078/thumb.jpg?1651598975",
                    "name": "Sara Rall",
                    "login": "srall",
                    "observations_count": 223229
                },
                "species_count": 4696,
                "observation_count": 222336
            },
            {
                "user": {
                    "icon": "https://static.inaturalist.org/attachments/users/icons/18812/thumb.jpg?1525570774",
                    "name": "Jon McIntyre",
                    "login": "mako252",
                    "observations_count": 186326
                },
                "species_count": 7004,
                "observation_count": 183788
            },
            {
                "user": {
                    "icon": "https://static.inaturalist.org/attachments/users/icons/420537/thumb.jpg?1715402987",
                    "name": "S
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/places` — Place autocomplete

**Parameters:**
- `query` (query, required, string) — Place name Example: `yosemite`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/inaturalist-api/v1/places?query=yosemite"
```

**Response:**
```json
{
    "data": {
        "count": 7,
        "query": "yosemite",
        "places": [
            {
                "id": 68542,
                "name": "Yosemite National Park",
                "bbox_area": 0.47630637002023085,
                "place_type": 100,
                "display_name": "Yosemite National Park, US, CA",
                "ancestor_place_ids": [
                    97394,
                    1,
                    14,
                    68542
                ]
            },
            {
                "id": 5390,
                "name": "Yosemite Lake Regional Park",
                "bbox_area": 0.00036592042573499873,
                "place_type": 100,
                "display_name": "Yosemite Lake Regional Park, CA, US",
                "ancestor_place_ids": [
                    97394,
                    1,
                    14,
                    340,
                    5390
                ]
            },
            {
                "id": 123896,
                "name": "Yosemite Wilderness",
                "bbox_area": 0.4756443653046437,
                "place_type": 100,
                "display_name": "Yosemite Wilderness, US, CA",
                "ancestor_place_ids": [
                    97394,
                    1,
                    14,
                    68542,
                    123896
                ]
            },
            {
                "id": 65385,
                "name": "Yosemite Valley Walls",
              
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/species-counts` — Most-observed species in a place

**Parameters:**
- `place_id` (query, optional, string) — Place id Example: `1`
- `lat` (query, optional, string) — Latitude (with lng)
- `lng` (query, optional, string) — Longitude (with lat)
- `per_page` (query, optional, string) — Max results Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/inaturalist-api/v1/species-counts?place_id=1&per_page=20"
```

**Response:**
```json
{
    "data": {
        "count": 20,
        "total": 135271,
        "species": [
            {
                "count": 407444,
                "taxon": {
                    "id": 6930,
                    "name": "Anas platyrhynchos",
                    "rank": "species",
                    "photo": "https://inaturalist-open-data.s3.amazonaws.com/photos/95268822/medium.jpg",
                    "common_name": "Mallard",
                    "iconic_taxon": "Aves"
                }
            },
            {
                "count": 354490,
                "taxon": {
                    "id": 48662,
                    "name": "Danaus plexippus",
                    "rank": "species",
                    "photo": "https://inaturalist-open-data.s3.amazonaws.com/photos/227923335/medium.jpeg",
                    "common_name": "Monarch",
                    "iconic_taxon": "Insecta"
                }
            },
            {
                "count": 351938,
                "taxon": {
                    "id": 47219,
                    "name": "Apis mellifera",
                    "rank": "species",
                    "photo": "https://static.inaturalist.org/photos/2369526/medium.jpg",
                    "common_name": "Western Honey Bee",
                    "iconic_taxon": "Insecta"
                }
            },
            {
                "count": 344513,
                "taxon": {
                    "id": 4956,
                    "name": "Ardea herodias",
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Spec

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/inaturalist-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "service": "inaturalist-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/taxa": "Search taxa (species).",
            "GET /v1/taxon": "Taxon detail by id (ancestry, photos, conservation).",
            "GET /v1/places": "Place autocomplete.",
            "GET /v1/observers": "Top observers (place_id or taxon_id).",
            "GET /v1/observation": "Observation detail by id.",
            "GET /v1/observations": "Search observations (q, taxon_name, place_id, order_by).",
            "GET /v1/species-counts": "Most-observed species in a place (place_id or lat/lng)."
        },
        "description": "iNaturalist: citizen-science nature data — search observations (with photos), observation detail, search taxa (species) and taxon detail, most-observed species per place, place autocomplete and top observers. Real live data, no key."
    },
    "meta": {
        "timestamp": "2026-06-07T16:46:50.915Z",
        "request_id": "bcfb205a-ee66-46e0-b89f-d02b3c24e88f"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/inaturalist-api
OpenAPI spec: https://www.oanor.com/api/inaturalist-api/openapi.json
