星盘报告接口
接口说明
星盘报告接口提供一套基于出生信息自动生成中文解读报告的 API。 用户只需传入出生时间、地点等信息,服务端结构化报告返回。
报告共 15 种,覆盖个人星盘、性格、爱情、南北交、宫主星、流年、运势、组合盘、朋友、业力等维度。
所有报告统一通过唯一入口 POST /report 提供,由请求参数 report_id 区分具体报告编号(01~15)。
不同报告所需的入参不同(单盘 / 双盘 / 运势),参数缺失或编号不支持时接口直接返回错误,调用方按每个 id 的请求要求传参即可。
通用说明
| 参数 | 值 |
|---|---|
| Base URL | https://chart.12sign.top |
| 请求方式 | POST |
| Content-Type | application/json |
| 统一入口 | /report |
认证
提供 API 密钥认证。
请求数据格式
通过 data(双盘报告额外用 data2)传入出生信息,服务端自动计算星盘数据。
| 字段 | 类型 | 必选 | 说明 |
|---|---|---|---|
| datetime | string | 是 | 出生日期时间,格式 YYYY-MM-DD HH:MM:SS 或 YYYY-MM-DD HH:MM |
| lon | number | 是 | 出生地经度(-180 ~ 180) |
| lat | number | 是 | 出生地纬度(-90 ~ 90) |
| tz | number | 是 | 时区偏移(小时),如 UTC+8 传 8,UTC-5 传 -5 |
{
"report_id": "01",
"data": {
"datetime": "1990-05-15 14:30:00",
"lon": 116.4074,
"lat": 39.9042,
"tz": 8
}
}
统一接口:POST /report
所有报告共用同一入口。通过 report_id 指定报告编号(只支持单个,不支持数组),
传入出生信息即可获得报告,无需预先计算星盘。不同 id 的入参要求见下表的「所需请求参数」。
| 参数 | 类型 | 必选 | 说明 |
|---|---|---|---|
| report_id | string | 是 | 报告编号,01~15 之一 |
| data | object | 是 | 出生信息,含 datetime/lon/lat/tz |
| data2 | object | 仅双盘需要 | 第二人出生信息(报告 03/09/15 需要) |
| house_system | string | 否 | 宫位系统,默认 P(Placidus) |
| forecast_type | string | 仅运势需要 | 报告 10 需要;daily(默认) / weekly / monthly / yearly |
每个 report_id 所需的请求参数
| report_id | 报告名 | 所需请求参数 |
|---|---|---|
| 01 | 个人星盘报告 | report_id + data |
| 02 | 个人性格报告 | report_id + data |
| 03 | 爱情报告(比较盘相位) | report_id + data + data2 |
| 04 | 本命行星落入星座报告 | report_id + data |
| 05 | 本命盘行星落入宫位报告 | report_id + data |
| 06 | 中天及上升报告 | report_id + data |
| 07 | 南北交报告 | report_id + data |
| 08 | 本命宫主星报告 | report_id + data |
| 09 | 个人流年预测 | report_id + data + data2 |
| 10 | 每日/周/月/年运报告 | report_id + data + forecast_type(默认 daily) |
| 11 | 组合盘分析 | report_id + data |
| 12 | 爱情分析 | report_id + data |
| 13 | 爱情预测 | report_id + data |
| 14 | 朋友分析 | report_id + data |
| 15 | 业力分析 | report_id + data + data2 |
请求示例
# 单盘报告(01 个人星盘)
{
"report_id": "01",
"data": {
"datetime": "1990-05-15 14:30:00",
"lon": 116.4074,
"lat": 39.9042,
"tz": 8
}
}
# 双盘报告(03 爱情比较)
{
"report_id": "03",
"data": { "datetime": "1990-05-15 14:30:00", "lon": 116.4074, "lat": 39.9042, "tz": 8 },
"data2": { "datetime": "1992-08-20 09:15:00", "lon": 121.4737, "lat": 31.2304, "tz": 8 }
}
# 运势报告(10 月运)
{
"report_id": "10",
"data": { "datetime": "1990-05-15 14:30:00", "lon": 116.4074, "lat": 39.9042, "tz": 8 },
"forecast_type": "monthly"
}
返回示例
{
"success": true,
"data": { "report_type": "natal_chart", "planets_in_signs": [...], "aspects": [...] }
}
错误返回示例
# 缺少必需参数
{ "success": false, "error": "报告 01 需要参数 data(出生信息)" }
# 双盘报告缺少第二人数据
{ "success": false, "error": "报告 03 需要两人的出生信息(data + data2)" }
# 出生信息字段缺失
{ "success": false, "error": "出生信息缺少必要字段: datetime, lon" }
# 编号不支持
{ "success": false, "error": "不支持的报告编号: 99,支持的编号: ['01','02',...,'15']" }
# forecast_type 非法
{ "success": false, "error": "无效的 forecast_type,支持: ['daily','weekly','monthly','yearly']" }
error 信息。报告类型详解(15 种)
下表列出各报告编号、名称、请求所需的参数及报告内容说明。
报告 01 · 个人星盘报告 report_id: "01"
所需参数:data(出生信息)
report_type: natal_chart
列出十大行星(日月水金火木土天海冥 + 北交点)的落座、落宫解释,以及两两行星的相位解释。
报告 02 · 个人性格报告 report_id: "02"
所需参数:data(出生信息)
report_type: personality
从太阳(基本性格)、月亮(情绪性格)、水星(思维性格)、金星(爱情性格)四个维度给出性格解读。
报告 03 · 爱情报告(比较盘相位) report_id: "03"
所需参数:data + data2(两人出生信息)
report_type: love_comparison
计算两人日月水金火两两之间的比较盘相位并给出解释。
报告 04 · 本命行星落入星座报告 report_id: "04"
所需参数:data(出生信息)
report_type: planets_in_signs
逐行星给出其落入星座的解释(日月水金火木土天海冥 + 北交点)。
报告 05 · 本命盘行星落入宫位报告 report_id: "05"
所需参数:data(出生信息)
report_type: planets_in_houses
逐行星给出其落入宫位的解释(日月水金火木土天海冥)。
报告 06 · 中天及上升报告 report_id: "06"
所需参数:data(出生信息)
report_type: mc_asc
返回上升点落入星座的解释、中天落入星座的解释,以及两者的相位关系。
报告 07 · 南北交报告 report_id: "07"
所需参数:data(出生信息)
report_type: lunar_nodes
给出北交点(TRUE_NODE/MEAN_NODE)落入的星座与宫位解释。
报告 08 · 本命宫主星报告 report_id: "08"
所需参数:data(出生信息)
report_type: house_ruler
对 12 个宫位的宫主星,给出其行星本义解释。
报告 09 · 个人流年预测 report_id: "09"
所需参数:data + data2(两人出生信息)
report_type: transit_prediction
计算本命行星(日月水金火)与流年行星(日月水金火木土)的流年相位并给出解释。
报告 10 · 每日/周/月/年运报告 report_id: "10"
所需参数:data(出生信息)+ forecast_type(默认 daily)
report_type: daily_forecast
按 forecast_type 取值:日运=本命行星与流年行星相位;周运(无语料,仅计算);月运=月亮返照落宫;年运=太阳返照落宫。
报告 11 · 组合盘分析 report_id: "11"
所需参数:data(出生信息)
report_type: composite_analysis
给出组合盘(composite)日月水金火木土七星的落宫与两两相位解释。
报告 12 · 爱情分析 report_id: "12"
所需参数:data(出生信息)
report_type: love_analysis
从月亮(情感需求)、金星(爱情需求)、婚神星 JUNO(婚姻需求)三个维度分析爱情。
报告 13 · 爱情预测 report_id: "13"
所需参数:data(出生信息)
report_type: love_prediction
依据第五宫宫头落入星座分析对爱情的态度(结婚时间需法达盘,本接口仅提示)。
报告 14 · 朋友分析 report_id: "14"
所需参数:data(出生信息)
report_type: friend_analysis
依据第十一宫宫头落入星座分析对朋友的态度,并列出落入第十一宫的行星解释。
报告 15 · 业力分析 report_id: "15"
所需参数:data + data2(两人出生信息)
report_type: karma_analysis
计算两人北交点之间的相位,作为业力连接的解释。
Python 调用示例
import requests
BASE = "https://chart.12sign.top"
def get_report(report_id, data=None, data2=None,
forecast_type="daily", house_system="P"):
"""
统一报告调用:传入出生信息,服务端自动计算星盘。
Args:
report_id: 报告编号(01~15)
data: 出生信息 dict,含 datetime/lon/lat/tz
data2: 第二人出生信息(双盘报告 03/09/15 需要)
forecast_type: 运势类型(仅报告 10),daily/weekly/monthly/yearly
house_system: 宫位系统代码,默认 P(Placidus)
"""
payload = {"report_id": report_id, "data": data}
if data2 is not None:
payload["data2"] = data2
if forecast_type != "daily":
payload["forecast_type"] = forecast_type
if house_system != "P":
payload["house_system"] = house_system
r = requests.post(f"{BASE}/report", json=payload)
return r.json()
if __name__ == "__main__":
person1 = {
"datetime": "1990-05-15 14:30:00",
"lon": 116.4074, # 北京经度
"lat": 39.9042, # 北京纬度
"tz": 8 # UTC+8
}
person2 = {
"datetime": "1992-08-20 09:15:00",
"lon": 121.4737, # 上海经度
"lat": 31.2304, # 上海纬度
"tz": 8
}
# 单盘报告 01
print(get_report("01", data=person1))
# 双盘报告 03(爱情比较)
print(get_report("03", data=person1, data2=person2))
# 运势报告 10(月运)
print(get_report("10", data=person1, forecast_type="monthly"))
# 指定宫位系统(如 Koch)
print(get_report("01", data=person1, house_system="K"))
在线测试
点击“发送请求”后在此显示结果