---
title: "Update a project observation"
method: PUT
path: "/project_observations/{uuid}"
tags: ["ProjectObservations"]
---

# Update a project observation

`PUT /project_observations/{uuid}`

## Path parameters

- `uuid` string, uuid, required

## Request body

- ProjectObservationsUpdate
  - `fields` unknown
  - `project_observation` object
    - `prefers_curator_coordinate_access` boolean — Whether the observer allows project curators to view the coordinates of this observation

## Response `200`

A list of project observations

- ResultsProjectObservations
  - `total_results` integer, required
  - `page` integer, required
  - `per_page` integer, required
  - `results` ProjectObservation[], required
    - `id` integer, required — Unique auto-increment integer identifier.
    - `current_user_is_member` boolean
    - `preferences` object
      - `allows_curator_coordinate_access` boolean
    - `project` Project, nullable
      - `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
              - …
          - `display_name` string, nullable
          - `display_name_autocomplete` string, nullable
          - `geometry_geojson` PolygonGeoJson, nullable
            - `type` string, required
            - `coordinates` union, required
              - …
          - `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
              - …
            - `roles` string[]
            - `site` Site, nullable
              - …
            - `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
              - …
            - `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
              - …
            - `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[]
              - …
            - `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
          - `endemic` boolean
          - `english_common_name` string
          - `establishment_means` object
            - `establishment_means` string
            - `id` integer
            - `place` object
              - …
          - `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
              - …
            - `taxon` Taxon — recursive
            - `taxon_id` integer
            - `place` Place, 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[]
              - …
            - `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
          - `statuses` unknown[]
            - unknown
          - `taxon_changes_count` integer
          - `taxon_photos` object[]
            - `taxon` Taxon — recursive
            - `taxon_id` integer
            - `photo` Photo, 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
    - `project_id` integer
    - `project_user` ProjectUser
      - `id` integer, required — Unique auto-increment integer identifier.
      - `observations_count` integer
      - `prefers_curator_coordinate_access_for` string
      - `project_id` integer
      - `role` string, nullable
      - `taxa_count` integer
      - `user_id` integer
      - `created_at` string, date-time
      - `created_at_utc` string, date-time
      - `updated_at` string, date-time
      - `updated_at_utc` string, date-time
    - `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, nullable
    - `uuid` string, uuid, required

## Other responses

- `default` — Unexpected error

---

[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)
