星盘报告接口

接口说明

星盘报告接口提供一套基于出生信息自动生成中文解读报告的 API。 用户只需传入出生时间、地点等信息,服务端结构化报告返回。

报告共 15 种,覆盖个人星盘、性格、爱情、南北交、宫主星、流年、运势、组合盘、朋友、业力等维度。 所有报告统一通过唯一入口 POST /report 提供,由请求参数 report_id 区分具体报告编号(01~15)。 不同报告所需的入参不同(单盘 / 双盘 / 运势),参数缺失或编号不支持时接口直接返回错误,调用方按每个 id 的请求要求传参即可。

通用说明

参数
Base URLhttps://chart.12sign.top
请求方式POST
Content-Typeapplication/json
统一入口/report

认证

提供 API 密钥认证。

请求数据格式

通过 data(双盘报告额外用 data2)传入出生信息,服务端自动计算星盘数据。

字段类型必选说明
datetimestring出生日期时间,格式 YYYY-MM-DD HH:MM:SSYYYY-MM-DD HH:MM
lonnumber出生地经度(-180 ~ 180)
latnumber出生地纬度(-90 ~ 90)
tznumber时区偏移(小时),如 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_idstring报告编号,01~15 之一
dataobject出生信息,含 datetime/lon/lat/tz
data2object仅双盘需要第二人出生信息(报告 03/09/15 需要)
house_systemstring宫位系统,默认 P(Placidus)
forecast_typestring仅运势需要报告 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']" }
参数缺失或编号不支持时 HTTP 状态码为 400;业务处理异常(如数据库查询失败、出生信息计算星盘失败)也会以 400 返回,并附 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"))

在线测试

请求地址:
https://chart.12sign.top/report
请求参数(JSON):
返回结果:
点击“发送请求”后在此显示结果