Прескокнете до содржината
Враќање на Nymbot

База на знаење Развивачи

Преглед на огнот

Моделите, генераторите и балансот што ги користите во апликацијата, од вашиот сопствен код. API го зборува OpenAI и Anthropic формати, па повеќето алатки и SDKs работат со менување на база URL и клуч.

Што е огнот

HTTP API на nymbot.ai што одговара на истите барања што веќе ги испраќа OpenAI или Anthropic клиентот.

Се плаќа од истите две Балансирање Не постои претплата и не постои бесплатна дозвола за 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, така што тоа значи истото без оглед на тоа кој салда троши барањето. Пред да се изврши барањето, најмногу што може да чини (заоблено до цели кредити) се поставува против она што е останато од капата. 403 key_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 стапки на Про за да започне. Само вистинската цена се наплаќа; остатокот се ослободува кога ќе заврши. Долго барање го задржува своето држење додека работи; ако држаните кредити престанат да бидат достапни 402 insufficient_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, видете Кодирање алатки.