Prijeđi na sadržaj
Povratak na Nymbot

Baza znanja Razvijatelji

Vatra Pregled

Modeli, generatori i ravnoteže koje koristite u aplikaciji, iz vlastitog koda. API govori OpenAI i Anthropic formate, tako da većina alata i SDK-ova radi mijenjanjem osnovnog URL-a i ključa.

Što je vatra

HTTP API na nymbot.ai koji odgovara na iste zahtjeve koje već šalje OpenAI ili Anthropic klijent.

Plaća se od iste dvije Ravnoteža Kao i aplikacija, po istim cijenama.Nema pretplate i nema besplatne naknade na API-ju: svaki zahtjev se plaća iz kredita koje ste kupili.

Ono što API ne čini je dodavanje bilo čega od vlastitog Nymbota. Vaše poruke odlaze u model kako ste ih poslali: nema Nymbot sistemske upute, nema memorije, nema datuma ili jezika naznake.

Osnovni URL

KoristiteOsnovni URL
OpenAI SDK-ovi i OpenAI-kompatibilni alatihttps://nymbot.ai/api/v1
Antropske SDK-e i Claude Kodekshttps://nymbot.ai/api (SDK se dodaje /v1/messages i sama)

Svaka krajnja točka živi pod /api/v1/Nepoznati put vraća se 404 i poznati put nazvan s pogrešnom metodom vraća se 405I to kao JSON.

Sve što pošaljete u preglednik može pročitati tko god ga otvori, pa to učinite samo s ključem koji ima malu vrijednost. glavaKrajnje točke potpisane s vašim nimom (ključevi, sažetak računa, NWC auto-top-up i povrat otkupnine) su iznimka: u pregledniku odgovaraju samo na Nymbotove vlastite stranice. Potpisivanje zahtjeva za račun.

Pošaljite svako JSON tijelo s Content-Type: application/jsonSvaki drugi tip je odbijen 415, tako da je običan HTML oblik ili text/plain zahtjev s druge stranice ne može doći do API-ja. pomoću cURL-a, -H "Content-Type: application/json" zajedno s -d.

Vatra ključeva

Ključovi su napravljeni u aplikaciji. vatra u bočnoj traci web aplikacije, ili u izborniku na Androidu i iOS-u, i dodirnite Stvaranje ključaDajte mu ime i, ako želite, kap i datum isteka.

Ključ se prikazuje jednom. Kopirajte ga negdje sigurno prije zatvaranja lista: Nymbot zadržava samo otisak prsta, tako da vam ga ne može ponovno pokazati.

Ključ izgleda kao sk-nymbot- Nakon toga slijede 43 slova, brojke, oznake i podcore. Aplikacija popisuje svaki ključ po imenu i kratkom nagovoru kao što je: sk-nymbot-Qm7x…c2Lw.

  • Ključ pripada vašem nimu. To troši vašu bilancu, a samo vaš nim može napraviti, promijeniti ili opozvati.Svatko tko drži ključ može potrošiti s njim, pa ga tretirati kao lozinku.
  • Cijene su u Sati. Ključ može imati ograničenje troškova, a ograničenje se može ponoviti svaki dan, svaki tjedan (ponedjeljak) ili svaki mjesec (prvi), u 00:00 UTC. Broji oba salda, standardni kredit kao 10 sats i Pro kredit kao 100, tako da znači isto bez obzira na ravnotežu koju zahtjev troši. Prije nego što se zahtjev pokrene, najviše što bi moglo koštati (zaokruženo na cijele kredite) postavlja se protiv onoga što je preostalo od ograničenja. 403 key_limit_reached, čak i ako bi odgovor došao ispod poklopca; pogreška govori koliko je preostalo i kada se poklopac resetira. max_tokens Zahtjev se naplaćuje ono što stvarno košta i što se računa protiv kape, tako da ako pružatelj izvještava više žetona nego što je stavljeno na stranu, posljednji zahtjev koji se uklapa može uzeti ključ malo duže od njegove kape; sljedeći se zatim odbija.
  • Potrošena kap samo zaustavlja troškove. Ključ na svom poklopcu još uvijek može provjeriti ravnotežu, pročitati njegovu povijest, popisati modele, brojati žetone, nadograditi i provjeriti video koji je već započeo.
  • Expiry je opcijski. Nakon datuma koji ste postavili, ključ prestaje raditi.
  • Povlačenje je trenutačno i konačno. Povučeni ključ ne ispunjava sljedeći zahtjev. ostaje na popisu, označen povučenim, tako da njegova povijest potrošnje još uvijek ima smisla.
  • Možete imati do 25 aktivnih ključeva, svaki s vlastitim imenom.

Isti list prikazuje potrošnju svakog ključa u tom razdoblju i ukupno, kada je posljednji put korišten, kako svoje bilance, tako i vaše nedavne API zahtjeve. Upravljanje ključima.

Autentificiranje zahtjeva

Pošaljite ključ u bilo kojem od ovih naslova. Oni su ekvivalentni, pa koristite ono što vaš klijent šalje podrazumijevano:

HeaderSlijedi
Authorization: Bearer sk-nymbot-…OpenAI SDK-ovi, većina alata, Claude Code s ANTHROPIC_AUTH_TOKEN
x-api-key: sk-nymbot-…Antropski SDK
api-key: sk-nymbot-…Azure-style klijenti

Izostali, nepoznati, opozvani ili istekli ključ 401Uz ovaj kod missing_api_key, invalid_api_key, revoked_api_key ili expired_api_keyPopis modela, audio modela i glasova te načina plaćanja ne zahtijevaju ključ.

Slike, videozapisi, govor, transkripcije i ugrađivanja također se mogu platiti za jedan zahtjev odjednom preko Lightning-a bez ključa: pošaljite zahtjev bez jednog i platite račun u 402 Odgovor: Pogledajte Plaćanje na zahtjev bez ključa.

Upravljanje ključima, sažetak računa i automatski top-upovi su iznimka: uzimaju potpis iz vašeg nimma umjesto ključa, tako da ispušteni ključ ne može napraviti više ključa. Potpisivanje zahtjeva za račun.

Vaš prvi zahtjev

Stavite ključ u promjenjivu okoline, a zatim nešto zatražite od 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 Nymbotovo vlastito usmjeravanje, plaćeno iz standardne ravnoteže. Umjesto toga stavite ID modela kataloga, kao što je anthropic/claude-sonnet-5, da biste koristili taj model iz Pro ravnoteže. Popis modela Svaki pojedini ID.

Koja je cijena zahtjeva

API obračunava točno onako kako to čini aplikacija.

  • Kakva ravnoteža nymbot/auto Trošite ih Standardna balansa (10 sats a kredit). Svaki drugi model razgovora troši Pro Standardni generator slika i standardni glas troše standardne kredite; svaki drugi generator troši Pro. Ugrađivači troše standardne kredite. Transcription troši standardne kredite kada ga standardni saldo može pokriti, a Pro krediti na drugi način. Popis modela kaže koji balans svaki model troši.
  • Koliko toga. Zahtjev za razgovor se mjeri na žetone koje je model zapravo pročitao i napisao, na objavljenim stopama pružatelja usluga. Ta cijena ima 5% naknadu dodanu i zatim se pomnoži sa 1,5, tako da plaćate 1.575 puta cijenu popisa pružatelja usluga. Pretvara se na sats na živu Bitcoin cijenu i naplaćuje se u tisućama kredita. Pro slike, video i govor su cijenjeni po generaciji, po sekundi ili po znaku, i transkripcija po sekundi zvuka, uz istu naknadu i maržu. Standardna slika je ravna 5 standardnih kredita i standardni glas ravna 3.
  • To je minimum. Svaki mjereni zahtjev koji radi košta najmanje 0,05 kredita: pola sjedi na standardnoj ravnoteži, 5 stopa na Pro.
  • Držite, a zatim se smjestite. Prije nego što zahtjev pokrene, najviše što bi moglo koštati drži se iz vašeg salda, na temelju onoga što ste poslali i najviše žetona koje može napisati. Tekst izvan običnog ASCII-a veličina je od svojih UTF-8 bajtova, a ASCII brojevi i bodovi računaju kao žetoni, tako da se tekst u bilo kojem scenariju, kodu i brojevima drži u cijelosti. Drži se u cijelim kreditima, najmanje jednom, tako da svakoj zahtjevu treba najmanje 10 besplatnih stopa na standardnom saldu ili 100 stopa na Pro-u da bi se počeo. Samo se naplaćuje stvarni trošak; ostatak se oslobađa kada se završi. Dug zahtjev drži svoje držanje dok traje; ako se držani krediti uopće prestanu biti dostupni, 402 insufficient_balance Ako je stvarni trošak veći nego što bilanca može platiti, cijela bilanca se uzima, ostatak je dužan (owed_sats U na nymbot objekt, i negativna ravnoteža). Ono što je dužno isplaćuje se prvo iz sljedećih kredita koji dosegnu tu ravnotežu. Dok se ne isplati, ništa na toj ravnoteži ne može se potrošiti: ne od strane API-ja, odgovori u aplikaciji, prijenos ili dar.
  • Nema dovoljno kredita. Ako ravnoteža ne može pokriti držanje, zahtjev se odbija s 402 prije nego što se nešto pokrene. pogreška govori koja je ravnoteža kratka, koliko stavki zahtjeva treba i koliko je besplatno. max_tokens To znači manje držanje.
  • neuspjeha Zahtjev koji ne uspije ne košta ništa, osim ako je pružatelj računa za rad koji je učinio prije neuspjeha, ili web pretraživanje ili nymbot/auto Provjera zadataka već je pokrenuta; onda to je ono što plaćate, najmanje 0.05 kredita. Potok koji odbijete naplaćuje se za žetone koje izvješćuje pružatelj: Nymbot čita protok pružatelja do 25 sekundi nakon što napustite da biste dobili taj broj. Ako ne stigne, naknada se procjenjuje iz onoga što ste poslali i što je napisano, a za model koji razlozi uključuje cijeli izlazni dopuštenje držanja.
  • Web pretraživanje Košta $ 0,008 pretraživanje, pretvoreno u sats, svaki put kada je pretraživanje pokrenuto, bez obzira na to da li model onda odgovara ili ne.

Svaki odgovor govori koliko košta.JSON odgovori nose nymbot objekta sa saldom iz kojeg je isplaćen, naknadom u kreditima i ratama i onim što je ostalo:

Cijena objekta

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

Plaćeni odgovori također nose ove glave, što je mjesto gdje tražiti trošak odgovora koji nije JSON, kao što je govor:

HeaderZnačenje
X-Nymbot-Cost-SatsKoja je cijena ovog zahtjeva, u sats.
X-Nymbot-Balance-SatsŠto je ostalo na ravnoteži iz koje je isplaćeno, u ratama.
X-Request-IdID zahtjeva, na svakom odgovoru. Citirajte ga ako kontaktirate podršku.

Stope po milijun žetona, već uključujući naknadu i maržu, su u Popis modela u dolarima i stotinama, i na Cijenjeni listAko se cijena Bitcoina ne može čitati, plaćeni zahtjevi se vraćaju 503 price_unavailable s Retry-After: 60 Umjesto da nagađamo.

pogreške

Svaka pogreška ima isti oblik, onaj koji OpenAI klijenti već razumiju. code je stabilno ime na koje se možete podudarati; message To je za ljude i može se promijeniti.

pogrešno tijelo

{
  "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
  }
}
StatusKada
400 invalid_request_errorTijelo nije valjan JSON (invalid_json), potrebno polje nedostaje (missing_required_parameter), vrijednost je pogrešna, ili zahtjev traži nešto što model ili krajnja točka ne rade, kao što su alati na nymbot/auto (unsupported_tool). param Naziv polja. također upstream_rejected kada je dobavljač odbio zahtjev.
401 authentication_errorKljuč je nedostajao, nepoznat, opozvan ili je istekao, ili je potpisan zahtjev nevažeći ili ponovno korišten.
402 insufficient_quotaBilans ne može pokriti zahtjev.Kod insufficient_balance, s balance, required_sats i balance_sats.
403 permission_errorZahtjev se ne uklapa u ključ kapi (key_limit_reached, s limit_sats, used_sats i reset_at), ili račun ne može koristiti uslugu (account_denied).
404 not_found_errorNepoznati put (unknown_endpoint), model koji ne postoji (model_not_found), ili nepoznat ključ, račun ili video.
405Postoji put, ali ne i s tom metodom (method_not_allowed) na Allow Header popisuje metode koje se koriste.
413Tijelo ili datoteka su preveliki (payload_too_large, file_too_large), ili je snimak previše dugačak (audio_too_long) vidi se ograničenja.
415 invalid_request_errorTijelo se ne šalje kao application/json (Ili, za upisane krajnje točke, multipart/form-data): unsupported_media_type.
422Govor i jezik koji ne idu zajedno u tekstu u govoru (voice_language_mismatch, unsupported_language).
429 rate_limit_errorPreviše zahtjeva na ovom ključu, s ove adrese ili s povjerljivim informacijama koje nisu provjerene (rate_limit_exceeded(npr. ako je isporučitelj ograničen na cijenu)upstream_rate_limitedČekajte na sekunde u Retry-After.
500 api_errorNešto nije u redu s Nymbotovom stranom (internal_error).
502 api_errorProdavatelj nije dao odgovor (upstream_error) ili se ne može napraviti svjetlosni račun (invoice_unavailable).
503 api_errorProizvođač je preopterećen (upstream_overloaded), cijena Bitcoina ne može se čitati (price_unavailable), ili dio usluge je ispod (service_unavailable, media_hosting_unavailable). Retry-After kaže kada ponovno pokušati, gdje je poznato.

Dvije iznimke:

  • /api/v1/messages odgovori u obliku pogreške Anthropica, budući da je to ono što Anthropic klijenti analiziraju: {"type": "error", "error": {"type": "authentication_error", "message": "…"}}Tip slijedi status: invalid_request_error, authentication_error, billing_error (402), permission_error, not_found_error, request_too_large, rate_limit_error, api_error ili overloaded_error (503).
  • Zahtjev za prijenos koji ne uspije prije svog prvog bajta dobiva običnu JSON pogrešku s statusom iznad, a ne tok događaja.

Poruke o pogreškama nikada ne sadrže unutarnje detalje druge usluge.

ograničenja

ograničenjeVrijednost
Zahtjevi po ključu120 u minuti. više od toga, 429 s Retry-After.
Zahtjevi bez ključa120 po minuti po adresi, za model, audio i način plaćanja popise, povrat token provjere, i plaćene krajnje točke poziva bez ključa ili plaćanja. 429 s Retry-After.
Neuspješna autentikacija30 minuta po adresi za ključeve, potpise, povjerljivosti za plaćanje i tokene za povrat koji ne provjeravaju. 429 s Retry-After Potvrde se provjeravaju prije nego što se tijelo pročita.
Novi ključevi60 po satu po nimu i 120 po satu po adresi.
Top-up računi60 po satu po nimu i 120 po satu po adresi.
NWC novčanik poveznica10 po satu po nimu i 30 po satu po adresi. wss:// Na standardnom pristaništu.
Vraćanje tokena60 zahtjeva po minuti po tokenu.
adreseIPv6 adresa se računa kao cijela /64 u svakom ograničenju po adresi, a IPv4 mapirana IPv6 adresa kao IPv4 adresa.
JSON tijelo zahtjeva4 MB; 64 KB za zahtjeve potpisane s vašim nimom.
Više dijelova tijela zahtjeva (uploads)32 MB. Slika za uređivanje može biti do 20 MB, audio datoteka do 25 MB. Na najviše 64 dijela, svaki s najviše 8 KB glava dijela, i granica od 1 do 70 znakova; inače 400 invalid_multipart.
Fotografije u jednom chat zahtjevuSvaki od njih je jedan https:// ili http:// povezivanje s javnim domaćinom, ili data:image/… Na primjer URL.
Slike po generaciji zahtjeva1 do 4 (n)
Izlazni tokenUgradnja na vlastiti maksimum. veći max_tokens Smanjen je, a ne odbijen.
Govorni ulaz800 znakova za standardni glas, 2000 za Aura 2.
transkripcija30 minuta audio, 25 MB. Duže snimanje je zabranjeno s 413 i nije optužen, čak i kada je njegova duljina poznata samo kada je Šaputalo čulo.
Embeddings100 kuna po zahtjevu.
Video radoviČeka se 24 sata nakon što su podneseni; rendiranje se odustaje nakon sat vremena.
Želite povijestČeka se 90 dana.
Aktivni ključevi po nymČuvaju se samo posljednjih 50 povučenih ključa.

Poveznica na sliku mora ukazati na javni host: adresa na privatnoj ili lokalnoj mreži, ili na Nymbotovim vlastitim stranicama, odbijena je.

Što vatra može vidjeti

API nije privatan na način na koji su aplikacije, i vrijedi biti točan o tome kako.

  • To nije krajnje šifrirano. U aplikacijama, poruka je zapečaćena na vašem uređaju na ključeve samo Nymbot drži i putuje kao Donacija WrapAPI zahtjev je običan HTTPS: šifriran je na putu do Nymbota, a Nymbotov poslužitelj ga čita u jasnom kako bi ga upravljao.
  • Prijave i odgovori se ne pohranjuju. Ono što se čuva je račun: za svaki zahtjev vrijeme, model, vrsta, broj žetona, trošak, ravnoteža, ključ i je li uspio, za 90 dana, što je ono što Htjeli povijest Zapis o korištenju istog zahtjeva (vrijeme, vrsta, model, broj žetona, trošak, trajanje i je li koristio web pretraživanje ili uspio) također se čuva 90 dana, uz aplikaciju.
  • Sve ostalo držano za nym je malo i navedeno ovdje. Vatra ključeva se pohranjuju kao haš, nikada ključ, s imenom, kratkim naznakom, kapom za troškove, razdobljem ponovnog postavljanja, istekom i kada su napravljeni i posljednji put korišteni; zadržavaju se samo posljednjih 50 opozvanih ključa. Automatski top-up Poveznica novčanika se pohranjuje šifrirana, sa svojim pragom, iznosom i rezultatom posljednjeg popunjavanja. Video radovi se čuvaju 24 sata. Zahtjevi plaćeni po pozivu ostavljaju samo haš plaćanja Lightning za 7 dana i haširani povratni token za 30 dana, povezan s nijednim nimom. Naknade koje ravnoteža ne može pokriti zadržavaju se kao dužne dok ih top-up ne isplati.
  • Uklanjanje aplikacije ga briše. A Uređaj Wipe povlači i briše svaki API ključ te briše povijest upita, zapise o korištenju, povezivanje novčanika i video poslove.
  • Dobavljač modela vidi vaš zahtjevModeli kataloga pokreću se kod svojih proizvođača; standardne rute i ugrađivanja pokreću se na Cloudflare-u.
  • Stvoreni mediji su javni. Slike i videozapisi isporučeni kao poveznice prenose se na javne Blossom datoteke, gdje je adresa datoteke njezin hash. b64_json i generirana slika se vraća u odgovoru i nikada se ne postavlja.
  • To su slike koje dajete generatoru. Fotografije koje ste postavili na Edit, ili poslati kao a data: URL u generatoru image_url, se prvo prenosi na javni Blossom host kako bi ga generator mogao preuzeti, a isto vrijedi i za njega. https:// Slike u zahtjevu za razgovor idu na pružatelja modela, a ne na Blossom.
  • Ključ je povezan s vašim nimom. Sve što ključ troši dolazi iz bilance vašeg nimma, pa uporaba API-ja nije AnonimniAko želite da korištenje API-ja bude odvojeno od vašeg svakodnevnog nyma, napravite ključeve iz zasebnog nyma s vlastitom ravnotežom.

Ako trebate zaštitu aplikacija, koristite aplikacije. API je za kada trebate modele u vlastitim alatima.

Svaki kraj

Krajnje mjestoŠto radiauti
GET /api/v1/modelsPopis modelaUz cijenenitko
POST /api/v1/chat/completionsChat završetakključ
POST /api/v1/responsesOdgovori na APIključ
POST /api/v1/messagesAntropske porukeključ
POST /api/v1/messages/count_tokensProcjene ulaznih tokenaključ
POST /api/v1/images/generationsGenerira slikeključ ili munje
POST /api/v1/images/editsEditi slikuključ ili munje
POST /api/v1/videos, GET /api/v1/videos, GET /api/v1/videos/{id}Početak, popis i provjera videaključ, ili munje Za početak jedan
POST /api/v1/audio/speechTekst za govorključ ili munje
GET /api/v1/audio/models, GET /api/v1/audio/voicesAudio modeli i glasovinitko
POST /api/v1/audio/transcriptions, POST /api/v1/audio/translationsGovor na tekst i na engleskiključ ili munje
POST /api/v1/embeddingsEmbeddingsključ ili munje
GET /api/v1/credits/balance ( ili POST)Obje ravnotežeključ
GET /api/v1/topup/payment-methodsNačini plaćanjanitko
POST /api/v1/topup/create/btc-lightningRačun za munjeključ
GET /api/v1/topup/status/{invoice_id}Provjerite i kreditirajte gaključ
GET /api/v1/queries/historyKoliko košta svaki zahtjevKljuč ili nym
GET /api/v1/accountSažetak računaNjemu
/api/v1/keysStvara, mijenja i opoziva ključeveNjemu
/api/v1/nwc-auto-topupAutomatski top-upsNjemu
GET /api/v1/l402/refunds, POST /api/v1/l402/refunds/redeemProvjerava ili otkupljuje token za povratRefund token; nym da redeem

“Nym” znači zahtjev potpisan vašim Nostr ključem, opisan u Potpisivanje zahtjeva za računZa alate koji već govore o tim formatima, pogledajte Oprema i SDK, a za agente kodiranja kao što su Claude Code, Codex i Cline, vidjeti Kodiranje alata.