Files
Scriberr/api-docs/swagger.json
2025-12-15 13:36:12 -08:00

5009 lines
165 KiB
JSON

{
"swagger": "2.0",
"info": {
"description": "Audio transcription service using WhisperX",
"title": "Scriberr API",
"termsOfService": "http://swagger.io/terms/",
"contact": {
"name": "API Support",
"url": "http://www.swagger.io/support",
"email": "support@swagger.io"
},
"license": {
"name": "MIT",
"url": "https://opensource.org/licenses/MIT"
},
"version": "1.0"
},
"host": "localhost:8080",
"basePath": "/api/v1",
"paths": {
"/api/v1/admin/queue/stats": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get current queue statistics",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get queue statistics",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/api/v1/api-keys": {
"get": {
"security": [
{
"BearerAuth": []
}
],
"description": "Get all API keys for the current user (without exposing the actual keys)",
"produces": [
"application/json"
],
"tags": [
"api-keys"
],
"summary": "List API keys",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.APIKeysWrapper"
}
}
}
},
"post": {
"security": [
{
"BearerAuth": []
}
],
"description": "Create a new API key for external API access",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"api-keys"
],
"summary": "Create API key",
"parameters": [
{
"description": "API key creation details",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.CreateAPIKeyRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/api.CreateAPIKeyResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/api-keys/{id}": {
"delete": {
"security": [
{
"BearerAuth": []
}
],
"description": "Delete an API key",
"tags": [
"api-keys"
],
"summary": "Delete API key",
"parameters": [
{
"type": "integer",
"description": "API Key ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/auth/change-password": {
"post": {
"security": [
{
"BearerAuth": []
}
],
"description": "Change the current user's password",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Change user password",
"parameters": [
{
"description": "Password change details",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.ChangePasswordRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/auth/change-username": {
"post": {
"security": [
{
"BearerAuth": []
}
],
"description": "Change the current user's username",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Change username",
"parameters": [
{
"description": "Username change details",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.ChangeUsernameRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"409": {
"description": "Conflict",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/auth/login": {
"post": {
"description": "Authenticate user and return JWT token",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Login",
"parameters": [
{
"description": "User credentials",
"name": "credentials",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.LoginRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.LoginResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/auth/logout": {
"post": {
"security": [
{
"BearerAuth": []
}
],
"description": "Logout user and invalidate token (client-side action)",
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Logout user",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/auth/refresh": {
"post": {
"description": "Rotate refresh token and return new access token",
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Refresh access token",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.RefreshTokenResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/auth/register": {
"post": {
"description": "Register the initial admin user (only allowed when no users exist)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Register initial admin user",
"parameters": [
{
"description": "Registration details",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.RegisterRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/api.LoginResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"409": {
"description": "Conflict",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/auth/registration-status": {
"get": {
"description": "Check if the application requires initial user registration",
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Check registration status",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.RegistrationStatusResponse"
}
}
}
}
},
"/api/v1/chat/models": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get list of available OpenAI chat models",
"produces": [
"application/json"
],
"tags": [
"chat"
],
"summary": "Get available chat models",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.ChatModelsResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/chat/sessions": {
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Create a new chat session for a transcription",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"chat"
],
"summary": "Create a new chat session",
"parameters": [
{
"description": "Chat session creation request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.ChatCreateRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/api.ChatSessionResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/chat/sessions/{session_id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get a specific chat session with all its messages",
"produces": [
"application/json"
],
"tags": [
"chat"
],
"summary": "Get a chat session with messages",
"parameters": [
{
"type": "string",
"description": "Chat Session ID",
"name": "session_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.ChatSessionWithMessages"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Delete a chat session and all its messages",
"produces": [
"application/json"
],
"tags": [
"chat"
],
"summary": "Delete a chat session",
"parameters": [
{
"type": "string",
"description": "Chat Session ID",
"name": "session_id",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/chat/sessions/{session_id}/messages": {
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Send a message to a chat session and get streaming response",
"consumes": [
"application/json"
],
"produces": [
"text/plain"
],
"tags": [
"chat"
],
"summary": "Send a message to a chat session",
"parameters": [
{
"type": "string",
"description": "Chat Session ID",
"name": "session_id",
"in": "path",
"required": true
},
{
"description": "Message content",
"name": "message",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.ChatMessageRequest"
}
}
],
"responses": {
"200": {
"description": "Streaming response",
"schema": {
"type": "string"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/chat/sessions/{session_id}/title": {
"put": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Update the title of a chat session",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"chat"
],
"summary": "Update chat session title",
"parameters": [
{
"type": "string",
"description": "Chat Session ID",
"name": "session_id",
"in": "path",
"required": true
},
{
"description": "Title update request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.ChatSessionResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/chat/sessions/{session_id}/title/auto": {
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Uses the configured LLM to summarize the first exchange into a concise title. Only updates if the current title appears default/user-unset.",
"produces": [
"application/json"
],
"tags": [
"chat"
],
"summary": "Auto-generate chat session title",
"parameters": [
{
"type": "string",
"description": "Chat Session ID",
"name": "session_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.ChatSessionResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/chat/transcriptions/{transcription_id}/sessions": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get all chat sessions for a specific transcription",
"produces": [
"application/json"
],
"tags": [
"chat"
],
"summary": "Get chat sessions for a transcription",
"parameters": [
{
"type": "string",
"description": "Transcription ID",
"name": "transcription_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/api.ChatSessionResponse"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/config/openai/validate": {
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Validate the provided OpenAI API key and return available Whisper models",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"config"
],
"summary": "Validate OpenAI API Key",
"parameters": [
{
"description": "API Key",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.ValidateOpenAIKeyRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/events": {
"get": {
"description": "Subscribe to server-sent events",
"produces": [
"text/event-stream"
],
"tags": [
"events"
],
"summary": "SSE Events",
"responses": {
"200": {
"description": "stream",
"schema": {
"type": "string"
}
}
}
}
},
"/api/v1/llm/config": {
"get": {
"security": [
{
"BearerAuth": []
}
],
"description": "Get the current active LLM configuration",
"produces": [
"application/json"
],
"tags": [
"llm"
],
"summary": "Get LLM configuration",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.LLMConfigResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"BearerAuth": []
}
],
"description": "Create or update LLM configuration settings",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"llm"
],
"summary": "Create or update LLM configuration",
"parameters": [
{
"description": "LLM configuration details",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.LLMConfigRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.LLMConfigResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/notes/{note_id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get a note by its ID",
"produces": [
"application/json"
],
"tags": [
"notes"
],
"summary": "Get a note",
"parameters": [
{
"type": "string",
"description": "Note ID",
"name": "note_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Note"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Update the content of a note",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"notes"
],
"summary": "Update a note",
"parameters": [
{
"type": "string",
"description": "Note ID",
"name": "note_id",
"in": "path",
"required": true
},
{
"description": "Note update payload",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.NoteUpdateRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Note"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a note by its ID",
"produces": [
"application/json"
],
"tags": [
"notes"
],
"summary": "Delete a note",
"parameters": [
{
"type": "string",
"description": "Note ID",
"name": "note_id",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"type": "string"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/profiles": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get list of all transcription profiles",
"produces": [
"application/json"
],
"tags": [
"profiles"
],
"summary": "List transcription profiles",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.TranscriptionProfile"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Create a new transcription profile",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"profiles"
],
"summary": "Create transcription profile",
"parameters": [
{
"description": "Profile data",
"name": "profile",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.TranscriptionProfile"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.TranscriptionProfile"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/profiles/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get a transcription profile by ID",
"produces": [
"application/json"
],
"tags": [
"profiles"
],
"summary": "Get transcription profile",
"parameters": [
{
"type": "string",
"description": "Profile ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.TranscriptionProfile"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Update a transcription profile",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"profiles"
],
"summary": "Update transcription profile",
"parameters": [
{
"type": "string",
"description": "Profile ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Updated profile data",
"name": "profile",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.TranscriptionProfile"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.TranscriptionProfile"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Delete a transcription profile",
"produces": [
"application/json"
],
"tags": [
"profiles"
],
"summary": "Delete transcription profile",
"parameters": [
{
"type": "string",
"description": "Profile ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/profiles/{id}/set-default": {
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Mark the specified profile as the default profile",
"produces": [
"application/json"
],
"tags": [
"profiles"
],
"summary": "Set default transcription profile",
"parameters": [
{
"type": "string",
"description": "Profile ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/summaries": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get all summarization templates",
"produces": [
"application/json"
],
"tags": [
"summaries"
],
"summary": "List summarization templates",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.SummaryTemplate"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
},
{
"BearerAuth": []
}
],
"description": "Create a new summarization template",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"summaries"
],
"summary": "Create summarization template",
"parameters": [
{
"description": "Template payload",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.SummaryTemplateRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.SummaryTemplate"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/summaries/settings": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Get global summarization settings",
"produces": [
"application/json"
],
"tags": [
"summaries"
],
"summary": "Get summary settings",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.SummarySettingsResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create or update global summarization settings",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"summaries"
],
"summary": "Save summary settings",
"parameters": [
{
"description": "Settings payload",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.SummarySettingsRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.SummarySettingsResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/summaries/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get a summarization template by ID",
"produces": [
"application/json"
],
"tags": [
"summaries"
],
"summary": "Get summarization template",
"parameters": [
{
"type": "string",
"description": "Template ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.SummaryTemplate"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
},
{
"BearerAuth": []
}
],
"description": "Update a summarization template by ID",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"summaries"
],
"summary": "Update summarization template",
"parameters": [
{
"type": "string",
"description": "Template ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Template payload",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.SummaryTemplateRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.SummaryTemplate"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a summarization template by ID",
"produces": [
"application/json"
],
"tags": [
"summaries"
],
"summary": "Delete summarization template",
"parameters": [
{
"type": "string",
"description": "Template ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content",
"schema": {
"type": "string"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/summarize": {
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Stream an LLM-generated summary for provided content; persists latest summary for the transcription",
"consumes": [
"application/json"
],
"produces": [
"text/event-stream"
],
"tags": [
"summarize"
],
"summary": "Summarize content",
"parameters": [
{
"description": "Summarize request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.SummarizeRequest"
}
}
],
"responses": {
"200": {
"description": "Event stream",
"schema": {
"type": "string"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/list": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get a list of all transcription jobs with optional search and filtering\nGet a list of all transcription jobs with optional search and filtering",
"produces": [
"application/json",
"application/json"
],
"tags": [
"transcription",
"transcription"
],
"summary": "List all transcription records",
"parameters": [
{
"type": "integer",
"default": 1,
"description": "Page number",
"name": "page",
"in": "query"
},
{
"type": "integer",
"default": 10,
"description": "Items per page",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"default": 1,
"description": "Page number",
"name": "page",
"in": "query"
},
{
"type": "integer",
"default": 10,
"description": "Items per page",
"name": "limit",
"in": "query"
},
{
"type": "string",
"description": "Sort By",
"name": "sort_by",
"in": "query"
},
{
"type": "string",
"description": "Sort Order (asc/desc)",
"name": "sort_order",
"in": "query"
},
{
"type": "string",
"description": "Filter by status",
"name": "status",
"in": "query"
},
{
"type": "string",
"description": "Search in title and audio filename",
"name": "q",
"in": "query"
},
{
"type": "string",
"description": "Filter by updated_at \u003e timestamp (RFC3339)",
"name": "updated_after",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/models": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get list of supported WhisperX models",
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Get supported models",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/api/v1/transcription/quick": {
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Submit an audio file for temporary transcription (data discarded after 6 hours)",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Submit quick transcription job",
"parameters": [
{
"type": "file",
"description": "Audio file",
"name": "audio",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "JSON string of transcription parameters",
"name": "parameters",
"in": "formData"
},
{
"type": "string",
"description": "Profile name to use for transcription",
"name": "profile_name",
"in": "formData"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/transcription.QuickTranscriptionJob"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/quick/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get the current status of a quick transcription job",
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Get quick transcription status",
"parameters": [
{
"type": "string",
"description": "Job ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/transcription.QuickTranscriptionJob"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/submit": {
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Submit an audio file for transcription with WhisperX",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Submit a transcription job",
"parameters": [
{
"type": "file",
"description": "Audio file",
"name": "audio",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Job title",
"name": "title",
"in": "formData"
},
{
"type": "boolean",
"description": "Enable speaker diarization",
"name": "diarization",
"in": "formData"
},
{
"type": "string",
"default": "base",
"description": "Whisper model",
"name": "model",
"in": "formData"
},
{
"type": "string",
"description": "Language code",
"name": "language",
"in": "formData"
},
{
"type": "integer",
"default": 16,
"description": "Batch size",
"name": "batch_size",
"in": "formData"
},
{
"type": "string",
"default": "float16",
"description": "Compute type",
"name": "compute_type",
"in": "formData"
},
{
"type": "string",
"default": "auto",
"description": "Device",
"name": "device",
"in": "formData"
},
{
"type": "boolean",
"description": "Enable VAD filter",
"name": "vad_filter",
"in": "formData"
},
{
"type": "number",
"default": 0.5,
"description": "VAD onset",
"name": "vad_onset",
"in": "formData"
},
{
"type": "number",
"default": 0.363,
"description": "VAD offset",
"name": "vad_offset",
"in": "formData"
},
{
"type": "integer",
"description": "Minimum speakers for diarization",
"name": "min_speakers",
"in": "formData"
},
{
"type": "integer",
"description": "Maximum speakers for diarization",
"name": "max_speakers",
"in": "formData"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.TranscriptionJob"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/upload": {
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Upload an audio file without starting transcription",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Upload audio file",
"parameters": [
{
"type": "file",
"description": "Audio file",
"name": "audio",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Job title",
"name": "title",
"in": "formData"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.TranscriptionJob"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/upload-multitrack": {
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Upload multiple audio files for multi-track transcription",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Upload multi-track audio files",
"parameters": [
{
"type": "string",
"description": "Job title",
"name": "title",
"in": "formData"
},
{
"type": "file",
"description": "Audio track files",
"name": "files",
"in": "formData",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.TranscriptionJob"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/upload-video": {
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Upload a video file, extract audio from it using ffmpeg, and create a transcription job",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Upload video file for transcription",
"parameters": [
{
"type": "file",
"description": "Video file",
"name": "video",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Job title",
"name": "title",
"in": "formData"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.TranscriptionJob"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/youtube": {
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Download audio from a YouTube video URL and prepare it for transcription",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Download audio from YouTube URL",
"parameters": [
{
"description": "YouTube download request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.YouTubeDownloadRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.TranscriptionJob"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get details of a specific transcription job",
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Get transcription job details",
"parameters": [
{
"type": "string",
"description": "Job ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.TranscriptionJob"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
},
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Delete a transcription job and its associated files\nDelete a transcription job and its associated files",
"produces": [
"application/json",
"application/json"
],
"tags": [
"transcription",
"transcription"
],
"summary": "Delete transcription job",
"parameters": [
{
"type": "string",
"description": "Job ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Job ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/{id}/audio": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Serve the audio file for a transcription job",
"produces": [
"audio/mpeg",
"audio/wav",
"audio/mp4"
],
"tags": [
"transcription"
],
"summary": "Get audio file",
"parameters": [
{
"type": "string",
"description": "Job ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "file"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/{id}/execution": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get execution parameters and timing for a transcription job",
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Get transcription job execution data",
"parameters": [
{
"type": "string",
"description": "Job ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.TranscriptionJobExecution"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/{id}/kill": {
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Cancel a currently running transcription job",
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Kill running transcription job",
"parameters": [
{
"type": "string",
"description": "Job ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/{id}/merge-status": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get the current merge status for a multi-track job",
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Get multi-track merge status",
"parameters": [
{
"type": "string",
"description": "Job ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/{id}/notes": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get all notes attached to a transcription, ordered by time and creation",
"produces": [
"application/json"
],
"tags": [
"notes"
],
"summary": "List notes for a transcription",
"parameters": [
{
"type": "string",
"description": "Transcription ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Note"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Create a new note attached to the specified transcription",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"notes"
],
"summary": "Create a note for a transcription",
"parameters": [
{
"type": "string",
"description": "Transcription ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Note create payload",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.NoteCreateRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.Note"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/{id}/speakers": {
"get": {
"security": [
{
"BearerAuth": []
},
{
"ApiKeyAuth": []
}
],
"description": "Retrieves all custom speaker names for a transcription job",
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Get speaker mappings for a transcription",
"parameters": [
{
"type": "string",
"description": "Transcription Job ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/api.SpeakerMappingResponse"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"BearerAuth": []
},
{
"ApiKeyAuth": []
}
],
"description": "Updates or creates custom speaker names for a transcription job",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Update speaker mappings for a transcription",
"parameters": [
{
"type": "string",
"description": "Transcription Job ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Speaker mappings to update",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.SpeakerMappingsUpdateRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/api.SpeakerMappingResponse"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/{id}/start": {
"post": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Start transcription for an already uploaded audio file",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Start transcription for uploaded file",
"parameters": [
{
"type": "string",
"description": "Job ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Transcription parameters",
"name": "parameters",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.WhisperXParams"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.TranscriptionJob"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/{id}/status": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get the current status of a transcription job",
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Get job status",
"parameters": [
{
"type": "string",
"description": "Job ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.TranscriptionJob"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/{id}/summary": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get the most recent saved summary for the given transcription",
"produces": [
"application/json"
],
"tags": [
"summarize"
],
"summary": "Get latest summary for transcription",
"parameters": [
{
"type": "string",
"description": "Transcription ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Summary"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/{id}/title": {
"put": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
},
{
"BearerAuth": []
}
],
"description": "Update the title of an audio file / transcription",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Update transcription title",
"parameters": [
{
"type": "string",
"description": "Job ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Title update request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/{id}/track-progress": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get real-time progress information for individual tracks in a multi-track job",
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Get multi-track job progress",
"parameters": [
{
"type": "string",
"description": "Job ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/transcription/{id}/transcript": {
"get": {
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
],
"description": "Get the transcript for a completed transcription job",
"produces": [
"application/json"
],
"tags": [
"transcription"
],
"summary": "Get transcript",
"parameters": [
{
"type": "string",
"description": "Job ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/user/default-profile": {
"get": {
"security": [
{
"BearerAuth": []
}
],
"description": "Get the default transcription profile for the current user",
"produces": [
"application/json"
],
"tags": [
"profiles"
],
"summary": "Get user's default profile",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.TranscriptionProfile"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"BearerAuth": []
}
],
"description": "Set the default transcription profile for the current user",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"profiles"
],
"summary": "Set user's default profile",
"parameters": [
{
"description": "Default profile request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.SetUserDefaultProfileRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/user/settings": {
"get": {
"security": [
{
"BearerAuth": []
}
],
"description": "Get the current user's settings including auto-transcription preference",
"produces": [
"application/json"
],
"tags": [
"user"
],
"summary": "Get user settings",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.UserSettingsResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"BearerAuth": []
}
],
"description": "Update the current user's settings",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"user"
],
"summary": "Update user settings",
"parameters": [
{
"description": "Settings update request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.UpdateUserSettingsRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/api.UserSettingsResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/health": {
"get": {
"description": "Check if the API is healthy",
"produces": [
"application/json"
],
"tags": [
"health"
],
"summary": "Health check",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/transcription/{id}/logs": {
"get": {
"description": "Get the raw transcription logs for a job",
"produces": [
"text/plain"
],
"tags": [
"transcription"
],
"summary": "Get transcription logs",
"parameters": [
{
"type": "string",
"description": "Job ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Log content",
"schema": {
"type": "string"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/api.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/api.ErrorResponse"
}
}
}
}
}
},
"definitions": {
"api.APIKeyListResponse": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "integer"
},
"is_active": {
"type": "boolean"
},
"key_preview": {
"type": "string"
},
"last_used": {
"type": "string"
},
"name": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"api.APIKeysWrapper": {
"type": "object",
"properties": {
"api_keys": {
"type": "array",
"items": {
"$ref": "#/definitions/api.APIKeyListResponse"
}
}
}
},
"api.ChangePasswordRequest": {
"type": "object",
"required": [
"confirmPassword",
"currentPassword",
"newPassword"
],
"properties": {
"confirmPassword": {
"type": "string"
},
"currentPassword": {
"type": "string"
},
"newPassword": {
"type": "string",
"minLength": 6
}
}
},
"api.ChangeUsernameRequest": {
"type": "object",
"required": [
"newUsername",
"password"
],
"properties": {
"newUsername": {
"type": "string",
"maxLength": 50,
"minLength": 3
},
"password": {
"type": "string"
}
}
},
"api.ChatCreateRequest": {
"type": "object",
"required": [
"model",
"transcription_id"
],
"properties": {
"model": {
"type": "string"
},
"title": {
"type": "string"
},
"transcription_id": {
"type": "string"
}
}
},
"api.ChatMessageRequest": {
"type": "object",
"required": [
"content"
],
"properties": {
"content": {
"type": "string"
}
}
},
"api.ChatMessageResponse": {
"type": "object",
"properties": {
"content": {
"type": "string"
},
"created_at": {
"type": "string"
},
"id": {
"type": "integer"
},
"role": {
"type": "string"
}
}
},
"api.ChatModelsResponse": {
"type": "object",
"properties": {
"models": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"api.ChatSessionResponse": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"last_activity_at": {
"type": "string"
},
"last_message": {
"$ref": "#/definitions/api.ChatMessageResponse"
},
"message_count": {
"type": "integer"
},
"model": {
"type": "string"
},
"provider": {
"type": "string"
},
"title": {
"type": "string"
},
"transcription_id": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"api.ChatSessionWithMessages": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"last_activity_at": {
"type": "string"
},
"last_message": {
"$ref": "#/definitions/api.ChatMessageResponse"
},
"message_count": {
"type": "integer"
},
"messages": {
"type": "array",
"items": {
"$ref": "#/definitions/api.ChatMessageResponse"
}
},
"model": {
"type": "string"
},
"provider": {
"type": "string"
},
"title": {
"type": "string"
},
"transcription_id": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"api.CreateAPIKeyRequest": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"type": "string"
},
"name": {
"type": "string",
"maxLength": 100,
"minLength": 1
}
}
},
"api.CreateAPIKeyResponse": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"id": {
"type": "integer"
},
"key": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"api.ErrorResponse": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
}
},
"api.LLMConfigRequest": {
"type": "object",
"required": [
"provider"
],
"properties": {
"api_key": {
"type": "string"
},
"base_url": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"openai_base_url": {
"type": "string"
},
"provider": {
"type": "string",
"enum": [
"ollama",
"openai"
]
}
}
},
"api.LLMConfigResponse": {
"type": "object",
"properties": {
"base_url": {
"type": "string"
},
"created_at": {
"type": "string"
},
"has_api_key": {
"description": "Don't return actual API key",
"type": "boolean"
},
"id": {
"type": "integer"
},
"is_active": {
"type": "boolean"
},
"openai_base_url": {
"type": "string"
},
"provider": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"api.LoginRequest": {
"type": "object",
"required": [
"password",
"username"
],
"properties": {
"password": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"api.LoginResponse": {
"type": "object",
"properties": {
"token": {
"type": "string"
},
"user": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"username": {
"type": "string"
}
}
}
}
},
"api.NoteCreateRequest": {
"type": "object",
"required": [
"content",
"quote"
],
"properties": {
"content": {
"type": "string",
"minLength": 1
},
"end_time": {
"type": "number",
"minimum": 0
},
"end_word_index": {
"type": "integer",
"minimum": 0
},
"quote": {
"type": "string",
"minLength": 1
},
"start_time": {
"type": "number",
"minimum": 0
},
"start_word_index": {
"description": "Use gte=0 so 0 is valid (first word/time); avoid 'required' which fails for zero values",
"type": "integer",
"minimum": 0
}
}
},
"api.NoteUpdateRequest": {
"type": "object",
"required": [
"content"
],
"properties": {
"content": {
"type": "string",
"minLength": 1
}
}
},
"api.RefreshTokenResponse": {
"type": "object",
"properties": {
"token": {
"type": "string"
}
}
},
"api.RegisterRequest": {
"type": "object",
"required": [
"confirmPassword",
"password",
"username"
],
"properties": {
"confirmPassword": {
"type": "string"
},
"password": {
"type": "string",
"minLength": 6
},
"username": {
"type": "string",
"maxLength": 50,
"minLength": 3
}
}
},
"api.RegistrationStatusResponse": {
"type": "object",
"properties": {
"registration_enabled": {
"description": "Match tests expecting snake_case key",
"type": "boolean"
}
}
},
"api.SetUserDefaultProfileRequest": {
"type": "object",
"required": [
"profile_id"
],
"properties": {
"profile_id": {
"type": "string"
}
}
},
"api.SpeakerMappingRequest": {
"type": "object",
"required": [
"custom_name",
"original_speaker"
],
"properties": {
"custom_name": {
"type": "string"
},
"original_speaker": {
"type": "string"
}
}
},
"api.SpeakerMappingResponse": {
"type": "object",
"properties": {
"custom_name": {
"type": "string"
},
"id": {
"type": "integer"
},
"original_speaker": {
"type": "string"
}
}
},
"api.SpeakerMappingsUpdateRequest": {
"type": "object",
"required": [
"mappings"
],
"properties": {
"mappings": {
"type": "array",
"items": {
"$ref": "#/definitions/api.SpeakerMappingRequest"
}
}
}
},
"api.SummarizeRequest": {
"type": "object",
"required": [
"content",
"model",
"transcription_id"
],
"properties": {
"content": {
"type": "string"
},
"model": {
"type": "string"
},
"template_id": {
"type": "string"
},
"transcription_id": {
"type": "string"
}
}
},
"api.SummarySettingsRequest": {
"type": "object",
"required": [
"default_model"
],
"properties": {
"default_model": {
"type": "string",
"minLength": 1
}
}
},
"api.SummarySettingsResponse": {
"type": "object",
"properties": {
"default_model": {
"type": "string"
}
}
},
"api.SummaryTemplateRequest": {
"type": "object",
"required": [
"model",
"name",
"prompt"
],
"properties": {
"description": {
"type": "string"
},
"model": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"prompt": {
"type": "string",
"minLength": 1
}
}
},
"api.UpdateUserSettingsRequest": {
"type": "object",
"properties": {
"auto_transcription_enabled": {
"type": "boolean"
}
}
},
"api.UserSettingsResponse": {
"type": "object",
"properties": {
"auto_transcription_enabled": {
"type": "boolean"
},
"default_profile_id": {
"type": "string"
}
}
},
"api.ValidateOpenAIKeyRequest": {
"type": "object",
"properties": {
"api_key": {
"type": "string"
}
}
},
"api.YouTubeDownloadRequest": {
"type": "object",
"required": [
"url"
],
"properties": {
"title": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"models.JobStatus": {
"type": "string",
"enum": [
"uploaded",
"pending",
"processing",
"completed",
"failed"
],
"x-enum-varnames": [
"StatusUploaded",
"StatusPending",
"StatusProcessing",
"StatusCompleted",
"StatusFailed"
]
},
"models.MultiTrackFile": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"file_name": {
"description": "Original filename (used as speaker name)",
"type": "string"
},
"file_path": {
"description": "Full path to audio file",
"type": "string"
},
"gain": {
"description": "Gain value from .aup file",
"type": "number"
},
"id": {
"type": "integer"
},
"mute": {
"description": "Whether track is muted",
"type": "boolean"
},
"offset": {
"description": "Offset in seconds from .aup file",
"type": "number"
},
"pan": {
"description": "Pan value from .aup file (-1.0 to 1.0)",
"type": "number"
},
"track_index": {
"description": "Order of the track",
"type": "integer"
},
"transcription_job": {
"description": "Relationships",
"allOf": [
{
"$ref": "#/definitions/models.TranscriptionJob"
}
]
},
"transcription_job_id": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.Note": {
"type": "object",
"properties": {
"content": {
"description": "The user's note content (markdown/plain)",
"type": "string"
},
"created_at": {
"type": "string"
},
"end_time": {
"type": "number"
},
"end_word_index": {
"type": "integer"
},
"id": {
"type": "string"
},
"quote": {
"description": "The exact quoted text chosen by the user",
"type": "string"
},
"start_time": {
"description": "Time bounds for the selection (in seconds)",
"type": "number"
},
"start_word_index": {
"description": "Indexed selection into transcript by word positions",
"type": "integer"
},
"transcription": {
"description": "Relationships",
"allOf": [
{
"$ref": "#/definitions/models.TranscriptionJob"
}
]
},
"transcription_id": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.Summary": {
"type": "object",
"properties": {
"content": {
"type": "string"
},
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"model": {
"type": "string"
},
"template_id": {
"type": "string"
},
"transcription": {
"description": "Relationships",
"allOf": [
{
"$ref": "#/definitions/models.TranscriptionJob"
}
]
},
"transcription_id": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.SummaryTemplate": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"model": {
"type": "string"
},
"name": {
"type": "string"
},
"prompt": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.TranscriptionJob": {
"type": "object",
"properties": {
"audio_path": {
"type": "string"
},
"aup_file_path": {
"type": "string"
},
"created_at": {
"type": "string"
},
"deleted_at": {
"type": "string"
},
"diarization": {
"type": "boolean"
},
"error_message": {
"type": "string"
},
"id": {
"type": "string"
},
"individual_transcripts": {
"description": "JSON-serialized map[string]*string",
"type": "string"
},
"is_multi_track": {
"type": "boolean"
},
"merge_error": {
"type": "string"
},
"merge_status": {
"description": "none, pending, processing, completed, failed",
"type": "string"
},
"merged_audio_path": {
"type": "string"
},
"multi_track_files": {
"description": "Relationships",
"type": "array",
"items": {
"$ref": "#/definitions/models.MultiTrackFile"
}
},
"multi_track_folder": {
"type": "string"
},
"parameters": {
"description": "WhisperX parameters",
"allOf": [
{
"$ref": "#/definitions/models.WhisperXParams"
}
]
},
"status": {
"$ref": "#/definitions/models.JobStatus"
},
"summary": {
"type": "string"
},
"title": {
"type": "string"
},
"transcript": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.TranscriptionJobExecution": {
"type": "object",
"properties": {
"actual_parameters": {
"description": "Parameters used for this execution (may differ from job parameters due to profiles)",
"allOf": [
{
"$ref": "#/definitions/models.WhisperXParams"
}
]
},
"completed_at": {
"type": "string"
},
"created_at": {
"description": "Metadata",
"type": "string"
},
"error_message": {
"type": "string"
},
"id": {
"type": "string"
},
"merge_duration": {
"description": "Merge phase duration in milliseconds",
"type": "integer"
},
"merge_end_time": {
"type": "string"
},
"merge_start_time": {
"type": "string"
},
"multi_track_timings": {
"description": "Multi-track specific timing data",
"type": "string"
},
"processing_duration": {
"description": "Duration in milliseconds",
"type": "integer"
},
"started_at": {
"description": "Execution timing",
"type": "string"
},
"status": {
"description": "Execution results",
"allOf": [
{
"$ref": "#/definitions/models.JobStatus"
}
]
},
"transcription_job": {
"description": "Relationship",
"allOf": [
{
"$ref": "#/definitions/models.TranscriptionJob"
}
]
},
"transcription_job_id": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.TranscriptionProfile": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"is_default": {
"type": "boolean"
},
"name": {
"type": "string"
},
"parameters": {
"$ref": "#/definitions/models.WhisperXParams"
},
"updated_at": {
"type": "string"
}
}
},
"models.WhisperXParams": {
"type": "object",
"properties": {
"align_model": {
"description": "Alignment settings",
"type": "string"
},
"api_key": {
"description": "OpenAI settings",
"type": "string"
},
"attention_context_left": {
"description": "NVIDIA Parakeet-specific parameters for long-form audio",
"type": "integer"
},
"attention_context_right": {
"type": "integer"
},
"batch_size": {
"type": "integer"
},
"beam_size": {
"type": "integer"
},
"best_of": {
"type": "integer"
},
"callback_url": {
"description": "Webhook settings",
"type": "string"
},
"chunk_size": {
"type": "integer"
},
"compression_ratio_threshold": {
"type": "number"
},
"compute_type": {
"type": "string"
},
"condition_on_previous_text": {
"type": "boolean"
},
"device": {
"description": "Device and computation",
"type": "string"
},
"device_index": {
"type": "integer"
},
"diarize": {
"description": "Diarization settings",
"type": "boolean"
},
"diarize_model": {
"description": "Options: 'pyannote', 'nvidia_sortformer'",
"type": "string"
},
"fp16": {
"type": "boolean"
},
"hf_token": {
"description": "Token and progress",
"type": "string"
},
"highlight_words": {
"type": "boolean"
},
"initial_prompt": {
"type": "string"
},
"interpolate_method": {
"type": "string"
},
"is_multi_track_enabled": {
"description": "Multi-track transcription settings",
"type": "boolean"
},
"language": {
"type": "string"
},
"length_penalty": {
"type": "number"
},
"logprob_threshold": {
"type": "number"
},
"max_line_count": {
"type": "integer"
},
"max_line_width": {
"description": "Output formatting",
"type": "integer"
},
"max_speakers": {
"type": "integer"
},
"min_speakers": {
"type": "integer"
},
"model": {
"description": "Model parameters",
"type": "string"
},
"model_cache_only": {
"type": "boolean"
},
"model_dir": {
"type": "string"
},
"model_family": {
"description": "Model family (whisper or nvidia)",
"type": "string"
},
"no_align": {
"type": "boolean"
},
"no_speech_threshold": {
"type": "number"
},
"output_format": {
"description": "Output settings",
"type": "string"
},
"patience": {
"type": "number"
},
"print_progress": {
"type": "boolean"
},
"return_char_alignments": {
"type": "boolean"
},
"segment_resolution": {
"type": "string"
},
"speaker_embeddings": {
"type": "boolean"
},
"suppress_numerals": {
"type": "boolean"
},
"suppress_tokens": {
"type": "string"
},
"task": {
"description": "Task and language",
"type": "string"
},
"temperature": {
"description": "Transcription quality settings",
"type": "number"
},
"temperature_increment_on_fallback": {
"type": "number"
},
"threads": {
"type": "integer"
},
"vad_method": {
"description": "VAD (Voice Activity Detection) settings",
"type": "string"
},
"vad_offset": {
"type": "number"
},
"vad_onset": {
"type": "number"
},
"verbose": {
"type": "boolean"
}
}
},
"transcription.QuickTranscriptionJob": {
"type": "object",
"properties": {
"audio_path": {
"type": "string"
},
"created_at": {
"type": "string"
},
"error_message": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"id": {
"type": "string"
},
"parameters": {
"$ref": "#/definitions/models.WhisperXParams"
},
"status": {
"$ref": "#/definitions/models.JobStatus"
},
"transcript": {
"type": "string"
}
}
}
},
"securityDefinitions": {
"ApiKeyAuth": {
"type": "apiKey",
"name": "X-API-Key",
"in": "header"
},
"BearerAuth": {
"description": "JWT token with Bearer prefix",
"type": "apiKey",
"name": "Authorization",
"in": "header"
}
}
}