{"note":"OpenAPI conversion -- returning structured metadata","name":"rumble-run","description":"Rumble API (deprecated)","version":"2.15.0","base_url":"https://console.rumble.run/api/v1.0","endpoints":116,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Rumble API (deprecated)\n@base https://console.rumble.run/api/v1.0\n@version 2.15.0\n@auth Bearer bearer\n@endpoints 116\n@hint download_for_search\n@toc releases(3), export(19), org(48), account(46)\n\n@group releases\n@endpoint GET /releases/agent/version\n@desc Returns latest agent version\n@returns(200) {id: str(string), version: str(string)} # component version\n\n@endpoint GET /releases/scanner/version\n@desc Returns latest scanner version\n@returns(200) {id: str(string), version: str(string)} # component version\n\n@endpoint GET /releases/platform/version\n@desc Returns latest platform version\n@returns(200) {id: str(string), version: str(string)} # component version\n\n@endgroup\n\n@group export\n@endpoint GET /export/org/assets.json\n@desc Exports the asset inventory\n@optional {search: str # an optional search string for filtering results, fields: str # an optional list of fields to export, comma-separated}\n@returns(200) filtered asset results\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/assets.jsonl\n@desc Asset inventory as JSON line-delimited\n@optional {search: str # an optional search string for filtering results, fields: str # an optional list of fields to export, comma-separated}\n@returns(200) filtered asset results\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/assets.csv\n@desc Asset inventory as CSV\n@optional {search: str # an optional search string for filtering results}\n@returns(200) filtered asset results\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/assets.nmap.xml\n@desc Asset inventory as Nmap-style XML\n@optional {search: str # an optional search string for filtering results}\n@returns(200) filtered asset results\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/services.json\n@desc Service inventory as JSON\n@optional {search: str # an optional search string for filtering results, fields: str # an optional list of fields to export, comma-separated}\n@returns(200) filtered service results\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/services.jsonl\n@desc Service inventory as JSON line-delimited\n@optional {search: str # an optional search string for filtering results, fields: str # an optional list of fields to export, comma-separated}\n@returns(200) filtered service results\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/services.csv\n@desc Service inventory as CSV\n@optional {search: str # an optional search string for filtering results}\n@returns(200) filtered service results\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/sites.json\n@desc Export all sites\n@optional {search: str # an optional search string for filtering results, fields: str # an optional list of fields to export, comma-separated}\n@returns(200) all sites\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/sites.jsonl\n@desc Site list as JSON line-delimited\n@optional {search: str # an optional search string for filtering results, fields: str # an optional list of fields to export, comma-separated}\n@returns(200) all sites\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/sites.csv\n@desc Site list as CSV\n@returns(200) all sites\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/wireless.json\n@desc Wireless inventory as JSON\n@optional {search: str # an optional search string for filtering results, fields: str # an optional list of fields to export, comma-separated}\n@returns(200) filtered wireless results\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/wireless.jsonl\n@desc Wireless inventory as JSON line-delimited\n@optional {search: str # an optional search string for filtering results, fields: str # an optional list of fields to export, comma-separated}\n@returns(200) filtered wireless results\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/wireless.csv\n@desc Wireless inventory as CSV\n@optional {search: str # an optional search string for filtering results}\n@returns(200) filtered wireless results\n@errors {401: Access token is missing or invalid}\n\n@endgroup\n\n@group org\n@endpoint GET /org/assets/top.types.csv\n@desc Top asset types as CSV\n@returns(200) top asset types and counts as csv\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/assets/top.os.csv\n@desc Top asset operating systems as CSV\n@returns(200) top operating systems and counts as csv\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/assets/top.hw.csv\n@desc Top asset hardware products as CSV\n@returns(200) top asset hardware platforms and counts as csv\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/assets/top.tags.csv\n@desc Top asset tags as CSV\n@returns(200) top asset tags and counts as csv\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/services/top.tcp.csv\n@desc Top TCP services as CSV\n@returns(200) top TCP services and counts as csv\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/services/top.udp.csv\n@desc Top UDP services as CSV\n@returns(200) top UDP services and counts as csv\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/services/top.protocols.csv\n@desc Top service protocols as CSV\n@returns(200) top service protocols and counts as csv\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/services/top.products.csv\n@desc Top service products as CSV\n@returns(200) top service products and counts as csv\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/services/subnet.stats.csv\n@desc Subnet utilization statistics as as CSV\n@optional {mask: str # an optional subnet mask size (ex:24)}\n@returns(200) subnet utilization stats as csv\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org\n@desc Get organization details\n@returns(200) {id: str(uuid), created_at: int(int64), updated_at: int(int64), client_id: str(uuid), download_token: str, download_token_created_at: int(int64), permanent: bool, name: str, description: str, inactive: bool, deactivated_at: int(int64), service_count: int(int64), service_count_tcp: int(int64), service_count_udp: int(int64), service_count_arp: int(int64), service_count_icmp: int(int64), asset_count: int(int64), export_token: str, export_token_created_at: int(int64), export_token_last_used_at: int(int64), export_token_last_used_by: str, export_token_counter: int(int64), project: bool, parent_id: str(uuid), expiration_assets_stale: int(int64), expiration_assets_offline: int(int64), expiration_scans: int(int64)} # organization details\n@errors {401: Access token is missing or invalid}\n\n@endpoint PATCH /org\n@desc Update organization details\n@optional {name: str, description: str, export_token: str, project: str(boolean), parent_id: str(uuid), expiration_assets_stale: str(number), expiration_assets_offline: str(number), expiration_scans: str(number)}\n@returns(200) {id: str(uuid), created_at: int(int64), updated_at: int(int64), client_id: str(uuid), download_token: str, download_token_created_at: int(int64), permanent: bool, name: str, description: str, inactive: bool, deactivated_at: int(int64), service_count: int(int64), service_count_tcp: int(int64), service_count_udp: int(int64), service_count_arp: int(int64), service_count_icmp: int(int64), asset_count: int(int64), export_token: str, export_token_created_at: int(int64), export_token_last_used_at: int(int64), export_token_last_used_by: str, export_token_counter: int(int64), project: bool, parent_id: str(uuid), expiration_assets_stale: int(int64), expiration_assets_offline: int(int64), expiration_scans: int(int64)} # organization details\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/key\n@desc Get API key details\n@returns(200) {id: str(uuid), client_id: str(uuid), organization_id: str(uuid), created_at: int(int64), created_by: str(email), comment: str, last_used_at: int(int64), last_used_ip: str, last_used_ua: str, counter: int(int64), usage_today: int(int64), usage_limit: int(int64), token: str, inactive: bool, type: str} # api key details\n@errors {401: Access token is missing or invalid}\n\n@endpoint DELETE /org/key\n@desc Remove the current API key\n@returns(204) empty response\n@errors {401: Access token is missing or invalid}\n\n@endpoint PATCH /org/key/rotate\n@desc Rotate the API key secret and return the updated key\n@returns(200) {id: str(uuid), client_id: str(uuid), organization_id: str(uuid), created_at: int(int64), created_by: str(email), comment: str, last_used_at: int(int64), last_used_ip: str, last_used_ua: str, counter: int(int64), usage_today: int(int64), usage_limit: int(int64), token: str, inactive: bool, type: str} # api key details\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/agents\n@desc Get all agents\n@returns(200) array of agents\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/agents/{agent_id}\n@desc Get details for a single agent\n@required {agent_id: str(uuid) # UUID of the agent}\n@returns(200) {id: str(uuid), client_id: str(uuid), organization_id: str(uuid), created_at: int(int64), updated_at: int(int64), host_id: str, hub_id: str(uuid), name: str(hostname), site_id: str(uuid), last_checkin: int(int64), os: str, arch: str, version: str, external_ip: str, internal_ip: str, system_info: map, connected: bool, inactive: bool, deactivated_at: int(int64)} # agent details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint DELETE /org/agents/{agent_id}\n@desc Remove and uninstall an agent\n@required {agent_id: str(uuid) # UUID of the agent to remove}\n@returns(204) empty response\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint PATCH /org/agents/{agent_id}\n@desc Update the site associated with agent\n@required {agent_id: str(uuid) # UUID of the agent to update, site_id: str(uuid)}\n@returns(200) {id: str(uuid), client_id: str(uuid), organization_id: str(uuid), created_at: int(int64), updated_at: int(int64), host_id: str, hub_id: str(uuid), name: str(hostname), site_id: str(uuid), last_checkin: int(int64), os: str, arch: str, version: str, external_ip: str, internal_ip: str, system_info: map, connected: bool, inactive: bool, deactivated_at: int(int64)} # agent details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint POST /org/agents/{agent_id}/update\n@desc Force an agent to update and restart\n@required {agent_id: str(uuid) # UUID of the agent to update}\n@returns(204) empty response\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint GET /org/sites\n@desc Get all sites\n@returns(200) array of sites\n@errors {401: Access token is missing or invalid}\n\n@endpoint PUT /org/sites\n@desc Create a new site\n@required {name: str}\n@optional {description: str, scope: str, excludes: str}\n@returns(200) {id: str(uuid), created_at: int(int64), updated_at: int(int64), permanent: bool, name: str, description: str, scope: str, excludes: str, subnets: map} # site details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint GET /org/sites/{site_id}\n@desc Get site details\n@required {site_id: str(uuid) # UUID or name of the site}\n@returns(200) {id: str(uuid), created_at: int(int64), updated_at: int(int64), permanent: bool, name: str, description: str, scope: str, excludes: str, subnets: map} # site details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint DELETE /org/sites/{site_id}\n@desc Remove a site and associated assets\n@required {site_id: str(uuid) # UUID or name of the site to remove}\n@returns(204) empty response\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint PATCH /org/sites/{site_id}\n@desc Update a site definition\n@required {site_id: str(uuid) # UUID or name of the site to update, name: str}\n@optional {description: str, scope: str, excludes: str}\n@returns(200) {id: str(uuid), created_at: int(int64), updated_at: int(int64), permanent: bool, name: str, description: str, scope: str, excludes: str, subnets: map} # site details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint PUT /org/sites/{site_id}/import\n@desc Import a scan data file into a site\n@required {site_id: str(uuid) # UUID or name of the site to import scan data into}\n@returns(200) {id: str(uuid), name: str, description: str, template_id: str(uuid), client_id: str(uuid), organization_id: str(uuid), agent_id: str(uuid), site_id: str(uuid), cruncher_id: str(uuid), created_at: int(int64), created_by: str(email), created_by_user_id: str(uuid), updated_at: int(int64), type: str, status: str, error: str, params: map, stats: map, hidden: bool, parent_id: str(uuid), recur: bool, recur_frequency: str, start_time: int(int64), recur_last: int(int64), recur_next: int(int64), recur_last_task_id: str(uuid)} # import task\n@errors {401: Access token is missing or invalid, 403: License has expired, 404: Resource not found, 500: Request could not be processed}\n\n@endpoint PUT /org/sites/{site_id}/import/nessus\n@desc Import a Nessus scan data file into a site\n@required {site_id: str(uuid) # UUID or name of the site to import Nessus scan data into}\n@returns(200) {id: str(uuid), name: str, description: str, template_id: str(uuid), client_id: str(uuid), organization_id: str(uuid), agent_id: str(uuid), site_id: str(uuid), cruncher_id: str(uuid), created_at: int(int64), created_by: str(email), created_by_user_id: str(uuid), updated_at: int(int64), type: str, status: str, error: str, params: map, stats: map, hidden: bool, parent_id: str(uuid), recur: bool, recur_frequency: str, start_time: int(int64), recur_last: int(int64), recur_next: int(int64), recur_last_task_id: str(uuid)} # import task\n@errors {401: Access token is missing or invalid, 403: License has expired, 404: Resource not found, 500: Request could not be processed}\n\n@endpoint PUT /org/sites/{site_id}/scan\n@desc Create a scan task for a given site\n@required {site_id: str(uuid) # UUID or name of the site to scan}\n@returns(200) {id: str(uuid), name: str, description: str, template_id: str(uuid), client_id: str(uuid), organization_id: str(uuid), agent_id: str(uuid), site_id: str(uuid), cruncher_id: str(uuid), created_at: int(int64), created_by: str(email), created_by_user_id: str(uuid), updated_at: int(int64), type: str, status: str, error: str, params: map, stats: map, hidden: bool, parent_id: str(uuid), recur: bool, recur_frequency: str, start_time: int(int64), recur_last: int(int64), recur_next: int(int64), recur_last_task_id: str(uuid)} # a created scan task\n@errors {401: Access token is missing or invalid, 403: License has expired, 404: Resource not found, 500: Request could not be processed}\n\n@endpoint GET /org/assets\n@desc Get all assets\n@optional {search: str # an optional search string for filtering results}\n@returns(200) array of assets\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/assets/{asset_id}\n@desc Get asset details\n@required {asset_id: str(uuid) # UUID of the asset to retrieve}\n@returns(200) {id: str(uuid), created_at: int(int64), updated_at: int(int64), organization_id: str(uuid), site_id: str(uuid), alive: bool, first_seen: int(int64), last_seen: int(int64), detected_by: str, type: str, os: str, os_version: str, hw: str, addresses: [str], addresses_extra: [str], macs: [str(mac)], mac_vendors: [str], names: [str], domains: [str], service_count: int(int64), service_count_tcp: int(int64), service_count_udp: int(int64), service_count_arp: int(int64), service_count_icmp: int(int64), lowest_ttl: int(int64), lowest_rtt: int(int64), last_agent_id: str(uuid), last_task_id: str(uuid), newest_mac: str(mac), newest_mac_vendor: str, newest_mac_age: int(int64), comments: str, service_ports_tcp: [str(port)], service_ports_udp: [str(port)], service_ports_protocols: [str], service_ports_products: [str], org_name: str, site_name: str, agent_name: str, tags: map, services: map, rtts: map, credentials: map, attributes: map} # asset details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint DELETE /org/assets/{asset_id}\n@desc Remove an asset\n@required {asset_id: str(uuid) # UUID of the asset to remove}\n@returns(204) empty response\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint PATCH /org/assets/{asset_id}/comments\n@desc Update asset comments\n@required {asset_id: str(uuid) # UUID of the asset to update, comments: str}\n@returns(200) {id: str(uuid), created_at: int(int64), updated_at: int(int64), organization_id: str(uuid), site_id: str(uuid), alive: bool, first_seen: int(int64), last_seen: int(int64), detected_by: str, type: str, os: str, os_version: str, hw: str, addresses: [str], addresses_extra: [str], macs: [str(mac)], mac_vendors: [str], names: [str], domains: [str], service_count: int(int64), service_count_tcp: int(int64), service_count_udp: int(int64), service_count_arp: int(int64), service_count_icmp: int(int64), lowest_ttl: int(int64), lowest_rtt: int(int64), last_agent_id: str(uuid), last_task_id: str(uuid), newest_mac: str(mac), newest_mac_vendor: str, newest_mac_age: int(int64), comments: str, service_ports_tcp: [str(port)], service_ports_udp: [str(port)], service_ports_protocols: [str], service_ports_products: [str], org_name: str, site_name: str, agent_name: str, tags: map, services: map, rtts: map, credentials: map, attributes: map} # asset details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint PATCH /org/assets/{asset_id}/tags\n@desc Update asset tags\n@required {asset_id: str(uuid) # UUID of the asset to update, tags: str}\n@returns(200) {id: str(uuid), created_at: int(int64), updated_at: int(int64), organization_id: str(uuid), site_id: str(uuid), alive: bool, first_seen: int(int64), last_seen: int(int64), detected_by: str, type: str, os: str, os_version: str, hw: str, addresses: [str], addresses_extra: [str], macs: [str(mac)], mac_vendors: [str], names: [str], domains: [str], service_count: int(int64), service_count_tcp: int(int64), service_count_udp: int(int64), service_count_arp: int(int64), service_count_icmp: int(int64), lowest_ttl: int(int64), lowest_rtt: int(int64), last_agent_id: str(uuid), last_task_id: str(uuid), newest_mac: str(mac), newest_mac_vendor: str, newest_mac_age: int(int64), comments: str, service_ports_tcp: [str(port)], service_ports_udp: [str(port)], service_ports_protocols: [str], service_ports_products: [str], org_name: str, site_name: str, agent_name: str, tags: map, services: map, rtts: map, credentials: map, attributes: map} # asset details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint PATCH /org/assets/bulk/tags\n@desc Update tags across multiple assets based on a search query\n@required {tags: str, search: str}\n@returns(200) status message\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint POST /org/assets/bulk/clearTags\n@desc Clear all tags across multiple assets based on a search query\n@required {search: str}\n@returns(200) status message\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint GET /org/services\n@desc Get all services\n@optional {search: str # an optional search string for filtering results}\n@returns(200) array of services\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/services/{service_id}\n@desc Get service details\n@required {service_id: str(uuid) # UUID of the service to retrieve}\n@returns(200) {service_id: str(uuid), service_asset_id: str(uuid), service_created_at: int(int64), service_updated_at: int(int64), service_address: str, service_transport: str, service_vhost: str, service_port: str(port), service_data: map, service_protocol: str, service_summary: str, service_screenshot_link: str, service_link: str, id: str(uuid), created_at: int(int64), updated_at: int(int64), organization_id: str(uuid), site_id: str(uuid), alive: bool, first_seen: int(int64), last_seen: int(int64), detected_by: str, type: str, os: str, os_version: str, hw: str, addresses: [str], addresses_extra: [str], macs: [str(mac)], mac_vendors: [str], names: [str], domains: [str], service_count: int(int64), service_count_tcp: int(int64), service_count_udp: int(int64), service_count_arp: int(int64), service_count_icmp: int(int64), lowest_ttl: int(int64), lowest_rtt: int(int64), last_agent_id: str(uuid), last_task_id: str(uuid), newest_mac: str(mac), newest_mac_vendor: str, newest_mac_age: int(int64), comments: str, service_ports_tcp: [str(port)], service_ports_udp: [str(port)], service_ports_protocols: [str], service_ports_products: [str], org_name: str, site_name: str, agent_name: str, tags: map, services: map, rtts: map, credentials: map, attributes: map} # service details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint DELETE /org/services/{service_id}\n@desc Remove a service\n@required {service_id: str(uuid) # UUID of the service to remove}\n@returns(204) empty response\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint GET /org/wireless\n@desc Get all wireless LANs\n@optional {search: str # an optional search string for filtering results}\n@returns(200) array of wireless LANs\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/wireless/{wireless_id}\n@desc Get wireless LAN details\n@required {wireless_id: str(uuid) # UUID of the wireless LAN to retrieve}\n@returns(200) {id: str(uuid), created_at: int(int64), last_seen: int(int64), organization_id: str(uuid), site_id: str(uuid), last_agent_id: str(uuid), last_task_id: str(uuid), essid: str(uuid), bssid: str(mac), type: str, authentication: str, encryption: str, signal: int, channels: str, interface: str, vendor: str, family: str, data: map, org_name: str, site_name: str, agent_name: str} # wireless details\n@errors {401: Access token is missing or invalid}\n\n@endpoint DELETE /org/wireless/{wireless_id}\n@desc Remove a wireless LAN\n@required {wireless_id: str(uuid) # UUID of the wireless LAN to remove}\n@returns(204) empty response\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint GET /org/tasks\n@desc Get all tasks (last 1000)\n@optional {status: str # an optional status string for filtering results, search: str # an optional search string for filtering results}\n@returns(200) array of tasks\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /org/tasks/{task_id}\n@desc Get task details\n@required {task_id: str(uuid) # UUID of the task to retrieve}\n@returns(200) {id: str(uuid), name: str, description: str, template_id: str(uuid), client_id: str(uuid), organization_id: str(uuid), agent_id: str(uuid), site_id: str(uuid), cruncher_id: str(uuid), created_at: int(int64), created_by: str(email), created_by_user_id: str(uuid), updated_at: int(int64), type: str, status: str, error: str, params: map, stats: map, hidden: bool, parent_id: str(uuid), recur: bool, recur_frequency: str, start_time: int(int64), recur_last: int(int64), recur_next: int(int64), recur_last_task_id: str(uuid)} # task details\n@errors {401: Access token is missing or invalid}\n\n@endpoint PATCH /org/tasks/{task_id}\n@desc Update task parameters\n@required {task_id: str(uuid) # UUID of the task to update, id: str(uuid)}\n@optional {name: str, description: str, template_id: str(uuid), client_id: str(uuid), organization_id: str(uuid), agent_id: str(uuid), site_id: str(uuid), cruncher_id: str(uuid), created_at: int(int64), created_by: str(email), created_by_user_id: str(uuid), updated_at: int(int64), type: str, status: str, error: str, params: map, stats: map, hidden: bool, parent_id: str(uuid), recur: bool, recur_frequency: str, start_time: int(int64), recur_last: int(int64), recur_next: int(int64), recur_last_task_id: str(uuid)}\n@returns(200) {id: str(uuid), name: str, description: str, template_id: str(uuid), client_id: str(uuid), organization_id: str(uuid), agent_id: str(uuid), site_id: str(uuid), cruncher_id: str(uuid), created_at: int(int64), created_by: str(email), created_by_user_id: str(uuid), updated_at: int(int64), type: str, status: str, error: str, params: map, stats: map, hidden: bool, parent_id: str(uuid), recur: bool, recur_frequency: str, start_time: int(int64), recur_last: int(int64), recur_next: int(int64), recur_last_task_id: str(uuid)} # task details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint GET /org/tasks/{task_id}/data\n@desc Returns a temporary task scan data url\n@required {task_id: str(uuid) # UUID of the task}\n@returns(200) A URL to a resource\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint GET /org/tasks/{task_id}/changes\n@desc Returns a temporary task change report data url\n@required {task_id: str(uuid) # UUID of the task}\n@returns(200) A URL to a resource\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint GET /org/tasks/{task_id}/log\n@desc Returns a temporary task log data url\n@required {task_id: str(uuid) # UUID of the task}\n@returns(200) A URL to a resource\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint POST /org/tasks/{task_id}/stop\n@desc Signal that a task should be stopped or canceledThis will also remove recurring and scheduled tasks\n@required {task_id: str(uuid) # UUID of the task to stop}\n@returns(200)\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint POST /org/tasks/{task_id}/hide\n@desc Signal that a completed task should be hidden\n@required {task_id: str(uuid) # UUID of the task to hide}\n@returns(200)\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endgroup\n\n@group account\n@endpoint GET /account/orgs\n@desc Get all organization details\n@optional {search: str # an optional search string for filtering results}\n@returns(200) array of organizations\n@errors {401: Access token is missing or invalid}\n\n@endpoint PUT /account/orgs\n@desc Create a new organization\n@optional {name: str, description: str, export_token: str, project: str(boolean), parent_id: str(uuid), expiration_assets_stale: str(number), expiration_assets_offline: str(number), expiration_scans: str(number)}\n@returns(200) {id: str(uuid), created_at: int(int64), updated_at: int(int64), client_id: str(uuid), download_token: str, download_token_created_at: int(int64), permanent: bool, name: str, description: str, inactive: bool, deactivated_at: int(int64), service_count: int(int64), service_count_tcp: int(int64), service_count_udp: int(int64), service_count_arp: int(int64), service_count_icmp: int(int64), asset_count: int(int64), export_token: str, export_token_created_at: int(int64), export_token_last_used_at: int(int64), export_token_last_used_by: str, export_token_counter: int(int64), project: bool, parent_id: str(uuid), expiration_assets_stale: int(int64), expiration_assets_offline: int(int64), expiration_scans: int(int64)} # organization details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint GET /account/orgs/{org_id}\n@desc Get organization details\n@required {org_id: str(uuid) # UUID of the organization to retrieve}\n@returns(200)\n@errors {401: Access token is missing or invalid}\n\n@endpoint PATCH /account/orgs/{org_id}\n@desc Update organization details\n@required {org_id: str(uuid) # UUID of the organization to retrieve}\n@optional {name: str, description: str, export_token: str, project: str(boolean), parent_id: str(uuid), expiration_assets_stale: str(number), expiration_assets_offline: str(number), expiration_scans: str(number)}\n@returns(200) {id: str(uuid), created_at: int(int64), updated_at: int(int64), client_id: str(uuid), download_token: str, download_token_created_at: int(int64), permanent: bool, name: str, description: str, inactive: bool, deactivated_at: int(int64), service_count: int(int64), service_count_tcp: int(int64), service_count_udp: int(int64), service_count_arp: int(int64), service_count_icmp: int(int64), asset_count: int(int64), export_token: str, export_token_created_at: int(int64), export_token_last_used_at: int(int64), export_token_last_used_by: str, export_token_counter: int(int64), project: bool, parent_id: str(uuid), expiration_assets_stale: int(int64), expiration_assets_offline: int(int64), expiration_scans: int(int64)} # organization details\n@errors {401: Access token is missing or invalid}\n\n@endpoint DELETE /account/orgs/{org_id}\n@desc Remove this organization\n@required {org_id: str(uuid) # UUID of the organization to retrieve}\n@returns(204) empty response\n@errors {401: Access token is missing or invalid}\n\n@endpoint DELETE /account/orgs/{org_id}/exportToken\n@desc Removes the export token from the specified organization\n@required {org_id: str(uuid) # UUID of the organization to retrieve}\n@returns(204) empty response\n@errors {401: Access token is missing or invalid}\n\n@endpoint PATCH /account/orgs/{org_id}/exportToken/rotate\n@desc Rotates the organization export token and returns the updated organization\n@required {org_id: str(uuid) # UUID of the organization to retrieve}\n@returns(200) {id: str(uuid), created_at: int(int64), updated_at: int(int64), client_id: str(uuid), download_token: str, download_token_created_at: int(int64), permanent: bool, name: str, description: str, inactive: bool, deactivated_at: int(int64), service_count: int(int64), service_count_tcp: int(int64), service_count_udp: int(int64), service_count_arp: int(int64), service_count_icmp: int(int64), asset_count: int(int64), export_token: str, export_token_created_at: int(int64), export_token_last_used_at: int(int64), export_token_last_used_by: str, export_token_counter: int(int64), project: bool, parent_id: str(uuid), expiration_assets_stale: int(int64), expiration_assets_offline: int(int64), expiration_scans: int(int64)} # organization details\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /account/license\n@desc Get license details\n@returns(200)\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /account/sites\n@desc Get all sites details across all organizations\n@optional {search: str # an optional search string for filtering results}\n@returns(200) array of sites\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /account/credentials\n@desc Get all account credentials\n@optional {search: str # an optional search string for filtering results}\n@returns(200) array of credentials\n@errors {401: Access token is missing or invalid}\n\n@endpoint PUT /account/credentials\n@desc Create a new credential\n@optional {name: str, type: str(miradore_api_key_v1/aws_access_secret), acl: map, global: bool, cidrs: str, secret: any}\n@returns(200) {id: str(uuid), client_id: str(uuid), name: str, type: str, created_at: int(int64), created_by_id: str(uuid), created_by_email: str(email), acl: map, global: bool, cidrs: [str], last_used_at: int(int64), last_used_by_id: str(uuid)} # credential details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint GET /account/credentials/{credential_id}\n@desc Get credential details\n@required {credential_id: str(uuid) # UUID of the credential to retrieve}\n@returns(200) {id: str(uuid), client_id: str(uuid), name: str, type: str, created_at: int(int64), created_by_id: str(uuid), created_by_email: str(email), acl: map, global: bool, cidrs: [str], last_used_at: int(int64), last_used_by_id: str(uuid)} # credential details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint DELETE /account/credentials/{credential_id}\n@desc Remove this credential\n@required {credential_id: str(uuid) # UUID of the credential to delete}\n@returns(204) empty response\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint GET /account/keys\n@desc Get all active API keys\n@returns(200) array of keys\n@errors {401: Access token is missing or invalid}\n\n@endpoint PUT /account/keys\n@desc Create a new key\n@optional {comment: str, organization_id: str(uuid)}\n@returns(200) {id: str(uuid), client_id: str(uuid), organization_id: str(uuid), created_at: int(int64), created_by: str(email), comment: str, last_used_at: int(int64), last_used_ip: str, last_used_ua: str, counter: int(int64), usage_today: int(int64), usage_limit: int(int64), token: str, inactive: bool, type: str} # key details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint GET /account/keys/{key_id}\n@desc Get key details\n@required {key_id: str(uuid) # UUID of the key to retrieve}\n@returns(200)\n@errors {401: Access token is missing or invalid}\n\n@endpoint DELETE /account/keys/{key_id}\n@desc Remove this key\n@required {key_id: str(uuid) # UUID of the key to retrieve}\n@returns(204) empty response\n@errors {401: Access token is missing or invalid}\n\n@endpoint PATCH /account/keys/{key_id}/rotate\n@desc Rotates the key secret\n@required {key_id: str(uuid) # UUID of the key to retrieve}\n@returns(200) {id: str(uuid), client_id: str(uuid), organization_id: str(uuid), created_at: int(int64), created_by: str(email), comment: str, last_used_at: int(int64), last_used_ip: str, last_used_ua: str, counter: int(int64), usage_today: int(int64), usage_limit: int(int64), token: str, inactive: bool, type: str} # key details\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /account/events.json\n@desc System event log as JSON\n@optional {search: str # an optional search string for filtering results, fields: str # an optional list of fields to export, comma-separated}\n@returns(200) filtered event results\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /account/events.jsonl\n@desc System event log as JSON line-delimited\n@optional {search: str # an optional search string for filtering results, fields: str # an optional list of fields to export, comma-separated}\n@returns(200) filtered event results\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /account/tasks\n@desc Get all task details across all organizations (up to 1000)\n@optional {search: str # an optional search string for filtering results}\n@returns(200) array of tasks\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /account/tasks/templates\n@desc Get all scan templates across all organizations (up to 1000)\n@optional {search: str # an optional search string for filtering results}\n@returns(200) array of scan templates\n@errors {401: Access token is missing or invalid, 422: failed to parse search string}\n\n@endpoint POST /account/tasks/templates\n@desc Create a new scan template\n@required {name: str, global: bool, acl: map}\n@optional {description: str, params: map}\n@returns(200) {id: str(uuid), client_id: str(uuid), organization_id: str(uuid), agent_id: str(uuid), site_id: str(uuid), cruncher_id: str(uuid), created_at: int(int64), created_by: str(email), created_by_user_id: str(uuid), updated_at: int(int64), type: str, status: str, error: str, params: map, stats: map, hidden: bool, parent_id: str(uuid), recur: bool, recur_frequency: str, start_time: int(int64), recur_last: int(int64), recur_next: int(int64), recur_last_task_id: str(uuid), name: str, description: str, grace_period: str, source_id: str, template_id: str(uuid), size_site: int(int64), size_data: int(int64), size_results: int(int64), hosted_zone_id: str(uuid), linked_task_count: int(int32), global: bool, acl: map} # scan template\n@errors {400: invalid request body, 401: Access token is missing or invalid, 422: invalid request body}\n\n@endpoint PUT /account/tasks/templates\n@desc Update scan template\n@required {id: str(uuid), global: bool, acl: map}\n@optional {client_id: str(uuid), organization_id: str(uuid), agent_id: str(uuid), site_id: str(uuid), cruncher_id: str(uuid), created_at: int(int64), created_by: str(email), created_by_user_id: str(uuid), updated_at: int(int64), type: str, status: str, error: str, params: map, stats: map, hidden: bool, parent_id: str(uuid), recur: bool, recur_frequency: str, start_time: int(int64), recur_last: int(int64), recur_next: int(int64), recur_last_task_id: str(uuid), name: str, description: str, grace_period: str, source_id: str, template_id: str(uuid), size_site: int(int64), size_data: int(int64), size_results: int(int64), hosted_zone_id: str(uuid), linked_task_count: int(int32)}\n@returns(200) {id: str(uuid), client_id: str(uuid), organization_id: str(uuid), agent_id: str(uuid), site_id: str(uuid), cruncher_id: str(uuid), created_at: int(int64), created_by: str(email), created_by_user_id: str(uuid), updated_at: int(int64), type: str, status: str, error: str, params: map, stats: map, hidden: bool, parent_id: str(uuid), recur: bool, recur_frequency: str, start_time: int(int64), recur_last: int(int64), recur_next: int(int64), recur_last_task_id: str(uuid), name: str, description: str, grace_period: str, source_id: str, template_id: str(uuid), size_site: int(int64), size_data: int(int64), size_results: int(int64), hosted_zone_id: str(uuid), linked_task_count: int(int32), global: bool, acl: map} # scan template\n@errors {400: invalid request body, 401: Access token is missing or invalid, 404: scan template or permissions not found, 422: invalid request body}\n\n@endpoint GET /account/tasks/templates/{scan_template_id}\n@desc Get scan template details\n@required {scan_template_id: str(uuid) # UUID of the scan template to retrieve}\n@returns(200) {id: str(uuid), client_id: str(uuid), organization_id: str(uuid), agent_id: str(uuid), site_id: str(uuid), cruncher_id: str(uuid), created_at: int(int64), created_by: str(email), created_by_user_id: str(uuid), updated_at: int(int64), type: str, status: str, error: str, params: map, stats: map, hidden: bool, parent_id: str(uuid), recur: bool, recur_frequency: str, start_time: int(int64), recur_last: int(int64), recur_next: int(int64), recur_last_task_id: str(uuid), name: str, description: str, grace_period: str, source_id: str, template_id: str(uuid), size_site: int(int64), size_data: int(int64), size_results: int(int64), hosted_zone_id: str(uuid), linked_task_count: int(int32), global: bool, acl: map} # scan template\n@errors {401: Access token is missing or invalid, 404: scan template not found, 422: invalid scan template id}\n\n@endpoint DELETE /account/tasks/templates/{scan_template_id}\n@desc Remove scan template\n@required {scan_template_id: str(uuid) # UUID of the scan template to remove}\n@returns(200) {id: str(uuid), client_id: str(uuid), organization_id: str(uuid), agent_id: str(uuid), site_id: str(uuid), cruncher_id: str(uuid), created_at: int(int64), created_by: str(email), created_by_user_id: str(uuid), updated_at: int(int64), type: str, status: str, error: str, params: map, stats: map, hidden: bool, parent_id: str(uuid), recur: bool, recur_frequency: str, start_time: int(int64), recur_last: int(int64), recur_next: int(int64), recur_last_task_id: str(uuid), name: str, description: str, grace_period: str, source_id: str, template_id: str(uuid), size_site: int(int64), size_data: int(int64), size_results: int(int64), hosted_zone_id: str(uuid), linked_task_count: int(int32), global: bool, acl: map} # scan template\n@errors {401: Access token is missing or invalid, 404: scan template not found, 422: invalid request}\n\n@endpoint GET /account/agents\n@desc Get all agents across all organizations\n@optional {search: str # an optional search string for filtering results}\n@returns(200) array of tasks\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /account/users\n@desc Get all users\n@returns(200) array of users\n@errors {401: Access token is missing or invalid}\n\n@endpoint PUT /account/users\n@desc Create a new user account\n@optional {first_name: str, last_name: str, email: str, client_admin: bool, org_default_role: str, org_roles: map}\n@returns(200) {id: str(uuid), client_id: str(uuid), created_at: int(int64), updated_at: int(int64), first_name: str, last_name: str, email: str, client_admin: bool, org_default_role: str, org_roles: map, reset_token_expiration: int(int64), invite_token_expiration: int(int64), last_login_ip: str, last_login_at: int(int64), last_login_ua: str, sso_only: bool, login_failures: int(int64)} # key details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint PUT /account/users/invite\n@desc Create a new user account and send an email invite\n@optional {first_name: str, last_name: str, email: str, client_admin: bool, org_default_role: str, org_roles: map, subject: str, message: str}\n@returns(200) {id: str(uuid), client_id: str(uuid), created_at: int(int64), updated_at: int(int64), first_name: str, last_name: str, email: str, client_admin: bool, org_default_role: str, org_roles: map, reset_token_expiration: int(int64), invite_token_expiration: int(int64), last_login_ip: str, last_login_at: int(int64), last_login_ua: str, sso_only: bool, login_failures: int(int64)} # key details\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint GET /account/users/{user_id}\n@desc Get user details\n@required {user_id: str(uuid) # UUID of the user to retrieve}\n@returns(200)\n@errors {401: Access token is missing or invalid}\n\n@endpoint DELETE /account/users/{user_id}\n@desc Remove this user\n@required {user_id: str(uuid) # UUID of the user to delete}\n@returns(204) empty response\n@errors {401: Access token is missing or invalid}\n\n@endpoint PATCH /account/users/{user_id}\n@desc Update a user's details\n@required {user_id: str(uuid) # UUID of the user to retrieve}\n@optional {first_name: str, last_name: str, email: str, client_admin: bool, org_default_role: str, org_roles: map}\n@returns(200)\n@errors {401: Access token is missing or invalid}\n\n@endpoint PATCH /account/users/{user_id}/resetMFA\n@desc Resets the user's MFA tokens\n@required {user_id: str(uuid) # UUID of the user to retrieve}\n@returns(200)\n@errors {401: Access token is missing or invalid}\n\n@endpoint PATCH /account/users/{user_id}/resetLockout\n@desc Resets the user's lockout status\n@required {user_id: str(uuid) # UUID of the user to retrieve}\n@returns(200)\n@errors {401: Access token is missing or invalid}\n\n@endpoint PATCH /account/users/{user_id}/resetPassword\n@desc Sends the user a password reset email\n@required {user_id: str(uuid) # UUID of the user to retrieve}\n@returns(200)\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /account/groups\n@desc Get all groups\n@returns(200)\n@errors {401: Access token is missing or invalid}\n\n@endpoint POST /account/groups\n@desc Create a new group\n@optional {description: str, name: str, expires_at: int(int64), org_default_role: str, org_roles: map}\n@returns(200)\n@errors {401: Access token is missing or invalid}\n\n@endpoint PUT /account/groups\n@desc Update an existing group\n@optional {id: str(uuid), description: str, name: str, expires_at: int(int64), org_default_role: str, org_roles: map}\n@returns(200)\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /account/groups/{group_id}\n@desc Get group details\n@returns(200)\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint DELETE /account/groups/{group_id}\n@desc Remove this group\n@returns(204) empty response\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /account/sso/groups\n@desc Get all SSO group mappings\n@returns(200)\n@errors {401: Access token is missing or invalid}\n\n@endpoint POST /account/sso/groups\n@desc Create a new SSO group mapping\n@required {id: str(uuid), group_id: str(uuid), sso_attribute: str, sso_value: str}\n@optional {group_name: str, description: str, created_by_email: str, created_at: int(int64), updated_at: int(int64)}\n@returns(200)\n@errors {401: Access token is missing or invalid}\n\n@endpoint PUT /account/sso/groups\n@desc Update an existing SSO group mapping\n@required {id: str(uuid), group_id: str(uuid), sso_attribute: str, sso_value: str}\n@optional {group_name: str, description: str, created_by_email: str, created_at: int(int64), updated_at: int(int64)}\n@returns(200)\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /account/sso/groups/{group_mapping_id}\n@desc Get SSO group mapping details\n@returns(200)\n@errors {401: Access token is missing or invalid, 404: Resource not found}\n\n@endpoint DELETE /account/sso/groups/{group_mapping_id}\n@desc Remove this SSO group mapping\n@returns(204) empty response\n@errors {401: Access token is missing or invalid}\n\n@endgroup\n\n@group export\n@endpoint GET /export/org/assets/sync/created/assets.json\n@desc Exports the asset inventory in a sync-friendly manner using created_at as a checkpoint. Requires the Splunk entitlement.\n@optional {search: str # an optional search string for filtering results, fields: str # an optional list of fields to export, comma-separated, since: int(int64) # an optional unix timestamp to use as a checkpoint}\n@returns(200) {since: int(int64), assets: [map]} # filtered asset results with a checkpoint wrapper\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/assets/sync/updated/assets.json\n@desc Exports the asset inventory in a sync-friendly manner using updated_at as a checkpoint. Requires the Splunk entitlement.\n@optional {search: str # an optional search string for filtering results, fields: str # an optional list of fields to export, comma-separated, since: int(int64) # an optional unix timestamp to use as a checkpoint}\n@returns(200) {since: int(int64), assets: [map]} # filtered asset results with a checkpoint wrapper\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/assets.servicenow.csv\n@desc Export an asset inventory as CSV for ServiceNow integration\n@returns(200) asset export\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/assets.servicenow.json\n@desc Exports the asset inventory as JSON\n@returns(200) filtered asset results\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/services.servicenow.csv\n@desc Export a service inventory as CSV for ServiceNow integration\n@returns(200) services export\n@errors {401: Access token is missing or invalid}\n\n@endpoint GET /export/org/assets.cisco.csv\n@desc Cisco serial number and model name export for Cisco Smart Net Total Care Service.\n@optional {search: str # an optional search string for filtering results}\n@returns(200) filtered asset results\n@errors {401: Access token is missing or invalid}\n\n@endgroup\n\n@end\n"}