Base de coneixement Desenvolupadors
Panoràmica de foc
Els models, generadors i balanços que utilitzeu a l'aplicació, a partir del vostre propi codi. L'API parla dels formats OpenAI i Anthropic, de manera que la majoria d'eines i SDK funcionen canviant una URL de base i una clau.
Aquesta pàgina està traduïda automàticament per comoditat. L'original en anglès és la versió que s'aplica.
Què és el foc
Una API HTTP nymbot.ai que respon a les mateixes sol·licituds que un client OpenAI o Anthropic ja envia.
- Completa el chat, el Reaccions a les flames i Missatges antropològics, amb streaming, eines, imatges, raonament i cerca web, per a cada model en el Catàleg i per la pròpia auto-routació de Nymbot.
- Imatges, Vídeo, El discurs, Transcripció i embeddings.
- El teu Balanç, Els llamps top-ups, Top-ups automàtics de la teva cartera i a Història Quant costa cada petició.
Estan pagats per les mateixes dues Equilibris No hi ha subscripció ni quota gratuïta a l'API: cada sol·licitud es paga amb els crèdits que has comprat.
El que l'API no fa és afegir res del propi Nymbot. Els vostres missatges van al model quan els heu enviat: cap consell del sistema de Nymbot, cap memòria, cap data o suggeriments d'idioma.
URL de base
| utilitzar | URL de base |
|---|---|
| OpenAI SDKs i eines compatibles amb OpenAI | https://nymbot.ai/api/v1 |
| Els SDK antropològics i El codi de Claude | https://nymbot.ai/api (El SDK afegeix /v1/messages El mateix) |
Tots els punts finals viuen sota /api/v1/Un camí desconegut torna 404 i un camí conegut anomenat amb el mètode equivocat torna 405Ambdós són JSON.
L'API respon a les sol·licituds d'origen creu de qualsevol lloc, de manera que una pàgina del navegador la pot trucar. Tot el que enviïs a un navegador pot ser llegit per qui l'obri, però, així que només ho facis amb una clau que tingui una petita CapEls punts finals signats amb el teu nim (claus, resum del compte, NWC auto-top-up i reemborsament de reemborsament) són l'excepció: en un navegador només responen als llocs propis de Nymbot. Sol·licitud de signatura de compte.
Enviar cada cos JSON amb Content-Type: application/jsonQualsevol altre tipus és rebutjat 415, per tant, una simple forma HTML o una text/plain una petició d'un altre lloc no pot arribar a l'API. amb cURL, passi
-H "Content-Type: application/json" Juntament amb -d.
Claus de foc
Les claus es fan a l'app. obert El foc a la barra lateral de l'aplicació web, o al menú d'Android i iOS, i Creació de clauDonar-li un nom i, si ho desitja, un cap i una data d'expiració.
La clau es mostra una vegada.Copiu-la en algun lloc segur abans de tancar el full: Nymbot només en conserva una empremta, de manera que no us la pot mostrar de nou.Una clau perduda no es pot recuperar; revoca-la i fes-ne una altra.
La clau sembla sk-nymbot- A continuació hi ha 43 lletres, dígits, puntuacions i subtítols. L'aplicació enumera cada clau pel seu nom i una petita pista com ara:
sk-nymbot-Qm7x…c2Lw.
- Una clau pertany al teu nim. Es gasta el seu saldo, i només el seu nim pot fer, canviar o revocar.Qualsevol que tingui la clau pot gastar amb ell, així que tractar-lo com una contrasenya.
- Els caps estan a punt. Una clau pot tenir un límit de despesa, i el límit es pot resetar cada dia, cada setmana (dilluns) o cada mes (el primer), a les 00:00 UTC. Compta ambdós saldos, un crèdit estàndard com a 10 sats i un crèdit Pro com a 100, de manera que significa el mateix sigui quin sigui el saldo que gasta una sol·licitud. Abans d'executar una sol·licitud, el màxim que podria costar (arrodonit fins a crèdits sencers) s'estableix contra el que queda del límit.
403key_limit_reached, fins i tot si la resposta hagués entrat sota el cap; l'error diu quant queda i quan es restableix el cap.max_tokensUna sol·licitud es carrega el que realment costa i que compta contra el cap, de manera que si el proveïdor informa més tokens del que es van posar de banda, l'última sol·licitud que s'ajusta pot prendre la clau una mica més enllà del seu cap; el següent és rebutjat. - Una capsa gastada només atura la despesa. Una clau al seu cap encara pot comprovar el saldo, llegir el seu historial, llistar models, comptar tokens, pujar i comprovar un vídeo que ja hagi començat.
- Expirar és opcional. Després de la data que heu establert, la clau deixa de funcionar.
- La revocació és immediata i definitiva. Una clau revocada fracassa en la seva següent sol·licitud. Es manté en la llista, marcada revocada, de manera que el seu historial de despeses encara té sentit.
- Podeu tenir fins a 25 claus actives, cadascuna amb el seu propi nom.
El mateix full mostra la despesa de cada clau durant aquest període i, en total, quan es va utilitzar per última vegada, tant els saldos com les sol·licituds d'API recents. Gestió de claus.
Autenticació d'una sol·licitud
Envieu la clau en qualsevol d'aquests encapçalaments. Són equivalents, de manera que utilitzeu el que el vostre client enviï per defecte:
| Header | Enviat per |
|---|---|
Authorization: Bearer sk-nymbot-… | SDK d'OpenAI, la majoria d'eines, Claude Code amb ANTHROPIC_AUTH_TOKEN |
x-api-key: sk-nymbot-… | Els SDK antropològics |
api-key: sk-nymbot-… | Clients d'estil Azure |
Retorns de claus desaparegudes, desconegudes, revocades o caducades 401Amb el codi
missing_api_key, invalid_api_key, revoked_api_key o
expired_api_keyListing models, models d'àudio i veus, i mètodes de pagament no necessita cap clau.
Imatges, vídeo, veu, transcripció i embeddings també es poden pagar per una sol·licitud a la vegada a través de Lightning sense cap clau en absolut: enviar la sol·licitud sense una i pagar la factura en el 402 Resposta: Veure Pagament a petició sense clau.
La gestió de claus, el resum del compte i els top-ups automàtics són l'excepció: prenen una signatura del seu nim en comptes d'una clau, de manera que una clau fuga no pot fer més claus. Sol·licitud de signatura de compte.
La seva primera petició
Poseu la clau en una variable d'entorn, i després pregunteu a un model alguna cosa. 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 és el propi enrutament de Nymbot, pagat des del saldo estàndard. anthropic/claude-sonnet-5, per utilitzar aquest model des de l'equilibri Pro. Llista de models Donar cada identitat.
Quin cost té una sol·licitud
L'API factura exactament com fa l'aplicació.
- Quin equilibri
nymbot/autoGasta el estàndard balanç (10 sats un crèdit). Cada altre model de xat gasta el Pro El generador d'imatges estàndard i la veu estàndard gasten crèdits estàndard; cada altre generador gasta Pro. Els embeddings gasten crèdits estàndard. La transcripció gasta crèdits estàndard quan el saldo estàndard pot cobrir-lo, i crèdits Pro d'una altra manera. La llista de models diu quin saldo gasta cada model. - Quanta quantitat Una sol·licitud de xat es mesura en els tokens que el model realment llegeix i escriu, a les taxes publicades del proveïdor. Aquest preu té una tarifa de 5% afegida i després es multiplica per 1,5, de manera que pagueu 1.575 vegades el preu de la llista del proveïdor. Es converteix en tarifa al preu Bitcoin en viu i es cobra en milers d'un crèdit. Les imatges pro, el vídeo i la veu són preuats per generació, per segon o per caràcter, i la transcripció per segon d'àudio, amb la mateixa tarifa i marge. La imatge estàndard és un pla 5 crèdits estàndard i la veu estàndard un pla 3.
- El mínim Cada sol·licitud mesurada que s'executa té un cost mínim de 0,05 crèdit: la meitat es va situar en el saldo estàndard, 5 es van situar en el Pro.
- Segueix i després s’assenta. Abans d'executar una sol·licitud, el màxim que pugui costar es manté del seu saldo, en funció del que ha enviat i el màxim de tokens que pot escriure. El text fora de la norma ASCII es mesura a partir dels seus bytes UTF-8, i els dígits ASCII i la puntuació compten com un token cadascun, de manera que el text en qualsevol script, codi i números es mantenen completament. La possessió és en crèdits sencers, almenys un, de manera que qualsevol sol·licitud necessita almenys 10 parades gratuïtes en el saldo estàndard o 100 parades en Pro per començar. Només es carrega el cost real; la resta es lliura quan acaba. Una llarga sol·licitud manté la seva possessió mentre s'executa
402insufficient_balanceSi el cost real és més gran del que el saldo pot pagar, es pren tot el saldo, la resta es deu (owed_satsEn lanymbotObjecte, i un saldo negatiu). El que es deu es paga primer dels següents crèdits que arriben a aquest saldo. Fins que es paga, no es pot gastar res en aquest saldo: no per l'API, respostes a l'aplicació, una transferència o un regal. - No hi ha prou crèdit. Si el saldo no pot cobrir la possessió, la sol·licitud es denega amb
402L'error diu quin saldo és curt, quantes partides necessita la sol·licitud i quantes són gratuïtes.max_tokensAixò vol dir un menor manteniment. - els fracassos. Una sol·licitud que fracassa no costa res, llevat que el proveïdor facturés per la feina que va fer abans d'haver fracassat, o una cerca web o la
nymbot/autoEl control de tasques ja s'havia executat; llavors això és el que pagues, almenys 0,05 crèdit. Un flux que retalleu es cobra pels tokens que informa el proveïdor: Nymbot continua llegint el flux del proveïdor fins a 25 segons després de deixar-lo per obtenir aquest recompte. - Cerca web costa $0.008 una cerca, convertida en sats, cada vegada que es va executar una cerca, ja sigui que el model respon o no. Les pàgines que llegeix també s'envien al model com a entrada, de manera que afegeixen els seus tokens.
Cada resposta diu el que costa. respostes JSON porten una nymbot Objecte amb el saldo del qual va ser pagat, la càrrega en crèdits i tarifes, i el que queda:
Objecte de cost
"nymbot": {
"balance": "pro",
"charged_credits": 0.162,
"charged_sats": 16.2,
"balance_credits": 412.425,
"balance_sats": 41242.5
}
Les respostes pagades també porten aquests encapçalaments, que és on buscar el cost d'una resposta que no és JSON, com ara el discurs:
| Header | Significat |
|---|---|
X-Nymbot-Cost-Sats | Quant costa aquesta sol·licitud, en sats. |
X-Nymbot-Balance-Sats | El que queda en el saldo del qual s'ha pagat, en sats. |
X-Request-Id | Un identificador per a la sol·licitud, en cada resposta. Citar-lo si contacta amb el suport. |
Les taxes per milió de tokens, ja incloent la tarifa i el marge, estan en la
Llista de models en dòlars i en taxes, i en
La llista de preusSi el preu de Bitcoin no es pot llegir, es retornaran les sol·licituds pagades 503 price_unavailable amb
Retry-After: 60 En comptes d’endevinar
Errors
Cada error té la mateixa forma, una que els clients d'OpenAI ja entenen. code és un nom estable amb el qual es pot coincidir; message És per a la gent i pot canviar.
El cos equivocat
{
"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
}
}
| Estatut | Quan |
|---|---|
400 invalid_request_error | El cos no és vàlid JSON (invalid_json), un camp requerit falta (missing_required_parameter), un valor és incorrecte, o la sol·licitud demana alguna cosa que el model o el punt final no faci, com ara eines en nymbot/auto (unsupported_tool). param Nom del camp. També upstream_rejected quan el prestador rebutgi la sol·licitud. |
401 authentication_error | La clau està desapareguda, desconeguda, revocada o caducada, o una sol·licitud signada és vàlida o reutilitzada. |
402 insufficient_quota | El saldo no pot cobrir la sol·licitud.Codi insufficient_balance, amb balance, required_sats i balance_sats. |
403 permission_error | La sol·licitud no coincideix amb el cap de la clau (key_limit_reached, amb limit_sats, used_sats i reset_at), o el compte pot no utilitzar el servei (account_denied). |
404 not_found_error | Un camí desconegut (unknown_endpoint, un model que no existeix (model_not_found), o una clau desconeguda, factura o vídeo. |
405 | El camí existeix, però no amb aquest mètode (method_not_allowed) El Allow Header enumera els mètodes que utilitza. |
413 | El cos o el fitxer és massa gran (payload_too_large, file_too_large), o una gravació és massa llarga (audio_too_long) es Limitació. |
415 invalid_request_error | El cadàver no és enviat com application/json (o, per als terminis d’enllumenat, multipart/form-data): unsupported_media_type. |
422 | Una veu i un llenguatge que no van junts en text i paraula (voice_language_mismatch, unsupported_language). |
429 rate_limit_error | Moltes sol·licituds en aquesta clau, des d'aquesta adreça, o amb credencials que no es van verificar (rate_limit_exceeded) o el proveïdor és limitat a la taxa (upstream_rate_limitedEsperar els segons en Retry-After. |
500 api_error | Alguna cosa va anar malament en el costat de Nymbot (internal_error). |
502 api_error | El proveïdor no va retornar cap resposta (upstream_error) o una factura de llamp no es podia fer (invoice_unavailable). |
503 api_error | El proveïdor està sobrecarregat (upstream_overloaded), el preu de Bitcoin no es pot llegir (price_unavailable), o una part del servei està baix (service_unavailable, media_hosting_unavailable). Retry-After Diu quan tornar a intentar-ho, on és conegut. |
Dues excepcions:
/api/v1/messagesrespostes en el format d'error d'Anthropic, ja que això és el que analitzen els clients d'Anthropic:{"type": "error", "error": {"type": "authentication_error", "message": "…"}}El tipus segueix l'estat:invalid_request_error,authentication_error,billing_error(402),permission_error,not_found_error,request_too_large,rate_limit_error,api_errorooverloaded_error(503).- Una sol·licitud de streaming que fracassa abans del seu primer byte rep un error JSON ordinari amb l'estat anterior, no un flux d'esdeveniments.
Els missatges d'error mai contenen detalls interns d'un altre servei. L'error propi d'un proveïdor es reordena abans que arribi a vostè.
Limitació
| Limitació | El valor |
|---|---|
| Sol·licituds per clau | Més de 120 minuts, per sobre de tot. 429 amb Retry-After. |
| Sol·licituds sense clau | 120 per minut per adreça, per a les llistes de model, àudio i mètode de pagament, comprovacions de token de reemborsament i punts terminals pagats trucats sense clau o pagament. 429 amb Retry-After. |
| Autenticació fallida | 30 per minut per adreça per a claus, signatures, credencials de pagament i tokens de reemborsament que no verifica. 429 amb Retry-After Les credencials es comproven abans de llegir el cos. |
| Noves claus | 60 per hora i 120 per hora per adreça. |
| Top-up de les factures | 60 per hora i 120 per hora per adreça. |
| Connexions de cartera NWC | 10 a l'hora per nym i 30 a l'hora per adreça. El trasllat de cartera ha d'utilitzar wss:// En el port estàndard. |
| Reemborsament de tokens | 60 peticions per minut per token. |
| Adreça | Una adreça IPv6 es compta com el seu conjunt /64 en cada límit per adreça, i una adreça IPv4 mapped IPv6 com la seva adreça IPv4. |
| El cos de la sol·licitud JSON | 4 MB; 64 KB per a sol·licituds signades amb el seu nim. |
| El cos de la sol·licitud de múltiples parts (uploads) | 32 MB. Una imatge per editar pot ser de fins a 20 MB, un arxiu d'àudio de fins a 25 MB. En la majoria de 64 parts, cadascuna amb un màxim de 8 KB d'encapçalaments de parts, i un límit d'1 a 70 caràcters; en cas contrari 400 invalid_multipart. |
| Imatges en una sol·licitud de xat | Cada un de nosaltres és un https:// o http:// Enllaç a un host públic, o a data:image/… La URL. |
| Imatges per generació | 1 a 4 (n) |
| Producció de tokens | Captada al màxim del propi model. Un més gran max_tokens Es redueix a ella, no es nega. |
| Introducció al discurs | 800 caràcters per a la veu estàndard, 2.000 per a Aura 2. |
| Transcripció | 30 minuts d'àudio, 25 MB. Es nega una gravació més llarga amb 413 i no es carrega, fins i tot quan la seva longitud només es coneix una vegada que el Sospir ho ha escoltat. |
| Embeddings | 100 entrades per sol·licitud. |
| Vídeo de treball | Queden aturats durant 24 hores després d'haver estat enviats; un rendiment s'abandona després d'una hora. |
| Volem història | S’haurien d’esperar 90 dies. |
| Les claus actives per nym | Només es conserven les últimes 50 claus revocades. |
Un enllaç a una imatge ha de apuntar a un amfitrió públic: una adreça en una xarxa privada o local, o en els llocs propis de Nymbot, es nega. El ritme del proveïdor que s'aplica a l'aplicació també s'aplica aquí, de manera que una explosió de sol·licituds a un proveïdor pot ser retardada en lloc de fracassar.
El que el foc pot veure
L'API no és privat en la forma en què són les aplicacions, i val la pena ser exactes sobre com.
- No és end-to-end xifrat. En les aplicacions, un missatge és segellat en el seu dispositiu a les claus només Nymbot té i viatja com un Presentació WrapUna sol·licitud d'API és HTTPS ordinari: es xifra en el camí a Nymbot, i el servidor de Nymbot la llegeix en el clar per gestionar-la.
- Les preguntes i les respostes no s'emmagatzemen. El que es conserva és la factura: per a cada sol·licitud el temps, model, tipus, comptes de token, cost, saldo, clau i si va tenir èxit, durant 90 dies, que és el que Història desitjada Un registre d'ús de la mateixa sol·licitud (temps, tipus, model, comptes de tokens, cost, durada i si va utilitzar la cerca web o va tenir èxit) també es conserva durant 90 dies, al costat de la pròpia de l'aplicació.
- Tot el que es manté per a un ninot és petit i es mostra aquí. Claus de foc s'emmagatzemen com un hash, mai la clau, amb el seu nom, una petita pista, cap de despesa, període de restabliment, expiració i quan es van fer i l'última vegada que es van utilitzar; només es conserven les últimes 50 claus revocades. Top-up automàtic La connexió de cartera s'emmagatzema encriptada, amb el seu llindar, la quantitat i el resultat de l'últim top-up. Els llocs de treball de vídeo es mantenen durant 24 hores. Les sol·licituds pagades per trucada només deixen un hash de pagament de llamp per 7 dies i un token de reemborsament hash per 30 dies, lligat a cap nim. Les càrregues que un saldo no podia cobrir es mantenen com a degudes fins que un top-up les pagui.
- Descarregar l’aplicació elimina. A Instal·lació Wipe revoca i esborra cada clau de l'API, i esborra l'historial de consultes, registres d'ús, connexió de cartera i tasques de vídeo.
- El proveïdor del model veu la seva sol·licitudEls models de catàleg s'executen als seus creadors; les rutes estàndard i les incorporacions s'executen a Cloudflare.
- Els mitjans generats són públics. Les imatges i els vídeos lliurats com a enllaços es carreguen als amfitrions de fitxers públics Blossom, on l'adreça d'un fitxer és el seu hash. Qualsevol persona amb l'enllaç pot obrir-lo, i Nymbot no pot tornar a descarregar-lo.
b64_jsoni una imatge generada torna en la resposta i mai es carrega. - Així són les imatges que dóna a un generador. Una imatge que puguis pujar
Edició, o enviar com a
data:URL en un generadorimage_url, es carrega a un amfitrió públic Blossom primer perquè el generador pugui recollir-lo, i el mateix s'aplica a ell.https://Les imatges en una sol·licitud de xat van al proveïdor del model, no a Blossom. - Una clau està lligada al teu nim. Tot el que una clau gasta ve del saldo del seu nim, de manera que l'ús de l'API no és AnònimSi voleu que l'ús de l'API es mantingui a part de la vostra nicotina diària, feu les claus d'una nicotina separada amb el seu propi equilibri.
Si necessiteu la protecció de les aplicacions, utilitzeu les aplicacions. L'API és per quan necessiteu els models en les vostres pròpies eines.
Tots els terminis
| El punt final | Què fa | Autònom |
|---|---|---|
GET /api/v1/models | Llista de modelsAmb els preus | Ningú |
POST /api/v1/chat/completions | Completa el chat | clau |
POST /api/v1/responses | Reaccions a les flames | clau |
POST /api/v1/messages | Missatges antropològics | clau |
POST /api/v1/messages/count_tokens | Estimació de tokens d'entrada | clau |
POST /api/v1/images/generations | Generar imatges | clau o llamps |
POST /api/v1/images/edits | Edita una imatge | clau o llamps |
POST /api/v1/videos, GET /api/v1/videos, GET /api/v1/videos/{id} | Inici, llistes i comprovacions de vídeos | La clau, o llamps Començar una |
POST /api/v1/audio/speech | Text del discurs | clau o llamps |
GET /api/v1/audio/models, GET /api/v1/audio/voices | Models d'àudio i veus | Ningú |
POST /api/v1/audio/transcriptions, POST /api/v1/audio/translations | Discurs al text, i a l'anglès | clau o llamps |
POST /api/v1/embeddings | Embeddings | clau o llamps |
GET /api/v1/credits/balance (o el POST) | Ambdós equilibris | clau |
GET /api/v1/topup/payment-methods | Maneres de pagar | Ningú |
POST /api/v1/topup/create/btc-lightning | Facturació de llamps | clau |
GET /api/v1/topup/status/{invoice_id} | Xecs i crèdits | clau |
GET /api/v1/queries/history | Quant costa cada petició | Clau o NIM |
GET /api/v1/account | Resum de comptes | nòmina |
/api/v1/keys | Crea, canvia i revoca claus | nòmina |
/api/v1/nwc-auto-topup | Top-ups automàtics | nòmina |
GET /api/v1/l402/refunds, POST /api/v1/l402/refunds/redeem | Comprova o rescata un token de devolució | Refund token; nym a redeem |
“Nym” significa una sol·licitud signada per la teva clau Nostr, descrita en Sol·licitud de signatura de comptePer a les eines que ja parlen aquests formats, vegeu Eines i SDK, i per a agents de codificació com Claude Code, Codex i Cline, vegeu Eines de codificació.