# Photos

## GET /photos

>

```json
{"openapi":"3.1.0","info":{"title":"Api","version":"0.0.1"},"tags":[{"name":"photos"}],"security":[{"bearer":[]},{"apiKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"},"apiKey":{"type":"apiKey","name":"X-API-Key","in":"header"}},"schemas":{"PhotoItem":{"type":"object","required":["key","url","date","nodeId"],"properties":{"key":{"type":"string"},"url":{"type":"string"},"date":{"$ref":"#/components/schemas/DateFromString"},"nodeId":{"type":"string"},"size":{"type":"number"},"lastModified":{"$ref":"#/components/schemas/DateFromString"}},"additionalProperties":false,"description":"A photo stored in S3 with a signed URL","title":"Photo Item"},"DateFromString":{"type":"string","description":"a string to be decoded into a Date"},"HttpApiDecodeError":{"type":"object","required":["issues","message","_tag"],"properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/Issue"}},"message":{"type":"string"},"_tag":{"type":"string","enum":["HttpApiDecodeError"]}},"additionalProperties":false,"description":"The request did not match the expected schema"},"Issue":{"type":"object","required":["_tag","path","message"],"properties":{"_tag":{"type":"string","enum":["Pointer","Unexpected","Missing","Composite","Refinement","Transformation","Type","Forbidden"],"description":"The tag identifying the type of parse issue"},"path":{"type":"array","items":{"$ref":"#/components/schemas/PropertyKey"},"description":"The path to the property where the issue occurred"},"message":{"type":"string","description":"A descriptive message explaining the issue"}},"additionalProperties":false,"description":"Represents an error encountered while parsing a value to match the schema"},"PropertyKey":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","required":["_tag","key"],"properties":{"_tag":{"type":"string","enum":["symbol"]},"key":{"type":"string"}},"additionalProperties":false,"description":"an object to be decoded into a globally shared symbol"}]},"BadRequest":{"type":"object","required":["message","cause","_tag"],"properties":{"message":{"type":"string"},"cause":{"$id":"/schemas/unknown","title":"unknown"},"_tag":{"type":"string","enum":["BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or cannot be otherwise served"},"Unauthorized":{"type":"object","required":["message","cause","_tag"],"properties":{"message":{"type":"string"},"cause":{"$id":"/schemas/unknown","title":"unknown"},"_tag":{"type":"string","enum":["Unauthorized"]}},"additionalProperties":false,"description":"Authentication is required and has failed or has not been provided"},"Forbidden":{"type":"object","required":["message","cause","_tag"],"properties":{"message":{"type":"string"},"cause":{"$id":"/schemas/unknown","title":"unknown"},"_tag":{"type":"string","enum":["Forbidden"]}},"additionalProperties":false,"description":"The server understood the request but refuses to authorize it"},"UserAccessNotWithinAllowedWindowHttpError":{"type":"object","required":["message","_tag"],"properties":{"message":{"type":"string"},"_tag":{"type":"string","enum":["UserAccessNotWithinAllowedWindowHttpError"]}},"additionalProperties":false,"description":"User access is not within the allowed time window"},"NotFound":{"type":"object","required":["message","cause","_tag"],"properties":{"message":{"type":"string"},"cause":{"$id":"/schemas/unknown","title":"unknown"},"_tag":{"type":"string","enum":["NotFound"]}},"additionalProperties":false,"description":"The requested resource could not be found"},"TooManyRequests":{"type":"object","required":["message","cause","_tag"],"properties":{"message":{"type":"string"},"cause":{"$id":"/schemas/unknown","title":"unknown"},"retryAfterSeconds":{"type":"number"},"_tag":{"type":"string","enum":["TooManyRequests"]}},"additionalProperties":false,"description":"The user has sent too many requests in a given amount of time"},"InternalServerError":{"type":"object","required":["message","cause","_tag"],"properties":{"message":{"type":"string"},"cause":{"$id":"/schemas/unknown","title":"unknown"},"_tag":{"type":"string","enum":["InternalServerError"]}},"additionalProperties":false,"description":"The server has encountered a situation it doesn't know how to handle"},"ServiceUnavailable":{"type":"object","required":["message","cause","_tag"],"properties":{"message":{"type":"string"},"cause":{"$id":"/schemas/unknown","title":"unknown"},"_tag":{"type":"string","enum":["ServiceUnavailable"]}},"additionalProperties":false,"description":"The server is not ready to handle the request"}}},"paths":{"/photos":{"get":{"tags":["photos"],"operationId":"photos.listPhotos","parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PhotoItem"}}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"$ref":"#/components/schemas/BadRequest"}]}}}},"401":{"description":"Authentication is required and has failed or has not been provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthorized"}}}},"403":{"description":"The server understood the request but refuses to authorize it","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UserAccessNotWithinAllowedWindowHttpError"}]}}}},"404":{"description":"The requested resource could not be found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"429":{"description":"The user has sent too many requests in a given amount of time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequests"}}}},"500":{"description":"The server has encountered a situation it doesn't know how to handle","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}}},"503":{"description":"The server is not ready to handle the request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailable"}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ecosuite.io/api/ecosuite-project-data-api/photos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
