适用场景与接口能力边界
八字起名 API 提供三个核心动作(action):
- naming:根据父母姓氏与出生时间智能生成名字,综合八字五行、五格数理和三才配置评分,附带寓意标签与重名预估。
- duplicate:查询指定姓名在全国范围内的重名预估数量与等级。
- bazi:仅返回指定出生时间的八字排盘与五行分析,不涉及起名。
该接口设计为生活服务类 API,单用户 QPS 限制为 2 次/秒,适合中小规模应用的后台调用。调用方应在客户端做好节流与重试逻辑,避免触发限频。
鉴权与请求头
API 使用 API Key 进行鉴权。素材中 curl 示例使用X-API-Key头传递密钥,但官方 Header 参数列表中列出的Authorization字段为required=false;实际接入时请以文档页(https://apizero.cn/aidocs/baby-naming)为准。建议优先采用X-API-Key方式,二者选其一即可。
# 请求头示例(二选一) # 方式一:X-API-Key X-API-Key: your_api_key_here # 方式二:Authorization Authorization: Bearer your_api_key_here请求参数详解
请求方法为POST,地址:https://v1.apizero.cn/api/baby-naming,Content-Type 固定为application/json。
| 参数名 | 类型 | 必填 | 说明 | 取值范围/示例 |
|---|---|---|---|---|
| action | string | 否(默认 naming) | 选择动作 | naming/duplicate/bazi |
| surname | string | naming/duplicate 必填 | 姓氏(≤2汉字) | "王" |
| mother_surname | string | 否 | 母姓,填写后生成双姓名字 | "李" |
| birth_year | number | naming/bazi 必填 | 出生年份 | 2000 – 2100,如2026 |
| birth_month | number | naming/bazi 必填 | 出生月份 | 1 – 12,如5 |
| birth_day | number | naming/bazi 必填 | 出生日期 | 1 – 31,如10 |
| birth_hour | number | 否(默认12) | 出生时辰(24小时制) | 0 – 23 |
| gender | string | 否(默认neutral) | 性别偏好 | male/female/neutral |
| count | number | 否(默认10) | 返回候选名字数量 | 1 – 30 |
| name | string | duplicate 必填 | 要查询重名的全名(含姓氏) | "王梓涵" |
注意:素材中参数表
birth_year的 example 为字符串"2026",但其 type 为number。实际请求传入数字或字符串均可(服务端可能做类型转换),但建议按 type 传入数字以避免歧义。
可复制的 curl 示例
以下示例请求执行naming动作,为姓氏“王”、出生日期 2026 年 5 月 10 日(默认午时)生成 5 个候选名字。
curl -sS -X POST \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "action": "naming", "surname": "王", "birth_year": 2026, "birth_month": 5, "birth_day": 10, "count": 5, "gender": "male" }' \ "https://v1.apizero.cn/api/baby-naming"若需要查询重名,使用action=duplicate,并传入待查全名:
curl -sS -X POST \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "action": "duplicate", "name": "王梓森" }' \ "https://v1.apizero.cn/api/baby-naming"返回值解读
成功响应 HTTP 状态码为 200,JSON 结构如下:
{ "code": 0, "msg": "成功", "request_id": "abc123", "data": { "bazi": { "八字": "丙午癸巳辛未癸巳", "四柱": ["丙午", "癸巳", "辛未", "癸巳"], "日主": "金" }, "names": [ { "surname": "王", "given_name": "梓森", "name": "王梓森", "score": 95, "wuge_score": 88, "wuxing_chars": "木+木", "wuge": { "天格": 5, "人格": 15, "地格": 23, "外格": 16, "总格": 27 }, "meaning_tags": ["栋梁", "繁盛"], "duplicate_rate": { "estimated_count": 320, "level": "较低" } } ], "needed_wuxing": ["木"], "wu_xing_analysis": { "五行分布": {"土": 1, "木": 0, "水": 2, "火": 4, "金": 1}, "五行缺失": ["木"], "建议补充": ["木"] } } }| 字段 | 类型 | 说明 |
|---|---|---|
| code | int | 0 表示成功,非零为错误码 |
| msg | string | 状态描述 |
| request_id | string | 请求唯一标识,可用于排查问题 |
| data.bazi | object | 八字排盘结果(仅 naming/bazi 时返回) |
| data.names | array | 候选名字列表(仅 naming 返回),每个包含评分、五格、寓意标签、重名统计 |
| data.needed_wuxing | array | 命理所缺/建议补充的五行 |
| data.wu_xing_analysis | object | 出生时刻的五行分布、缺失与建议 |
常见错误与排错指南
401 Unauthorized
- 现象:返回 401 或
{"code": 401, "msg": "验证失败"}。 - 原因:API Key 未传递或传递格式错误。
- 排错:检查请求头是否包含
X-API-Key或Authorization;确认 Key 未过期、未泄漏空格。可先用 curl 的-v参数查看实际发送的 Header。
400 Bad Request – 参数类型错误
- 现象:返回
{"code": 400, "msg": "参数错误"},通常伴随详细描述(如"birth_year must be a number")。 - 原因:将字符串传入了数字字段,或字段名拼写错误。
- 排错:对比 API 文档的字段名大小写(全部小写 snake_case);确保
birth_year、birth_month、birth_day使用数字而非字符串。
422 Unprocessable Entity – 必填字段缺失或越界
- 现象:
{"code": 422, "msg": "缺少必填参数: surname"}或"birth_year must be between 2000 and 2100"。 - 原因:action 为
naming或bazi时缺少birth_year/birth_month/birth_day;或年份超出范围。 - 排错:按上文参数表逐一核对必填条件;注意
mother_surname和gender为可选,但不要传空对象。
503 Service Unavailable – QPS 超限
- 现象:HTTP 503,响应体可能包含
{"code": 503, "msg": "请求频率过高"}。 - 原因:单秒调用超过 2 次。
- 排错:加入本地节流(令牌桶)或退避重试;检查是否有并发请求或循环中未加延迟。
其他错误 – 姓名用字不在内置库
- 现象:返回
{"code": 400, "msg": "姓氏不在支持列表中"}或类似提示。 - 原因:API 内置 396 个姓氏笔画库、175 个起名字库;极生僻字可能不支持。
- 排错:尝试更换常用姓氏或单字;若需查询姓氏是否支持,可调用
baziaction 先行验证(bazi不依赖姓名用字)。
网络层问题
- 现象:连接超时、DNS 解析失败、SSL 证书异常。
- 原因:客户端网络不通、防火墙拦截、或使用了不支持的 TLS 版本。
- 排错:用
curl -v查看握手阶段;确保 HTTPS 证书验证通过(-k仅用于测试)。
工程化注意事项
- 限流与重试:QPS 上限 2,建议在客户端使用指数退避重试(如 1s、2s、4s,最大 3 次),避免短时内爆请求。
- 缓存策略:同一个出生时间组合的八字排盘结果(
baziaction)几乎是确定的,可缓存 24 小时;起名结果受count、gender等影响,可酌情缓存较短时间(如 1 小时)。 - 日志记录:记录每次请求的
request_id和code,便于后期排查;错误日志中保留完整请求体(脱敏 API Key)。 - 参数校验前置:在调用前在客户端先校验年份范围(2000-2100)、月份(1-12)、日期(1-31)、姓氏长度(≤2 字),减少无效调用。
- 错误码对照表:建立本地映射,将
code转为可读提示(如503→服务繁忙,请稍后重试)。
参考文档
- 八字起名 API 文档页面 – 最新参数、示例与更新记录。
- 原始文档 Markdown – 可用于离线集成。
(注:本文仅提供技术集成指南,接口的可用性与数据准确性以官方文档为准。)