Open API 接入列表
接入
- 申请密钥(需联系 @berenzhang(张家齐))
- HTTP Header 信息携带:
X-API-KEY(密钥)
Header 举例:
X-API-KEY: xxxxxxx- 内网用户: base_url: https://api.brandtalking.qq.com/formal
- 外网用户: base_url: https://answerbit.qq.com
- TeamID、BrandID 的来源:
可直接从页面上 URL 栏该部分获取。
团队、品牌与竞品管理
获取团队下的所有品牌
- 请求方法:POST
- 请求路径:
/geo/query/brand
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| team_id | string | 团队ID | 是 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| id | string | 品牌ID |
| brand_name | string | 品牌名称 |
响应示例:
{
"code": 0,
"msg": "success",
"data": [
{
"id": "brand_test_001",
"brand_name": "测试品牌A"
}
]
}新建品牌
- 请求方法:POST
- 请求路径:
/geo/brand/create
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand | string | 品牌名称 | 是 |
| alias | string | 品牌别名 | 否 |
| team_id | string | 团队ID | 是 |
| website | string | 品牌官网 | 否 |
| description | string | 品牌描述 | 否 |
| icon_mime_type | string | 品牌 logo 的 MIME 类型;支持 image/jpeg、image/jpg、image/png、image/gif、image/webp、image/svg+xml | 否 |
| icon_data | string | 品牌 logo 内容,二进制字节流;最大 2MB | 否 |
| note | string | 品牌备注 | 否 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| id | string | 新建的品牌ID |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"id": "brand_test_001"
}
}新建品牌(可同时初始化品牌基础信息、竞品、用户提问)
- 请求方法:POST
- 请求路径:
/geo/brand/bundle/create
说明:
- 当传入
team_id时,表示在已有团队下新建品牌。 - 当未传
team_id且传入team时,表示先创建团队,再在该团队下创建品牌。 user_prompts为品牌初始化时要创建的用户提问列表。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| team_id | string | 团队ID;已有团队下创建品牌时传入 | 否 |
| team | object | 团队信息;未传 team_id 时需传入 | 否 |
| team.name | string | 团队名称 | 条件必填 |
| team.description | string | 团队描述 | 否 |
| team.icon_mime_type | string | 团队 logo 的 MIME 类型;支持 image/jpeg、image/jpg、image/png、image/gif、image/webp、image/svg+xml | 否 |
| team.icon_data | string | 团队 logo 内容,二进制字节流;最大 2MB | 否 |
| brand | object | 品牌信息 | 是 |
| brand.brand_name | string | 品牌名称 | 是 |
| brand.alias | string | 品牌别名 | 否 |
| brand.website | string | 品牌官网 | 否 |
| brand.description | string | 品牌描述 | 否 |
| brand.note | string | 品牌备注 | 否 |
| brand.icon_mime_type | string | 品牌 logo 的 MIME 类型;支持 image/jpeg、image/jpg、image/png、image/gif、image/webp、image/svg+xml | 否 |
| brand.icon_data | string | 品牌 logo 内容,二进制字节流;最大 2MB | 否 |
| user_prompts | object 数组 | 初始化创建的用户提问列表 | 是 |
| user_prompts.question | string | 用户提问内容 | 是 |
| competitors | object 数组 | 竞品列表 | 否 |
| competitors.name | string | 竞品名称 | 否 |
| competitors.alias | string | 竞品别名 | 否 |
| competitors.description | string | 竞品描述 | 否 |
| competitors.website | string | 竞品官网 | 否 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| brand | object | 新建后的品牌信息 |
| brand.id | string | 品牌ID |
| brand.brand_name | string | 品牌名称 |
| brand.alias | string | 品牌别名 |
| brand.website | string | 品牌官网 |
| brand.description | string | 品牌描述 |
| brand.note | string | 品牌备注 |
| prompts | object 数组 | 初始化创建的用户提问列表 |
| prompts.prompt_id | string | 用户提问ID |
| prompts.question | string | 用户提问内容 |
| competitors | object 数组 | 新建后的竞品列表 |
| competitors.competitor_id | string | 竞品ID |
| competitors.name | string | 竞品名称 |
| competitors.alias | string | 竞品别名 |
| competitors.description | string | 竞品描述 |
| competitors.website | string | 竞品官网 |
| team | object | 团队信息 |
| team.team_id | string | 团队ID |
| team.name | string | 团队名称 |
| team.description | string | 团队描述 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"brand": {
"id": "brand_test_001",
"brand_name": "测试品牌A",
"alias": "品牌A",
"website": "https://brand-a.example.com",
"description": "这是一个用于接口演示的测试品牌",
"note": "测试备注"
},
"prompts": [
{
"prompt_id": "prompt_test_001",
"question": "测试品牌A适合哪些业务场景?"
}
],
"competitors": [
{
"competitor_id": "competitor_test_001",
"name": "测试竞品A",
"alias": "竞品A",
"description": "这是一个用于接口演示的测试竞品",
"website": "https://competitor-a.example.com"
}
],
"team": {
"team_id": "team_test_001",
"name": "测试团队A",
"description": "用于接口演示的测试团队"
}
}
}编辑品牌基础信息
- 请求方法:POST
- 请求路径:
/geo/brand/update
说明:该接口按完整对象更新,除 id 外,业务上建议其余字段也一并传入;未传字段在当前实现下可能被清空或覆盖。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| id | string | 品牌ID | 是 |
| brand_name | string | 品牌名称 | 是 |
| brand_alias | string | 品牌别名 | 是 |
| website | string | 品牌官网 | 是 |
| description | string | 品牌描述 | 是 |
| note | string | 品牌备注 | 是 |
| website_auto_trace | bool | 是否自动追踪官网内容:true-开启,false-关闭 | 是 |
响应参数:
接口调用成功时,返回空对象。
响应示例:
{
"code": 0,
"msg": "success",
"data": {}
}更新品牌 logo
- 请求方法:POST
- 请求路径:
/geo/brand/update/icon
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
| mime_type | string | 图片 MIME 类型;支持 image/jpeg、image/jpg、image/png、image/gif、image/webp、image/svg+xml | 是 |
| data | string | 图片内容,二进制字节流;最大 2MB | 是 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| icon_url | string | 更新后的品牌 logo 地址 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"icon_url": "https://static.example.com/brand/logo-test.png"
}
}获取竞品列表
- 请求方法:POST
- 请求路径:
/geo/competitor/get
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| competitor_id | string | 竞品ID |
| competitor_name | string | 竞品名称 |
| competitor_alias | string | 竞品别名 |
响应示例:
{
"code": 0,
"msg": "success",
"data": [
{
"competitor_id": "competitor_test_001",
"competitor_name": "测试竞品A",
"competitor_alias": "竞品A"
}
]
}新建竞品
- 请求方法:POST
- 请求路径:
/geo/competitor/create
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
| competitor_name | string | 竞品名称 | 是 |
| competitor_alias | string | 竞品别名 | 否 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| id | string | 新建的竞品ID |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"id": "competitor_test_001"
}
}编辑竞品
- 请求方法:POST
- 请求路径:
/geo/competitor/update
说明:该接口按完整对象更新,业务上建议更新时将可编辑字段全部传入;未传字段在当前实现下可能被清空或覆盖。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
| competitor_id | string | 竞品ID | 是 |
| competitor_name | string | 竞品名称 | 是 |
| competitor_alias | string | 竞品别名 | 是 |
响应参数:
接口调用成功时,返回空对象。
响应示例:
{
"code": 0,
"msg": "success",
"data": {}
}删除竞品
- 请求方法:POST
- 请求路径:
/geo/competitor/delete
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
| competitor_id | string | 竞品ID | 是 |
响应参数:
接口调用成功时,返回空对象。
响应示例:
{
"code": 0,
"msg": "success",
"data": {}
}文章管理
获取团队下的所有标签
- 请求方法:POST
- 请求路径:
/geo/article/tag/get
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| team_id | string | 团队ID | 是 |
| tag_type | int | 标签类型:1-用户标签,2-系统标签 | 否 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| tag_id | string | 标签ID |
| team_id | string | 团队ID |
| name | string | 标签名称 |
| note | string | 标签备注 |
| tag_type | int | 标签类型:1-用户标签,2-系统标签 |
| status | int | 标签状态:1-启用,2-禁用 |
| created_by | string | 创建人 |
| article_count | int | 标签关联的文章数 |
| created_time | int64 | 创建时间 |
响应示例:
{
"code": 0,
"msg": "success",
"data": [
{
"tag_id": "tag_test_001",
"team_id": "team_test_001",
"name": "测试标签A",
"note": "测试标签备注",
"tag_type": 1,
"status": 1,
"created_by": "test_user",
"article_count": 10,
"created_time": "1735689600000"
}
]
}新建文章并加入追踪
- 请求方法:POST
- 请求路径:
/geo/article/trace/save
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
| title | string | 文章标题 | 是 |
| urls | string 数组 | 文章的各个发布链接 | 是 |
| tag_ids | string 数组 | 文章需要关联的标签ID | 否 |
| language | string | 文章语言,使用 BCP 47 语言码;默认 zh-CN。支持:zh-CN、zh-SG、zh-TW、zh-HK、zh-MO、en-US、en-GB、ja-JP、ko-KR、fr-FR、de-DE、es-ES、pt-BR、pt-PT、it-IT、th-TH、vi-VN、id-ID、ar-SA、ru-RU、ms-MY | 否 |
返回参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| article_id | string | 文章ID |
响应示例:
{
"code": 0,
"msg": "success",
"data": "article_test_001"
}获取文章列表
- 请求方法:POST
- 请求路径:
/geo/article/query
说明:
- 该接口用于获取品牌下的文章列表,并返回文章维度的汇总引用数据。
- 如果只需要导出文章维度的引用总数、引用趋势、已发布平台等信息,该接口可以直接满足。
- 如果需要按 AI 平台拆分的引用明细,需要先通过该接口获取
article_id,再调用「获取文章追踪详情」。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
| limit | int | 每次返回数量;不传默认 20 | 否 |
| scroll_id | string | 游标;翻页时传上一次响应中的 scroll_id | 否 |
| start_time | int64 | 引用统计开始时间,毫秒时间戳 | 否 |
| end_time | int64 | 引用统计结束时间,毫秒时间戳 | 否 |
| title | string | 文章标题关键字 | 否 |
| status | int 数组 | 文章状态列表 | 否 |
| source | int 数组 | 文章来源列表 | 否 |
| template_type | int 数组 | 文章模板类型列表 | 否 |
| tag_ids | string 数组 | 标签ID列表 | 否 |
| ref_order_type | int | 引用数排序:1-升序,2-降序 | 否 |
| language | string 数组 | 文章语言列表,使用 BCP 47 语言码 | 否 |
| has_video | bool | 是否筛选已生成视频的文章 | 否 |
| has_video_generating | bool | 是否筛选视频生成中的文章 | 否 |
响应参数:
| 返回值 | 类型 | 含义 | |
|---|---|---|---|
| list | object 数组 | 文章列表 | |
| list.id | string | 文章ID | |
| list.brand_id | string | 品牌ID | |
| list.title | string | 文章标题 | |
| list.status | int | 文章状态 | |
| list.source | int | 文章来源 | |
| list.template_type | int | 文章模板类型 | |
| list.ref_count | int | 当前筛选时间范围内的文章引用总数 | |
| list.fluctuation | float | 引用数变化值 | |
| list.ref_trends | object 数组 | 文章引用趋势 | |
| list.ref_trends.date | string | 日期,格式:YYYY-MM-DD | |
| list.ref_trends.count | int | 当日引用数 | |
| list.published_platforms | object 数组 | 文章已发布平台 | |
| list.published_platforms.platform | string | 发布平台标识 | |
| list.published_platforms.display_name | string | 发布平台展示名 | |
| list.published_platforms.icon_url | string | 发布平台图标 | |
| list.published_platforms.publish_url | string | 发布链接 | |
| scroll_id | string | 下一页游标;为空表示没有更多数据 | |
| total | int | 匹配文章总数 | |
| total_links | int | 匹配文章的发布链接总数 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"list": [
{
"id": "article_test_001",
"brand_id": "brand_test_001",
"title": "测试文章A",
"status": 1,
"source": 1,
"template_type": 1,
"ref_count": 12,
"fluctuation": 3,
"ref_trends": [
{
"date": "2026-01-15",
"count": 4
}
],
"published_platforms": [
{
"platform": "wechat",
"display_name": "微信公众号",
"icon_url": "https://static.example.com/platform/wechat.png",
"publish_url": "https://example.com/article/a"
}
]
}
],
"scroll_id": "12:article_test_001",
"total": 1,
"total_links": 1
}
}获取文章追踪详情
- 请求方法:POST
- 请求路径:
/geo/article/trace/detail
说明:
- 该接口用于获取单篇追踪文章的引用详情,包含按 AI 平台拆分的引用次数和趋势。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| article_id | string | 文章ID | 是 |
| begin_date | string | 开始日期,格式:YYYY-MM-DD;不传则按系统默认统计范围 | 否 |
| end_date | string | 结束日期,格式:YYYY-MM-DD;传入时需与 begin_date 同时传入 | 否 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| trace_info | object 数组 | 文章追踪记录列表;一篇文章可对应多个发布链接 |
| trace_info.trace_id | string | 追踪记录ID |
| trace_info.article_id | string | 文章ID |
| trace_info.url | string | 追踪链接 |
| trace_info.platform | string | 发布平台 |
| trace_info.icon | string | 发布平台图标 |
| trace_info.title | string | 文章标题 |
| trace_info.can_edit | bool | 当前追踪链接是否允许编辑 |
| trace_info.stats | object | 当前追踪链接的引用统计 |
| stats | object | 文章整体引用统计 |
| stats.ref_count | object | 按 AI 平台统计的引用次数,key 为平台标识,value 为引用次数 |
| stats.total_count | int | 引用总数 |
| stats.ref_count_increase | int | 引用增长数 |
| stats.ref_trends | object 数组 | 按 AI 平台拆分的引用趋势 |
| stats.ref_trends.platform | string | AI 平台标识 |
| stats.ref_trends.ref_trends | object 数组 | 该平台下的每日引用趋势 |
| stats.ref_trends.ref_trends.date | string | 日期,格式:YYYY-MM-DD |
| stats.ref_trends.ref_trends.ref_count | int | 当日引用数 |
| stats.ref_trends.ref_trends.prompts | object 数组 | 产生引用的用户提问列表 |
| stats.ref_trends.ref_trends.prompts.prompt_id | string | 用户提问ID |
| stats.ref_trends.ref_trends.prompts.prompt_content | string | 用户提问内容 |
| stats.ref_trends.ref_trends.prompts.title_name | string | 用户提问分类名称 |
| stats.ref_trends.ref_trends.prompts.ref_count | int | 该用户提问产生的引用数 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"trace_info": [
{
"trace_id": "trace_test_001",
"article_id": "article_test_001",
"url": "https://example.com/article/a",
"platform": "wechat",
"icon": "https://static.example.com/platform/wechat.png",
"title": "测试文章A",
"can_edit": false,
"stats": {
"ref_count": {
"deepseek": 4,
"yuanbao": 2
},
"total_count": 6
}
}
],
"stats": {
"ref_count": {
"deepseek": 8,
"yuanbao": 4
},
"total_count": 12,
"ref_count_increase": 3,
"ref_trends": [
{
"platform": "deepseek",
"ref_trends": [
{
"date": "2026-01-15",
"ref_count": 4,
"prompts": [
{
"prompt_id": "prompt_test_001",
"prompt_content": "测试品牌A适合哪些业务场景?",
"title_name": "测试分类A",
"ref_count": 2
}
]
}
]
}
]
}
}
}用户提问与分类管理
新建用户提问
- 请求方法:POST
- 请求路径:
/geo/prompt/create
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
| title_id | string | 用户提问分类ID | 是 |
| query_str | string | 用户提问内容 | 是 |
| recommend_id | string | 关联推荐记录ID | 否 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| id | string | 新建的 query ID |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"id": "prompt_test_001"
}
}更新用户提问
- 请求方法:POST
- 请求路径:
/geo/prompt/update
说明:该接口为局部更新(patch)语义。id、brand_id 必传;query_str 与 status 按传入内容更新,未传则不更新。注意:query_str 不能更新为空字符串,status=0 不表示更新。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| id | string | query ID | 是 |
| brand_id | string | 品牌ID | 是 |
| query_str | string | 用户提问内容;传入时更新 | 否 |
| status | int | 用户提问状态;传入时更新,支持:1-启用,2-禁用。0 不表示有效状态,仅表示不更新 | 否 |
响应参数:
接口调用成功时,返回空对象。
响应示例:
{
"code": 0,
"msg": "success",
"data": {}
}批量新建用户提问
- 请求方法:POST
- 请求路径:
/geo/prompt/create/batch
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
| title_id | string | 用户提问分类ID | 是 |
| prompts | string 数组 | 用户提问内容列表 | 是 |
| recommend_ids | string 数组 | 关联推荐记录ID列表,与 prompts 一一对应;无关联时可填 -1 | 否 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| prompt_ids | string 数组 | 新建的用户提问ID 列表 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"prompt_ids": [
"prompt_test_001",
"prompt_test_002"
]
}
}获取品牌下的用户提问列表(分组)
- 请求方法:POST
- 请求路径:
/geo/prompt/get/group
说明:
- 该接口用于获取品牌下的用户提问列表,按用户提问分类分组。
- 不传
begin_date和end_date时,默认查询最近 7 天;只传其中一个会返回参数错误。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
| group_type | int | 分组类型:1-按用户提问分类 | 是 |
| begin_date | string | 开始日期,格式:YYYY-MM-DD | 否 |
| end_date | string | 结束日期,格式:YYYY-MM-DD | 否 |
| page | int | 页码 | 否 |
| page_size | int | 每页数量 | 否 |
| title_ids | string 数组 | 用户提问分类ID列表 | 否 |
| tag_ids | string 数组 | 标签ID列表 | 否 |
| query_str | string | 用户提问关键字 | 否 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| titles | object 数组 | 按分类分组的结果 |
| titles.title_id | string | 分类ID |
| titles.title_name | string | 分类名称 |
| titles.title_desc | string | 分类描述 |
| titles.prompt_count | int | 分类下的用户提问数量 |
| titles.exposure | float | 曝光率 |
| titles.fluctuation | float | 曝光率变化值 |
| titles.avg_rank | float | 平均排名 |
| titles.daily_avg_score | object 数组 | 每日平均分 |
| titles.prompts | object 数组 | 分类下的用户提问列表 |
| prompts.id | string | 用户提问ID |
| prompts.query_str | string | 用户提问内容 |
| prompts.status | int | 用户提问状态:1-启用,2-禁用 |
| prompts.exposure | float | 曝光率 |
| prompts.avg_rank | float | 平均排名 |
| prompts.daily_avg_score | object 数组 | 每日平均分 |
| prompts.title_id | string | 分类ID |
| prompts.title_name | string | 分类名称 |
| prompts.creator_name | string | 创建人名称 |
| prompts.created_time | int64 | 创建时间 |
| prompts.fluctuation | float | 曝光率变化值 |
| prompts.trace_article_cnt | int | 关联追踪文章数量 |
| prompts.tags | object 数组 | 用户提问关联标签 |
| total | int | 分组总数 |
| total_prompts | int | 用户提问总数 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"titles": [
{
"title_id": "title_test_001",
"title_name": "测试分类A",
"title_desc": "用于演示的用户提问分类",
"prompt_count": 1,
"exposure": 0.8,
"fluctuation": 0.1,
"avg_rank": 2.5,
"daily_avg_score": [
{
"date": "2026-01-15",
"score": 86
}
],
"prompts": [
{
"id": "prompt_test_001",
"query_str": "测试品牌A适合哪些业务场景?",
"status": 1,
"exposure": 0.8,
"avg_rank": 2.5,
"title_id": "title_test_001",
"title_name": "测试分类A",
"creator_name": "test_user",
"created_time": "1735689600000",
"trace_article_cnt": 3
}
]
}
],
"total": 1,
"total_prompts": 1
}
}获取用户提问分类列表
- 请求方法:POST
- 请求路径:
/geo/title/get
说明:这里的“分类”对应系统中的 title。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
| id | string | 分类ID | 否 |
| title_name | string | 分类名称,支持按名称过滤 | 否 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| id | string | 分类ID |
| brand_id | string | 品牌ID |
| title_name | string | 分类名称 |
| title_desc | string | 分类描述 |
| count | int | 该分类下的用户提问数量 |
| created_time | string | 创建时间 |
| updated_time | string | 更新时间 |
响应示例:
{
"code": 0,
"msg": "success",
"data": [
{
"id": "title_test_001",
"brand_id": "brand_test_001",
"title_name": "测试分类A",
"title_desc": "用于演示的用户提问分类",
"count": 12,
"created_time": "2026-01-01",
"updated_time": "2026-01-15"
}
]
}新建用户提问 分类
- 请求方法:POST
- 请求路径:
/geo/title/create
说明:这里的“分类”对应系统中的 title。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
| title_name | string | 分类名称 | 是 |
| title_desc | string | 分类描述 | 否 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| id | string | 新建的分类ID |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"id": "title_test_001"
}
}更新用户提问 分类
- 请求方法:POST
- 请求路径:
/geo/title/update
说明:这里的“分类”对应系统中的 title。该接口为部分更新语义:id、brand_id、title_name 必传;title_desc 传入时才更新,未传则不更新。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| id | string | 分类ID | 是 |
| brand_id | string | 品牌ID | 是 |
| title_name | string | 分类名称 | 是 |
| title_desc | string | 分类描述;传入时更新 | 否 |
响应参数:
接口调用成功时,返回空对象。
响应示例:
{
"code": 0,
"msg": "success",
"data": {}
}更新用户提问 所属分类
- 请求方法:POST
- 请求路径:
/geo/prompt/relation/update
说明:该接口不是局部更新,而是替换关联语义,用于将指定用户提问重新归类到新的分类下。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
| title_id | string | 目标分类ID | 是 |
| prompt_id | string | 用户提问ID | 是 |
响应参数:
接口调用成功时,返回空对象。
响应示例:
{
"code": 0,
"msg": "success",
"data": {}
}删除用户提问
- 请求方法:POST
- 请求路径:
/geo/prompt/delete
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| id | string | query ID | 是 |
| brand_id | string | 品牌ID | 是 |
响应参数:
接口调用成功时,返回空对象。
响应示例:
{
"code": 0,
"msg": "success",
"data": {}
}批量删除用户提问
- 请求方法:POST
- 请求路径:
/geo/prompt/delete/batch
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| prompt_ids | string 数组 | 用户提问ID 列表 | 是 |
| brand_id | string | 品牌ID | 是 |
响应参数:
接口调用成功时,返回空对象。
响应示例:
{
"code": 0,
"msg": "success",
"data": {}
}删除用户提问分类
- 请求方法:POST
- 请求路径:
/geo/title/delete
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| id | string | 分类ID | 是 |
响应参数:
接口调用成功时,返回空对象。
响应示例:
{
"code": 0,
"msg": "success",
"data": {}
}大模型回答
获取大模型回答记录列表
- 请求方法:POST
- 请求路径:
/geo/task/get
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
| begin_date | string | 开始日期,格式:YYYY-MM-DD | 是 |
| end_date | string | 结束日期,格式:YYYY-MM-DD | 是 |
| include | int | 提示词筛选方式:0-不包含,1-包含 | 否 |
| prompt | string | 用户提问关键字 | 否 |
| title_id | string 数组 | 提示词标题ID列表 | 否 |
| prompt_ids | string 数组 | 提示词ID列表 | 否 |
| tag_ids | string 数组 | 标签ID列表 | 否 |
| task_ids | string 数组 | 任务ID列表 | 否 |
| platforms | string 数组 | 大模型平台列表 | 否 |
| language | string 数组 | 语言列表 | 否 |
| mention_brand | int | 是否提及品牌筛选:-1-全部,0-未提及,1-提及 | 否 |
| min_score | int | 最小分数 | 否 |
| max_score | int | 最大分数 | 否 |
| url | string | 引用链接URL过滤 | 否 |
| ref_platform | string | 引用来源域名过滤(兼容旧参数) | 否 |
| ref_platform | string | 引用来源域名过滤(兼容旧参数) | 否 |
| article_id | string | 文章ID过滤 | 否 |
| page | int | 页码 | 否 |
| page_size | int | 每页数量 | 否 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| scores | object 数组 | 大模型回答记录列表 |
| scores.task_id | string | 任务ID |
| scores.query_id | string | 提示词ID |
| scores.query_str | string | 提示词内容 |
| scores.platform | string | 大模型平台 |
| scores.language | string | 语言 |
| scores.zone | string | 地区 |
| scores.date | string | 任务日期 |
| scores.exposure | int | 是否提及品牌:0-未提及,1-提及 |
| scores.score | int | 品牌曝光度评分 |
| scores.avg_rank | int | 品牌排名,0 表示未提及 |
| scores.title_id | string | 提示词标题ID |
| scores.title_name | string | 提示词标题名称 |
| scores.trace_article_cnt | int | 追踪文章引用数量 |
| scores.tags | object 数组 | 提示词关联标签 |
| scores.tags.tag_id | string | 标签ID |
| scores.tags.tag_name | string | 标签名称 |
| scores.tags.tag_type | int | 标签类型:1-用户,2-系统,3-大模型 |
| total | int | 总数 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"scores": [
{
"task_id": "task_test_001",
"prompt_id": "prompt_test_001",
"query_str": "测试品牌A适合哪些业务场景?",
"platform": "test-llm",
"language": "zh",
"zone": "CN",
"date": "2026-01-15",
"exposure": 1,
"score": 86,
"avg_rank": 2,
"title_id": "title_test_001",
"title_name": "测试分类A",
"trace_article_cnt": 3,
"tags": [
{
"tag_id": "tag_test_001",
"tag_name": "测试标签A",
"tag_type": 1
}
]
}
],
"total": 1
}
}获取大模型回答记录详情
- 请求方法:POST
- 请求路径:
/geo/task/detail/get
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
| brand_id | string | 品牌ID | 是 |
| task_id | string | 任务ID | 是 |
响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
| query | string | 提示词内容 |
| query_id | string | 提示词ID |
| score | int | 品牌曝光度评分 |
| zone | string | 地区 |
| language | string | 语言 |
| exposure | int | 是否提及品牌:0-未提及,1-提及 |
| rank | int | 品牌排名,0 表示未提及 |
| exposure_cnt | int | 品牌提及次数 |
| llm_output | string | 大模型回答原文 |
| platform | string | 大模型平台 |
| date | string | 任务日期 |
| links | object 数组 | 引用链接列表 |
| links.index | int | 引用序号 |
| links.url | string | 引用链接URL |
| links.title | string | 引用链接标题 |
| links.source | int | 引用来源类型:0-未关联追踪文章/未知,1-平台创作,2-用户创作,3-官网文章 |
| links.article_id | string | 关联追踪文章ID |
| pic | string 数组 | 图片链接列表 |
| fanout | object 数组 | 扩展信息列表 |
| recommend_queries | string 数组 | 推荐提示词列表 |
| video_cards | object 数组 | 视频卡片列表 |
| video_cards.id | string | 视频卡片ID |
| video_cards.video_title | string | 视频标题 |
| video_cards.source_name | string | 来源名称 |
| video_cards.video_description | string | 视频描述 |
| video_cards.video_link | string | 视频链接 |
| video_cards.sort_index | int | 排序序号 |
| video_cards.cover_url | string | 封面图链接 |
| product_cards | object 数组 | 商品卡片列表 |
| product_cards.id | string | 商品卡片ID |
| product_cards.product_name | string | 商品名称 |
| product_cards.product_price | string | 商品价格 |
| product_cards.product_image | string | 商品图片 |
| product_cards.product_link | string | 商品链接 |
| product_cards.product_description | string | 商品描述 |
| product_cards.platform | string | 商品平台 |
| product_cards.sort_index | int | 排序序号 |
| title_name | string | 提示词标题名称 |
| title_id | string | 提示词标题ID |
| tags | object 数组 | 提示词关联标签 |
| tags.tag_id | string | 标签ID |
| tags.tag_name | string | 标签名称 |
| tags.tag_type | int | 标签类型:1-用户,2-系统,3-大模型 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"prompt": "测试品牌A适合哪些业务场景?",
"prompt_id": "prompt_test_001",
"score": 86,
"zone": "CN",
"language": "zh",
"exposure": 1,
"rank": 2,
"exposure_cnt": 1,
"llm_output": "测试品牌A适用于场景一、场景二与场景三。",
"platform": "test-llm",
"date": "2026-01-15",
"links": [
{
"index": 1,
"url": "https://example.com/articles/test-article-1",
"title": "测试文章一",
"source": 1,
"article_id": "article_test_001"
}
],
"pic": [
"https://example.com/images/test-image-1.png"
],
"fanout": [],
"recommend_queries": [
"测试品牌A的核心优势是什么?"
],
"video_cards": [
{
"id": "video_card_test_001",
"video_title": "测试视频一",
"source_name": "测试来源",
"video_description": "测试视频描述",
"video_link": "https://example.com/videos/test-video-1",
"sort_index": 1,
"cover_url": "https://example.com/images/video-cover-1.png"
}
],
"product_cards": [
{
"id": "product_card_test_001",
"product_name": "测试商品一",
"product_price": "99.00",
"product_image": "https://example.com/images/product-1.png",
"product_link": "https://example.com/products/test-product-1",
"product_description": "测试商品描述",
"platform": "test-platform",
"sort_index": 1
}
],
"title_name": "测试分类A",
"title_id": "title_test_001",
"tags": [
{
"tag_id": "tag_test_001",
"tag_name": "测试标签A",
"tag_type": 1
}
]
}
}