Preskoči na vsebino
Nazaj na Nymbot

Baza znanja razvijalci

Ognjišče Pregled

Modeli, generatorji in ravnotežje, ki jih uporabljate v aplikaciji, iz lastne kode. API govori o OpenAI in Anthropic formatih, zato večina orodij in SDK deluje s spreminjanjem osnovnega URL-ja in ključa.

Kaj je ogenj

HTTP API za nymbot.ai ki odgovarja na iste zahteve, ki jih že pošilja odjemalec OpenAI ali Anthropic.

Plača se iz istih dveh Ravnovesje kot aplikacija, po enakih cenah. na API-ju ni naročnine in ni brezplačne pristojbine: vsaka zahteva se plača iz kreditov, ki ste jih kupili.

Kar API ne naredi, je, da doda nekaj Nymbotovega. vaša sporočila gredo v model, ko ste jih poslali: ni Nymbotovega sistemskega opozorila, ni pomnilnika, ni datuma ali jezikovnih namigov.

Osnovni URL

uporabiOsnovni URL
OpenAI SDK in orodja, ki so združljiva z OpenAIhttps://nymbot.ai/api/v1
Antropski SDK in Claude Kodahttps://nymbot.ai/api (SDK je dodan /v1/messages samega sebe)

Vsaka končna točka živi pod /api/v1/Neznana pot se vrača 404 in znana pot, imenovana z napačno metodo, se vrne 405Tako kot JSON.

API odgovarja na navzkrižne zahteve iz katerega koli mesta, tako da ga lahko brskalnik pokliče. Vse, kar pošljete brskalniku, lahko prebere vsak, ki ga odpre, zato to storite le s ključem, ki ima majhen glavoKončne točke, podpisane z vašim nimm (ključi, povzetek računa, samodejno nadgradnjo NWC in odkupnino nadomestil) so izjema: v brskalniku odgovarjajo le na Nymbotove lastne strani. Podpis računskih zahtevkov.

Pošljite vsako JSON telo z Content-Type: application/jsonVsak drugi tip je zavrnjen 415, tako da je preprosta oblika HTML ali text/plain zahtevo iz drugega mesta ne more doseči API. z cURL, prenesite -H "Content-Type: application/json" Skupaj z -d.

Ognjeni ključi

Ključi so narejeni v aplikaciji. odprto ogenj v stranski vrstici spletne aplikacije ali v meniju za Android in iOS in tapnite Ustvarite ključDajte mu ime in, če želite, pokrovček in datum poteka.

Ključ se prikaže enkrat. Kopirajte ga na varno mesto, preden zaprete list: Nymbot ohrani le prstni odtis, tako da vam ga ne more več pokazati. izgubljen ključ ni mogoče obnoviti; ga prekličite in naredite novega.

Ključ je videti kot sk-nymbot- sledijo 43 črk, številk, podčrt in podčrt. aplikacija navaja vsak ključ s svojim imenom in kratkim namigom, kot so: sk-nymbot-Qm7x…c2Lw.

  • Ključ pripada vašemu nimmu. To porabi vašo bilanco, in samo vaš nimm ga lahko naredi, spremeni ali prekliče.Kdor ima ključ lahko porabi z njim, zato ga obravnava kot geslo.
  • Kapljice so na zalogi. Ključ ima lahko omejitev porabe in omejitev lahko ponastavi vsak dan, vsak teden (ponedeljek) ali vsak mesec (prvi), ob 00:00 UTC. Šteje obe ravni, standardni kredit kot 10 sats in Pro kredit kot 100, tako da pomeni enako, kar koli ravni zahteva porabi. Preden zahteva teče, je največ, kar bi lahko stalo (zaokroženo do celih kreditov) določeno proti tistemu, kar je ostalo od omejitve. 403 key_limit_reached, tudi če bi odgovor prišel pod pokrov; napaka pove, koliko je ostalo in kdaj se pokrov ponastavi. max_tokens Zahteva se zaračuna, kar dejansko stane in se šteje proti pokritosti, tako da, če ponudnik poroča več žetonov, kot so bili postavljeni na stran, zadnja zahteva, ki ustreza, lahko ključ vzame malo nad svojo pokritostjo; naslednja je nato zavrnjena.
  • Porabljena kaplja samo ustavi porabo. Ključ na svojem pokrovu lahko še vedno preveri stanje, prebere svojo zgodovino, seznani modele, šteje žetone, nadgradi in preveri video, ki ga je že začel.
  • Expiry je neobvezen. Po datumu, ki ste ga nastavili, ključ preneha delovati.
  • Preklic je takojšen in dokončen. Preklican ključ ne izpolni svoje naslednje zahteve. ostaja na seznamu, označen z preklicanim, zato je njegova zgodovina porabe še vedno smiselna.
  • Imate lahko do 25 aktivnih ključev, vsak s svojim imenom. Spreminjanje obdobja ponastavitve ključa začne novo obdobje z ničlo.

Isti list prikazuje porabo vsakega ključa v tem obdobju in skupaj, ko je bil nazadnje uporabljen, tako vaše bilance kot vaše nedavne zahteve API. Upravljanje ključev.

Avtentikacija zahteve

Pošljite ključ v katerikoli od teh naslovov. So enakovredni, zato uporabite vse, kar vaš odjemalec pošilja privzeto:

HeaderjiPošlji
Authorization: Bearer sk-nymbot-…OpenAI SDK, večina orodij, Claude Code z ANTHROPIC_AUTH_TOKEN
x-api-key: sk-nymbot-…Antropski SDK
api-key: sk-nymbot-…Azure-style stranke

Manjkajoči, neznani, preklicani ali zapadli ključi 401in s kodo missing_api_key, invalid_api_key, revoked_api_key ali expired_api_keySeznam modelov, zvočnih modelov in glasov ter načinov plačila ne potrebuje ključa.

Slike, video, govor, transkripcije in vdelave lahko plačate tudi za eno zahtevo naenkrat preko Lightning brez ključa: pošljite zahtevo brez ene in plačajte račun v 402 Odgovor: glej Plačilo na zahtevo brez ključa.

Upravljanje ključev, povzetek računa in samodejni top-up so izjema: vzamejo podpis iz vašega nimma namesto ključa, tako da puščen ključ ne more narediti več ključev. Podpis računskih zahtevkov.

Vaša prva zahteva

Vstavite ključ v spremenljivko okolja, nato pa nekaj vprašajte modela. 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 je Nymbotova lastna usmeritev, plačana iz standardnega stanja. Namesto tega postavite ID modela kataloga, kot je anthropic/claude-sonnet-5, da uporabite ta model iz Pro ravnovesja. Seznam modelov Dajte vsakemu ID.

Koliko stane zahteva

API zaračuna točno tako, kot to počne aplikacija.

  • Kakšno ravnovesje nymbot/auto Porabite jih Standardno ravnovesje (10 sats a kredit). Vsak drugi model klepeta porabi za standardni slikovni generator in standardni glas porabijo standardne kreditne točke; vsak drug generator porabi Pro. Vdelave porabijo standardne kreditne točke. Transcription porabi standardne kreditne točke, ko ga lahko pokrije standardni saldo, in Pro kreditne točke drugače. Seznam modelov pove, kateri saldo porabi vsak model.
  • Koliko pa Zahteva za klepet se meri na žetone, ki jih je model dejansko prebral in napisal, po objavljenih cenah ponudnika. Ta cena ima dodano 5% pristojbino in se nato pomnoži s 1,5, tako da plačate 1,575-kratno ceno ponudnika. Pretvori se v stavo po ceni v živo Bitcoin in zaračuna v tisočdesetih delih kredita. Pro slike, video in govor so cene na generacijo, na sekundo ali na znak, in transkripcija na sekundo avdio, z isto pristojbino in maržo. Standardna slika je ravna 5 standardnih kreditov in standardni glas je ravna 3.
  • Vsaj na minimum. Vsaka merjena zahteva, ki teče, stane vsaj 0,05 kredita: polovica se nahaja na standardnem ravnovesju, 5 plača na Pro.
  • Vztrajajte, nato pa se usede. Preden zahteva teče, se največji stroški, ki jih lahko stane, hranijo iz vašega stanja, glede na to, kaj ste poslali in koliko žetonov lahko napiše. Besedilo zunaj običajnega ASCII se meri od njegovih UTF-8 bajtov, številke ASCII in točke se štejejo kot žeton, tako da se besedilo v katerem koli skriptu, kodi in številkah hranijo v celoti. Vodenje je v celotnih kreditih, vsaj enega, tako da vsaka zahteva potrebuje vsaj 10 brezplačnih stavkov na standardnem ravnovesju ali 100 stavkov na Pro za začetek. Začetne stroške se zaračuna samo dejanski stroški; ostalo se sprosti, ko se konča. Dolgo zahtevo ohranja svojo držo, dokler teče; če se zadržani krediti 402 insufficient_balance Če je dejanski strošek večji od zneska, ki ga lahko plača bilanca, se vzame celoten znesek, ostalo pa je dolžno (owed_sats V na nymbot predmet in negativno stanje). Kar je dolžno, se najprej izplača iz naslednjih kreditov, ki dosežejo to stanje. Dokler ni plačano, se nič na tem ravnovesju ne more porabiti: ne z API, odgovori v aplikaciji, prenos ali darilo.
  • Ni dovolj kreditov. Če bilanca ne more pokriti posesti, se zahteva zavrne z 402 napaka pravi, kateri saldo je kratek, koliko stav zahteve potrebuje in koliko je brezplačno. max_tokens To pomeni manjšo držo.
  • za neuspehe. Neuspešna zahteva ne stane nič, razen če je ponudnik zaračunal za delo, ki ga je opravil pred neuspehom, ali spletno iskanje ali nymbot/auto Preverjanje opravil je že potekalo; potem to je tisto, kar plačate, vsaj 0,05 kredita. Pretok, ki ga izrežete, se zaračuna za žetone, ki jih poroča ponudnik: Nymbot še naprej bere pretok ponudnika do 25 sekund po tem, ko zapustite, da dobite to število.
  • spletno iskanje stane 0,008 $ za iskanje, pretvorjeno v sats, vsakič, ko je iskanje potekalo, ali model potem odgovori ali ne uspe.

Vsak odgovor pove, koliko stane. JSON odgovori nosijo nymbot predmet z zneskom, iz katerega je bil plačan, pristojbino v kreditih in stopnjah, in kar je ostalo:

Stroški predmeta

"nymbot": {
  "balance": "pro",
  "charged_credits": 0.162,
  "charged_sats": 16.2,
  "balance_credits": 412.425,
  "balance_sats": 41242.5
}

Plačani odgovori nosijo tudi te glave, kar je, če iščete stroške odgovora, ki ni JSON, kot je govor:

Headerjipomen
X-Nymbot-Cost-SatsKoliko je ta zahteva stala, v sats.
X-Nymbot-Balance-SatsKaj je ostalo na ravnovesju, iz katerega je bilo plačano, v stopnjah.
X-Request-IdID za zahtevo, na vsak odgovor. Citirajte ga, če stopite v stik s podporo.

Stopnje na milijon žetonov, ki že vključujejo pristojbino in maržo, so v Seznam modelov v dolarjih in stopnjah, in na Cenovni listČe cene Bitcoin ni mogoče prebrati, plačane zahteve vrnejo 503 price_unavailable s Retry-After: 60 Namesto da bi ugibali.

Napake

Vsaka napaka ima enako obliko, ki jo OpenAI odjemalci že razumejo. code je stabilno ime, s katerim se lahko ujemate; message To je za ljudi in se lahko spremeni.

Napaka telesa

{
  "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
  }
}
statusaKdaj
400 invalid_request_errorTelo ni veljavno JSON (invalid_json) zahtevanega polja manjka (missing_required_parameter), vrednost je napačna ali zahteva nekaj, kar model ali končna točka ne naredi, na primer orodja na nymbot/auto (unsupported_tool). param ime polja. tudi upstream_rejected če ponudnik zahtevo zavrne.
401 authentication_errorKljuč je manjkajoč, neznan, preklican ali poteče ali podpisano zahtevo ni veljavno ali ponovno uporabljeno.
402 insufficient_quotaPreostanek ne more pokriti zahteve.Kod insufficient_balance, z balance, required_sats in balance_sats.
403 permission_errorZahteva se ne ujema s ključavnico (key_limit_reached, z limit_sats, used_sats in reset_at), ali račun morda ne uporablja storitve (account_denied).
404 not_found_errorNeznana pot (unknown_endpoint), model, ki ne obstaja (model_not_found), ali neznan ključ, račun ali video.
405Ta metoda obstaja, vendar ne obstaja (method_not_allowed) za Allow Header navaja metode, ki jih uporablja.
413Telo ali datoteka je prevelika (payload_too_large, file_too_large) ali je snemanje predolgo (audio_too_long) se Omejitve.
415 invalid_request_errorTelo se ne pošilja kot application/json (ali za končne končne točke, multipart/form-data): unsupported_media_type.
422Glas in jezik, ki ne gredo skupaj v besedilu do govora (voice_language_mismatch, unsupported_language).
429 rate_limit_errorPreveč zahtevkov na tem ključu, s tega naslova ali s pooblastili, ki jih ni bilo mogoče preveriti (rate_limit_exceeded) ali pa je ponudnik omejen na stopnjo (upstream_rate_limited) Počakajte na sekunde v Retry-After.
500 api_errorNekaj je šlo narobe na strani Nymbotta (internal_error).
502 api_errorPonudnik ni vrnil odgovora (upstream_error) ali se ne more izvesti bliskovni račun (invoice_unavailable).
503 api_errorProizvajalec je preobremenjen (upstream_overloaded), cena Bitcoin ni mogoče prebrati (price_unavailable) ali pa je del storitve nižji (service_unavailable, media_hosting_unavailable). Retry-After Povejte, kdaj poskusiti znova, kjer je znano.

Dve izjeme:

  • /api/v1/messages odgovori v obliki napake Anthropic, saj je to tisto, kar stranke Anthropic analizirajo: {"type": "error", "error": {"type": "authentication_error", "message": "…"}}Tip sledi statusu: invalid_request_error, authentication_error, billing_error (402), permission_error, not_found_error, request_too_large, rate_limit_error, api_error ali overloaded_error (503).
  • Poizvedba za pretakanje, ki ne uspe pred prvim bajtom, dobi navadno napako JSON z zgornjim statusom, ne pa dogodkovnega toka.

Sporočila o napaki nikoli ne vsebujejo notranjih podrobnosti druge storitve. lastna napaka ponudnika se preoblikuje, preden pride do vas.

Omejitve

Omejitevvrednostjo
Zahteve po ključu120 na minuto in še več. 429 s Retry-After.
Zahteve brez ključa120 na minuto na naslov, za seznam modelov, avdio in plačilnih metod, preverjanje vračila žetonov in plačane končne točke, ki se kličejo brez ključa ali plačila. 429 s Retry-After.
Neuspešna avtentikacija30 minut na naslov za ključe, podpise, poverilnice za plačilo in tokene za vračilo, ki ne preverjajo. 429 s Retry-After Potrdila so preverjena, preden se telo prebere.
Novi ključi60 na uro na nimm in 120 na uro na naslov.
Top-up računi60 na uro na nimm in 120 na uro na naslov.
NWC denarnice povezave10 na uro na nimm in 30 na uro na naslov. Prenosnik denarnice mora uporabljati wss:// v standardnem pristanišču.
Vračilo tokena60 povpraševanj na minuto na žeton.
naslovovIPv6 naslov šteje kot celotno /64 v vsaki omejitvi naslova, in IPv4 mapiran IPv6 naslov kot svoj IPv4 naslov.
JSON zahtevo telo4 MB; 64 KB za zahteve, podpisane z vašim nimom.
Večstransko telo zahteve (uploads)32 MB. Slika za urejanje je lahko do 20 MB, avdio datoteka do 25 MB. Na največ 64 delih, vsak z največ 8 KB glave delov in mejo od 1 do 70 znakov; drugače 400 invalid_multipart.
Fotografije v enem klepetu20. vsaka je ena https:// ali http:// povezavo do javnega gostitelja ali data:image/… Uradni URL
Slike po generacijah1 do 4 (n)
Izhodni tokeniSestavljen je iz lastnega maksimuma. večji max_tokens To je znižano, ne zavrnjeno.
Vnos govora800 znakov za standardni glas, 2.000 za Aura 2.
transkripcijo30 minut zvočnega posnetka, 25 MB. Daljši posnetek je zavrnjen z 413 in ni obtožen, čeprav je njegova dolžina znana šele, ko jo je slišal Šepet.
Embeddings100 vnosov na zahtevo.
Video delovna mestaOstanite 24 ur po tem, ko so poslani; predvajanje se opusti po eni uri.
Želi zgodovinoPočakajte 90 dni.
Aktivni ključi na nymLe zadnjih 50 preklicanih ključev se ohrani.

Povezava na sliko mora kazati na javnega gostitelja: naslov na zasebnem ali lokalnem omrežju ali na lastnih mestih Nymbota je zavrnjen.

Kaj lahko ogenj vidi

API ni zasebna, kot so aplikacije, in je vredno biti natančen o tem, kako.

  • Ni šifrirano od konca do konca. V aplikacijah je sporočilo zapečateno na vaši napravi na ključe, ki jih ima samo Nymbot in potuje kot Darilni WrapZahteva API je običajna HTTPS: šifrirana je na poti do Nymbota, strežnik Nymbota pa jo bere v jasnem, da jo obdeluje.
  • Odgovori in odgovori se ne shranjujejo. Kaj se ohranja je račun: za vsako zahtevo čas, model, vrsta, števila žetonov, stroški, ravnotežje, ključ in ali je uspelo, za 90 dni, kar je tisto, kar Želite zgodovino Zapis uporabe iste zahteve (čas, vrsta, model, število žetonov, stroški, trajanje in ali je uporabila spletno iskanje ali je uspela) se hrani tudi 90 dni, skupaj z aplikacijo.
  • Vse ostalo, ki se drži za nym, je majhno in našteto tukaj. Ognjeni ključi so shranjeni kot hash, nikoli ključ, z njihovim imenom, kratkim namigom, omejitvijo porabe, obdobjem ponastavitve, potekom in kdaj so bili ustvarjeni in nazadnje uporabljeni; le zadnjih 50 preklicanih ključev se ohrani. Samodejni top-up povezava denarnice je shranjena šifrirana, s svojim pragom, zneskom in rezultatom zadnjega nadomestila. Video delovna mesta se hranijo 24 ur. Zahteve, plačane na klic, pustijo le plačilni hash za 7 dni in token za nadomestilo z nadomestilom za 30 dni, povezan z nobenim nim. Pristojbine, ki jih bilanca ne more pokriti, ostanejo kot dolžne, dokler jih ne plača nadomestilo.
  • Odstranitev aplikacije ga izbriše. A Naprava Wipe prekliče in izbriše vsak API ključ ter izbriše zgodovino poizvedb, zapise o uporabi, povezavo denarnice in videoposnetke.
  • Ponudnik modela vidi vašo zahtevoModeli katalogov se izvajajo pri svojih ustvarjalcih; standardne poti in vdelave se izvajajo v storitvi Cloudflare.
  • Ustvarjeni mediji so javni. Slike in videoposnetki, dostavljeni kot povezave, se naložijo v javne gostitelje datotek Blossom, kjer je naslov datoteke njen hash. b64_json in ustvarjena slika se vrne v odgovor in se nikoli ne naloži.
  • To so slike, ki jih daš generatorju. Slika, ki jo naložite na Edit, ali pošljite kot a data: URL v generatorju image_url, se najprej naloži na javni Blossom gostitelj, tako da ga lahko generator prevzame, in enako velja za to. https:// Slika v zahtevi za klepet gre ponudniku modela, ne Blossomu.
  • Ključ je povezan z vašim nimom. Vse, kar ključ porabi, prihaja iz ravnovesja vašega nimma, zato uporaba API ni AnonimniČe želite, da je uporaba API-ja ločena od vašega vsakdanjega nimma, naredite ključe iz ločenega nimma z lastnim ravnovesjem.

Če potrebujete zaščito aplikacij, uporabite aplikacije. API je namenjen, ko potrebujete modele v lastnih orodjih.

Vsaka končna točka

Končna točkaKaj počneavto
GET /api/v1/modelsSeznam modelovZ cenamiNobenega
POST /api/v1/chat/completionsChat dopolnitevključ
POST /api/v1/responsesOdgovori na APIključ
POST /api/v1/messagesAntropična sporočilaključ
POST /api/v1/messages/count_tokensOcenjevanje vhodnih žetonovključ
POST /api/v1/images/generationsUstvarjanje slikključ ali bliskavice
POST /api/v1/images/editsEdit ena slikaključ ali bliskavice
POST /api/v1/videos, GET /api/v1/videos, GET /api/v1/videos/{id}Začetek, seznami in preverjanje videoposnetkovključ ali bliskavice Za začetek ena
POST /api/v1/audio/speechBesedilo za govorključ ali bliskavice
GET /api/v1/audio/models, GET /api/v1/audio/voicesZvočni modeli in glasoviNobenega
POST /api/v1/audio/transcriptions, POST /api/v1/audio/translationsBeseda v besedilo in angleščinaključ ali bliskavice
POST /api/v1/embeddingsEmbeddingsključ ali bliskavice
GET /api/v1/credits/balance (ali pa POST)Obe ravnotežjiključ
GET /api/v1/topup/payment-methodsNačin plačilaNobenega
POST /api/v1/topup/create/btc-lightningRačuni za streleključ
GET /api/v1/topup/status/{invoice_id}Preverite in kreditirajteključ
GET /api/v1/queries/historyKoliko stane vsaka zahtevaključ ali nym
GET /api/v1/accountPovzetek računaNimaš
/api/v1/keysUstvarjanje, spreminjanje in preklic ključevNimaš
/api/v1/nwc-auto-topupSamodejni top-upsNimaš
GET /api/v1/l402/refunds, POST /api/v1/l402/refunds/redeemPreverite ali odkrijte token za vračiloVrnite token; nym to redeem

“Nym” pomeni zahtevo, podpisano z vašim ključem Nostr, opisanim v Podpis računskih zahtevkovZa orodja, ki že govorijo te oblike, glejte Orodja in SDK, in za kodne agente, kot so Claude Code, Codex in Cline, glej Kodiranje orodij.