八字排盘API文档

/bazibenming 接口 (本命详盘)

本接口用于生成详细的八字本命盘。需要提供出生年月日时和性别等信息,接口会计算并返回包含八字、神煞、纳音、藏干、空亡、五行得分和旺衰等全方位信息的命盘数据。

基本信息

参数 值
Base URL https://chart.12sign.top
接口URL /benming
请求方式 POST
Content-Type application/json

请求参数

参数名 类型 必选 说明
year number 是 出生年份,如 1990
month number 是 出生月份,如 1
day number 是 出生日期,如 15
hour number 是 出生小时,24小时制,如 14
gender string 否 性别。'male' (男) 或 'female' (女)。默认为 'male'
calendar_type string 否 日历类型。'solar' (阳历) 或 'lunar' (阴历)。默认为 'solar'

请求示例

{
    "year": 1990,
    "month": 1,
    "day": 15,
    "hour": 12,
    "gender": "male",
    "calendar_type": "solar"
}

返回参数

返回一个包含详细八字信息的JSON对象,结构如下:

参数名 类型 说明
input object 用户输入的原始信息
dates object 转换后的阳历和阴历日期
bazi object 八字四柱信息 (年柱、月柱、日柱、时柱)
shensha object 各柱对应的神煞
cang_gan object 地支藏干
na_yin object 各柱对应的纳音五行
kong_wang object 日柱和年柱的旬空(空亡)
di_shi object 天干十二长生状态
five_elements object 五行得分和日主旺衰分析

返回示例

{
    "bazi": {
        "day": ["庚", "申"],
        "hour": ["壬", "午"],
        "month": ["丁", "丑"],
        "year": ["己", "巳"]
    },
    "cang_gan": {
        "day": ["戊", "庚", "壬"],
        "hour": ["己", "丁"],
        "month": ["癸", "辛", "己"],
        "year": ["庚", "丙", "戊"]
    },
    "dates": {
        "lunar": "一九八九年腊月十九",
        "solar": "1990年01月15日 12时"
    },
    "di_shi": { "...": "..." },
    "five_elements": {
        "scores": {
            "earth": 3.2,
            "fire": 2.1,
            "metal": 2.5,
            "water": 1.8,
            "wood": 0.4
        },
        "strength": {
            "is_weak": false,
            "score": 5.7
        }
    },
    "input": {
        "calendar_type": "阳历",
        "date": "1990年01月15日 12时",
        "gender": "男"
    },
    "kong_wang": {
        "day_branch": ["子", "丑"],
        "year_branch": ["戌", "亥"]
    },
    "na_yin": {
        "day": "石榴木",
        "hour": "杨柳木",
        "month": "涧下水",
        "year": "大林木"
    },
    "shensha": { "...": "..." }
}

/bazianalyze 接口 (基础分析)

本接口用于对八字进行基础分析,返回核心的分析结果。相比 /benming 接口,此接口可能提供一个更为精简或不同维度的分析摘要。

基本信息

参数 值
Base URL https://chart.12sign.top
接口URL /analyze
请求方式 POST
Content-Type application/json

请求参数

参数名 类型 必选 说明
year number 是 出生年份,如 1990
month number 是 出生月份,如 1
day number 是 出生日期,如 15
hour number 是 出生小时,24小时制,如 14
gender string 否 性别。'male' (男) 或 'female' (女)。默认为 'male'

请求示例

{
    "year": 1990,
    "month": 1,
    "day": 15,
    "hour": 12,
    "gender": "male"
}

返回示例

返回一个包含核心分析结果的JSON对象(此处为一个示例)。

{
    "bazi": "己巳 丁丑 庚申 壬午",
    "day_master": "庚金",
    "five_elements_summary": {
        "wood": "弱",
        "fire": "中",
        "earth": "强",
        "metal": "强",
        "water": "中"
    },
    "strength_analysis": "身旺",
    "lucky_elements": ["木", "水"]
}

Python测试代码示例

import requests
import json

BASE_URL = "http://chart.12sign.top/bazianalyze"

def test_bazi_benming():
    """测试 /benming 接口"""
    url = f"{BASE_URL}/benming"
    payload = {
        "year": 1990,
        "month": 1,
        "day": 15,
        "hour": 12,
        "gender": "male",
        "calendar_type": "solar"
    }
    
    try:
        print("正在测试 /benming 接口...")
        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("/benming 接口测试成功!")
            
            # 打印部分关键信息
            if 'bazi' in data and 'day' in data['bazi']:
                day_master = data['bazi']['day'][0]
                print(f"日主: {day_master}")
            
            if 'five_elements' in data and 'strength' in data['five_elements']:
                strength = "身弱" if data['five_elements']['strength']['is_weak'] else "身旺"
                print(f"旺衰分析: {strength}")
            
            # 保存完整结果到文件
            with open('benming_result.json', 'w', encoding='utf-8') as f:
                json.dump(data, f, ensure_ascii=False, indent=4)
            print("详细结果已保存至 benming_result.json")
            
            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_bazi_analyze():
    """测试 /analyze 接口"""
    url = f"{BASE_URL}/analyze"
    payload = {
        "year": 1990,
        "month": 1,
        "day": 15,
        "hour": 12,
        "gender": "male"
    }
    
    try:
        print("\n正在测试 /analyze 接口...")
        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("/analyze 接口测试成功!")
            print("返回数据:")
            print(json.dumps(data, ensure_ascii=False, indent=4))
            return data
        else:
            print(f"API请求失败: {response.status_code}")
            print(f"错误信息: {response.text}")
            return None
            
    except Exception as e:
        print(f"请求出错: {e}")
        return None


if __name__ == "__main__":
    test_bazi_benming()
    test_bazi_analyze()

注意事项

  • 八字排盘是中华传统命理学的基础,结果的准确性高度依赖于输入信息的精确性。
  • 请务必提供准确的出生年、月、日、时信息。出生时辰对时柱和部分神煞有决定性影响。
  • gender 参数会影响大运的顺逆排法,请正确选择。
  • calendar_type 参数支持阳历和阴历输入,后台会自动进行转换,请确保输入类型与实际日期一致。
  • 所有数值类型的参数(year, month, day, hour)请确保传入的是数字,而非字符串。
  • API已进行基本测试,但请在使用前根据您的业务场景进行充分验证。