个人星盘 api数据接口
欢迎使用AI星盘专业占星图表API!我们提供完整的星盘API服务,包括本命盘API、行运盘API、合盘API、推运盘API等。支持单盘、双盘和三盘的各种组合分析。所有占星API都返回结构化的JSON数据和可选的SVG图表,确保您能够轻松集成到任何应用程序中。请求网址,chart.12sign.top。
星盘API文档 - 占星图表API接口文档
欢迎使用AI星盘专业占星图表API!我们提供完整的星盘API服务,包括本命盘API、行运盘API、合盘API、推运盘API等。支持单盘、双盘和三盘的各种组合分析。 所有占星API都返回结构化的JSON数据和可选的SVG图表,确保您能够轻松集成到任何应用程序中。
请求网址,chart.12sign.top
快速开始
所有API端点都使用HTTP POST方法,接受JSON格式的请求数据,并返回结构化的响应。
基本请求格式
POST /api/chart Content-Type: application/json { "chart_type": "natal", "data": { "year": 1990, "month": 5, "day": 15, "hour": 14, "minute": 30, "second": 0, "latitude": 39.9042, "longitude": 116.4074, "timezone": 8 }, "house_system": "placidus", "include_svg": true }
响应格式
{ "success": true, "data": { "planets": [...], "houses": [...], "aspects": [...] }, "svg_content": "..." }
本命盘API文档
接口说明
本接口用于生成本命盘,需要提供出生日期时间、地点信息,计算并绘制本命星盘图。本命盘显示个人出生时刻的星体位置和宫位分布,是占星学分析的基础。
基本信息
- 接口URL:
/onechart - 请求方式: POST
- Content-Type: application/json
请求参数
| 参数名 | 类型 | 必选 | 说明 |
|---|---|---|---|
| chart_type | string | 是 | 固定值:"natal" |
| data.datetime | string | 是 | 出生日期时间,格式:YYYY-MM-DD HH:MM:SS 或 YYYY-MM-DD HH:MM |
| data.lat | number | 是 | 出生地纬度 |
| data.lon | number | 是 | 出生地经度 |
| data.tz | string | 是 | 出生地时区,格式:数字字符串,如"8.0"表示UTC+8 |
| house_system | string | 否 | 宫位系统,默认为占星安宫(P) |
| use_chinese_font | boolean | 否 | 是否使用中文字体,默认false |
| include_svg | True | 否 | 是否返回SVG |
请求示例
{
"chart_type": "natal",
"data": {
"datetime": "1990-01-01 12:00:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": "8.0"
},
"house_system": "P",
"use_chinese_font": true
}
返回参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| success | boolean | 请求是否成功 |
| data | object | 星盘数据,包含行星位置、宫位等信息 |
| svg | string | 星盘SVG图形数据 |
返回示例
{
"data": {
"chart_type": "natal",
"birth_date": "1990-01-01 12:00:00",
"planets": {
"sun": {"degree": 280.5, "sign": "Capricorn", "house": 10},
"moon": {"degree": 125.3, "sign": "Leo", "house": 5},
"mercury": {"degree": 295.8, "sign": "Capricorn", "house": 10},
"venus": {"degree": 310.2, "sign": "Aquarius", "house": 11},
"mars": {"degree": 185.6, "sign": "Libra", "house": 7},
"jupiter": {"degree": 89.4, "sign": "Cancer", "house": 4},
"saturn": {"degree": 275.9, "sign": "Capricorn", "house": 10},
"uranus": {"degree": 305.1, "sign": "Aquarius", "house": 11},
"neptune": {"degree": 285.3, "sign": "Capricorn", "house": 10},
"pluto": {"degree": 295.7, "sign": "Capricorn", "house": 10}
},
"houses": {
"1": {"degree": 45.2, "sign": "Taurus"},
"2": {"degree": 75.8, "sign": "Gemini"},
"3": {"degree": 105.4, "sign": "Cancer"},
"4": {"degree": 135.0, "sign": "Leo"},
"5": {"degree": 165.6, "sign": "Virgo"},
"6": {"degree": 195.2, "sign": "Libra"},
"7": {"degree": 225.8, "sign": "Scorpio"},
"8": {"degree": 255.4, "sign": "Sagittarius"},
"9": {"degree": 285.0, "sign": "Capricorn"},
"10": {"degree": 315.6, "sign": "Aquarius"},
"11": {"degree": 345.2, "sign": "Pisces"},
"12": {"degree": 15.8, "sign": "Aries"}
}
},
"svg": "..."
}
Python测试代码示例
import requests
import json
import os
# 测试本命盘API
def test_natal_chart(base_url="http://chart.12sign.top"):
url = f"{base_url}/onechart"
payload = {
"chart_type": "natal",
"data": {
"datetime": "1990-01-01 12:00:00",
"lon": 116.4,
"lat": 39.9,
"tz": "8.0"
},
"house_system": "P",
"use_chinese_font": True,
"include_svg": True
}
try:
print("正在测试本命盘API...")
response = requests.post(url, json=payload, headers={'Content-Type': 'application/json'})
print(f"响应状态码: {response.status_code}")
if response.status_code == 200:
data = response.json()
print("本命盘API测试成功!")
print(f"返回数据包含: {list(data.keys())}")
print("完整的返回数据:")
print(data)
# 保存SVG文件
if 'svg' in data and data['svg']:
os.makedirs('test_outputs', exist_ok=True)
with open('test_outputs/natal_chart_test.svg', 'w', encoding='utf-8') as f:
f.write(data['svg'])
print("SVG文件已保存: test_outputs/natal_chart_test.svg")
# 打印行星位置信息
if 'data' in data and 'planets' in data['data']:
print("\n行星位置信息:")
for planet, info in data['data']['planets'].items():
print(f"{planet}: {info}")
return data
else:
print(f"API请求失败: {response.status_code}")
print(f"错误信息: {response.text}")
return None
except Exception as e:
print(f"请求出错: {e}")
return None
# 测试不同出生信息的本命盘
def test_multiple_natal_charts():
test_cases = [
{
"name": "北京出生",
"data": {
"datetime": "1990-01-01 12:00:00",
"lon": 116.4,
"lat": 39.9,
"tz": "8.0"
}
},
{
"name": "上海出生",
"data": {
"datetime": "1985-06-15 14:30:00",
"lon": 121.5,
"lat": 31.2,
"tz": "8.0"
}
},
{
"name": "纽约出生",
"data": {
"datetime": "1992-12-25 08:15:00",
"lon": -74.0,
"lat": 40.7,
"tz": "-5.0"
}
}
]
for case in test_cases:
print(f"\n=== 测试{case['name']}本命盘 ===")
payload = {
"chart_type": "natal",
"data": case["data"],
"house_system": "P",
"use_chinese_font": True
}
try:
response = requests.post("http://chart.12sign.top/onechart", json=payload)
if response.status_code == 200:
print(f"{case['name']}本命盘生成成功")
else:
print(f"{case['name']}本命盘生成失败: {response.status_code}")
except Exception as e:
print(f"{case['name']}本命盘测试出错: {e}")
if __name__ == "__main__":
# 基本测试
test_natal_chart()
# 多案例测试
test_multiple_natal_charts()
注意事项
- 本命盘是个人出生时刻的星体位置图,是占星学分析的基础
- 需要提供准确的出生日期时间、地点和时区信息
- 时间格式必须严格遵循YYYY-MM-DD HH:mm:ss的格式
- 经纬度使用小数格式,东经北纬为正,西经南纬为负
- 时区格式为数字,如8.0或-5.0
- 本命盘包含太阳、月亮、水星、金星、火星、木星、土星、天王星、海王星、冥王星的位置
- 宫位系统默认为普拉西德(P),也可选择其他系统
- API已通过完整测试,确保参数格式正确
- 返回的SVG字段在生成失败时可能为null,但data字段仍会包含计算数据
更多推荐



所有评论(0)