База знань розробників
Пожежа Огляд
Моделі, генератори та баланси, які ви використовуєте в програмі, з вашого власного коду. API розмовляє у форматі OpenAI і Anthropic, тому більшість інструментів і SDK працюють, змінюючи базовий URL і ключ.
Для зручності цю сторінку перекладено машинним способом. Застосовується англійський оригінал.
Що таке API
За допомогою HTTP API nymbot.ai що відповідає на ті ж запити, які вже надсилає клієнт OpenAI або Anthropic. Ви отримуєте:
- Завершення чату, на Відповідь API і Антропологічні повідомлення, з потоком, інструментами, зображеннями, міркуванням та веб-пошуком, для кожної моделі в Каталог За допомогою власного маршрутизатора Nymbot
- Зображення, Відео, Промова, Транскрипція і Вбудовані.
- ваш Баланс, Світлодіодні топ-уп, Автоматичне вимкнення з вашого гаманця і а Історія скільки коштує кожна заявка.
Вони платять за ті ж дві Баланс Немає підписки і немає безкоштовних пільг на API: кожен запит оплачується з кредитів, які ви купили.
Ваші повідомлення йдуть до моделі, як ви їх відправили: немає 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 та викуп коштів) є винятком: в браузері вони відповідають тільки на власні сайти Nymbot. Підписання запитів на рахунок.
Надіслати будь-яке тіло JSON з Content-Type: application/jsonБудь-який інший тип відмовляється від 415Наприклад, форма HTML або text/plain запит з іншого сайту не може дістатися до API.
-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. Управління ключами.
Автентифікація запиту
Надішліть ключ в будь-якому з цих заголовків. Вони є еквівалентними, тому використовуйте те, що ваш клієнт надсилає за замовчуванням:
| Header | відправити |
|---|---|
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Список моделей, аудіо моделей і голосів, а також способи оплати не потребує ключа.
Фотографії, відео, промови, транскрипції та вбудовування також можуть бути оплачені за один запит за один раз через 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). Кожна інша модель чату витрачає Про баланс (100 sats a credit). Стандартний генератор зображень і стандартний голос витрачають стандартні кредити; кожен інший генератор витрачає Pro. Вбудовані витрачають стандартні кредити. Транскрипція витрачає стандартні кредити, коли стандартний баланс може покрити його, і Pro кредити інакше. Список моделей говорить, який баланс витрачає кожна модель. - А скільки Запит на чат вимірюється на токенах, які модель насправді читає і пише, за опублікованими тарифами провайдера. Ця ціна має 5% внесок і потім помножується на 1,5, тому ви платите 1575 разів ціною списку провайдера. Вона перетворюється на внески за ціною біткоїну в прямому ефірі і стягується в тисячоліттях кредиту. Про зображення, відео та мовлення цінуються за покоління, за секунду або за символ, і транскрипція за секунду аудіо, з однаковою платою та маржі. Стандартна картина є плоскою 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, наприклад, мовлення:
| Header | Значення |
|---|---|
X-Nymbot-Cost-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, оскільки це те, що клієнти 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 у кожному ліміті адреси, а адреса IPv6 з картографією IPv4 як адреса IPv4. |
| Тело запиту JSON | 4 МБ; 64 КБ для запитів, підписаних з вашим німом. |
| Мультичастий орган запиту (uploads) | 32 МБ. Зображення для редагування може бути до 20 МБ, аудіофайл до 25 МБ. На максимум 64 частини, кожна з максимум 8 КБ заголовків частин, і межа від 1 до 70 символів; інакше 400 invalid_multipart. |
| Фотографії в одному чаті запит | 20.Кожен з них є https:// або http:// підключення до публічного хосту, або data:image/… УРЛ . |
| Зображення за вимогою покоління | 1 з 4 (n) |
| Вихід токенів | Максимальний розмір власної моделі. більше max_tokens Його знижують, а не відмовляють. |
| Вхідна мова | 800 символів для стандартного голосу, 2000 для Aura 2. |
| Транскрипція | 30 хвилин аудіо, 25 МБ. Довгий запис відмовляється при 413 І не звинувачується, навіть коли її довжина відома лише тоді, коли її почув Шпигун. |
| Вбудовані | 100 грн за заявку. |
| Відео робочі місця | Залишається протягом 24 годин після їх подання; відтворення віддається через годину. при максимумі 10 відтворення відразу на нім. |
| Хочу історію | Протягом 90 днів. |
| Активні ключі на нім | Тільки останні 50 скасованих ключів зберігаються. |
Посилання на зображення повинно вказувати на публічний хост: адреса в приватній або місцевій мережі, або на власних сайтах Nymbot, відмовляється.
Що бачить вогонь
API не є приватним в тому вигляді, в якому є програми, і варто бути точним про те, як.
- Він не шифрується кінцем до кінцем. У додатках повідомлення запечатано на вашому пристрої до ключів, які тільки Nymbot тримає і подорожує як Подарунок WrapЗапит API є звичайним HTTPS: він зашифрований на шляху до Nymbot, і сервер Nymbot читає його в ясній формі, щоб обробляти його.
- Відгуки та відповіді не зберігаються. Те, що зберігається, це рахунок: для кожного запиту час, модель, вид, токен рахунки, вартість, баланс, ключ і чи вдалося це, протягом 90 днів, що є Історія хотіла Запис використання одного і того ж запиту (час, вид, модель, кількість токенів, вартість, тривалість і чи використовується веб-пошук або успішно) також зберігається протягом 90 днів, поряд з власним додатком.
- Все інше, що зберігається для нім, невелике і перераховано тут. Пожежний ключ зберігаються як хеш, ніколи ключ, з їхнім ім'ям, коротким натяком, витратою, періодом перезавантаження, терміном закінчення терміну і коли вони були зроблені і останнім використанням; зберігаються тільки останні 50 відкликаних ключів. Автоматичний Top-Up Підключення портфеля зберігається зашифрованим, з його порогом, сумою та результатом останнього навантаження. Відеороботи зберігаються протягом 24 годин. Запитання, сплачені за дзвінок, залишають лише хеш оплати Lightning протягом 7 днів і хешний токен повернення коштів протягом 30 днів, пов'язаний з жодним нім. Податки, баланс яких не міг покривати, зберігаються як заборговані до тих пір, поки топ-уп не сплатить їх.
- Вимкнення додатка видаляє його. A Пристрій Wipe скасовує і видаляє кожен ключ API, а також видаляє історію запитів, записи використання, підключення гаманця та відеороботи.
- Провайдер моделі бачить ваш запитМоделі каталогів працюють на своїх виробниках; стандартні маршрути та вбудовані програми працюють на Cloudflare.
- Створені засоби масової інформації є публічними. Зображення та відео, доставлені у вигляді посилань, завантажуються на публічні файлові хости Blossom, де адресою файлу є його хеш. Будь-хто з посиланням може відкрити його, і Nymbot не може завантажити його знову.
b64_jsonі створене зображення повертається в відповідь і ніколи не завантажується. - Те ж саме стосується і фотографій, які ви даєте генератору. Фотографії, які ви завантажуєте
Edit, або відправити як a
data:URL в генераторіimage_url, завантажується на публічний хост Blossom спочатку, щоб генератор міг його завантажити, і те ж саме стосується його.https://Фотографії в запиті на чат йдуть до провайдера моделі, а не до Blossom. - Ключ пов'язаний з вашим німом. Все, що ключ витрачає, виходить з балансу вашого німа, тому використання API не АнонімнийЯкщо ви хочете, щоб використання API трималося окремо від вашого повсякденного німа, зробіть ключі з окремого німа з власним балансом.
Якщо вам потрібен захист додатків, використовуйте додатки. API призначений для тих випадків, коли вам потрібні моделі у ваших власних інструментах.
Кожна кінцева точка
| кінцева точка | Що воно робить | аут |
|---|---|---|
GET /api/v1/models | Список моделейЗ цінами | Ніхто |
POST /api/v1/chat/completions | Завершення чату | Ключ |
POST /api/v1/responses | Відповідь API | Ключ |
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, а для кодуючих агентів, таких як Клод Код, Кодекс і Клайн, див. Кодування інструментів.