OpenAPI і контракт схеми
Переглядайте джерела схеми Rivya API v1, правила сумісності, публічні поля та read-only контракт OpenAPI JSON.
Востаннє переглянуто 2026/08/26
Rivya API v1 відкриває read-only контракт схеми за адресою:
https://rivya.ai/api/v1/openapi.jsonЦей маршрут є публічним виходом контракту. Він не читає дані сесії користувача, не надсилає задачі моделей і не розкриває приватні дані акаунта.
Джерела контракту
Контракт формується з:
публічних schemas запитів API
публічних кодів помилок
публічного шару API model reference
того самого каталогу моделей, який використовує
/api/v1/models
Список моделей є динамічним. Не будуйте інтеграції, які залежать від вручну записаної кількості моделей.
Політика версій
Поточна версія API - v1.
Зворотно сумісні зміни можуть включати:
додавання моделі до
/api/v1/modelsдодавання необов'язкового поля відповіді
додавання необов'язкового параметра запиту для моделі
додавання нового публічного коду помилки
Несумісні зміни потребують нової версії або задокументованого шляху міграції.
Межа публічних полів
Публічні поля схеми використовують публічні назви:
idstatusmodelsession_idmessageusagereserved_creditsfinal_creditscreated_atupdated_atresulterror
Не покладайтеся на внутрішні поля зберігання задач. Вони не є частиною публічного контракту.
Схема запиту
POST /api/v1/generations приймає:
model: обов'язковий публічний ID моделіprompt: необов'язковий рядок, потрібний багатьом моделямparams: необов'язковий об'єкт із параметрами, специфічними для моделіclient_request_id: необов'язковий рядок для вашого trace ID
Використовуйте Model API Reference для 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, nullable-розмірами зображення, image_dimensions_token, nullable-полями 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 output документує такі публічні форми відповідей:
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і схеми подій stream Chat для Chat APICreditBalanceдляGET /api/v1/creditsWebhookEndpoint,WebhookEvent,WebhookDeliveryіWebhookTestResultдля підписаних API webhooksPublicApiErrorдля стабільних відповідей з помилками
Схему безпечно використовувати для клієнтської валідації та внутрішніх інтеграційних тестів. TypeScript SDK beta лишається обмеженим цією схемою.
Керування прикладами
Приклади curl, JavaScript і Python у цих docs використовують ті самі публічні назви полів, що й схема:
Authorization: Bearer rvya_sk_...Idempotency-Keymodelpromptmessagesession_idparamsclient_request_id
Chat-приклади додатково використовують:
chat:createchat:readfile_id
Webhook-приклади додатково використовують:
Rivya-Webhook-SignatureRivya-Webhook-Timestampwebhooks:manage
Коли параметр моделі змінюється, спочатку оновіть каталог моделей і публічний серіалізатор. Docs і debugger мають використовувати той самий публічний шар, а не копіювати окрему таблицю.
Пов'язані сторінки
Автентифікація API
Автентифікуйте запити Rivya API за допомогою Bearer API-ключів, дозволів зі scope, одноразового показу секрету, відкликання та ротації.
Rivya TypeScript SDK
Використовуйте закриту бета-версію Rivya TypeScript SDK для викликів моделей, генерацій, файлів, кредитів, вебхуків і Chat через Public API v1, зокрема через SSE.
