# Ludus API ## API Docs - Host Management [Retrieve the ludus version](https://api-docs.ludus.cloud/retrieve-the-ludus-version-24251965e0.md): Returns the ludus version - Host Management [Retrieve the ludus license](https://api-docs.ludus.cloud/retrieve-the-ludus-license-24251966e0.md): Returns the ludus license - Host Management [Diagnostics](https://api-docs.ludus.cloud/diagnostics-24493298e0.md): Get system information that can be helpful for debugging issues with Ludus. This is an admin only endpoint. - Ansible Management [Retrieve available Ansible roles and collections](https://api-docs.ludus.cloud/retrieve-available-ansible-roles-and-collections-24251967e0.md): Returns available Ansible roles installed for this - Ansible Management [Install or Remove an Ansible role](https://api-docs.ludus.cloud/install-or-remove-an-ansible-role-24251968e0.md): Install or Remove an ansible role by name or URL. - Ansible Management [Install an Ansible role from local directory](https://api-docs.ludus.cloud/install-an-ansible-role-from-local-directory-24251969e0.md): Install an ansible role from a local directory. - Ansible Management [Install an Ansible collection](https://api-docs.ludus.cloud/install-an-ansible-collection-24251970e0.md): Install an ansible collection by name or URL. - User Management [whoami](https://api-docs.ludus.cloud/whoami-24253452e0.md): Get the full JSON output of the user and range that will be used for the request based on the query parameters - User Management [Get Default Range ID](https://api-docs.ludus.cloud/get-default-range-id-24573413e0.md): Get the user's default range ID. This range will be used for any request by the user that does not specify a `rangeID` query parameter - User Management [Set Default Range ID](https://api-docs.ludus.cloud/set-default-range-id-24573475e0.md): Set the user's default range ID. This range will be used for any request by the user that does not specify a `rangeID` query parameter. - User Management [List user details](https://api-docs.ludus.cloud/list-user-details-24251971e0.md): Get a single user object (default: the caller's). Specify a specific user to get with the userID query parameter. To get all users, the caller must be an admin and must use the /user/all endpoint. - User Management [Add a user to the system](https://api-docs.ludus.cloud/add-a-user-to-the-system-24251972e0.md): Adds a user to the system. This action is only available to admins. - User Management [Remove a user from the system](https://api-docs.ludus.cloud/remove-a-user-from-the-system-24251973e0.md): Removes a user from the system. This action is only available to admins. - User Management [Get proxmox creds for a user](https://api-docs.ludus.cloud/get-proxmox-creds-for-a-user-24251975e0.md): Get proxmox credentials for a user - User Management [Set the Ludus and Proxmox creds for the user](https://api-docs.ludus.cloud/set-the-ludus-and-proxmox-creds-for-the-user-24251976e0.md): Set the Ludus and proxmox password for a user. userID is optional and only can be set - User Management [List all users](https://api-docs.ludus.cloud/list-all-users-24251978e0.md): Get all users in Ludus. Available only to admins - User Management [Reset and retrieve the Ludus API key for a user](https://api-docs.ludus.cloud/reset-and-retrieve-the-ludus-api-key-for-a-user-24251977e0.md): Reset and return the API key for the user specified in the query. By default this will reset the caller's API key. To reset a specific user's API key, specify their userID using the query parameter userID. - User Management [Retrieve a WireGuard configuration file for a user](https://api-docs.ludus.cloud/retrieve-a-wireguard-configuration-file-for-a-user-24251979e0.md): Returns a WireGuard configuration file with appropriate - Range Management > VM Management [Destroy VM](https://api-docs.ludus.cloud/destroy-vm-25164435e0.md): Halt and destroy a VM - Range Management [List range VMs, power state, and testing state](https://api-docs.ludus.cloud/list-range-vms-power-state-and-testing-state-24251980e0.md): Lists a range's VMs along with their power state and the testing state - Range Management [Delete a range from the database and proxmox host](https://api-docs.ludus.cloud/delete-a-range-from-the-database-and-proxmox-host-24251981e0.md): Deletes a range from the database and the proxmox host. The range - Range Management [Stop the range deployment ansible process](https://api-docs.ludus.cloud/stop-the-range-deployment-ansible-process-24251982e0.md): Stops the range deployment by finding the pid of the ansible - Range Management [Stop and delete all range VMs](https://api-docs.ludus.cloud/stop-and-delete-all-range-vms-24251983e0.md): Stops and deletes all the range VMs. Used to start fresh. This endpoint - Range Management [List all tags available to use with deploy](https://api-docs.ludus.cloud/list-all-tags-available-to-use-with-deploy-24251984e0.md): List all the ansible tags a user can specify with the deploy command - Range Management [List summary information for all ranges](https://api-docs.ludus.cloud/list-summary-information-for-all-ranges-24251985e0.md): Lists range VMs along with their power state and the testing state - Range Management [Retrieve range configuration](https://api-docs.ludus.cloud/retrieve-range-configuration-24251986e0.md): Returns the current configuration for the range. - Range Management [Update the range configuration](https://api-docs.ludus.cloud/update-the-range-configuration-24251987e0.md): Updates the range configuration with the provided yaml file. - Range Management [Retrieve an example range configuration](https://api-docs.ludus.cloud/retrieve-an-example-range-configuration-24251988e0.md): Returns an example configuration for the range with the user's - Range Management [Deploy the range](https://api-docs.ludus.cloud/deploy-the-range-24251989e0.md): Deploys a range with ansible. This can be called multiple times - Range Management [Retrieve the latest range logs](https://api-docs.ludus.cloud/retrieve-the-latest-range-logs-24251990e0.md): Returns the latest logs for the range. - Range Management [Retrieve /etc/hosts file for the range](https://api-docs.ludus.cloud/retrieve-etchosts-file-for-the-range-24251991e0.md): Returns an /etc/hosts file with appropriate values for the range. - Range Management [Retrieve a ssh config](https://api-docs.ludus.cloud/retrieve-a-ssh-config-24251992e0.md): Returns a ssh configuration file with appropriate values for the user's range - Range Management [Retrieve a zip file of RDP configs](https://api-docs.ludus.cloud/retrieve-a-zip-file-of-rdp-configs-24251993e0.md): Returns a zip file with RDP configuration files for the Windows - Range Management [Retrieve an ansible inventory](https://api-docs.ludus.cloud/retrieve-an-ansible-inventory-24251994e0.md): Returns an ansible inventory file with appropriate values for the range. - Range Management [Create a new range](https://api-docs.ludus.cloud/create-a-new-range-24251995e0.md): Creates a new range. - Range Management [Assign a range to a user (admin only)](https://api-docs.ludus.cloud/assign-a-range-to-a-user-admin-only-24251996e0.md): Assigns a range to a user. Admin only. - Range Management [Revoke range access from a user (admin only)](https://api-docs.ludus.cloud/revoke-range-access-from-a-user-admin-only-24251997e0.md): Revokes a user's access to a range. Admin only. - Range Management [List users with access to a range (admin only)](https://api-docs.ludus.cloud/list-users-with-access-to-a-range-admin-only-24251998e0.md): Lists all users with access to a range. Admin only. - Range Management [List ranges accessible to the user](https://api-docs.ludus.cloud/list-ranges-accessible-to-the-user-24251999e0.md): Lists all ranges accessible to the current user. - Power State Management [Power on range VMs](https://api-docs.ludus.cloud/power-on-range-vms-24252000e0.md): Power on one, multiple, or all range VMs. - Power State Management [Power off range VMs](https://api-docs.ludus.cloud/power-off-range-vms-24252001e0.md): Power off one, multiple, or all range VMs. - Testing State Management [Snapshot and enter testing state](https://api-docs.ludus.cloud/snapshot-and-enter-testing-state-24252002e0.md): Uses ansible to snapshot all test_range VMs and block all outbound - Testing State Management [Revert and exit testing state](https://api-docs.ludus.cloud/revert-and-exit-testing-state-24252003e0.md): Uses ansible to revet all test_range VMs and allow all outbound - Testing State Management [Allow a domain](https://api-docs.ludus.cloud/allow-a-domain-24252004e0.md): Looks up the domain and its HTTPS certificate CRL domains adding all the - Testing State Management [Deny a domain](https://api-docs.ludus.cloud/deny-a-domain-24252005e0.md): Removes iptables and DNS rules that allow a domain/ip - Testing State Management [Update a VM or group](https://api-docs.ludus.cloud/update-a-vm-or-group-24252006e0.md): Runs the ansible update routine on a VM or group of VMs specified - Anti-Sandbox Management [Enable anti-sandbox for a VM or multiple VMs (enterprise)](https://api-docs.ludus.cloud/enable-anti-sandbox-for-a-vm-or-multiple-vms-enterprise-24252007e0.md): Modifieds the given VM names or VM IDs to not look like virtualized - Anti-Sandbox Management [Install the custom QEMU/OMVF packages](https://api-docs.ludus.cloud/install-the-custom-qemuomvf-packages-24252008e0.md): Installs the modified QEMU and OVMF packages that presents as Dell hardware (Enterprise only) - Anti-Sandbox Management [Install the standard QEMU/OMVF packages](https://api-docs.ludus.cloud/install-the-standard-qemuomvf-packages-24252009e0.md): Installs the standard QEMU and OVMF packages (Enterprise only) - Template Management [Retrieve a list of VM templates](https://api-docs.ludus.cloud/retrieve-a-list-of-vm-templates-24252010e0.md): Returns a list of VM templates that have been built in Ludus. These - Template Management [Build templates](https://api-docs.ludus.cloud/build-templates-24252011e0.md): Starts the packer template build process. Monitor with the templates/log - Template Management [Install an Ansible role from local directory](https://api-docs.ludus.cloud/install-an-ansible-role-from-local-directory-24252012e0.md): Add a template to ludus. The file must be a tar file with a single directory (the template name) inside. The filename is ignored, and the root directory name is used. - Template Management [Delete a template](https://api-docs.ludus.cloud/delete-a-template-24252013e0.md): Delete a template. Users may not delete system templates. - Template Management [Kill packer processes for user](https://api-docs.ludus.cloud/kill-packer-processes-for-user-24252014e0.md): Kills any running packer processes for the user, - Template Management [Retrieve the latest packer logs](https://api-docs.ludus.cloud/retrieve-the-latest-packer-logs-24252015e0.md): Returns the latest logs from packer - Template Management [Get the status of packer builds](https://api-docs.ludus.cloud/get-the-status-of-packer-builds-24252016e0.md): Returns a list of templates that are currently being built - Snapshot Management [Get all snapshots for a range](https://api-docs.ludus.cloud/get-all-snapshots-for-a-range-24252017e0.md): Returns a list of snapshots for a range - Snapshot Management [Take a snapshot of a VM or multiple VMs](https://api-docs.ludus.cloud/take-a-snapshot-of-a-vm-or-multiple-vms-24252018e0.md): Takes a snapshot of one or more VMs as specified by VMID(s) - Snapshot Management [Roll back to a snapshot of a VM or multiple VMs](https://api-docs.ludus.cloud/roll-back-to-a-snapshot-of-a-vm-or-multiple-vms-24252019e0.md): Rolls back one or more VMs as specified by VMID(s) to a specified snapshot - Snapshot Management [Delete a snapshot from a VM or multiple VMs](https://api-docs.ludus.cloud/delete-a-snapshot-from-a-vm-or-multiple-vms-24252020e0.md): Deletes a snapshot from one or more VMs as specified by VMID(s) - KMS Management [Setup the KMS VM and install the KMS server](https://api-docs.ludus.cloud/setup-the-kms-vm-and-install-the-kms-server-24252021e0.md): Creates a KMS VM in the ADMIN pool at 192.0.2.1 and installs the KMS server (Enterprise only) - KMS Management [License Windows VMs using the KMS server](https://api-docs.ludus.cloud/license-windows-vms-using-the-kms-server-24252022e0.md): License one or more Windows VMs using the KMS server (Enterprise only) - Group Management [Create a new group](https://api-docs.ludus.cloud/create-a-new-group-24252023e0.md): Creates a new group in Ludus. - Group Management [List all groups](https://api-docs.ludus.cloud/list-all-groups-24252024e0.md): Returns a list of all groups in Ludus the user has access to. - Group Management [Delete a group](https://api-docs.ludus.cloud/delete-a-group-24252025e0.md): Deletes a group by Group Name. - Group Management [Add user to group](https://api-docs.ludus.cloud/add-user-to-group-24252026e0.md): Adds a user to a group. - Group Management [Remove user from group](https://api-docs.ludus.cloud/remove-user-from-group-24252027e0.md): Removes a user from a group. - Group Management [Add range to group](https://api-docs.ludus.cloud/add-range-to-group-24252028e0.md): Adds a range to a group. - Group Management [Remove range from group](https://api-docs.ludus.cloud/remove-range-from-group-24252029e0.md): Removes a range from a group. - Group Management [List group members](https://api-docs.ludus.cloud/list-group-members-24252030e0.md): Lists all users in a group. - Group Management [List group ranges](https://api-docs.ludus.cloud/list-group-ranges-24252031e0.md): Lists all ranges in a group. - Migration [Migrate SQLite to PocketBase](https://api-docs.ludus.cloud/migrate-sqlite-to-pocketbase-24252032e0.md): Migrates Ludus data from SQLite to PocketBase. - Virtual Consoles [Get Console Websocket Ticket](https://api-docs.ludus.cloud/get-console-websocket-ticket-24591143e0.md): Generates a one-time VNC ticket for a specific VM if the calling user has access - Virtual Consoles [Connect to VM Console WebSocket](https://api-docs.ludus.cloud/connect-to-vm-console-websocket-24591166e0.md): Upgrades the connection to a WebSocket for VNC streaming. Requires a valid ticket obtained from `/vm/console/ticket` ## Schemas - [userID](https://api-docs.ludus.cloud/userid-10899116d0.md): - [rangeID](https://api-docs.ludus.cloud/rangeid-10899117d0.md): - [UserObject](https://api-docs.ludus.cloud/userobject-10899118d0.md): - [UserAPIKeyObject](https://api-docs.ludus.cloud/userapikeyobject-10899119d0.md): - [UserCredentialObject](https://api-docs.ludus.cloud/usercredentialobject-10899120d0.md): - [RangeObject](https://api-docs.ludus.cloud/rangeobject-10899121d0.md): - [VMObject](https://api-docs.ludus.cloud/vmobject-10899122d0.md): - [Domain](https://api-docs.ludus.cloud/domain-10899123d0.md): - [IP](https://api-docs.ludus.cloud/ip-10899124d0.md): - [AllowPayload](https://api-docs.ludus.cloud/allowpayload-10899125d0.md): - [SnapshotInfo](https://api-docs.ludus.cloud/snapshotinfo-10899126d0.md): - [ErrorInfo](https://api-docs.ludus.cloud/errorinfo-10899127d0.md): - [SnapshotCreatePayload](https://api-docs.ludus.cloud/snapshotcreatepayload-10899128d0.md): - [LicenseDataObject](https://api-docs.ludus.cloud/licensedataobject-10899129d0.md):