OpenAPI and Schema Contract
Rivya API v1 schema sources, compatibility rules, public fields এবং read-only OpenAPI JSON contract review করুন।
শেষ review 2026/05/11
Rivya API v1 এখানে read-only schema contract expose করে:
https://rivya.ai/api/v1/openapi.jsonএই route একটি public contract output। এটি user session data read করে না, model jobs submit করে না, এবং private account data expose করে না।
Contract Sources
contract derived হয়:
- public API request schemas
- public error codes
- public API model reference layer
/api/v1/modelsযে একই model catalog ব্যবহার করে
model list dynamic। manually written model count-এর ওপর depend করে এমন integrations build করবেন না।
Version Policy
current API version হলো v1।
Backward-compatible changes অন্তর্ভুক্ত করতে পারে:
/api/v1/models-এ model যোগ করা- optional response field যোগ করা
- কোনো model-এর optional request parameter যোগ করা
- new public error code যোগ করা
Breaking changes-এর জন্য new version বা documented migration path দরকার।
Public Field Boundary
Public schema fields public names ব্যবহার করে:
idstatusmodelsession_idmessageusagereserved_creditsfinal_creditscreated_atupdated_atresulterror
internal task storage fields-এর ওপর depend করবেন না। এগুলো public contract-এর অংশ নয়।
Request Schema
POST /api/v1/generations accepts:
model: required public model IDprompt: optional string, অনেক models-এর জন্য requiredparams: model-specific parameters সহ optional objectclient_request_id: আপনার trace ID-এর জন্য optional string
model-specific params-এর জন্য Model API Reference ব্যবহার করুন।
/api/v1/files থেকে returned reference media params.referenceMediaItems-এর ভিতরে থাকে। schema url, kind, optional name, optional mimeType, optional durationSeconds এবং optional durationToken document করে। Rivya POST /api/v1/generations-এ top-level files field accept করে না।
POST /api/v1/files multipart form data accept করে, যেখানে file, kind, optional model এবং optional client_request_id থাকে। response হলো PublicApiFile। GET /api/v1/files/{fileId} API account-owned files-এর জন্য একই public file metadata return করে।
POST /api/v1/chat/completions accepts model, message, optional session_id, optional controls, optional Files API file_id attachments এবং optional client_request_id। এটি একটি complete non-streaming assistant message return করে।
POST /api/v1/chat/completions/stream একই request schema accept করে এবং session.created, message.delta, message.completed, usage.completed, heartbeat, error ও done events সহ text/event-stream return করে। Chat API v1 raw messages array accept করে না।
Response Schemas
OpenAPI output এই public response shapes document করে:
ModelListforGET /api/v1/modelsPublicApiModelandModelParamfor model selection and parameter formsPublicApiFileforPOST /api/v1/filesandGET /api/v1/files/{fileId}ReferenceMediaItemfor file-backed generation parametersPublicGenerationfor create and status responsesGenerationResultandGenerationErrorfor completed tasksChatCompletionRequest,ChatCompletion,ChatSession,ChatMessage,ChatUsage,ChatCredits, and Chat stream event schemas for Chat APICreditBalanceforGET /api/v1/creditsWebhookEndpoint,WebhookEvent,WebhookDelivery, andWebhookTestResultfor signed API webhooksPublicApiErrorfor stable error responses
schema client validation এবং internal integration tests-এর জন্য safe। TypeScript SDK beta এই schema দ্বারাই constrained থাকে।
Example Governance
এই docs-এর curl, JavaScript এবং Python examples schema-এর একই public field names ব্যবহার করে:
Authorization: Bearer rvya_sk_...Idempotency-Keymodelpromptmessagesession_idparamsclient_request_id
Chat examples additionally use:
chat:createchat:readfile_id
Webhook examples additionally use:
Rivya-Webhook-SignatureRivya-Webhook-Timestampwebhooks:manage
model parameter বদলালে আগে model catalog এবং public serializer update করুন। docs এবং debugger আলাদা table copy না করে একই public layer consume করা উচিত।