Is it possible to use the API to attach an existing photo record to an observation?

after a little more testing, here’s what i see:

  1. when using PUT /v1/observations/{obsID} to attach existing photos:

    • the payload must not include "ignore_photos":1
    • the payload of the request must include "local_photos":"{obsID}":[{comma-separated list of photoIDs}]
    • the list of photoIDs must include all photos that need to be included in the observation, including photos already attached to the observation. (for example, if obs A includes photos X and Y, and you want to add Z, then list of photos in your PUT must be [X,Y,Z].
      • if you do not include a photo in the list, it will be dropped from the observation, and photos that dropped from the observation and are not tied to any other observations will be immediately deleted. (for example, if obs A includes photos X and Y, which are tied only to A, and you PUT only [Z], obs A will end up with only Z, and X and Y will be gone. in other words, you need to be careful about accidentally orphaning photos, since orphans are immediately purged.)
    • the system is smart enough to ignore photos that do not belong to you. so you cannot attach someone else’s photos to your observation.
    • the system is smart enough to ignore updates on observations that do not belong to you.
  2. i don’t think it’s possible to attach existing photo records while using POST /v1/observations (to create a new observation). so i think that means that you’d have to create a new observation first and then come back and PUT /v1/observations/{obsID} to add the existing photos to the new observation.

1 Like