Table of Contents
6.3 获取偶像详情【基础探测通过,待数据联调】
GET /tieup/api/v1/artists/{artist_id}
路径参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
artist_id |
integer | 是 | 艺人 ID |
响应字段:
| 字段 | 类型 | 说明 |
|---|---|---|
id |
integer | 艺人 ID |
user_id |
integer | 绑定的 APP 用户 ID |
artist_name |
string | 艺人对外展示名称 |
nickname |
string | 用户昵称 |
artist_online_status |
integer | 艺人身份在线状态:0=离线,1=在线;只根据 tieup_artist_{artist_id} 融云身份计算 |
avatar |
string | 艺人头像 URL,来源 tieup_artist.avatar |
featured_media_url |
string | 卡片主媒体 URL:优先相册图片,其次相册视频,最后头像 |
featured_media_type |
string | 卡片主媒体类型:image、video、avatar |
featured_media_cover_url |
string | 视频主媒体封面/首帧图 URL;非视频主媒体为空字符串 |
album_media |
array | 艺人相册素材列表 |
album_media[].type |
string | 素材类型:image 或 video |
album_media[].url |
string | 素材 URL |
album_media[].cover_url |
string | 视频封面 URL,仅视频素材返回 |
album_media[].duration |
integer | 视频时长,单位秒,仅视频素材返回 |
intro_type |
string | 短介绍类型:text、audio 或空字符串 |
intro_text |
string | 一句话文字介绍 |
intro_audio_url |
string | 一句话语音介绍 URL |
intro_audio_duration |
integer | 语音介绍时长,单位秒 |
personal_intro |
string | 自我介绍 |
gender |
integer | 性别:0=未知,1=男,2=女 |
artist_type |
integer | 艺人类型:1=个人艺人,2=经纪公司艺人 |
artist_category_id |
integer/null | 艺人分类 ID |
category_name |
string | 艺人分类名称 |
province_code |
string/null | 省份编码 |
province_name |
string/null | 省份名称 |
city_code |
string/null | 城市编码 |
city_name |
string/null | 城市名称 |
district_code |
string/null | 区县编码 |
district_name |
string/null | 区县名称 |
settled_at |
string/null | 入驻通过时间 |
is_followed |
integer | 当前用户是否已关注:1=已关注,2=未关注;未登录默认 2 |
follow_count |
integer | 关注量 |
subscription_count |
integer | 当前有效订阅量 |
received_candy_amount |
string | 收到糖果量,按粉丝实际消耗糖果合计 |
related_experience |
string | 相关经历或代表作品 |
pricing |
object | 艺人定价配置,包含当前选择的订阅档位代码、通话档位、提问价格和开关状态;订阅档位详情读取 subscription_plan |
pricing.subscription_plan_code |
string | 艺人当前选择的唯一订阅档位编码;未选择或定价配置未启用时为空字符串 |
pricing.video_call_plan_code |
string | 当前视频通话档位编码,未配置为空字符串 |
pricing.question_price |
integer | 提问价格,单位糖果 |
pricing.video_call_price_per_minute |
integer | 视频通话每分钟糖果单价 |
pricing.question_enabled |
integer | 是否开启提问:1=开启,2=关闭 |
pricing.video_call_enabled |
integer | 是否开启视频通话:1=开启,2=关闭 |
subscription_status |
object/null | 当前用户订阅状态;未登录或未订阅时为空 |
subscription_status.subscription_no |
string | 订阅记录编号 |
subscription_status.status |
integer | 订阅状态:1=生效中,2=已过期,3=已取消 |
subscription_status.started_at |
string/null | 当前正在生效的订阅开始时间;连续续费时不返回未来续期记录的开始时间 |
subscription_status.expires_at |
string/null | 当前用户对该艺人的最终有效到期时间;连续续费时返回累计后的最大到期时间 |
subscription_plan |
object | 艺人当前选择且在当前渠道、平台和市场可用的唯一订阅档位;未选择、定价禁用或当前作用域不可用时返回 {} |
subscription_plan.plan_code |
string | 订阅档位编码;创建订阅订单时传 subscription_plan_code 使用该值 |
subscription_plan.subscription_plan_code |
string | 订阅档位业务编码,与 plan_code 相同 |
subscription_plan.plan_name |
string | 订阅档位名称,用于 APP 展示 |
subscription_plan.price_amount |
string | 月费金额,单位元,固定两位小数 |
subscription_plan.duration_days |
integer | 月费订阅有效天数,当前默认 30 天 |
subscription_plan.annual_original_price_amount |
string | 普通年费原价金额,单位元,固定两位小数;按普通月费金额乘以 12 计算 |
subscription_plan.annual_discount |
number/null | 年度折扣;8 表示 8 折,null 表示后台未配置年费 |
subscription_plan.annual_price_amount |
string/null | 普通年费金额,单位元,固定两位小数;未配置年费时为 null |
subscription_plan.ios_month_price_amount |
string/null | iOS 月费展示金额,单位元,固定两位小数;后台未配置时为 null |
subscription_plan.ios_year_price_amount |
string/null | iOS 年费展示金额,单位元,固定两位小数;后台未配置时为 null |
subscription_plan.ios_year_original_price_amount |
string/null | iOS 年费原价金额,单位元,固定两位小数;按已配置的 iOS 月费金额乘以 12 计算,未配置 iOS 月费时为 null |
subscription_plan.auto_renew_methods.month |
string[] | 该艺人和档位的月费自动续订渠道;未配置时为 [] |
subscription_plan.auto_renew_methods.year |
string[] | 该艺人和档位的年费自动续订渠道;未配置时为 [] |
subscription_plan.config |
object/null | 档位展示扩展配置;不包含内部价格分字段、第三方 Product ID 或模板 ID |
video_call_plans |
array | 可用视频通话档位摘要 |
video_call_plans[].plan_code |
string | 视频通话档位编码 |
video_call_plans[].plan_name |
string | 视频通话档位名称 |
video_call_plans[].duration_minutes |
integer | 通话时长,单位分钟 |
video_call_plans[].candy_amount |
integer | 按艺人每分钟糖果单价和通话时长计算出的需要消耗糖果数量 |
video_call_plans[].interval_minutes |
integer | 预约间隔,单位分钟 |
video_call_plans[].config |
object/null | 档位扩展配置 |
benefit_summary |
object | 福利摘要;未登录时只统计上架福利数量,进度相关数量为 0 |
benefit_summary.total_count |
integer | 上架福利总数 |
benefit_summary.redeemable_count |
integer | 当前粉丝可兑换福利数,未登录为 0 |
benefit_summary.redeemed_count |
integer | 当前粉丝已兑换福利数,未登录为 0 |
benefit_summary.items |
array | 当前偶像全部已开启福利摘要 |
benefit_summary.items[].benefit_id |
integer | 福利 ID |
benefit_summary.items[].title |
string | 福利名称 |
benefit_summary.items[].content |
string | 福利说明,即福利内容 |
benefit_summary.items[].condition_type |
string | 条件类型:subscription_months、question_count、video_call_minutes、candy_spent |
benefit_summary.items[].condition_value |
integer | 条件目标值,例如订阅满 5 个月时返回 5 |
benefit_summary.items[].condition_text |
string | 条件文案 |
benefit_summary.items[].is_redeemable |
integer | 是否可兑换:1=是,2=否 |
benefit_summary.items[].is_redeemed |
integer | 是否已兑换:1=是,2=否 |
响应示例:
{
"code": 200,
"message": "成功",
"data": {
"id": 20001,
"user_id": 10001,
"artist_name": "王心凌",
"nickname": "甜心教主",
"artist_online_status": 1,
"avatar": "https://cdn.example.com/artist/avatar.png",
"featured_media_url": "https://cdn.example.com/album/stage.png",
"featured_media_type": "image",
"featured_media_cover_url": "",
"album_media": [
{
"type": "image",
"url": "https://cdn.example.com/album/stage.png"
},
{
"type": "video",
"url": "https://cdn.example.com/album/intro.mp4",
"cover_url": "https://cdn.example.com/album/intro-cover.png",
"duration": 58
}
],
"intro_type": "audio",
"intro_text": "",
"intro_audio_url": "https://cdn.example.com/intro.m4a",
"intro_audio_duration": 58,
"personal_intro": "独立音乐人,用声音讲述故事。",
"gender": 2,
"artist_type": 1,
"artist_category_id": 10,
"category_name": "歌手",
"province_code": "440000",
"province_name": "广东省",
"city_code": "440300",
"city_name": "深圳市",
"district_code": "440305",
"district_name": "南山区",
"settled_at": "2026-06-22 10:00:00",
"is_followed": 1,
"follow_count": 13000,
"subscription_count": 155,
"received_candy_amount": "82000.00",
"related_experience": "发行过原创单曲",
"pricing": {
"subscription_plan_code": "month_vip",
"video_call_plan_code": "call_10m",
"question_price": 20,
"video_call_price_per_minute": 6,
"question_enabled": 1,
"video_call_enabled": 1
},
"subscription_status": {
"subscription_no": "SUB202606220001",
"status": 1,
"started_at": "2026-06-22 10:00:00",
"expires_at": "2026-07-22 10:00:00"
},
"subscription_plan": {
"plan_code": "month_vip",
"subscription_plan_code": "month_vip",
"plan_name": "月度订阅",
"price_amount": "30.00",
"duration_days": 30,
"annual_original_price_amount": "360.00",
"annual_discount": 8,
"annual_price_amount": "288.00",
"ios_month_price_amount": "39.00",
"ios_year_price_amount": "374.00",
"ios_year_original_price_amount": "468.00",
"auto_renew_methods": {
"month": ["apple_iap"],
"year": ["apple_iap"]
},
"config": {
"visible": true,
"tag": "推荐",
"annual_discount": 8,
"annual_price_amount": "288.00"
}
},
"video_call_plans": [
{
"plan_code": "call_10m",
"plan_name": "10分钟通话",
"duration_minutes": 10,
"candy_amount": 60,
"interval_minutes": 10,
"config": null
}
],
"benefit_summary": {
"total_count": 3,
"redeemable_count": 1,
"redeemed_count": 1,
"items": [
{
"benefit_id": 30001,
"title": "亲笔签名照",
"content": "亲笔签名照一张",
"condition_type": "subscription_months",
"condition_value": 5,
"condition_text": "订阅满5个月",
"is_redeemable": 1,
"is_redeemed": 2
}
]
}
}
}
说明:公开可访问;如携带有效 Authorization,会尝试返回当前用户对该偶像的订阅状态。
订阅档位规则:tieup_artist_pricing.subscription_plan_code 保存艺人当前唯一选择;tieup_artist_subscription_config 只维护各后台档位的自动续订渠道资源。没有匹配的自动续订配置不影响普通单次订阅展示,只有 auto_renew_methods 为空。未选择档位、定价配置禁用或所选代码在当前请求作用域不可用时,subscription_plan 固定返回 {}。详情接口的 subscription_plan 是单个对象;需要候选档位数组时调用 GET /tieup/api/v1/subscription-plans?artist_id={artist_id}。