Преминете към съдържанието
Обратно към 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 отговаря на кръстосани искания от всеки сайт, така че страницата на браузъра може да се обади.Всичко, което изпращате на браузъра, може да бъде прочетено от всеки, който го отваря, така че направете това само с ключ, който има малка ГлаваКрайните точки, подписани с вашия нюм (ключове, резюме на профила, 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, така че това означава същото, независимо от баланса, който искането харчи. 403 key_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, за да започне. Само действителната цена се таксува; останалата част се освобождава, когато приключи. 402 insufficient_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, и за кодиращи агенти като Клод Код, Кодекс и Клайн, вижте Кодиране инструменти.