### Deploy Transmute with Docker Compose Source: https://transmute.sh/docs/getting-started Downloads the official docker-compose.yml file and initiates the service stack in detached mode. This command requires Docker and Docker Compose to be installed on the host system. ```bash wget "https://raw.githubusercontent.com/transmute-app/transmute/refs/heads/main/docker-compose.yml" && docker compose up -d ``` -------------------------------- ### Start Conversion Source: https://transmute.sh/docs/api-reference Starts a new file conversion process. ```APIDOC ## POST /api/conversions ### Description Starts a new file conversion process. ### Method POST ### Endpoint /api/conversions ### Parameters #### Request Body - **source_file_id** (string) - Required - The ID of the file to convert. - **target_format** (string) - Required - The desired output format (e.g., 'pdf', 'docx'). ### Response #### Success Response (200) - **conversion_id** (string) - The unique identifier for this conversion job. #### Response Example ```json { "conversion_id": "conv_abcde" } ``` ``` -------------------------------- ### Verify Transmute Container Status Source: https://transmute.sh/docs/getting-started Checks the health and status of the running Docker containers. Use this to ensure the Transmute service is correctly initialized and healthy. ```bash docker compose ps ``` -------------------------------- ### Configure Transmute with Docker Compose Source: https://transmute.sh/docs/environment-variables An example configuration for deploying Transmute using Docker Compose, demonstrating how to define environment variables and persistent volumes. ```yaml services: transmute: image: ghcr.io/transmute-app/transmute:main container_name: transmute restart: unless-stopped ports: - 3313:3313 volumes: - transmute_data:/app/data environment: - AUTH_SECRET_KEY=replace-with-a-long-random-string - AUTH_ACCESS_TOKEN_EXPIRE_MINUTES=120 - PORT=3313 volumes: transmute_data: ``` -------------------------------- ### Get Application Settings Source: https://transmute.sh/docs/api-reference Retrieves the current configuration settings for the Transmute instance, such as theme and cleanup policies. ```bash curl http://localhost:3313/api/settings ``` -------------------------------- ### Get Settings Source: https://transmute.sh/docs/api-reference Retrieves the current application settings. ```APIDOC ## GET /api/settings ### Description Retrieves the current application settings. ### Method GET ### Endpoint /api/settings ### Response #### Success Response (200) - **theme** (string) - The current theme setting. - **auto_download** (boolean) - The current auto-download setting. #### Response Example ```json { "theme": "nigredo", "auto_download": true } ``` ``` -------------------------------- ### Start a Conversion Source: https://transmute.sh/docs/api-reference Initiates a file conversion to a specified output format. Requires the file ID from the upload step. ```APIDOC ## POST /api/conversions ### Description Initiates a file conversion to a specified output format. Requires the file ID from the upload step. ### Method POST ### Endpoint /api/conversions ### Parameters #### Request Body - **id** (string) - Required - The ID of the file to convert (obtained from the upload response). - **output_format** (string) - Required - The desired output format (e.g., 'png'). ### Request Example ```bash curl -X POST http://localhost:3313/api/conversions \ -H "Content-Type: application/json" \ -d '{ "id": "123e4567-e89b-12d3-a456-426614174000", "output_format": "png" }' ``` ### Response #### Success Response (200 OK) - **id** (string) - The ID of the converted file. - **original_filename** (string) - The original filename. - **media_type** (string) - The media type of the converted file. - **extension** (string) - The file extension of the converted file. - **size_bytes** (integer) - The size of the converted file in bytes. - **sha256_checksum** (string) - The SHA256 checksum of the converted file. #### Response Example ```json { "id": "987fcdeb-51a2-43f1-b789-123456789abc", "original_filename": "photo.png", "media_type": "png", "extension": ".png", "size_bytes": 153600, "sha256_checksum": "def789abc123..." } ``` ``` -------------------------------- ### Get Current Settings Source: https://transmute.sh/docs/api-reference Retrieves the current application settings. ```APIDOC ## GET /api/settings ### Description Retrieves the current application settings. ### Method GET ### Endpoint /api/settings ### Response #### Success Response (200 OK) - **theme** (string) - The current theme setting. - **auto_download** (boolean) - Whether auto-download is enabled. - **keep_originals** (boolean) - Whether original files are kept after conversion. - **cleanup_ttl_minutes** (integer) - Time-to-live for cleanup in minutes. #### Response Example ```json { "theme": "rubedo", "auto_download": false, "keep_originals": true, "cleanup_ttl_minutes": 60 } ``` ``` -------------------------------- ### GET /api/users/{uuid} Source: https://transmute.sh/docs/authentication Retrieves detailed information about a specific user by their unique identifier. ```APIDOC ## GET /api/users/{uuid} ### Description Fetches user details. Requires Admin privileges. ### Method GET ### Endpoint /api/users/{uuid} ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier of the user ### Response #### Success Response (200) - **uuid** (string) - User ID - **username** (string) - Username - **role** (string) - User role ``` -------------------------------- ### Batch Download Files as ZIP Source: https://transmute.sh/docs/api-reference Downloads multiple converted files simultaneously as a single ZIP archive. Requires an array of file IDs. ```bash curl -X POST http://localhost:3313/api/files/batch \ -H "Content-Type: application/json" \ -d '{ "file_ids": [ "987fcdeb-51a2-43f1-b789-123456789abc", "aabbccdd-1122-3344-5566-778899aabbcc" ] }' \ --output converted_files.zip ``` -------------------------------- ### Automated Admin Creation via API Source: https://transmute.sh/docs/authentication Programmatically initialize the first administrator account by sending a POST request to the users endpoint during the bootstrap phase. ```bash curl -X POST http://localhost:3313/api/users \ -H "Content-Type: application/json" \ -d '{"username": "admin", "password": "securepassword123", "email": "admin@example.com"}' ``` -------------------------------- ### Download Converted File Source: https://transmute.sh/docs/api-reference Downloads the raw binary result of a completed conversion using the conversion ID. ```bash curl -OJ http://localhost:3313/api/files/987fcdeb-51a2-43f1-b789-123456789abc ``` -------------------------------- ### System Health and Info Source: https://transmute.sh/docs/api-reference Endpoints to verify server liveness, readiness, and application version information for monitoring. ```bash curl http://localhost:3313/api/health/live curl http://localhost:3313/api/health/ready curl http://localhost:3313/api/health/info ``` -------------------------------- ### Readiness Check Source: https://transmute.sh/docs/api-reference Confirms that the Transmute server is ready to handle requests, including database and storage accessibility. ```APIDOC ## GET /api/health/ready ### Description Confirms that the Transmute server is ready to handle requests, including database and storage accessibility. ### Method GET ### Endpoint /api/health/ready ### Response #### Success Response (200 OK) - **status** (string) - Should be 'ready'. - **checks** (object) - Status of internal checks (e.g., 'database', 'storage'). #### Response Example ```json { "status": "ready", "checks": { "database": "ok", "storage": "ok" } } ``` #### Error Response (503 Service Unavailable) Returned if any internal check fails. ``` -------------------------------- ### Convert File Format Source: https://transmute.sh/docs/api-reference Initiates a conversion process for an uploaded file. Requires the source file ID and the target output format. ```bash curl -X POST http://localhost:3313/api/conversions \ -H "Content-Type: application/json" \ -d '{ "id": "123e4567-e89b-12d3-a456-426614174000", "output_format": "png" }' ``` -------------------------------- ### Batch Download as ZIP Source: https://transmute.sh/docs/api-reference Initiates a batch download of selected files as a ZIP archive. ```APIDOC ## POST /api/files/batch ### Description Initiates a batch download of selected files as a ZIP archive. ### Method POST ### Endpoint /api/files/batch ### Parameters #### Request Body - **file_ids** (array) - Required - A list of file IDs to include in the ZIP archive. - **id** (string) - The unique identifier of a file. ### Response #### Success Response (200) - **download_url** (string) - The URL to download the generated ZIP file. #### Response Example ```json { "download_url": "http://localhost:3313/downloads/batch_12345.zip" } ``` ``` -------------------------------- ### Batch Download as ZIP Source: https://transmute.sh/docs/api-reference Downloads multiple converted files as a single ZIP archive. ```APIDOC ## POST /api/files/batch ### Description Downloads multiple converted files as a single ZIP archive. ### Method POST ### Endpoint /api/files/batch ### Parameters #### Request Body - **file_ids** (array of strings) - Required - A list of file IDs to include in the ZIP archive. ### Request Example ```bash curl -X POST http://localhost:3313/api/files/batch \ -H "Content-Type: application/json" \ -d '{ "file_ids": [ "987fcdeb-51a2-43f1-b789-123456789abc", "aabbccdd-1122-3344-5566-778899aabbcc" ] }' \ --output converted_files.zip ``` ### Response #### Success Response (200 OK) The response is an `application/zip` archive containing all requested files. ``` -------------------------------- ### Application Info Source: https://transmute.sh/docs/api-reference Retrieves the application name and version. ```APIDOC ## GET /api/health/info ### Description Retrieves the application name and version. ### Method GET ### Endpoint /api/health/info ### Response #### Success Response (200 OK) - **name** (string) - The name of the application. - **version** (string) - The version of the application. #### Response Example ```json { "name": "Transmute", "version": "v1.0.0" } ``` ``` -------------------------------- ### Manage Files and Conversions Source: https://transmute.sh/docs/api-reference Endpoints for listing, deleting individual items, or clearing all files and conversions from the server. ```bash curl http://localhost:3313/api/files curl http://localhost:3313/api/conversions/complete curl -X DELETE http://localhost:3313/api/files/{file_id} curl -X DELETE http://localhost:3313/api/files/all ``` -------------------------------- ### Liveness Check Source: https://transmute.sh/docs/api-reference Confirms that the Transmute server process is running. ```APIDOC ## GET /api/health/live ### Description Confirms that the Transmute server process is running. ### Method GET ### Endpoint /api/health/live ### Response #### Success Response (200 OK) - **status** (string) - Should be 'alive'. #### Response Example ```json { "status": "alive" } ``` ``` -------------------------------- ### Readiness Check Source: https://transmute.sh/docs/api-reference Performs a readiness check to determine if the application is ready to serve requests. ```APIDOC ## GET /api/health/ready ### Description Performs a readiness check to determine if the application is ready to serve requests. ### Method GET ### Endpoint /api/health/ready ### Response #### Success Response (200) - **status** (string) - Indicates the readiness status (e.g., 'ready'). #### Response Example ```json { "status": "ready" } ``` ``` -------------------------------- ### Generate Secure Secret Keys Source: https://transmute.sh/docs/environment-variables Command-line utilities to generate a cryptographically secure random string for the AUTH_SECRET_KEY variable using Python or OpenSSL. ```bash # Using Python python3 -c "import secrets; print(secrets.token_urlsafe(64))" # Using OpenSSL openssl rand -base64 64 ``` -------------------------------- ### Download a File Source: https://transmute.sh/docs/api-reference Downloads a specific file using its ID. The response is the raw file binary. ```APIDOC ## GET /api/files/{file_id} ### Description Downloads a specific file using its ID. The response is the raw file binary. ### Method GET ### Endpoint /api/files/{file_id} ### Parameters #### Path Parameters - **file_id** (string) - Required - The ID of the file to download. ### Request Example ```bash curl -OJ http://localhost:3313/api/files/987fcdeb-51a2-43f1-b789-123456789abc ``` ### Response #### Success Response (200 OK) The response is the raw file binary (`application/octet-stream`). ``` -------------------------------- ### Upload File via REST API Source: https://transmute.sh/docs/api-reference Uploads a local file to the Transmute server for processing. Returns metadata including a unique file ID and a list of compatible output formats. ```bash curl -X POST http://localhost:3313/api/files \ -F "file=@photo.jpg" ``` -------------------------------- ### Upload a File Source: https://transmute.sh/docs/api-reference Uploads a file to Transmute. The response includes metadata and a list of compatible output formats. ```APIDOC ## POST /api/files ### Description Uploads a file to Transmute. The response includes metadata and a list of compatible output formats. ### Method POST ### Endpoint /api/files ### Parameters #### Form Data - **file** (file) - Required - The file to upload. ### Request Example ```bash curl -X POST http://localhost:3313/api/files \ -F "file=@photo.jpg" ``` ### Response #### Success Response (200 OK) - **message** (string) - Confirmation message. - **metadata** (object) - Contains details about the uploaded file: - **id** (string) - Unique identifier for the file. - **original_filename** (string) - The original name of the file. - **media_type** (string) - The media type (e.g., 'jpg'). - **extension** (string) - The file extension (e.g., '.jpg'). - **size_bytes** (integer) - The size of the file in bytes. - **sha256_checksum** (string) - The SHA256 checksum of the file. - **compatible_formats** (array of strings) - A list of formats the file can be converted to. #### Response Example ```json { "message": "File uploaded successfully", "metadata": { "id": "123e4567-e89b-12d3-a456-426614174000", "original_filename": "photo.jpg", "media_type": "jpg", "extension": ".jpg", "size_bytes": 204800, "sha256_checksum": "abc123def456...", "compatible_formats": ["png", "gif", "webp", "bmp", "tiff", "ico"] } } ``` ``` -------------------------------- ### List Uploaded Files Source: https://transmute.sh/docs/api-reference Retrieves a list of all uploaded files. ```APIDOC ## GET /api/files ### Description Retrieves a list of all uploaded files. ### Method GET ### Endpoint /api/files ### Response #### Success Response (200) - **files** (array) - A list of file objects. - **id** (string) - The unique identifier of the file. - **filename** (string) - The name of the file. #### Response Example ```json { "files": [ { "id": "file_12345", "filename": "example.txt" }, { "id": "file_67890", "filename": "document.pdf" } ] } ``` ``` -------------------------------- ### File Upload Source: https://transmute.sh/docs/api-reference Uploads a file to the server. ```APIDOC ## POST /api/files ### Description Uploads a file to the server. ### Method POST ### Endpoint /api/files ### Parameters #### Request Body - **file** (file) - Required - The file to upload. ### Response #### Success Response (200) - **id** (string) - The unique identifier of the uploaded file. - **filename** (string) - The name of the uploaded file. #### Response Example ```json { "id": "file_12345", "filename": "example.txt" } ``` ``` -------------------------------- ### List Uploaded Files Source: https://transmute.sh/docs/api-reference Retrieves a list of all uploaded files with their metadata. ```APIDOC ## GET /api/files ### Description Retrieves a list of all uploaded files with their metadata. ### Method GET ### Endpoint /api/files ### Response #### Success Response (200 OK) - **files** (array of objects) - An array containing metadata for each uploaded file. ``` -------------------------------- ### POST /api/api-keys Source: https://transmute.sh/docs/authentication Creates a new API key for the authenticated user to allow programmatic access. ```APIDOC ## POST /api/api-keys ### Description Generates a new persistent API key for the authenticated user. ### Method POST ### Endpoint /api/api-keys ### Request Body - **name** (string) - Optional - A label for the API key ### Response #### Success Response (200) - **key** (string) - The generated API key ``` -------------------------------- ### Liveness Check Source: https://transmute.sh/docs/api-reference Performs a liveness check to determine if the application is running. ```APIDOC ## GET /api/health/live ### Description Performs a liveness check to determine if the application is running. ### Method GET ### Endpoint /api/health/live ### Response #### Success Response (200) - **status** (string) - Indicates the liveness status (e.g., 'alive'). #### Response Example ```json { "status": "alive" } ``` ``` -------------------------------- ### Authenticate with Username and Password (JWT) Source: https://transmute.sh/docs/authentication This snippet demonstrates how to authenticate with the API using a username and password to obtain a JWT. The JWT is then used in subsequent requests. The token has a default expiration of 60 minutes. ```bash curl -X POST http://localhost:3313/api/users/authenticate \ -H "Content-Type: application/json" \ -d '{ "username": "alice", "password": "correct horse battery staple" }' ``` ```json { "access_token": "eyJhbGciOiJIUzI1NiIs...", "token_type": "bearer", "expires_in": 3600, "user": { "uuid": "...", "username": "alice", "role": "member", "disabled": false } } ``` ```bash curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \ http://localhost:3313/api/files ``` -------------------------------- ### Authenticate with API Key Source: https://transmute.sh/docs/authentication This snippet shows how to authenticate with the API using a pre-generated API Key. The API key is passed directly as a Bearer token in the Authorization header. API keys do not expire automatically and remain valid until deleted or the associated user is disabled. ```bash curl -H "Authorization: Bearer tm_abc123..." \ http://localhost:3313/api/files ``` -------------------------------- ### Application Metadata Source: https://transmute.sh/docs/api-reference Retrieves metadata about the application. ```APIDOC ## GET /api/health/info ### Description Retrieves metadata about the application. ### Method GET ### Endpoint /api/health/info ### Response #### Success Response (200) - **version** (string) - The application version. - **build_date** (string) - The build date of the application. - **commit_hash** (string) - The Git commit hash. #### Response Example ```json { "version": "1.0.0", "build_date": "2023-10-27T09:00:00Z", "commit_hash": "abcdef123456" } ``` ``` -------------------------------- ### List Completed Conversions Source: https://transmute.sh/docs/api-reference Retrieves a list of all completed file conversions, including references to original files. ```APIDOC ## GET /api/conversions/complete ### Description Retrieves a list of all completed file conversions, including references to original files. ### Method GET ### Endpoint /api/conversions/complete ### Response #### Success Response (200 OK) - **conversions** (array of objects) - An array containing metadata for each completed conversion. ``` -------------------------------- ### Delete All Files Source: https://transmute.sh/docs/api-reference Deletes all uploaded files. ```APIDOC ## DELETE /api/files/all ### Description Deletes all uploaded files. ### Method DELETE ### Endpoint /api/files/all ### Response #### Success Response (200) - **message** (string) - A confirmation message indicating all files were deleted. #### Response Example ```json { "message": "All files deleted successfully." } ``` ``` -------------------------------- ### Download File Source: https://transmute.sh/docs/api-reference Downloads a specific file by its ID. ```APIDOC ## GET /api/files/{id} ### Description Downloads a specific file by its ID. ### Method GET ### Endpoint /api/files/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the file to download. ### Response #### Success Response (200) - The response body will contain the content of the requested file. #### Response Example (Binary content of the file) ``` -------------------------------- ### List Completed Conversions Source: https://transmute.sh/docs/api-reference Retrieves a list of all completed conversion jobs. ```APIDOC ## GET /api/conversions/complete ### Description Retrieves a list of all completed conversion jobs. ### Method GET ### Endpoint /api/conversions/complete ### Response #### Success Response (200) - **conversions** (array) - A list of completed conversion objects. - **id** (string) - The unique identifier of the conversion. - **source_file_id** (string) - The ID of the original file. - **target_format** (string) - The target format of the conversion. - **completed_at** (string) - Timestamp when the conversion was completed. - **output_file_id** (string) - The ID of the resulting converted file. #### Response Example ```json { "conversions": [ { "id": "conv_abcde", "source_file_id": "file_12345", "target_format": "pdf", "completed_at": "2023-10-27T10:00:00Z", "output_file_id": "file_67890" } ] } ``` ``` -------------------------------- ### POST /api/users/authenticate Source: https://transmute.sh/docs/authentication Authenticates a user using their username and password to return a JWT access token. ```APIDOC ## POST /api/users/authenticate ### Description Authenticates a user with credentials and returns a bearer token for subsequent requests. ### Method POST ### Endpoint /api/users/authenticate ### Request Body - **username** (string) - Required - The user's username - **password** (string) - Required - The user's password ### Request Example { "username": "alice", "password": "correct horse battery staple" } ### Response #### Success Response (200) - **access_token** (string) - The JWT token - **token_type** (string) - The type of token - **expires_in** (integer) - Token lifetime in seconds - **user** (object) - User details #### Response Example { "access_token": "eyJhbGciOiJIUzI1NiIs...", "token_type": "bearer", "expires_in": 3600, "user": { "uuid": "...", "username": "alice", "role": "member", "disabled": false } } ``` -------------------------------- ### Update Settings Source: https://transmute.sh/docs/api-reference Updates the application settings. Only the fields provided in the request body are updated. ```APIDOC ## PATCH /api/settings ### Description Updates the application settings. Only the fields provided in the request body are updated. ### Method PATCH ### Endpoint /api/settings ### Parameters #### Request Body - **theme** (string) - Optional - The theme to apply to the application. - **auto_download** (boolean) - Optional - Whether to automatically download files. ### Request Example ```json { "theme": "nigredo", "auto_download": true } ``` ### Response #### Success Response (200) - **message** (string) - A confirmation message indicating the settings were updated. #### Response Example ```json { "message": "Settings updated successfully." } ``` ``` -------------------------------- ### Delete All Files / Conversions Source: https://transmute.sh/docs/api-reference Provides endpoints to delete all uploaded files or all completed conversions. ```APIDOC ## DELETE /api/files/all & DELETE /api/conversions/all ### Description Provides endpoints to delete all uploaded files or all completed conversions. ### Method DELETE ### Endpoint /api/files/all - Deletes all uploaded files. /api/conversions/all - Deletes all completed conversions. ### Request Example ```bash # Delete all uploaded files curl -X DELETE http://localhost:3313/api/files/all # Delete all conversions curl -X DELETE http://localhost:3313/api/conversions/all ``` ``` -------------------------------- ### Update Application Settings via PATCH Source: https://transmute.sh/docs/api-reference Updates specific configuration settings for the Transmute service. This endpoint accepts a JSON payload where only the provided fields are modified. ```bash curl -X PATCH http://localhost:3313/api/settings \ -H "Content-Type: application/json" \ -d '{ "theme": "nigredo", "auto_download": true }' ``` -------------------------------- ### Delete All Conversions Source: https://transmute.sh/docs/api-reference Deletes all conversion jobs. ```APIDOC ## DELETE /api/conversions/all ### Description Deletes all conversion jobs. ### Method DELETE ### Endpoint /api/conversions/all ### Response #### Success Response (200) - **message** (string) - A confirmation message indicating all conversions were deleted. #### Response Example ```json { "message": "All conversions deleted successfully." } ``` ``` -------------------------------- ### Delete File Source: https://transmute.sh/docs/api-reference Deletes a specific file by its ID. ```APIDOC ## DELETE /api/files/{id} ### Description Deletes a specific file by its ID. ### Method DELETE ### Endpoint /api/files/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the file to delete. ### Response #### Success Response (200) - **message** (string) - A confirmation message indicating the file was deleted. #### Response Example ```json { "message": "File deleted successfully." } ``` ``` -------------------------------- ### API Request Authentication Source: https://transmute.sh/docs/authentication Authenticate API requests by including a Bearer token in the Authorization header. This method applies to both JWT session tokens and generated API keys. ```bash curl -H "Authorization: Bearer YOUR_API_KEY" \ http://localhost:3313/api/files ``` -------------------------------- ### Delete a File Source: https://transmute.sh/docs/api-reference Deletes a specific uploaded file using its ID. ```APIDOC ## DELETE /api/files/{file_id} ### Description Deletes a specific uploaded file using its ID. ### Method DELETE ### Endpoint /api/files/{file_id} ### Parameters #### Path Parameters - **file_id** (string) - Required - The ID of the file to delete. ``` -------------------------------- ### Delete Conversion Source: https://transmute.sh/docs/api-reference Deletes a specific conversion job by its ID. ```APIDOC ## DELETE /api/conversions/{id} ### Description Deletes a specific conversion job by its ID. ### Method DELETE ### Endpoint /api/conversions/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the conversion to delete. ### Response #### Success Response (200) - **message** (string) - A confirmation message indicating the conversion was deleted. #### Response Example ```json { "message": "Conversion deleted successfully." } ``` ``` -------------------------------- ### Delete a Conversion Source: https://transmute.sh/docs/api-reference Deletes a specific completed conversion using its ID. ```APIDOC ## DELETE /api/conversions/{conversion_id} ### Description Deletes a specific completed conversion using its ID. ### Method DELETE ### Endpoint /api/conversions/{conversion_id} ### Parameters #### Path Parameters - **conversion_id** (string) - Required - The ID of the conversion to delete. ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.