База на знаење Развивачи
Преглед на огнот
Моделите, генераторите и балансот што ги користите во апликацијата, од вашиот сопствен код. API го зборува OpenAI и Anthropic формати, па повеќето алатки и SDKs работат со менување на база URL и клуч.
Оваа страница е машински преведена за погодност. Англискиот оригинал е верзијата што се применува.
Што е огнот
HTTP API на nymbot.ai што одговара на истите барања што веќе ги испраќа OpenAI или Anthropic клиентот.
- Чет Завршување, на Одговор на огнот и Антрополошки пораки, со стриминг, алатки, слики, размислување и веб пребарување, за секој модел во Каталог и за сопственото авто-рутирање на Nymbot.
- слики, Видеото, говор, Транскрипција и Вградување.
- Вашиот Балансот, Светкавици Top-ups, Автоматски надградби од вашиот паричник и а Историјата колку ќе чини секое барање.
Се плаќа од истите две Балансирање Не постои претплата и не постои бесплатна дозвола за API: секое барање се плаќа од кредити што сте ги купиле.
Она што API не го прави е да додадете нешто од сопствениот Nymbot. Вашите пораки одат на моделот како што ги испративте: нема Nymbot системски повик, нема меморија, нема датум или јазик наговестувања.
База на URL
| Користете | База на URL |
|---|---|
| OpenAI SDK и OpenAI компатибилни алатки | https://nymbot.ai/api/v1 |
| Антрополошки SDKs и Клод Кодекс | https://nymbot.ai/api SDK додаток /v1/messages самиот себе) |
Секоја крајна точка живее под /api/v1/Непознат пат се враќа 404 и познатиот пат наречен со погрешен метод се враќа 405И двете како JSON.
API-то одговара на крстосани барања од било кој сајт, така што страницата на прелистувачот може да го повика.Сè што ќе го испратите на прелистувачот може да го прочита секој кој го отвора, сепак, така што тоа го прават само со клуч кој има мал ГлаваКрајните точки потпишани со вашиот ним (клучеви, резиме на сметката, NWC авто-топ-уп и откупување на надомест) се исклучок: во прелистувачот тие одговараат само на сопствените сајтови на Nymbot. Потпишување на барање за сметка.
Испратете го секое JSON тело со Content-Type: application/jsonСекој друг тип е одбиен со 415, така што едноставна HTML форма или text/plain барање од друг сајт не може да стигне до API. со cURL,
-H "Content-Type: application/json" Заедно со -d.
Огнени клучеви
Клучевите се направени во апликацијата.Отворено Огнот во страничната лента на веб апликацијата, или во менито на Android и iOS, и допрете Креирање на клучДајте му име и, ако сакате, капа и датум на истекување.
Копирајте го на безбедно место пред да го затворите листот: Nymbot чува само отпечаток од него, така што не може повторно да ви го покаже.
Еден клуч изгледа како sk-nymbot- Потоа следуваат 43 букви, цифри, тагови и потценки. Апликацијата го набројува секој клуч со своето име и краток навестување како што се:
sk-nymbot-Qm7x…c2Lw.
- Еден клуч му припаѓа на вашиот ним. Тоа го троши вашиот баланс, и само вашиот ним може да го направи, да го промени или да го повлече.Секој што го држи клучот може да го потроши со него, па третирајте го како лозинка.
- Капи се во ставка. Клучот може да има капка за трошење, а капата може да се ресетира секој ден, секоја недела (понеделник) или секој месец (првиот), во 00:00 UTC. Таа ги брои двата салда, стандарден кредит како 10 sats и Про кредит како 100, така што тоа значи истото без оглед на тоа кој салда троши барањето. Пред да се изврши барањето, најмногу што може да чини (заоблено до цели кредити) се поставува против она што е останато од капата.
403key_limit_reached, дури и ако одговорот дојде под капакот; грешката вели колку е оставено и кога капакот се ресетира.max_tokensНа барање се наплаќа она што всушност чини и тоа се брои против капакот, па ако провајдерот известува за повеќе токени отколку што беа ставени настрана, последното барање што одговара може да го преземе клучот малку подолго од неговата капа; следниот тогаш е одбиен. - Потрошената капка само престанува да троши. Клучот на својот капак сè уште може да го провери балансот, да ја прочита својата историја, да ги наброи моделите, да ги брои токените, да го надмине и да го провери видеото што веќе го започна.
- Излегувањето е опционално. По датумот што го поставите, клучот престанува да работи.
- Откажувањето е непосредно и конечно. Отповикан клуч не успева да го направи следното барање. Тој останува на листата, означен како отповикан, така што неговата историја на трошоци сè уште има смисла.
- Можете да имате до 25 активни клучеви, секој со свое име. Промената на периодот за ресетирање на клучот започнува нов период од нула.
Истиот лист ги прикажува трошоците на секој клуч за овој период и вкупно, кога последен пат беше користен, и вашите салдо и вашите неодамнешни барања за API. Управување со клучеви.
Автентификација на барање
Испратете го клучот во било кој од овие наслови. Тие се еквивалентни, па користете го она што вашиот клиент го испраќа по дефолт:
| Хејдер | испратено од |
|---|---|
Authorization: Bearer sk-nymbot-… | OpenAI SDKs, повеќето алатки, Claude Code со ANTHROPIC_AUTH_TOKEN |
x-api-key: sk-nymbot-… | Антрополошки SDKs |
api-key: sk-nymbot-… | Azure-стил клиенти |
Исчезнати, непознати, откажани или истечени клучни врати 401Со кодот
missing_api_key, invalid_api_key, revoked_api_key или
expired_api_keyЛиста на модели, аудио модели и гласови, и начини на плаќање не треба клуч.
Слики, видео, говор, транскрипција и вградување исто така може да се плати за едно барање во исто време преку Lightning без клуч воопшто: испратете го барањето без еден и плаќање на фактурата во 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, платени од стандардниот баланс. Ставете го идентитетот на моделот на каталогот таму наместо тоа, како што се: anthropic/claude-sonnet-5, за да го користите овој модел од Pro балансот. Листа на модели Дава секој идентитет.
Колкава е цената на барањето
API фактури точно како што прави апликацијата.
- Каква рамнотежа
nymbot/autoПотрошувајте го Стандардот баланс (10 sats a кредит). Секој друг модел за разговор го троши Про рамнотежата (100 проценти кредит). Стандардниот генератор на слики и стандардниот глас трошат стандардни кредити; секој друг генератор троши Про. Вградувања трошат стандардни кредити. Транскрипцијата троши стандардни кредити кога стандардниот баланс може да го покрие, а Про кредити на друг начин. Листата на модели вели кој баланс троши секој модел. - Колку Барањето за разговор се мери на токените што моделот всушност ги чита и пишува, на објавените стапки на провајдерот. Таа цена има 5% надомест додадена и потоа се множи со 1,5, така што плаќате 1.575 пати цената на листата на провајдерот. Тоа се конвертира во sats на живата цена на Bitcoin и се наплаќа во илјадници од кредит. Про слики, видео и говор се ценат по генерација, по секунда или по карактер, и транскрипција по секунда на аудио, со иста такса и маргина. Стандардната слика е рамна 5 стандардни кредити и стандардниот глас е рамна 3.
- Тоа е минимално. Секој измерен барање кое работи чини најмалку 0.05 кредит: половина седи на стандардниот баланс, 5 ставки на Про. Фракции на кредит се пренесуваат, а не заоблени секој пат.
- Држете се, а потоа седнете. Пред да се изврши барање, најмногу што може да чини се чува од вашиот баланс, врз основа на тоа што сте го испратиле и најмногу токени што може да го напише. Текстот надвор од обичниот ASCII е димензиран од неговите UTF-8 бајтови, а ASCII цифри и пунктуација се бројат како токен секој, така што текстот во секој скрипт, код и бројки се чуваат во целост. Задржувањето е во цели кредити, најмалку еден, така што секое барање треба најмалку 10 бесплатни стапки на стандардниот баланс или 100 стапки на Про за да започне. Само вистинската цена се наплаќа; остатокот се ослободува кога ќе заврши. Долго барање го задржува своето држење додека работи; ако држаните кредити престанат да бидат достапни
402insufficient_balanceВо случај на грешка, и она што е генерирано се наплаќа. Ако вистинската цена е поголема од балансот може да се плати, целиот баланс се зема, остатокот се должи (owed_satsВо наnymbotобјект, и негативен баланс). Она што е задолжено прво се исплаќа од следните кредити кои го достигнуваат тој баланс. Додека не се исплати, ништо на тој баланс не може да се потроши: не од API, одговори во апликацијата, трансфер или подарок. - Нема доволно кредити. Ако салдото не може да го покрие држењето, барањето се одбива со
402грешка вели која рамнотежа е кратка, колку ставки на барањето треба и колку се слободни.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 | Она што е оставено на салдото од кое е исплатено, во sats. |
X-Request-Id | Идентификатор за барањето, на секој одговор. цитирајте го ако контактирате со поддршка. |
Стапките по милион токени, веќе вклучувајќи ја таксата и маргината, се во
Листа на модели во долари и стапки, и на
Ценовниот листАко цената на Биткоин не може да се прочита, платени барања се враќаат 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_error | Телото не е валидно JSON (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) цената на Bitcoin не може да се прочита (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 на час по адреса. |
| Top-up фактури | 60 на час по ним и 120 на час по адреса. |
| NWC конекција на паричникот | 10 на час по ним и 30 на час по адреса. wss:// на стандардниот пристаниште. |
| Враќање на токените | 60 барања по минута по токен. |
| Адреси | IPv6 адреса се брои како цела /64 во секој лимит на адреса, и IPv4 мапирана IPv6 адреса како IPv4 адреса. |
| JSON барање тело | 4 MB; 64 KB за барања потпишани со вашиот Nim. |
| Мнозинско тело на барање (uploads) | 32 MB. Слика за уредување може да биде до 20 MB, аудио датотека до 25 MB. На најмногу 64 делови, секој со најмногу 8 KB на дел наслови, и граница од 1 до 70 знаци; во спротивно 400 invalid_multipart. |
| Слики во еден разговор барање | Секој од нив е еден https:// или http:// линк до јавен домаќин, или data:image/… на URL. |
| Слики по генерација барање | 1 до 4 (n) |
| Извлекување токени | Капацитетот на самиот модел е максимален.Поголем max_tokens се намалува на него, а не одбива. |
| Влезот на говорот | 800 знаци за стандардниот глас, 2.000 за Aura 2. |
| Транскрипција | 30 минути аудио, 25 MB. Подолг запис е одбиен со 413 и не е оптоварена, дури и кога нејзината должина е позната само откако шепотот ќе ја чуе. |
| Вградување | 100 влезници по барање. |
| Видео работни места | Останете 24 часа откако ќе бидат поднесени; рендерот се откажува по еден час. |
| Желбата за историја | Се чека 90 дена. |
| Активни клучеви по ним | Само најновите 50 отповикани клучеви се зачувани. |
Линкот до сликата мора да укаже на јавен домаќин: адресата на приватна или локална мрежа, или на сопствените сајтови на Nymbot, е одбиена.
Што може да види огнот
API не е приватен во начинот на кој се апликациите, и вреди да се биде точен за тоа како.
- Не е енд-то-енд шифриран. Во апликациите, пораката е запечатена на вашиот уред на клучеви само Nymbot држи и патува како Подароци за WrapБарањето за API е обичен HTTPS: тоа е шифрирано на патот до Nymbot, а серверот на Nymbot го чита во јасен за да се справи со тоа.
- Пораките и одговорите не се чуваат. Она што се чува е сметката: за секое барање времето, моделот, видот, бројот на токени, цената, балансот, клучот и дали тоа успеа, за 90 дена, што е она што Барај историја Исто така, евиденција за користење на истата барање (време, вид, модел, број на токени, трошоци, времетраење и дали се користи веб пребарување или успеа) се чува за 90 дена, заедно со сопствената апликација.
- Сè друго што се одржува за ним е мало и е наведено тука. Огнени клучеви се чуваат како хаш, никогаш клуч, со нивното име, краток наговештај, капа за трошење, период на ресетирање, истекување и кога се направени и последен пат се користат; се чуваат само најновите 50 повлечени клучеви. Автоматски врв Приклучокот на паричникот се чува шифриран, со својот праг, износ и резултатот од последното надградба. Видео работни места се чуваат за 24 часа. Барањата платени по повик оставаат само хаш за плаќање на молња за 7 дена и хеширан токен за враќање за 30 дена, поврзани со ништо.
- Избришувањето на апликацијата го брише. A Уредот WIPE ги повлекува и брише сите API клучеви и ја брише историјата на прашањата, записите за употреба, поврзувањето со паричникот и видео-работите.
- Провајдерот на моделот го гледа вашето барањеКаталог модели работат на нивните производители; стандардни рути и вградувања работат на Cloudflare.
- Создадените медиуми се јавни. Слики и видеа доставени како линкови се пренесуваат на јавни Blossom датотеки домаќини, каде што адресата на датотеката е нејзиниот хаш. Секој со линкот може да го отвори, а Nymbot не може повторно да го симне.
b64_jsonи генерирана слика се враќа во одговорот и никогаш не се поставува. - Така се и сликите што ги давате на генератор. Сликата што ја испраќате
Еди, или испратете како a
data:URL во генераторimage_url, е поставен на јавен Blossom домаќин прво, така што генераторот може да го преземе, а истото важи и за него.https://Сликите во барањето за разговор одат до провајдерот на моделот, а не до Blossom. - Еден клуч е поврзан со вашиот ним. Сè што клучот троши доаѓа од вашиот ним баланс, така што употребата на API не е АнонименАко сакате употребата на API да се чува одделно од вашиот секојдневен ним, направете ги клучевите од посебен ним со свој баланс.
Ако ви е потребна заштита на апликациите, користете ги апликациите. API е за кога ви се потребни моделите во сопствените алатки.
Секој крај
| крајна точка | Што прави | аут |
|---|---|---|
GET /api/v1/models | Листа на моделиСо цените | никој |
POST /api/v1/chat/completions | Чет Завршување | клуч |
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 | Колку чини секое барање | клуч или ним |
GET /api/v1/account | Резиме на сметката | Ним |
/api/v1/keys | Создава, менува и повлекува клучеви | Ним |
/api/v1/nwc-auto-topup | Автоматски врвови | Ним |
GET /api/v1/l402/refunds, POST /api/v1/l402/refunds/redeem | Проверка или откупување на токен за враќање | Рефундирање токен; ним да се откупи |
“Nym” значи барање потпишано со вашиот Nostr клуч, опишано во Потпишување на барање за сметкаЗа алатки кои веќе зборуваат за овие формати, видете Инструменти и SDKs, и за агенти за кодирање како што се Claude Code, Codex и Cline, видете Кодирање алатки.