docs
API แผงควบคุม

คีย์ 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

การเข้าถึง: โทเคนแดชบอร์ด

GET/api/v1/keys
การอ่าน; ใช้ ID จากคำตอบก่อนหน้าของคุณ
curl --fail-with-body "https://ailoot.ai/api/v1/keys" \
  -H "Authorization: Bearer $TOKEN"

พารามิเตอร์ Query

ฟิลด์ชนิดจำเป็นการตรวจ⁠สอบ / คำอธิบาย
sort_bystringไม่; ค่าเริ่มต้น: created_at
sort_orderstringไม่; ค่าเริ่มต้น: desc
searchstringไม่
statusstringไม่
pageintegerไม่; ค่าเริ่มต้น: 1; positive; page_size/limit <=1000
page_sizeintegerไม่; ค่าเริ่มต้น: 20; positive; page_size/limit <=1000
limitintegerไม่; ค่าเริ่มต้น: 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

การเข้าถึง: โทเคนแดชบอร์ด

POST/api/v1/keys

ฟิลด์ JSON / ฟอร์ม

ฟิลด์ชนิดจำเป็นการตรวจ⁠สอบ / คำอธิบาย
namestringใช่required
custom_keystringไม่; ไม่จำเป็น: กำหนดค่าคีย์ด้วยตนเอง; อาจเป็น null
ip_whitelistarrayไม่; รายการ IP ที่อนุญาต
ip_blacklistarrayไม่; รายการ IP ที่ไม่อนุญาต
quotanumberไม่; วงเงินค่าใช้จ่ายของคีย์ในหน่วย USD; อาจเป็น null
expires_in_daysintegerไม่; อายุการใช้งานเป็นวัน; อาจเป็น null
rate_limit_5hnumberไม่; อาจเป็น null
rate_limit_1dnumberไม่; อาจเป็น null
rate_limit_7dnumberไม่; อาจเป็น 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

การเข้าถึง: โทเคนแดชบอร์ด

DELETE/api/v1/keys/:id

พารามิเตอร์พาธ

ฟิลด์ชนิดจำเป็นการตรวจ⁠สอบ / คำอธิบาย
idintegerใช่

ไม่ต้องส่งเนื้อหาคำขอ

คำตอบ

คำตอบ JSON มี code, message และ data เนื้อหาของ data อธิบายไว้ในสคีมาด้านล่าง

สคีมาคำตอบ โดยค่าเป็นเพียงตัวอย่าง
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "VALUE_FROM_RESPONSE"
  }
}

ข้อควรทราบ: ข้อมูลส่วนบุคคลและออบเจ็กต์ทั้งหมดจำกัดขอบเขตตามตัวตนที่ระบุใน JWT

ข้อควรทราบ: การดำเนินการนี้เปลี่ยนสถานะหรือดำเนินขั้นตอนยืนยันสิทธิ์แบบใช้ครั้งเดียวต่อ ตัวอย่างอธิบายสัญญาการทำงานและไม่ได้ถูกเรียกใช้จริง

ข้อควรทราบ: คำตอบมี key ที่เป็นความลับ อย่าเผยแพร่ค่าจริง

GET /api/v1/keys/:id — ดึงข้อมูลตามรหัส — คีย์ API

การเข้าถึง: โทเคนแดชบอร์ด

GET/api/v1/keys/:id
การอ่าน; ใช้ ID จากคำตอบก่อนหน้าของคุณ
curl --fail-with-body "https://ailoot.ai/api/v1/keys/$ID" \
  -H "Authorization: Bearer $TOKEN"

พารามิเตอร์พาธ

ฟิลด์ชนิดจำเป็นการตรวจ⁠สอบ / คำอธิบาย
idintegerใช่

ไม่ต้องส่งเนื้อหาคำขอ ให้ส่งพารามิเตอร์ที่ระบุไว้ด้านบนใน 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

การเข้าถึง: โทเคนแดชบอร์ด

PUT/api/v1/keys/:id

พารามิเตอร์พาธ

ฟิลด์ชนิดจำเป็นการตรวจ⁠สอบ / คำอธิบาย
idintegerใช่

ฟิลด์ JSON / ฟอร์ม

ฟิลด์ชนิดจำเป็นการตรวจ⁠สอบ / คำอธิบาย
namestringไม่
statusstringไม่omitempty,oneof=active inactive
ip_whitelistarrayไม่; IP ที่อนุญาต: null จะไม่เปลี่ยนรายการ ส่วนอาร์เรย์ว่างจะล้างรายการ; อาจเป็น null
ip_blacklistarrayไม่; IP ที่ไม่อนุญาต: null จะไม่เปลี่ยนรายการ ส่วนอาร์เรย์ว่างจะล้างรายการ; อาจเป็น null
quotanumberไม่; วงเงินค่าใช้จ่ายของคีย์ในหน่วย USD; 0 หมายถึงไม่จำกัด; อาจเป็น null
expires_atstringไม่; เวลาหมดอายุในรูปแบบ ISO 8601; อาจเป็น null
reset_quotabooleanไม่; รีเซ็ตจำนวนเงินที่ใช้ไปแล้วจากวงเงินค่าใช้จ่าย; อาจเป็น null
rate_limit_5hnumberไม่; อาจเป็น null
rate_limit_1dnumberไม่; อาจเป็น null
rate_limit_7dnumberไม่; อาจเป็น null
reset_rate_limit_usagebooleanไม่; รีเซ็ตค่าใช้จ่ายที่นับในขีดจำกัดตามช่วงเวลา; อาจเป็น 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 ที่เป็นความลับ อย่าเผยแพร่ค่าจริง

ข้อควรทราบ: ขณะที่คีย์มีคำขอที่ยังไม่เสร็จและมีเงินกันไว้ จะไม่สามารถลดหรือรีเซ็ตวงเงินค่าใช้จ่ายของคีย์ได้ ส่งเฉพาะฟิลด์ที่ต้องการเปลี่ยน

ยังมีคำถามอยู่ใช่ไหม ส่ง Request ID และรายละเอียดมาให้เรา เราจะช่วยตรวจ⁠สอบติดต่อฝ่ายสนับสนุน