OpenAPI và hợp đồng schema
Xem các nguồn schema, quy tắc tương thích, trường công khai và hợp đồng OpenAPI JSON chỉ đọc của Rivya API v1.
Đánh giá lần cuối vào 2026/08/26
Rivya API v1 công bố hợp đồng schema chỉ đọc tại:
https://rivya.ai/api/v1/openapi.jsonRoute này là đầu ra hợp đồng công khai. Route không đọc dữ liệu phiên của người dùng, không gửi tác vụ mô hình và không để lộ dữ liệu tài khoản riêng tư.
Nguồn hợp đồng
Hợp đồng được suy ra từ:
schema yêu cầu của API công khai
mã lỗi công khai
lớp tham chiếu mô hình API công khai
cùng danh mục mô hình mà
/api/v1/modelssử dụng
Danh sách mô hình là động. Không xây dựng tích hợp phụ thuộc vào số lượng mô hình được viết thủ công.
Chính sách phiên bản
Phiên bản API hiện tại là v1.
Thay đổi tương thích ngược có thể bao gồm:
thêm một mô hình vào
/api/v1/modelsthêm một trường phản hồi tùy chọn
thêm một tham số yêu cầu tùy chọn cho một mô hình
thêm một mã lỗi công khai mới
Thay đổi phá vỡ tương thích cần một phiên bản mới hoặc lộ trình chuyển đổi được ghi rõ.
Ranh giới trường công khai
Các trường schema công khai dùng tên công khai:
idstatusmodelsession_idmessageusagereserved_creditsfinal_creditscreated_atupdated_atresulterror
Không phụ thuộc vào các trường lưu trữ tác vụ nội bộ. Chúng không thuộc hợp đồng công khai.
Schema yêu cầu
POST /api/v1/generations chấp nhận:
model: ID mô hình công khai, bắt buộcprompt: chuỗi tùy chọn, bắt buộc với nhiều mô hìnhparams: đối tượng tùy chọn chứa tham số dành riêng cho mô hìnhclient_request_id: chuỗi tùy chọn dùng làm ID theo dõi của bạn
Dùng Tài liệu tham chiếu API mô hình để biết params dành riêng cho từng mô hình.
Nội dung tham chiếu do /api/v1/files trả về phải nằm trong params.referenceMediaItems. Schema ghi rõ url, kind, name tùy chọn, mimeType tùy chọn, durationSeconds / durationToken tùy chọn, width / height / sizeBytes / imageDimensionsToken tùy chọn và framesPerSecond / videoBitrateMbps / videoMetadataToken tùy chọn. Mỗi ảnh tham chiếu Image5, Grok Imagine Image 2.0 hoặc Wan 3.0 đều cần token ảnh có chữ ký và kích thước byte được ràng buộc từ phản hồi tải lên ban đầu có gắn mô hình; Layer Decomposition còn áp dụng các giới hạn hình học đã được ghi trong tài liệu. Mỗi video tham chiếu Video8 và Wan 3.0 đều cần token thời lượng có chữ ký và siêu dữ liệu video có chữ ký từ phản hồi tải lên ban đầu được gắn với mô hình. Rivya không chấp nhận trường files ở cấp cao nhất trong POST /api/v1/generations.
POST /api/v1/files chấp nhận dữ liệu biểu mẫu multipart với file, kind, model tùy chọn và client_request_id tùy chọn. Phản hồi là PublicApiFile, bao gồm size_bytes, kích thước ảnh có thể là null, image_dimensions_token, cùng các trường có thể là null video_width, video_height, frames_per_second, video_bitrate_mbps, video_file_size_bytes và video_metadata_token. GET /api/v1/files/{fileId} trả về siêu dữ liệu công khai cho các tệp thuộc tài khoản API, nhưng token siêu dữ liệu có chữ ký chưa được lưu có thể là null và phải được thay thế bằng cách tải tệp lên lại.
video_metadata_token được ràng buộc với tài khoản API, mô hình đích, URL, kiểu MIME, kích thước, tốc độ khung hình, bitrate và kích thước byte của tệp tải lên. Token này không thay thế duration_token; video tham chiếu Video8 và Wan 3.0 sử dụng cả hai hợp đồng phải cung cấp cả hai token. Token thời lượng âm thanh của Wan 3.0 còn ràng buộc kiểu MIME và kích thước byte của tệp tải lên.
Với wan-3-0-video, params chỉ chấp nhận seedance_scene, variant, resolution, aspect_ratio, duration, audio, seed và referenceMediaItems. Các chế độ văn bản, khung hình và tham chiếu loại trừ lẫn nhau. Thời lượng thông minh là -1, giữ trước 30 giây và không hợp lệ khi dùng cùng video tham chiếu; mọi trường tùy ý, nội dung không có chữ ký, lối tắt file-to-video và lối tắt link-to-video đều bị từ chối theo nguyên tắc đóng khi xác thực thất bại.
POST /api/v1/chat/completions chấp nhận model, message, session_id tùy chọn, các tùy chọn điều khiển, ảnh đính kèm bằng file_id từ Files API và client_request_id tùy chọn. Điểm cuối này trả về một tin nhắn hoàn chỉnh của trợ lý theo chế độ không truyền phát.
POST /api/v1/chat/completions/stream chấp nhận cùng schema yêu cầu và trả về text/event-stream với các sự kiện session.created, message.delta, message.completed, usage.completed, heartbeat, error và done. Chat API v1 không chấp nhận mảng messages thô.
Schema phản hồi
OpenAPI output ghi nhận các cấu trúc phản hồi công khai này:
ModelListchoGET /api/v1/modelsPublicApiModelvàModelParamcho việc chọn mô hình và biểu mẫu tham sốPublicApiFilechoPOST /api/v1/filesvàGET /api/v1/files/{fileId}ReferenceMediaItemcho tham số tạo nội dung dựa trên tệpPublicGenerationcho phản hồi tạo và trạng tháiGenerationResultvàGenerationErrorcho tác vụ đã hoàn tấtChatCompletionRequest,ChatCompletion,ChatSession,ChatMessage,ChatUsage,ChatCreditsvà các schema sự kiện truyền phát Chat cho Chat APICreditBalancechoGET /api/v1/creditsWebhookEndpoint,WebhookEvent,WebhookDeliveryvàWebhookTestResultcho API webhooks có chữ kýPublicApiErrorcho phản hồi lỗi ổn định
Schema này an toàn để dùng cho bước xác thực phía máy khách và kiểm thử tích hợp nội bộ. TypeScript SDK beta tiếp tục tuân theo schema này.
Quản trị ví dụ
Các ví dụ curl, JavaScript và Python trong tài liệu này dùng cùng tên trường công khai như schema:
Authorization: Bearer rvya_sk_...Idempotency-Keymodelpromptmessagesession_idparamsclient_request_id
Ví dụ Chat còn dùng:
chat:createchat:readfile_id
Ví dụ webhook còn dùng:
Rivya-Webhook-SignatureRivya-Webhook-Timestampwebhooks:manage
Khi tham số mô hình thay đổi, hãy cập nhật danh mục mô hình và bộ tuần tự hóa công khai trước. Tài liệu và công cụ gỡ lỗi nên dùng cùng lớp công khai đó thay vì sao chép một bảng riêng.
Trang liên quan
Xác thực API
Xác thực yêu cầu Rivya API bằng Bearer API keys, quyền theo scope, hiển thị secret một lần, thu hồi và xoay vòng key.
Rivya TypeScript SDK
Dùng Rivya TypeScript SDK thử nghiệm để gọi Public API v1 cho mô hình, tác vụ tạo nội dung, tệp, điểm tín dụng, webhook và Chat, bao gồm truyền phát SSE.
