星座配对返回字段全解:22 个返回字段的含义与实测取值
约 14 分钟 进阶星座配对配对指数返回字段字段全解
# 星座配对返回字段全解:22 个返回字段的含义与实测取值
接入点 872-2 · 免费服务 · POST / GET · 返回 JSON · 适用:已接入开发者、需要做结果页与分享图的工程师 · 阅读时间:约 7 分钟 · 最后实测核对:2026-09-18
## 核心要点
- 星座配对接口(apiCode=872)的接入点 2 返回 22 个字段,分指数类、文案类、元信息类三组,全部为字符串。
- 八类指数里 `match` 带「分」字(`50分`)、`proportion` 是比重(`58:42`),其余六项是纯数字字符串。
- 各维度的满分基线文档没有给出,取值后又不能用 `match` 的数值直接当百分比。
## 接口速览
| 项 | 值 |
|---|---|
| 接口地址 | `https://route.showapi.com/872-2?appKey={your_appKey}` |
| 返回根 | `showapi_res_body`(22 个字段)+ `ret_code` |
| 必填参数 | `star1`、`gender1`、`star2`、`gender2` |
| 超时 | 读 5 秒 / 连接 5 秒 |
| 免责口径 | 接口文档明确「数据结果仅供娱乐参考」 |
## 字段对照
### 指数类(全部为字符串)
| 字段 | 含义 | 2026-09-18 天蝎男 × 水瓶女实测值 |
|---|---|---|
| `match` | 综合配对指数 | `50分` |
| `love` | 爱情配对指数 | `2` |
| `married` | 婚姻配对指数 | `2` |
| `forever` | 天长地久指数 | `2` |
| `lqxy` | 两情相悦指数 | `5` |
| `friendship` | 友情配对指数 | `2` |
| `affection` | 亲情配对指数 | `3` |
| `proportion` | 星座配对比重 | `58:42` |
### 文案类
| 字段 | 含义 | 实测样例 |
|---|---|---|
| `suggest` | 恋爱建议 | 一段星座相处建议 |
| `match_case` | 配对示例 | 用一组公众人物的组合做类比 |
| `predestination` | 缘分解析 | 一段缘分走向的叙述 |
| `attention` | 注意事项 | 一段注意事项,内部分条 |
| `review` | 星座速配点评 | `需要努力维持的一对` |
| `info` | 其它建议 | 结构化的多条建议,含换行 |
| `remark` | 提示信息 | `查询成功!` |
### 元信息类
| 字段 | 含义 | 实测值 |
|---|---|---|
| `star1` / `star2` | 两方星座英文码 | `tianxie`、`shuiping` |
| `grxz1` / `grxz2` | 两方星座中文名 | `天蝎座`、`水瓶座` |
| `gender1` / `gender2` | 两方性别 | `男`、`女` |
| `ret_code` | 业务结果 | `0`(数字) |
## 返回示例(2026-09-18 真实返回,长文案已截断)
```json
{
"showapi_res_code": 0,
"showapi_res_body": {
"affection": "3",
"attention": "瓶子崇尚精神自由,是个理想主义者,口才人缘都相当好……",
"forever": "2",
"gender1": "男",
"gender2": "女",
"grxz1": "天蝎座",
"grxz2": "水瓶座",
"info": "相处中需要注意的地方:……",
"love": "2",
"lqxy": "5",
"married": "2",
"match": "50分",
"match_case": "你俩有如……属于刹那触电型。",
"predestination": "凡事好奇,喜欢新鲜感的她会被你的深情的眼眸所打动……",
"proportion": "58:42",
"remark": "查询成功!",
"ret_code": 0,
"review": "需要努力维持的一对",
"star1": "tianxie",
"star2": "shuiping",
"suggest": "蝎子和瓶子基本是两个世界的人……"
}
}
```
`info` 字段内部用换行分成「相处中需要注意的地方」「恋爱中的相处之道」「星座速配注意事项」「如何保持甜蜜关系」四段,前端渲染时按 `\n` 切段即可。`attention` 与 `suggest` 是一整段,不切。
## 指数怎么用
`match` 自带单位,取值时先去掉:
```python
import requests
def match_score(star1, gender1, star2, gender2, appkey):
data = requests.get(
"https://route.showapi.com/872-2",
params={"appKey": appkey, "star1": star1, "gender1": gender1,
"star2": star2, "gender2": gender2},
timeout=5,
).json()
if data.get("showapi_res_code") != 0:
raise RuntimeError(data.get("showapi_res_error"))
body = data["showapi_res_body"]
if str(body.get("ret_code")) != "0":
raise RuntimeError(body.get("remark"))
# "50分" -> 50;"58:42" -> (58, 42)
score = int(str(body["match"]).replace("分", ""))
left, right = (int(x) for x in str(body["proportion"]).split(":"))
return score, left, right, body
print(match_score("tianxie", "1", "shuiping", "0", "YOUR_APPKEY")[:3])
```
cURL:
```bash
curl -G "https://route.showapi.com/872-2" \
--data-urlencode "appKey=YOUR_APPKEY" \
--data-urlencode "star1=tianxie" \
--data-urlencode "gender1=1" \
--data-urlencode "star2=shuiping" \
--data-urlencode "gender2=0" \
--max-time 5
```
Node.js(fetch):
```javascript
const url = new URL("https://route.showapi.com/872-2");
Object.entries({
appKey: "YOUR_APPKEY", star1: "tianxie", gender1: "1",
star2: "shuiping", gender2: "0",
}).forEach(([k, v]) => url.searchParams.set(k, v));
const data = await (await fetch(url, { signal: AbortSignal.timeout(5000) })).json();
const b = data.showapi_res_body;
const toNum = v => parseInt(String(v).replace(/[^\d]/g, ""), 10);
const dims = {
综合: toNum(b.match), 爱情: toNum(b.love), 婚姻: toNum(b.married),
天长地久: toNum(b.forever), 两情相悦: toNum(b.lqxy),
友情: toNum(b.friendship), 亲情: toNum(b.affection),
};
const [left, right] = String(b.proportion).split(":").map(Number);
console.log(dims, left, right, b.review);
```
### 满分基线
接口文档没有给出 `love`、`married` 等维度的满分。2026-09-18 实测 `lqxy` 出现过 `5`,`match` 出现过 `50分` 与 `70分`,几个数值不同量纲。展示上建议用相对星级或相对条,不标注具体百分比。
`proportion` 是两个数值的比例,可以直接画成一条双方比重条。
## 元信息字段的顺序
`gender1`、`gender2` 回显的是传入位置的性别(`1` 显示为「男」,其余显示为「女」)。`star1`、`star2` 的顺序与传入顺序不保证一致。
2026-09-18 实测:传入 `star1=baiyang`(`gender1=0`)、`star2=jinniu`(`gender2=1`),返回 `star1=jinniu`、`star2=baiyang`,而 `gender1` 仍是「女」。把 `grxz1` 与 `gender1` 绑成同一个人的展示元素会错位,按 `star1` / `star2` 单独取星座、按 `gender1` / `gender2` 单独取性别更稳。
同一对星座重复请求结果一致。2026-09-18 用同参数连调两次,返回体逐字节相同,适合按四个参数做缓存键。
## 文案字段的展示
五段文案里 `review` 最短,适合做结果页标题;`suggest`、`predestination`、`attention`、`info` 都是长文,适合折叠或分页展示。分享图建议只放 `match`、`proportion` 和 `review` 三项,避免长文压缩后不可读。
配对结果与文案都是娱乐性质,接口文档明确标注「数据结果仅供娱乐参考」,结果页与分享图保留这句说明。
## FAQ
**Q1:`love=2` 代表几分,满分是多少?**
接口文档没有给出各维度的满分基线。实测 `lqxy` 出现过 `5`,`match` 出现过 `70分`,两者口径不同。展示上用星级或相对条,不标百分比。
**Q2:`proportion` 的 `58:42` 是什么?**
两方的配对比重,两个数的比例关系,可以直接画比重条。数值随星座组合变化。
**Q3:为什么返回的 `star1` 和我传的不一样?**
2026-09-18 实测接口会对 `star1` / `star2` 做内部排序,返回顺序与传入顺序可能不同,而 `gender1` / `gender2` 按传入位置回显。取星座看 `grxz1` / `grxz2`,取性别看 `gender1` / `gender2`,不要按位置拼成同一个人。
**Q4:所有文案字段都会返回吗?**
实测 22 个字段都有值,未出现空串。字段较多,渲染前仍建议逐个判空,避免模板改动后报错。
**Q5:`info` 是一整段吗?**
不是。`info` 内含换行,实测分成四段,按 `\n` 切段渲染。`attention` 与 `suggest` 各是一整段,不切。
## 下一步阅读
- [星座配对:用四个必填参数算出配对指数](https://www.showapi.com/guides/constellation-match-quickstart-872)
- [星座运势查询返回字段全解:五个周期的字段对照](https://www.showapi.com/guides/horoscope-response-fields-872)
- [在星座社区与社交 App 里接入星座运势查询](https://www.showapi.com/guides/horoscope-community-app-872)
- [星座类产品的三条内容线](https://www.showapi.com/guides/horoscope-product-plan-872)
- **本系列共 13 篇**:查看[星座运势 API 指南总目录](https://www.showapi.com/guides/horoscope-guides-872)





