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

# JmailClient

> JmailClient 构造与配置

## 构造函数

```python theme={null}
JmailClient(cache=True)
```

创建一个新的客户端实例。

### 参数

**cache** `bool` (default: True)

在 `~/.cache/jmail/` 启用基于 ETag 的本地文件缓存功能。将其设置为 `False` 时将始终下载最新数据。

### 示例

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

# 默认:启用缓存
client = JmailClient()

# 无缓存
client = JmailClient(cache=False)
```

## 方法

| 方法 | 返回值 | 描述 |
| - | - | - |
| [`manifest()`](https://jmail.world/docs/zh/api-reference/jmail-client#manifest) | `dict` | 包含数据集元数据的 API manifest 清单 |
| [`emails(slim)`](https://jmail.world/docs/zh/api-reference/emails) | `DataFrame` | 邮件存档 |
| [`documents(include_text)`](https://jmail.world/docs/zh/api-reference/documents) | `DataFrame` | 文档元数据/文本 |
| [`photos()`](https://jmail.world/docs/zh/api-reference/photos) | `DataFrame` | 照片元数据 |
| [`people()`](https://jmail.world/docs/zh/api-reference/people) | `DataFrame` | 已识别人物 |
| [`photo_faces()`](https://jmail.world/docs/zh/api-reference/photo-faces) | `DataFrame` | 人脸边界框 |
| [`imessage_conversations()`](https://jmail.world/docs/zh/api-reference/imessages) | `DataFrame` | iMessage 会话 |
| [`imessage_messages()`](https://jmail.world/docs/zh/api-reference/imessages) | `DataFrame` | iMessage 消息 |
| [`star_counts()`](https://jmail.world/docs/zh/api-reference/star-counts) | `DataFrame` | 众包星标统计 |
| [`release_batches()`](https://jmail.world/docs/zh/api-reference/release-batches) | `DataFrame` | 发布批次信息 |
| [`url(dataset, fmt)`](https://jmail.world/docs/zh/api-reference/jmail-client#url) | `str` | 原始数据集 URL |

## `manifest()`

获取包含数据集元数据和校验和的 API 清单 (manifest) 。

```python theme={null}
manifest = client.manifest()
print(manifest)
```

**返回：** `dict` -- 来自 `data.jmail.world/v1/manifest.json` 的解析后 JSON

## `url(dataset, fmt="parquet")`

获取数据集文件的原始 URL。可直接传递给 DuckDB、Polars，或任何能通过 HTTP 读取 Parquet 的工具使用。

```python theme={null}
url = client.url("emails-slim")
# "https://data.jmail.world/v1/emails-slim.parquet"

url = client.url("documents", fmt="ndjson.gz")
# "https://data.jmail.world/v1/documents.ndjson.gz"
```

**dataset** `str` *required*

数据集名称。必须是以下之一：`emails`, `emails-slim`, `documents`, `photos`, `people`, `photo_faces`, `imessage_conversations`, `imessage_messages`, `star_counts`, `release_batches`。

**fmt** `str` (default: parquet)

文件格式。支持：`parquet` 或 `ndjson.gz`。

**返回值：** `str` —— 完整 URL


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.