> ## Documentation Index
> Fetch the complete documentation index at: https://docs.9pic.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# All Photos

> Get the full paginated photo gallery for an event

## Overview

Returns the complete set of photos for an event as paginated image objects (large URL, thumbnail URL, image ID, width, height). Use this to render an event's gallery without filtering by BIB or selfie. Photos are ordered by capture timestamp ascending; photos with no timestamp are returned last. The order is stable across pages.

<Note>
  This endpoint always returns every photo mapped to the event. It does not honour internal visibility flags such as `show_all_images` or `custom_show_images`.
</Note>

## Endpoint

```
GET /api/v1/ext/{org_id}/event/{event_id}/images
```

## Path Parameters

| Parameter  | Type   | Required | Description                              |
| ---------- | ------ | -------- | ---------------------------------------- |
| `org_id`   | number | Yes      | Your organisation ID.                    |
| `event_id` | number | Yes      | The event whose photos you want to list. |

## Query Parameters

| Parameter   | Type   | Required | Description                                  |
| ----------- | ------ | -------- | -------------------------------------------- |
| `page`      | number | No       | Page number (default: `1`).                  |
| `page_size` | number | No       | Images per page (default: `32`, max: `100`). |

<Note>
  This endpoint returns paginated results. See the [Pagination Model](/api-reference/models/pagination).
</Note>

## Example Request

<CodeGroup>
  ```bash cURL theme={null}
  curl -i \
    -H "X-API-Key: <your_9pic_api_key>" \
    "https://api.9pic.ai/api/v1/ext/903/event/456/images?page=1&page_size=32"
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api.9pic.ai/api/v1/ext/903/event/456/images",
      headers={"X-API-Key": "<your_9pic_api_key>"},
      params={"page": 1, "page_size": 32},
  )
  print(response.status_code, response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    "https://api.9pic.ai/api/v1/ext/903/event/456/images?page=1&page_size=32",
    { headers: { "X-API-Key": "<your_9pic_api_key>" } }
  );
  console.log(await response.json());
  ```
</CodeGroup>

## Example Response

<Tabs>
  <Tab title="Images Found">
    ```json theme={null}
    {
      "responseType": "success",
      "message": "Records for all images",
      "data": {
        "images": [
          {
            "img_url": "https://photos.9pic.ai/imgs/456/large/a4402318-0cf4-4e1e-b8e8-ac8e8f2fc244.jpg",
            "height": 4860,
            "width": 3240,
            "image_id": "a4402318-0cf4-4e1e-b8e8-ac8e8f2fc244",
            "thumbnail_url": "https://photos.9pic.ai/imgs/456/small/a4402318-0cf4-4e1e-b8e8-ac8e8f2fc244.jpg",
            "original_url": null
          },
          {
            "img_url": "https://photos.9pic.ai/imgs/456/large/b5513429-1d05-5f2f-c9f9-bd9f9g3gd355.jpg",
            "height": 4860,
            "width": 3240,
            "image_id": "b5513429-1d05-5f2f-c9f9-bd9f9g3gd355",
            "thumbnail_url": "https://photos.9pic.ai/imgs/456/small/b5513429-1d05-5f2f-c9f9-bd9f9g3gd355.jpg",
            "original_url": null
          }
        ],
        "pagination": {
          "total": 1280,
          "currentPage": 1,
          "totalPages": 40,
          "hasNextPage": true,
          "hasPreviousPage": false,
          "page_size": 32
        }
      }
    }
    ```
  </Tab>

  <Tab title="Empty Event">
    ```json theme={null}
    {
      "responseType": "success",
      "message": "No images found",
      "data": {
        "images": [],
        "pagination": {
          "total": 0,
          "currentPage": 0,
          "totalPages": 0,
          "hasNextPage": false,
          "hasPreviousPage": false,
          "page_size": 32
        }
      }
    }
    ```
  </Tab>
</Tabs>

## Response Models

| Model                                                                                    | Description                                            |
| ---------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| <a href="/api-reference/models/search-responses#allphotosresponse">AllPhotosResponse</a> | Top-level all-photos response envelope.                |
| <a href="/api-reference/models/image">ImageItem</a>                                      | Image object returned inside `data.images[]`.          |
| <a href="/api-reference/models/pagination">PaginationInfo</a>                            | Pagination metadata returned inside `data.pagination`. |

`original_url` is `null` in this response.

<Tip>
  Use [Download Original Photos](/api-reference/download-original-photos) with `method: "bib"` or `method: "selfie"` to fetch presigned download links for originals.
</Tip>

## Error Responses

| Status | Meaning                                                          |
| ------ | ---------------------------------------------------------------- |
| `401`  | API key is missing.                                              |
| `403`  | API key is invalid, inactive, or token/event ownership mismatch. |
| `404`  | Event not found.                                                 |
| `429`  | Rate limit exceeded. Back off and retry.                         |
| `500`  | Internal failure.                                                |

See [Errors](/api-reference/errors) for canonical descriptions and retry guidance.
