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.
search.all()
搜索所有类型的文档。
const docs = await client.search.all('Tesla earnings', {
num: 10,
categories: ['news', 'reports'],
symbols: ['US:TSLA'],
startDatetime: '2024-01-01',
endDatetime: '2024-12-31'
});
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|
query | string | 是 | - | 搜索关键词 |
options.num | number | 否 | 10 | 返回结果数量,最大 100 |
options.categories | string[] | 否 | - | 文档类别过滤,可选值:news, reports, filings, transcripts, socials |
options.symbols | string[] | 否 | - | 股票代码列表,格式为 market:ticker(如 US:AAPL、HK:00700、SH:600519、SZ:000001) |
options.industries | string[] | 否 | - | 行业过滤 |
options.channelIds | string[] | 否 | - | 渠道 ID 过滤 |
options.startDatetime | string | 否 | - | 开始时间,格式:YYYY-MM-DD 或 YYYY-MM-DD HH:MM:SS |
options.endDatetime | string | 否 | - | 结束时间,格式:YYYY-MM-DD 或 YYYY-MM-DD HH:MM:SS |
返回值: Promise<Document[]> - 文档列表
search.news()
搜索新闻文章。
const news = await client.search.news('Apple iPhone', {
num: 10,
symbols: ['US:AAPL']
});
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|
query | string | 是 | - | 搜索关键词 |
options.num | number | 否 | 10 | 返回结果数量 |
options.symbols | string[] | 否 | - | 股票代码过滤 |
options.channelIds | string[] | 否 | - | 渠道 ID 过滤 |
options.startDatetime | string | 否 | - | 开始时间 |
options.endDatetime | string | 否 | - | 结束时间 |
返回值: Promise<Document[]> - 新闻文档列表
search.reports()
搜索研究报告。
const reports = await client.search.reports('semiconductor analysis', {
num: 10,
symbols: ['US:NVDA'],
startDatetime: '2024-01-01'
});
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|
query | string | 是 | - | 搜索关键词 |
options.num | number | 否 | 10 | 返回结果数量 |
options.symbols | string[] | 否 | - | 股票代码过滤 |
options.industries | string[] | 否 | - | 行业过滤 |
options.channelIds | string[] | 否 | - | 渠道 ID 过滤 |
options.startDatetime | string | 否 | - | 开始时间 |
options.endDatetime | string | 否 | - | 结束时间 |
返回值: Promise<Document[]> - 研究报告列表
search.filings()
搜索公司公告和财报。
const filings = await client.search.filings('10-K annual report', ['US:AAPL'], {
num: 20,
startDatetime: '2024-01-01'
});
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|
query | string | 是 | - | 搜索关键词 |
symbols | string[] | 是 | - | 股票代码列表 |
options.num | number | 否 | 10 | 返回结果数量 |
options.startDatetime | string | 否 | - | 开始时间 |
options.endDatetime | string | 否 | - | 结束时间 |
返回值: Promise<Document[]> - 公告/财报列表
search.conferenceCalls()
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).
// With query - results sorted by relevance
const calls = await client.search.conferenceCalls(['US:AAPL', 'US:MSFT'], {
query: 'AI strategy',
num: 10,
fiscalYear: '2025',
fiscalQuarter: 'Q4'
});
// Without query - results sorted by date descending
const latestCalls = await client.search.conferenceCalls(['US:AAPL', 'US:MSFT'], {
fiscalYear: '2025'
});
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|
query | string | 否 | - | 搜索关键词(可选)。不提供时按时间倒序返回;提供时默认按相关性排序。 |
symbols | string[] | 是 | - | 股票代码列表 |
options.num | number | 否 | 10 | 返回结果数量 |
options.startDatetime | string | 否 | - | 开始时间(YYYY-MM-DD 或 YYYY-MM-DD HH:MM:SS) |
options.endDatetime | string | 否 | - | 结束时间(YYYY-MM-DD 或 YYYY-MM-DD HH:MM:SS) |
options.fiscalYear | string | 否 | - | 财年筛选,如 2025、2026 |
options.fiscalQuarter | string | 否 | - | 财季筛选,如 Q1、Q2、Q3、Q4 |
options.sortBy | string | 否 | date_desc | 排序方式:date_desc(时间倒序)、relevance(相关性排序)、date_asc(时间正序) |
返回值: Promise<Document[]> - 电话会议记录列表
search.earningsPack()
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).
// With query - results sorted by relevance
const docs = await client.search.earningsPack(['US:AAPL', 'US:TSLA'], {
query: 'revenue growth',
num: 10,
fiscalYear: '2025',
fiscalQuarter: 'Q4'
});
// Without query - results sorted by date descending
const latestDocs = await client.search.earningsPack(['US:AAPL', 'US:TSLA'], {
fiscalYear: '2025'
});
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|
query | string | 否 | - | 搜索关键词(可选)。不提供时按时间倒序返回;提供时默认按相关性排序。 |
symbols | string[] | 是 | - | 股票代码列表 |
options.num | number | 否 | 10 | 返回结果数量 |
options.startDatetime | string | 否 | - | 开始时间(YYYY-MM-DD 或 YYYY-MM-DD HH:MM:SS) |
options.endDatetime | string | 否 | - | 结束时间(YYYY-MM-DD 或 YYYY-MM-DD HH:MM:SS) |
options.fiscalYear | string | 否 | - | 财年筛选,如 2025、2026 |
options.fiscalQuarter | string | 否 | - | 财季筛选,如 Q1、Q2、Q3、Q4 |
options.sortBy | string | 否 | date_desc | 排序方式:date_desc(时间倒序)、relevance(相关性排序)、date_asc(时间正序) |
返回值: Promise<Document[]> - 财报相关文档列表
search.minutes()
搜索电话会议和投资者关系(IR)会议。
const minutes = await client.search.minutes('board meeting', {
symbols: ['US:AAPL'],
num: 10
});
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|
query | string | 是 | - | 搜索关键词 |
options.num | number | 否 | 10 | 返回结果数量 |
options.symbols | string[] | 否 | - | 股票代码过滤 |
options.startDatetime | string | 否 | - | 开始时间 |
options.endDatetime | string | 否 | - | 结束时间 |
返回值: Promise<Document[]> - 会议纪要列表
search.socials()
搜索社交媒体内容。
const socials = await client.search.socials('Tesla stock', {
symbols: ['US:TSLA'],
num: 10
});
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|
query | string | 是 | - | 搜索关键词 |
options.num | number | 否 | 10 | 返回结果数量 |
options.symbols | string[] | 否 | - | 股票代码过滤 |
options.channelIds | string[] | 否 | - | 渠道 ID 过滤 |
options.startDatetime | string | 否 | - | 开始时间 |
options.endDatetime | string | 否 | - | 结束时间 |
返回值: Promise<Document[]> - 社交媒体文档列表
search.webpages()
搜索网页内容。
const pages = await client.search.webpages('AI technology', {
num: 20,
startDatetime: '2024-01-01'
});
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|
query | string | 是 | - | 搜索关键词 |
options.num | number | 否 | 10 | 返回结果数量 |
options.startDatetime | string | 否 | - | 开始时间 |
options.endDatetime | string | 否 | - | 结束时间 |
返回值: Promise<Document[]> - 网页内容列表
search.crawl()
使用爬虫工具从指定的 URL 列表中提取网页正文、高亮片段或摘要内容。
const response = await client.search.crawl(
["https://example.com/article"],
{
text: { maxCharacters: 2000, includeHtmlTags: false },
summary: { query: "核心观点" }
}
);
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|
urls | string[] | 是 | - | 需要爬取的 URL 列表 |
options.text | boolean | object | 否 | true | 是否提取网页纯文本,可以为布尔值或对象(支持配置 maxCharacters 等) |
options.highlights | object | 否 | - | 提取的高亮片段配置,如 { query: "财务数据", maxCharacters: 500 } |
options.summary | object | 否 | - | 提取的网页摘要配置,支持传入 query |
options.subpages | number | 否 | 0 | 额外爬取的子页面数量 |
options.subpageTarget | string[] | 否 | - | 子页面筛选关键词,如 ["about", "pricing"] |
options.maxAgeHours | number | 否 | - | 允许的缓存最高小时数 |
options.livecrawlTimeout | number | 否 | - | 实时抓取超时时间 (ms) |
返回值: Promise<any> - 包含 results 数组和 statuses 数组,详情请参阅 API 参考。
类型定义
interface Document {
docId: string;
title: string;
summary: string;
category: 'news' | 'reports' | 'filings' | 'transcripts' | 'socials';
publishedAt: number; // 毫秒时间戳
channelName: string;
companies: Array<{
name: string;
stocks: Array<{ symbol: string; market: string; ticker: string }>;
}>;
url?: string;
}
interface SearchOptions {
num?: number;
categories?: string[];
symbols?: string[];
industries?: string[];
channelIds?: string[];
startDatetime?: string;
endDatetime?: string;
}
interface EarningsSearchOptions {
num?: number;
startDatetime?: string;
endDatetime?: string;
fiscalYear?: string;
fiscalQuarter?: string;
}