小推运盘API文档
小推运(Minor Progressions),也被称为月限法或四级推进,三种名称指同一种推运方法。本文档统一使用"小推运"。
基本信息
| 参数 | 值 |
|---|---|
| Base URL | https://chart.12sign.top |
| 接口URL | /onechart |
| 请求方式 | POST |
| Content-Type | application/json |
接口功能说明、注意事项、通用参数(动态天体配置、恒星、阿拉伯点等)请参考 单盘接口通用参数说明
请求参数
1. 基础参数(必需)
| 参数名 | 类型 | 必选 | 说明 |
|---|---|---|---|
| chart_type | string | 是 | 固定值:"progression_min" |
| natal_data.datetime | string | 是 | 出生日期时间,格式:YYYY-MM-DD HH:MM:SS |
| natal_data.lat | number | 是 | 出生地纬度 |
| natal_data.lon | number | 是 | 出生地经度 |
| natal_data.tz | number/string | 是 | 出生地时区,如 8 或 "8" 表示UTC+8,支持小数如 8.5 |
| target_data.datetime | string | 是 | 推运目标日期时间,格式:YYYY-MM-DD HH:MM:SS |
| target_data.lat | number | 是 | 推运目标地点纬度(当前所在地点) |
| target_data.lon | number | 是 | 推运目标地点经度(当前所在地点) |
| target_data.tz | number/string | 是 | 推运目标地点时区,如 8 或 "8" 表示UTC+8,支持小数如 8.5 |
名称说明
- 小推运(Minor Progressions),也被称为月限法或四级推进,三种名称指同一种推运方法。
请求示例
基本请求
{
"chart_type": "progression_min",
"natal_data": {
"datetime": "1990-06-15 14:30:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": 8
},
"target_data": {
"datetime": "2026-09-22 12:00:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": 8
}
}
完整请求(含分析、SVG)
{
"chart_type": "progression_min",
"natal_data": {
"datetime": "1990-06-15 14:30:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": 8
},
"target_data": {
"datetime": "2026-09-22 12:00:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": 8
},
"include_analysis": true,
"include_svg": true
}
返回参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| success | boolean | 请求是否成功 |
| data | object | 星盘数据 |
| data.chart_type | string | 星盘类型,固定返回 "progression_min" |
| data.cal_time | string | 本次推运盘对应的星历时刻(UTC),盘面所有天体位置即该时刻的位置 |
| data.planets | object | 天体位置数据,包含所有计算的天体(行星、福点、ASC、MC、VERTEX等),每个天体含 longitude(黄经,0-360)和 speed(速度,负值为逆行) |
| data.houses | object | 宫位数据,House_1 至 House_12,每个宫头含 longitude(黄经) |
| data.fixed_stars | object | 恒星位置数据(如果请求了恒星) |
| data.arabic_parts | object | 阿拉伯点数据(如果请求了阿拉伯点,同时也会合并到planets中) |
| data.analysis | object | 详细分析数据(如果 include_analysis=true) |
| data.analysis.config | object | 全局配置信息(包含 orb_scheme, aspect_scheme, fixed_star_orb_scheme) |
| data.analysis.aspects | array | 相位列表,每个相位包含:planet1, planet2, aspect, orb, calculated_orb 等字段 |
| data.analysis.planet_signs | object | 行星星座分析,包含每个行星的星座、度数等信息 |
| data.analysis.planet_houses | object | 行星宫位分析,包含每个行星所在的宫位 |
| data.analysis.element_analysis | object | 元素分析(火土风水分布) |
| data.analysis.quality_analysis | object | 性质分析(基本、固定、变动分布) |
| svg | string | SVG图形数据(如果 include_svg=true) |
返回示例(节选)
{
"success": true,
"data": {
"chart_type": "progression_min",
"cal_time": "1993-03-02 06:28:00",
"planets": {
"SUN": { "longitude": 341.69, "speed": 1.0031 },
"MOON": { "longitude": 79.03, "speed": 13.1157 },
"MERCURY": { "longitude": 353.79, "speed": -0.3616 }, // speed为负 = 逆行
"FORTUNA": { "longitude": 216.67, "speed": 0 },
"ASC": { "longitude": 118.13, "speed": 0 },
"MC": { "longitude": 13.02, "speed": 0 }
// ... 其余天体:VENUS, MARS, JUPITER, SATURN, URANUS, NEPTUNE, PLUTO, MEAN_NODE, CHIRON, MEAN_LILITH, VERTEX
},
"houses": {
"House_1": { "longitude": 118.13 },
"House_2": { "longitude": 138.37 },
// ... House_3 至 House_9
"House_10": { "longitude": 13.02 }
// ... House_11, House_12
}
},
"svg": "<svg ...>" // include_svg=true 时返回
}
返回数据结构说明
- cal_time:虚拟推运时刻,是理解小推运结果的关键参考:盘面所有行星位置即该时刻的星历位置。
- analysis.config:包含本次计算使用的全局配置(orb_scheme, aspect_scheme, fixed_star_orb_scheme)
- 相位数据简化:每个相位不再包含 orb_scheme 和 involves_fixed_star 字段,减少冗余
- 恒星相位识别:通过 planet1 或 planet2 的名称即可判断是否为恒星相位
Python 调用示例
import requests
# 小推运基本请求
response = requests.post('https://chart.12sign.top/onechart', json={
"chart_type": "progression_min",
"natal_data": {
"datetime": "1990-06-15 14:30:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": 8
},
"target_data": {
"datetime": "2026-09-22 12:00:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": 8
},
"include_analysis": True,
"include_svg": True
})
result = response.json()
if result['success']:
data = result['data']
# 保存SVG
with open('minor_progression.svg', 'w', encoding='utf-8') as f:
f.write(result['svg'])
# 虚拟推运时刻
print(f"虚拟推运时刻: {data['cal_time']}")
# 上升与月亮位置
asc = data['planets']['ASC']['longitude']
moon = data['planets']['MOON']['longitude']
print(f"ASC 黄经: {asc:.2f}°")
print(f"月亮黄经: {moon:.2f}°")
# 相位分析
analysis = data.get('analysis', {})
for aspect in analysis.get('aspects', []):
print(f"{aspect['planet1']} {aspect['aspect']} {aspect['planet2']} (orb {aspect['orb']:.2f}°)")
在线测试
请求地址:
https://chart.12sign.top/onechart
请求参数(JSON):
返回结果:
点击"发送请求"后在此显示结果
星盘图:
SVG星盘图将在请求成功后显示在这里