1. Ansible Management
Ludus API
  • Host Management
    • Retrieve the ludus version
      GET
    • Retrieve the ludus license
      GET
    • Diagnostics
      GET
  • Ansible Management
    • Retrieve available subscription roles
      GET
    • Install subscription roles
      POST
    • Get role variables for one or more Ansible roles
      POST
    • Retrieve available Ansible roles and collections
      GET
    • Move or copy roles between global and local scopes
      PATCH
    • Install or Remove an Ansible role
      POST
    • Install an Ansible role from local directory
      PUT
    • Install an Ansible collection
      POST
  • User Management
    • whoami
      GET
    • Get Default Range ID
      GET
    • Set Default Range ID
      POST
    • Get user group memberships
      GET
    • List user details
      GET
    • Add a user to the system
      POST
    • Remove a user from the system
      DELETE
    • Get proxmox creds for a user
      GET
    • Set the Ludus and Proxmox creds for the user
      POST
    • Reset and retrieve the Ludus API key for a user
      GET
    • List all users
      GET
    • Retrieve a WireGuard configuration file for a user
      GET
  • Range Management
    • VM Management
      • Destroy VM
    • List range VMs, power state, and testing state
      GET
    • Delete a range from the database and proxmox host
      DELETE
    • Stop the range deployment ansible process
      POST
    • Stop and delete all range VMs
      DELETE
    • List all tags available to use with deploy
      GET
    • List summary information for all ranges
      GET
    • Retrieve range configuration
      GET
    • Update the range configuration
      PUT
    • Retrieve an example range configuration
      GET
    • Deploy the range
      POST
    • Retrieve the latest range logs
      GET
    • Retrieve /etc/hosts file for the range
      GET
    • Retrieve a ssh config
      GET
    • Retrieve a zip file of RDP configs
      GET
    • Retrieve an ansible inventory
      GET
    • Create a new range
      POST
    • Assign a range to a user (admin only)
      POST
    • Revoke range access from a user (admin only)
      DELETE
    • List users with access to a range (admin only)
      GET
    • List ranges accessible to the user
      GET
  • Power State Management
    • Power on range VMs
    • Power off range VMs
  • Testing State Management
    • Snapshot and enter testing state
    • Revert and exit testing state
    • Allow a domain
    • Deny a domain
    • Update a VM or group
  • Anti-Sandbox Management
    • Enable anti-sandbox for a VM or multiple VMs (enterprise)
    • Install the custom QEMU/OMVF packages
    • Install the standard QEMU/OMVF packages
  • Template Management
    • Retrieve a list of VM templates
    • Build templates
    • Install an Ansible role from local directory
    • Delete a template
    • Kill packer processes for user
    • Retrieve the latest packer logs
    • Get the status of packer builds
  • Snapshot Management
    • Get all snapshots for a range
    • Take a snapshot of a VM or multiple VMs
    • Roll back to a snapshot of a VM or multiple VMs
    • Delete a snapshot from a VM or multiple VMs
  • KMS Management
    • Setup the KMS VM and install the KMS server
    • License Windows VMs using the KMS server
  • Group Management
    • Create a new group
    • List all groups
    • Delete a group
    • List group members
    • Add users to group
    • Remove users from group
    • List group ranges
    • Add ranges to group
    • Remove ranges from group
  • Migration
    • SDN Migration Status
    • Migrate to SDN networking
    • Migrate SQLite to PocketBase
  • Virtual Consoles
    • Get Console Websocket Ticket
    • Connect to VM Console WebSocket
  • Blueprint Management
    • List accessible blueprints
    • Create blueprint from range
    • Delete blueprint
    • Copy blueprint
    • Apply blueprint to range
    • Get blueprint config
    • Update blueprint config
    • Share blueprint with groups
    • Unshare blueprint from groups
    • Share blueprint with users
    • Unshare blueprint from users
    • List blueprint access users
    • List blueprint access groups
  • Schemas
    • Group Management
      • BulkAddUsersToGroupRequest
      • BulkRemoveUsersFromGroupRequest
      • BulkAddRangesToGroupRequest
      • BulkRemoveRangesFromGroupRequest
      • BulkGroupOperationResponse
      • BulkGroupOperationErrorItem
    • Blueprint Management
      • BlueprintListItem
      • CreateBlueprintFromRangeRequest
      • CopyBlueprintRequest
      • ApplyBlueprintRequest
      • UpdateBlueprintConfigRequest
      • BlueprintAccessUserItem
      • BulkShareBlueprintWithGroupsRequest
      • BlueprintAccessGroupItem
      • BulkUnshareBlueprintWithGroupsRequest
      • BulkShareBlueprintWithUsersRequest
      • BulkUnshareBlueprintWithUsersRequest
      • BulkBlueprintOperationErrorItem
      • BulkBlueprintOperationResponse
      • BlueprintMutationResponse
    • userID
    • rangeID
    • UserObject
    • UserAPIKeyObject
    • UserCredentialObject
    • UserMembershipObject
    • RangeObject
    • VMObject
    • Domain
    • IP
    • AllowPayload
    • SnapshotInfo
    • ErrorInfo
    • SnapshotCreatePayload
    • LicenseDataObject
  1. Ansible Management

Retrieve available subscription roles

Cloud Mock
https://mock.apidog.com/m1/1126461-0-default
Cloud Mock
https://mock.apidog.com/m1/1126461-0-default
GET
/ansible/subscription-roles
An endpoint to return the avilable roles available to subscribers

Request

Authorization
JWT Bearer
Add the parameter
Authorization
to Headers
Example:
Authorization: ********************
or
API Key
Add parameter in header
X-API-KEY
Example:
X-API-KEY: ********************
or

Responses

🟢200Success
application/json
Body

Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request GET 'https://mock.apidog.com/m1/1126461-0-default/ansible/subscription-roles' \
--header 'X-API-KEY: <api-key>'
Response Response Example
[
  {
    "role": "ludus_ad_groups",
    "file_count": 6,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.0",
    "description": "An Ansible Role that creates a group in AD and populates it with the specified users",
    "package_uuid": "128171ed-dbc0-4922-a8ca-6aac1d78e284",
    "entitlements": "PRO_ROLES,ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_bulk_ad_content",
    "file_count": 16,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.0",
    "description": "An Ansible Role that creates OUs, Users, and Groups on a domain controller from CSV files",
    "package_uuid": "8e2db32c-3d86-43a6-bb18-b988c19d146a",
    "entitlements": "PRO_ROLES,ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_chronicle_exporter",
    "file_count": 16,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.0",
    "description": "An Ansible Role that installs and configures Google SecOps (Chronicle) collection agent on Windows hosts",
    "package_uuid": "b6c820d8-db92-401f-99f9-6675d71068f4",
    "entitlements": "ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_ghosts_client",
    "file_count": 13,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.0",
    "description": "Install GHOSTS client on Windows or Linux machines and connect to the GHOSTS server",
    "package_uuid": "644188ee-88d6-47b2-bbe2-be08a6eb26bc",
    "entitlements": "PRO_ROLES,ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_guacamole_client",
    "file_count": 13,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.5",
    "description": "Ansible role to add windows/linux clients to Apache Guacamole",
    "package_uuid": "fc4a5f0e-59e1-4c29-a7bc-37f831c66a41",
    "entitlements": "PRO_ROLES,ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_guacamole_server",
    "file_count": 16,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.3",
    "description": "Ansible role to deploy Apache Guacamole with Docker",
    "package_uuid": "ff87c4ce-6491-4b5d-979f-543d78382e08",
    "entitlements": "PRO_ROLES,ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_local_users_and_groups",
    "file_count": 8,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.0",
    "description": "An Ansible Role that adds local users and groups to a machine",
    "package_uuid": "4dc48455-93ff-4e87-8357-e537831fec6d",
    "entitlements": "PRO_ROLES,ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_MDE",
    "file_count": 14,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.1",
    "description": "An Ansible Role that installs Microsoft Defender for Endpoint on Windows hosts",
    "package_uuid": "0f26a5ca-548e-4a95-9a96-1d6c834036ae",
    "entitlements": "ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_mythic",
    "file_count": 15,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.0",
    "description": "An Ansible Role that installs the Mythic C2 Framework on Debian 12 (Bookworm)",
    "package_uuid": "a98a2892-0755-4366-85b0-5e4c39ddafeb",
    "entitlements": "PRO_ROLES,ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_random_files",
    "file_count": 6,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.0",
    "description": "Drop random files on the desktop and downloads folder of a Windows machine",
    "package_uuid": "6c4acae0-632c-4846-aca5-707d9df9ce28",
    "entitlements": "PRO_ROLES,ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_set_wallpaper",
    "file_count": 8,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.0",
    "description": "Set the wallpaper on Windows to a supplied image",
    "package_uuid": "1311b048-fa10-4f80-aa34-e8240816c340",
    "entitlements": "PRO_ROLES,ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_smb_share",
    "file_count": 10,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.1",
    "description": "An Ansible Role that sets up an SMB share on Windows 8 / Windows 2012 or newer and optionally mounts the share on clients",
    "package_uuid": "f81b0649-23b5-4f7c-98a9-134df39c5e4e",
    "entitlements": "PRO_ROLES,ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_sysmon",
    "file_count": 13,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.2",
    "description": "Install Sysmon on Windows and Linux. Rulesets included.",
    "package_uuid": "941a398d-e848-4b0a-8aed-4827d640d8af",
    "entitlements": "PRO_ROLES,ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_unconstrained_delegation",
    "file_count": 6,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.0",
    "description": "An Ansible Role that configures unconstrained delegation for a computer object in AD",
    "package_uuid": "c0ea4fa1-f53a-4111-bc18-5389ca7516b3",
    "entitlements": "PRO_ROLES,ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_velociraptor",
    "file_count": 27,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.2",
    "description": "Install and configure the DFIR tool Velociraptor. Use velociraptor_client and velociraptor_server variables to install the client or server. Clients will automatically connect to the server.",
    "package_uuid": "c2b36dc5-8fc5-4b5e-b397-b0197cb6fc93",
    "entitlements": "ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_windows_configurator",
    "file_count": 9,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.0",
    "description": "Configure various windows settings",
    "package_uuid": "96607542-44c7-452c-ae9e-6579e7207a62",
    "entitlements": "PRO_ROLES,ENTERPRISE_ROLES"
  },
  {
    "role": "ludus_zeek_logging",
    "file_count": 14,
    "last_modified": "Wed Dec 17 19:34:19 2025 -0500",
    "last_modified_unix": "1766018059",
    "version": "1.0.0",
    "description": "Install and configure Zeek on Debian 12 using official packages",
    "package_uuid": "3c7dd717-ba01-4dc1-b1d9-08fca383a4de",
    "entitlements": "ENTERPRISE_ROLES"
  }
]
Modified at 2026-01-18 03:34:52
Previous
Diagnostics
Next
Install subscription roles
Built with