Contrato de OpenAPI e Schema
Revise fontes de schema da Rivya API v1, regras de compatibilidade, campos públicos e o contrato JSON OpenAPI somente leitura.
Última revisão em 2026/08/26
A Rivya API v1 expõe um contrato de schema somente leitura em:
https://rivya.ai/api/v1/openapi.jsonEsta rota é uma saída de contrato público. Ela não lê dados de sessão de usuário, não envia tarefas de modelo e não expõe dados privados da conta.
Fontes do Contrato
O contrato é derivado de:
schemas públicos de solicitação da API
códigos públicos de erro
a camada pública de referência de modelos da API
o mesmo catálogo de modelos usado por
/api/v1/models
A lista de modelos é dinâmica. Não crie integrações que dependam de uma contagem de modelos escrita manualmente.
Política de Versão
A versão atual da API é v1.
Mudanças compatíveis com versões anteriores podem incluir:
adicionar um modelo a
/api/v1/modelsadicionar um campo opcional de resposta
adicionar um parâmetro opcional de solicitação para um modelo
adicionar um novo código público de erro
Mudanças incompatíveis exigem uma nova versão ou um caminho de migração documentado.
Limite dos Campos Públicos
Campos públicos de schema usam nomes públicos:
idstatusmodelsession_idmessageusagereserved_creditsfinal_creditscreated_atupdated_atresulterror
Não dependa de campos internos de armazenamento de tarefas. Eles não fazem parte do contrato público.
Schema de Solicitação
POST /api/v1/generations aceita:
model: ID público obrigatório do modeloprompt: string opcional, obrigatória em muitos modelosparams: objeto opcional com parâmetros específicos do modeloclient_request_id: string opcional para seu próprio ID de rastreamento
Use a Referência da API de Modelos para params específicos por modelo.
Mídia de referência retornada por /api/v1/files pertence a params.referenceMediaItems. O schema documenta url, kind, name opcional, mimeType opcional, durationSeconds / durationToken opcionais, width / height / sizeBytes / imageDimensionsToken opcionais e framesPerSecond / videoBitrateMbps / videoMetadataToken opcionais. Toda imagem de referência do Image5, do Grok Imagine Image 2.0 ou do Wan 3.0 exige o token de imagem assinado e o tamanho em bytes vinculados à resposta original do upload associado ao modelo; o Layer Decomposition também aplica os limites geométricos documentados. Todo vídeo de referência do Video8 ou do Wan 3.0 exige o token de duração assinado e os metadados de vídeo assinados da resposta original do upload vinculado ao modelo. A Rivya não aceita um campo files de nível superior em POST /api/v1/generations.
POST /api/v1/files aceita dados de formulário multipart com file, kind, model opcional e client_request_id opcional. A resposta é PublicApiFile, incluindo size_bytes, dimensões de imagem que podem ser nulas, image_dimensions_token, video_width, video_height, frames_per_second, video_bitrate_mbps, video_file_size_bytes e video_metadata_token, todos estes campos de vídeo podendo ser nulos. GET /api/v1/files/{fileId} retorna metadados públicos de arquivos pertencentes à conta da API, mas um token de metadados assinado que não foi persistido pode ser null e deve ser substituído por meio de um novo upload.
video_metadata_token fica vinculado à conta da API, ao modelo de destino, à URL, ao tipo MIME, às dimensões, à taxa de quadros, à taxa de bits e ao tamanho do upload em bytes. Ele não substitui duration_token; vídeos de referência do Video8 e do Wan 3.0 que usam os dois contratos devem fornecer ambos os tokens. Os tokens de duração de áudio do Wan 3.0 também vinculam o tipo MIME e o tamanho do upload em bytes.
Para wan-3-0-video, params aceita apenas seedance_scene, variant, resolution, aspect_ratio, duration, audio, seed e referenceMediaItems. As cenas de texto, quadros e referência são mutuamente exclusivas. A duração inteligente é -1, reserva 30 segundos e é inválida com vídeo de referência; chaves arbitrárias, mídia não assinada e atalhos de arquivo para vídeo ou de link para vídeo são rejeitados de forma fechada.
POST /api/v1/chat/completions aceita model, message, session_id opcional, controles opcionais, anexos opcionais da Files API por file_id e client_request_id opcional. Ele retorna uma mensagem completa de assistente sem streaming.
POST /api/v1/chat/completions/stream aceita o mesmo schema de solicitação e retorna text/event-stream com eventos session.created, message.delta, message.completed, usage.completed, heartbeat, error e done. A Chat API v1 não aceita um array bruto de messages.
Schemas de Resposta
A saída OpenAPI documenta estes formatos públicos de resposta:
ModelListparaGET /api/v1/modelsPublicApiModeleModelParampara seleção de modelos e formulários de parâmetrosPublicApiFileparaPOST /api/v1/fileseGET /api/v1/files/{fileId}ReferenceMediaItempara parâmetros de geração baseados em arquivosPublicGenerationpara respostas de criação e statusGenerationResulteGenerationErrorpara tarefas concluídasChatCompletionRequest,ChatCompletion,ChatSession,ChatMessage,ChatUsage,ChatCreditse schemas de eventos de stream de Chat para a Chat APICreditBalanceparaGET /api/v1/creditsWebhookEndpoint,WebhookEvent,WebhookDeliveryeWebhookTestResultpara webhooks assinados da APIPublicApiErrorpara respostas de erro estáveis
O schema é seguro para validação de cliente e testes internos de integração. O beta do TypeScript SDK permanece limitado por este schema.
Governança dos Exemplos
Exemplos de curl, JavaScript e Python nestes docs usam os mesmos nomes de campos públicos que o schema:
Authorization: Bearer rvya_sk_...Idempotency-Keymodelpromptmessagesession_idparamsclient_request_id
Exemplos de Chat também usam:
chat:createchat:readfile_id
Exemplos de webhook também usam:
Rivya-Webhook-SignatureRivya-Webhook-Timestampwebhooks:manage
Quando um parâmetro de modelo mudar, atualize primeiro o catálogo de modelos e o serializador público. A documentação e o depurador devem consumir essa mesma camada pública em vez de copiar uma tabela separada.
Páginas Relacionadas
Autenticação da API
Autentique solicitações da API Rivya com chaves de API Bearer, permissões com escopo, exibição única do segredo, revogação e rotação.
Rivya TypeScript SDK
Use o beta do Rivya TypeScript SDK para chamar a Public API v1 em modelos, gerações, arquivos, créditos, webhooks e Chat, incluindo streaming SSE.