PJT AIPJT AI/API REFERENCE
v1https://api.pjt.ai/api/external/v1
เริ่มต้นใช้งานMCP
ภาพรวมการยืนยันตัวตนรหัสข้อผิดพลาด
Workspaces
  • GET/workspaces
  • GET/workspaces/{workspaceId}
Projects
  • GET/workspaces/{workspaceId}/projects
  • POST/projects
  • GET/projects/{projectId}
  • PUT/projects/{projectId}
  • DELETE/projects/{projectId}
  • GET/projects/{projectId}/timeline
  • GET/projects/{projectId}/activities
  • GET/projects/{projectId}/files
Tasks
  • GET/projects/{projectId}/tasks
  • POST/tasks
  • GET/tasks/{taskId}
  • PUT/tasks/{taskId}
  • DELETE/tasks/{taskId}
  • GET/tasks/assigned
Documents
  • GET/projects/{projectId}/documents
  • GET/documents/{documentId}
  • POST/documents
  • PUT/documents/{documentId}
  • DELETE/documents/{documentId}
OVERVIEW

PJT AI REST API

REST API มาตรฐานสำหรับการเชื่อมต่อข้อมูล PJT AI กับระบบภายนอก คำขอและการตอบกลับทั้งหมดเป็น JSON และ base URL คือ https://api.pjt.ai/api/external/v1.

พื้นฐาน
  • การยืนยันตัวตน — เฮดเดอร์ X-API-Key (API key ของบัญชี, prefix pjt_)
  • ขอบเขตคีย์ — read (อ่านอย่างเดียว ค่าเริ่มต้น) / write. POST·PUT·DELETE ต้องใช้คีย์ที่มีขอบเขต write — ไม่เช่นนั้นจะได้ 403 SCOPE_FORBIDDEN
  • ขีดจำกัด — 60 ครั้ง/นาที + 10,000 ครั้ง/เดือน ต่อคีย์ (Enterprise ตกลงเพิ่มเติม)
  • รหัสการตอบกลับ — 2xx สำเร็จ, 4xx ข้อผิดพลาดฝั่งไคลเอนต์, 5xx ข้อผิดพลาดเซิร์ฟเวอร์
  • วันที่ — timestamp ทั้งหมดเป็น ISO 8601 (UTC)
AUTH

การยืนยันตัวตน

ทุกคำขอต้องมี header X-API-Key: <API_KEY> สร้างคีย์ได้ที่ การตั้งค่าบัญชี > API key (แสดงเพียงครั้งเดียวตอนสร้าง)

⚠
การจัดเก็บคีย์
ใช้ API key เฉพาะฝั่งเซิร์ฟเวอร์เท่านั้น หากคีย์ถูกเปิดเผยต่อไคลเอนต์ (เบราว์เซอร์หรือแอปมือถือ) ให้เพิกถอนและออกใหม่ทันที
Workspaces
GET/workspaces

รายการเวิร์กสเปซ

คืนรายการเวิร์กสเปซที่บัญชี API key เข้าถึงได้

รหัสการตอบกลับ
200OK401Unauthorized429Rate Limited
GET/workspaces/{workspaceId}

ดูเวิร์กสเปซ

คืนเวิร์กสเปซหนึ่งรายการ

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
workspaceIdREQUIREDintegerID เวิร์กสเปซ
รหัสการตอบกลับ
200OK401Unauthorized404Not Found
Projects
GET/workspaces/{workspaceId}/projects

รายการโปรเจกต์

คืนรายการโปรเจกต์ที่ใช้งานอยู่ของเวิร์กสเปซ (ไม่รวมที่ยกเลิก/เก็บถาวร)

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
workspaceIdREQUIREDintegerID เวิร์กสเปซ
รหัสการตอบกลับ
200OK401Unauthorized403Forbidden
POST/projects

สร้างโปรเจกต์ (idempotent)

สร้างโปรเจกต์ หากส่ง externalRef การเรียกจะเป็น idempotent — การส่งซ้ำด้วย (workspaceId, externalRef) เดิมจะคืนโปรเจกต์เดิมพร้อม 200 แทนการสร้างใหม่ (สร้างครั้งแรกคือ 201)

พารามิเตอร์ body
ชื่อประเภทคำอธิบาย
workspaceIdREQUIREDintegerID เวิร์กสเปซ
nameREQUIREDstringชื่อโปรเจกต์
externalRefstringคีย์ idempotency — ส่งซ้ำด้วยค่าเดิมจะคืนโปรเจกต์เดิมพร้อม 200 แทนการสร้างใหม่
codestringรหัสโปรเจกต์ (prefix ของคีย์งาน) หากเว้นว่างจะสร้างอัตโนมัติจากชื่อ
descriptionstringคำอธิบาย
clientIdsarrayอาร์เรย์ของ ID ลูกค้า
managerIdintegerID บัญชีผู้จัดการ
startDatedateวันเริ่ม — ISO 8601 (YYYY-MM-DD)
endDatedateวันสิ้นสุด — ISO 8601 (YYYY-MM-DD)
budgetintegerงบประมาณ
รหัสการตอบกลับ
201Created200OK400Bad Request401Unauthorized
GET/projects/{projectId}

รายละเอียด / ความคืบหน้าโปรเจกต์

คืนรายละเอียดโปรเจกต์ รวมสถานะ ความคืบหน้า (%) กำหนดการตามแผน/จริง และเวลาแก้ไขล่าสุด

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
projectIdREQUIREDstringID โปรเจกต์ — ID ตัวเลขหรือ publicId ที่ขึ้นต้นด้วย p_
รหัสการตอบกลับ
200OK404Not Found
PUT/projects/{projectId}

แก้ไขโปรเจกต์

อัปเดตเฉพาะฟิลด์ที่ส่งมา (partial update)

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
projectIdREQUIREDstringID โปรเจกต์ — ID ตัวเลขหรือ publicId ที่ขึ้นต้นด้วย p_
พารามิเตอร์ body
ชื่อประเภทคำอธิบาย
namestringชื่อโปรเจกต์
statusenumสถานะ — PLANNING·ESTIMATING·WAITING·IN_PROGRESS·ON_HOLD·COMPLETED·CANCELLED
progressRateintegerความคืบหน้า (%) 0–100
startDatedateวันเริ่ม — ISO 8601 (YYYY-MM-DD)
endDatedateวันสิ้นสุด — ISO 8601 (YYYY-MM-DD)
รหัสการตอบกลับ
200OK400Bad Request404Not Found
DELETE/projects/{projectId}

ลบโปรเจกต์

ลบโปรเจกต์ สำเร็จจะคืน 204 No Content (ไม่มีเนื้อหา)

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
projectIdREQUIREDstringID โปรเจกต์ — ID ตัวเลขหรือ publicId ที่ขึ้นต้นด้วย p_
รหัสการตอบกลับ
204No Content403Forbidden404Not Found
GET/projects/{projectId}/timeline

ไทม์ไลน์ (ไมล์สโตน)

รายการไมล์สโตนของโปรเจกต์ — ชื่อ สถานะ (PLANNED/IN_PROGRESS/COMPLETED) กำหนดส่ง วันเสร็จ และความคืบหน้า เรียงตาม sortOrder

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
projectIdREQUIREDstringID โปรเจกต์ — ID ตัวเลขหรือ publicId ที่ขึ้นต้นด้วย p_
รหัสการตอบกลับ
200OK403Forbidden404Not Found
GET/projects/{projectId}/activities

กิจกรรม

เหตุการณ์การเปลี่ยนแปลงงานของโปรเจกต์ เรียงจากใหม่สุด — ประเภท ข้อความ ผู้กระทำ และเวลา

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
projectIdREQUIREDstringID โปรเจกต์ — ID ตัวเลขหรือ publicId ที่ขึ้นต้นด้วย p_
พารามิเตอร์ query
ชื่อประเภทคำอธิบาย
pageintegerหมายเลขหน้า (เริ่มที่ 0 ค่าเริ่มต้น 0)
sizeintegerขนาดหน้า (ค่าเริ่มต้น 50 สูงสุด 200)
รหัสการตอบกลับ
200OK403Forbidden404Not Found
GET/projects/{projectId}/files

รายการไฟล์

รวมไฟล์แนบจากงานและคอมเมนต์ในโปรเจกต์ เรียงจากใหม่สุด fileUrl เป็น URL แบบคงที่ไม่หมดอายุ

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
projectIdREQUIREDstringID โปรเจกต์ — ID ตัวเลขหรือ publicId ที่ขึ้นต้นด้วย p_
พารามิเตอร์ query
ชื่อประเภทคำอธิบาย
limitintegerจำนวนสูงสุด (ค่าเริ่มต้น 100 สูงสุด 500)
รหัสการตอบกลับ
200OK403Forbidden404Not Found
Tasks
GET/projects/{projectId}/tasks

รายการงาน

คืนรายการงานของโปรเจกต์ หากต้องการแบ่งหน้าให้ใช้ /tasks/paged

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
projectIdREQUIREDstringID โปรเจกต์ — ID ตัวเลขหรือ publicId ที่ขึ้นต้นด้วย p_
พารามิเตอร์ query
ชื่อประเภทคำอธิบาย
sortBystringเกณฑ์เรียงลำดับ (ค่าเริ่มต้น createdAt)
รหัสการตอบกลับ
200OK403Forbidden404Not Found
POST/tasks

สร้างงาน

สร้างงาน

พารามิเตอร์ body
ชื่อประเภทคำอธิบาย
projectIdREQUIREDintegerID โปรเจกต์ (ตัวเลข)
titleREQUIREDstringหัวข้อ
descriptionstringคำอธิบาย
assigneeIdintegerID บัญชีผู้รับผิดชอบ
statusenumสถานะ — PENDING·TODO·IN_PROGRESS·IN_REVIEW·BLOCKED·COMPLETED·CANCELLED
priorityenumความสำคัญ — URGENT·HIGH·MEDIUM·LOW
dueDatedateกำหนดส่ง — ISO 8601
milestoneIdintegerID ไมล์สโตนที่จะเชื่อมโยง
รหัสการตอบกลับ
201Created400Bad Request401Unauthorized
GET/tasks/{taskId}

ดูงาน

คืนงานหนึ่งรายการ

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
taskIdREQUIREDintegerID งาน
รหัสการตอบกลับ
200OK404Not Found
PUT/tasks/{taskId}

แก้ไขงาน

อัปเดตเฉพาะฟิลด์ที่ส่งมา

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
taskIdREQUIREDintegerID งาน
พารามิเตอร์ body
ชื่อประเภทคำอธิบาย
titlestringหัวข้อ
statusenumสถานะ — PENDING·TODO·IN_PROGRESS·IN_REVIEW·BLOCKED·COMPLETED·CANCELLED
priorityenumความสำคัญ — URGENT·HIGH·MEDIUM·LOW
dueDatedateกำหนดส่ง — ISO 8601
รหัสการตอบกลับ
200OK400Bad Request404Not Found
DELETE/tasks/{taskId}

ลบงาน

ลบงาน สำเร็จจะคืน 204 No Content

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
taskIdREQUIREDintegerID งาน
รหัสการตอบกลับ
204No Content403Forbidden404Not Found
GET/tasks/assigned

งานที่มอบหมายให้ฉัน

คืนรายการงานที่มอบหมายให้บัญชี API key

รหัสการตอบกลับ
200OK401Unauthorized
Documents
GET/projects/{projectId}/documents

รายการเอกสาร

คืนรายการเอกสารของโปรเจกต์ หากต้องการแบ่งหน้าให้ใช้ /documents/paged

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
projectIdREQUIREDstringID โปรเจกต์ — ID ตัวเลขหรือ publicId ที่ขึ้นต้นด้วย p_
รหัสการตอบกลับ
200OK403Forbidden404Not Found
GET/documents/{documentId}

ดูเอกสาร

คืนเอกสารหนึ่งรายการ (รวมเนื้อหา)

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
documentIdREQUIREDintegerID เอกสาร
รหัสการตอบกลับ
200OK404Not Found
POST/documents

สร้างเอกสาร

สร้างเอกสาร

พารามิเตอร์ body
ชื่อประเภทคำอธิบาย
workspaceIdREQUIREDintegerID เวิร์กสเปซ
titleREQUIREDstringหัวข้อ
documentTypeREQUIREDenumประเภทเอกสาร (เช่น REQUIREMENT, MEETING_NOTE)
projectIdintegerID โปรเจกต์ (ตัวเลข)
contentstringเนื้อหาเอกสาร
visibilityenumขอบเขตการมองเห็น — PUBLIC·TEAM·PRIVATE
รหัสการตอบกลับ
201Created400Bad Request401Unauthorized
PUT/documents/{documentId}

แก้ไขเอกสาร

อัปเดตเฉพาะฟิลด์ที่ส่งมา

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
documentIdREQUIREDintegerID เอกสาร
พารามิเตอร์ body
ชื่อประเภทคำอธิบาย
titlestringหัวข้อ
contentstringเนื้อหาเอกสาร
visibilityenumขอบเขตการมองเห็น — PUBLIC·TEAM·PRIVATE
รหัสการตอบกลับ
200OK400Bad Request404Not Found
DELETE/documents/{documentId}

ลบเอกสาร

ลบเอกสาร สำเร็จจะคืน 204 No Content

พารามิเตอร์ path
ชื่อประเภทคำอธิบาย
documentIdREQUIREDintegerID เอกสาร
รหัสการตอบกลับ
204No Content403Forbidden404Not Found
ERRORS

รหัสข้อผิดพลาด

การตอบกลับข้อผิดพลาดทุกครั้งมี error.code และ error.message

รหัสชื่อคำอธิบายการดำเนินการ
400Bad Requestrequest body ไม่ถูกต้องตรวจสอบ request body
401UnauthorizedAPI key ไม่ถูกต้องหรือขาดหายไปตรวจสอบ API key อีกครั้ง
403Forbiddenคุณไม่มีสิทธิ์เข้าถึงทรัพยากรนี้ คำขอเขียนด้วยคีย์แบบอ่านอย่างเดียวจะได้รับ SCOPE_FORBIDDENตรวจสอบบทบาท/ขอบเขต
404Not Foundไม่พบทรัพยากรที่ร้องขอตรวจสอบ ID อีกครั้ง
429Rate Limitedคุณเกินขีดจำกัดอัตราดู header Retry-After และชะลอการเรียก
500Server Errorเกิดข้อผิดพลาดขณะเซิร์ฟเวอร์ประมวลผลคำขอลองใหม่หลัง 5 นาที ตรวจสอบ status.pjt.ai
BASE URL
https://api.pjt.ai/api/external/v1
VERSION
v1 · released 2026-07