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

# 文档搜索

> Python SDK 文档搜索功能

## search.all()

搜索所有类型的文档。

```python theme={null}
docs = client.search.all(
    query="Tesla earnings",
    num=10,
    categories=["news", "reports"],
    symbols=["US:TSLA"],
    start_datetime="2024-01-01",
    end_datetime="2024-12-31"
)
```

<ParamField path="query" type="string" required>
  搜索关键词
</ParamField>

<ParamField path="num" type="int" default="10">
  返回结果数量，最大 100
</ParamField>

<ParamField path="categories" type="list[str]">
  文档类别过滤，可选值：`news`, `reports`（国内研报）, `global_research`（外资研报）, `filings`, `transcripts`, `socials`。
</ParamField>

<ParamField path="symbols" type="list[str]">
  股票代码列表，格式为 market:ticker（如 `US:AAPL`、`HK:00700`、`SH:600519`、`SZ:000001`）
</ParamField>

<ParamField path="industries" type="list[str]">
  行业过滤
</ParamField>

<ParamField path="channel_ids" type="list[str]">
  渠道 ID 过滤
</ParamField>

<ParamField path="start_datetime" type="str">
  开始时间，格式：`YYYY-MM-DD` 或 `YYYY-MM-DD HH:MM:SS`
</ParamField>

<ParamField path="end_datetime" type="str">
  结束时间，格式：`YYYY-MM-DD` 或 `YYYY-MM-DD HH:MM:SS`
</ParamField>

<ResponseField name="返回值" type="list[dict]">
  文档列表，每个文档包含 `title`, `summary`, `category`, `published_at` 等字段
</ResponseField>

***

## search.news()

搜索新闻文章。

```python theme={null}
news = client.search.news(
    query="Apple iPhone",
    num=10,
    symbols=["US:AAPL"]
)
```

<ParamField path="query" type="string" required>
  搜索关键词
</ParamField>

<ParamField path="num" type="int" default="10">
  返回结果数量
</ParamField>

<ParamField path="symbols" type="list[str]">
  股票代码过滤
</ParamField>

<ParamField path="channel_ids" type="list[str]">
  渠道 ID 过滤
</ParamField>

<ParamField path="start_datetime" type="str">
  开始时间
</ParamField>

<ParamField path="end_datetime" type="str">
  结束时间
</ParamField>

***

## search.reports()

搜索研究报告。

```python theme={null}
reports = client.search.reports(
    query="semiconductor analysis",
    num=10
)
```

<ParamField path="query" type="string" required>
  搜索关键词
</ParamField>

<ParamField path="num" type="int" default="10">
  返回结果数量
</ParamField>

<ParamField path="categories" type="list[str]">
  研报类别，可选值：`reports`（国内研报）、`global_research`（外资研报）。默认两者全选，可单独指定其一以缩小范围
</ParamField>

<ParamField path="symbols" type="list[str]">
  股票代码过滤
</ParamField>

<ParamField path="industries" type="list[str]">
  行业过滤
</ParamField>

<ParamField path="channel_ids" type="list[str]">
  渠道 ID 过滤
</ParamField>

<ParamField path="start_datetime" type="str">
  开始时间
</ParamField>

<ParamField path="end_datetime" type="str">
  结束时间
</ParamField>

***

## search.filings()

搜索公司公告和财报。

```python theme={null}
filings = client.search.filings(
    query="10-K annual report",
    symbols=["US:AAPL"]
)
```

<ParamField path="query" type="string" required>
  搜索关键词
</ParamField>

<ParamField path="symbols" type="list[str]" required>
  股票代码列表（必填）
</ParamField>

<ParamField path="num" type="int" default="10">
  返回结果数量
</ParamField>

<ParamField path="start_datetime" type="str">
  开始时间
</ParamField>

<ParamField path="end_datetime" type="str">
  结束时间
</ParamField>

***

## search.conference\_calls()

Search for earnings-related conference call transcripts and presentation slides. Query is optional - if not provided, returns documents in reverse chronological order; if provided, sorts by relevance (note sort\_by parameter).

```python theme={null}
# With query - results sorted by relevance
calls = client.search.conference_calls(
    ["US:AAPL", "US:MSFT"],
    query="AI strategy",
    fiscal_year="2025",
    fiscal_quarter="Q4"
)

# Without query - results sorted by date descending
calls = client.search.conference_calls(
    ["US:AAPL", "US:MSFT"],
    fiscal_year="2025"
)
```

<ParamField path="query" type="string">
  搜索关键词（可选）。不提供时按时间倒序返回文档列表；提供时默认按相关性排序。
</ParamField>

<ParamField path="symbols" type="list[str]" required>
  股票代码列表（必填）
</ParamField>

<ParamField path="num" type="int" default="10">
  返回结果数量
</ParamField>

<ParamField path="start_datetime" type="str">
  开始时间，格式：`YYYY-MM-DD` 或 `YYYY-MM-DD HH:MM:SS`
</ParamField>

<ParamField path="end_datetime" type="str">
  结束时间，格式：`YYYY-MM-DD` 或 `YYYY-MM-DD HH:MM:SS`
</ParamField>

<ParamField path="fiscal_year" type="str">
  财年筛选，如 `2025`、`2026`
</ParamField>

<ParamField path="fiscal_quarter" type="str">
  财季筛选，如 `Q1`、`Q2`、`Q3`、`Q4`
</ParamField>

<ParamField path="sort_by" type="str" default="date_desc">
  排序方式：`date_desc`（时间倒序，无 query 时默认）、`relevance`（相关性排序，有 query 时推荐）、`date_asc`（时间正序）
</ParamField>

***

## search.earnings\_pack()

Search for earnings-related documents submitted to exchanges, including quarterly reports, semi-annual reports, and annual reports. Query is optional - if not provided, returns documents in reverse chronological order; if provided, sorts by relevance (note sort\_by parameter).

```python theme={null}
# With query - results sorted by relevance
docs = client.search.earnings_pack(
    ["US:AAPL", "US:TSLA"],
    query="revenue growth",
    fiscal_year="2025",
    fiscal_quarter="Q4"
)

# Without query - results sorted by date descending
docs = client.search.earnings_pack(
    ["US:AAPL", "US:TSLA"],
    fiscal_year="2025"
)
```

<ParamField path="query" type="string">
  搜索关键词（可选）。不提供时按时间倒序返回文档列表；提供时默认按相关性排序。
</ParamField>

<ParamField path="symbols" type="list[str]" required>
  股票代码列表（必填）
</ParamField>

<ParamField path="num" type="int" default="10">
  返回结果数量
</ParamField>

<ParamField path="start_datetime" type="str">
  开始时间，格式：`YYYY-MM-DD` 或 `YYYY-MM-DD HH:MM:SS`
</ParamField>

<ParamField path="end_datetime" type="str">
  结束时间，格式：`YYYY-MM-DD` 或 `YYYY-MM-DD HH:MM:SS`
</ParamField>

<ParamField path="fiscal_year" type="str">
  财年筛选，如 `2025`、`2026`
</ParamField>

<ParamField path="fiscal_quarter" type="str">
  财季筛选，如 `Q1`、`Q2`、`Q3`、`Q4`
</ParamField>

<ParamField path="sort_by" type="str" default="date_desc">
  排序方式：`date_desc`（时间倒序，无 query 时默认）、`relevance`（相关性排序，有 query 时推荐）、`date_asc`（时间正序）
</ParamField>

***

## search.minutes()

搜索电话会议和投资者关系（IR）会议。

```python theme={null}
minutes = client.search.minutes(
    query="board meeting",
    symbols=["US:AAPL"]
)
```

<ParamField path="query" type="string" required>
  搜索关键词
</ParamField>

<ParamField path="num" type="int" default="10">
  返回结果数量
</ParamField>

<ParamField path="symbols" type="list[str]">
  股票代码过滤
</ParamField>

<ParamField path="start_datetime" type="str">
  开始时间
</ParamField>

<ParamField path="end_datetime" type="str">
  结束时间
</ParamField>

***

## search.socials()

搜索社交媒体内容。

```python theme={null}
socials = client.search.socials(
    query="Tesla stock",
    symbols=["US:TSLA"]
)
```

<ParamField path="query" type="string" required>
  搜索关键词
</ParamField>

<ParamField path="num" type="int" default="10">
  返回结果数量
</ParamField>

<ParamField path="symbols" type="list[str]">
  股票代码过滤
</ParamField>

<ParamField path="channel_ids" type="list[str]">
  渠道 ID 过滤
</ParamField>

<ParamField path="start_datetime" type="str">
  开始时间
</ParamField>

<ParamField path="end_datetime" type="str">
  结束时间
</ParamField>

***

## search.webpages()

搜索网页内容。

```python theme={null}
pages = client.search.webpages(
    query="AI technology",
    num=20
)
```

<ParamField path="query" type="string" required>
  搜索关键词
</ParamField>

<ParamField path="num" type="int" default="10">
  返回结果数量
</ParamField>

<ParamField path="start_datetime" type="str">
  开始时间
</ParamField>

<ParamField path="end_datetime" type="str">
  结束时间
</ParamField>

***

## search.crawl()

使用爬虫工具从指定的 URL 列表中提取网页正文、高亮片段或摘要内容。

```python theme={null}
response = client.search.crawl(
    urls=["https://example.com/article"],
    text={"maxCharacters": 2000, "includeHtmlTags": False},
    summary={"query": "核心观点"}
)
```

<ParamField path="urls" type="list[str]" required>
  需要爬取的 URL 列表。
</ParamField>

<ParamField path="text" type="bool | dict" default="True">
  是否提取网页纯文本。可以为布尔值或字典（支持配置 `maxCharacters` 等）。
</ParamField>

<ParamField path="highlights" type="dict">
  提取的高亮片段配置，支持传入查询语句及长度限制，例如 `{"query": "财务数据", "maxCharacters": 500}`。
</ParamField>

<ParamField path="summary" type="dict">
  提取的网页摘要配置，支持传入查询语句 `query`。
</ParamField>

<ParamField path="subpages" type="int">
  额外爬取的子页面数量，默认为 0。
</ParamField>

<ParamField path="subpage_target" type="list[str]">
  子页面筛选关键词，例如 `["about", "pricing"]`。
</ParamField>

<ParamField path="max_age_hours" type="int">
  允许的缓存最高小时数。
</ParamField>

<ParamField path="livecrawl_timeout" type="int">
  实时抓取超时时间 (ms)。
</ParamField>

<ResponseField name="返回值" type="dict">
  包含 `results` 数组和 `statuses` 数组，详情请参阅 API 参考。
</ResponseField>

***

## 返回数据结构

```python theme={null}
{
    "doc_id": "abc123",
    "title": "Tesla Q4 2024 Earnings Call",
    "summary": "Tesla reported record deliveries...",
    "category": "transcripts",
    "published_at": 1704067200000,  # 毫秒时间戳
    "channel_name": "Tesla Inc.",
    "companies": [
        {
            "name": "Tesla",
            "stocks": [{"symbol": "US:TSLA", "market": "US", "ticker": "TSLA"}]
        }
    ],
    "url": "https://..."
}
```
