跳至内容
回到Nymbot

知识库 开发者

火焰概览

您在應用程式中使用的模型、發電器和平衡器,來自您自己的代碼. API 會說 OpenAI 和 Anthropic 格式,所以大多數工具和 SDK 都會通過改變基礎 URL 和鍵來工作。

什么是火

HTTP API 在 nymbot.ai 它回答了 OpenAI 或 Anthropic 客户端已经发送的相同请求。

它是由相同的两 平衡 与应用程序一样,价格相同.在API上没有订阅和免费授权:每一个请求都是从您购买的学分中支付的。

API 没有做的是添加 Nymbot 自己的任何东西。当您发送它们时,您的消息会传递给模型:没有 Nymbot 系统提示,没有内存,没有日期或语言提示。

基地 URL

使用基地 URL
OpenAI SDK 和 OpenAI 兼容工具https://nymbot.ai/api/v1
人类 SDK 和 克劳德代码https://nymbot.ai/api (SDK 添加) /v1/messages 自己)

每个终点都生活在 /api/v1/未知的路回来了 404 一个已知的路径被称为错误的方法返回 405两者都是JSON。

该 API 响应来自任何网站的交叉源请求,因此浏览器页面可以调用它. 任何你发送到浏览器的内容都可以由打开它的人读取,所以只使用具有小值的密钥 头与您的 nym 签署的终端点(密钥、帐户摘要、NWC自动上传和退款赎回)是例外:在浏览器中,他们只回答 Nymbot 自己的网站。 帐户签名请求.

将每个 JSON 体发送到 Content-Type: application/json任何其他类型都被拒绝 415,所以一个简单的HTML形式或 text/plain 来自其他网站的请求无法到达 API. 使用 cURL,通过 -H "Content-Type: application/json" 与 -d.

火钥匙

密钥是在应用程序中创建的。 火焰 在 Web 应用程序的侧栏中,或在 Android 和 iOS 上的菜单中,然后点击 创建钥匙给它一个名字,如果你愿意,一个封面和一个到期日期。

將鑰匙顯示一次. 在關閉頁面之前在安全的地方複製它:Nymbot 只保留一個指紋,所以它無法再向你顯示它。

一个钥匙看起来像 sk-nymbot- 随后有 43 个字母、数字、分数和分数,应用程序将每个键列出其名称和短提示,如: sk-nymbot-Qm7x…c2Lw.

  • 一个钥匙属于你的NIM。 它花费了你的余额,只有你的密码可以创建,更改或撤销它.任何持有密钥的人都可以花费它,所以把它当作密码。
  • 帽子在赌注。 一个密钥可以有一个支出限额,并可以重置每一天,每周(星期一)或每个月(第一个),在00:00 UTC. 它计算两个余额,一个标准信用为10 sats和一个Pro信用为100,所以它意味着相同的余额,任何一个请求花费。 403 key_limit_reached,即使答案在封面下出现;错误表示剩余多少和封面何时重置。 max_tokens 一个请求被收取了实际成本,这与上限相比计算,所以如果提供商报告了比被放置的更多代币,最后一个适合的请求可以把钥匙略过其上限;接下来一个被拒绝。
  • 耗费的帽子只会停止花费。 一个在其顶端的密钥仍然可以检查余额,阅读其历史,列出模型,计算代币,顶上并检查它已经开始的视频。
  • Expiry 是可选的。 设置日期后,密钥停止工作。
  • 撤销是即时和最终的。 一个被撤销的密钥失败了其下一个请求. 它仍然在列表中,标记为被撤销,所以它的支出历史仍然有意义。
  • 您可以拥有多达 25 个活跃的密钥,每个密钥都有自己的名称。

相同的表格显示了每个密钥在这个期间的花费,以及最后一次使用时的总和,你的余额和最近的API请求。 管理钥匙.

验证请求

在这些标题中的任何一个中发送密钥. 它们等同,所以使用客户端默认发送的内容:

头部发送
Authorization: Bearer sk-nymbot-…OpenAI SDK,大多数工具, Claude Code 与 ANTHROPIC_AUTH_TOKEN
x-api-key: sk-nymbot-…人类 SDK
api-key: sk-nymbot-…Azure 客户端

丢失、未知、撤销或过期密钥返回 401与代码 missing_api_key, invalid_api_key, revoked_api_key 或 expired_api_key列出模型、音频模型和语音,以及付款方式不需要密钥。

照片,视频,语音,转录和嵌入也可一次性支付一个请求在闪电上没有任何密钥:发送请求而没有一个并支付发票 402 答案:看 按要求付款,无钥匙.

密钥管理、帐户摘要和自动顶级是例外:它们取代密钥而不是您的密钥的签名,因此泄漏的密钥不能产生更多的密钥。 帐户签名请求.

您的第一个请求

把密钥放在环境变量中,然后向模型询问一些东西。 NYMBOT_API_KEY.

cURL

export NYMBOT_API_KEY="sk-nymbot-..."

curl https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nymbot/auto",
    "messages": [{"role": "user", "content": "What is a Lightning invoice?"}]
  }'

Python

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://nymbot.ai/api/v1",
    api_key=os.environ["NYMBOT_API_KEY"],
)

reply = client.chat.completions.create(
    model="nymbot/auto",
    messages=[{"role": "user", "content": "What is a Lightning invoice?"}],
)
print(reply.choices[0].message.content)

JavaScript

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://nymbot.ai/api/v1",
  apiKey: process.env.NYMBOT_API_KEY,
});

const reply = await client.chat.completions.create({
  model: "nymbot/auto",
  messages: [{ role: "user", content: "What is a Lightning invoice?" }],
});
console.log(reply.choices[0].message.content);

nymbot/auto 是 Nymbot 自己的路由,由标准平衡支付。 将目录模型的 ID 置于那里,例如: anthropic/claude-sonnet-5,从Pro平衡中使用该模型。 列表模型 给每一个ID。

请求费用多少

API 正如应用程序所做的那样发票。

  • 什么平衡 nymbot/auto 花费它 标准 平衡 (10 sats a credit) 每一个其他聊天模型都花费 Pro 的 平衡(百分之一信用)。标准图像生成器和标准语音花费标准信用;每一个其他生成器花费Pro。嵌入式花费标准信用。转录花费标准信用,当标准平衡可以覆盖它,而Pro信用不一样。
  • 多少。 一个聊天请求被测量在模型实际上阅读和写的代币上,在提供商发布的价格上。 该价格有5%的费用增加,然后被乘以1.5倍,所以你支付了提供商的名单价格的1575倍。 它被转换为实时比特币价格的代币,并收取了信用的千分之一。 专业图片,视频和语音每代,每秒或每字符,和音频的每秒转录,具有相同的费用和边缘。
  • 最小限度。 每次运行的计量请求成本至少为 0.05 信贷:一半放在标准余额上,5 点在 Pro 上。
  • 抓住,然后坐下来。 在一个请求运行之前,它可能的成本最多是从你的余额中保留的,基于你发送的内容和它可能写的代币最多。简单的ASCII外部的文本是从其UTF-8字节的尺寸,ASCII数字和点数每一个都作为一个代币计算,所以任何脚本,代码和数字中的文本都被保留在完整的位置。保留是完整的信用,至少有一个,所以任何请求至少需要10个标准余额或100个专业的免费奖励才能开始。 402 insufficient_balance 假如实际成本超过了余额,则全部余额被收取,剩余的余额被收取(owed_sats 在该 nymbot 对象,和负余额)。 所欠的首先是从接下来的信用到达该余额。 直到它被支付,在该余额上什么都不能花:不是API,在应用程序中回复,转移或礼物。
  • 信用不够。 如果余额不能覆盖持有,请求被拒绝。 402 在任何事情运行之前. 错误表示哪个平衡短,请求需要多少 sats,以及多少是免费的。 max_tokens 意味着一个较小的支撑。
  • 失败。 一个失败的请求不花费任何代价,除非提供商为它在失败之前所做的工作收费,或网络搜索或服务。 nymbot/auto 任务检查已经运行了;那么这就是你付出的,至少 0.05 信贷。你切断的流是为提供商报告的代币收取的:Nymbot在你离开后一直在读取提供商的流,直到 25 秒才能获得该数目。
  • 网站搜索 每次搜索都花费0.008美元,转换为 sats,无论模型是否响应或失败,它所阅读的页面也被发送给模型作为输入,因此他们添加了他们的代币。

每個答案都說出它的成本。JSON答案帶有 nymbot 对象与其所支付的余额,信用和费率的收费,以及剩余的:

成本对象

"nymbot": {
  "balance": "pro",
  "charged_credits": 0.162,
  "charged_sats": 16.2,
  "balance_credits": 412.425,
  "balance_sats": 41242.5
}

付费响应还带有这些标题,这就是搜索不是 JSON 响应的成本的地方,例如语音:

头部意思
X-Nymbot-Cost-Sats这个请求的成本,在 sats。
X-Nymbot-Balance-Sats剩下的余额是由它支付的,在SAT。
X-Request-Id请求的ID,在每个响应上。如果您联系支持,请引用它。

每百万代币的利率,已经包括费用和利润,在 模型列表 在美元和SAT,以及 价格表如果比特币价格无法读取,付费请求返回 503 price_unavailable 与 Retry-After: 60 比起猜测。

错误

每个错误都具有相同的形状,OpenAI客户端已经理解。 code 是可以匹配的稳定名称; message 是为了人,可以改变。

错误的身体

{
  "error": {
    "message": "This request needs up to 200 sats (2 credits) on your Pro balance, and 40 sats are free. Catalog models spend the Pro balance. Top up in the Nymbot app or with POST /api/v1/topup/create/btc-lightning.",
    "type": "insufficient_quota",
    "code": "insufficient_balance",
    "param": null,
    "balance": "pro",
    "required_sats": 200,
    "balance_sats": 40
  }
}
状态何时
400 invalid_request_errorJSON 不是有效的( )。invalid_json)所需的字段缺少( )missing_required_parameter),一个值是错误的,或者请求要求模型或终端不做某些事情,例如工具。 nymbot/auto (unsupported_tool). param 域名 域名 也 upstream_rejected 当供应商拒绝申请时。
401 authentication_error密钥丢失、未知、撤销或过期,或者签署的请求无效或重复使用。
402 insufficient_quota余额不能覆盖请求。 insufficient_balance,与 balance, required_sats 和 balance_sats.
403 permission_error请求不符合钥匙的顶点( )key_limit_reached,与 limit_sats, used_sats 和 reset_at)或帐户可能无法使用服务(account_denied).
404 not_found_error未知之路( )unknown_endpoint(不存在的模型)model_not_found)或未知的密钥、发票或视频。
405这种方法存在,但不存在( )。method_not_allowed)的 Allow header列出所用的方法。
413机体或文件太大(payload_too_large, file_too_large)或录制时间太长(audio_too_long)看 界限.
415 invalid_request_error尸体不会被发送为 application/json (或者,对于上传端点, multipart/form-data): unsupported_media_type.
422语音和语言在文本中不相符的语音(voice_language_mismatch, unsupported_language).
429 rate_limit_error太多的请求在这个密钥上,从这个地址,或凭证未能验证的请求(rate_limit_exceeded)或提供商是利率限制(upstream_rate_limited)等待在其中的秒钟 Retry-After.
500 api_error某些东西在Nymbot的侧面发生错误(internal_error).
502 api_error主持人没有回复( )upstream_error)或不能发出闪电发票(invoice_unavailable).
503 api_error供應商已過載( )upstream_overloaded,比特币价格无法读取(price_unavailable)或部分服务已下载(service_unavailable, media_hosting_unavailable). Retry-After 说什么时候再次尝试,在那里它是已知的。

两个例外:

  • /api/v1/messages 答案以 Anthropic 的错误格式,因为这就是 Anthropic 客户端分析的内容: {"type": "error", "error": {"type": "authentication_error", "message": "…"}}类型遵循状态: invalid_request_error, authentication_error, billing_error (402), permission_error, not_found_error, request_too_large, rate_limit_error, api_error 或 overloaded_error (503).
  • 在其第一个字节之前失败的流请求会收到一个普通的 JSON 错误,具有上述状态,而不是事件流。

错误消息永远不会包含其他服务的内部细节,而提供商的错误在到达您之前会被重新编写。

界限

限制价值
请求按钥匙第120章 超越那一刻 429 与 Retry-After.
没有钥匙的请求每地址每分钟120分,用于模型、音频和付款方式列表,退款代币检查和付费终端无钥匙或付款。 429 与 Retry-After.
身份验证失败每個地址每分鐘 30 個鍵,簽名,付款認證和退款令牌不驗證。 429 与 Retry-After 直到分鐘結束,在閱讀屍體之前會檢查身份證。
新钥匙每小时60元,每小时120元,每地址120元。
顶级发票每小时60元,每小时120元,每地址120元。
NWC钱包连接每小时10个,每地址30个,钱包传递器必须使用 wss:// 在标准端口。
返回代币每分鐘 60 個要求
地址IPv6 地址在每个地址限制中以其完整 /64 计数,而 IPv4 地图 IPv6 地址作为其 IPv4 地址。
JSON 请求器官4 MB; 64 KB 用您的 nym 签署的请求。
多部分请求体(上传)32 MB. 可编辑的图像最多可达 20 MB,音频文件最多可达 25 MB. 最多可达 64 个部分,每个部分最多可有 8 KB 的部分标题,并且限制为 1 到 70 个字符;否则 400 invalid_multipart.
图像在一个聊天请求第20章 每个人都是一个 https:// 或 http:// 链接到公共主机,或 a data:image/… url 的。
每代要求的图像1 至 4 (n)
代币输出在模型本身的最大限度上,一个更大的 max_tokens 被低估了,不是被拒绝了。
发言入口标准语音的800个字符,Aura 2的2000个字符。
转录30分钟的音频,25 MB. 更长的录音被拒绝 413 没有被指责,即使它的长度只有在声听到之后才知道。
嵌入式每条请求 100 条。
视频工作在提交后等待24小时;在一个小时后放弃渲染,每次最多10次渲染。
希望历史等待90天。
活跃的键 per nym只有最新的50个被撤销的密钥被保留。

对图片的链接必须指向公共主机:在私人或本地网络上的地址或Nymbot自己的网站上被拒绝。

火焰可以看到什么

API在应用程序的方式上不是私密的,值得准确地了解如何。

  • 它不是端到端加密的。 在应用中,一个消息在您的设备上被密封到只有Nymbot持有并作为一个键旅行的密钥。 礼品包装一个API请求是普通的HTTPS:它在前往Nymbot的途中被加密,Nymbot的服务器在清晰地阅读它来处理它。
  • 快递和回复不会被存储。 他们传到模型,答案传回来。保留的是账单:对于每个请求,时间、模型、类型、代币计数、成本、余额、钥匙以及是否成功,90天,这是什么 希望历史 同一请求的使用记录(时间、类型、模型、代币计数、成本、持续时间以及它是否使用了网页搜索或成功)也被保留90天,除了应用程序本身。
  • 所有其他被保留在一个子是小,并列在这里。 火钥匙 将其存储为哈希,而不是密钥,其名称、短提示、支出限额、重置期限、截止日期以及它们创建和最后一次使用时;只保留最新的50个被撤销的密钥。 自动升级 钱包连接被加密存储,其门槛,金额和最后一次上涨的结果。 视频工作被保留24小时。 每通话支付的请求只留下7天的闪电支付哈希和30天的哈希退款代币,连接到无NIM。
  • 删除 app 将删除它。 A 设备Wipe 撤销和删除每个 API 密钥,并删除查询历史记录、使用记录、钱包连接和视频工作。
  • 模型提供商看到您的请求目录模型在其制造商上运行;标准路径和嵌入功能在Cloudflare上运行。
  • 创建的媒体是公共的。 作为链接提供的图片和视频被上传到公共 Blossom 文件主机,其中文件的地址是其哈希。 b64_json 生成的图像在响应中返回,并且从未上传。
  • 这就是你给发电机的图像。 您上传的图片 编辑,或发送为 a data: 发电机中的URL image_url,首先上传到公共Blossom主机,以便发电机可以接收它,同样适用于它。 https:// 聊天请求中的图片将传递给模型的提供商,而不是Blossom。
  • 一个密钥连接到你的NIM。 一把钥匙所花费的一切都来自你的平衡,所以API的使用不是 匿名如果你想将API的使用保留在你日常的密钥之外,请将密钥从一个单独的密钥中与它自己的平衡。

如果您需要应用程序的保护,请使用应用程序. API 适用于您需要自己的工具中的模型。

每一个终点

终点它的作用奥斯卡
GET /api/v1/models列表模型,与价格没有
POST /api/v1/chat/completionsChat 完成关键
POST /api/v1/responses答案 火关键
POST /api/v1/messages人类信息关键
POST /api/v1/messages/count_tokens入口代币的估计关键
POST /api/v1/images/generations创建图像关键或 闪电
POST /api/v1/images/edits编辑一个图像关键或 闪电
POST /api/v1/videos, GET /api/v1/videos, GET /api/v1/videos/{id}开始,列表和检查视频钥匙,或 闪电 开始一个
POST /api/v1/audio/speech文本 演讲关键或 闪电
GET /api/v1/audio/models, GET /api/v1/audio/voices音频模型和声音没有
POST /api/v1/audio/transcriptions, POST /api/v1/audio/translations语音到文本,和英语关键或 闪电
POST /api/v1/embeddings嵌入式关键或 闪电
GET /api/v1/credits/balance (或 POST)两种平衡关键
GET /api/v1/topup/payment-methods付款方式没有
POST /api/v1/topup/create/btc-lightning闪电发票关键
GET /api/v1/topup/status/{invoice_id}检查和信用它关键
GET /api/v1/queries/history每个请求的成本Key 或 NIM
GET /api/v1/account账户总结尼米
/api/v1/keys创建、更改和撤销密钥尼米
/api/v1/nwc-auto-topup自动顶级尼米
GET /api/v1/l402/refunds, POST /api/v1/l402/refunds/redeem检查或赎回退款代币返回代币:nym to redeem

“Nym” 指您的Nostr密钥签署的请求,如下所述。 帐户签名请求对于已经使用这些格式的工具,请参阅 工具和SDK,对于代码代理,如 Claude Code、Codex 和 Cline,请参见 代码工具.