小限盘(Profection)API文档
基本信息
| 参数 | 值 |
|---|---|
| Base URL | https://chart.12sign.top |
| 接口URL | /onechart |
| 请求方式 | POST |
| Content-Type | application/json |
接口功能说明、注意事项、通用参数(动态天体配置、恒星、阿拉伯点等)请参考 单盘接口通用参数说明
小限盘概念
小限盘(Profection)是一种古老的占星推运方法,基于上升星座的年度、月度和日度推进。
- 年小限(Annual Profection):每过一年,小限星座推进到下一个星座(从上升星座开始)
- 月小限(Monthly Profection):在年度小限基础上,每过一个月推进到下一个星座
- 日小限(Daily Profection):在月度小限基础上,根据时间分形原理进一步细分
计算原理(时间分形 Fractal Time):
- 年小限:1个太阳年(365.25天)走完12个星座
- 月小限:1个推运月(365.25÷12 ≈ 30.4375天)走1个星座
- 日小限:1个推运日单元(30.4375÷12 ≈ 2.536天)走1个星座
- 年小限:1个太阳年(365.25天)走完12个星座
- 月小限:1个推运月(365.25÷12 ≈ 30.4375天)走1个星座
- 日小限:1个推运日单元(30.4375÷12 ≈ 2.536天)走1个星座
请求参数
1. 基础参数(必需)
| 参数名 | 类型 | 必选 | 说明 |
|---|---|---|---|
| chart_type | string | 是 | 固定值:"smalllimit" |
| 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 |
请求示例
基本请求
{
"chart_type": "smalllimit",
"natal_data": {
"datetime": "1990-06-15 14:30:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": 8
},
"target_data": {
"datetime": "2025-06-24 12:00:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": 8
}
}
返回参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| success | boolean | 请求是否成功 |
| data | object | 星盘数据(包含本命盘基础数据和小限数据) |
| data.planets | object | 本命盘行星位置数据 |
| data.houses | object | 本命盘宫位数据 |
| data.profection | object | 小限盘核心数据 |
| data.profection.year | number | 当前年小限的星座索引(0-11,对应白羊座到双鱼座) |
| data.profection.moon | number | 当前月小限的星座索引(0-11) |
| data.profection.day | number | 当前日小限的星座索引(0-11) |
| data.profection.annual_sign | string | 当前年小限星座名称(如 "Leo") |
| data.profection.monthly_sign | string | 当前月小限星座名称 |
| data.profection.daily_sign | string | 当前日小限星座名称 |
| data.profection.age | number | 当前年龄(完整年数) |
| data.profection.months_passed | number | 当前年度小限内已过去的月数 |
| data.profection.days_passed | number | 当前月度小限内已过去的天数 |
| data.profection.year_list | array | 12个星座的年小限列表,每个元素包含 sign_id 和 is_true(是否当前星座) |
| data.profection.moon_list | array | 12个星座的月小限列表 |
| data.profection.day_list | array | 12个星座的日小限列表 |
| svg | string | SVG图形数据(如果 include_svg=true) |
Python 调用示例
import requests
response = requests.post('https://chart.12sign.top/onechart', json={
"chart_type": "smalllimit",
"natal_data": {
"datetime": "1990-06-15 14:30:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": 8
},
"target_data": {
"datetime": "2025-06-24 12:00:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": 8
},
"include_svg": True
})
result = response.json()
if result['success']:
profection = result['data']['profection']
print(f"年龄: {profection['age']}岁")
print(f"年小限星座: {profection['annual_sign']}")
print(f"月小限星座: {profection['monthly_sign']}")
print(f"日小限星座: {profection['daily_sign']}")
print(f"已过月数: {profection['months_passed']}")
print(f"已过天数: {profection['days_passed']}")
# 显示12星座的小限状态
for item in profection['year_list']:
sign_names = ['Aries', 'Taurus', 'Gemini', 'Cancer', 'Leo', 'Virgo',
'Libra', 'Scorpio', 'Sagittarius', 'Capricorn', 'Aquarius', 'Pisces']
marker = " <-- 当前" if item['is_true'] else ""
print(f" {sign_names[item['sign_id']]}{marker}")
在线测试
请求地址:
https://chart.12sign.top/onechart
请求参数(JSON):
返回结果:
点击"发送请求"后在此显示结果
星盘图:
SVG星盘图将在请求成功后显示在这里