MirzoUlugbekTemur AI API bilan ko'proq imkoniyat yarating
Xavfsizlik tekshiruvlari, TM balans nazorati va parchalovchi paketlarni bitta korporativ API standartida ulang.
Overview
Tez kirish
Barcha biznes so'rovlari POST metodi, JSON javobi va yagona autentifikatsiya usulidan foydalanadi.5 daqiqada birinchi so'rovni yuboring.
API key + Project ID AuthenticationBearer key va Project ID orqali xavfsiz ulanish.
Server-side only SDKsLinux, Windows va Android parchalovchilarini oling.
PHP, Python, Go, Rust... Error CodesXatolarni tushunish va tez tuzatish.
request_id bilanXavfsiz ulanish
Autentifikatsiya
Temur AI public API hozir Bearer API key va Project ID juftligidan foydalanadi.AuthorizationMajburiyBearer tm_live_...Secret API key. Faqat serverda saqlang.X-Project-IDMajburiyTMPRJ-...Loyihaning public identifikatori.Content-TypeScan uchunapplication/jsonJSON body yuborilganda talab qilinadi.AcceptIxtiyoriyapplication/jsonJSON javob kutilishini bildiradi.Birinchi integratsiya
Tezkor boshlash
Project ID va API keyni muhit o'zgaruvchisi sifatida kiriting, keyin balans endpointini chaqiring.curl -X POST https://api.temurai.uz/v1/balance \
-H "Authorization: Bearer $TEMURAI_API_KEY" \
-H "X-Project-ID: $TEMURAI_PROJECT_ID"const javob = await fetch("https://api.temurai.uz/v1/balance", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.TEMURAI_API_KEY,
"X-Project-ID": process.env.TEMURAI_PROJECT_ID
}
});
const natija = await javob.json();import os, requests
javob = requests.post(
"https://api.temurai.uz/v1/balance",
headers={
"Authorization": f"Bearer {os.environ['TEMURAI_API_KEY']}",
"X-Project-ID": os.environ["TEMURAI_PROJECT_ID"]
},
timeout=15
)
natija = javob.json()req, err := http.NewRequest(http.MethodPost,
"https://api.temurai.uz/v1/balance", nil)
if err != nil { log.Fatal(err) }
req.Header.Set("Authorization", "Bearer "+os.Getenv("TEMURAI_API_KEY"))
req.Header.Set("X-Project-ID", os.Getenv("TEMURAI_PROJECT_ID"))
javob, err := http.DefaultClient.Do(req)API ma'lumotnomasi
Endpointlar
Har bir endpoint uchun auth, parametr, javob, xato va limit qoidalari shu yerda berilgan.POST/v1/balanceTM balansini olishLoyiha egasining joriy balansini qaytaradi.60/min
So'rov headerlari
AuthorizationstringMajburiyBearer API key.X-Project-IDstringMajburiyPublic loyiha ID.Muvaffaqiyatli javob
{
"object": "balance",
"project_id": "TMPRJ-ABCD-EF12-3456-GHJK",
"balance": { "available": 100, "currency": "TM" },
"updated_at": "2026-06-19T09:00:00Z",
"request_id": "req_01J..."
}balance.availableHisobdagi TM miqdori. Butun son.balance.currencyPlatforma valyutasi, har doim TM.updated_atBalans yangilangan ISO 8601 UTC vaqti.request_idDiagnostika va yordam xizmati uchun noyob identifikator.POST/v1/scanAI xavfsizlik tekshiruvini bajarishBitta endpointda IP yoki .zstd fayl tahlili.20/min
multipart/form-datamodel va file maydonlarini yuboring.
application/jsonmodel va ip maydonlarini yuboring.
Fayl tekshiruvi — multipart
modelstringMajburiyMirzoUlugbek yoki AmirTemur.filebinaryMajburiyHaqiqiy Zstandard frame bo'lgan .zstd fayl. Maksimal siqilgan hajm 10240 KB.AmirTemurFayl yuborish namunalari
curl -X POST https://api.temurai.uz/v1/scan \
-H "Authorization: Bearer $TEMURAI_API_KEY" \
-H "X-Project-ID: $TEMURAI_PROJECT_ID" \
-F "model=MirzoUlugbek" \
-F "file=@sample.zstd;type=application/zstd"import fs from "node:fs/promises";
const form = new FormData();
form.append("model", "MirzoUlugbek");
form.append("file", new Blob([await fs.readFile("sample.zstd")]), "sample.zstd");
const javob = await fetch("https://api.temurai.uz/v1/scan", {
method: "POST",
headers: { Authorization: "Bearer " + apiKey, "X-Project-ID": projectId },
body: form
});with open("sample.zstd", "rb") as fayl:
javob = requests.post("https://api.temurai.uz/v1/scan",
headers={"Authorization": f"Bearer {api_key}", "X-Project-ID": project_id},
data={"model": "MirzoUlugbek"},
files={"file": ("sample.zstd", fayl, "application/zstd")}, timeout=45)$fayl = new CURLFile("sample.zstd", "application/zstd", "sample.zstd");
$curl = curl_init("https://api.temurai.uz/v1/scan");
curl_setopt_array($curl, [CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer ".$apiKey, "X-Project-ID: ".$projectId],
CURLOPT_POSTFIELDS => ["model" => "MirzoUlugbek", "file" => $fayl]]);
$javob = curl_exec($curl);var body bytes.Buffer
writer := multipart.NewWriter(&body)
_ = writer.WriteField("model", "MirzoUlugbek")
part, _ := writer.CreateFormFile("file", "sample.zstd")
fayl, _ := os.Open("sample.zstd")
defer fayl.Close()
_, _ = io.Copy(part, fayl)
_ = writer.Close()
req, _ := http.NewRequest(http.MethodPost, "https://api.temurai.uz/v1/scan", &body)
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("X-Project-ID", projectID)
req.Header.Set("Content-Type", writer.FormDataContentType())
javob, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer javob.Body.Close()Mirzo javobi
{
"model": "MirzoUlugbek",
"input": { "type": "zstd", "compressed_bytes": 7340032 },
"billing": {
"charged_tm": 38,
"base_tm": 10,
"tier_1_units": 8,
"tier_1_tm": 16,
"tier_2_units": 4,
"tier_2_tm": 12,
"balance_remaining": 162
},
"result": { "verdict": "clean", "label": "Toza" }
}Model javobi farqi
Faqat zararli, shubhali yoki toza hukmini qaytaradi.
AmirTemurHukm, xavf dalillari, signallar va chuqur xulosani qaytaradi. Ichki model yo'li, versiya, threshold, ensemble va trust yadrosi berilmaydi.
IP / Host tekshiruvi — JSON
modelstringMajburiyAlXorazmiy yoki Manguberdi.ipstringMajburiyToza public IPv4 yoki IPv6. URL, CIDR va port qabul qilinmaydi.AlXorazmiyManguberdiSo'rov JSON
{
"model": "AlXorazmiy",
"ip": "13.140.150.247"
}Billing javobi
{
"model": "AlXorazmiy",
"billing": {
"charged_tm": 10,
"balance_remaining": 90
}
}Manguberdi so'rovi
{
"model": "Manguberdi",
"ip": "152.53.225.172"
}Manguberdi javobi
{
"model": "Manguberdi",
"billing": {
"charged_tm": 50,
"balance_remaining": 150
},
"result": {
"host": "152.53.225.172",
"profile_type": "full",
"risk": "medium"
}
}IP rejimi uchun kod namunalari
curl -X POST https://api.temurai.uz/v1/scan \
-H "Authorization: Bearer $TEMURAI_API_KEY" \
-H "X-Project-ID: $TEMURAI_PROJECT_ID" \
-H "Content-Type: application/json" \
-d '{"model":"AlXorazmiy","ip":"13.140.150.247"}'const javob = await fetch("https://api.temurai.uz/v1/scan", {
method: "POST",
headers: { Authorization: "Bearer " + process.env.TEMURAI_API_KEY,
"X-Project-ID": process.env.TEMURAI_PROJECT_ID,
"Content-Type": "application/json" },
body: JSON.stringify({ model: "AlXorazmiy", ip: "13.140.150.247" })
});javob = requests.post("https://api.temurai.uz/v1/scan",
headers={"Authorization": f"Bearer {api_key}", "X-Project-ID": project_id},
json={"model": "AlXorazmiy", "ip": "13.140.150.247"}, timeout=15)$curl = curl_init("https://api.temurai.uz/v1/scan");
curl_setopt_array($curl, [CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer ".$apiKey,
"X-Project-ID: ".$projectId, "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode(["model" => "AlXorazmiy", "ip" => "13.140.150.247"])]);HttpRequest sorov = HttpRequest.newBuilder(URI.create("https://api.temurai.uz/v1/scan"))
.header("Authorization", "Bearer " + apiKey).header("X-Project-ID", projectId)
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("{\"model\":\"AlXorazmiy\",\"ip\":\"13.140.150.247\"}"))
.build();body := strings.NewReader(`{"model":"AlXorazmiy","ip":"13.140.150.247"}`)
req, _ := http.NewRequest(http.MethodPost, "https://api.temurai.uz/v1/scan", body)
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("X-Project-ID", projectID)
req.Header.Set("Content-Type", "application/json")let javob = reqwest::Client::new().post("https://api.temurai.uz/v1/scan")
.bearer_auth(api_key).header("X-Project-ID", project_id)
.json(&serde_json::json!({"model":"AlXorazmiy", "ip":"13.140.150.247"}))
.send().await?;client.DefaultRequestHeaders.Authorization = new("Bearer", apiKey);
client.DefaultRequestHeaders.Add("X-Project-ID", projectId);
var body = JsonContent.Create(new { model = "AlXorazmiy", ip = "13.140.150.247" });
var javob = await client.PostAsync("https://api.temurai.uz/v1/scan", body);val sorov = Request.Builder().url("https://api.temurai.uz/v1/scan")
.addHeader("Authorization", "Bearer $apiKey").addHeader("X-Project-ID", projectId)
.post("{\"model\":\"AlXorazmiy\",\"ip\":\"13.140.150.247\"}"
.toRequestBody("application/json".toMediaType())).build()var sorov = URLRequest(url: URL(string: "https://api.temurai.uz/v1/scan")!)
sorov.httpMethod = "POST"
sorov.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
sorov.setValue(projectId, forHTTPHeaderField: "X-Project-ID")
sorov.httpBody = try JSONEncoder().encode(["model":"AlXorazmiy", "ip":"13.140.150.247"])final javob = await http.post(Uri.parse('https://api.temurai.uz/v1/scan'),
headers: {'Authorization': 'Bearer $apiKey', 'X-Project-ID': projectId,
'Content-Type': 'application/json'},
body: jsonEncode({'model':'AlXorazmiy', 'ip':'13.140.150.247'}));Umumiy javob tuzilishi
objectObyekt turi: scan.request_idHar bir so'rovning noyob diagnostika IDsi.modelTekshiruvni bajargan AI modeli.inputFayl rejimida compressed bytes va SHA-256; IP rejimida natija ichida IP profili.billing.charged_tmMuvaffaqiyatli tekshiruv uchun yechilgan TM.resultTanlangan modelga mos, ichki yadro ma'lumotlaridan tozalangan natija.Muammolarni boshqarish
Xatolar ma'lumotnomasi
Xato javobi har doim HTTP status, ichki code, tushunarli message va request_id qaytaradi.{
"error": {
"code": "unauthorized",
"message": "X-Project-ID yoki API key noto'g'ri.",
"request_id": "req_01J..."
}
}invalid_requestJSON yoki majburiy maydon noto'g'ri.Body va Content-Type'ni tekshiring.Yo'qinvalid_zstdFayl Zstandard frame emas yoki ichida JSON obyekt yo'q.To'g'ri yaratilgan .zstd fayl yuboring.Yo'qunauthorizedProject ID yoki API key mos emas.Headerlar va kalit holatini tekshiring.Yo'qinsufficient_balanceModel narxi uchun TM yetmaydi.Balansni to'ldiring.To'ldirgachmethod_not_allowedPOST o'rniga boshqa metod yuborilgan.POST metodidan foydalaning.Yo'qpayload_too_largeSiqilgan .zstd fayl 10240 KB dan katta.Faylni limit ichida tayyorlang.Yo'qunsupported_ipXususiy, mahalliy yoki ajratilmagan IP.Ochiq IPv4 yoki IPv6 yuboring.Yo'qrate_limit_exceededDaqiqalik IP limiti tugagan.Retry-After vaqtini kuting.Hainternal_errorVaqtinchalik ichki xatolik.request_id bilan yordam xizmatiga murojaat qiling.Hascan_service_unavailableTanlangan tahlil xizmati javob bermadi.Qisqa kutib qayta yuboring; TM qaytariladi.Hamodel_unavailableModel vaqtincha faol emas.Status tiklanishini kuting.HaTrafik nazorati
So'rov limitlari
Limitlar client IP bo'yicha qo'llanadi va har bir javobda holat headerlari qaytariladi.RateLimit-Limit20Joriy oynadagi umumiy limit.Monitoringga yozing.RateLimit-Remaining17Qolgan so'rovlar soni.0 ga yaqinlashsa sekinlashtiring.RateLimit-Reset1781878725Limit tiklanadigan Unix vaqt.Scheduler uchun ishlating.Retry-After42429 dan keyingi kutish soniyasi.Exponential backoff qo'llang.Parchalovchi paketlar
SDK va parchalovchi yadro
Operatsion tizimingizga mos paketni yuklab oling. Har bir zip ichida ishlatish bo'yicha yo'riqnoma, asosiy parchalovchi yadro va integratsiya namunalari bo'ladi.Kerakli parchalovchini tanlang
Linux, Windows va Android uchun paketlar alohida beriladi. Fayl nomidagi platforma, protsessor turi va versiya sizga mos buildni tez tanlashga yordam beradi.
Kerakli parchalovchi paketni yuklab oling. Paket ichida ishlatish yo'riqnomasi, asosiy parchalovchi yadro va integratsiya namunalarini topasiz.
Kerakli parchalovchi paketni yuklab oling. Paket ichida ishlatish yo'riqnomasi, asosiy parchalovchi yadro va integratsiya namunalarini topasiz.
Kerakli parchalovchi paketni yuklab oling. Paket ichida ishlatish yo'riqnomasi, asosiy parchalovchi yadro va integratsiya namunalarini topasiz.
Paket ichida qaysi buyruq bilan parchalash, qanday konfiguratsiya berish va natijani qanday APIga yuborish izohlanadi.
Platformaga mos binary/yadro fayli .zstd tayyorlash jarayonining markaziy qismi sifatida beriladi.
PHP, Python, Node.js, Go, Rust, C++, Flutter, Java, Kotlin va React Native uchun minimal integratsiya parchalari paket ichida joylashadi.
Real ish muhiti standarti
Xavfsizlik va eng yaxshi amaliyotlar
API integratsiyasi faqat ishlashi emas, kalitlar, qayta urinish va audit jihatidan ham boshqarilishi kerak.Maxfiy kalitni serverda saqlang
Muhit o'zgaruvchisi yoki maxfiy ma'lumotlar boshqaruvchisidan foydalaning. Jurnallarda kalitni niqoblang.
Kutish muddatini belgilang
Balans uchun 10 soniya, tekshiruv uchun kamida 15 soniyalik mijoz kutish muddati tavsiya etiladi.
Faqat xavfsiz qayta urinish
429, 500, 502 va 503 holatlarida kutish oralig'ini bosqichma-bosqich oshiring. 4xx tekshiruv xatolarini qayta yubormang.
Request IDni saqlang
Har bir API xatosidagi request_id yordam va audit jarayonini tezlashtiradi.
Kalitni almashtiring
Kalit oshkor bo'lsa yoki xodim almashsa, uni darhol qayta yarating.
Balansni kuzating
Tekshiruvdan oldin balansni tekshirib, insufficient_balance holatiga tayyor bo'ling.
Hodisalar
Webhooklar
Public webhook endpointlari hozircha mavjud emas.Asinxron hodisalar keyingi versiyada
Webhooklar e'lon qilinganda imzo verifikatsiyasi, qayta ijrodan himoya, hodisalar katalogi va qayta urinish siyosati shu bo'limda hujjatlashtiriladi.
Yordam
Ko'p so'raladigan savollar
Integratsiyada eng ko'p uchraydigan savollarga qisqa javoblar.API keyni qayta ko'rish mumkinmi?
Yo'q. Maxfiy kalit faqat yaratilgan yoki qayta yaratilgan paytda bir marta ko'rsatiladi.
Tekshiruv xato tugasa TM yechiladimi?
Ichki tahlil xatosida rezerv qilingan TM avtomatik qaytariladi. Hisobni tiklash xatosida request_id bilan yordam xizmatiga murojaat qiling.
Xususiy IP yuborish mumkinmi?
Yo'q. Faqat ochiq IPv4 va IPv6 manzillar qabul qilinadi.
API key qayerda saqlanishi kerak?
Faqat serverdagi muhit o'zgaruvchisi yoki maxfiy ma'lumotlar boshqaruvchisida.
Atamalar
Lug'at
Versiya tarixi
O'zgarishlar jurnali
Manguberdi host full profiling
POST /v1/scan orqali 50 TM billing, full host tahlil va cache diagnostikasidan tozalangan javob qo'shildi.
AlXorazmiy IP profiling
POST /v1/scan, 10 TM billing, audit loglari va natijalarni saqlash qo'shildi.
Balans API
POST /v1/balance, Bearer + Project ID auth va IP rate limit ishga tushirildi.
Yordam markazi