API
UTasks Developer API
«UTasks Developer API» boʻlimiUchinchi tomon xizmatlarini UTasks bilan integratsiya qilish uchun ochiq API.
Ishni boshlash
«Ishni boshlash» boʻlimiAsosiy URL
«Asosiy URL» boʻlimihttps://app.utasks.io/utbBarcha endpointlar /pub/v1/ prefiksi bilan boshlanadi.
Autentifikatsiya
«Autentifikatsiya» boʻlimiAPI Bearer tokendan foydalanadi. Kalit olish uchun @UTasksBot botiga /apikey new buyrugʻini yuboring.
Kalitni har bir soʻrovning sarlavhasida (header) yuboring:
Authorization: Bearer utb_xxxxxxxxxxxxxxxxUlanishni tekshirish
«Ulanishni tekshirish» boʻlimiKalit ishlayotganiga ishonch hosil qiling – profilingizni soʻrang:
GET /utb/pub/v1/profileAuthorization: Bearer utb_...Endpointlar
«Endpointlar» boʻlimiProfil
«Profil» boʻlimiGET /pub/v1/profile
«GET /pub/v1/profile» boʻlimiAPI kalit egasining profilini qaytaradi. Ulanishni tekshirish uchun qulay.
Javob 200 – PubProfileModel obyekti
{ "userId": "abc123", "userName": "ivan", "title": "Ivan Petrov", "role": "PRO", "roleExpireDate": "2025-12-31T00:00:00Z", "locale": "ru", "timeZone": "Europe/Moscow", "timeZoneId": 3}Loyihalar
«Loyihalar» boʻlimiGET /pub/v1/projects
«GET /pub/v1/projects» boʻlimiJoriy foydalanuvchi aʼzo boʻlgan loyihalar.
Javob 200 – PubProjectModel massivi
GET /pub/v1/projects/{id}
«GET /pub/v1/projects/{id}» boʻlimiLoyihani ID boʻyicha olish. Faqat foydalanuvchi aʼzo boʻlgan loyihalar uchun mavjud.
Yoʻl parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id |
string | ✓ | Loyiha ID si |
Javob 200 – PubProjectModel obyekti
GET /pub/v1/projects/{id}/users
«GET /pub/v1/projects/{id}/users» boʻlimiLoyiha aʼzolari va ularning maqomlari. Faqat foydalanuvchi aʼzo boʻlgan loyihalar uchun mavjud.
Yoʻl parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id |
string | ✓ | Loyiha ID si |
Javob 200 – PubProjectUserModel massivi
Vazifalar
«Vazifalar» boʻlimiGET /pub/v1/tasks
«GET /pub/v1/tasks» boʻlimiJoriy foydalanuvchining vazifalari – qamrov yoki loyiha boʻyicha.
Soʻrov parametrlari
| Parametr | Tur | Tavsif |
|---|---|---|
scope |
PubTaskScope |
Vazifalar qamrovi (standart holatda All). projectId berilsa, eʼtiborga olinmaydi |
projectId |
string | Loyiha ID si; faol aʼzolik talab qilinadi |
completed |
boolean | true – ochiq vazifalar oʻrniga bajarilganlarini qaytarish |
q |
string | Qidiruv soʻrovi (nomlar boʻyicha qidiradi) |
Javob 200 – PubTaskModel massivi
Misol
GET /utb/pub/v1/tasks?scope=TodayAuthorization: Bearer utb_...GET /utb/pub/v1/tasks?projectId=abc123&completed=falseAuthorization: Bearer utb_...POST /pub/v1/tasks
«POST /pub/v1/tasks» boʻlimiLoyihada yoki shaxsiy «Kiruvchi»da vazifa yaratish. Ilovada yaratilgan vazifalar kabi messenjerga xuddi shunday bildirishnomalar yuboradi.
Soʻrov tanasi – PubCreateTaskRequest
Javob 200 – PubTaskModel obyekti
Misol
{ "title": "Hisobot tayyorlash", "description": "Choraklik koʻrsatkichlar hisoboti", "projectId": "abc123", "planDate": "2025-08-01T09:00:00Z", "dueDate": "2025-08-05T18:00:00Z", "priority": "High", "assigneeIds": ["user1", "user2"]}GET /pub/v1/tasks/{id}
«GET /pub/v1/tasks/{id}» boʻlimiVazifani ID boʻyicha olish.
Yoʻl parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id |
string | ✓ | Vazifa ID si |
Javob 200 – PubTaskModel obyekti
PATCH /pub/v1/tasks/{id}
«PATCH /pub/v1/tasks/{id}» boʻlimiVazifani qisman yangilash. Faqat siz yuborgan (null boʻlmagan) maydonlar yangilanadi. Boʻsh assigneeIds roʻyxati barcha ijrochilarni olib tashlaydi.
Yoʻl parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id |
string | ✓ | Vazifa ID si |
Soʻrov tanasi – PubUpdateTaskRequest
Javob 200 – PubTaskModel obyekti
Misol – holat va muhimlikni oʻzgartirish
{ "status": "InProgress", "priority": "Highest"}Misol – rejalashtirilgan sanani tozalash
{ "clearPlanDate": true}DELETE /pub/v1/tasks/{id}
«DELETE /pub/v1/tasks/{id}» boʻlimiVazifani oʻchirish. Vazifa muallifi va loyiha administratorlariga ruxsat etilgan.
Yoʻl parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id |
string | ✓ | Vazifa ID si |
POST /pub/v1/tasks/{id}/complete
«POST /pub/v1/tasks/{id}/complete» boʻlimiVazifani bajarilgan deb belgilash. Muallif butun vazifani yopadi; ijrochi faqat oʻz qismini belgilaydi – barcha ijrochilar oʻz qismlarini bajargach, vazifa umumiy yopiladi. Muallif va ijrochilar uchun mavjud.
Yoʻl parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id |
string | ✓ | Vazifa ID si |
POST /pub/v1/tasks/{id}/uncomplete
«POST /pub/v1/tasks/{id}/uncomplete» boʻlimiBajarilgan vazifani barcha ishtirokchilar uchun qayta ochish; holat New ga qaytariladi. Muallif va ijrochilar uchun mavjud.
Yoʻl parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id |
string | ✓ | Vazifa ID si |
GET /pub/v1/tasks/{id}/history
«GET /pub/v1/tasks/{id}/history» boʻlimiVazifa oʻzgarishlari tarixi va izohlar, standart holatda eskisidan yangisiga qarab.
Yoʻl parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id |
string | ✓ | Vazifa ID si |
Soʻrov parametrlari
| Parametr | Tur | Tavsif |
|---|---|---|
filter |
string | Tarix yozuvlari filtri |
sort |
string | Yozuvlarni saralash tartibi |
Javob 200 – PubTaskHistoryItemModel massivi
POST /pub/v1/tasks/{id}/attachassignee
«POST /pub/v1/tasks/{id}/attachassignee» boʻlimiJoriy foydalanuvchini (API kalit egasini) vazifa ijrochisi sifatida qoʻshish.
Yoʻl parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id |
string | ✓ | Vazifa ID si |
POST /pub/v1/tasks/{id}/publish
«POST /pub/v1/tasks/{id}/publish» boʻlimiVazifa kartasini xabar sifatida loyiha chatiga (ommaviy loyihalar uchun) yoki muallifning shaxsiy chatiga chop etish.
Yoʻl parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id |
string | ✓ | Vazifa ID si |
POST /pub/v1/tasks/{id}/comments
«POST /pub/v1/tasks/{id}/comments» boʻlimiVazifaga matnli izoh qoʻshish.
Yoʻl parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id |
string | ✓ | Vazifa ID si |
Soʻrov tanasi – PubCommentRequest
{ "text": "Tayyor, tekshirib koʻring"}Maʼlumotlar modellari
«Maʼlumotlar modellari» boʻlimiPubProfileModel
«PubProfileModel» boʻlimiAPI kalit egasi boʻlgan foydalanuvchi profili.
| Maydon | Tur | Tavsif |
|---|---|---|
userId |
string | Foydalanuvchi ID si |
userName |
string | Foydalanuvchi nomi (username) |
title |
string | Koʻrsatiladigan ism |
role |
string | Tarif / rol |
roleExpireDate |
string (ISO 8601) | Tarif tugash sanasi |
locale |
string | Interfeys tili |
timeZone |
string | Vaqt mintaqasi (IANA) |
timeZoneId |
number | Vaqt mintaqasi ID si |
PubProjectModel
«PubProjectModel» boʻlimi| Maydon | Tur | Tavsif |
|---|---|---|
id |
string | Loyiha ID si |
name |
string | Loyiha nomi |
description |
string | Tavsif |
type |
UTProjectType |
Loyiha turi |
PubProjectUserModel
«PubProjectUserModel» boʻlimi| Maydon | Tur | Tavsif |
|---|---|---|
id |
string | Foydalanuvchi ID si |
userName |
string | Foydalanuvchi nomi (username) |
title |
string | Koʻrsatiladigan ism |
status |
UTUserStatus |
Aʼzoning loyihadagi maqomi |
PubUserModel
«PubUserModel» boʻlimiFoydalanuvchi haqida qisqa maʼlumot (vazifalar ichida ishlatiladi).
| Maydon | Tur | Tavsif |
|---|---|---|
id |
string | Foydalanuvchi ID si |
userName |
string | Foydalanuvchi nomi (username) |
title |
string | Koʻrsatiladigan ism |
PubTaskModel
«PubTaskModel» boʻlimi| Maydon | Tur | Tavsif |
|---|---|---|
id |
string | Vazifa ID si |
number |
string | Odam oʻqiy oladigan vazifa raqami, masalan UT-12 |
title |
string | Vazifa nomi |
description |
string | Tavsif |
status |
UTTaskStatus |
Holat |
priority |
UTTaskPriority |
Muhimlik |
projectId |
string | null | Loyiha ID si; shaxsiy «Kiruvchi» vazifalari uchun null |
projectName |
string | null | Loyiha nomi; shaxsiy «Kiruvchi» uchun null |
planDate |
string | null | Rejalashtirilgan sana (ISO 8601) |
planCron |
string | null | Rejalashtirilgan sana uchun takrorlanish qoidasi |
dueDate |
string | null | Muddat (ISO 8601) |
isCompleted |
boolean | Vazifa umumiy bajarilgan. Bir nechta ijrochili vazifalarda har biri oʻz qismini belgilagandan keyingina true boʻladi |
completedDate |
string | null | Bajarilgan sana |
completedUserIds |
string[] | Oʻz qismini bajarilgan deb belgilagan ijrochilarning ID lari |
personalCompleted |
boolean | Vazifa joriy foydalanuvchi uchun bajarilgan: yo umumiy bajarilgan, yo foydalanuvchi oʻz qismini belgilagan |
author |
PubUserModel |
Vazifa muallifi |
assignees |
PubUserModel[] |
Ijrochilar |
PubCreateTaskRequest
«PubCreateTaskRequest» boʻlimi| Maydon | Tur | Majburiy | Tavsif |
|---|---|---|---|
title |
string | ✓ | Vazifa nomi, 5000 belgigacha |
description |
string | null | Tavsif, 5000 belgigacha | |
projectId |
string | null | Loyiha ID si; shaxsiy «Kiruvchi» uchun koʻrsatmang | |
planDate |
string | null | Rejalashtirilgan sana (ISO 8601) | |
dueDate |
string | null | Muddat; rejalashtirilgan sanadan oldin boʻlishi mumkin emas | |
planCron |
string | null | Rejalashtirilgan sana uchun takrorlanish qoidasi | |
priority |
UTTaskPriority |
Muhimlik | |
assigneeIds |
string[] | null | Ijrochilar ID lari. Ular loyiha aʼzolari boʻlishi kerak |
PubUpdateTaskRequest
«PubUpdateTaskRequest» boʻlimiBarcha maydonlar ixtiyoriy. Faqat oʻzgartirmoqchi boʻlganlaringizni yuboring.
| Maydon | Tur | Tavsif |
|---|---|---|
title |
string | null | Yangi nom, 5000 belgigacha |
description |
string | null | Yangi tavsif, 5000 belgigacha |
planDate |
string | null | Yangi rejalashtirilgan sana |
dueDate |
string | null | Yangi muddat; rejalashtirilgan sanadan oldin boʻlishi mumkin emas |
clearPlanDate |
boolean | Rejalashtirilgan sanani tozalash (planDate dan ustun turadi) |
clearDueDate |
boolean | Muddatni tozalash (dueDate dan ustun turadi) |
planCron |
string | null | Yangi takrorlanish qoidasi |
priority |
UTTaskPriority |
Yangi muhimlik |
status |
UTTaskStatus |
Yangi holat |
assigneeIds |
string[] | null | Ijrochilarning yangi toʻliq roʻyxati (boʻsh massiv hammani olib tashlaydi) |
PubCommentRequest
«PubCommentRequest» boʻlimi| Maydon | Tur | Majburiy | Tavsif |
|---|---|---|---|
text |
string | ✓ | Izoh matni |
PubCommentModel
«PubCommentModel» boʻlimi| Maydon | Tur | Tavsif |
|---|---|---|
text |
string | Izoh matni |
createDate |
string (ISO 8601) | Yaratilgan sana |
PubTaskHistoryItemModel
«PubTaskHistoryItemModel» boʻlimiVazifa oʻzgarishlari tarixidagi yozuv.
| Maydon | Tur | Tavsif |
|---|---|---|
date |
string (ISO 8601) | Hodisa sanasi |
author |
PubUserModel |
Oʻzgarish muallifi |
comment |
string | Izoh matni (agar bu izoh boʻlsa) |
change |
PubTaskHistoryChangeModel |
Maydon oʻzgarishi tafsilotlari |
PubTaskHistoryChangeModel
«PubTaskHistoryChangeModel» boʻlimi| Maydon | Tur | Tavsif |
|---|---|---|
field |
string | Oʻzgargan maydon nomi |
oldValue |
string | Eski qiymat |
newValue |
string | Yangi qiymat |
Sanab oʻtiladigan qiymatlar
«Sanab oʻtiladigan qiymatlar» boʻlimiUTTaskStatus
«UTTaskStatus» boʻlimiVazifa holati.
| Qiymat | Tavsif |
|---|---|
New |
Yangi |
ToDo |
Rejalashtirilgan |
InProgress |
Bajarilmoqda |
Resolved |
Hal qilingan |
Review |
Koʻrib chiqish |
Approved |
Tasdiqlangan |
Closed |
Yopilgan |
UTTaskPriority
«UTTaskPriority» boʻlimiVazifa muhimligi.
| Qiymat | Tavsif |
|---|---|
None |
Belgilanmagan |
Lowest |
Eng past |
Low |
Past |
Medium |
Oʻrta |
High |
Yuqori |
Highest |
Eng yuqori |
UTProjectType
«UTProjectType» boʻlimiLoyiha turi.
| Qiymat | Tavsif |
|---|---|
Private |
Shaxsiy |
Public |
Ommaviy (guruh) |
Dynamic |
Dinamik |
UTUserStatus
«UTUserStatus» boʻlimiAʼzoning loyihadagi roli.
| Qiymat | Tavsif |
|---|---|
None |
Rolsiz |
Creator |
Yaratuvchi |
Administrator |
Administrator |
Member |
Aʼzo |
PubTaskScope
«PubTaskScope» boʻlimiVazifalarni filtrlash qamrovi.
| Qiymat | Tavsif |
|---|---|
All |
Barcha vazifalar |
Inbox |
Kiruvchi |
Today |
Bugungi |
Tomorrow |
Ertangi |
Week |
Shu haftadagi |
Completed |
Bajarilganlar |
Foydalanish misollari
«Foydalanish misollari» boʻlimiBugungi vazifalarni olish
«Bugungi vazifalarni olish» boʻlimiGET /utb/pub/v1/tasks?scope=TodayAuthorization: Bearer utb_...Shaxsiy «Kiruvchi»da vazifa yaratish
«Shaxsiy «Kiruvchi»da vazifa yaratish» boʻlimiPOST /utb/pub/v1/tasksAuthorization: Bearer utb_...Content-Type: application/json
{ "title": "Mijozga qoʻngʻiroq qilish", "planDate": "2025-08-01T10:00:00Z", "priority": "High"}Loyihada ijrochilari bilan vazifa yaratish
«Loyihada ijrochilari bilan vazifa yaratish» boʻlimiPOST /utb/pub/v1/tasksAuthorization: Bearer utb_...Content-Type: application/json
{ "title": "PR #42 ni koʻrib chiqish", "projectId": "proj_abc", "assigneeIds": ["user_1", "user_2"], "dueDate": "2025-08-03T18:00:00Z", "priority": "Medium"}Vazifani «Bajarilmoqda» holatiga oʻtkazish
«Vazifani «Bajarilmoqda» holatiga oʻtkazish» boʻlimiPATCH /utb/pub/v1/tasks/task_xyzAuthorization: Bearer utb_...Content-Type: application/json
{ "status": "InProgress"}Vazifani bajarish
«Vazifani bajarish» boʻlimiPOST /utb/pub/v1/tasks/task_xyz/completeAuthorization: Bearer utb_...Izoh qoʻshish
«Izoh qoʻshish» boʻlimiPOST /utb/pub/v1/tasks/task_xyz/commentsAuthorization: Bearer utb_...Content-Type: application/json
{ "text": "Tayyor, koʻrib chiqishingizni kutaman"}Xato kodlari
«Xato kodlari» boʻlimi| Kod | Tavsif |
|---|---|
400 |
Notoʻgʻri soʻrov – soʻrov tanasini tekshiring |
401 |
Avtorizatsiyadan oʻtilmagan – API kalitingizni tekshiring |
403 |
Taqiqlangan – bu amal uchun huquqlar yetarli emas |
404 |
Obyekt topilmadi |
500 |
Serverning ichki xatosi |
Xato tanasi ProblemDetails formatida qaytariladi:
{ "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1", "title": "Bad Request", "status": 400, "detail": "Title is required"}