> ## 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.

# Image Details

> Get one event photo and its curated metadata by image ID

## Overview

Returns a single photo by `image_id`. The response uses the same `ImageItem` shape as [All Photos](/api-reference/all-photos), including the curated `meta_info` object with timestamp, uploader/source details, original filename, image path, and Google Drive link when applicable.

## Endpoint

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

## Path Parameters

| Parameter  | Type   | Required | Description                                                                         |
| ---------- | ------ | -------- | ----------------------------------------------------------------------------------- |
| `org_id`   | number | Yes      | Your organisation ID.                                                               |
| `event_id` | number | Yes      | The event that owns the image.                                                      |
| `image_id` | string | Yes      | Image UUID returned by [All Photos](/api-reference/all-photos) or search endpoints. |

## 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/a4402318-0cf4-4e1e-b8e8-ac8e8f2fc244"
  ```

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

  response = requests.get(
      "https://api.9pic.ai/api/v1/ext/903/event/456/images/a4402318-0cf4-4e1e-b8e8-ac8e8f2fc244",
      headers={"X-API-Key": "<your_9pic_api_key>"},
  )
  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/a4402318-0cf4-4e1e-b8e8-ac8e8f2fc244",
    { headers: { "X-API-Key": "<your_9pic_api_key>" } }
  );
  console.log(await response.json());
  ```
</CodeGroup>

## Example Response

```json theme={null}
{
  "responseType": "success",
  "message": "Image details",
  "data": {
    "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,
    "meta_info": {
      "photo_timestamp": 1700000000,
      "photographer_name": "photographer-a",
      "original_file_name": "IMG_0001.JPG",
      "source": "9Pic storage",
      "image_path": "456/photographer-a/originals/IMG_0001.JPG"
    }
  }
}
```

## Response Models

| Model                                                                                          | Description                                |
| ---------------------------------------------------------------------------------------------- | ------------------------------------------ |
| <a href="/api-reference/models/search-responses#imagedetailsresponse">ImageDetailsResponse</a> | Top-level image-details response envelope. |
| <a href="/api-reference/models/image#imageitemwithmeta">ImageItemWithMeta</a>                  | Image object returned inside `data`.       |

## Error Responses

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

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