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

# photo_faces()

> Download face bounding boxes linking photos to people

```python theme={null}
client.photo_faces() -> pd.DataFrame
```

Download face bounding boxes that link detected faces in photos to identified people.

## Returns

`pd.DataFrame` with face detection data.

## Example

```python theme={null}
from jmail import JmailClient

client = JmailClient()
faces = client.photo_faces()
people = client.people()

# Join to get person names
import pandas as pd
merged = faces.merge(people[["id", "name"]], left_on="person_id", right_on="id", suffixes=("", "_person"))
print(merged.groupby("name").size().sort_values(ascending=False).head(20))
```

## Columns

| Column        | Type  | Description                             |
| ------------- | ----- | --------------------------------------- |
| `id`          | int   | Unique face detection ID                |
| `photo_id`    | int   | FK to photos table                      |
| `person_id`   | int   | FK to people table                      |
| `bbox_left`   | float | Bounding box left edge (normalized 0-1) |
| `bbox_top`    | float | Bounding box top edge (normalized 0-1)  |
| `bbox_width`  | float | Bounding box width (normalized 0-1)     |
| `bbox_height` | float | Bounding box height (normalized 0-1)    |
| `confidence`  | float | Detection confidence score              |

## Direct URLs

```
https://data.jmail.world/v1/photo_faces.parquet
https://data.jmail.world/v1/photo_faces.ndjson.gz
```
