สัญญาและโครงสร้าง OpenAPI
ตรวจแหล่งที่มาของโครงสร้างข้อมูล กฎความเข้ากันได้ ฟิลด์สาธารณะ และสัญญา OpenAPI JSON แบบอ่านอย่างเดียวของ Rivya API v1
ตรวจล่าสุดเมื่อ 2026/08/26
Rivya API v1 เปิดเผยสัญญาโครงสร้างข้อมูลแบบอ่านอย่างเดียวที่:
https://rivya.ai/api/v1/openapi.jsonเส้นทางนี้เป็นผลลัพธ์ของสัญญาสาธารณะ ไม่อ่านข้อมูลเซสชันผู้ใช้ ไม่ส่งงานไปยังโมเดล และไม่เปิดเผยข้อมูลบัญชีส่วนตัว
แหล่งที่มาของสัญญา
สัญญานี้มาจาก:
โครงสร้างคำขอของ API สาธารณะ
รหัสข้อผิดพลาดสาธารณะ
ชั้นข้อมูลอ้างอิงโมเดลของ API สาธารณะ
แค็ตตาล็อกโมเดลชุดเดียวกับที่
/api/v1/modelsใช้
รายการโมเดลเปลี่ยนแปลงได้ จึงไม่ควรสร้างระบบเชื่อมต่อที่พึ่งจำนวนโมเดลแบบกำหนดตายตัว
นโยบายเวอร์ชัน
เวอร์ชัน API ปัจจุบันคือ v1
การเปลี่ยนแปลงที่เข้ากันได้กับเวอร์ชันก่อนหน้าอาจรวมถึง:
เพิ่มโมเดลใน
/api/v1/modelsเพิ่มฟิลด์คำตอบแบบไม่บังคับ
เพิ่มพารามิเตอร์คำขอแบบไม่บังคับสำหรับโมเดล
เพิ่มรหัสข้อผิดพลาดสาธารณะใหม่
การเปลี่ยนแปลงที่ไม่เข้ากันต้องใช้เวอร์ชันใหม่หรือมีเส้นทางย้ายระบบที่บันทึกไว้
ขอบเขตฟิลด์สาธารณะ
ฟิลด์ในโครงสร้างสาธารณะใช้ชื่อดังต่อไปนี้:
idstatusmodelsession_idmessageusagereserved_creditsfinal_creditscreated_atupdated_atresulterror
อย่าพึ่งพาฟิลด์ภายในที่ใช้จัดเก็บข้อมูลงาน เพราะฟิลด์เหล่านั้นไม่ได้เป็นส่วนหนึ่งของสัญญา API สาธารณะ
โครงสร้างคำขอ
POST /api/v1/generations รับ:
model: รหัสโมเดลสาธารณะที่จำเป็นprompt: สตริงที่ไม่บังคับ แต่หลายโมเดลจำเป็นต้องใช้params: ออบเจ็กต์ที่ไม่บังคับสำหรับพารามิเตอร์เฉพาะโมเดลclient_request_id: สตริงที่ไม่บังคับสำหรับรหัสติดตามของคุณเอง
ใช้ เอกสารอ้างอิง API ของแต่ละโมเดล สำหรับ params เฉพาะโมเดล
สื่ออ้างอิงที่ /api/v1/files คืนมาต้องอยู่ในสคีมา params.referenceMediaItems ซึ่งระบุ url, kind และฟิลด์ที่เลือกส่งได้ ได้แก่ name, mimeType, durationSeconds / durationToken, width / height / sizeBytes / imageDimensionsToken รวมถึง framesPerSecond / videoBitrateMbps / videoMetadataToken รูปภาพอ้างอิงของ Image5, Grok Imagine Image 2.0 และ Wan 3.0 ทุกรูปต้องใช้โทเคนรูปภาพที่ลงลายเซ็นและขนาดไฟล์เป็นไบต์จากคำตอบการอัปโหลดเดิมที่ผูกกับโมเดล ส่วน Layer Decomposition ยังบังคับใช้ขีดจำกัดทางเรขาคณิตที่ระบุไว้ วิดีโออ้างอิงของ Video8 และ Wan 3.0 ทุกรายการต้องใช้โทเคนระยะเวลาที่ลงลายเซ็นและข้อมูลกำกับวิดีโอที่ลงลายเซ็นจากคำตอบการอัปโหลดเดิมที่ผูกกับโมเดล Rivya ไม่รับฟิลด์ files ที่ระดับบนสุดของ POST /api/v1/generations
POST /api/v1/files รับข้อมูลฟอร์มหลายส่วนแบบ multipart/form-data พร้อม file, kind และฟิลด์ที่เลือกส่งได้คือ model กับ client_request_id คำตอบเป็น PublicApiFile ซึ่งมี size_bytes, มิติรูปภาพที่อาจเป็นค่าว่าง, image_dimensions_token, video_width, video_height, frames_per_second, video_bitrate_mbps, video_file_size_bytes และ video_metadata_token ที่อาจเป็นค่าว่าง ส่วน GET /api/v1/files/{fileId} คืนข้อมูลกำกับสาธารณะของไฟล์ที่บัญชี API เป็นเจ้าของ แต่โทเคนข้อมูลกำกับที่ลงลายเซ็นและไม่ได้จัดเก็บไว้อาจเป็น null จึงต้องอัปโหลดไฟล์ใหม่
video_metadata_token ผูกกับบัญชี API โมเดลเป้าหมาย URL ชนิด MIME มิติ อัตราเฟรม บิตเรต และขนาดไฟล์เป็นไบต์ โทเคนนี้ใช้แทน duration_token ไม่ได้ วิดีโออ้างอิงของ Video8 และ Wan 3.0 ที่ใช้สัญญาทั้งสองแบบต้องส่งโทเคนทั้งคู่ ส่วนโทเคนระยะเวลาของเสียงใน Wan 3.0 ยังผูกกับชนิด MIME และขนาดไฟล์เป็นไบต์ด้วย
สำหรับ wan-3-0-video นั้น params รับเฉพาะ seedance_scene, variant, resolution, aspect_ratio, duration, audio, seed และ referenceMediaItems โหมดข้อความ เฟรม และอ้างอิงเลือกได้เพียงโหมดเดียว ระยะเวลาอัจฉริยะใช้ค่า -1 มีค่าทดแทน 30 วินาที และใช้กับวิดีโออ้างอิงไม่ได้ ฟิลด์อื่น สื่อที่ไม่มีลายเซ็น และทางลัด file-to-video หรือ link-to-video จะถูกปฏิเสธโดยไม่ใช้การประมวลผลสำรอง
POST /api/v1/chat/completions รับ model, message และฟิลด์ที่เลือกส่งได้ ได้แก่ session_id, ตัวควบคุมต่างๆ, ไฟล์แนบ file_id จาก Files API และ client_request_id โดยคืนข้อความตอบกลับจากผู้ช่วยแบบไม่สตรีมที่สมบูรณ์หนึ่งรายการ
POST /api/v1/chat/completions/stream รับสคีมาคำขอเดียวกัน และคืน text/event-stream พร้อมเหตุการณ์ session.created, message.delta, message.completed, usage.completed, heartbeat, error และ done โดย Chat API v1 ไม่รับอาร์เรย์ messages แบบดิบ
สคีมาของคำตอบ
OpenAPI ระบุรูปแบบคำตอบสาธารณะดังต่อไปนี้:
ModelListสำหรับGET /api/v1/modelsPublicApiModelและModelParamสำหรับการเลือกโมเดลและแบบฟอร์มพารามิเตอร์PublicApiFileสำหรับPOST /api/v1/filesและGET /api/v1/files/{fileId}ReferenceMediaItemสำหรับพารามิเตอร์การสร้างที่อิงกับไฟล์PublicGenerationสำหรับคำตอบเมื่อสร้างและตรวจสถานะGenerationResultและGenerationErrorสำหรับงานที่เสร็จแล้วChatCompletionRequest,ChatCompletion,ChatSession,ChatMessage,ChatUsage,ChatCreditsและสคีมาเหตุการณ์สตรีมของแชตสำหรับ Chat APICreditBalanceสำหรับGET /api/v1/creditsWebhookEndpoint,WebhookEvent,WebhookDeliveryและWebhookTestResultสำหรับเว็บฮุก API ที่ลงลายเซ็นPublicApiErrorสำหรับคำตอบข้อผิดพลาดที่มีรูปแบบคงที่
โครงสร้างนี้ใช้ตรวจสอบข้อมูลฝั่งไคลเอนต์และทดสอบการเชื่อมต่อภายในได้อย่างปลอดภัย ส่วน TypeScript SDK รุ่นทดสอบยังคงยึดตามโครงสร้างนี้
ตัวอย่างการกำกับสัญญา
ตัวอย่าง curl, JavaScript และ Python ในเอกสารเหล่านี้ใช้ชื่อฟิลด์สาธารณะชุดเดียวกับโครงสร้าง:
Authorization: Bearer rvya_sk_...Idempotency-Keymodelpromptmessagesession_idparamsclient_request_id
ตัวอย่าง Chat ใช้เพิ่มเติม:
chat:createchat:readfile_id
ตัวอย่าง Webhook ใช้เพิ่มเติม:
Rivya-Webhook-SignatureRivya-Webhook-Timestampwebhooks:manage
เมื่อพารามิเตอร์ของโมเดลเปลี่ยน ให้อัปเดตแค็ตตาล็อกโมเดลและตัวแปลงข้อมูลสาธารณะก่อน เอกสารและเครื่องมือดีบักควรใช้ชั้นข้อมูลสาธารณะชุดเดียวกัน แทนการคัดลอกตารางแยกอีกชุด
หน้าที่เกี่ยวข้อง
การยืนยันตัวตน API
ยืนยันตัวตนคำขอ Rivya API ด้วยคีย์ API แบบ Bearer กำหนดขอบเขตสิทธิ์ แสดงค่าลับเพียงครั้งเดียว เพิกถอน และหมุนเวียนคีย์อย่างปลอดภัย
Rivya TypeScript SDK สำหรับนักพัฒนา
ใช้ Rivya TypeScript SDK รุ่นทดสอบเพื่อเรียก Public API v1 สำหรับโมเดล งานสร้าง ไฟล์ เครดิต เว็บฮุก และแชต รวมถึงการสตรีมผ่าน SSE
