获取合法API Key需登录纳米AI开发者平台→进入API管理→创建密钥并勾选对应服务权限(nano-search/chat/mcp不可混选)→密钥仅首次可见;请求必须用POST,Headers含Authorization(Bearer+空格+密钥)、Content-Type、Accept;Body按接口要求严格构造JSON。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

想把纳米AI的搜索、对话或MCP工具能力集成进自己的程序,却卡在API Key申请失败、请求总返回401或JSON解析报错——问题往往不出在代码,而是密钥没拿对、请求头漏字段、Body结构错位。
获取合法有效的API Key
登录纳米AI开发者平台(https://developer.n.cn/)→ 使用手机号或已有账号登录 → 进入「API管理」页面 → 点击「创建新密钥」。
填写密钥名称(如“iOS端搜索服务”),必须勾选你要调用的具体服务权限:nano-search、nano-chat、nano-mcp三者不可混选,【未勾选对应权限的服务将直接拒绝请求,且错误码不提示具体缺失项】。
点击确认后,系统生成一串32位以上字母数字组合密钥。该密钥仅首次弹窗可见,复制后立即关闭页面——【一旦刷新或跳转,密钥永久丢失,需重新创建】。
配置HTTP请求头
所有接口必须使用POST方法(少数查询类接口虽支持GET,但因参数长度限制和安全性原因,统一推荐POST)。
Headers中必须包含三项且仅此三项:
Content-Type: application/json
Accept: application/json
Authorization: Bearer 后接你复制的完整密钥字符串(注意Bearer与密钥之间有一个空格)
若漏掉Accept字段,部分接口会返回HTML格式错误页而非JSON,导致后续解析失败。
构造并发送请求体(Body)
方法一:调用纳米AI搜索接口
请求地址:https://api.nano-ai.com/search/v1/query
Body必须为标准JSON,至少含query字段,limit建议设为1–50之间整数,domain为可选领域过滤值(如biotech、materials-science):
{ "query": "固态电池电解质界面稳定性研究进展", "limit": 15, "domain": "materials-science" }
方法二:调用Nano-Banana对话接口
请求地址:https://api.nano-ai.com/v1/chat/completions
Body必须含model字段(当前固定为" nano-banana-2 ")及messages数组,role只能是"user"或"assistant",content不能为空字符串:
{ "model": "nano-banana-2", "messages": [ { "role": "user", "content": "用表格对比钠离子电池与锂离子电池在能量密度、成本、低温性能上的差异" } ] }
纳米AI是一款基于人工智能大模型技术开发的智能应用工具,主要用于提供AI问答、内容生成、信息整理与智能搜索辅助等功能。用户可通过自然语言交互方式获取结构化信息与文本内容,用于学习、办公及内容创作等多种场景。
方法三:调用MCP工具执行任务(需已启用对应工具)
请求地址:https://api.nano-ai.com/mcp/v1/run
Body结构与其他接口差异极大,必须严格按工具文档定义字段。例如调用nanoAIbrowser需提供url和timeout_ms;调用gen_pdf则需传入markdown_content和title。字段名大小写敏感,缺一不可。
用Python requests验证调用
第一步:安装requests库(如未安装)→ pip install requests
第二步:新建nano_api_test.py文件,粘贴以下代码(替换YOUR_API_KEY为真实密钥):
import requests
url = "https://api.nano-ai.com/search/v1/query"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
"Accept": "application/json"
}
data = {"query": "钙钛矿光伏组件户外实证数据", "limit": 5}
response = requests.post(url, headers=headers, json=data)
print(response.status_code)
print(response.json())
运行脚本,若返回状态码200且输出含results数组,则调用成功;若返回401,请回头检查密钥是否复制完整、Authorization字段是否有空格、密钥前缀是否为sk-/or-/fw-;若返回400,重点核查JSON语法是否合法、必填字段是否遗漏。

















