Tapee Universityapi.tapee.ac.thTapee API Gateway

Complete API reference · 9 ตุลาคม 2569

คู่มือ API ทั้งระบบ

รายการ API ที่มีใน api.tapee.ac.th ครบ 23 operation พร้อมสิทธิ์ รูปแบบข้อมูล และลิงก์สัญญา OpenAPI 3.1 สำหรับ AI และเครื่องมือพัฒนา

สถานะ: งานอ่าน งานเทียบโอน RegisterNet และ SectionOrder เปิดตามสิทธิ์ของ API key; POST /api/v1/registrations ยังปิดใช้งาน

ดาวน์โหลด OpenAPI JSON · แผนที่เอกสารสำหรับ AI · ขอใช้ API

Getting started

เริ่มใช้งาน

  1. เลือก endpoint และ scopeตรวจตารางด้านล่าง ผู้ดูแลต้องออก API key ที่มี scope ตรงกับงาน; API ผู้ดูแลใช้ x-admin-token แยกต่างหาก
  2. เรียกผ่าน HTTPSBase URL คือ https://api.tapee.ac.th ส่ง x-api-key ใน header สำหรับ /api/v1/* และ Content-Type: application/json เมื่อส่ง JSON
  3. ตรวจ HTTP statusอ่าน body เป็น JSON และเก็บ requestId หรือ header x-request-id เพื่อแจ้งปัญหา คำขอเขียนที่ได้ 409 ต้องตรวจข้อมูลก่อนส่งซ้ำ
  4. เก็บคีย์บนเซิร์ฟเวอร์ห้ามใส่คีย์ใน URL หรือโค้ดฝั่งเบราว์เซอร์ คีย์อาจถูกจำกัดตาม IP; CORS ไม่ใช่สิทธิ์แทน API key

จำกัดคำขอโดยปริยาย 120 ครั้งต่อนาทีต่อ IP, JSON body สูงสุด 64 KiB และอาจมีค่าเซิร์ฟเวอร์ที่ต่างจากค่าเริ่มต้น การขอคีย์ผ่านฟอร์มสาธารณะรองรับเฉพาะ scope งานอ่านทั่วไป; งานเขียนและ scope เฉพาะต้องติดต่อผู้ดูแล

All 23 operations

รายการ API และสิทธิ์

ชื่อพารามิเตอร์และ JSON schema อย่างละเอียดอยู่ใน OpenAPI 3.1 คลิกคู่มือเฉพาะงานเพื่อดูตัวอย่างเต็ม

วิธีEndpointงาน / ตัวกรองหลักสิทธิ์สถานะ
GET/api/healthสถานะระบบ; db=1, appdb=1 ตรวจการเชื่อมต่อสาธารณะเปิด
POST/api/access-requestsยื่นคำขอ API key พร้อมข้อมูลผู้ติดต่อสาธารณะเปิด
GET/api/admin/access-requestsดูคำขอ สูงสุด 200 รายการ; กรอง statusx-admin-tokenเปิด
POST/api/admin/access-requests/:id/approveอนุมัติ; คืน API key เพียงครั้งเดียวx-admin-tokenเปิด
POST/api/admin/access-requests/:id/rejectปฏิเสธคำขอx-admin-tokenเปิด
GET/api/v1รายการ API แบบย่อ; หน้านี้คือรายการฉบับครบAPI key ที่ใช้ได้เปิด
GET/api/v1/server-timeเวลา SQL Serverserver-time:readเปิด
GET/api/v1/studentsค้นหารหัส/ชื่อ/คณะ/สาขา; ต้องมี years หรือ studentIdsstudents:readเปิด
GET/api/v1/student-optionsชุดตัวเลือกคณะ สาขา ระดับstudents:readเปิด
GET/api/v1/students/:studentId/registrationsรายการ REGISTER; year, semester ไม่บังคับ; สูงสุด 500registrations:readเปิด
GET/api/v1/students/:studentId/register-netRegisterNet ครบ 11 คอลัมน์; ต้องมี year, semester; กรอง courseCode ได้register-net:readเปิด
POST/api/v1/register-netเพิ่ม RegisterNet ตามคีย์ Year_reg, Semester, ID, Couse; ไม่มีค่า Status เริ่มต้นregister-net:writeเปิด
GET/api/v1/section-ordersSectionOrder ครบ 10 คอลัมน์; ต้องมี year, term; สูงสุด 500section-orders:readเปิด
GET/api/v1/section-orders/:year/:term/:courseCode/:sectionอ่านกลุ่มเรียนเดียวพร้อม ETagsection-orders:readเปิด
POST/api/v1/section-ordersเพิ่มกลุ่มเรียน; รับค่าครบโครงสร้างsection-orders:writeเปิด
PUT/api/v1/section-orders/:year/:term/:courseCode/:sectionแก้แถวเดิม; body คีย์ตรง URL และต้องส่ง If-Matchsection-orders:writeเปิด
GET/api/v1/graduation-student-profileข้อมูลนักศึกษาสำหรับระบบสำเร็จการศึกษา; ต้องมี studentIdgraduation-student-profile:readเปิด
POST/api/v1/student-verificationตรวจเลขบัตรประชาชน; purpose=graduationgraduation-student-profile:readเปิด
GET/api/v1/teaching-loadsภาระสอน; ต้องมี year, semester; กรองอาจารย์ได้teaching-loads:readเปิด
GET/api/v1/teachers/:teacherId/teaching-loadsภาระสอนอาจารย์รายคน รวมกลุ่มเรียนร่วมตาม TIMSteaching-loads:readเปิด
POST/api/v1/transfer-gradesเทียบโอนจาก ปวส./ความรู้/ประสบการณ์; ผลเป็น Stransfer-grades:writeเปิด
POST/api/v1/external-transfersเทียบโอนต่างสถาบัน; ตรวจรหัสสถาบันและเกรดexternal-transfers:writeเปิด
POST/api/v1/registrationsเพิ่ม REGISTER; gradeCode 9.9; ไม่เพิ่ม SectionOrder.OrderHowregistrations:writeยังปิด · 503

Requests you can copy

ตัวอย่างการเรียก

แทนค่าตัวอย่างและใช้คีย์ที่มี scope ตรงกับงาน อย่าใช้ข้อมูลตัวอย่างเพื่อบันทึกในระบบจริง

อ่านนักศึกษา

curl 'https://api.tapee.ac.th/api/v1/students?years=67-69&limit=100' \
  -H 'x-api-key: YOUR_API_KEY'

อ่านข้อมูล REGISTER

curl 'https://api.tapee.ac.th/api/v1/students/STUDENT_ID/registrations?year=2569&semester=1' \
  -H 'x-api-key: YOUR_API_KEY'

อ่าน RegisterNet

curl 'https://api.tapee.ac.th/api/v1/students/STUDENT_ID/register-net?year=2569&semester=1' \
  -H 'x-api-key: YOUR_API_KEY'

อ่าน SectionOrder และ ETag

curl -i 'https://api.tapee.ac.th/api/v1/section-orders/2569/1/COURSE_CODE/T1' \
  -H 'x-api-key: YOUR_API_KEY'

ตรวจนักศึกษาเพื่อสำเร็จการศึกษา

curl -X POST 'https://api.tapee.ac.th/api/v1/student-verification' \
  -H 'x-api-key: YOUR_API_KEY' -H 'Content-Type: application/json' \
  -d '{"purpose":"graduation","citizenId":"VALID_13_DIGIT_ID"}'

อ่านภาระสอน

curl 'https://api.tapee.ac.th/api/v1/teaching-loads?year=2569&semester=1&teacherId=TEACHER_ID' \
  -H 'x-api-key: YOUR_API_KEY'

ตัวอย่าง POST/PUT ที่ครบทุกฟิลด์และคำตอบอยู่ใน คู่มือเทียบโอน, คู่มือ RegisterNet และ คู่มือ SectionOrder ส่วน schema ทุกคำขอ/ผลลัพธ์อยู่ใน OpenAPI JSON

Response contract

วิธีอ่านผลลัพธ์และข้อผิดพลาด

200 / 201อ่านหรือแก้สำเร็จ / สร้างรายการสำเร็จ
400รูปแบบคำขอหรือฟิลด์ผิด
401 / 403ไม่มีคีย์ / scope หรือ IP ไม่ได้รับสิทธิ์
404 / 409ไม่พบข้อมูล / รายการซ้ำหรือเงื่อนไขขัดกัน
412 / 428ETag เก่า / ไม่ส่ง If-Match สำหรับ PUT SectionOrder
422 / 429ผลเกิน 500 แถว / เกิน rate limit
500 / 503ระบบผิดพลาด / endpoint เขียนถูกปิดหรือฐานข้อมูลไม่พร้อม
HTTP/1.1 200 OK
x-request-id: REQUEST_ID
Content-Type: application/json

{"requestId":"REQUEST_ID","count":0,"data":[]}

GET แบบรายการคืน count และ data เป็น array; GET รายการเดียวคืน data เป็น object หรือ null ตาม endpoint; POST/PUT คืนผลใน data แถวที่ซ้ำจะไม่ถูกเพิ่มใหม่ การอ่านข้อมูลส่วนบุคคลต้องใช้ตามสิทธิ์และวัตถุประสงค์ที่ได้รับอนุมัติ