Download OpenAPI specification:
SkillSwap бол оюутнууд хоорондоо ур чадвараа заах, сурах платформ. Session-ы төлбөрийг платформ доторх credit-ээр тооцно. Энэ API нь хайлт, session товлолт, check-in, credit үлдэгдэл, no-show мэдээлэл болон webhook бүртгэлийг хамарна.
Нэвтэрсний дараа access_token-ыг Swagger UI-ийн Authorize товчинд paste хийж Try it out ашиглана.
| email required | string <email> |
| password required | string <password> |
{- "email": "oyuntsetseg@num.edu.mn",
- "password": "your_account_password"
}{- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example",
- "token_type": "Bearer",
- "expires_in": 3600
}Үр дүнг үнэлгээгээр (өндрөөс нам) эрэмбэлнэ. Хариу 3 секундээс хэтрэхгүй (NFR-01).
| skill | string Example: skill=Франц хэл Ур чадварын нэр. skill эсвэл category-ийн аль нэг заавал байна |
| category | string Enum: "Хэл" "Программчлал" "Дизайн" Example: category=Хэл Ур чадварын ангилал |
| min_rating | number [ 1 .. 5 ] Example: min_rating=4 Хамгийн бага дундаж үнэлгээ (1-5) |
| available_from | string <date-time> Example: available_from=2026-10-12T14:00:00+08:00 Боломжит эхлэх цаг (ISO 8601) |
{- "results": [
- {
- "user_id": "usr_4f2a91",
- "name": "Бат-Эрдэнэ",
- "skill": "Франц хэл",
- "avg_rating": 4.8,
- "completed_sessions": 23,
- "no_show_rate": 0.04,
- "category": "Хэл"
}
]
}Огноо, цаг, credit хэмжээг санал болгоно. Нөгөө тал зөвшөөрч, татгалзаж эсвэл өөрчилж санал болгоно (FR-04).
| teacher_id required | string |
| skill required | string |
| start_time required | string <date-time> |
| end_time required | string <date-time> |
| credits required | integer >= 1 |
{- "teacher_id": "usr_4f2a91",
- "skill": "Франц хэл",
- "start_time": "2026-10-12T14:00:00+08:00",
- "end_time": "2026-10-12T15:00:00+08:00",
- "credits": 5
}{- "session_id": "ses_7c31d0",
- "teacher_id": "usr_4f2a91",
- "learner_id": "usr_b82e17",
- "skill": "Франц хэл",
- "start_time": "2026-10-12T14:00:00+08:00",
- "end_time": "2026-10-12T15:00:00+08:00",
- "credits": 5,
- "status": "proposed",
- "proposed_by": "usr_b82e17",
- "checkins": {
- "teacher": false,
- "learner": false
}, - "completed_at": null,
- "ratings": { },
- "flag_id": null
}Session "confirmed" төлөвтэй байх ёстой (нөгөө тал зөвшөөрсний дараа). Хоёр тал тус тусдаа check-in хийснээр session "дууссан" болж, credit автоматаар шилжинэ (FR-06, FR-07). 24 цагт зөвхөн нэг тал хийвэл "unconfirmed" төлөвт орно.
| sessionId required | string Example: ses_7c31d0 Session-ы ID |
| role required | string Enum: "teacher" "learner" Check-in хийж буй талын үүрэг |
{- "role": "learner"
}{- "session_id": "ses_7c31d0",
- "teacher_id": "usr_4f2a91",
- "learner_id": "usr_b82e17",
- "skill": "Франц хэл",
- "start_time": "2026-10-12T14:00:00+08:00",
- "end_time": "2026-10-12T15:00:00+08:00",
- "credits": 5,
- "status": "completed",
- "proposed_by": "usr_b82e17",
- "checkins": {
- "teacher": true,
- "learner": true
}, - "completed_at": "2026-10-12T15:02:11.482Z",
- "ratings": { },
- "flag_id": null
}Session дууссанаас хойш 1 цагийн дотор мэдээлнэ. 30 хоногт 3 удаа мэдээлэгдвэл 7 хоног хязгаарлана (FR-10).
| sessionId required | string Example: ses_7c31d0 Session-ы ID |
| absent_user_id required | string Ирээгүй хэрэглэгчийн ID |
| comment | string Нэмэлт тайлбар |
{- "absent_user_id": "usr_b82e17",
- "comment": "15 минут хүлээсэн ч холбогдсонгүй"
}{- "session_id": "ses_7c31d0",
- "status": "no_show_reported",
- "absent_user_restricted": false
}Нөгөө тал зөвшөөрөх (accept), татгалзах (decline) эсвэл өөрчилж санал болгоно (counter) (FR-04). Зөвшөөрөхөд Calendar event үүсэж, сануулга товлогдоно (FR-11, FR-15).
| sessionId required | string Example: ses_7c31d0 Session-ы ID |
| action required | string Enum: "accept" "decline" "counter" |
| credits | integer >= 1 |
| start_time | string <date-time> |
| end_time | string <date-time> |
{- "action": "accept"
}{- "session_id": "ses_7c31d0",
- "teacher_id": "usr_4f2a91",
- "learner_id": "usr_b82e17",
- "skill": "Франц хэл",
- "start_time": "2026-10-12T14:00:00+08:00",
- "end_time": "2026-10-12T15:00:00+08:00",
- "credits": 5,
- "status": "confirmed",
- "proposed_by": "usr_b82e17",
- "checkins": {
- "teacher": false,
- "learner": false
}, - "completed_at": null,
- "ratings": { },
- "flag_id": null
}Session-ы үйл явдлын мэдэгдлийг өөрийн URL руу хүлээн авна.
| callback_url required | string <uri> |
| events required | Array of strings Items Enum: "session.confirmed" "session.completed" "session.cancelled" "credit.transferred" |
{- "events": [
- "session.confirmed",
- "session.completed"
]
}{- "webhook_id": "whk_19ab40",
- "events": [
- "session.confirmed",
- "session.completed"
]
}Нэр, утас, имэйл, нууц үг, заах ур чадвар бүртгэнэ (FR-01). Нууц үг hash хийгдэж хадгалагдана (NFR-03).
| name required | string |
| phone required | string |
| email required | string <email> |
| password required | string <password> >= 8 characters |
Array of objects |
{- "name": "Сарнай",
- "phone": "88001122",
- "email": "sarnai2@num.edu.mn",
- "password": "your_account_password",
- "skills": [
- {
- "name": "Код бичих",
- "category": "Программчлал"
}
]
}{- "user_id": "usr_91ab3e",
- "name": "Сарнай",
- "email": "sarnai2@num.edu.mn",
- "skills": [
- {
- "name": "Код бичих",
- "category": "Программчлал"
}
]
}Дууссан session дээр нөгөө талыг 1-5 одоор үнэлнэ (FR-08). Нэг session-ыг нэг хүн нэг удаа үнэлнэ.
| sessionId required | string Example: ses_7c31d0 Session-ы ID |
| stars required | integer [ 1 .. 5 ] |
| comment | string |
{- "stars": 5,
- "comment": "Маш ойлгомжтой заасан"
}{- "session_id": "ses_7c31d0",
- "rated_user": "usr_4f2a91",
- "stars": 5
}Шударга бус гэж үзсэн credit тооцоог session дууссанаас хойш 72 цагийн дотор admin-д flag хийнэ. Шийдвэр гартал credit царцна (FR-12).
| sessionId required | string Example: ses_7c31d0 Session-ы ID |
| reason required | string |
{- "reason": "Тохирсон 5 credit-ийн оронд 8 credit тооцогдсон"
}{- "id": "flg_5b21c8",
- "session_id": "ses_7c31d0",
- "raised_by": "usr_b82e17",
- "reason": "Тохирсон 5 credit-ийн оронд 8 credit тооцогдсон",
- "status": "open",
- "credits": 5
}