---
title: "Search the full iNaturalist animal taxonomy."
method: GET
path: "/taxa"
tags: ["Catalogue"]
---

# Search the full iNaturalist animal taxonomy.

`GET /taxa`

## Request

- Base URL: `https://animalchecklist.com/api/v1`
- URL: `https://animalchecklist.com/api/v1/taxa`
- Auth: none required

Default results are active leaf taxa. rank=all includes higher ranks. status=all retains inactive records. Photos and summaries can be absent. Active leaf taxa can be marked seen with their canonical id. Higher ranks and inactive taxa cannot be newly marked seen. Quiz eligibility still requires a licensed photo.

## Query parameters

- `q` string
- `page` integer
- `per` integer
- `family` string
- `lang` 'en' | 'de' | 'es' | 'fr' | 'it' | 'nl' | 'pt' | 'pl': Display language of `name`, category labels and the summary. Falls back to `en`.
- `rank` string
- `category` 'mammals' | 'birds' | 'reptiles' | 'amphibians' | 'fish' | 'insects' | 'other'
- `status` 'active' | 'inactive' | 'all'
- `parentId` integer
- `cursor` string

## Response `200`

Reference taxa. Cached for 60 seconds.

- object
  - `data` object, required
    - `items` ReferenceTaxon[], required
      - `inatId` integer, required
      - `nameSci` string, required
      - `taxonRank` string, required: Raw iNaturalist rank.
      - `parentNameSci` string, nullable, required
      - `categoryId` 'mammals' | 'birds' | 'reptiles' | 'amphibians' | 'fish' | 'insects' | 'other', required
      - `family` string, nullable, required
      - `sourceUrl` string, uri, required
      - `animalId` string, nullable, required: Existing catalog ID. Null when no legacy catalog entry is linked.
      - `id` string: Slug of the animal taxon, for example `red-fox`.
      - `name` string
      - `nameEn` string
      - `parentId` integer, nullable
      - `active` boolean
      - `status` 'active' | 'inactive'
      - `tickable` boolean: Active supported leaf taxon. Photo presence is not required.
      - `image` object, nullable
        - `url` string, uri, required
    - `total` integer, required
    - `page` integer, required
    - `per` integer, required
    - `nextCursor` string, nullable
    - `complete` boolean
    - `sources` object[]
      - `sourceKey` string, required
      - `url` string, uri, required
      - `snapshotDate` string, required
      - `sha256` string, required
      - `recordCount` integer, required
      - `importedAt` string, required
      - `complete` boolean, required
      - `rights` object
        - `license` string, nullable
        - `licenseUrl` string, uri, nullable
        - `status` 'not-supplied'
        - `note` string
    - `counts` object[]
      - `status` string
      - `rank` string
      - `categoryId` string
      - `total` integer

## Other responses

- `400`: Invalid input.
- `404`: Not found.
- `429`: Rate limited.
- `500`: Unexpected error.

---

[API](https://skmtc.dev/animalchecklist/apis/animal-checklist-api.md) · [All operations](https://skmtc.dev/animalchecklist/apis/animal-checklist-api/llms.txt) · [OpenAPI document](https://skmtc.dev/animalchecklist/apis/animal-checklist-api/revisions/0910760ad25b?raw)
