คีย์ API
Markdownเมธอด ฟิลด์คำขอ และคำตอบ
คู่มือฉบับเต็ม
ส่วนนี้มี 5 เมธอด เปิดเมธอดเพื่อดูเงื่อนไขการเข้าถึง ฟิลด์คำขอ และคำตอบ
| เมธอดและพาธ | คำอธิบาย | การเข้าถึง |
|---|---|---|
GET /api/v1/keys | รายการ — คีย์ API | โทเคนแดชบอร์ด |
POST /api/v1/keys | สร้างคีย์ API | โทเคนแดชบอร์ด |
DELETE /api/v1/keys/:id | ลบ — คีย์ API | โทเคนแดชบอร์ด |
GET /api/v1/keys/:id | ดึงข้อมูลตามรหัส — คีย์ API | โทเคนแดชบอร์ด |
PUT /api/v1/keys/:id | แก้ไขคีย์ API | โทเคนแดชบอร์ด |
GET /api/v1/keys — รายการ — คีย์ API
การเข้าถึง: โทเคนแดชบอร์ด
/api/v1/keyscurl --fail-with-body "https://ailoot.ai/api/v1/keys" \
-H "Authorization: Bearer $TOKEN"พารามิเตอร์ Query
| ฟิลด์ | ชนิด | จำเป็น | การตรวจสอบ / คำอธิบาย |
|---|---|---|---|
sort_by | string | ไม่ | ; ค่าเริ่มต้น: created_at |
sort_order | string | ไม่ | ; ค่าเริ่มต้น: desc |
search | string | ไม่ | |
status | string | ไม่ | |
page | integer | ไม่ | ; ค่าเริ่มต้น: 1; positive; page_size/limit <=1000 |
page_size | integer | ไม่ | ; ค่าเริ่มต้น: 20; positive; page_size/limit <=1000 |
limit | integer | ไม่ | ; ค่าเริ่มต้น: 20; positive; page_size/limit <=1000 |
ไม่ต้องส่งเนื้อหาคำขอ ให้ส่งพารามิเตอร์ที่ระบุไว้ด้านบนใน URL
คำตอบ
คำตอบ JSON มี code, message และ data เนื้อหาของ data อธิบายไว้ในสคีมาด้านล่าง
สคีมาข้อมูลคำตอบ: APIKey. ดูฟิลด์และชนิดข้อมูลได้ในหน้า “โครงสร้างข้อมูล”
{
"code": 0,
"message": "success",
"data": {
"items": [
{
"id": "PLACEHOLDER_ID (integer)",
"user_id": "PLACEHOLDER_USER_ID (integer)",
"key": "PLACEHOLDER_KEY (string)",
"name": "PLACEHOLDER_NAME (string)",
"status": "PLACEHOLDER_STATUS (string)",
"ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
"ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
"last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
"last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
"quota": "PLACEHOLDER_QUOTA (number)",
"quota_used": "PLACEHOLDER_QUOTA_USED (number)",
"expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
"created_at": "PLACEHOLDER_CREATED_AT (string)",
"updated_at": "PLACEHOLDER_UPDATED_AT (string)",
"current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
"rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
"rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
"rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
"usage_5h": "PLACEHOLDER_USAGE_5H (number)",
"usage_1d": "PLACEHOLDER_USAGE_1D (number)",
"usage_7d": "PLACEHOLDER_USAGE_7D (number)",
"window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
"window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
"window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
"reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
"reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
"reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
"user": "PLACEHOLDER_USER (object)"
}
],
"total": "PLACEHOLDER_TOTAL (integer)",
"page": "PLACEHOLDER_PAGE (integer)",
"page_size": "PLACEHOLDER_PAGE_SIZE (integer)",
"pages": "PLACEHOLDER_PAGES (integer)"
}
}ข้อควรทราบ: ข้อมูลส่วนบุคคลและออบเจ็กต์ทั้งหมดจำกัดขอบเขตตามตัวตนที่ระบุใน JWT
ข้อควรทราบ: คำตอบมี key ที่เป็นความลับ อย่าเผยแพร่ค่าจริง
POST /api/v1/keys — สร้างคีย์ API
การเข้าถึง: โทเคนแดชบอร์ด
/api/v1/keysฟิลด์ JSON / ฟอร์ม
| ฟิลด์ | ชนิด | จำเป็น | การตรวจสอบ / คำอธิบาย |
|---|---|---|---|
name | string | ใช่ | required |
custom_key | string | ไม่ | ; ไม่จำเป็น: กำหนดค่าคีย์ด้วยตนเอง; อาจเป็น null |
ip_whitelist | array | ไม่ | ; รายการ IP ที่อนุญาต |
ip_blacklist | array | ไม่ | ; รายการ IP ที่ไม่อนุญาต |
quota | number | ไม่ | ; วงเงินค่าใช้จ่ายของคีย์ในหน่วย USD; อาจเป็น null |
expires_in_days | integer | ไม่ | ; อายุการใช้งานเป็นวัน; อาจเป็น null |
rate_limit_5h | number | ไม่ | ; อาจเป็น null |
rate_limit_1d | number | ไม่ | ; อาจเป็น null |
rate_limit_7d | number | ไม่ | ; อาจเป็น null |
{
"name": "PLACEHOLDER_NAME (string)",
"custom_key": "PLACEHOLDER_CUSTOM_KEY (string)",
"ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
"ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
"quota": "PLACEHOLDER_QUOTA (number)",
"expires_in_days": "PLACEHOLDER_EXPIRES_IN_DAYS (integer)",
"rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
"rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
"rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)"
}PLACEHOLDER ระบุข้อมูลที่คุณต้องป้อนและชนิดข้อมูล ให้แทนค่าต่าง ๆ และคงไว้เฉพาะฟิลด์ที่ไม่จำเป็นแต่ต้องการใช้ อย่าส่งข้อความตัวแทนค่าแทนตัวเลข boolean ออบเจ็กต์ หรืออาร์เรย์
สคีมาคำขอ: CreateAPIKeyRequest
คำตอบ
คำตอบ JSON มี code, message และ data เนื้อหาของ data อธิบายไว้ในสคีมาด้านล่าง
สคีมาข้อมูลคำตอบ: APIKey. ดูฟิลด์และชนิดข้อมูลได้ในหน้า “โครงสร้างข้อมูล”
{
"code": 0,
"message": "success",
"data": {
"id": "PLACEHOLDER_ID (integer)",
"user_id": "PLACEHOLDER_USER_ID (integer)",
"key": "PLACEHOLDER_KEY (string)",
"name": "PLACEHOLDER_NAME (string)",
"status": "PLACEHOLDER_STATUS (string)",
"ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
"ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
"last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
"last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
"quota": "PLACEHOLDER_QUOTA (number)",
"quota_used": "PLACEHOLDER_QUOTA_USED (number)",
"expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
"created_at": "PLACEHOLDER_CREATED_AT (string)",
"updated_at": "PLACEHOLDER_UPDATED_AT (string)",
"current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
"rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
"rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
"rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
"usage_5h": "PLACEHOLDER_USAGE_5H (number)",
"usage_1d": "PLACEHOLDER_USAGE_1D (number)",
"usage_7d": "PLACEHOLDER_USAGE_7D (number)",
"window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
"window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
"window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
"reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
"reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
"reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
"user": "PLACEHOLDER_USER (object)"
}
}ข้อควรทราบ: ข้อมูลส่วนบุคคลและออบเจ็กต์ทั้งหมดจำกัดขอบเขตตามตัวตนที่ระบุใน JWT
ข้อควรทราบ: การดำเนินการนี้เปลี่ยนสถานะหรือดำเนินขั้นตอนยืนยันสิทธิ์แบบใช้ครั้งเดียวต่อ ตัวอย่างอธิบายสัญญาการทำงานและไม่ได้ถูกเรียกใช้จริง
ข้อควรทราบ: รองรับ Idempotency-Key การส่งซ้ำจะได้คำตอบที่บันทึกไว้พร้อม X-Idempotency-Replayed
ข้อควรทราบ: คำตอบมี key ที่เป็นความลับ อย่าเผยแพร่ค่าจริง
DELETE /api/v1/keys/:id — ลบ — คีย์ API
การเข้าถึง: โทเคนแดชบอร์ด
/api/v1/keys/:idพารามิเตอร์พาธ
| ฟิลด์ | ชนิด | จำเป็น | การตรวจสอบ / คำอธิบาย |
|---|---|---|---|
id | integer | ใช่ |
ไม่ต้องส่งเนื้อหาคำขอ
คำตอบ
คำตอบ JSON มี code, message และ data เนื้อหาของ data อธิบายไว้ในสคีมาด้านล่าง
{
"code": 0,
"message": "success",
"data": {
"message": "VALUE_FROM_RESPONSE"
}
}ข้อควรทราบ: ข้อมูลส่วนบุคคลและออบเจ็กต์ทั้งหมดจำกัดขอบเขตตามตัวตนที่ระบุใน JWT
ข้อควรทราบ: การดำเนินการนี้เปลี่ยนสถานะหรือดำเนินขั้นตอนยืนยันสิทธิ์แบบใช้ครั้งเดียวต่อ ตัวอย่างอธิบายสัญญาการทำงานและไม่ได้ถูกเรียกใช้จริง
ข้อควรทราบ: คำตอบมี key ที่เป็นความลับ อย่าเผยแพร่ค่าจริง
GET /api/v1/keys/:id — ดึงข้อมูลตามรหัส — คีย์ API
การเข้าถึง: โทเคนแดชบอร์ด
/api/v1/keys/:idcurl --fail-with-body "https://ailoot.ai/api/v1/keys/$ID" \
-H "Authorization: Bearer $TOKEN"พารามิเตอร์พาธ
| ฟิลด์ | ชนิด | จำเป็น | การตรวจสอบ / คำอธิบาย |
|---|---|---|---|
id | integer | ใช่ |
ไม่ต้องส่งเนื้อหาคำขอ ให้ส่งพารามิเตอร์ที่ระบุไว้ด้านบนใน URL
คำตอบ
คำตอบ JSON มี code, message และ data เนื้อหาของ data อธิบายไว้ในสคีมาด้านล่าง
สคีมาข้อมูลคำตอบ: APIKey. ดูฟิลด์และชนิดข้อมูลได้ในหน้า “โครงสร้างข้อมูล”
{
"code": 0,
"message": "success",
"data": {
"id": "PLACEHOLDER_ID (integer)",
"user_id": "PLACEHOLDER_USER_ID (integer)",
"key": "PLACEHOLDER_KEY (string)",
"name": "PLACEHOLDER_NAME (string)",
"status": "PLACEHOLDER_STATUS (string)",
"ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
"ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
"last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
"last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
"quota": "PLACEHOLDER_QUOTA (number)",
"quota_used": "PLACEHOLDER_QUOTA_USED (number)",
"expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
"created_at": "PLACEHOLDER_CREATED_AT (string)",
"updated_at": "PLACEHOLDER_UPDATED_AT (string)",
"current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
"rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
"rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
"rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
"usage_5h": "PLACEHOLDER_USAGE_5H (number)",
"usage_1d": "PLACEHOLDER_USAGE_1D (number)",
"usage_7d": "PLACEHOLDER_USAGE_7D (number)",
"window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
"window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
"window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
"reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
"reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
"reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
"user": "PLACEHOLDER_USER (object)"
}
}ข้อควรทราบ: ข้อมูลส่วนบุคคลและออบเจ็กต์ทั้งหมดจำกัดขอบเขตตามตัวตนที่ระบุใน JWT
ข้อควรทราบ: คำตอบมี key ที่เป็นความลับ อย่าเผยแพร่ค่าจริง
PUT /api/v1/keys/:id — แก้ไขคีย์ API
การเข้าถึง: โทเคนแดชบอร์ด
/api/v1/keys/:idพารามิเตอร์พาธ
| ฟิลด์ | ชนิด | จำเป็น | การตรวจสอบ / คำอธิบาย |
|---|---|---|---|
id | integer | ใช่ |
ฟิลด์ JSON / ฟอร์ม
| ฟิลด์ | ชนิด | จำเป็น | การตรวจสอบ / คำอธิบาย |
|---|---|---|---|
name | string | ไม่ | |
status | string | ไม่ | omitempty,oneof=active inactive |
ip_whitelist | array | ไม่ | ; IP ที่อนุญาต: null จะไม่เปลี่ยนรายการ ส่วนอาร์เรย์ว่างจะล้างรายการ; อาจเป็น null |
ip_blacklist | array | ไม่ | ; IP ที่ไม่อนุญาต: null จะไม่เปลี่ยนรายการ ส่วนอาร์เรย์ว่างจะล้างรายการ; อาจเป็น null |
quota | number | ไม่ | ; วงเงินค่าใช้จ่ายของคีย์ในหน่วย USD; 0 หมายถึงไม่จำกัด; อาจเป็น null |
expires_at | string | ไม่ | ; เวลาหมดอายุในรูปแบบ ISO 8601; อาจเป็น null |
reset_quota | boolean | ไม่ | ; รีเซ็ตจำนวนเงินที่ใช้ไปแล้วจากวงเงินค่าใช้จ่าย; อาจเป็น null |
rate_limit_5h | number | ไม่ | ; อาจเป็น null |
rate_limit_1d | number | ไม่ | ; อาจเป็น null |
rate_limit_7d | number | ไม่ | ; อาจเป็น null |
reset_rate_limit_usage | boolean | ไม่ | ; รีเซ็ตค่าใช้จ่ายที่นับในขีดจำกัดตามช่วงเวลา; อาจเป็น null |
{
"name": "PLACEHOLDER_NAME (string)",
"status": "PLACEHOLDER_STATUS (string)",
"ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
"ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
"quota": "PLACEHOLDER_QUOTA (number)",
"expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
"reset_quota": "PLACEHOLDER_RESET_QUOTA (boolean)",
"rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
"rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
"rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
"reset_rate_limit_usage": "PLACEHOLDER_RESET_RATE_LIMIT_USAGE (boolean)"
}PLACEHOLDER ระบุข้อมูลที่คุณต้องป้อนและชนิดข้อมูล ให้แทนค่าต่าง ๆ และคงไว้เฉพาะฟิลด์ที่ไม่จำเป็นแต่ต้องการใช้ อย่าส่งข้อความตัวแทนค่าแทนตัวเลข boolean ออบเจ็กต์ หรืออาร์เรย์
สคีมาคำขอ: UpdateAPIKeyRequest
คำตอบ
คำตอบ JSON มี code, message และ data เนื้อหาของ data อธิบายไว้ในสคีมาด้านล่าง
สคีมาข้อมูลคำตอบ: APIKey. ดูฟิลด์และชนิดข้อมูลได้ในหน้า “โครงสร้างข้อมูล”
{
"code": 0,
"message": "success",
"data": {
"id": "PLACEHOLDER_ID (integer)",
"user_id": "PLACEHOLDER_USER_ID (integer)",
"key": "PLACEHOLDER_KEY (string)",
"name": "PLACEHOLDER_NAME (string)",
"status": "PLACEHOLDER_STATUS (string)",
"ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
"ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
"last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
"last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
"quota": "PLACEHOLDER_QUOTA (number)",
"quota_used": "PLACEHOLDER_QUOTA_USED (number)",
"expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
"created_at": "PLACEHOLDER_CREATED_AT (string)",
"updated_at": "PLACEHOLDER_UPDATED_AT (string)",
"current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
"rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
"rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
"rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
"usage_5h": "PLACEHOLDER_USAGE_5H (number)",
"usage_1d": "PLACEHOLDER_USAGE_1D (number)",
"usage_7d": "PLACEHOLDER_USAGE_7D (number)",
"window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
"window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
"window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
"reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
"reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
"reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
"user": "PLACEHOLDER_USER (object)"
}
}ข้อควรทราบ: ข้อมูลส่วนบุคคลและออบเจ็กต์ทั้งหมดจำกัดขอบเขตตามตัวตนที่ระบุใน JWT
ข้อควรทราบ: การดำเนินการนี้เปลี่ยนสถานะหรือดำเนินขั้นตอนยืนยันสิทธิ์แบบใช้ครั้งเดียวต่อ ตัวอย่างอธิบายสัญญาการทำงานและไม่ได้ถูกเรียกใช้จริง
ข้อควรทราบ: คำตอบมี key ที่เป็นความลับ อย่าเผยแพร่ค่าจริง
ข้อควรทราบ: ขณะที่คีย์มีคำขอที่ยังไม่เสร็จและมีเงินกันไว้ จะไม่สามารถลดหรือรีเซ็ตวงเงินค่าใช้จ่ายของคีย์ได้ ส่งเฉพาะฟิลด์ที่ต้องการเปลี่ยน