POST/v1/cards
อัปโหลดไฟล์เป็นการ์ด
upload_card
ส่งเอกสารในฟิลด์ file ของฟอร์ม multipart/form-data ก่อนบันทึก Sursa ตรวจว่านามสกุลของชื่อไฟล์ Content-Type ที่ประกาศไว้ของส่วนนั้น และลายเซ็นของเนื้อหาตรงกัน:
- PDF
- DOCX XLSX XLSM และ PPTX: ไฟล์ ZIP ที่มีประเภทเอกสารหลักตามที่ประกาศไว้
- ODS: ไฟล์ ZIP ที่มีรายการ mimetype
- XLS: เอกสาร OLE2 ที่มีสตรีมเวิร์กบุ๊ก
- TXT MD CSV TSV HTML AsciiDoc และ EML: ข้อความที่ไม่มีไบต์ null ในรูปแบบ UTF-8 หรือการเข้ารหัสแบบไบต์เดียว และสำหรับอีเมลต้องมีเฮดเดอร์ที่ส่วนต้น
- PNG JPEG TIFF WebP และ BMP: ตรวจตามลายเซ็น
ถ้าไม่ตรงกันจะส่งคืน 415 files.type_mismatch นามสกุลที่อยู่นอกรายการรูปแบบจะส่งคืน 415 cards.unsupported_format ไฟล์ที่ใหญ่กว่าขีดจำกัดการอัปโหลดของระบบที่ติดตั้ง หรือเกินพื้นที่จัดเก็บรวมขององค์กรตามแพ็กเกจ จะส่งคืน 413 files.too_large เมื่อเปิดการสแกนไวรัส ไฟล์ที่ติดไวรัสจะส่งคืน 422 files.infected และถ้าตัวสแกนไม่พร้อมใช้งานภายใต้นโยบาย “reject” คำขอจะส่งคืน 503 files.scan_unavailable การปฏิเสธแต่ละครั้งบันทึกลงในล็อกการตรวจสอบเป็น file.rejected
แทนที่จะใช้ฟอร์ม สามารถส่งเนื้อหา application/json (CardUploadFromUpload ตั้งแต่ 1.62.0): ไฟล์คือการอัปโหลดแบบหลายส่วนที่พร้อมแล้ว upload_id (POST /v1/uploads ที่มีวัตถุประสงค์ card_file) ฟิลด์เหมือนกับในฟอร์ม และ tags เป็นรายการสตริง ไฟล์ของการอัปโหลดผ่านการตรวจแล้วตอน complete (รูปแบบและการสแกนไวรัส) และขีดจำกัดขนาดคือขีดจำกัดของการอัปโหลดแบบหลายส่วนแทนขีดจำกัดของการอัปโหลดในคำขอเดียว การอัปโหลดใช้ได้ครั้งเดียวในทรานแซกชันเดียวกับที่สร้างการ์ด: การอัปโหลดที่ใช้ไปแล้วจะส่งคืน 409 uploads.already_used การอัปโหลดที่ยังไม่พร้อมจะส่งคืน 409 uploads.not_ready การอัปโหลดที่ถูกปฏิเสธจะส่งคืน 422 uploads.rejected การอัปโหลดที่มีวัตถุประสงค์อื่นจะส่งคืน 422 uploads.purpose_mismatch การอัปโหลดที่หมดอายุจะส่งคืน 410 uploads.expired และการอัปโหลดของผู้เรียกรายอื่นหรือที่ไม่รู้จักจะส่งคืน 404 uploads.not_found ถ้าการตรวจของการ์ดไม่ผ่าน (คอลเลกชัน หมวดหมู่ หรือขีดจำกัด) การอัปโหลดจะยังไม่ถูกใช้
การยืนยันตัวตน
ส่งคีย์ API ในเฮดเดอร์ Authorization: Authorization: Bearer <คีย์>
พารามิเตอร์เฮดเดอร์
Idempotency-Keystringคีย์ป้องกันการทำซ้ำ (idempotency key) สำหรับลองคำขอเขียนข้อมูลใหม่อย่างปลอดภัย: อักขระ ASCII ที่พิมพ์ได้ 1 ถึง 255 ตัว แนะนำให้ใช้ UUID v4 หนึ่งค่าต่อการดำเนินการเชิงตรรกะหนึ่งรายการ การลองใหม่ด้วยคีย์เดิมภายใน 24 ชั่วโมงจะไม่ทำการดำเนินการซ้ำ แต่ส่งคืนการตอบกลับที่บันทึกไว้ (สถานะ เฮดเดอร์ และเนื้อหา) พร้อมเฮดเดอร์
Idempotency-Replayed: trueคีย์เดิมที่ใช้กับเมธอด พาธContent-Typeหรือเนื้อหาที่ต่างออกไปจะส่งคืน409 api.idempotency_mismatchส่วนระหว่างที่คำขอแรกยังทำงานอยู่จะส่งคืน409 api.idempotency_in_progressพร้อมRetry-After: 1หลังการตอบกลับ 5xx หรือ 429 Sursa จะปล่อยคีย์ และการลองใหม่จะทำการดำเนินการอีกครั้ง คีย์มีขอบเขตตามองค์กรและผู้เรียก (คีย์ API ผู้ใช้ หรือคีย์แหล่งข้อมูล)length ≥ 1, length ≤ 255
X-View-Asstringสำหรับคีย์ API ที่มีบทบาท
adminเท่านั้น ทำคำขอในนามโปรไฟล์ข้อมูล<profile>[:viewer|verifier|editor]เช่นemployee:viewerคีย์การติดตั้งใช้เฮดเดอร์นี้ไม่ได้ (403)
พารามิเตอร์คุกกี้
kb_view_asstringคุกกี้ของโหมด “View as” สำหรับเซสชัน
POST /auth/view-asตั้งค่าคุกกี้นี้ และDELETE /auth/view-asล้างค่า
เนื้อหาคำขอ
multipart/form-data
filestring (application/octet-stream)จำเป็นcollectionstringค่าเริ่มต้น: "default"
tagsstringค่าเริ่มต้น: ""
forcebooleanค่าเริ่มต้น: false
owner_idinteger | nullverify_interval_daysinteger | nullcategorystring | nullsensitiveboolean | nullasyncbooleanค่าเริ่มต้น: false
reviewbooleanค่าเริ่มต้น: false
folder_idstring | nullโฟลเดอร์ของ
collectionที่จะใส่การ์ดใหม่ ถ้าเป็นโฟลเดอร์ของคอลเลกชันอื่นจะได้รับ400 folders.card_collection_mismatchถ้าไม่มีโฟลเดอร์นั้นจะได้รับ404 folders.not_foundและถ้าไม่มีสิทธิ์COLLECTION_EDIT_CARDSบนโฟลเดอร์จะได้รับ403 authz.forbiddenระบบตรวจก่อนบันทึกไฟล์ ถ้าไฟล์ซ้ำกับไฟล์ที่อัปโหลดไว้แล้ว (skipped) ระบบจะไม่ย้ายไฟล์นั้นเข้าโฟลเดอร์length ≤ 64
collection_idinteger | nullคอลเลกชันตาม ID เมื่อส่ง
collectionมาด้วย ระบบใช้collection_idถ้าคอลเลกชันไม่มีอยู่ในองค์กรหรือมองไม่เห็นจะได้รับ404 collections.not_foundexternal_idstring | nullexternal_idของการ์ดใหม่ เมื่อระบุค่านี้ ระบบจะสร้างการ์ดแม้คอลเลกชันมีไฟล์เดียวกันอยู่แล้ว ถ้าการ์ดอื่นขององค์กรใช้ค่านี้อยู่ คำขอจะได้รับ409 cards.external_id_takenหากต้องการสร้างหรือแทนที่การ์ดตามexternal_idให้ใช้PUT /v1/cards-by-external-id/{external_id}length ≤ 512
metadatastring | nullmetadataของการ์ดใหม่: ออบเจ็กต์ JSON เป็นค่าของฟิลด์ในฟอร์ม กฎเหมือนกับของMetadataPatch
application/json
ออบเจ็กต์: CardUploadFromUpload
upload_idstringจำเป็นการอัปโหลดที่พร้อมแล้ว (
ready) ที่มีวัตถุประสงค์card_fileใช้ได้ครั้งเดียวcollectionstringค่าเริ่มต้น: "default"
collection_idinteger | nullคอลเลกชันตาม ID หากส่ง
collectionมาด้วย จะใช้collection_idคอลเลกชันที่ไม่มีอยู่ในองค์กร มองไม่เห็น หรืออยู่นอกคอลเลกชันของคีย์จะส่งคืน404 collections.not_foundtagsarray of stringitems ≤ 30
forcebooleanค่าเริ่มต้น: false
owner_idinteger | nullverify_interval_daysinteger | nullcategorystring | nullsensitiveboolean | nullasyncbooleanค่าเริ่มต้น: false
reviewbooleanค่าเริ่มต้น: false
folder_idstring | nulllength ≤ 64
external_idstring | nullexternal_idของการ์ดใหม่ เหมือนในฟิลด์ของฟอร์ม เมื่อระบุค่านี้ ระบบจะสร้างการ์ดแม้คอลเลกชันจะมีไฟล์เดียวกันอยู่แล้ว หากการ์ดอื่นขององค์กรใช้ค่านี้อยู่ คำขอจะส่งคืน409 cards.external_id_takenlength ≤ 512
metadataMetadataPatch
การตอบกลับ
200`queued` (แบบอะซิงโครนัส) `skipped` (ข้อมูลซ้ำ) `ready` หรือ `error` (แบบซิงโครนัส)
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
Idempotency-Replayedtrueหมายถึงการตอบกลับนี้เป็นการส่งคืนซ้ำจากการตอบกลับที่บันทึกไว้สำหรับIdempotency-Keyนี้: ไม่มีการทำการดำเนินการซ้ำ
application/json
400คำขอไม่ถูกต้อง: ค่าพารามิเตอร์หรือสถานะของออบเจ็กต์ไม่อนุญาตให้ดำเนินการ (`detail` เป็นข้อความ)
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
401ไม่ได้ส่งข้อมูลรับรอง (ไม่มีทั้งคุกกี้เซสชันและคีย์ API) หรือไม่พบคีย์
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
402องค์กรใช้ถึงขีดจำกัดของแพ็กเกจแล้ว (การ์ด พื้นที่จัดเก็บ หรือผู้ใช้) `error.details` มี `kind` `limit` และ `used`
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
403ไม่อนุญาตให้ดำเนินการ: บทบาทไม่เพียงพอ ไม่มีสิทธิ์เข้าถึงคอลเลกชันหรือการ์ด คำขอทำงานในโหมด “View as” หรือองค์กรถูกระงับหรือถูกลบ (`detail` เป็นออบเจ็กต์ที่มี `code: org_suspended | org_deleted`)
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
404ออบเจ็กต์ไม่มีอยู่หรือคุณเข้าถึงไม่ได้ API ไม่ยืนยันว่าออบเจ็กต์ที่จำกัดสิทธิ์มีอยู่จริง
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
409สถานะของออบเจ็กต์ไม่อนุญาตให้ดำเนินการ เช่น ข้อมูลซ้ำ การทำดัชนีที่กำลังดำเนินอยู่ หรืองานประมวลผลที่ประมวลผลไปแล้ว
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
410ออบเจ็กต์เคยมีอยู่แต่ไม่พร้อมใช้งานอีกต่อไป: ลิงก์ถูกใช้ไปแล้วหรือหมดอายุ หรือไฟล์ถูกลบเมื่อสิ้นสุดระยะเวลาเก็บรักษา
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
413เนื้อหาคำขอมีขนาดเกินที่อนุญาต
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
415ไม่รองรับรูปแบบไฟล์นี้
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
422ข้อผิดพลาดในการตรวจความถูกต้องของข้อมูล: เนื้อหาหรือพารามิเตอร์ไม่ตรงกับสคีมา (`detail` เป็นรายการข้อผิดพลาดในการตรวจความถูกต้อง) หรือค่าพารามิเตอร์อยู่นอกช่วงที่กำหนด (`detail` เป็นข้อความ)
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
429คำขอมากเกินไป (`api.rate_limited`) โควตาขององค์กรสำหรับนาที วัน หรือเดือนหมดแล้ว (`api.quota_exceeded` โดย `error.details` มี `quota` `limit` และ `reset_at`) องค์กรใช้ถึงขีดจำกัดแล้ว หรือบริการคำตอบไม่ว่าง (`answers.engine_busy`) รอตามเวลาในเฮดเดอร์ `Retry-After`
เฮดเดอร์การตอบกลับ
Retry-Afterจำนวนวินาทีที่ต้องรอก่อนลองส่งคำขอใหม่
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
503บริการที่คำขอนี้ต้องใช้ไม่พร้อมใช้งานชั่วคราว ลองใหม่ภายหลัง
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
รหัสข้อผิดพลาด
รหัสที่เอนด์พอยต์นี้อาจส่งคืนใน error.code นอกเหนือจากรหัสทั่วไปของทุกคำขอ
- 400api.metadata_invalid
- 409api.idempotency_in_progress
- 400api.idempotency_key_invalid
- 409api.idempotency_mismatch
- 401auth.not_authenticated
- 403auth.system_scope
- 403authz.forbidden
- 403cards.duplicate_restricted
- 409cards.external_id_taken
- 403cards.no_access
- 404cards.not_found
- 400cards.review_requires_async
- 403cards.sensitivity_admin_only
- 415cards.unsupported_format
- 400categories.unknown
- 409collections.index_outdated
- 400collections.invalid_name
- 403collections.no_write_access
- 404collections.not_found
- 422files.infected
- 503files.scan_unavailable
- 413files.too_large
- 415files.type_mismatch
- 400folders.card_collection_mismatch
- 404folders.not_found
- 404jobs.not_found
- 402limits.cards
- 403org.deleted
- 403org.suspended
- 409uploads.already_used
- 410uploads.expired
- 404uploads.not_found
- 409uploads.not_ready
- 422uploads.purpose_mismatch
- 422uploads.rejected
- 400users.not_in_org
- 422validation.failed
- 403view_as.read_only
การลองใหม่อย่างปลอดภัย
ส่งเฮดเดอร์ Idempotency-Key (เช่น UUID) ไปกับทุกคำขอ POST และ PATCH เมื่อลองใหม่ด้วยคีย์เดียวกันภายใน 24 ชั่วโมง Sursa จะส่งคืนการตอบกลับที่บันทึกไว้แทนการดำเนินการคำขอซ้ำ
ขีดจำกัดอัตราการเรียก
การตอบกลับมีเฮดเดอร์ RateLimit และ RateLimit-Policy รวมถึงเฮดเดอร์แบบเดิม X-RateLimit-Limit X-RateLimit-Remaining และ X-RateLimit-Reset การตอบกลับ 429 มี Retry-After เป็นวินาที ให้รอตามนั้นแล้วลองใหม่