openapi: 3.0.0 info: title: Algebras Authentication Video API version: '1.0' servers: - url: https://platform.algebras.ai/api/v1 - url: http://localhost:3000/api/v1 - url: https://beta.algebras.ai/api/v1 security: - APIKeyHeader: [] tags: - name: Video paths: /video/translate: post: summary: Start translation of an uploaded video file description: 'Starts the video translation process for a video that was previously uploaded to storage. The video must be in UPLOADED or READY status. This will extract audio, transcribe it, translate the transcription, synthesize new audio, and create the final translated video. ' tags: - Video requestBody: required: true content: application/json: schema: type: object required: - videoId - targetLanguage properties: videoId: type: string example: cmgasbs4v0003xodafdivu1bc description: Video record ID from upload-url response targetLanguage: type: string example: ru-RU description: Target language code for translation voicePreference: type: string enum: - male - female description: Optional voice preference for audio synthesis numSpeakers: type: integer minimum: 1 maximum: 32 description: Optional number of speakers for better transcription accuracy responses: '200': description: Video translation started successfully content: application/json: schema: type: object properties: status: type: string example: ok timestamp: type: string format: date-time data: type: object properties: taskId: type: string example: video-translation-task-123 status: type: string example: started '400': description: Invalid input or video not found '401': description: Unauthorized (invalid API key) '500': description: Internal server error /video/status/update: post: summary: Update video upload status description: 'Updates the status of a video after upload completion or failure. Used to mark video as UPLOADED after successful upload to storage bucket, or FAILED if upload failed. Only UPLOADED and FAILED statuses can be set through this endpoint. ' tags: - Video requestBody: required: true content: application/json: schema: type: object required: - videoId - status properties: videoId: type: string example: cmgasbs4v0003xodafdivu1bc description: Video record ID from upload-url response status: type: string enum: - UPLOADED - FAILED example: UPLOADED description: New status for the video responses: '200': description: Video status updated successfully content: application/json: schema: type: object properties: status: type: string example: ok timestamp: type: string format: date-time data: type: object properties: videoId: type: string example: cmgasbs4v0003xodafdivu1bc status: type: string example: UPLOADED updatedAt: type: string format: date-time '400': description: Invalid input or video not found '401': description: Unauthorized (invalid API key) '500': description: Internal server error components: securitySchemes: APIKeyHeader: type: apiKey in: header name: X-Api-Key externalDocs: url: https://docs.algebras.ai