Bu’uura beekumsaa Uumtoota
Fakkiiwwan, sagalee fi embeddings
Appii keessaa kanneen uumaniifi, uumama barbaachisuuf kanneen fayyadan: fakkiiwwan, viidiyoo, dubbii, barreeffama fi embeddings, kanneen hundi kaffaltiin isaanii yeroo itti fayyadaman kaffaltii bu'aa keetiin herregama.
Fuulli kun akka mijatutti maashiniin kan hiikamedha. Orijinaalli Ingiliffaa kan ilaallatudha.
Fakkiiwwan uumuu
Prompt tokko irraa fakkiiwwan tokko hanga afuritti hojjeta, yommuu xumuramanis deebisa. Setii uumtoota kan sana waliin wal qaba. ?image appii keessatti.
POST https://nymbot.ai/api/v1/images/generations — API key barbaada, yookaan Kaffaltii Lightning gaaffii hundaaf tokkoof.
Idoos eessaa dhufan? GET /api/v1/models?type=image. Uumaa qabatamaa ta'e,
@cf/black-forest-labs/flux-1-schnell, fakkii tokkoof kireetiiwwan idilee 5 (50 sats) qofa kaffalamu. Kaayichaan (generator) biraa hundi kireetiiwwan Pro gatii isaanii ofii irratti, liqii fi margin baramaa waliin, akka appii sana. n suuraan gatii meeqa?
n yeroo baay'ee akkasuma. Marsaa generator hin fudhanne dhiisama, garuu رفض hin ta'u; generator qulqulluu qofa prompt fayyadama.
| Marsaa | Garaa | Barbaachisa | Ibsa |
|---|---|---|---|
model | xila/shaxaan | Eeyyee | Idii geraateerii, kan akka nano-banana. |
prompt | xila/shaxaan | Eeyyee | Maal fakkii kaasuun barbaachisa? Dubbii jalqabaa 2,000 qofa fayyadamtu. |
n | lakkoofsa guutuu | Lakki | 1 hanga 4. Akkaeesummaa 1. Akkasumas akka ... ta'etti fudhatama. num_images. |
size | xila/shaxaan | Lakki | Suuta suuraa kan akka "16:9", ykn guddina OpenAI akkaataa kanaatiin "1792x1024", kan inni 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 fi 4:5 keessaa isa dhiyoo dha. "auto" uumataa sanaaf dhiisa. |
aspect_ratio | xila/shaxaan | Lakki | Akka isaatti size, fi yoo lamaanun ergaman injifata. |
quality | xila/shaxaan | Lakki | Kan generatorii irratti kan ta'e, kan akka "low", "medium" yookaan "high". |
negative_prompt | xila/shaxaan | Lakki | Maal dhiisuu qabda. |
output_format | xila/shaxaan | Lakki | "png", "jpeg" yookaan "webp". |
response_format | xila/shaxaan | Lakki | "url" (kan akkaataa jireenyaa) ykn "b64_json". |
image_url | xila/shaxaan | Lakki | Fakkii itti jalqabuuf: an https:// link at most 4,096 characters with no user name or password in it, or a data:image/…;base64 URL (PNG, JPEG, WebP ykn GIF; SVG miti). Kan uumtoota qofaaf kan ta'e kan... edit; kan namoota qaban jedhamaniin barbaadamu requires_image_url. |
resolution hin tajaajilamu: genereetaraan tokko tokko dandeettii isaa ofii uuma. Wajjin url,
fakkii hunda Blossom hostii qofaan dhimma dholaatti olka'eera, linkii isaas argatta (generator-oonni muraasni qofatu linkii isaanii siif kenna, inni immoo dabarsa). Namni linkii qabu hundi banuu danda'a, akkasumas deebisanii balleessuu hin danda'amu; ilaali API'n maal arguun danda'a. Waliin
b64_json fakkichi deebii keessatti deebi'ee dhufa, akkasumas yoomiyyuu hin ol-fe'amu. Fakkii
ergame akka a data: URL keessa image_url akkaan qulqullummaa isaa ilaalamuu danda'a moo akka...
fooyyessu fi dura Blossom irratti olka'ee akka generator-iin argatuuf; yoo gaaffichi kaffaltiin malee hinfuun ta'e, deebie'ee irraa balleessama.
Yoo muraasni keessaa... n suuraan ni dide, isaan hojjetan qofatu siif dhufa, isaan qofaafis kaffaltiin siif jira (akkasumas isaan dhabamee tajaajilaan kaffalte qofa), fi nymbot.failed hunda kamtu dhabame akka ta'e ni hima. Yoo hundi dadhaban, gaaffiin deebi'a 502.
Deebii
{
"created": 1790726400,
"model": "nano-banana",
"cost": 0.2126,
"data": [
{
"url": "https://blossom.example/5c0e4b7d3a91f2e8...c4.png",
"content_type": "image/png"
}
],
"nymbot": { "balance": "pro", "charged_credits": 1.817, "charged_sats": 181.7, "balance_credits": 410.608, "balance_sats": 41060.8 }
}
| Haala | Yoom |
|---|---|
400 | Ajaja hin jiru; n jala 1 hanga 4 ala (invalid_value); xinnoo/bal'aa badduu (invalid_size) yookaan fakkii (invalid_image, invalid_image_url); moodeelii kan jiru garuu kan fakkii uumu miti (invalid_model); suuraa generetara hin jijjiirrin (edit_unsupported); fakkii kan barbaadu tokko hin qabu (image_required). |
402 | Balance-n suuraalee gaafatamanii hunda hin dabarsu. |
404 | Maqaa sanaan moodeelii hin jiru (model_not_found). |
502 | Makaraannichi fashale (upstream_error). Yoo tajaajila kennuun yaalametti kaffaltiin hin gaafatamtu; yoo kaffaltiin gaafatame immoo dogoggorri sun... charged_sats. |
503 | Fakkiiwwan amma hin danda'amu (media_hosting_unavailable). b64_json ammaafis hojjeta. |
cURL
curl https://nymbot.ai/api/v1/images/generations \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana",
"prompt": "A lighthouse at dusk, oil painting",
"size": "16:9"
}'
Python
import os
import requests
res = requests.post(
"https://nymbot.ai/api/v1/images/generations",
headers={"Authorization": "Bearer " + os.environ["NYMBOT_API_KEY"]},
json={"model": "nano-banana", "prompt": "A lighthouse at dusk, oil painting", "size": "16:9"},
)
res.raise_for_status()
print(res.json()["data"][0]["url"])
JavaScript
const res = await fetch("https://nymbot.ai/api/v1/images/generations", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.NYMBOT_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({ model: "nano-banana", prompt: "A lighthouse at dusk, oil painting", size: "16:9" }),
});
const body = await res.json();
console.log(body.data[0].url);
Fakkiiwwan sirreessuu
Fakkii ati feete, ajaja (prompt) hordofuu irratti jijjiira. Kun OpenAI's edit endpoint dha, kanaaf SDK's OpenAI'iitiin... images.edit akkuma jirutti hojjeta. Keessattuu generatoota Pro qaban wajjin edit liistaa
moodeela keessatti fudhadhu.
POST https://nymbot.ai/api/v1/images/edits — API key barbaada, yookaan Kaffaltii Lightning gaaffii hundaaf tokkoof. Qaamni sun multipart/form-data, hanga 32 MBtti.
| Marsaa | Garaa | Barbaachisa | Ibsa |
|---|---|---|---|
image | faayila | Eeyyee | Suuraa irratti hojjetamu: PNG, JPEG, WebP ykn GIF, hanga 20 MB. Akkasumas akka... image[]; inni jalqabaa ni fayyadamama. |
prompt | xila/shaxaan | Eeyyee | Maal jijjiiruu qaba? |
model | xila/shaxaan | Eeyyee | Jiidduu uumtuun kan qabu edit. |
n | lakkoofsa guutuu | Lakki | 1 hanga 4. |
sizeaspect_ratioqualitynegative_promptoutput_format | xila/shaxaan | Lakki | Dhaloota irratti. |
response_format | xila/shaxaan | Lakki | "b64_json" (kan asitti akkaataa qophaa'etti) yookaan "url". |
Suuraan ati ol fe'tu akkaataa PNG, JPEG, WebP ykn GIF sirrii ta'een akka ta'e mirkanaa'ina, gosa dhugaa isaa qabatee kan ergame, akkasumas host Blossom kan beekamaa irratti kan kaa'ame dha, sababni isaas generator-oonni odeeffannoo isaanii linkii fayyadamanii fidu. Akka waan beekamaatti ilaali. Yoo jijjiiramni sun gufuu argate fi kaffaltiin hin jirre, kopii hostii irratti kaa'ame sana irra deebinee balleessina. Deebiin isaa akkaataa uuminsa (generation) fakkaata. Gatii isaa gatii generatorichaa ti, kan inni immoo generatoroota tokko tokkoof suuraa itti fayyadamtuuf kaffaltii dabalataa of keessaa qabaachuu danda'a.
Deebii
{
"created": 1790726460,
"model": "nano-banana",
"cost": 0.2126,
"data": [{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA..." }],
"nymbot": { "balance": "pro", "charged_credits": 1.817, "charged_sats": 181.7, "balance_credits": 408.791, "balance_sats": 40879.1 }
}
| Haala | Yoom |
|---|---|
400 | Fakkii ykn ajaja hin jiru, faayila fakkii hin taane (invalid_image), ykn uumituu kan sirreessuu hin dandeenye (edit_unsupported). |
413 | Fakkichi meegabyte 20 ol dha (file_too_large), yookaan gaaffiin guutumotuun 32 MB ol ta'uu. |
503 | Suuraan amma qarşoomuu hin danda'amu (media_hosting_unavailable). |
cURL
curl https://nymbot.ai/api/v1/images/edits \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-F model=nano-banana \
-F [email protected] \
-F prompt="Make it a snowy evening"
Python
import base64, os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
with open("photo.png", "rb") as f:
result = client.images.edit(model="nano-banana", image=f, prompt="Make it a snowy evening")
with open("edited.png", "wb") as out:
out.write(base64.b64decode(result.data[0].b64_json))
JavaScript
import fs from "node:fs";
import { writeFile } from "node:fs/promises";
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const result = await client.images.edit({
model: "nano-banana",
image: fs.createReadStream("photo.png"),
prompt: "Make it a snowy evening",
});
await writeFile("edited.png", Buffer.from(result.data[0].b64_json, "base64"));
Viidiyoo
Viidiyoonni daqiiqoota fudhatu, kanaaf duubatti hojjecha. Atis erga ergitee booda, id waan tokko hatattamaan argatta, achii immoo viidiyoon sun hamma xumurramutti idicha irratti gaaffii gaafatta. Viidiyoo uumu (generator) hundiis baasii Pro ni fayyadama.
POST https://nymbot.ai/api/v1/videos — API key barbaada, yookaan Kaffaltii Lightning gaaffii hundaaf tokkoof. Deebiiwwan 202.
| Marsaa | Garaa | Barbaachisa | Ibsa |
|---|---|---|---|
model | xila/shaxaan | Eeyyee | Idii uumama viidiyoo irraa ka'e GET /api/v1/models?type=video, kan akka veo. |
prompt | xila/shaxaan | Eeyyee | Maaltu ta'uu qaba. |
duration | lakkoofsa ykn string | Lakki | Duraanfala sekondii keessatti, 0 ol hanga 60. Kan dhimma fudhatu generatoriiwwan dheerina dhimma filachuu si dandeessisan qofa; kan biroo dheerina isaanii baramaa ta'e fayyadamu, inni immoo maali? seconds deebii keessatti fi gatiin hordofa. |
aspect_ratio | xila/shaxaan | Lakki | Fakkeenyaaf "16:9" yookaan "9:16"; guddina akka "1280x720" suuta suuta walqixxummaa isaa dhiyoo dhaabbata. |
resolutionquality | xila/shaxaan | Lakki | Tokko kan generatorii sanaa resolutions liistii moodeelotaa keessatti, kan akka "720p" yookaan "1080p". Inni gatii murteessa. Wanti biraa hundi waliin diigama. unsupported_resolution. |
image_url | xila/shaxaan | Lakki | Fakkii itti jalqabuuf: an https:// liinkii yookaan a data:image/… URL, kan dura host Blossom bifa kallattii (public) irratti olka'e. Generatorota kan barbaachisu dha. requires_image_url. |
Yeroo ati dhiyeessitu, generator, resolution fi dheerina irraa hundaa'ee gatiin sun walitti fufiinsa qaba, kanaafuu tajaajila kennuun hojii sana yeroo fudhatu hatattamaan deebii Pro keetiin kaffalama, akkasumas akka kanaatti mul'ata
cost, estimated_cost fi nymbotYoo dhiyeessaan hojii kana رفضe, wanti tokkoyyuu hin kaffalamu. Yoo rendarri (render) booda dadhabe, ykn kiliipiin xumurame kuufamuu yoo hin dandeenye fi dhiyeessaan kaffaltii isaa yoo hin kaffalxin, kaffaltiin sun yeroo tokkoffaa, ofumaan deebi'a. Rendarri sa'aatii tokko booda irratti tolaa jiru irratti xumura, kaffaltii isaas ni eega, sababni isaas dhiyeessaan rendarri tokko yoo fudhate kaffaltii isaa ni kaffala. Deebiin kaffaltii (refund) kireettota (credits) deebisa, garuu lakkoofsa kaffaltii ijoollee (key's spend count) hin xiqqaayyu.
Deebii (202)
{
"id": "vid_3e9a51c07b2f4d86e0a1c4f2",
"object": "video",
"model": "veo",
"status": "in_progress",
"created": 1790726400,
"seconds": 8,
"resolution": "1080p",
"estimated_cost": 3.18,
"expires_at": 1790812800,
"cost": 3.18,
"nymbot": { "balance": "pro", "charged_credits": 31.8, "charged_sats": 3180, "balance_credits": 378.808, "balance_sats": 37880.8 }
}
status kan jalqabu akka... in_progress, yookaan completed viidiyoo
dursee keessa jiru waliin data yeroo genereetaraan hatattamaan deebi'e.
Viidiyoo tokko qorachaa jira
GET https://nymbot.ai/api/v1/videos/{id} — furtuu nym itti ergame sana kan qabu barbaada. Furtuun limitii isaa gahaate ilaaluu ni danda'a.
Isaan deebisa 202 viidiyoon ijaaramaa jiru irratti fi 200 yeroo xumuramee yookaan yeroo dadhabu. Sekondii 5 hanga 10 gidduutti gaafadhu. Qindoomni (check) hundi tajaajilaa tokko yeroo tokko gaafata akkasumas yeroo tokko deebisa; vidiyoo hin eegu. Hojiin tokko yeroo ergamu booda sa'aatii 24f qabama.
GET /api/v1/videos Hojiiwwan 50 dhumaa furtii sanaa akka tarreessu
{"object": "list", "data": […]}.
Deebii (200)
{
"id": "vid_3e9a51c07b2f4d86e0a1c4f2",
"object": "video",
"model": "veo",
"status": "completed",
"created": 1790726400,
"seconds": 8,
"resolution": "1080p",
"estimated_cost": 3.18,
"expires_at": 1790812800,
"completed_at": 1790726590,
"data": { "url": "https://blossom.example/9b41d0c2e7a3f658...1e.mp4", "content_type": "video/mp4" },
"cost": 3.18,
"nymbot": { "balance": "pro", "charged_credits": 31.8, "charged_sats": 3180 }
}
status dha in_progress, completed yookaan failed. A
hojii dadhabe ni geessisa error ({"code": "generation_failed", "message": …});
yoo deebisame, cost 0 fi akkam? nymbot dabalata
refunded_credits fi refunded_satsViidiyoon xumurame Blossom host uummataa irratti argama, fakkiiwwan hojjetaman akkuma.
| Haala | Yoom |
|---|---|
400 | Himii hin jiru; yeroo 0 hanga 60 alatti (invalid_value); resoluushinii uumichi hin dhiyeessu (unsupported_resolution); suuraa generatorii tokkoof barbaachisu hin jiru (image_required); moodeela uumama viidiyoo hin taane (invalid_model). |
402 | Pro balance-iin viidiyoo sana hin harkisu. |
404 | Raayyaa akkasii hin jiru (model_not_found), ykn idii sanaan hojii nym keetiif hin jiru, ykn waggaa 24 ol ta'e jira (video_not_found). |
429 | Nym keettiin viidiyoowwan 10 qophaa'aa jiru (video_jobs_limit). Isaan hordofi, tokko yoo xumurame immoo kan biraa dhiyeessi. |
502 | Mashiinawwan hojii kana رفضan. Hojiin dhiyeessaan kaffaltii hin gaafatu damaan danda'u. |
503 | Viidiyoowwan amma ergamuu ykn kuufamuu hin danda'amu (media_hosting_unavailable, service_unavailable). |
cURL
curl https://nymbot.ai/api/v1/videos \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "veo", "prompt": "Waves rolling onto a beach at sunrise", "duration": 8, "aspect_ratio": "16:9"}'
curl https://nymbot.ai/api/v1/videos/vid_3e9a51c07b2f4d86 \
-H "Authorization: Bearer $NYMBOT_API_KEY"
Python
import os, time
import requests
headers = {"Authorization": "Bearer " + os.environ["NYMBOT_API_KEY"]}
job = requests.post(
"https://nymbot.ai/api/v1/videos",
headers=headers,
json={"model": "veo", "prompt": "Waves rolling onto a beach at sunrise", "duration": 8, "aspect_ratio": "16:9"},
).json()
while True:
time.sleep(8)
status = requests.get("https://nymbot.ai/api/v1/videos/" + job["id"], headers=headers).json()
if status["status"] in ("completed", "failed"):
break
print(status["data"]["url"] if status["status"] == "completed" else status["error"])
JavaScript
const headers = {
"Authorization": "Bearer " + process.env.NYMBOT_API_KEY,
"Content-Type": "application/json",
};
const job = await (await fetch("https://nymbot.ai/api/v1/videos", {
method: "POST",
headers,
body: JSON.stringify({ model: "veo", prompt: "Waves rolling onto a beach at sunrise", duration: 8, aspect_ratio: "16:9" }),
})).json();
let status;
do {
await new Promise((r) => setTimeout(r, 8000));
status = await (await fetch("https://nymbot.ai/api/v1/videos/" + job.id, { headers })).json();
} while (status.status !== "completed" && status.status !== "failed");
console.log(status.status === "completed" ? status.data.url : status.error);
Barruu gara sagaleetti jijjiiruu
Barreeffama sagaleen dubbisa, sagalee isaas linkii osoo hin taane fayila sagalee qofatu deebisa. Kun endpoint sagaleedha OpenAI, kanaafuu audio.speech.create OpenAI SDK-wwan keessatti akkamitti hojjeta.
POST https://nymbot.ai/api/v1/audio/speech — API key barbaada, yookaan Kaffaltii Lightning gaaffii hundaaf tokkoof.
| Marsaa | Garaa | Barbaachisa | Ibsa |
|---|---|---|---|
model | xila/shaxaan | Lakki | Modela dubbii irraa... liistii moodelota sagalee madaaluu. Toftaa: sagalee baramaa, @cf/myshell-ai/melotts. aura-2 Deepgram Aura 2 dhaafii? |
input | xila/shaxaan | Eeyyee | Barreeffamni dubbisamu: sagalee sakata'aa irratti hamma mallattoo 800ttti, Aura 2 irratti immoo 2,000ttti. |
voice | xila/shaxaan | Lakki | ID sagalee tokko irraa liistii sagalee lallabaa: speaker Auraa akka kan luna (yookaan aura-2-luna-en), ykn afaan MeloTTS (en, es, fr, zh). Maqaan sagaleewwan OpenAI kan akka alloy kennamaniiru akkasumas sagalee dabeessaa moodelichaa kennu. |
language | xila/shaxaan | Lakki | Akka koodii afaaniitti kan fakkeenya ta'an es. Sagalee malee, afaan sanaaf sagalee tokko filata. Sagaleen afaan biraa dubbatu immoo deebisa. 422 voice_language_mismatch, fi afaan moodelliin sun sagalee hin qabneof 422 unsupported_language. |
response_format | xila/shaxaan | Lakki | Sagaleen sirnaa deebi'a. mp3 qofaa. Aura 2 deebisa mp3 (kan akkaataa baramaatti), opus, aac, flac, wav yookaan pcm. |
speed | lakkoofsa | Lakki | Acceptamee fi dhiisame. |
Sagaleen waloo kaffaltii kireetii waloo 3 (30 sats) gaaffii tokkoof ta'a, akka appii keessatti jiruutti. Aura 2
Pro dha, gatiin isaas barreeffama ati ergitu irratti hundaa'a. Qaamni deebii sagaleedha, kan wal fakkaatuun...
Content-Type; gatiin isaa keessa jira X-Nymbot-Cost-Sats header. Yoo moodelli dubbii sun dadhabe, waan tokkoyyuu hin kaffalamuu.
Deebii
HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Nymbot-Cost-Sats: 4.2
X-Nymbot-Balance-Sats: 41055.6
(audio bytes)
| Haala | Yoom |
|---|---|
400 | Sagantii hin jiru; sagantichi dandeettii moodela olitti ga'e (input_too_long); bifa moodelichi hin danda'amne (unsupported_response_format); sagalee hin beekamne (invalid_voice); moodeelii moodeelii dubbii miti (invalid_model). |
422 | Sagaleen afaan kenname hin dubbatu, yookaan moodeelli sagalee isaa hin qabu. |
502 | Moodeelli dubbii sun dadhabe. Wanti tokkoyyuu hin kaffalame. |
cURL
curl https://nymbot.ai/api/v1/audio/speech \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "aura-2", "voice": "luna", "input": "Your invoice has been paid."}' \
--output speech.mp3
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
audio = client.audio.speech.create(
model="aura-2",
voice="luna",
input="Your invoice has been paid.",
)
audio.write_to_file("speech.mp3")
JavaScript
import { writeFile } from "node:fs/promises";
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const audio = await client.audio.speech.create({
model: "aura-2",
voice: "luna",
input: "Your invoice has been paid.",
});
await writeFile("speech.mp3", Buffer.from(await audio.arrayBuffer()));
Moodellota sagalee fi sagaleewwan
Roojiiwwan lammaffaa walitti qabxii filannoo moodeela dubbii fi sagalee, yookaan moodeela barreeffama sagalee gara barreeffamaatti jijjiiruuf fayyadan. Sagalee dubbattoota Aura 2 Ingiliffaa 41 fi afaanota MeloTTS afur qabu jira.
GET https://nymbot.ai/api/v1/audio/models — furtuu hin barbaachisu.
GET https://nymbot.ai/api/v1/audio/voices?language=en — furtuu hin barbaachisu.
| Marsaa | Garaa | Barbaachisa | Ibsa |
|---|---|---|---|
language | string (hordoffii) | Lakki | Afan Oromoof sagalee qofaa. |
model | string (hordoffii) | Lakki | Moodeelii kanaaf sagalee qofa. |
Deebii (sagalee)
{
"object": "list",
"data": [
{ "id": "luna", "name": "Luna", "provider": "deepgram", "model_id": "aura-2", "models": ["aura-2"], "language": "en", "description": "Aura 2 English voice", "gender": "female", "preview_url": null },
{ "id": "en", "name": "MeloTTS English", "provider": "myshell", "model_id": "@cf/myshell-ai/melotts", "models": ["@cf/myshell-ai/melotts", "melotts"], "language": "en", "description": "English (MeloTTS)", "gender": null, "preview_url": null }
]
}
Tarree moodelootaa deebii kennu {"object": "list", "data": {"tts": […], "stt": […]}}.
Modelliin dubbii hundaaf dandeettii isaa, gatii isaa, max_input_chars,
response_formats, languages fi default_voice; moodeelii hiikaa (transcription) hiikaalee isaa kenna, max_file_bytes, max_seconds,
foormatota fi gatii daqiiqaa tokkoof.
cURL
curl https://nymbot.ai/api/v1/audio/models
curl "https://nymbot.ai/api/v1/audio/voices?language=en"
Python
import requests
print(requests.get("https://nymbot.ai/api/v1/audio/models").json())
for voice in requests.get("https://nymbot.ai/api/v1/audio/voices", params={"language": "en"}).json()["data"]:
print(voice["id"], voice["model_id"])
JavaScript
console.log(await (await fetch("https://nymbot.ai/api/v1/audio/models")).json());
const voices = await (await fetch("https://nymbot.ai/api/v1/audio/voices?language=en")).json();
for (const v of voices.data) console.log(v.id, v.model_id);
Sagalee gara barreeffamaatti
Sagalee waraabame Whisper fayyadamuun barreeffamaatti jijjiira. Kun endpoint barreeffamaati OpenAI, kanaafuu
audio.transcriptions.create hojjeta.
POST https://nymbot.ai/api/v1/audio/transcriptions — API key barbaada, yookaan Kaffaltii Lightning gaaffii hundaaf tokkoof. Qaamni sun multipart/form-data.
| Marsaa | Garaa | Barbaachisa | Ibsa |
|---|---|---|---|
file | faayila | Eeyyee | Galmeen, baayitii 256 irraa hanga 25 MB fi daqiiqaa 30 hangaatti: WAV, WebM, MP4 ykn M4A, Ogg ykn Opus, MP3 fi foormaatota biroo Whisper dubbisu. MP3 fi foormaatota biroo dheerinni isaanii dura dursee dubbisuu hin dandeenye 1.8 MB irratti murama. |
model | xila/shaxaan | Lakki | Sagalee ofii whisper, kan inni Whisper Large v3 Turbo ta'ed. whisper-1, whisper-large-v3-turbo fi @cf/openai/whisper-large-v3-turbo Wal fakkaata. |
language | xila/shaxaan | Lakki | Afaan dubbatamu, akka fakkeenyaaf enYoo dacha dabarutti addaan baafamu. |
prompt | xila/shaxaan | Lakki | Maqaa irratti xiyyeeffatan ykn akkataa barreessuu eeggan, fakkeenyaaf maqaa. Lakkoofsa 1,000 jalqabaa qofatu tajaajila. |
response_format | xila/shaxaan | Lakki | json (kan akkaataa baramaatti), text, srt, vtt yookaan verbose_json. |
Faayilaات WAV, WebM, MP4 fi Ogg waliin, dheerinni isaanii waan hunduu dura hojjetamee dura faayila keessaa dubbifama, kanaaf
sagantaan waraabamee daqiiqaa 30 ol ta'e dura duratti (sekondii 3 dabalataatiin) ni رفضama. Dheerinni faayila WAV
sample rate, channels fi sample size isaa irraa dhufa. Dheerinni bifa biroo, fakkeenyaaf MP3,
dura duratti dubbisuun hin danda'amu, kanaaf guddina isaaniitiin ni murtamama: bitrate gadi aanaa
Nymbot yaadu, 8 kbps, daqiiqaa 30 bakka 1.8 MB ti, faayilli guddinaan bifa akkasii ta'e immoo ni رفضama 413
audio_too_long waan hunduma dura hojii jalqabu dura. Sagalee dheeraa WAV, WebM, MP4 ykn Ogg ta'een ergi.
Yoo Whisper yoo ta'ee akkuma kanaan daqiiqaa 30 ol gabaasa, gaaffiin dhiibamee dhiyaata
413 audio_too_long, akkasumas Whisper hojii waan raawwateef, daqiiqaa 30 kaffaltiin ni fudhatama.
Duraa irratti dheerina sagalee itti kaffaltu, sekondii olitti dhihaatuun: dheerina fakkii (file) irraa dubbisame isa dheeraa, dheerina Whisper gabaase, fi dhimma fakkii (file) sanii gadi bu'uun danda'u irratti hundaa'ee, gatii minutii Whisper kaffaltii ajaja fi margin sirrii qabuun, fi gaaffii tokkoof yoo xiqqaate 0.05 credit ta'ee, kaffaltiin kun yoo baajata (balance) mana qabeenyaa (standard) irratti danda'ame irratti, yoo hin danda'amin ammoo Pro irraa kaffalama; a 402 mi'eessaan hundi maal akka barbaadan ni kenna. Appilikeeshinii keessatti, sagalee ergaa barreessuun tola ta'uu danda'a; API irratti garuu yeroo hunda kaffaltiin ni jira. Yoo Whisper dadhabe, kaffaltiin hin jiru.
Deebii
{
"text": "Your invoice has been paid.",
"usage": { "type": "duration", "seconds": 3 },
"nymbot": { "balance": "standard", "charged_credits": 0.05, "charged_sats": 0.5, "balance_credits": 120.35, "balance_sats": 1203.5 }
}
text barreeffama qulqulluu deebisa, srt fi vtt subtitiloota deebisi, fi
verbose_json afaan, yeroo fi kutaa yeroo murtaa'an dabalata. Isaan sadii JSON hin taaneef, gatiin isaanii 'headers' keessatti argama.
| Haala | Yoom |
|---|---|
400 | Faayila hin jiru, faayila sagalee fayyadamuu hin dandeenye qabu (invalid_audio), foormaatii hin beekamne, ykn moodela modelii barreeffama hiikuu (transcription) miti (invalid_model). |
402 | Balansiin lamaan turii hin danda'an. |
413 | Faayilli kun megabaayiti 25 ol dha (file_too_large) ykn waraabni isaa daqiiqaa 30 ol yoo ta'e, ykn, dhimma dhumatiin isaa duraan dubbisuu hin dandeenyeef, 1.8 MB ol (audio_too_long). |
502 | Whisper sagalee sana hin qabne. Wanti tokkoyyuu hin kaffalame. |
cURL
curl https://nymbot.ai/api/v1/audio/transcriptions \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-F [email protected] \
-F model=whisper \
-F response_format=json
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
with open("memo.m4a", "rb") as f:
transcript = client.audio.transcriptions.create(model="whisper", file=f)
print(transcript.text)
JavaScript
import fs from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const transcript = await client.audio.transcriptions.create({
model: "whisper",
file: fs.createReadStream("memo.m4a"),
});
console.log(transcript.text);
Dubbii gara Ingiliffaatti hiikuu
POST https://nymbot.ai/api/v1/audio/translations — API key barbaada, yookaan Kaffaltii Lightning gaaffii hundaaf tokkoof. Qaamni sun multipart/form-data.
Akka barreeffama sanaatti, bakka bu'oota wal-fakkaatan malee language, daangaa fi
gatii, garuu barruun afaan kamiyyuu dubbatame irratti afaan Ingiliffaan deebi'a. SDK-wwan OpenAI kallattiin
waan kana ittiin waamuun... audio.translations.create.
cURL
curl https://nymbot.ai/api/v1/audio/translations \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-F [email protected] \
-F model=whisper
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
with open("nota.m4a", "rb") as f:
translation = client.audio.translations.create(model="whisper", file=f)
print(translation.text)
JavaScript
import fs from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const translation = await client.audio.translations.create({
model: "whisper",
file: fs.createReadStream("nota.m4a"),
});
console.log(translation.text);
Embeddings
Barreeffama gara vektoorotaatti jijjiira barbaaduuf, qulqulleessuuf fi walitti qabuuf. Moodellonni Cloudflare irratti hojjetu kunis qabeenya bu'uuraa (standard balance) fayyadamu.
POST https://nymbot.ai/api/v1/embeddings — API key barbaada, yookaan Kaffaltii Lightning gaaffii hundaaf tokkoof.
| Marsaa | Garaa | Barbaachisa | Ibsa |
|---|---|---|---|
model | xila/shaxaan | Eeyyee | Modiiilii embedding kan... GET /api/v1/models?type=embedding. |
input | string yookaan arraywwan stringii | Eeyyee | Barruu itti galchamu, hanga 100 qabxiiwwan xumura hin qabneetti. Karaa tokko tokkoon (arrays) ni diigama (token_input_unsupported). Galchiin hundi moodeela sanaa waliin deemuun qaba. context_length, tokkanii bakka tokko tokko bytes afur akka ta'anitti lakkaa'ame. |
encoding_format | xila/shaxaan | Lakki | float (kan akkaataa jireenyaa) ykn base64 (little-endian 32-bit floats). |
dimensions | lakkoofsa guutuu | Lakki | Guddiina moodelaa ofii, yookaan moodela kan qabuuf supported_dimensions tokko isaannii; sana booda vektooriin gabaabbachifama unnifi normala taasifama. Kan biroo kamiyyuu ni didama. |
| Moodeela | Dimenshiniwwan | Haala irratti hundaa'e |
|---|---|---|
@cf/baai/bge-m3 | 1024, afaanota hedduu | 8,192 tookenii |
@cf/qwen/qwen3-embedding-0.6b | 1024, afaanota hedduu | 8,192 tookenii |
@cf/baai/bge-large-en-v1.5 | 1024, Afaan Ingiliffaa | 512 tokiniii |
@cf/baai/bge-base-en-v1.5 | 768, Afaan Ingilizii | 512 tokiniii |
@cf/baai/bge-small-en-v1.5 | 384, Ingiliffa | 512 tokiniii |
Tarreen moodelotaa ragaa dhugaa kan ta'etti kanneen argamuu danda'an fi gatii isaanii irratti; EmbeddingGemma Google-ii, yoo gaaffii dhiyaate vektoora gabaabaa waliin, yoo katalaagii keessatti gatii qabaate achis mul'ata. Embeddings tokkinoota (token) galchee irratti madaalamu, fi mi'aannoon kireedii 0.05 gaaffii (request) hundaaf qofa murteeffama, tokko tokko irratti miti, kanaafuu barreeffamoota hedduu gaaffii tokko keessatti walitti qabuun erguun, tokko tokkoon erguu caalaa gatii xiqqaan dhufa.
Deebii
{
"object": "list",
"data": [
{ "object": "embedding", "index": 0, "embedding": [0.0213, -0.0487, 0.0112] }
],
"model": "@cf/baai/bge-m3",
"usage": { "prompt_tokens": 9, "total_tokens": 9 },
"nymbot": { "balance": "standard", "charged_credits": 0.05, "charged_sats": 0.5, "balance_credits": 1204.35, "balance_sats": 12043.5 }
}
| Haala | Yoom |
|---|---|
400 | Sagalee hin jiru ykn sagaleen duwwaa; array tokonii tokkoffaa (token_input_unsupported); 100 irra caala input (too_many_inputs); madda dhimmaatiin (model) yoo danda'u caalaa dheeraan (input_too_long); saba xumuraa moodeelliin kennuu hin dandeenye (unsupported_dimensions). |
402 | Gamaggala bu'uuraa baay'ee gad-aadha. Embeddings gamaggela Pro osoo hin fayyadamne. |
404 | Maqaa sanaan embedding model hin jiru. |
502 | Moodeelli sun dadhabe. Wanti tokkoyyuu hin kaffalame. |
cURL
curl https://nymbot.ai/api/v1/embeddings \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "@cf/baai/bge-m3", "input": ["Lightning invoices expire.", "Invoices on Lightning have a time limit."]}'
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
result = client.embeddings.create(
model="@cf/baai/bge-m3",
input=["Lightning invoices expire.", "Invoices on Lightning have a time limit."],
)
print(len(result.data), len(result.data[0].embedding))
JavaScript
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const result = await client.embeddings.create({
model: "@cf/baai/bge-m3",
input: ["Lightning invoices expire.", "Invoices on Lightning have a time limit."],
});
console.log(result.data.length, result.data[0].embedding.length);