---
title: "Return projects as user has joined / followed."
method: GET
path: "/users/{id}/projects"
tags: ["Users"]
---

# Return projects as user has joined / followed.

`GET /users/{id}/projects`

## Path parameters

- `id` integer, required

## Query parameters

- `page` integer
- `per_page` integer
- `fields` unknown

## Headers

- `X-HTTP-Method-Override` string

## Response `200`

An array of projects.

- ResultsProjects
  - `total_results` integer, required
  - `page` integer, required
  - `per_page` integer, required
  - `results` Project[], required
    - `id` integer, required — Unique auto-increment integer identifier.
    - `admins` object[]
      - `id` integer
      - `project_id` integer
      - `role` string
      - `user` User, nullable
        - `id` integer, required — Unique auto-increment integer identifier.
        - `uuid` string, uuid
        - `created_at` string, date-time
        - `description` string, nullable
        - `faved_project_ids` number[] — Ordered list of IDs of projects the user has faved
        - `icon` string, nullable
        - `icon_url` string, nullable
        - `identifications_count` integer
        - `journal_posts_count` integer
        - `annotated_observations_count` integer
        - `last_active` string, date-time
        - `login` string
        - `monthly_supporter` boolean, nullable
        - `name` string, nullable
        - `observations_count` integer
        - `orcid` string, nullable
        - `preferences` object
          - `prefers_community_taxa` boolean — Whether the user allows the Community Taxon to be the taxon their observation is associated with
          - `prefers_observation_fields_by` 'anyone' | 'curators' | 'observer'
          - `prefers_project_addition_by` 'any' | 'joined' | 'none'
        - `roles` string[]
        - `site` Site, nullable
          - `id` integer, required — Unique auto-increment integer identifier.
          - `icon_url` string — URL of an icon image for the site
          - `locale` string, nullable — Default language code for users of this site
          - `name` string — Full name of the site
          - `place_id` integer, nullable — Integer ID of the default search place for this site
          - `site_name_short` string, nullable — Short name for this site
          - `url` string
        - `site_id` integer, nullable
        - `spam` boolean
        - `species_count` integer
        - `suspended` boolean
        - `updated_at` string, date-time
      - `user_id` integer
    - `banner_color` string, nullable
    - `created_at` string
    - `delegated_project_id` integer, nullable
    - `description` string, nullable
    - `flags` Flag[]
      - `id` integer, required — Unique auto-increment integer identifier.
      - `comment` string, nullable
      - `created_at` string, date-time
      - `created_at_utc` string, date-time, nullable
      - `flag` string
      - `flaggable_content` string, nullable
      - `flaggable_id` integer, nullable
      - `flaggable_type` string, nullable
      - `flaggable_user_id` integer, nullable
      - `resolved` boolean
      - `resolver_id` integer, nullable
      - `resolved_at` string, date-time, nullable
      - `updated_at` string, date-time, nullable
      - `updated_at_utc` string, date-time, nullable
      - `user` User, nullable
        - `id` integer, required — Unique auto-increment integer identifier.
        - `uuid` string, uuid
        - `created_at` string, date-time
        - `description` string, nullable
        - `faved_project_ids` number[] — Ordered list of IDs of projects the user has faved
        - `icon` string, nullable
        - `icon_url` string, nullable
        - `identifications_count` integer
        - `journal_posts_count` integer
        - `annotated_observations_count` integer
        - `last_active` string, date-time
        - `login` string
        - `monthly_supporter` boolean, nullable
        - `name` string, nullable
        - `observations_count` integer
        - `orcid` string, nullable
        - `preferences` object
          - `prefers_community_taxa` boolean — Whether the user allows the Community Taxon to be the taxon their observation is associated with
          - `prefers_observation_fields_by` 'anyone' | 'curators' | 'observer'
          - `prefers_project_addition_by` 'any' | 'joined' | 'none'
        - `roles` string[]
        - `site` Site, nullable
          - `id` integer, required — Unique auto-increment integer identifier.
          - `icon_url` string — URL of an icon image for the site
          - `locale` string, nullable — Default language code for users of this site
          - `name` string — Full name of the site
          - `place_id` integer, nullable — Integer ID of the default search place for this site
          - `site_name_short` string, nullable — Short name for this site
          - `url` string
        - `site_id` integer, nullable
        - `spam` boolean
        - `species_count` integer
        - `suspended` boolean
        - `updated_at` string, date-time
      - `user_id` integer
      - `uuid` string, uuid, nullable
    - `header_image_contain` boolean
    - `header_image_file_name` string, nullable
    - `header_image_url` string, nullable
    - `hide_leaderboard` boolean
    - `hide_title` boolean
    - `hide_umbrella_map_flags` boolean
    - `icon` string, nullable
    - `icon_file_name` string, nullable
    - `is_delegated_umbrella` boolean, nullable
    - `is_umbrella` boolean
    - `latitude` string
    - `location` string, nullable
    - `longitude` string
    - `membership_model` string, nullable
    - `observation_requirements_updated_at` string, date-time, nullable
    - `place_id` integer, nullable
    - `prefers_user_trust` boolean, nullable
    - `project_observation_fields` object[]
      - `id` integer, required
      - `observation_field` ObservationField
        - `id` integer, required — Unique auto-increment integer identifier.
        - `allowed_values` string, nullable
        - `datatype` string
        - `description` string, nullable
        - `description_autocomplete` string, nullable
        - `name` string
        - `name_autocomplete` string
        - `users_count` integer, nullable
        - `uuid` string, uuid
        - `values_count` integer, nullable
      - `position` integer
      - `required` boolean, nullable
    - `project_observation_rules` object[]
      - `id` integer, required
      - `operand_id` integer, nullable
      - `operand_type` string, nullable
      - `operator` string
      - `place` Place, nullable
        - `id` integer, required — Unique auto-increment integer identifier.
        - `admin_level` integer, nullable
        - `ancestor_place_ids` integer[], nullable
        - `bbox_area` number, float, nullable
        - `bounding_box_geojson` PolygonGeoJson, nullable
          - `type` string, required
          - `coordinates` union, required
            - array[]
              - …
            - array[]
              - …
        - `display_name` string, nullable
        - `display_name_autocomplete` string, nullable
        - `geometry_geojson` PolygonGeoJson, nullable
          - `type` string, required
          - `coordinates` union, required
            - array[]
              - …
            - array[]
              - …
        - `location` string, nullable
        - `matched_term` string, nullable
        - `name` string
        - `observations_count` integer
        - `place_type` integer, nullable
        - `point_geojson` PointGeoJson, nullable
          - `coordinates` number[], required
          - `type` string, required
        - `slug` string, nullable
        - `universal_search_rank` integer, nullable
        - `user` User, nullable
          - `id` integer, required — Unique auto-increment integer identifier.
          - `uuid` string, uuid
          - `created_at` string, date-time
          - `description` string, nullable
          - `faved_project_ids` number[] — Ordered list of IDs of projects the user has faved
          - `icon` string, nullable
          - `icon_url` string, nullable
          - `identifications_count` integer
          - `journal_posts_count` integer
          - `annotated_observations_count` integer
          - `last_active` string, date-time
          - `login` string
          - `monthly_supporter` boolean, nullable
          - `name` string, nullable
          - `observations_count` integer
          - `orcid` string, nullable
          - `preferences` object
            - `prefers_community_taxa` boolean — Whether the user allows the Community Taxon to be the taxon their observation is associated with
            - `prefers_observation_fields_by` 'anyone' | 'curators' | 'observer'
            - `prefers_project_addition_by` 'any' | 'joined' | 'none'
          - `roles` string[]
          - `site` Site, nullable
            - `id` integer, required — Unique auto-increment integer identifier.
            - `icon_url` string — URL of an icon image for the site
            - `locale` string, nullable — Default language code for users of this site
            - `name` string — Full name of the site
            - `place_id` integer, nullable — Integer ID of the default search place for this site
            - `site_name_short` string, nullable — Short name for this site
            - `url` string
          - `site_id` integer, nullable
          - `spam` boolean
          - `species_count` integer
          - `suspended` boolean
          - `updated_at` string, date-time
        - `uuid` string, uuid
        - `without_check_list` boolean, nullable
      - `project` Project — recursive
      - `taxon` Taxon, nullable
        - `id` integer, required — Unique auto-increment integer identifier.
        - `uuid` string, uuid
        - `ancestors` Taxon[]
        - `ancestor_ids` integer[]
        - `ancestry` string, nullable
        - `atlas_id` integer, nullable
        - `children` Taxon[]
        - `complete_rank` string
        - `complete_species_count` integer, nullable
        - `conservation_status` ConservationStatus, nullable
          - `id` integer, required
          - `authority` string, nullable
          - `description` string, nullable
          - `geoprivacy` string, nullable
          - `iucn` integer
          - `iucn_status` string
          - `iucn_status_code` string
          - `place` object, nullable
            - `id` integer
            - `name` string
            - `display_name` string
            - `ancestry` string, nullable
          - `place_id` integer, nullable
          - `source_id` integer, nullable
          - `status` string
          - `status_name` string
          - `taxon_id` integer
          - `user_id` integer, nullable
          - `url` string, nullable
        - `conservation_statuses` ConservationStatus[]
          - `id` integer, required
          - `authority` string, nullable
          - `description` string, nullable
          - `geoprivacy` string, nullable
          - `iucn` integer
          - `iucn_status` string
          - `iucn_status_code` string
          - `place` object, nullable
            - `id` integer
            - `name` string
            - `display_name` string
            - `ancestry` string, nullable
          - `place_id` integer, nullable
          - `source_id` integer, nullable
          - `status` string
          - `status_name` string
          - `taxon_id` integer
          - `user_id` integer, nullable
          - `url` string, nullable
        - `created_at` string
        - `current_synonymous_taxon_ids` integer[], nullable
        - `default_photo` Photo, nullable
          - `id` integer, required — Unique auto-increment integer identifier.
          - `attribution` string
          - `attribution_name` string, nullable
          - `flags` Flag[]
            - `id` integer, required — Unique auto-increment integer identifier.
            - `comment` string, nullable
            - `created_at` string, date-time
            - `created_at_utc` string, date-time, nullable
            - `flag` string
            - `flaggable_content` string, nullable
            - `flaggable_id` integer, nullable
            - `flaggable_type` string, nullable
            - `flaggable_user_id` integer, nullable
            - `resolved` boolean
            - `resolver_id` integer, nullable
            - `resolved_at` string, date-time, nullable
            - `updated_at` string, date-time, nullable
            - `updated_at_utc` string, date-time, nullable
            - `user` User, nullable
              - …
            - `user_id` integer
            - `uuid` string, uuid, nullable
          - `hidden` boolean
          - `large_url` string, nullable
          - `license_code` string, nullable
          - `medium_url` string, nullable
          - `moderator_actions` ModeratorAction[]
            - `id` integer, required — Unique auto-increment integer identifier.
            - `created_at` string
            - `created_at_details` DateDetails, nullable
              - …
            - `user` User, nullable
              - …
            - `action` string
            - `reason` string
            - `private` boolean
          - `native_page_url` string, nullable
          - `native_photo_id` string, nullable
          - `original_dimensions` object, nullable
            - `height` integer, nullable
            - `width` integer, nullable
          - `original_url` string, nullable
          - `small_url` string, nullable
          - `square_url` string, nullable
          - `type` string
          - `url` string, nullable
          - `original_filename` string, nullable
        - `endemic` boolean
        - `english_common_name` string
        - `establishment_means` object
          - `establishment_means` string
          - `id` integer
          - `place` object
            - `id` integer
            - `name` string
            - `display_name` string
            - `ancestry` string, nullable
        - `preferred_establishment_means` string
        - `extinct` boolean
        - `provisional` boolean
        - `flag_counts` object
          - `resolved` integer
          - `unresolved` integer
        - `iconic_taxon_id` integer, nullable
        - `iconic_taxon_name` string, nullable
        - `introduced` boolean
        - `is_active` boolean
        - `listed_taxa` object[]
          - `id` integer
          - `establishment_means` string
          - `list` List, nullable
            - `id` integer, required — Unique auto-increment integer identifier.
            - `title` string, nullable
          - `taxon` Taxon — recursive
          - `taxon_id` integer
          - `place` Place, nullable
            - `id` integer, required — Unique auto-increment integer identifier.
            - `admin_level` integer, nullable
            - `ancestor_place_ids` integer[], nullable
            - `bbox_area` number, float, nullable
            - `bounding_box_geojson` PolygonGeoJson, nullable
              - …
            - `display_name` string, nullable
            - `display_name_autocomplete` string, nullable
            - `geometry_geojson` PolygonGeoJson, nullable
              - …
            - `location` string, nullable
            - `matched_term` string, nullable
            - `name` string
            - `observations_count` integer
            - `place_type` integer, nullable
            - `point_geojson` PointGeoJson, nullable
              - …
            - `slug` string, nullable
            - `universal_search_rank` integer, nullable
            - `user` User, nullable
              - …
            - `uuid` string, uuid
            - `without_check_list` boolean, nullable
        - `listed_taxa_count` integer
        - `matched_term` string
        - `min_species_ancestry` string
        - `min_species_taxon_id` integer
        - `name` string
        - `native` boolean
        - `observations_count` integer
        - `parent_id` integer, nullable
        - `photos_locked` boolean — Whether or not photos for this taxon can be edited
        - `preferred_common_name` string, nullable
        - `preferred_common_names` unknown[], nullable
          - unknown
        - `rank` string
        - `rank_level` number, float
        - `representative_photo` Photo, nullable
          - `id` integer, required — Unique auto-increment integer identifier.
          - `attribution` string
          - `attribution_name` string, nullable
          - `flags` Flag[]
            - `id` integer, required — Unique auto-increment integer identifier.
            - `comment` string, nullable
            - `created_at` string, date-time
            - `created_at_utc` string, date-time, nullable
            - `flag` string
            - `flaggable_content` string, nullable
            - `flaggable_id` integer, nullable
            - `flaggable_type` string, nullable
            - `flaggable_user_id` integer, nullable
            - `resolved` boolean
            - `resolver_id` integer, nullable
            - `resolved_at` string, date-time, nullable
            - `updated_at` string, date-time, nullable
            - `updated_at_utc` string, date-time, nullable
            - `user` User, nullable
              - …
            - `user_id` integer
            - `uuid` string, uuid, nullable
          - `hidden` boolean
          - `large_url` string, nullable
          - `license_code` string, nullable
          - `medium_url` string, nullable
          - `moderator_actions` ModeratorAction[]
            - `id` integer, required — Unique auto-increment integer identifier.
            - `created_at` string
            - `created_at_details` DateDetails, nullable
              - …
            - `user` User, nullable
              - …
            - `action` string
            - `reason` string
            - `private` boolean
          - `native_page_url` string, nullable
          - `native_photo_id` string, nullable
          - `original_dimensions` object, nullable
            - `height` integer, nullable
            - `width` integer, nullable
          - `original_url` string, nullable
          - `small_url` string, nullable
          - `square_url` string, nullable
          - `type` string
          - `url` string, nullable
          - `original_filename` string, nullable
        - `statuses` unknown[]
          - unknown
        - `taxon_changes_count` integer
        - `taxon_photos` object[]
          - `taxon` Taxon — recursive
          - `taxon_id` integer
          - `photo` Photo, nullable
            - `id` integer, required — Unique auto-increment integer identifier.
            - `attribution` string
            - `attribution_name` string, nullable
            - `flags` Flag[]
              - …
            - `hidden` boolean
            - `large_url` string, nullable
            - `license_code` string, nullable
            - `medium_url` string, nullable
            - `moderator_actions` ModeratorAction[]
              - …
            - `native_page_url` string, nullable
            - `native_photo_id` string, nullable
            - `original_dimensions` object, nullable
              - …
            - `original_url` string, nullable
            - `small_url` string, nullable
            - `square_url` string, nullable
            - `type` string
            - `url` string, nullable
            - `original_filename` string, nullable
        - `taxon_schemes_count` integer
        - `threatened` boolean
        - `universal_search_rank` integer
        - `vision` boolean
        - `wikipedia_summary` string, nullable
        - `wikipedia_url` string, nullable
      - `user` User, nullable
        - `id` integer, required — Unique auto-increment integer identifier.
        - `uuid` string, uuid
        - `created_at` string, date-time
        - `description` string, nullable
        - `faved_project_ids` number[] — Ordered list of IDs of projects the user has faved
        - `icon` string, nullable
        - `icon_url` string, nullable
        - `identifications_count` integer
        - `journal_posts_count` integer
        - `annotated_observations_count` integer
        - `last_active` string, date-time
        - `login` string
        - `monthly_supporter` boolean, nullable
        - `name` string, nullable
        - `observations_count` integer
        - `orcid` string, nullable
        - `preferences` object
          - `prefers_community_taxa` boolean — Whether the user allows the Community Taxon to be the taxon their observation is associated with
          - `prefers_observation_fields_by` 'anyone' | 'curators' | 'observer'
          - `prefers_project_addition_by` 'any' | 'joined' | 'none'
        - `roles` string[]
        - `site` Site, nullable
          - `id` integer, required — Unique auto-increment integer identifier.
          - `icon_url` string — URL of an icon image for the site
          - `locale` string, nullable — Default language code for users of this site
          - `name` string — Full name of the site
          - `place_id` integer, nullable — Integer ID of the default search place for this site
          - `site_name_short` string, nullable — Short name for this site
          - `url` string
        - `site_id` integer, nullable
        - `spam` boolean
        - `species_count` integer
        - `suspended` boolean
        - `updated_at` string, date-time
    - `project_type` string, nullable
    - `rule_preferences` object[]
      - `field` string — Observation attribute this rule assesses
      - `value` unknown
    - `search_parameters` object[]
      - `field` string
      - `value` unknown
      - `value_bool` boolean
      - `value_date` string[]
      - `value_keyword` unknown
      - `value_number` union
        - number, float
        - number[]
    - `site_features` object[], nullable — TODO: fix this
      - `noteworthy` boolean
      - `site_id` integer
      - `featured_at` string, date-time
    - `slug` string
    - `terms` string, nullable
    - `title` string
    - `updated_at` string
    - `user` User, nullable
      - `id` integer, required — Unique auto-increment integer identifier.
      - `uuid` string, uuid
      - `created_at` string, date-time
      - `description` string, nullable
      - `faved_project_ids` number[] — Ordered list of IDs of projects the user has faved
      - `icon` string, nullable
      - `icon_url` string, nullable
      - `identifications_count` integer
      - `journal_posts_count` integer
      - `annotated_observations_count` integer
      - `last_active` string, date-time
      - `login` string
      - `monthly_supporter` boolean, nullable
      - `name` string, nullable
      - `observations_count` integer
      - `orcid` string, nullable
      - `preferences` object
        - `prefers_community_taxa` boolean — Whether the user allows the Community Taxon to be the taxon their observation is associated with
        - `prefers_observation_fields_by` 'anyone' | 'curators' | 'observer'
        - `prefers_project_addition_by` 'any' | 'joined' | 'none'
      - `roles` string[]
      - `site` Site, nullable
        - `id` integer, required — Unique auto-increment integer identifier.
        - `icon_url` string — URL of an icon image for the site
        - `locale` string, nullable — Default language code for users of this site
        - `name` string — Full name of the site
        - `place_id` integer, nullable — Integer ID of the default search place for this site
        - `site_name_short` string, nullable — Short name for this site
        - `url` string
      - `site_id` integer, nullable
      - `spam` boolean
      - `species_count` integer
      - `suspended` boolean
      - `updated_at` string, date-time
    - `user_id` integer
    - `user_ids` integer[]
    - `umbrella_project_list_sort` string, nullable

---

[API](https://skmtc.net/inaturalist/apis/inaturalist-version-2-api.md) · [All operations](https://skmtc.net/inaturalist/apis/inaturalist-version-2-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/inaturalist/inaturalist-version-2-api/revisions/f739db716aaf/schema)
