iNaturalist Users API

Fetch and update

Operations 9

GET /users/{id} User Details #
PUT /users/{id} User Update #
GET /users/{id}/projects User Projects #
GET /users/autocomplete User Autocomplete #
GET /users/me Users Me #
POST /users/{id}/mute Mute a User #
DELETE /users/{id}/mute Unmute a User #
POST /users/resend_confirmation User Resend Confirmation #
PUT /users/update_session User Update Session #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/inaturalist-users-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

inaturalist-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: iNaturalist Users API
  description: '# https://api.inaturalist.org/v1/


    iNaturalist is a global community of

    naturalists, scientists, and members of the public sharing over a million

    wildlife sightings to teach one another about the natural world while

    creating high quality citizen science data for science and conservation.'
  version: 1.3.0
servers:
- url: /v1
tags:
- name: Users
  description: Fetch and update
paths:
  /users/{id}:
    get:
      summary: User Details
      description: Given an ID, returns corresponding user
      parameters:
      - $ref: '#/components/parameters/path_id'
      tags:
      - Users
      responses:
        '200':
          description: OK
      operationId: getUsersById
      x-operation-id-source: derived
    put:
      summary: User Update
      description: Update a user
      parameters:
      - $ref: '#/components/parameters/path_id'
      tags:
      - Users
      security:
      - api_token: []
      responses:
        '200':
          description: OK
      operationId: putUsersById
      x-operation-id-source: derived
  /users/{id}/projects:
    get:
      summary: User Projects
      description: Return projects as user has joined / followed
      parameters:
      - $ref: '#/components/parameters/path_id'
      - $ref: '#/components/parameters/rule_details'
      - $ref: '#/components/parameters/project_type'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/per_page'
      tags:
      - Users
      responses:
        '200':
          description: OK
      operationId: getUsersByIdProjects
      x-operation-id-source: derived
  /users/autocomplete:
    get:
      summary: User Autocomplete
      description: Given an string, returns users with names or logins starting with the search term
      parameters:
      - $ref: '#/components/parameters/autocomplete_q'
      - $ref: '#/components/parameters/autocomplete_project_id'
      - $ref: '#/components/parameters/per_page'
      tags:
      - Users
      responses:
        '200':
          description: OK
      operationId: getUsersAutocomplete
      x-operation-id-source: derived
  /users/me:
    get:
      summary: Users Me
      description: Fetch the logged-in user
      tags:
      - Users
      security:
      - api_token: []
      responses:
        '200':
          description: OK
      operationId: getUsersMe
      x-operation-id-source: derived
  /users/{id}/mute:
    post:
      summary: Mute a User
      description: 'Make it so the authenticated user stops receiving notifications about

        activity by the user specified by {id}.'
      tags:
      - Users
      security:
      - api_token: []
      parameters:
      - $ref: '#/components/parameters/path_id'
      responses:
        '200':
          description: Returns an empty 200 response on success
        '404':
          description: Specified user does not exist
      operationId: postUsersByIdMute
      x-operation-id-source: derived
    delete:
      summary: Unmute a User
      description: Remove a mute on the user specified by {id}
      tags:
      - Users
      security:
      - api_token: []
      parameters:
      - $ref: '#/components/parameters/path_id'
      responses:
        '200':
          description: Returns an empty 200 response on success
        '404':
          description: Specified user does not exist
      operationId: deleteUsersByIdMute
      x-operation-id-source: derived
  /users/resend_confirmation:
    post:
      summary: User Resend Confirmation
      description: Resend an email confirmation
      tags:
      - Users
      security:
      - api_token: []
      responses:
        '200':
          description: OK
      operationId: postUsersResendConfirmation
      x-operation-id-source: derived
  /users/update_session:
    put:
      summary: User Update Session
      description: Update the logged-in user's session
      tags:
      - Users
      security:
      - api_token: []
      responses:
        '200':
          description: OK
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostUserUpdateSession'
        description: Comment object
      operationId: putUsersUpdateSession
      x-operation-id-source: derived
components:
  parameters:
    path_id:
      name: id
      in: path
      required: true
      description: ID of the record
      schema:
        type: integer
    project_type:
      name: project_type
      in: query
      description: 'Specify the type of project to return

        '
      schema:
        type: string
        enum:
        - traditional
        - collection
        - umbrella
    autocomplete_project_id:
      name: project_id
      in: query
      description: Only show users with memberships to this project
      schema:
        type: integer
    page:
      name: page
      in: query
      description: Pagination `page` number
      schema:
        type: string
    autocomplete_q:
      name: q
      in: query
      required: true
      description: Search by name (must start with this value) or by ID (exact match).
      schema:
        type: string
    per_page:
      name: per_page
      in: query
      description: 'Number of results to return in a `page`. The maximum value is generally

        200 unless otherwise noted

        '
      schema:
        type: string
    rule_details:
      name: rule_details
      in: query
      description: 'Return more information about project rules, for example return a full

        taxon object instead of simply an ID

        '
      schema:
        type: string
        enum:
        - true
  schemas:
    PostUserUpdateSession:
      type: object
      properties:
        preferred_taxon_page_ancestors_shown:
          type: boolean
        preferred_taxon_page_place_id:
          type: integer
        preferred_taxon_page_tab:
          type: string
        prefers_skip_coarer_id_modal:
          type: boolean
        prefers_hide_obs_show_annotations:
          type: boolean
        prefers_hide_obs_show_projects:
          type: boolean
        prefers_hide_obs_show_tags:
          type: boolean
        prefers_hide_obs_show_observation_fields:
          type: boolean
        prefers_hide_obs_show_identifiers:
          type: boolean
        prefers_hide_obs_show_copyright:
          type: boolean
        prefers_hide_obs_show_quality_metrics:
          type: boolean
  securitySchemes:
    api_token:
      type: apiKey
      name: Authorization
      in: header