База знания Разработчиците
Огън Преглед
Моделите, генераторите и балансите, които използвате в приложението, от собствения си код. API говори OpenAI и Anthropic формати, така че повечето инструменти и SDK работят чрез промяна на база URL и ключ.
Тази страница е машинно преведена за удобство. Английският оригинал е версията, която се прилага.
Какво представлява огънят
HTTP API на nymbot.ai който отговаря на същите искания, които вече изпраща клиент на OpenAI или Anthropic.
- Чат завършване, на Отговор на огън и Антропогенни послания, с стрийминг, инструменти, снимки, разсъждения и уеб търсене, за всеки модел в Каталогът и за собственото автомагистралиране на Nymbot.
- Снимки, Видеото, речта, Транскрипция и Вмъкване.
- Вашият балансът, Светкавици Top-ups, Автоматично изтегляне от портфейла и а История Колко струва всяко искане.
Плаща се от едни и същи Баланси като приложението, на същите цени.Няма абонамент и няма безплатно разрешение за 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 отговаря на кръстосани искания от всеки сайт, така че страницата на браузъра може да се обади.Всичко, което изпращате на браузъра, може да бъде прочетено от всеки, който го отваря, така че направете това само с ключ, който има малка ГлаваКрайните точки, подписани с вашия нюм (ключове, резюме на профила, NWC авто-top-up и възстановяване на суми) са изключението: в браузър те отговарят само на собствените сайтове на 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 и Pro кредит като 100, така че това означава същото, независимо от баланса, който искането харчи.
403key_limit_reached, дори ако отговорът е дошъл под капака; грешката казва колко е останало и кога капака се рестартира.max_tokensЕдно искане се таксува това, което всъщност струва и това се брои срещу капака, така че ако доставчикът докладва повече токени, отколкото са поставени настрана, последното искане, което се вписва, може да вземе ключа малко над капака му; следващият след това се отхвърля. - Изразходваната капачка само спира разходите. Ключът на своя капак все още може да провери баланса, да прочете историята му, да изброи моделите, да преброи токените, да надгради и да провери видеоклипа, който вече е започнал.
- Изтичането е незадължително. След датата, която сте задали, ключът спира да работи.
- Оттеглянето е незабавно и окончателно. Отмененият ключ не изпълнява следващото си искане.Той остава в списъка, маркиран с отменено, така че историята на разходите му все още има смисъл.
- Можете да имате до 25 активни ключа, всеки с свое собствено име. Промяната на периода на нулиране на ключ започва нов период от нулата.
Същият лист показва разходите на всеки ключ през този период и като цяло, когато е бил използван за последно, както вашите баланси, така и вашите скорошни заявки за API. Управление на ключове.
Автентизиране на заявка
Изпратете ключа в някое от тези заглавия. Те са еквивалентни, така че използвайте това, което клиентът ви изпраща по подразбиране:
| Хедър | изпратено от |
|---|---|
Authorization: Bearer sk-nymbot-… | OpenAI SDK, повечето инструменти, 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 credit). Всеки друг модел чат изразходва за Стандартният генератор на изображения и стандартният глас изразходват стандартни кредити; всеки друг генератор изразходва Pro. Вгражданията изразходват стандартни кредити. Транскрипцията изразходва стандартни кредити, когато стандартният баланс може да го покрие, и Pro кредити по друг начин. - Колко много Искането за чат се измерва на токените, които моделът действително чете и пише, на публикуваните цени на доставчика. Тази цена има 5% такса, добавена и след това се умножава по 1,5, така че плащате 1,575 пъти цената на списъка на доставчика. Тя се превръща в sats на жива Bitcoin цена и се таксува в хиляди от кредит. Pro снимки, видео и реч се ценят на поколение, на секунда или на характер, и транскрипция на секунда от аудио, със същата такса и марж. Стандартната картина е плосък 5 стандартни кредити и стандартният глас е плосък 3.
- Това е минималното. Всяко измерено искане, което се изпълнява, струва най-малко 0.05 кредита: половината седи на стандартния баланс, 5 ставки на Pro. Фракции от кредита се пренасят, а не се закръгляват всеки път.
- Задръжте и след това седнете. Преди да се изпълни заявка, най-многото, което може да струва, се държи от вашия баланс, въз основа на това, което сте изпратили и най-многото токени, които може да напише. Текстът извън обикновения ASCII е размерен от неговите UTF-8 байтове, а цифрите на ASCII и пунктуацията се броят като токен всеки, така че текстът във всеки скрипт, код и номера се държат в пълен размер. Държането е в цели кредити, най-малко един, така че всяко искане се нуждае от най-малко 10 безплатни залога на стандартния баланс или 100 залога на Pro, за да започне. Само действителната цена се таксува; останалата част се освобождава, когато приключи.
402insufficient_balanceВ случай на грешка, и това, което е генерирано, се начислява.Ако действителната цена е по-голяма от баланса, цялата сума се взема, останалата част се дължи (owed_satsВ наnymbotпредмет, и отрицателен баланс). Това, което се дължи, се изплаща първо от следващите кредити, които достигат този баланс. Докато не бъде платено, нищо на този баланс не може да бъде изразходвано: не от API, отговори в приложението, трансфер или подарък. - Не са достатъчни кредити. Ако балансът не може да покрие задържането, искането се отхвърля с
402грешката казва кой баланс е кратък, колко sats изисква заявката и колко са безплатни.max_tokensТова означава по-малко задържане. - на неуспехите. Неуспешно искане не струва нищо, освен ако доставчикът не е начислил за работата, която е извършил преди неуспеха, или уеб търсене или
nymbot/autoПроверката на задачите вече е изпълнена; тогава това е, което плащате, най-малко 0.05 кредита. Потокът, който отрязвате, се таксува за токените, които доставчикът докладва: Nymbot продължава да чете потока на доставчика до 25 секунди след като напуснете, за да получите това число. - WEB Търсене Цената на търсенето е $ 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 | Какво остава на баланса, от който е платено, в ставки. |
X-Request-Id | Идентификатор за заявката, на всеки отговор. Цитирайте го, ако се свържете с поддръжката. |
Цените на милион токени, вече включително таксата и маржа, са в
Списък на моделите в щатски долари и в
Ценовият листАко цената на Bitcoin не може да бъде прочетена, платените искания се връщат 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, тъй като това е, което антропологичните клиенти анализират:{"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 за заявки, подписани с вашия ним. |
| Multipart request body (изтегляне на заявки) | 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 символа за стандартния глас, 2000 за Aura 2. |
| Транскрипция | 30 минути аудио, 25 MB. По-дълъг запис се отказва с 413 и не е обвинен, дори когато дължината му е известна само след като Whisper го е чул. |
| Вмъкване | 100 лв. на заявка. |
| Видео работни места | Остават в продължение на 24 часа, след като бъдат подадени; възпроизвеждане се отказва след един час. |
| Искам история | Изчакайте 90 дни. |
| Активни ключове per nym | Само най-новите 50 отменени ключа се запазват. |
Връзката към снимка трябва да посочи публичен хост: адресът в частна или локална мрежа или на собствените сайтове на Nymbot се отхвърля.
Какво може да види огънят
API не е частен по начина, по който са приложенията, и си струва да бъдем точни за това как.
- Тя не е шифрована от край на край. В приложенията съобщение се запечатва на устройството ви до ключове, които само Nymbot държи и пътува като Опаковка за подаръкЗаявката за API е обикновена HTTPS: тя е криптирана по пътя към Nymbot, а сървърът на Nymbot я чете в ясния, за да се справи с нея.
- Промоциите и отговорите не се съхраняват. Те преминават през модела и отговорът се връща.Това, което се съхранява, е сметката: за всяко искане времето, моделът, видът, токените, разходите, балансът, ключът и дали е успял, за 90 дни, което е това, което Искам история Запис на използването на една и съща заявка (време, вид, модел, броене на токени, разходи, продължителност и дали тя е използвала уеб търсенето или е успяла) също се съхранява в продължение на 90 дни, заедно със собственото приложение.
- Всичко останало, което се държи за ним, е малко и е изброено тук. Огнени ключове Те се съхраняват като хаш, никога ключ, с тяхното име, кратък намек, капачка за разходи, период на нулиране, изтичане на срока и когато са направени и последно използвани; се запазват само най-новите 50 отменени ключа. Автоматично натоварване връзката на портфейла се съхранява криптирана, с прага, сумата и резултата от последното натрупване. Видео работни места се съхраняват в продължение на 24 часа. Заявленията, платени на повикване, оставят само хеш за плащане на Lightning в продължение на 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 to redeem |
“Nym” означава искане, подписано от вашия Nostr ключ, описано в Подписване на заявки за сметкаЗа инструменти, които вече говорят тези формати, вижте Инструменти и SDK, и за кодиращи агенти като Клод Код, Кодекс и Клайн, вижте Кодиране инструменти.