openapi: 3.0.0
servers:
- description: runZero Console
url: https://console.runzero.com/api/v1.0
info:
description: runZero API. API use is rate limited, you can make as many calls per day as you have licensed assets.
version: 1.0.5
title: runZero API
contact:
email: support@runzero.com
license:
name: Commercial
url: 'https://www.runzero.com/legal/terms'
tags:
- name: Account
description: Requires Account key (starts with CT), or OAuth
- name: Organization
description: Requires Organization key (starts with OT), Account key (starts with CT), or OAuth
- name: Export
description: Requires Export token (starts with ET), Organization key (starts with OT), Account key (starts with CT), or OAuth
- name: Import
description: Requires Organization key (starts with OT), Account key (starts with CT), or OAuth
- name: ServiceNow
description: ServiceNow integration endpoints. Requires Organization key (starts with OT), Account key (starts with CT), or OAuth.
- name: Splunk
description: Splunk-friendly export endpoints. Requires Export token (starts with ET), Organization key (starts with OT), Account key (starts with CT), or OAuth.
- name: Cisco SNTC
description: Cisco Smart Net Total Care integration endpoints. Requires Organization key (starts with OT), Account key (starts with CT), or OAuth.
- name: Public
description: Unauthenticated
security:
- bearerAuth: []
- oauthDefaults: []
paths:
/releases/agent/version:
get:
tags:
- Public
operationId: getLatestAgentVersion
security: [] # No security
summary: Returns latest agent version
responses:
'200':
description: Component version
content:
application/json:
schema:
$ref: '#/components/schemas/ComponentVersion'
/releases/scanner/version:
get:
tags:
- Public
operationId: getLatestScannerVersion
security: [] # No security
summary: Returns latest scanner version
responses:
'200':
description: Component version
content:
application/json:
schema:
$ref: '#/components/schemas/ComponentVersion'
/releases/platform/version:
get:
tags:
- Public
operationId: getLatestPlatformVersion
security: [] # No security
summary: Returns latest platform version
responses:
'200':
description: Component version
content:
application/json:
schema:
$ref: '#/components/schemas/ComponentVersion'
/health:
get:
tags:
- Public
operationId: getHealthCheck
security: [] # No security
summary: Returns a health check status (cloud and self-hosted)
responses:
'200':
description: Health status and current version
content:
application/json:
schema:
$ref: '#/components/schemas/HealthCheckResponse'
/import/org/{orgID}/assets:
post:
parameters:
- name: orgID
in: path
required: true
schema:
type: string
format: uuid
description: The ID of the organization to import the assets into
tags:
- Import
operationId: importCustomIntegrationAssets
summary: Import assets described by a registered custom integration
description: |
Assets can be discovered, imported, and merged by runZero scan tasks, first-party integrations, and third-party
defined custom integrations. See [/account/custom-integrations](#/account/getAccountCustomIntegrations). Currently only assets for custom integrations are importable here.
requestBody:
required: true
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/NewAssetImport'
encoding:
assetData:
contentType: application/gzip
responses:
'200':
description: Import task created. The task ID should be checked for its status.
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/InvalidRequestBodyError'
'500':
$ref: '#/components/responses/InternalServerError'
/export/org/assets.json:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startKey'
get:
tags:
- Export
operationId: exportAssetsJSON
summary: Exports the asset inventory
responses:
'200':
description: Filtered asset results.
- When the `page_size` query parameter is not set in the request, the response will be a JSON array of assets.
- When the `page_size` query parameter is present in the request, the response will be an object with an assets array and a `next_key` string for pagination.
content:
application/json:
schema:
$ref: '#/components/schemas/AssetExportResponse'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/assets.jsonl:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
get:
tags:
- Export
operationId: exportAssetsJSONL
summary: Asset inventory as JSON line-delimited
responses:
'200':
# This is a streaming response of one Asset object per line in JSON format
description: Filtered asset results
content:
application/json:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/assets.csv:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
get:
tags:
- Export
operationId: exportAssetsCSV
summary: Asset inventory as CSV
responses:
'200':
description: Filtered asset results
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/assets.nmap.xml:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
get:
tags:
- Export
operationId: exportAssetsNmapXML
summary: Asset inventory as Nmap-style XML
responses:
'200':
description: Filtered asset results
content:
text/xml:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/services.json:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startKey'
get:
tags:
- Export
operationId: exportServicesJSON
summary: Service inventory as JSON
responses:
'200':
description: Filtered service results. - When the `page_size` query parameter is not set in the request, the response will be a JSON array of services.
- When the `page_size` query parameter is present in the request, the response will be an object with a services array and a `next_key` string for pagination.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceExportResponse'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/services.jsonl:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
get:
tags:
- Export
operationId: exportServicesJSONL
summary: Service inventory as JSON line-delimited
responses:
'200':
description: Filtered service results
content:
# This is a streaming response of one Service object per line in JSON format
application/json:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/services.csv:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
get:
tags:
- Export
operationId: exportServicesCSV
summary: Service inventory as CSV
responses:
'200':
description: Filtered service results
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/sites.json:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
get:
tags:
- Export
operationId: exportSitesJSON
summary: Export all sites
responses:
'200':
description: All sites
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Site'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/sites.jsonl:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
get:
tags:
- Export
operationId: exportSitesJSONL
summary: Site list as JSON line-delimited
responses:
'200':
description: All sites
content:
# This is a streaming response of one Site object per line in JSON format
application/json:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/sites.csv:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Export
operationId: exportSitesCSV
summary: Site list as CSV
responses:
'200':
description: All sites
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/wireless.json:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startKey'
get:
tags:
- Export
operationId: exportWirelessJSON
summary: Wireless inventory as JSON
responses:
'200':
description: Filtered wireless results. - When the `page_size` query parameter is not set in the request, the response will be a JSON array of wireless.
- When the `page_size` query parameter is present in the request, the response will be an object with a wireless array and a `next_key` string for pagination.
content:
application/json:
schema:
$ref: '#/components/schemas/WirelessExportResponse'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/wireless.jsonl:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
get:
tags:
- Export
operationId: exportWirelessJSONL
summary: Wireless inventory as JSON line-delimited
responses:
'200':
description: Filtered wireless results
content:
# This is a streaming response of one Wireless object per line in JSON format
application/json:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/wireless.csv:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
get:
tags:
- Export
operationId: exportWirelessCSV
summary: Wireless inventory as CSV
responses:
'200':
description: Filtered wireless results
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/software.json:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startKey'
get:
tags:
- Export
operationId: exportSoftwareJSON
summary: Exports the software inventory
responses:
'200':
description: Filtered software results. - When the `page_size` query parameter is not set in the request, the response will be a JSON array of software.
- When the `page_size` query parameter is present in the request, the response will be an object with a software array and a `next_key` string for pagination.
content:
application/json:
schema:
$ref: '#/components/schemas/SoftwareExportResponse'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/software.jsonl:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
get:
tags:
- Export
operationId: exportSoftwareJSONL
summary: Software inventory as JSON line-delimited
responses:
'200':
# This is a streaming response of one Software object per line in JSON format
description: Filtered software results
content:
application/json:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/software.csv:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
get:
tags:
- Export
operationId: exportSoftwareCSV
summary: Software inventory as CSV
responses:
'200':
description: Filtered software results
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/vulnerabilities.json:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startKey'
get:
tags:
- Export
operationId: exportVulnerabilitiesJSON
summary: Export the vulnerability inventory as JSON
responses:
'200':
description: Filtered vulnerability results. - When the `page_size` query parameter is not set in the request, the response will be a JSON array of vulnerabilities.
- When the `page_size` query parameter is present in the request, the response will be an object with an vulnerabilites array and a `next_key` string for pagination.
content:
application/json:
schema:
$ref: '#/components/schemas/VulnerabilityExportResponse'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/vulnerabilities.jsonl:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
get:
tags:
- Export
operationId: exportVulnerabilitiesJSONL
summary: Export the vulnerability inventory as JSON line-delimited
responses:
'200':
# This is a streaming response of one Vulnerability object per line in JSON format
description: Filtered vulnerability results
content:
application/json:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/vulnerabilities.csv:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
get:
tags:
- Export
operationId: exportVulnerabilitiesCSV
summary: Export the vulnerability inventory as CSV
responses:
'200':
description: Filtered vulnerability results
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/certificates.csv:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
get:
tags:
- Export
operationId: exportCertificatesCSV
summary: Export the certificate inventory as CSV
responses:
'200':
description: Filtered certificate results
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/certificates.json:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
get:
tags:
- Export
operationId: exportCertificatesJSON
summary: Export the certificate inventory as JSON
responses:
'200':
description: Filtered certificate results
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Certificate"
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/certificates.jsonl:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
get:
tags:
- Export
operationId: exportCertificatesJSONL
summary: Export the certificate inventory as JSONL line-delimited
responses:
'200':
# This is a streaming response of one Certificate object per line in JSON format
description: Filtered certificate results
content:
application/json:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/users.json:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
get:
tags:
- Export
operationId: exportDirectoryUsersJSON
summary: Exports the user inventory
responses:
'200':
description: Filtered user results
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DirectoryUser'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/users.jsonl:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
get:
tags:
- Export
operationId: exportDirectoryUsersJSONL
summary: User inventory as JSON line-delimited
responses:
'200':
# This is a streaming response of one DirectoryUser object per line in JSON format
description: Filtered user results
content:
application/json:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/users.csv:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
get:
tags:
- Export
operationId: exportDirectoryUsersCSV
summary: User inventory as CSV
responses:
'200':
description: Filtered user results
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/groups.json:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
get:
tags:
- Export
operationId: exportDirectoryGroupsJSON
summary: Exports the group inventory
responses:
'200':
description: Filtered group results
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DirectoryGroup'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/groups.jsonl:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
get:
tags:
- Export
operationId: exportDirectoryGroupsJSONL
summary: Group inventory as JSON line-delimited
responses:
'200':
# This is a streaming response of one DirectoryGroup object per line in JSON format
description: Filtered group results
content:
application/json:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/groups.csv:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
get:
tags:
- Export
operationId: exportDirectoryGroupsCSV
summary: Group inventory as CSV
responses:
'200':
description: Filtered group results
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/findings.csv:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
get:
tags:
- Export
operationId: exportFindingsCSV
summary: Export findings as CSV
responses:
'200':
description: Filtered findings
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/findings.json:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
get:
tags:
- Export
operationId: exportFindingsJSON
summary: Export findings as JSON
responses:
'200':
description: Filtered findings
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Finding'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/findings.jsonl:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
get:
tags:
- Export
operationId: exportFindingsJSONL
summary: Export findings as JSON line-delimited
responses:
'200':
description: Filtered findings
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Finding'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/subnet.stats.csv:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Export
operationId: exportSubnetUtilizationStatsCSV
summary: Subnet utilization statistics as as CSV
parameters:
- in: query
name: mask
description: An optional subnet mask size (ex:24)
required: false
schema:
type: string
responses:
'200':
description: Subnet utilization stats as CSV
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/snmp.arpcache.csv:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Export
operationId: exportSNMPARPCacheCSV
summary: SNMP ARP cache data as CSV
responses:
'200':
description: SNMP ARP cache data as csv
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/tasks.json:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
get:
tags:
- Export
operationId: exportTasksJSON
summary: Exports organization tasks
responses:
'200':
description: Filtered task results
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Task'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/tasks.jsonl:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
get:
tags:
- Export
operationId: exportTasksJSONL
summary: Organization tasks as JSON line-delimited
responses:
'200':
# This is a streaming response of one Task object per line in JSON format
description: Filtered task results
content:
application/json:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/assets/type.csv:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Export
operationId: exportAssetTopTypesCSV
summary: Top asset types as CSV
responses:
'200':
description: Top asset types and counts as CSV
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/assets/os.csv:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Export
operationId: exportAssetTopOSCSV
summary: Top asset operating systems as CSV
responses:
'200':
description: Top operating systems and counts as CSV
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/assets/hw.csv:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Export
operationId: exportAssetTopHWCSV
summary: Top asset hardware products as CSV
responses:
'200':
description: Top asset hardware platforms and counts as CSV
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/assets/tags.csv:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Export
operationId: exportAssetTopTagsCSV
summary: Top asset tags as CSV
responses:
'200':
description: Top asset tags and counts as CSV
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/services/tcp.csv:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Export
operationId: exportServicesTopTCPCSV
summary: Top TCP services as CSV
responses:
'200':
description: Top TCP services and counts as CSV
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/services/udp.csv:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Export
operationId: exportServicesTopUDPCSV
summary: Top UDP services as CSV
responses:
'200':
description: Top UDP services and counts as CSV
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/services/protocols.csv:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Export
operationId: exportServicesTopProtocolsCSV
summary: Top service protocols as CSV
responses:
'200':
description: Top service protocols and counts as CSV
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/services/products.csv:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Export
operationId: exportServicesTopProductsCSV
summary: Top service products as CSV
responses:
'200':
description: Top service products and counts as CSV
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/metrics:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Export
operationId: exportAssetMetricsJSON
summary: Export asset metrics
responses:
'200':
description: Asset metrics
content:
application/json:
schema:
type: object
additionalProperties:
$ref: '#/components/schemas/AssetMetric'
'401':
$ref: '#/components/responses/UnauthorizedError'
/org:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getOrganization
summary: Get organization details
responses:
'200':
description: Organization details
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
'401':
$ref: '#/components/responses/UnauthorizedError'
patch:
tags:
- Organization
operationId: updateOrganization
summary: Update organization details
requestBody:
description: Organization options
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OrgOptions'
responses:
'200':
description: Organization details
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/key:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getKey
summary: Get API key details
responses:
'200':
description: API key details
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationAPIKey'
'401':
$ref: '#/components/responses/UnauthorizedError'
delete:
tags:
- Organization
operationId: removeKey
summary: Remove the current API key
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/key/rotate:
parameters:
- $ref: '#/components/parameters/orgID'
patch:
tags:
- Organization
operationId: rotateKey
summary: Rotate the API key secret and return the updated key
responses:
'200':
description: API key details
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationAPIKey'
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/agents:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getAgents
summary: Get all agents. Legacy path for /org/explorers
responses:
'200':
description: Array of agents
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Agent'
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/agents/{agent_id}:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getAgent
summary: Get details for a single agent. Legacy path for /org/explorers/{explorer_id}
parameters:
- in: path
name: agent_id
schema:
type: string
format: uuid
required: true
description: UUID of the agent
responses:
'200':
description: Agent details
content:
application/json:
schema:
$ref: '#/components/schemas/Agent'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
delete:
tags:
- Organization
operationId: removeAgent
summary: Remove and uninstall an agent. Legacy path for /org/explorers/{explorer_id}
parameters:
- in: path
name: agent_id
schema:
type: string
format: uuid
required: true
description: UUID of the agent to remove
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
patch:
tags:
- Organization
operationId: updateAgentSettings
summary: Update the settings associated with the agent. Legacy path for /org/explorers/{explorer_id}
parameters:
- in: path
name: agent_id
schema:
type: string
format: uuid
required: true
description: UUID of the agent to update
requestBody:
description: The updated settings to apply to the agent
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/AgentPatchedSettings"
responses:
'200':
description: Agent details
content:
application/json:
schema:
$ref: '#/components/schemas/Agent'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/agents/{agent_id}/update:
parameters:
- $ref: '#/components/parameters/orgID'
post:
tags:
- Organization
operationId: upgradeAgent
summary: Force an agent to update and restart. Legacy path for /org/explorers/{explorer_id}/update
parameters:
- in: path
name: agent_id
schema:
type: string
format: uuid
required: true
description: UUID of the agent to update
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/explorers:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getExplorers
summary: Get all explorers
description: Get all explorers. This is the same call as legacy path /org/agents
responses:
'200':
description: Array of agents
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Agent'
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/explorers/{explorer_id}:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getExplorer
summary: Get details for a single explorer.
description: Get details for a single explorer. This is the same call as legacy path /org/agents/{agent_id}
parameters:
- in: path
name: explorer_id
schema:
type: string
format: uuid
required: true
description: UUID of the explorer
responses:
'200':
description: Explorer details
content:
application/json:
schema:
$ref: '#/components/schemas/Agent'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
delete:
tags:
- Organization
operationId: removeExplorer
summary: Remove and uninstall an explorer
description: Remove and uninstall an explorer. This is the same call as legacy path /org/agents/{agent_id}
parameters:
- in: path
name: explorer_id
schema:
type: string
format: uuid
required: true
description: UUID of the explorer to remove
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
patch:
tags:
- Organization
operationId: updateExplorerSettings
summary: Update the settings associated with the Explorer
description: Update the settings associated with the Explorer. This is the same call as legacy path /org/agents/{agent_id}
parameters:
- in: path
name: explorer_id
schema:
type: string
format: uuid
required: true
description: UUID of the explorer to update
requestBody:
description: The updated settings to apply to the Explorer
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/AgentPatchedSettings"
responses:
'200':
description: Explorer details
content:
application/json:
schema:
$ref: '#/components/schemas/Agent'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/explorers/{explorer_id}/update:
parameters:
- $ref: '#/components/parameters/orgID'
post:
tags:
- Organization
operationId: upgradeExplorer
summary: Force an explorer to update and restart
description: Force an explorer to update and restart. This is the same call as legacy path /org/agents/{agent_id}/update
parameters:
- in: path
name: explorer_id
schema:
type: string
format: uuid
required: true
description: UUID of the explorer to update
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/hosted-zones:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getHostedZones
summary: Get all hosted zones
description: Get all hosted zones. Hosted Zones are only available to Enterprise licensed customers.
responses:
'200':
description: Array of hosted zones
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/HostedZone'
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/hosted-zones/{hosted_zone_id}:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getHostedZone
summary: Get details for a single hosted zone.
description: Get details for a single Hosted Zone. Hosted Zones are only available to Enterprise licensed customers.
parameters:
- in: path
name: hosted_zone_id
schema:
type: string
format: uuid
required: true
description: UUID of the hosted zone
responses:
'200':
description: Hosted zone details
content:
application/json:
schema:
$ref: '#/components/schemas/HostedZone'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/sites:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getSites
summary: Get all sites
responses:
'200':
description: Array of sites
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Site'
'401':
$ref: '#/components/responses/UnauthorizedError'
put:
tags:
- Organization
operationId: createSite
summary: Create a new site
requestBody:
description: Site definition
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/SiteOptions"
responses:
'200':
description: Site details
content:
application/json:
schema:
$ref: '#/components/schemas/Site'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/sites/{site_id}:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getSite
summary: Get site details
parameters:
- in: path
name: site_id
schema:
type: string
format: uuid
required: true
description: UUID or name of the site
responses:
'200':
description: Site details
content:
application/json:
schema:
$ref: '#/components/schemas/Site'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
delete:
tags:
- Organization
operationId: removeSite
summary: Remove a site and associated assets
parameters:
- in: path
name: site_id
schema:
type: string
format: uuid
required: true
description: UUID or name of the site to remove
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
patch:
tags:
- Organization
operationId: updateSite
summary: Update a site definition
parameters:
- in: path
name: site_id
schema:
type: string
format: uuid
required: true
description: UUID or name of the site to update
requestBody:
description: Site object
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SiteOptions'
responses:
'200':
description: Site details
content:
application/json:
schema:
$ref: '#/components/schemas/Site'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/sites/{site_id}/import:
parameters:
- $ref: '#/components/parameters/orgID'
put:
tags:
- Organization
operationId: importScanData
summary: Import a scan data file into a site
parameters:
- in: path
name: site_id
schema:
type: string
format: uuid
required: true
description: UUID or name of the site to import scan data into
requestBody:
required: true
content:
application/octet-stream:
schema:
type: string
format: binary
responses:
'200':
description: Import task
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/LicenseExpiredError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/ProcessingError'
/org/sites/{site_id}/import/nessus:
parameters:
- $ref: '#/components/parameters/orgID'
put:
tags:
- Organization
operationId: importNessusScanData
summary: Import a Nessus scan data file into a site
parameters:
- in: path
name: site_id
schema:
type: string
format: uuid
required: true
description: UUID or name of the site to import Nessus scan data into
requestBody:
required: true
content:
application/octet-stream:
schema:
type: string
format: binary
responses:
'200':
description: Import task
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/LicenseExpiredError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/ProcessingError'
/org/sites/{site_id}/import/packet:
parameters:
- $ref: '#/components/parameters/orgID'
put:
tags:
- Organization
operationId: importPacketData
summary: Import a packet capture file into a site
parameters:
- in: path
name: site_id
schema:
type: string
format: uuid
required: true
description: UUID or name of the site to import packet capture into
requestBody:
required: true
content:
application/octet-stream:
schema:
type: string
format: binary
responses:
'200':
description: Import task
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/LicenseExpiredError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/ProcessingError'
/org/sites/{site_id}/scan:
parameters:
- $ref: '#/components/parameters/orgID'
put:
tags:
- Organization
operationId: createScan
summary: Create a scan task for a given site
parameters:
- in: path
name: site_id
schema:
type: string
format: uuid
required: true
description: UUID or name of the site to scan
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ScanOptions'
responses:
'200':
description: A created scan task
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/LicenseExpiredError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/ProcessingError'
/org/sites/{site_id}/sample:
parameters:
- $ref: '#/components/parameters/orgID'
put:
tags:
- Organization
operationId: createSample
summary: Create a traffic sampling task for a given site
parameters:
- in: path
name: site_id
schema:
type: string
format: uuid
required: true
description: UUID or name of the site to scan
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SampleOptions'
responses:
'200':
description: A created scan task
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/LicenseExpiredError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/ProcessingError'
/org/assets:
parameters:
- $ref: '#/components/parameters/orgID'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
get:
tags:
- Organization
operationId: getAssets
summary: Get all assets
responses:
'200':
description: Array of assets
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Asset'
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/assets/{asset_id}:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getAsset
summary: Get asset details
parameters:
- in: path
name: asset_id
schema:
type: string
format: uuid
required: true
description: UUID of the asset to retrieve
responses:
'200':
description: Asset details
content:
application/json:
schema:
$ref: '#/components/schemas/Asset'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
delete:
tags:
- Organization
operationId: removeAsset
summary: Remove an asset
parameters:
- in: path
name: asset_id
schema:
type: string
format: uuid
required: true
description: UUID of the asset to remove
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/assets/bulk/delete:
parameters:
- $ref: '#/components/parameters/orgID'
post:
tags:
- Organization
operationId: removeBulkAssets
summary: Removes multiple assets by ID
requestBody:
description: List of asset IDs to remove
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssetIDs'
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
/org/assets/{asset_id}/comments:
parameters:
- $ref: '#/components/parameters/orgID'
patch:
tags:
- Organization
operationId: updateAssetComments
summary: Update asset comments
parameters:
- in: path
name: asset_id
schema:
type: string
format: uuid
required: true
description: UUID of the asset to update
requestBody:
description: Comments to apply to the asset
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssetComments'
responses:
'200':
description: Asset details
content:
application/json:
schema:
$ref: '#/components/schemas/Asset'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/assets/{asset_id}/tags:
parameters:
- $ref: '#/components/parameters/orgID'
patch:
tags:
- Organization
operationId: updateAssetTags
summary: Update asset tags
parameters:
- in: path
name: asset_id
schema:
type: string
format: uuid
required: true
description: UUID of the asset to update
requestBody:
description: Tags to apply to the asset
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssetTags'
responses:
'200':
description: Asset details
content:
application/json:
schema:
$ref: '#/components/schemas/Asset'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/assets/{asset_id}/criticality:
parameters:
- $ref: '#/components/parameters/orgID'
patch:
tags:
- Organization
operationId: updateAssetCriticality
summary: Update asset criticality
parameters:
- in: path
name: asset_id
schema:
type: string
format: uuid
required: true
description: UUID of the asset to update
requestBody:
description: Criticality to apply to the asset
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssetCriticality'
responses:
'200':
description: Asset details
content:
application/json:
schema:
$ref: '#/components/schemas/Asset'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/assets/merge:
parameters:
- $ref: '#/components/parameters/orgID'
patch:
tags:
- Organization
operationId: mergeAssets
summary: Merge multiple assets
requestBody:
description: List of Asset IDs to merge
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssetIDs'
responses:
'200':
$ref: '#/components/responses/StatusMessage'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/assets/bulk/tags:
parameters:
- $ref: '#/components/parameters/orgID'
patch:
tags:
- Organization
operationId: updateBulkAssetTags
summary: Update tags across multiple assets based on a search query
requestBody:
description: Search query to filter and tags to apply
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssetTagsWithSearch'
responses:
'200':
$ref: '#/components/responses/StatusMessage'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/assets/bulk/clearTags:
parameters:
- $ref: '#/components/parameters/orgID'
post:
tags:
- Organization
operationId: clearBulkAssetTags
summary: Clear all tags across multiple assets based on a search query
requestBody:
description: Search query to filter
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SearchQuery'
responses:
'200':
$ref: '#/components/responses/StatusMessage'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/assets/bulk/criticality:
parameters:
- $ref: '#/components/parameters/orgID'
patch:
tags:
- Organization
operationId: updateBulkAssetCriticality
summary: Update criticality across multiple assets based on a search query
requestBody:
description: Search query to filter and criticality to apply
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssetCriticalityWithSearch'
responses:
'200':
$ref: '#/components/responses/StatusMessage'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/assets/{asset_id}/owners:
parameters:
- $ref: '#/components/parameters/orgID'
patch:
tags:
- Organization
operationId: updateAssetOwners
summary: Update asset owners
parameters:
- in: path
name: asset_id
schema:
type: string
format: uuid
required: true
description: UUID of the asset to update
requestBody:
description: List of ownerships to apply to the asset
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssetOwnerships'
responses:
'200':
description: Asset details
content:
application/json:
schema:
$ref: '#/components/schemas/Asset'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
/org/assets/bulk/owners:
parameters:
- $ref: '#/components/parameters/orgID'
patch:
tags:
- Organization
operationId: updateBulkAssetOwners
summary: Update asset owners across multiple assets based on a search query
requestBody:
description: Search query to filter and ownerships to apply
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssetOwnershipsWithSearch'
responses:
'200':
description: Updated asset count
content:
application/json:
schema:
$ref: '#/components/schemas/BulkAssetUpdateResult'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
/org/assets/bulk/clearOwners:
parameters:
- $ref: '#/components/parameters/orgID'
post:
tags:
- Organization
operationId: clearBulkAssetOwners
summary: Clear all owners across multiple assets based on a search query
requestBody:
description: Search query to filter
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SearchQuery'
responses:
'200':
description: Updated asset count
content:
application/json:
schema:
$ref: '#/components/schemas/BulkAssetUpdateResult'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'403':
$ref: '#/components/responses/InternalServerError'
/org/custom-integrations/{custom_integration_id}/bulk/remove:
parameters:
- in: path
name: custom_integration_id
schema:
type: string
format: uuid
required: true
description: UUID of the custom integration
post:
tags:
- Organization
operationId: bulkRemoveCustomIntegration
summary: Remove custom integration from a list of assets
requestBody:
description: List of asset IDs to remove
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssetIDs'
responses:
'204':
description: Empty response
'400':
$ref: '#/components/responses/InvalidRequestParamError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
/org/assets/{asset_id}/custom-integrations/{custom_integration_id}/remove:
parameters:
- in: path
name: asset_id
schema:
type: string
format: uuid
required: true
description: UUID of the asset to update
- in: path
name: custom_integration_id
schema:
type: string
format: uuid
required: true
description: UUID of the custom integration
delete:
tags:
- Organization
operationId: removeCustomIntegration
summary: Remove single custom integration from asset
responses:
'204':
description: Empty response
'400':
$ref: '#/components/responses/InvalidRequestParamError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'500':
$ref: '#/components/responses/InternalServerError'
/org/assets/{asset_id}/sources/{source_id}/remove:
parameters:
- in: path
name: asset_id
schema:
type: string
format: uuid
required: true
description: UUID of the asset to update
- in: path
name: source_id
schema:
type: string
format: uuid
required: true
description: UUID of the source
delete:
tags:
- Organization
operationId: removeAssetSource
summary: Remove single source from asset
responses:
'204':
description: Empty response
'400':
$ref: '#/components/responses/InvalidRequestParamError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'500':
$ref: '#/components/responses/InternalServerError'
/org/custom-integrations:
get:
tags:
- Organization
operationId: getOrgCustomIntegrations
summary: Get all custom integrations
responses:
'200':
description: An array of all custom integrations
content:
application/json:
schema:
$ref: '#/components/schemas/CustomIntegration'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
/org/custom-integrations/{customIntegrationId}:
parameters:
- in: path
name: customIntegrationId
schema:
type: string
format: uuid
required: true
description: UUID of the custom integration
get:
tags:
- Organization
operationId: getOrgCustomIntegration
summary: Get single custom integration
responses:
'200':
description: The custom integration with given ID
content:
application/json:
schema:
$ref: '#/components/schemas/CustomIntegration'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
/org/services:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getServices
summary: Get all services
parameters:
- $ref: '#/components/parameters/search'
responses:
'200':
description: Array of services
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Service'
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/services/{service_id}:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getService
summary: Get service details
parameters:
- in: path
name: service_id
schema:
type: string
format: uuid
required: true
description: UUID of the service to retrieve
responses:
'200':
description: Service details
content:
application/json:
schema:
$ref: '#/components/schemas/Service'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
delete:
tags:
- Organization
operationId: removeService
summary: Remove a service
parameters:
- in: path
name: service_id
schema:
type: string
format: uuid
required: true
description: UUID of the service to remove
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/wireless:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getWirelessLANs
summary: Get all wireless LANs
parameters:
- $ref: '#/components/parameters/search'
responses:
'200':
description: Array of wireless LANs
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Wireless'
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/wireless/{wireless_id}:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getWirelessLAN
summary: Get wireless LAN details
parameters:
- in: path
name: wireless_id
schema:
type: string
format: uuid
required: true
description: UUID of the wireless LAN to retrieve
responses:
'200':
description: Wireless LAN details
content:
application/json:
schema:
$ref: '#/components/schemas/Wireless'
'401':
$ref: '#/components/responses/UnauthorizedError'
delete:
tags:
- Organization
operationId: removeWirelessLAN
summary: Remove a wireless LAN
parameters:
- in: path
name: wireless_id
schema:
type: string
format: uuid
required: true
description: UUID of the wireless LAN to remove
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/tasks:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getTasks
summary: Get all tasks (last 1000)
parameters:
- in: query
name: status
description: An optional status string for filtering results
required: false
schema:
type: string
- $ref: '#/components/parameters/search'
responses:
'200':
description: Array of tasks
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Task'
'401':
$ref: '#/components/responses/UnauthorizedError'
/org/tasks/{task_id}:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getTask
summary: Get task details
parameters:
- in: path
name: task_id
schema:
type: string
format: uuid
required: true
description: UUID of the task to retrieve
responses:
'200':
description: Task details
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'401':
$ref: '#/components/responses/UnauthorizedError'
patch:
tags:
- Organization
operationId: updateTask
summary: Update task parameters
parameters:
- in: path
name: task_id
schema:
type: string
format: uuid
required: true
description: UUID of the task to update
requestBody:
description: Task object
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskOptions'
responses:
'200':
description: Task details
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/tasks/{task_id}/data:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getTaskScanData
summary: Returns a temporary task scan data url
parameters:
- in: path
name: task_id
schema:
type: string
format: uuid
required: true
description: UUID of the task
responses:
'303':
description: Redirection to scan data
content:
application/json:
schema:
$ref: '#/components/schemas/URL'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/tasks/{task_id}/changes:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getTaskChangeReport
summary: Returns a temporary task change report data url
parameters:
- in: path
name: task_id
schema:
type: string
format: uuid
required: true
description: UUID of the task
responses:
'303':
description: Redirection to scan data
content:
application/json:
schema:
$ref: '#/components/schemas/URL'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/tasks/{task_id}/log:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Organization
operationId: getTaskLog
summary: Returns a temporary task log data url
parameters:
- in: path
name: task_id
schema:
type: string
format: uuid
required: true
description: UUID of the task
responses:
'303':
description: Redirection to scan data
content:
application/json:
schema:
$ref: '#/components/schemas/URL'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/tasks/{task_id}/stop:
parameters:
- $ref: '#/components/parameters/orgID'
post:
tags:
- Organization
operationId: stopTask
summary: Signal that a task should be stopped or canceled.This will also remove recurring and scheduled tasks
parameters:
- in: path
name: task_id
schema:
type: string
format: uuid
required: true
description: UUID of the task to stop
responses:
'200':
description: Task information
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/org/tasks/{task_id}/hide:
parameters:
- $ref: '#/components/parameters/orgID'
post:
tags:
- Organization
operationId: hideTask
summary: Signal that a completed task should be hidden
parameters:
- in: path
name: task_id
schema:
type: string
format: uuid
required: true
description: UUID of the task to hide
responses:
'200':
description: Task information
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/account/orgs:
get:
tags:
- Account
operationId: getAccountOrganizations
summary: Get all organization details
parameters:
- $ref: '#/components/parameters/search'
responses:
'200':
description: Array of organizations
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Organization'
'401':
$ref: '#/components/responses/UnauthorizedError'
put:
tags:
- Account
operationId: createAccountOrganization
summary: Create a new organization
requestBody:
description: Organization definition
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/OrgOptions"
responses:
'200':
description: Organization details
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/account/orgs/{org_id}:
get:
tags:
- Account
operationId: getAccountOrganization
summary: Get organization details
parameters:
- in: path
name: org_id
schema:
type: string
format: uuid
required: true
description: UUID of the organization to retrieve
responses:
'200':
description: Organization information
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
'401':
$ref: '#/components/responses/UnauthorizedError'
patch:
tags:
- Account
operationId: updateAccountOrganization
summary: Update organization details
parameters:
- in: path
name: org_id
schema:
type: string
format: uuid
required: true
description: UUID of the organization to retrieve
requestBody:
description: Organization options
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OrgOptions'
responses:
'200':
description: Organization details
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
'401':
$ref: '#/components/responses/UnauthorizedError'
delete:
tags:
- Account
operationId: removeAccountOrganization
summary: Remove this organization
parameters:
- in: path
name: org_id
schema:
type: string
format: uuid
required: true
description: UUID of the organization to retrieve
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/orgs/{org_id}/exportToken:
delete:
deprecated: true
tags:
- Account
operationId: deleteAccountOrganizationExportTokenDeprecated
summary: Removes the export token from the specified organization
description: This API has been deprecated. Please use `DELETE /account/orgs/{org_id}/exportTokens/{key_id}` instead. This API will fail if more than one export tokens exist for the given organization.
parameters:
- in: path
name: org_id
schema:
type: string
format: uuid
required: true
description: UUID of the organization to retrieve
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/orgs/{org_id}/exportToken/rotate:
patch:
deprecated: true
tags:
- Account
operationId: rotateAccountOrganizationExportTokenDeprecated
summary: Rotates an organization export token and returns the updated token
description: This API has been deprecated. Please use `PATCH /account/orgs/{org_id}/exportTokens/{key_id}/rotate` instead. This API will fail if more than one export tokens exist for the given organization.
parameters:
- in: path
name: org_id
schema:
type: string
format: uuid
required: true
description: UUID of the organization to retrieve
responses:
'200':
description: Export token details
content:
application/json:
schema:
$ref: '#/components/schemas/ExportToken'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/orgs/{org_id}/exportTokens:
get:
tags:
- Account
operationId: getAccountOrganizationExportTokens
summary: Get all active export tokens for an organization
parameters:
- in: path
name: org_id
schema:
type: string
format: uuid
required: true
description: UUID of the organization to retrieve export tokens for
responses:
'200':
description: Array of export tokens
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ExportToken'
'401':
$ref: '#/components/responses/UnauthorizedError'
post:
tags:
- Account
operationId: createAccountOrganizationExportToken
summary: Create a new export token for an organization
parameters:
- in: path
name: org_id
schema:
type: string
format: uuid
required: true
description: UUID of the organization to create an export token for
requestBody:
description: Export token parameters
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/ExportTokenOptions"
responses:
'200':
description: Export token details
content:
application/json:
schema:
$ref: '#/components/schemas/ExportToken'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/account/orgs/{org_id}/exportTokens/{key_id}:
get:
tags:
- Account
operationId: getAccountOrganizationExportToken
summary: Get export token details
parameters:
- in: path
name: org_id
schema:
type: string
format: uuid
required: true
description: UUID of the organization to retrieve
- in: path
name: key_id
schema:
type: string
format: uuid
required: true
description: UUID of the export token ID to retrieve
responses:
'200':
description: Export token details
content:
application/json:
schema:
$ref: '#/components/schemas/ExportToken'
'401':
$ref: '#/components/responses/UnauthorizedError'
delete:
tags:
- Account
operationId: deleteAccountOrganizationExportToken
summary: Removes the export token from the specified organization
parameters:
- in: path
name: org_id
schema:
type: string
format: uuid
required: true
description: UUID of the organization to retrieve
- in: path
name: key_id
schema:
type: string
format: uuid
required: true
description: UUID of the export token ID to remove
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/orgs/{org_id}/exportTokens/{key_id}/rotate:
patch:
tags:
- Account
operationId: rotateAccountOrganizationExportToken
summary: Rotates an organization export token and returns the updated token
parameters:
- in: path
name: org_id
schema:
type: string
format: uuid
required: true
description: UUID of the organization to retrieve
- in: path
name: key_id
schema:
type: string
format: uuid
required: true
description: UUID of the export token ID to rotate
responses:
'200':
description: Export token details
content:
application/json:
schema:
$ref: '#/components/schemas/ExportToken'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/license:
get:
tags:
- Account
operationId: getAccountLicense
summary: Get license details
responses:
'200':
description: License information
content:
application/json:
schema:
$ref: '#/components/schemas/License'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/sites:
get:
tags:
- Account
operationId: getAccountSites
summary: Get all sites details across all organizations
parameters:
- $ref: '#/components/parameters/search'
responses:
'200':
description: Array of sites
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Site'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/credentials:
get:
tags:
- Account
operationId: getAccountCredentials
summary: Get all account credentials
parameters:
- $ref: '#/components/parameters/search'
responses:
'200':
description: Array of credentials
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Credential'
'401':
$ref: '#/components/responses/UnauthorizedError'
put:
tags:
- Account
operationId: createAccountCredential
summary: Create a new credential
requestBody:
description: Credential parameters
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/CredentialOptions"
responses:
'200':
description: Credential details
content:
application/json:
schema:
$ref: '#/components/schemas/Credential'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/account/credentials/{credential_id}:
get:
tags:
- Account
operationId: getAccountCredential
summary: Get credential details
parameters:
- in: path
name: credential_id
schema:
type: string
format: uuid
required: true
description: UUID of the credential to retrieve
responses:
'200':
description: Credential details
content:
application/json:
schema:
$ref: '#/components/schemas/Credential'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
delete:
tags:
- Account
operationId: removeAccountCredential
summary: Remove this credential
parameters:
- in: path
name: credential_id
schema:
type: string
format: uuid
required: true
description: UUID of the credential to delete
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/account/keys:
get:
tags:
- Account
operationId: getAccountKeys
summary: Get all active API keys
responses:
'200':
description: Array of keys
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OrganizationAPIKey'
'401':
$ref: '#/components/responses/UnauthorizedError'
put:
tags:
- Account
operationId: createAccountKey
summary: Create a new key
requestBody:
description: Key parameters
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/APIKeyOptions"
responses:
'200':
description: Key details
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationAPIKey'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/account/keys/{key_id}:
get:
tags:
- Account
operationId: getAccountKey
summary: Get key details
parameters:
- in: path
name: key_id
schema:
type: string
format: uuid
required: true
description: UUID of the key to retrieve
responses:
'200':
description: API key information
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationAPIKey'
'401':
$ref: '#/components/responses/UnauthorizedError'
delete:
tags:
- Account
operationId: removeAccountKey
summary: Remove this key
parameters:
- in: path
name: key_id
schema:
type: string
format: uuid
required: true
description: UUID of the key to retrieve
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/keys/{key_id}/rotate:
patch:
tags:
- Account
operationId: rotateAccountKey
summary: Rotates the key secret
parameters:
- in: path
name: key_id
schema:
type: string
format: uuid
required: true
description: UUID of the key to retrieve
responses:
'200':
description: Key details
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationAPIKey'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/events.json:
get:
tags:
- Account
operationId: exportEventsJSON
summary: System event log as JSON
parameters:
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startKey'
responses:
'200':
description: Filtered event results. - When the `page_size` query parameter is not set in the request, the response will be a JSON array of events.
- When the `page_size` query parameter is present in the request, the response will be an object with an events array and a `next_key` string for pagination.
content:
application/json:
schema:
$ref: '#/components/schemas/EventExportResponse'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/events.jsonl:
get:
tags:
- Account
operationId: exportEventsJSONL
summary: System event log as JSON line-delimited
parameters:
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
responses:
'200':
# This is a streaming response of one Event object per line in JSON format
description: Filtered event results
content:
application/json:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/tasks:
get:
tags:
- Account
operationId: getAccountTasks
summary: Get all task details across all organizations (up to 1000)
parameters:
- $ref: '#/components/parameters/search'
responses:
'200':
description: Array of tasks
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Task'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/tasks/templates:
get:
tags:
- Account
operationId: getAccountScanTemplates
summary: Get all scan templates across all organizations (up to 1000)
parameters:
- $ref: '#/components/parameters/search'
responses:
'200':
description: Array of scan templates
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ScanTemplate'
'422':
description: Failed to parse search string
'401':
$ref: '#/components/responses/UnauthorizedError'
post:
tags:
- Account
operationId: createAccountScanTemplate
summary: Create a new scan template
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/ScanTemplateOptions"
responses:
'200':
description: Scan template
content:
application/json:
schema:
$ref: '#/components/schemas/ScanTemplate'
'401':
$ref: '#/components/responses/UnauthorizedError'
'422':
$ref: '#/components/responses/InvalidRequestBodyError'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
put:
tags:
- Account
operationId: updateAccountScanTemplate
summary: Update scan template
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/ScanTemplate"
responses:
'200':
description: Scan template
content:
application/json:
schema:
$ref: '#/components/schemas/ScanTemplate'
'401':
$ref: '#/components/responses/UnauthorizedError'
'422':
$ref: '#/components/responses/InvalidRequestBodyError'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'404':
description: Scan template or permissions not found
/account/tasks/templates/{scan_template_id}:
get:
tags:
- Account
operationId: getAccountScanTemplate
summary: Get scan template details
parameters:
- in: path
name: scan_template_id
schema:
type: string
format: uuid
required: true
description: UUID of the scan template to retrieve
responses:
'200':
description: Scan template
content:
application/json:
schema:
$ref: '#/components/schemas/ScanTemplate'
'401':
$ref: '#/components/responses/UnauthorizedError'
'422':
description: Invalid scan template ID
'404':
description: Scan template not found
delete:
tags:
- Account
operationId: removeAccountScanTemplate
summary: Remove scan template
parameters:
- in: path
name: scan_template_id
schema:
type: string
format: uuid
required: true
description: UUID of the scan template to remove
responses:
'200':
description: Scan template
content:
application/json:
schema:
$ref: '#/components/schemas/ScanTemplate'
'401':
$ref: '#/components/responses/UnauthorizedError'
'422':
description: Invalid request
'404':
description: Scan template not found
/account/agents:
get:
tags:
- Account
operationId: getAccountAgents
summary: Get all agents across all organizations
parameters:
- $ref: '#/components/parameters/search'
responses:
'200':
description: Array of agents
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Agent'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/users:
get:
tags:
- Account
operationId: getAccountUsers
summary: Get all users
responses:
'200':
description: Array of users
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
'401':
$ref: '#/components/responses/UnauthorizedError'
put:
tags:
- Account
operationId: createAccountUser
summary: Create a new user account
requestBody:
description: User parameters
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UserOptions"
responses:
'200':
description: User details
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/account/users/invite:
put:
tags:
- Account
operationId: createAccountUserInvite
summary: Create a new user account and send an email invite
requestBody:
description: User invite parameters
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UserInviteOptions"
responses:
'200':
description: User details
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/account/users/{user_id}:
get:
tags:
- Account
operationId: getAccountUser
summary: Get user details
parameters:
- in: path
name: user_id
schema:
type: string
format: uuid
required: true
description: UUID of the user to retrieve
responses:
'200':
description: User information
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'401':
$ref: '#/components/responses/UnauthorizedError'
delete:
tags:
- Account
operationId: removeAccountUser
summary: Remove this user
parameters:
- in: path
name: user_id
schema:
type: string
format: uuid
required: true
description: UUID of the user to delete
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
patch:
tags:
- Account
operationId: updateAccountUser
summary: Update a user's details
parameters:
- in: path
name: user_id
schema:
type: string
format: uuid
required: true
description: UUID of the user to retrieve
requestBody:
description: User parameters
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UserOptions"
responses:
'200':
description: User information
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/users/{user_id}/resetMFA:
patch:
tags:
- Account
operationId: resetAccountUserMFA
summary: Resets the user's MFA tokens
parameters:
- in: path
name: user_id
schema:
type: string
format: uuid
required: true
description: UUID of the user to retrieve
responses:
'200':
description: User information
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/users/{user_id}/resetLockout:
patch:
tags:
- Account
operationId: resetAccountUserLockout
summary: Resets the user's lockout status
parameters:
- in: path
name: user_id
schema:
type: string
format: uuid
required: true
description: UUID of the user to retrieve
responses:
'200':
description: User information
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/users/{user_id}/resetPassword:
patch:
tags:
- Account
operationId: resetAccountUserPassword
summary: Sends the user a password reset email
parameters:
- in: path
name: user_id
schema:
type: string
format: uuid
required: true
description: UUID of the user to retrieve
responses:
'200':
description: User information
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/groups:
get:
tags:
- Account
operationId: getAccountGroups
summary: Get all groups
responses:
'200':
description: Group information
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'401':
$ref: '#/components/responses/UnauthorizedError'
post:
tags:
- Account
operationId: createAccountGroup
summary: Create a new group
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/GroupPost"
responses:
'200':
description: Group information
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'401':
$ref: '#/components/responses/UnauthorizedError'
put:
tags:
- Account
operationId: updateAccountGroup
summary: Update an existing group
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/GroupPut"
responses:
'200':
description: Group information
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/groups/{group_id}:
parameters:
- in: path
name: group_id
schema:
type: string
format: uuid
required: true
description: UUID of the group
get:
tags:
- Account
operationId: getAccountGroup
summary: Get group details
responses:
'200':
description: Group information
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
delete:
tags:
- Account
operationId: removeAccountGroup
summary: Remove this group
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/sso/groups:
get:
tags:
- Account
operationId: getAccountGroupMappings
summary: Get all SSO group mappings
responses:
'200':
description: Group mapping information
content:
application/json:
schema:
$ref: '#/components/schemas/GroupMapping'
'401':
$ref: '#/components/responses/UnauthorizedError'
post:
tags:
- Account
operationId: createAccountGroupMapping
summary: Create a new SSO group mapping
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/GroupMapping"
responses:
'200':
description: Group mapping information
content:
application/json:
schema:
$ref: '#/components/schemas/GroupMapping'
'401':
$ref: '#/components/responses/UnauthorizedError'
put:
tags:
- Account
operationId: updateAccountGroupMapping
summary: Update an existing SSO group mapping
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/GroupMapping"
responses:
'200':
description: Group mapping information
content:
application/json:
schema:
$ref: '#/components/schemas/GroupMapping'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/sso/groups/{group_mapping_id}:
parameters:
- in: path
name: group_mapping_id
schema:
type: string
format: uuid
required: true
description: UUID of the SSO group mapping
get:
tags:
- Account
operationId: getAccountGroupMapping
summary: Get SSO group mapping details
responses:
'200':
description: Group mapping information
content:
application/json:
schema:
$ref: '#/components/schemas/GroupMapping'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
delete:
tags:
- Account
operationId: removeAccountGroupMapping
summary: Remove this SSO group mapping
responses:
'204':
description: Empty response
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/assets/ownership-types:
get:
tags:
- Account
operationId: getAccountAssetOwnershipTypes
summary: Get all asset ownership types
responses:
'200':
description: Array of asset ownership types
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AssetOwnershipType'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'500':
$ref: '#/components/responses/InternalServerError'
post:
tags:
- Account
operationId: createAccountAssetOwnershipTypes
summary: Create new asset ownership types
requestBody:
required: true
description: Array of asset ownership types
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AssetOwnershipTypePost'
responses:
'200':
description: Array of asset ownership types
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AssetOwnershipType'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/InvalidRequestBodyError'
'500':
$ref: '#/components/responses/InternalServerError'
put:
tags:
- Account
operationId: updateAccountAssetOwnershipTypes
summary: Update asset ownership types
requestBody:
required: true
description: Array of asset ownership types
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AssetOwnershipType'
responses:
'200':
description: Array of asset ownership types
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AssetOwnershipType'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/InvalidRequestBodyError'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
tags:
- Account
operationId: deleteAccountAssetOwnershipTypes
summary: Delete asset ownership types
requestBody:
required: true
description: Array of ids
content:
application/json:
schema:
type: array
items:
type: string
example: ["2318e078-4164-4e1b-92a5-11e353093f4b", "a352c76b-0eb7-4dab-adea-66e8b6016565"]
responses:
'200':
description: Array of remaining asset ownership types
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AssetOwnershipType'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
/account/assets/ownership-types/{ownership_type_id}:
parameters:
- in: path
name: ownership_type_id
schema:
type: string
format: uuid
required: true
description: UUID of the asset ownership type
patch:
tags:
- Account
operationId: updateAccountAssetOwnershipType
summary: Update a single asset ownership type
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssetOwnershipTypePost'
responses:
'200':
description: Updated asset ownership type
content:
application/json:
schema:
$ref: '#/components/schemas/AssetOwnershipType'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/InvalidRequestBodyError'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
tags:
- Account
operationId: deleteAccountAssetOwnershipType
summary: Delete a single asset ownership type
responses:
'200':
description: Array of remaining asset ownership types
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AssetOwnershipType'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/InvalidRequestBodyError'
'500':
$ref: '#/components/responses/InternalServerError'
/account/custom-integrations:
get:
tags:
- Account
operationId: getAccountCustomIntegrations
summary: Get all custom integrations
responses:
'200':
description: An array of all custom integrations
content:
application/json:
schema:
$ref: '#/components/schemas/CustomIntegration'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
post:
tags:
- Account
operationId: createAccountCustomIntegration
summary: Create a new custom integration
requestBody:
required: true
description: The description of the custom integration
content:
application/json:
schema:
$ref: "#/components/schemas/CustomIntegrationCreate"
responses:
'200':
description: The custom integration created
content:
application/json:
schema:
$ref: '#/components/schemas/CustomIntegration'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/InvalidRequestBodyError'
'500':
$ref: '#/components/responses/InternalServerError'
/account/custom-integrations/{customIntegrationId}:
parameters:
- in: path
name: customIntegrationId
schema:
type: string
format: uuid
required: true
description: UUID of the custom integration
get:
tags:
- Account
operationId: getAccountCustomIntegration
summary: Get single custom integration
responses:
'200':
description: The custom integration with given ID
content:
application/json:
schema:
$ref: '#/components/schemas/CustomIntegration'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
patch:
tags:
- Account
operationId: updateAccountCustomIntegration
summary: Update a single custom integration
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BaseCustomIntegration'
responses:
'200':
description: The updated custom integration
content:
application/json:
schema:
$ref: '#/components/schemas/CustomIntegration'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/InvalidRequestBodyError'
'500':
$ref: '#/components/responses/InternalServerError'
put:
tags:
- Account
operationId: createAccountCustomIntegrationAndID
summary: Replace custom integration at provided ID
requestBody:
required: true
description: Single custom integration type
content:
application/json:
schema:
$ref: '#/components/schemas/CustomIntegrationCreate'
responses:
'200':
description: The updated custom integration
content:
application/json:
schema:
$ref: '#/components/schemas/CustomIntegration'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/InvalidRequestBodyError'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
tags:
- Account
operationId: deleteAccountCustomIntegration
summary: Delete an custom integration
responses:
'200':
description: The deleted custom integration
content:
application/json:
schema:
$ref: '#/components/schemas/CustomIntegration'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
/account/api/token:
post:
tags:
- Account
operationId: getAPIToken
summary: Generate an access token using an API client
requestBody:
description: Client ID and secret
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ClientIDForm"
responses:
'200':
description: An access token
content:
application/json:
schema:
$ref: '#/components/schemas/AccessToken'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'401':
$ref: '#/components/responses/UnauthorizedError'
/account/api/rotate:
post:
tags:
- Account
operationId: rotateAPIToken
summary: Rotate the API client secret
requestBody:
description: Client ID and secret
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ClientIDForm"
responses:
'200':
description: Client details with an updated api_client_secret value
content:
application/json:
schema:
$ref: '#/components/schemas/APIClientCredentials'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/assets/sync/created/assets.json:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Splunk
operationId: splunkAssetSyncCreatedJSON
summary: Exports the asset inventory in a sync-friendly manner using created_at as a checkpoint. Requires the Splunk entitlement.
parameters:
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
- in: query
name: since
description: An optional unix timestamp to use as a checkpoint
required: false
schema:
type: integer
format: int64
example: 1576300370
responses:
'200':
description: Filtered asset results with a checkpoint wrapper
content:
application/json:
schema:
$ref: '#/components/schemas/AssetsWithCheckpoint'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/assets/sync/updated/assets.json:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Splunk
operationId: splunkAssetSyncUpdatedJSON
summary: Exports the asset inventory in a sync-friendly manner using updated_at as a checkpoint. Requires the Splunk entitlement.
parameters:
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/fields'
- in: query
name: since
description: An optional unix timestamp to use as a checkpoint
required: false
schema:
type: integer
format: int64
example: 1576300370
responses:
'200':
description: Filtered asset results with a checkpoint wrapper
content:
application/json:
schema:
$ref: '#/components/schemas/AssetsWithCheckpoint'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/assets.servicenow.csv:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- ServiceNow
operationId: snowExportAssetsCSV
summary: Export an asset inventory as CSV for ServiceNow integration
responses:
'200':
description: Asset export
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/assets.servicenow.json:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- ServiceNow
operationId: snowExportAssetsJSON
summary: Exports the asset inventory as JSON
responses:
'200':
description: Filtered asset results
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AssetServiceNow'
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/services.servicenow.csv:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- ServiceNow
operationId: snowExportServicesCSV
summary: Export a service inventory as CSV for ServiceNow integration
responses:
'200':
description: Services export
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
/export/org/assets.servicegraph.json:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- ServiceNow
operationId: snowServiceGraphExportAssetsJSON
summary: Exports the asset inventory as JSON
parameters:
- $ref: '#/components/parameters/search'
responses:
'200':
description: Filtered asset results
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AssetServiceNow'
'400':
$ref: '#/components/responses/InvalidRequestBodyError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/NotAllowedForLicenseError'
/export/org/assets.cisco.csv:
parameters:
- $ref: '#/components/parameters/orgID'
get:
tags:
- Cisco SNTC
operationId: exportAssetsCiscoCSV
summary: Cisco serial number and model name export for Cisco Smart Net Total Care Service.
parameters:
- $ref: '#/components/parameters/search'
responses:
'200':
description: Filtered asset results
content:
text/csv:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/UnauthorizedError'
components:
parameters:
orgID:
in: query
name: _oid
required: false
schema:
type: string
description: The current Organization
search:
in: query
name: search
required: false
schema:
type: string
description: A search query in runZero search query syntax
fields:
in: query
name: fields
required: false
schema:
type: string
description: A list of fields to export, comma-separated
pageSize:
in: query
name: page_size
required: false
schema:
type: integer
description: The number of results to return per request.
startKey:
in: query
name: start_key
required: false
schema:
type: string
description: The value to use for requesting the next page when requesting paginated results. This should be the value of the `next_key` attribute returned in the previous response.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
oauthDefaults:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://console.runzero.com/api/v1.0/account/api/token
scopes: {}
responses:
UnauthorizedError:
description: Access token is missing or invalid
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
LicenseExpiredError:
description: License has expired
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
ProcessingError:
description: Request could not be processed
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
NotFoundError:
description: Resource not found
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
InternalServerError:
description: Unexpected error occurred on the server
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
NotAllowedForLicenseError:
description: Action not allowed for this license type
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
InvalidRequestBodyError:
description: Invalid request body
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
InvalidRequestParamError:
description: Invalid request parameter
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
StatusMessage:
description: Summary of operation results
content:
application/json:
schema:
$ref: "#/components/schemas/OperationStatus"
schemas:
OperationStatus:
description: Summary of the result of a bulk or asynchronous operation.
type: object
Problem:
description: >
RFC7807 Problem JSON object from https://opensource.zalando.com/restful-api-guidelines/models/problem-1.0.1.yaml
without the standard 'type' and 'instance' fields.
type: object
properties:
title:
type: string
description: >
A short summary of the problem type. Written in English and readable
for engineers, usually not suited for non technical stakeholders and
not localized.
example: A short summary of the problem type.
status:
type: integer
format: int32
description: >
The HTTP status code generated by the origin server for this occurrence
of the problem.
minimum: 100
maximum: 600
exclusiveMaximum: true
detail:
type: string
description: >
A human readable explanation specific to this occurrence of the
problem that is helpful to locate the problem and give advice on how
to proceed. Written in English and readable for engineers, usually not
suited for non technical stakeholders and not localized.
example: A human readable explanation specific to this occurrence of the problem.
AWSCredentialFields:
type: object
required:
- access_key
- secret_access_key
properties:
access_key:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
secret_access_key:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
regions:
type: string
format: string
example: "us-west-1, us-east-2"
use_cross_account_org:
type: string
format: string
example: "true"
role:
type: string
format: string
example: "runzero-role"
AzureClientSecretCredentialFields:
type: object
required:
- client_id
- client_secret
- tenant_id
- environment
properties:
client_id:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
client_secret:
type: string
format: string
example: "abcde~abcdefghiklmnopqrstuvwx_yz123456-7"
tenant_id:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
environment:
type: string
format: string
example: global
enum: ["global", "gcc", "gcc_high", "dod"]
multi_subscription:
type: string
format: string
example: "true"
subscription_id:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
AzureUsernamePasswordCredentialFields:
type: object
required:
- client_id
- tenant_id
- username
- password
properties:
client_id:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
tenant_id:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
username:
type: string
format: string
example: user@example.com
password:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
CensysCredentialFields:
type: object
required:
- client_id
- client_secret
properties:
client_id:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
client_secret:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
api_url:
type: string
format: string
example: https://search.censys.io
Certificate:
type: object
required:
- id
- organization_id
properties:
id:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
type:
type: string
enum: [x509, ssh]
created_at:
type: integer
format: int64
example: 1576300370
updated_at:
description: When the certificate was last seen in a response from a service, and updated.
type: integer
format: int64
example: 1576300370
organization_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
names:
type: array
description: An assembled list of all names in the certificate.
items:
type: string
example: CN=server,OU=Dept,O=Company
self_signed:
description: Whether the certificate appears to be self-signed based on subject and authority.
type: boolean
hidden:
description: Whether the certificate has been hidden from the default certificates view.
type: boolean
serial:
description: The serial number of the certificate.
type: string
format: string
example: 03beffa48e31b95581b0ebb0b1b3fe5ada9c
validity_start:
description: When the certificate becomes valid.
type: integer
format: int64
example: 1576300370
validity_end:
description: When the certificate ceases to be valid.
type: integer
format: int64
example: 1576300370
public_key:
type: string
format: base64
public_key_bits:
type: integer
format: int32
example: 2048
public_key_algorithm:
type: string
format: string
example: rsaEncryption
signature:
type: string
format: base64
signature_algorithm:
type: string
format: string
example: sha256WithRSAEncryption
fp_bkhash:
description: The badkeys hash.
type: string
format: string
fp_sha1:
description: The SHA1 hash of the certificate.
type: string
format: string
fp_sha256:
description: The SHA256 hash of the certificate.
type: string
format: string
fp_md5:
description: The MD5 hash of the certificate (for SSH).
type: string
format: string
subject:
description: The subject of the certificate.
type: string
format: dn
cn:
description: The Common Name field from the certificate (no longer used by web browsers).
type: string
format: string
example: www.example.com
version:
description: The version of the certificate.
type: integer
format: int32
issuer:
description: The authority which issued the certificate.
type: string
format: dn
subject_key_id:
description: The key ID of the subject of the certificate.
type: string
format: string
authority_key_id:
description: The key ID of the authority which signed the certificate.
type: string
format: string
ocsp_server:
description: Zero or more OCSP server URLs.
type: array
items:
type: string
format: url
crl_distribution_points:
description: Zero or more URLs of CRLs.
type: array
items:
type: string
format: url
issuing_certificate_url:
description: Zero or more URLs where the issuing certificate can be found.
type: array
items:
type: string
format: url
is_ca:
description: Whether the certificate claims to be a Certificate Authority.
type: boolean
key_usage:
description: Valid purposes the certificate's key can be used for.
type: array
items:
type: string
ext_key_usage:
description: Additional purposes the certificate's key can be used for.
type: array
items:
type: string
san_dns_names:
description: Subject Alternative Name hostnames.
type: array
items:
type: string
format: hostname
san_ip_addresses:
description: Subject Alternative Name IP addresses.
type: array
items:
type: string
oneOf:
- format: ipv4
- format: ipv6
san_email_addresses:
description: Subject Alternative Name email addresses.
items:
type: string
format: email
san_uris:
description: Subject Alternative Name URIs.
items:
type: string
format: uri
public_key_parameters:
description: Parameters specific to the public key type.
type: object
CrowdstrikeCredentialFields:
type: object
required:
- client_id
- client_secret
- api_url
properties:
client_id:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
client_secret:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
api_url:
type: string
format: string
example: example.crowdstrike.com
CustomIntegrationScriptCredentialFields:
type: object
required:
- access_key
- access_secret
properties:
access_key:
type: string
format: string
access_secret:
type: string
format: string
Finding:
type: object
required:
- id
- organization_id
properties:
id:
type: string
format: uuid
category:
type: string
format: string
organization_id:
type: string
format: uuid
finding_code:
description: A runZero-assigned code for the finding.
type: string
name:
description: The title of the finding.
type: string
description:
description: Additional information about the finding.
type: string
solution:
description: Remediation information.
type: string
links:
$ref: '#/components/schemas/FindingLinks'
created_at:
type: integer
format: int64
updated_at:
type: integer
format: int64
last_detected_at:
type: integer
format: int64
instance_count:
type: integer
format: int64
risk_rank:
type: string
risk_rank_value:
description: 0 = info, 4 = critical
type: integer
format: int32
minimum: 0
maximum: 4
GCPCredentialFields:
type: object
properties:
cross_project:
type: string
format: string
example: "false"
auth_provider_x509_cert_url:
type: string
format: string
example: https://www.googleapis.com/oauth2/v1/certs
auth_uri:
type: string
format: string
example: https://accounts.google.com/o/oauth2/auth
client_email:
type: string
format: string
example: example@example.iam.gserviceaccount.com
client_id:
type: string
format: string
example: "111111111111111111111"
client_x509_cert_url:
type: string
format: string
example: https://www.googleapis.com/robot/v1/metadata/x509/example.iam.gserviceaccount.com
private_key:
type: string
format: string
description: base64 encoded private key, beginning with -----BEGIN PRIVATE KEY-----
private_key_id:
type: string
format: string
example: "1111111111111111111111111111111111111111"
project_id:
type: string
format: string
example: example
token_uri:
type: string
format: string
example: https://oauth2.googleapis.com/token
type:
type: string
format: string
example: service_account
universe_domain:
type: string
format: string
example: googleapis.com
GoogleWorkspaceCredentialFields:
type: object
required:
- delegate
properties:
delegate:
type: string
format: string
example: adminexample@example.com
customer_id:
type: string
format: string
auth_provider_x509_cert_url:
type: string
format: string
example: https://www.googleapis.com/oauth2/v1/certs
auth_uri:
type: string
format: string
example: https://accounts.google.com/o/oauth2/auth
client_email:
type: string
format: string
example: example@example.iam.gserviceaccount.com
client_id:
type: string
format: string
example: "111111111111111111111"
client_x509_cert_url:
type: string
format: string
example: https://www.googleapis.com/robot/v1/metadata/x509/example.iam.gserviceaccount.com
private_key:
type: string
format: string
description: base64 encoded private key, beginning with -----BEGIN PRIVATE KEY-----
private_key_id:
type: string
format: string
example: "1111111111111111111111111111111111111111"
project_id:
type: string
format: string
example: example
token_uri:
type: string
format: string
example: https://oauth2.googleapis.com/token
type:
type: string
format: string
example: service_account
universe_domain:
type: string
format: string
example: googleapis.com
InsightVMCredentialFields:
type: object
required:
- api_url
- username
- password
properties:
api_url:
type: string
format: string
example: https://ivm.example:3780
username:
type: string
format: string
example: admin
password:
type: string
format: string
example: pass
insecure:
type: string
format: string
example: "true"
thumbprints:
type: string
format: string
LDAPCredentialFields:
type: object
required:
- username
- password
- base_dn
- url
properties:
url:
type: string
format: string
example: ldap://example.com:389
username:
type: string
format: string
example: admin
password:
type: string
format: string
example: pass
base_dn:
type: string
format: string
example: dc=example,dc=com
insecure:
type: string
format: string
example: "true"
legacy_tls:
type: string
format: string
example: "false"
thumbprints:
type: string
format: string
MECMCredentialFields:
type: object
required:
- db_connection_string
properties:
db_connection_string:
type: string
format: string
MirakiCredentialFields:
type: object
required:
- api_url
- api_key
properties:
api_url:
type: string
format: string
api_key:
type: string
format: string
MiradoreCredentialFields:
type: object
required:
- hostname
- api_key
properties:
hostname:
type: string
format: string
example: yourcompanyinc.online.miradore.com
api_key:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
NessusCredentialFields:
type: object
required:
- api_url
- access_key
- secret_key
properties:
api_url:
type: string
format: string
access_key:
type: string
format: string
secret_key:
type: string
format: string
insecure:
type: string
format: string
example: "false"
thumbprints:
type: string
format: string
NetboxCredentialFields:
type: object
required:
- api_url
- api_key
properties:
api_url:
type: string
format: string
api_key:
type: string
format: string
PaloAltoFirewallCredentialFields:
type: object
required:
- api_key
properties:
api_key:
type: string
format: string
QualysCredentialFields:
type: object
required:
- api_url
- username
- password
properties:
api_url:
type: string
format: string
username:
type: string
format: string
password:
type: string
format: string
SentinelOneCredentialFields:
type: object
required:
- api_url
- api_key
properties:
api_url:
type: string
format: string
api_key:
type: string
format: string
ShodanCredentialFields:
type: object
required:
- api_key
properties:
api_key:
type: string
format: string
SNMPv2CommunitiesCredentialFields:
type: object
required:
- community
properties:
community:
type: string
format: string
example: "public,private"
SNMPv3CredentialFields:
type: object
required:
- username
properties:
username:
type: string
format: string
example: user
context:
type: string
format: string
example: vlan-32
auth-protocol:
type: string
format: string
example: sha
auth-passphrase:
type: string
format: string
example: authpass
privacy-protocol:
type: string
format: string
example: aes
privacy-passphrase:
type: string
format: string
example: privpass
TaniumCredentialFields:
type: object
required:
- api_url
- api_token
properties:
api_url:
type: string
format: string
api_token:
type: string
format: string
TenableIoCredentialFields:
type: object
required:
- api_url
- access_key
- secret_key
properties:
api_url:
type: string
format: string
access_key:
type: string
format: string
secret_key:
type: string
format: string
TenableScCredentialFields:
type: object
required:
- api_url
- access_key
- secret_key
properties:
api_url:
type: string
format: string
access_key:
type: string
format: string
secret_key:
type: string
format: string
insecure:
type: string
format: string
example: "false"
thumbprints:
type: string
format: string
VMwareCredentialFields:
type: object
required:
- username
- password
properties:
username:
type: string
format: string
example: user
password:
type: string
format: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
insecure:
type: string
format: string
example: "true"
thumbprints:
type: string
format: string
example: IP=SHA256:B64HASH
WizCredentialFields:
type: object
required:
- client_id
- client_secret
- auth_url
- api_url
properties:
auth_url:
type: string
format: string
example: https://auth.app.wiz.io/
api_url:
type: string
format: string
client_id:
type: string
format: string
client_secret:
type: string
format: string
X509CredentialFields:
type: object
required:
- x509_certificate
- private_key
properties:
x509_certificate:
type: string
format: string
private_key:
type: string
format: string
ComponentVersion:
type: object
description: A component ID and version
required:
- id
- version
properties:
id:
type: string
format: string
example: agent
version:
type: string
format: string
example: '1.0.0'
HealthCheckResponse:
type: object
description: A health check response and version
required:
- status
- version
properties:
status:
type: string
format: string
example: ok
version:
type: string
format: string
example: '3.0.0'
URL:
description: A URL to a resource
type: object
required:
- url
properties:
url:
type: string
format: url
example: https://www.runzero.com/docs/
SampleOptions:
description: Options which can be set to create or modify traffic sampling.
type: object
required:
- interfaces
properties:
explorer:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
agent:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
targets:
type: string
example: "10.0.0.0/8 172.16.0.0/12 192.168.0.0/16"
excludes:
type: string
tags:
type: string
example: "owner=IT location=Texas"
interfaces:
type: string
example: "eth0,wlan0"
ScanOptions:
description: Options which can be set to create or modify a scan.
type: object
required:
- targets
properties:
targets:
type: string
example: "defaults"
excludes:
type: string
scan-name:
type: string
example: My Scan
scan-description:
description: A description of the scan.
type: string
example: Scan of Wireless
scan-template:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
scan-frequency:
description: A string time duration value representing execution frequency, if scheduled to repeat.
type: string
enum: [once, hourly, daily, weekly, monthly, continuous]
example: hourly
scan-start:
description: Unix timestamp value indicating when the template was created.
type: string
example: "0"
scan-tags:
type: string
example: "owner=IT location=Texas"
scan-grace-period:
type: string
example: "4"
agent:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
explorer:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
explorer-group-id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
hosted-zone-id:
type: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
description: The string 'auto' will use any available hosted zone. Otherwise, provide the string name (hostedzone1) or UUID ("e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8") of a hosted zone.
hosted-zone-name:
type: string
example: auto
description: The string 'auto' will use any available hosted zone. Otherwise, provide the string name (hostedzone1) of the hosted zone.
rate:
type: string
example: "10000"
max-host-rate:
type: string
example: "100"
passes:
type: string
example: "3"
max-attempts:
type: string
example: "3"
max-sockets:
type: string
example: "500"
max-group-size:
type: string
example: "4096"
max-ttl:
type: string
example: "255"
tos:
type: string
example: "255"
tcp-ports:
type: string
example: "1-1000,5000-6000"
tcp-excludes:
type: string
example: "9500"
screenshots:
type: string
example: "true"
nameservers:
type: string
example: "8.8.8.8"
subnet-ping:
type: string
example: "true"
subnet-ping-net-size:
type: string
example: "256"
subnet-ping-probes:
type: string
description: Optional subnet ping probe list as comma separated strings. The example shows possibilities.
example: arp, echo, syn, connect, netbios, snmp, ntp, sunrpc, ike, openvpn, mdns
subnet-ping-sample-rate:
type: string
example: "3"
host-ping:
type: string
example: "false"
host-ping-probes:
type: string
description: Optional host ping probe list as comma separated strings. The example shows possibilities.
example: arp, echo, syn, connect, netbios, snmp, ntp, sunrpc, ike, openvpn, mdns
probes:
type: string
description: Optional probe list, otherwise all probes are used
example: arp,bacnet,connect,dns,echo,ike,ipmi,mdns,memcache,mssql,natpmp,netbios,pca,rdns,rpcbind,sip,snmp,ssdp,syn,ubnt,wlan-list,wsd
# Probe options are also supported with values like: dns-port: "53"
ScanTemplateOptions:
description: Options which can be set to create a scan template.
type: object
required:
- name
- organization_id
- global
- acl
properties:
name:
description: Name of the template.
type: string
example: My Scan Template
description:
description: Description of the template.
type: string
example: My Scan Template
organization_id:
description: The ID of the organization the template will be created in
type: string
format: uuid
example: "f6cfb91a-52ea-4a86-bf9a-5a891a26f52b"
params:
description: A number of scan parameter values. Currently there is no authoritative list of acceptable values. See existing templates for examples.
type: object
additionalProperties:
type: string
global:
description: Whether the template is globally available to all organizations.
type: boolean
example: false
acl:
description: A map of IDs to strings which describe how the template may be accessed. Currently there is no authoritative list of acceptable values. See existing templates for examples.
type: object
additionalProperties: true
example:
"e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8": user
ScanTemplate:
description: A scan task template
type: object
required:
- id
- global
- organization_id
- acl
properties:
id:
description: ID of the template.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
name:
description: The name of the template.
type: string
example: My Scan Template
description:
description: The description of the template.
type: string
example: My Scan Template
client_id:
description: ID of the account which owns the template.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
organization_id:
description: ID of the organization the template is available in.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
agent_id:
description: ID of the explorer which may execute the template.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
site_id:
description: ID of the site the template is being used in.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
cruncher_id:
description: ID of the runZero cruncher the task is executing on.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_at:
description: Unix timestamp value indicating when the template was created.
type: integer
format: int64
example: 1576300370
created_by:
description: The username of the account which created the template.
type: string
example: user@example.com
created_by_user_id:
description: The ID of the account which created the template.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
updated_at:
description: Unix timestamp value indicating when the template was last modified.
type: integer
format: int64
example: 1576300370
type:
description: The type of task the template creates.
type: string
example: scan
status:
description: The status of the last task using the template.
type: string
example: processed
error:
description: The error message, if any, of the last task using the template.
type: string
example: agent unavailable
params:
description: A number of task parameter values. Currently there is no authoritative list of in-use values. See existing templates for examples.
type: object
additionalProperties:
type: string
stats:
description: A map of statistics about the last task executed with the template. Currently there is no authoritative list of in-use values. See existing templates for examples.
type: object
additionalProperties: true
hidden:
description: A flag indicating whether the item is hidden from common view.
type: boolean
example: false
parent_id:
description: The ID of the parent entity of the task scheduled.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
recur:
description: A flag representing whether derived tasks are scheduled to repeat.
type: boolean
example: false
recur_frequency:
description: |
A string time duration value representing execution frequency, if scheduled to repeat. You may use
values including as once, hourly, daily, weekly, monthly, continuous
type: string
example: hourly
start_time:
description: Unix timestamp representing the next execution time.
type: integer
format: int64
example: 1576300370
recur_last:
description: Unix timestamp representing the last execution if scheduled to repeat.
type: integer
format: int64
example: 1576300370
recur_next:
description: Unix timestamp representing the next execution if scheduled to repeat.
type: integer
format: int64
example: 1576300370
recur_last_task_id:
description: The ID of the task that last executed if scheduled to repeat.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
grace_period:
description: Additional time beyond hard expiration deadline by which the task may still be allowed to execute.
type: string
example: "4"
custom_integration_id:
description: The ID of the custom integration source, if the last task executed with this template was an import of Asset Data.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
source_id:
description: The numeric ID of the data source, if the task executed with this template is a runZero scan or third party data connection import.
type: string
example: "1"
template_id:
description: The ID of the template.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
size_site:
description: The size in assets of the site the last task the template was executed against.
type: integer
format: int64
example: 0
size_data:
description: The total size of result data of the last task the template was used with.
type: integer
format: int64
example: 0
size_results:
description: The number of results in the last task the template was used with.
type: integer
format: int64
example: 0
hosted_zone_id:
description: The ID of the hosted zone that ran the last task the template was used with.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
linked_task_count:
description: The number of tasks derived from the template.
type: integer
format: int32
example: 1
global:
description: Whether the template is globally available to all organizations.
type: boolean
example: false
acl:
description: A map of IDs to strings which describe how the template may be accessed. Currently there is no authoritative list of in-use values. See existing templates for examples.
type: object
additionalProperties: true
example:
"e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8": user
AgentPatchedSettings:
type: object
properties:
site_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
settings:
type: object
properties:
max_concurrent_scans:
type: integer
format: int64
example: 5
OrgOptions:
type: object
properties:
name:
type: string
example: My Organization
description:
type: string
example: Wobbly Widgets, Inc.
parent_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
expiration_assets_stale:
description: Number of days before stale assets are expired, as a decimal string.
type: string
example: "365"
expiration_assets_offline:
description: Number of days before offline assets are expired, as a decimal string.
type: string
example: "365"
expiration_integration_attributes:
description: Number of days before integration attributes are expired, as a decimal string. (Deprecated; use expiration_settings.)
type: string
example: "365"
expiration_scans:
description: Number of days before scan data is expired, as a decimal string.
type: string
example: "365"
expiration_settings:
description: JSON string containing optional attribute and vulnerability expiration settings. If not provided and deprecated settings are present, this will be populated from the deprecated settings. Omit keys to use their defaults.
type: string
example: "{\"attributes\":0,\"attributes_by_source\":{\"4\":7}}\",\"attributes_keep_latest\":true,\"vulnerabilities\":14}"
expiration_vulnerabilities:
description: Number of days before vulnerabilities are expired, as a decimal string. (Deprecated; use expiration_settings.)
type: string
example: "365"
keep_latest_integration_attributes:
description: Whether to retain only the latest integration attribute values, as a boolean string ("true"/"false"). (Deprecated; use expiration_settings.)
type: string
example: "true"
SiteOptions:
type: object
required:
- name
properties:
name:
type: string
example: New Site
description:
type: string
example: County Office
scope:
type: string
example: 192.168.10.0/24
excludes:
type: string
example: 192.168.10.1
subnets:
type: object
additionalProperties: true
CredentialFields:
oneOf:
- $ref: '#/components/schemas/AWSCredentialFields'
- $ref: '#/components/schemas/AzureClientSecretCredentialFields'
- $ref: '#/components/schemas/AzureUsernamePasswordCredentialFields'
- $ref: '#/components/schemas/CensysCredentialFields'
- $ref: '#/components/schemas/CrowdstrikeCredentialFields'
- $ref: '#/components/schemas/CustomIntegrationScriptCredentialFields'
- $ref: '#/components/schemas/GCPCredentialFields'
- $ref: '#/components/schemas/GoogleWorkspaceCredentialFields'
- $ref: '#/components/schemas/InsightVMCredentialFields'
- $ref: '#/components/schemas/LDAPCredentialFields'
- $ref: '#/components/schemas/MECMCredentialFields'
- $ref: '#/components/schemas/MirakiCredentialFields'
- $ref: '#/components/schemas/MiradoreCredentialFields'
- $ref: '#/components/schemas/NessusCredentialFields'
- $ref: '#/components/schemas/NetboxCredentialFields'
- $ref: '#/components/schemas/PaloAltoFirewallCredentialFields'
- $ref: '#/components/schemas/QualysCredentialFields'
- $ref: '#/components/schemas/SentinelOneCredentialFields'
- $ref: '#/components/schemas/ShodanCredentialFields'
- $ref: '#/components/schemas/SNMPv2CommunitiesCredentialFields'
- $ref: '#/components/schemas/SNMPv3CredentialFields'
- $ref: '#/components/schemas/TaniumCredentialFields'
- $ref: '#/components/schemas/TenableIoCredentialFields'
- $ref: '#/components/schemas/TenableScCredentialFields'
- $ref: '#/components/schemas/VMwareCredentialFields'
- $ref: '#/components/schemas/WizCredentialFields'
- $ref: '#/components/schemas/X509CredentialFields'
CredentialOptions:
type: object
properties:
name:
type: string
example: credentials_name
type:
type: string
enum:
- aws_access_secret
- azure_client_secret
- azure_username_password
- censys_search_api_key
- crowdstrike_api_key
- custom_integration_credential
- gcp_service_account_key
- google_workspace_client_secret
- insightvm_username_password
- ldap_username_password
- mecm_db_connection_string
- meraki_api_key
- miradore_api_key_v1
- nessus_access_secret
- netbox_api_key
- palo_alto_api_key
- qualys_username_password
- sentinelone_api_key
- shodan_api_key
- snmpv2_community
- snmpv3_credential
- tanium_api_token
- tenable_access_secret
- tenable_security_center_access_secret
- vmware_username_password
- wiz_client_secret
- x509_keypair
example: miradore_api_key_v1
acl:
type: object
additionalProperties: true
example:
"e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8": user
"e77602e0-3fb8-4734-aef9-fbc6fdcb0fe9": none
global:
type: boolean
example: false
cidrs:
type: string
example: "10.0.0.17/32, 192.168.1.0/24"
secret:
$ref: '#/components/schemas/CredentialFields'
APIKeyOptions:
type: object
properties:
comment:
type: string
example: Splunk integration key
organization_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
ExportTokenOptions:
type: object
properties:
comment:
type: string
example: Splunk export key
AssetsWithCheckpoint:
type: object
required:
- since
- assets
properties:
since:
type: integer
format: int64
example: 1576300370
assets:
type: array
items:
$ref: '#/components/schemas/Asset'
AssetComments:
type: object
required:
- comments
properties:
comments:
type: string
example: Sales Laptop
AssetTags:
type: object
required:
- tags
properties:
tags:
type: string
example: ThisTag=Value -OldTag
AssetCriticality:
type: object
required:
- criticality
properties:
criticality:
type: string
example: high
AssetIDs:
type: object
required:
- asset_ids
properties:
asset_ids:
type: array
items:
type: string
example: "453C191F-644E-4EA8-9727-0E81E5275C35"
AssetTagsWithSearch:
type: object
required:
- tags
- search
properties:
tags:
type: string
example: ThisTag=Value -OldTag
search:
type: string
example: alive:true and os:windows
AssetCriticalityWithSearch:
type: object
required:
- criticality
- search
properties:
criticality:
type: string
example: high
search:
type: string
example: alive:true and os:windows
SearchQuery:
description: A request body wrapping a runZero search query string.
type: object
required:
- search
properties:
search:
type: string
example: alive:true and os:windows
Asset:
type: object
required:
- id
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_at:
type: integer
format: int64
example: 1576300370
updated_at:
type: integer
format: int64
example: 1576300370
organization_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
site_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
scanned:
type: boolean
example: true
alive:
type: boolean
example: true
first_seen:
type: integer
format: int64
example: 1576300370
last_seen:
type: integer
format: int64
example: 1576300370
detected_by:
type: string
example: icmp
type:
type: string
example: Server
os:
type: string
example: Ubuntu Linux
os_version:
type: string
example: "18.04"
hw:
type: string
example: Dell PowerEdge 2500
addresses:
type: array
items:
type: string
oneOf:
- format: ipv4
- format: ipv6
example: 192.168.0.1
addresses_extra:
type: array
items:
type: string
oneOf:
- format: ipv4
- format: ipv6
example: 192.168.100.1
macs:
type: array
items:
type: string
format: mac
example: 11:22:33:44:55:66
mac_vendors:
type: array
items:
type: string
example: Dell
names:
type: array
items:
type: string
example: www
domains:
type: array
items:
type: string
example: www
service_count:
type: integer
format: int64
example: 10
service_count_tcp:
type: integer
format: int64
example: 7
service_count_udp:
type: integer
format: int64
example: 1
service_count_arp:
type: integer
format: int64
example: 1
service_count_icmp:
type: integer
format: int64
example: 1
lowest_ttl:
type: integer
format: int64
example: 0
lowest_rtt:
type: integer
format: int64
example: 1
last_agent_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
last_task_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
newest_mac:
type: string
format: mac
example: 11:22:33:44:55:66
newest_mac_vendor:
type: string
example: Intel Corporate
newest_mac_age:
type: integer
format: int64
example: 1304035200000000000
comments:
type: string
example: File Server
service_ports_tcp:
type: array
items:
type: string
format: port
example: "22"
service_ports_udp:
type: array
items:
type: string
format: port
example: "53"
service_protocols:
type: array
items:
type: string
example: ssh
service_products:
type: array
items:
type: string
example: bind
org_name:
type: string
example: Test Labs
site_name:
type: string
example: Primary
agent_name:
type: string
example: LAPTOP-F4P1R6
tags:
type: object
additionalProperties:
type: string
services:
type: object
additionalProperties:
type: object
additionalProperties:
type: string
rtts:
type: object
additionalProperties: true
risk_rank:
description: -1 = none, 0 = info, 4 = critical
type: number
format: int32
minimum: -1
maximum: 4
risk:
type: string
format: string
example: critical
credentials:
type: object
additionalProperties:
type: string
additionalProperties:
type: boolean
vulnerability_count:
type: number
format: int64
finding_count:
type: number
format: int64
eol_os:
description: OS main EOL date
type: number
format: int64
eol_os_ext:
description: OS extended support EOL date
type: number
format: int64
sources:
description: Sources used for asset data
type: array
items:
type: string
format: string
attributes:
type: object
additionalProperties:
type: string
Service:
type: object
required:
- id
- service_id
properties:
service_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
service_asset_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
service_created_at:
type: integer
format: int64
example: 1576300370
service_updated_at:
type: integer
format: int64
example: 1576300370
service_address:
type: string
oneOf:
- format: ipv4
- format: ipv6
example: 192.168.0.1
service_transport:
type: string
example: tcp
service_vhost:
type: string
example: www
service_port:
type: string
format: port
example: "80"
service_data:
type: object
additionalProperties:
type: string
service_protocol:
type: string
example: http tls
service_summary:
type: string
example: Login Page
service_screenshot_link:
type: string
service_link:
type: string
example: "http://192.168.0.1:80/"
# Services also return the associated Asset properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_at:
type: integer
format: int64
example: 1576300370
updated_at:
type: integer
format: int64
example: 1576300370
organization_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
site_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
alive:
type: boolean
example: true
first_seen:
type: integer
format: int64
example: 1576300370
last_seen:
type: integer
format: int64
example: 1576300370
detected_by:
type: string
example: icmp
type:
type: string
example: Server
os:
type: string
example: Ubuntu Linux
os_version:
type: string
example: "18.04"
hw:
type: string
example: Dell PowerEdge 2500
addresses:
type: array
items:
type: string
oneOf:
- format: ipv4
- format: ipv6
example: 192.168.0.1
addresses_extra:
type: array
items:
type: string
oneOf:
- format: ipv4
- format: ipv6
example: 192.168.100.1
macs:
type: array
items:
type: string
format: mac
example: 11:22:33:44:55:66
mac_vendors:
type: array
items:
type: string
example: Dell
names:
type: array
items:
type: string
example: www
domains:
type: array
items:
type: string
example: CORPNET
service_count:
type: integer
format: int64
example: 10
service_count_tcp:
type: integer
format: int64
example: 7
service_count_udp:
type: integer
format: int64
example: 1
service_count_arp:
type: integer
format: int64
example: 1
service_count_icmp:
type: integer
format: int64
example: 1
lowest_ttl:
type: integer
format: int64
example: 0
lowest_rtt:
type: integer
format: int64
example: 1
last_agent_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
last_task_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
newest_mac:
type: string
format: mac
example: 11:22:33:44:55:66
newest_mac_vendor:
type: string
example: Intel Corporate
newest_mac_age:
type: integer
format: int64
example: 1304035200000000000
comments:
type: string
example: File Server
service_ports_tcp:
type: array
items:
type: string
format: port
example: "22"
service_ports_udp:
type: array
items:
type: string
format: port
example: "53"
service_ports_protocols:
type: array
items:
type: string
example: ssh
service_ports_products:
type: array
items:
type: string
example: bind
org_name:
type: string
example: Test Labs
site_name:
type: string
example: Primary
agent_name:
type: string
example: LAPTOP-F4P1R6
tags:
type: object
additionalProperties:
type: string
services:
type: object
additionalProperties:
type: object
additionalProperties:
type: string
rtts:
type: object
additionalProperties: true
credentials:
type: object
additionalProperties:
type: string
additionalProperties:
type: boolean
attributes:
type: object
additionalProperties:
type: string
Site:
type: object
required:
- id
- name
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_at:
type: integer
format: int64
example: 1576300370
updated_at:
type: integer
format: int64
example: 1576300370
name:
type: string
example: Primary
description:
type: string
example: Headquarters
scope:
type: string
example: "192.168.0.0/24"
excludes:
type: string
example: "192.168.0.5"
subnets:
type: object
additionalProperties: true
Wireless:
type: object
required:
- id
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_at:
type: integer
format: int64
example: 1576300370
last_seen:
type: integer
format: int64
example: 1576300370
organization_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
site_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
last_agent_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
last_task_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
essid:
type: string
format: uuid
example: Free WiFi
bssid:
type: string
format: mac
example: 11:22:33:44:55:66
type:
type: string
example: infrastructure
authentication:
type: string
example: "wpa2-psk"
encryption:
type: string
example: aes
signal:
type: integer
minimum: 0
maximum: 100
example: 99
channels:
type: string
example: "11, 158+1"
interface:
type: string
example: "wlan0"
vendor:
type: string
example: "Ubiquiti Networks"
family:
type: string
example: "223344"
data:
type: object
additionalProperties:
type: string
org_name:
type: string
example: Test Labs
site_name:
type: string
example: Primary
agent_name:
type: string
example: LAPTOP-F4P1R6
Software:
type: object
required:
- id
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
software_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
software_asset_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
software_organization_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
software_source_id:
type: integer
example: 1
software_created_at:
type: integer
format: int64
example: 1576300370
software_updated_at:
type: integer
format: int64
example: 1576300370
software_service_address:
type: string
oneOf:
- format: ipv4
- format: ipv6
example: 192.168.0.1
software_service_transport:
type: string
example: tcp
software_service_port:
type: integer
format: int64
example: 80
software_installed_at:
type: integer
format: int64
example: 1576300370
software_installed_size:
type: integer
format: int64
example: 0
software_installed_from:
type: string
software_app_id:
type: string
software_part:
type: string
example: a
software_vendor:
type: string
example: OpenBSD
software_product:
type: string
example: OpenSSH
software_version:
type: string
example: 8.3p1
software_update:
type: string
software_edition:
type: string
software_language:
type: string
software_sw_edition:
type: string
software_target_sw:
type: string
software_target_hw:
type: string
software_other:
type: string
software_cpe23:
type: string
example: cpe:/a:openbsd:openssh:8.2
software_attributes:
type: object
additionalProperties:
type: string
Vulnerability:
type: object
required:
- id
properties:
vulnerability_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
vulnerability_asset_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
vulnerability_organization_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
vulnerability_source_id:
type: integer
example: 1
vulnerability_created_at:
type: integer
format: int64
example: 1576300370
vulnerability_updated_at:
type: integer
format: int64
example: 1576300370
vulnerability_service_address:
type: string
oneOf:
- format: ipv4
- format: ipv6
example: 192.168.0.1
vulnerability_service_transport:
type: string
example: tcp
vulnerability_service_port:
type: integer
format: int64
example: 80
vulnerability_cpe23:
type: string
example: cpe:/o:cisco:ios
vulnerability_vuln_id:
type: string
example: "103565"
vulnerability_category:
type: string
example: Remote
vulnerability_name:
type: string
example: Cisco IOS Software DHCP Remote Code Execution Vulnerability
vulnerability_description:
type: string
example: The remote device is missing a vendor-supplied security patch.
vulnerability_solution:
type: string
example: Upgrade to the relevant fixed version referenced in Cisco bug ID(s) CSCsm45390 and CSCuw77959.
vulnerability_cve:
type: string
example: CVE-2017-12240
vulnerability_cvss2_base_score:
type: number
format: double
example: 10
vulnerability_cvss2_temporal_score:
type: number
format: double
example: 8.7
vulnerability_cvss3_base_score:
type: number
format: double
example: 9.8
vulnerability_cvss3_temporal_score:
type: number
format: double
example: 9.4
vulnerability_severity:
type: string
example: Critical
vulnerability_severity_score:
type: number
format: double
example: 10
vulnerability_risk:
type: string
example: High
vulnerability_risk_score:
type: number
format: double
example: 7.4
vulnerability_published_at:
type: integer
format: int64
example: 1576300370
vulnerability_first_detected_at:
type: integer
format: int64
example: 1576300370
vulnerability_last_detected_at:
type: integer
format: int64
example: 1576300370
vulnerability_attributes:
type: object
additionalProperties:
type: string
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_at:
type: integer
format: int64
example: 1576300370
updated_at:
type: integer
format: int64
example: 1576300370
organization_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
site_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
alive:
type: boolean
example: true
first_seen:
type: integer
format: int64
example: 1576300370
last_seen:
type: integer
format: int64
example: 1576300370
detected_by:
type: string
example: icmp
type:
type: string
example: Server
os:
type: string
example: Ubuntu Linux
os_version:
type: string
example: "18.04"
hw:
type: string
example: Dell PowerEdge 2500
addresses:
type: array
items:
type: string
oneOf:
- format: ipv4
- format: ipv6
example: 192.168.0.1
addresses_extra:
type: array
items:
type: string
oneOf:
- format: ipv4
- format: ipv6
example: 192.168.100.1
macs:
type: array
items:
type: string
format: mac
example: 11:22:33:44:55:66
mac_vendors:
type: array
items:
type: string
example: Dell
names:
type: array
items:
type: string
example: www
domains:
type: array
items:
type: string
example: www
service_count:
type: integer
format: int64
example: 10
service_count_tcp:
type: integer
format: int64
example: 7
service_count_udp:
type: integer
format: int64
example: 1
service_count_arp:
type: integer
format: int64
example: 1
service_count_icmp:
type: integer
format: int64
example: 1
lowest_ttl:
type: integer
format: int64
example: 0
lowest_rtt:
type: integer
format: int64
example: 1
last_agent_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
last_task_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
newest_mac:
type: string
format: mac
example: 11:22:33:44:55:66
newest_mac_vendor:
type: string
example: Intel Corporate
newest_mac_age:
type: integer
format: int64
example: 1304035200000000000
comments:
type: string
example: File Server
service_ports_tcp:
type: array
items:
type: string
format: port
example: "22"
service_ports_udp:
type: array
items:
type: string
format: port
example: "53"
service_ports_protocols:
type: array
items:
type: string
example: ssh
service_ports_products:
type: array
items:
type: string
example: bind
org_name:
type: string
example: Test Labs
site_name:
type: string
example: Primary
agent_name:
type: string
example: LAPTOP-F4P1R6
tags:
type: object
additionalProperties:
type: string
services:
type: object
additionalProperties:
type: object
additionalProperties:
type: string
rtts:
type: object
additionalProperties: true
credentials:
type: object
additionalProperties:
type: string
additionalProperties:
type: boolean
attributes:
type: object
additionalProperties:
type: string
DirectoryUser:
type: object
required:
- id
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
directory_user_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
directory_user_organization_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
directory_user_site_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
directory_user_source_id:
type: integer
example: 1
directory_user_created_at:
type: integer
format: int64
example: 1576300370
directory_user_updated_at:
type: integer
format: int64
example: 1576300370
directory_user_user_id:
type: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
directory_user_group_ids:
type: array
items:
type: string
example:
- "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
- "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
directory_user_display_name:
type: string
example: Jane Doe
directory_user_name:
type: string
example: CN=Jane Doe,OU=Employees,DC=example,DC=com
directory_user_first_name:
type: string
example: Jane
directory_user_last_name:
type: string
example: Doe
directory_user_description:
type: string
example: Example user
directory_user_email:
type: string
format: email
example: user@example.com
directory_user_email_normalized:
type: string
format: email
example: user@example.com
directory_user_phone:
type: string
example: 555-555-5555
directory_user_title:
type: string
example: Software Engineer
directory_user_location:
type: string
example: Remote
directory_user_last_logon_at:
type: integer
format: int64
example: 1576300370
directory_user_attributes:
type: object
additionalProperties:
type: string
DirectoryGroup:
type: object
required:
- id
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
directory_group_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
directory_group_organization_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
directory_group_site_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
directory_group_source_id:
type: integer
example: 1
directory_group_created_at:
type: integer
format: int64
example: 1576300370
directory_group_updated_at:
type: integer
format: int64
example: 1576300370
directory_group_group_id:
type: string
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
directory_group_user_count:
type: integer
format: int64
example: 1
directory_group_name:
type: string
example: CN=Remote Desktop Users,CN=Builtin,DC=example,DC=com
directory_group_display_name:
type: string
example: Remote Desktop Users
directory_group_description:
type: string
example: Members in this group are granted the right to logon remotely
directory_group_email:
type: string
format: email
example: user@example.com
directory_group_email_normalized:
type: string
format: email
example: user@example.com
directory_group_attributes:
type: object
additionalProperties:
type: string
Organization:
type: object
required:
- id
- name
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_at:
type: integer
format: int64
example: 1576300370
updated_at:
type: integer
format: int64
example: 1576300370
client_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
download_token:
type: string
example: DT11226D9EEEA2B035D42569585900
download_token_created_at:
type: integer
format: int64
example: 1576300370
name:
type: string
example: My Company
description:
type: string
example: All subdivisions of my company
inactive:
type: boolean
example: false
deactivated_at:
type: integer
format: int64
example: 0
service_count:
type: integer
format: int64
example: 10
service_count_tcp:
type: integer
format: int64
example: 7
service_count_udp:
type: integer
format: int64
example: 1
service_count_arp:
type: integer
format: int64
example: 1
service_count_icmp:
type: integer
format: int64
example: 1
asset_count:
type: integer
format: int64
example: 100
project:
type: boolean
example: false
parent_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
expiration_assets_stale:
type: integer
format: int64
example: 365
expiration_assets_offline:
type: integer
format: int64
example: 365
expiration_integration_attributes:
type: integer
format: int64
example: 365
expiration_scans:
type: integer
format: int64
example: 365
expiration_settings:
type: object
properties:
attributes:
type: integer
format: int64
example: 7
attributes_by_source:
type: object
example: "{\"3\":7,\"4\":30}"
attributes_keep_latest:
type: boolean
example: true
vulnerabilities:
type: integer
format: int64
example: 30
expiration_vulnerabilities:
type: integer
format: int64
example: 365
export_token:
deprecated: true
type: string
example: ET11226D9EEEA2B035D42569585900
export_token_created_at:
deprecated: true
type: integer
format: int64
example: 1576300370
export_token_last_used_at:
deprecated: true
type: integer
format: int64
example: 0
export_token_last_used_by:
deprecated: true
type: string
example: 127.0.0.1
export_token_counter:
deprecated: true
type: integer
format: int64
example: 0
keep_latest_integration_attributes:
type: boolean
example: true
Credential:
type: object
required:
- id
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
client_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
name:
type: string
example: credentials_name
type:
type: string
enum:
- aws_access_secret
- azure_client_secret
- azure_username_password
- censys_search_api_key
- crowdstrike_api_key
- custom_integration_credential
- gcp_service_account_key
- google_workspace_client_secret
- insightvm_username_password
- ldap_username_password
- mecm_db_connection_string
- meraki_api_key
- miradore_api_key_v1
- nessus_access_secret
- netbox_api_key
- palo_alto_api_key
- qualys_username_password
- sentinelone_api_key
- shodan_api_key
- snmpv2_community
- snmpv3_credential
- tanium_api_token
- tenable_access_secret
- tenable_security_center_access_secret
- vmware_username_password
- wiz_client_secret
- x509_keypair
description: The service the credentials are for.
created_at:
type: integer
format: int64
example: 1576300370
created_by_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_by_email:
type: string
format: email
example: user@example.com
acl:
type: object
additionalProperties: true
example:
"e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8": user
global:
type: boolean
example: false
cidrs:
type: array
items:
type: string
example:
- 10.0.0.47/32
- 192.168.1.0/24
last_used_at:
type: integer
format: int64
example: 1576300370
last_used_by_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
OrganizationAPIKey:
description: An API key issued for an organization.
type: object
required:
- id
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
client_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
organization_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_at:
type: integer
format: int64
example: 1576300370
created_by:
type: string
format: email
example: user@example.com
comment:
type: string
example: API key used for Splunk integration
last_used_at:
type: integer
format: int64
example: 0
last_used_ip:
type: string
example: 127.0.0.1
last_used_ua:
type: string
example: "curl/7.44.1"
counter:
type: integer
format: int64
example: 1
usage_today:
type: integer
format: int64
example: 100
usage_limit:
type: integer
format: int64
example: 10000
token:
type: string
example: CTXXXXXXXXXXXXX
inactive:
type: boolean
example: true
type:
type: string
example: org
ExportToken:
type: object
required:
- id
properties:
id:
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
token:
type: string
example: ET11226D9EEEA2B035D42569585900
comment:
type: string
example: Export token used for Splunk integration
created_at:
type: integer
format: int64
example: 1576300370
last_used_at:
type: integer
format: int64
example: 0
last_used_by:
type: string
example: 127.0.0.1
counter:
type: integer
format: int64
example: 0
Agent:
description: |
A deployed service which performs scan tasks.
Explorers may be referred to by their legacy name, Agents.
type: object
required:
- id
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
client_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
organization_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_at:
type: integer
format: int64
example: 1576300370
updated_at:
type: integer
format: int64
example: 1576300370
host_id:
type: string
example: 6f9e6fe52271da70962e007183c5c9c9
hub_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
name:
type: string
example: RUNZERO-AGENT
site_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
last_checkin:
type: integer
format: int64
example: 1576300370
os:
type: string
example: Windows
arch:
type: string
example: amd64
version:
type: string
example: "1.2.3 (build 20191219224016) [fc50c5eefdc3ff5c60533c3c345d14d336396272]"
external_ip:
type: string
example: 1.1.1.1
internal_ip:
type: string
oneOf:
- format: ipv4
- format: ipv6
example: 192.168.0.1
system_info:
type: object
additionalProperties: true
connected:
type: boolean
example: true
inactive:
type: boolean
example: false
deactivated_at:
type: integer
format: int64
example: 0
TaskBase:
description: All fields of a Task with none required
type: object
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
name:
type: string
example: Hourly Scan
description:
type: string
example: Scan the headquarters hourly
template_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
client_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
organization_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
agent_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
hosted_zone_id:
description: |
The ID of the Hosted Zone which executes the task. If the
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
site_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
cruncher_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_at:
type: integer
format: int64
example: 1576300370
created_by:
type: string
example: user@example.com
created_by_user_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
custom_integration_id:
description: The ID of the custom integration source, if the last task executed with this template was an import of Asset Data.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
source_id:
description: The numeric ID of the data source, if the task executed with this template is a runZero scan or third party data connection import.
type: integer
example: 1
updated_at:
type: integer
format: int64
example: 1576300370
type:
type: string
example: scan
status:
type: string
example: processed
error:
type: string
example: agent unavailable
params:
type: object
additionalProperties:
type: string
stats:
type: object
additionalProperties: true
hidden:
type: boolean
example: false
parent_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
recur:
type: boolean
example: false
recur_frequency:
type: string
example: hourly
start_time:
type: integer
format: int64
example: 1576300370
recur_last:
type: integer
format: int64
example: 1576300370
recur_next:
type: integer
format: int64
example: 1576300370
recur_last_task_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
Task:
description: A task object
required:
- id
allOf:
- $ref: "#/components/schemas/TaskBase"
TaskOptions:
description: Options which can be set to create or modify a task.
properties:
hosted_zone_name:
type: string
example: auto
description: The string 'auto' will use any available hosted zone. Otherwise, provide the string name (hostedzone1) of the hosted zone.
allOf:
- $ref: "#/components/schemas/TaskBase"
HostedZone:
description: |
A hosted service which performs scan tasks. Hosted zones are only available to
Enterprise customers.
type: object
required:
- id
properties:
id:
description: The ID of the hosted zone
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
name:
type: string
example: zone1
enabled:
description: Whether the hosted zone is enabled
type: boolean
example: true
updated_at:
description: The last modification time of the hosted zone
type: string
format: date-time
example: "2023-03-06T18:14:50.52Z"
processor_id:
description: The processor ID assigned to the hosted zone
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
explorers_concurrency:
description: The number of concurrent explorer tasks that can be executed
type: integer
format: int64
example: 0
explorers_total:
description: The number of explorers available in the zone
type: integer
format: int64
example: 0
tasks_active:
description: The number of tasks executing in the zone
type: integer
format: int64
example: 0
tasks_waiting:
description: The number of tasks waiting to execute in the zone
type: integer
format: int64
example: 0
organization_id:
description: The ID of the organization the hosted zone is assigned to
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
License:
type: object
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_at:
type: integer
format: int64
example: 1576300370
updated_at:
type: integer
format: int64
example: 1576300370
name:
type: string
example: My Company
activated_at:
type: integer
format: int64
example: 1576300370
license_type:
type: string
example: platform
license_expiration:
type: integer
format: int64
example: 1576300370
license_max_assets:
type: integer
format: int64
example: 1000000
license_live_asset_count:
type: integer
format: int64
example: 1000
license_project_asset_count:
type: integer
format: int64
example: 5000
via_reseller:
type: boolean
example: false
phone:
type: string
example: 512-555-5555
address_street:
type: string
example: 1111 Main St
address_country:
type: string
example: US
address_city:
type: string
example: Austin
address_region:
type: string
example: Texas
address_postal:
type: string
example: "78700"
subscription_period_start:
type: integer
format: int64
example: 1576300370
subscription_period_end:
type: integer
format: int64
example: 1576300370
subscription_cancel_at:
type: integer
format: int64
example: 1576300370
subscription_canceled_at:
type: integer
format: int64
example: 1576300370
settings:
type: object
additionalProperties: true
sso_type:
type: string
example: saml20
sso_domain:
type: string
example: runzero.com
sso_mode:
type: string
example: required
sso_login_message:
type: string
example: Hello
sso_login_issuer_url:
type: string
example: https://accounts.google.com/o/saml2?idpid=issuer
sso_login_login_url:
type: string
example: https://accounts.google.com/o/saml2?idpid=login
sso_login_logout_url:
type: string
example: https://accounts.google.com/o/saml2?idpid=logout
sso_default_role:
type: string
example: viewer
partner:
type: string
example: runZero
Event:
type: object
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_at:
type: integer
format: int64
example: 1576300370
client_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
organization_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
site_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
action:
type: string
example: login
source_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
source_name:
type: string
example: SiteName
source_type:
type: string
example: api
target_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
target_name:
type: string
example: SiteName
target_type:
type: string
example: api
success:
type: boolean
example: true
details:
type: object
additionalProperties: true
state:
type: string
example: SiteName
processor_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
processed_at:
type: integer
format: int64
example: 0
User:
type: object
required:
- id
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
client_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_at:
type: integer
format: int64
example: 1576300370
updated_at:
type: integer
format: int64
example: 1576300370
name:
type: string
example: James Smith
first_name:
type: string
example: James
last_name:
type: string
example: Smith
email:
type: string
example: jsmith@example.com
client_admin:
type: boolean
example: true
org_default_role:
type: string
example: admin
org_roles:
type: object
additionalProperties: true
password_enabled_at:
type: integer
format: int64
example: 1576300370
invite_token_expiration:
type: integer
format: int64
example: 1576300370
reset_token_expiration:
type: integer
format: int64
example: 1576300370
terms_agreed_as_of:
type: integer
format: int64
example: 1576300370
last_login_ip:
type: string
oneOf:
- format: ipv4
- format: ipv6
example: 192.168.0.1
last_login_at:
type: integer
format: int64
example: 1576300370
last_login_ua:
type: string
example: curl/1.0
last_activity_at:
type: integer
format: int64
example: 1576300370
sso_only:
type: boolean
example: false
login_failures:
type: integer
format: int64
example: 0
actions:
type: integer
format: int64
example: 0
last_action_at:
type: integer
format: int64
example: 1576300370
mfa_enabled:
type: boolean
example: false
Group:
type: object
required:
- id
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
description:
type: string
example: Viewers Group
name:
type: string
example: Viewers
role_summary:
type: string
example: all:viewer
user_count:
type: integer
format: int64
example: 2
created_by_email:
type: string
example: jsmith@example.com
created_at:
type: integer
format: int64
example: 1576300370
updated_at:
type: integer
format: int64
example: 1576300370
expires_at:
type: integer
format: int64
example: 1576300370
org_default_role:
type: string
example: admin
org_roles:
type: object
additionalProperties: true
GroupPost:
type: object
properties:
description:
type: string
example: Viewers Group
name:
type: string
example: Viewers
expires_at:
type: integer
format: int64
example: 1576300370
org_default_role:
type: string
example: admin
org_roles:
type: object
additionalProperties: true
example:
"1a5e612e-4d64-45fe-aa3e-afba5cf3b9bf": viewer,
"fd6d6662-732b-4c4b-8331-051178994384": admin
GroupPut:
type: object
properties:
id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
description:
type: string
example: Viewers Group
name:
type: string
example: Viewers
expires_at:
type: integer
format: int64
example: 1576300370
org_default_role:
type: string
example: admin
org_roles:
type: object
additionalProperties: true
example:
"1a5e612e-4d64-45fe-aa3e-afba5cf3b9bf": viewer,
"fd6d6662-732b-4c4b-8331-051178994384": admin
GroupMapping:
type: object
required:
- id
- group_id
- sso_attribute
- sso_value
properties:
id:
type: string
format: uuid
example: "f6cfb91a-52ea-4a86-bf9a-5a891a26f52b"
group_id:
type: string
format: uuid
example: "2b096711-4d28-4417-8635-64af4f62c1ae"
group_name:
type: string
example: Viewers Group
sso_attribute:
type: string
example: basic-attribute
sso_value:
type: string
example: basic-attribute-value
description:
type: string
example: Maps basic-attribute to Viewers Group
created_by_email:
type: string
example: jsmith@example.com
created_at:
type: integer
format: int64
example: 1576300370
updated_at:
type: integer
format: int64
example: 1576300370
UserOptions:
type: object
properties:
first_name:
type: string
example: James
last_name:
type: string
example: Smith
email:
type: string
example: jsmith@example.com
client_admin:
type: boolean
example: true
org_default_role:
type: string
example: admin
org_roles:
type: object
additionalProperties: true
UserInviteOptions:
type: object
properties:
first_name:
type: string
example: James
last_name:
type: string
example: Smith
email:
type: string
example: jsmith@example.com
client_admin:
type: boolean
example: true
org_default_role:
type: string
example: admin
org_roles:
type: object
additionalProperties: true
subject:
type: string
example: Welcome to runZero
message:
type: string
example: You have been invited to the runZero Network Discovery platform
AssetServiceNow:
type: object
required:
- asset_id
properties:
asset_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
organization:
type: string
example: Headquarters
site:
type: string
example: Primary
detected_by:
type: string
example: icmp
type:
type: string
example: Server
sys_class_name:
type: string
example: cmdb_ci_iot
os_vendor:
type: string
example: Microsoft
os_product:
type: string
example: Windows 10
os_version:
type: string
example: "1903"
hw_vendor:
type: string
example: Dell
hw_product:
type: string
example: PowerEdge
hw_version:
type: string
example: "2.0"
ip_address:
type: string
oneOf:
- format: ipv4
- format: ipv6
example: 192.168.0.1
addresses_scope:
type: string
example: 192.168.100.1;192.168.100.2
addresses_extra:
type: string
example: 192.168.0.5;192.168.0.3
mac_address:
type: string
format: mac
example: 11:22:33:44:55:66
mac_manufacturer:
type: string
example: Dell
newest_mac_age:
type: string
example: 2020-01-01
macs:
type: string
format: mac
example: 11:22:33:44:55:66
mac_vendors:
type: string
example: Dell
name:
type: string
example: www;server
tags:
type: string
example: owner=IT;location=Austin
domains:
type: string
example: runzero.com;runzero.local.lan
service_count:
type: integer
format: int64
example: 10
service_count_tcp:
type: integer
format: int64
example: 7
service_count_udp:
type: integer
format: int64
example: 1
service_count_arp:
type: integer
format: int64
example: 1
service_count_icmp:
type: integer
format: int64
example: 1
lowest_ttl:
type: integer
format: int64
example: 0
lowest_rtt:
type: integer
format: int64
example: 1
alive:
type: boolean
example: true
first_discovered:
type: string
example: 2006-01-02 15:04:05
last_discovered:
type: string
example: 2006-01-02 15:04:05
last_updated:
type: string
example: 2006-01-02 15:04:05
comments:
type: string
example: File Server
AssetOwnershipType:
type: object
required:
- id
- name
properties:
id:
type: string
format: uuid
example: "f6cfb91a-52ea-4a86-bf9a-5a891a26f52b"
name:
type: string
example: Asset Owner
reference:
type: integer
format: int64
example: 1
order:
type: integer
format: int64
example: 1
hidden:
type: boolean
example: true
AssetOwnershipTypePost:
type: object
required:
- name
properties:
name:
type: string
example: Asset Owner
reference:
type: integer
format: int64
example: 1
order:
type: integer
format: int64
example: 1
hidden:
type: boolean
example: true
AssetOwnerships:
type: object
properties:
ownerships:
type: array
items:
$ref: '#/components/schemas/AssetOwnership'
AssetOwnershipsWithSearch:
type: object
required:
- ownerships
- search
properties:
search:
type: string
example: alive:true and os:windows
ownerships:
type: array
items:
type: object
properties:
ownership_type_id:
type: string
example: "2318e078-4164-4e1b-92a5-11e353093f4b"
owner:
type: string
example: "it@runzero.com"
BaseResponse:
description: Minimal identifying information with lifecycle metadata
type: object
required:
- id
- client_id
- created_at
- created_by_id
- updated_at
properties:
id:
description: The unique ID of the object
type: string
format: uuid
example: "f6cfb91a-52ea-4a86-bf9a-5a891a26f52b"
client_id:
description: The unique ID of the runZero client/customer account that owns the object
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
created_by_id:
description: The unique ID of the entity that created the object
type: string
format: uuid
example: "f6cfb91a-52ea-4a86-bf9a-5a891a26f52b"
created_at:
description: A timestamp indicating creation time of the object
type: string
format: date-time
example: "2023-03-06T18:14:50.52Z"
updated_at:
description: A timestamp indicating last modified time of the object
type: string
format: date-time
example: "2023-03-06T18:14:50.52Z"
destroyed_at:
description: A timestamp indicating deletion time of the object
type: string
format: date-time
example: "2023-03-06T18:14:50.52Z"
BaseCustomIntegration:
type: object
properties:
name:
description: The unique name of the custom integration, without spaces.
type: string
example: my-custom-integration
icon:
description: Base64 encoded png with maximum size 256x256 pixels
type: string
format: byte
example: iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAomVYSWZNTQAqAAAACAAFARIAAwAAAAEAAQAAARoABQAAAAEAAABKARsABQAAAAEAAABSASgAAwAAAAEAAgAAh2kABAAAAAEAAABaAAAAAAAAAJAAAAABAAAAkAAAAAEABJKGAAcAAAASAAAAkKABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAABBU0NJSQAAAFNjcmVlbnNob3TIMt7LAAAACXBIWXMAABYlAAAWJQFJUiTwAAADBWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTAyPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlVzZXJDb21tZW50PlNjcmVlbnNob3Q8L2V4aWY6VXNlckNvbW1lbnQ+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xMDI8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjE0NDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CtVpwSkAAAVcSURBVFgJxVbZT1xlFP/NdmdhpgwMDBQQEISWNNKCMEJtrTFuTWN88MGqaVNNH/QPMK01NU2MtjbR2GhCNFZDYkwaY4021RcfGlPKYi2pAS0FOmWnUJYCs8+d8Zxv5sqFuUyhIeFk7vbds/zO75zz3dHFSbCBot/A2CK0cb0AMJFaZOr16XPUraYED+pcSY7tdTqd8rjkel8A6Yz5XVSWQaljfn4BCz4fZDkKH11nZu7B7c5FZUUFBWcVbRBpS6AYhSMR3L49gLHxcYzfmUDQ70cg4EdPnxcTk5PiuevmLdy83r4kO344+t77OHbkHTgcdm0QFERTZFkW6719/fEXX97Pk5LmsMVdxVvjVds98eq6nfG6xj3xbTUN8R31u4TNydOfJGLEYimxNEtAWqJmA4ODKC0pEVltrfbAYbcJOskPIsTKxOw8xmYXgLvTpHNP6KlPuaXbYCD6x70zxF4n8vPcKSykLcHZb5uFv9qGJ3GtywssDKn9A85SPFpRhMIn6lBWUoSC/DxYbTa4XC60d/yJpubzeKyqhAB0U4/Mrw6Akv0cGVz47XcY3WXo7BtCZXkhPj35FQo25xMLetgyMpDlzITFbIbBYIRZXBdHzm63o+nzz/BX+6AArVthHFdkIB6LYXxyGjkOG8b7u/D0/pewb+8LSxlQPXGxZbLhBIwGA2q2V6O1tQ2ZTickSUJp8UNCe/m+sCIA1jYZDQhFosKQA0SiUeGcWgk81Tzb3A8Gg148G1RZlj1cCj4UCckx+AIhWExGSORXkbQAYpSRWhg9B2Wi+crZcvAwOZ+YncO0PwCfP4hoOILROR+GqUlDgSCmaG0kGMG50SlceuUZ7KkqE8D1eh3SAlAHF/dMQ1KUXukaHMWJX1vw48hdEBKmiWsBkHMQOEIqri6LiQbFD2ZPLWsDkLRkJ0x3p3cYtWd+AGwSCq0Scq1mGCkewaBAQIgYXCDd4WgMAbb1h2mnXMrqAwHg4KGojBMXL4vgW+xW9ATDGJmmPYG7gX7ULICZspaM2O2wIo904gU5yKamFsI6JGsDQEZMINuOTc/iF6ppuc0sgu/OzMBbz3ngzrTDTRuWRTKJ0bQTK5ssZo4FPZVEaT89l4ZkbQA4uoKAqYzIsHGd5wM48FQNXttVK5yqTzJNDn83MmiDSiatfi0aeslC+gcFAWklvSlOJQZCwh8ultb2Drx+6DAOHn4bjtwd8A4MivXlk3VfBpQAYvySYyg8MRaV8FSwSCaqO8nA4BC+bz4LV1ElEOxHlJjQkrQAeE5j0YRjmZouQiPGdeSdbrnI3PYk3f/8i59+voCWK21wFm1BttOBqeFs8NbMwomoJcGbeiV5zwnp9QbMBsIw5ZWjpa0Drx58E2e+aFJpJ4LygsLAjZ5eHD92BN09/XikeDN6u67io1Pvim+IsneoHKzcA5JZQo4rC5HJeZTnu2gbDeL8ue/Qf8u7aL8Y//81m80q7h0ZFly9cgnIrcQbhw6ItWSVxL1ySmFA2WJtVis+OH6UdpQ7uHG9Q2w8bGQmYGpZuq1QuYMh8VpnlPDhqdMY+/sP+gznCYa4pMtFsweUOu19/lmqZSu+/PobtLRfE7YWSyJDMQUmA5y84dBhSvZFY4MH9C8KOTkuODMzhY0W9QoQTQDKSzbc2diAxz314g+FmAT69rPEuemoPJe5DGOz8CXHj//1gA/WIXumXStzoUCntAA4IM+tgbJz0nddLVyKj/fVoyBrE3kxwlOe+N4rc862iUNtlXqv+Z8wVW2xy/kdO14vScuAOohWUIVi1mNMWjpqH1r3q2ZAy3g91lLGcD2crsXHhgP4D/iMWRnl47GPAAAAAElFTkSuQmCC
description:
description: A text description of the custom integration
type: string
example: My custom integration description.
CustomIntegration:
required:
- name
allOf:
- $ref: "#/components/schemas/BaseCustomIntegration"
- $ref: "#/components/schemas/BaseResponse"
CustomIntegrationCreate:
description: Request body used to register a new custom integration.
required:
- name
allOf:
- $ref: "#/components/schemas/BaseCustomIntegration"
NewAssetImport:
description: |
Represents a request to import asset data described by the specified custom integration into the specified site.
Assets will be created new or merged according to merge rules defined by the version of the platform
you are uploading the asset data file to. Typically, this involves matching network and other unique
single or grouped properties.
There is a maximum of 256 custom asset properties that can be applied to any asset. This means
that, aside from the per-import asset property limit set on ImportAsset, if a new import sets
different custom properties on the same asset, the new properties are combined with the
pre-existing ones.
type: object
required:
- assetData
- siteId
- customIntegrationId
- importTask
properties:
siteId:
description: The ID of the site assets are to be imported into.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
customIntegrationId:
description: The unique ID of the registered custom integration which produced the asset data. Uniqueness is not checked/enforced. See /account/custom-integrations api.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
importTask:
$ref: '#/components/schemas/ImportTask'
assetData:
description: |
A gzip (not .tar.gz) compressed file containing ImportAsset objects. The file data may be a JSON array of
ImportAsset objects, e.g. [{},{},...] or JSONL format, with a single JSON representation of an ImportAsset
object on each new line, e.g. {}\n{}\n...
type: string
format: binary
ImportAsset:
description: Represents a custom asset to be created or merged after import.
type: object
required:
- id
properties:
id:
description: Any value which can uniquely identify the asset within the custom integration.
maxLength: 1024
type: string
runZeroID:
description: The unique identifier of the runZero asset to merge into.
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
networkInterfaces:
title: NetworkInterfaces
description: The asset's networking configuration.
type: array
maxItems: 256
items:
$ref: '#/components/schemas/NetworkInterface'
hostnames:
description: Represents hostnames the asset is assigned or reachable at. These can be fully-qualified hostnames with the domain name, or a short hostname.
type: array
maxItems: 100
items:
type: string
maxLength: 260
example: "host.domain.com"
domain:
description: Represents a single domain name which could be applied to all non-fqdns in the hostnames field.
type: string
maxLength: 260
example: "domain.com"
firstSeenTS:
description: Represents the earliest time the asset was seen by the custom integration reporting it, using a date string as defined by RFC 3339, section 5.6.
type: string
format: date-time
example: "2023-03-06T18:14:50.52Z"
os:
description: The name of the asset's operating system. It is advisable to keep the data clean by normalizing to existing values when possible.
type: string
maxLength: 1024
example: "Ubuntu Linux 22.04"
osVersion:
description: The version of the asset's operating system. It is advisable to keep the data clean by normalizing to existing values when possible.
type: string
maxLength: 1024
example: "22.04"
manufacturer:
description: The manufacturer of the operating system of the asset. It is advisable to keep the data clean by normalizing to existing values when possible.
type: string
maxLength: 1024
example: "Apple Inc."
model:
description: The hardware model of the asset. It is advisable to keep the data clean by normalizing to existing values when possible.
type: string
maxLength: 1024
example: "Macbook Air"
tags:
description: Arbitrary string tags applied to the asset.
type: array
maxItems: 100
items:
type: string
maxLength: 1024
example: ["foo", "key=value"]
deviceType: # TODO: an enum might make better sense here in place of allowing an arbitrary string?
type: string
maxLength: 1024
example: "Desktop"
customAttributes:
title: CustomAttributes
description: Flat map of arbitrary string key/value pairs representing custom attribute data not described in properties above. Note the maximum number of keys and length of values.
Additionally, property names may only be 256 characters long.
type: object
maxProperties: 1024
additionalProperties:
anyOf:
- type: string
maxLength: 1024
AccessToken:
type: object
properties:
access_token:
type: string
token_type:
type: string
expires_in:
type: integer
APIClientCredentials:
description: Newly-issued OAuth client credentials returned when creating an API client.
type: object
properties:
api_client_id:
type: string
format: uuid
example: "e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8"
api_client_secret:
type: string
ClientIDForm:
type: object
required:
- grant_type
- client_id
- client_secret
properties:
grant_type:
type: string
example: client_credential
client_id:
type: string
client_secret:
type: string
AssetPage:
description: A page of assets returned from a paginated export.
type: object
properties:
assets:
type: array
items:
$ref: '#/components/schemas/Asset'
next_key:
type: string
description: The key to use for the next page of results
AssetExportResponse:
description: |
Response body for the asset export endpoint. When `page_size` is omitted the response is a bare array of assets;
when `page_size` is set the response is a paged `AssetPage` object.
oneOf:
- type: array
items:
$ref: '#/components/schemas/Asset'
- $ref: '#/components/schemas/AssetPage'
ServicePage:
description: A page of services returned from a paginated export.
type: object
properties:
services:
type: array
items:
$ref: '#/components/schemas/Service'
next_key:
type: string
description: The key to use for the next page of results
ServiceExportResponse:
description: Response body for the service export endpoint. Bare array unless `page_size` is provided.
oneOf:
- type: array
items:
$ref: '#/components/schemas/Service'
- $ref: '#/components/schemas/ServicePage'
WirelessPage:
description: A page of wireless devices returned from a paginated export.
type: object
properties:
wireless:
type: array
items:
$ref: '#/components/schemas/Wireless'
next_key:
type: string
description: The key to use for the next page of results
WirelessExportResponse:
description: Response body for the wireless export endpoint. Bare array unless `page_size` is provided.
oneOf:
- type: array
items:
$ref: '#/components/schemas/Wireless'
- $ref: '#/components/schemas/WirelessPage'
SoftwarePage:
description: A page of software inventory entries returned from a paginated export.
type: object
properties:
software:
type: array
items:
$ref: '#/components/schemas/Software'
next_key:
type: string
description: The key to use for the next page of results
SoftwareExportResponse:
description: Response body for the software export endpoint. Bare array unless `page_size` is provided.
oneOf:
- type: array
items:
$ref: '#/components/schemas/Software'
- $ref: '#/components/schemas/SoftwarePage'
VulnerabilityPage:
description: A page of vulnerabilities returned from a paginated export.
type: object
properties:
vulnerabilities:
type: array
items:
$ref: '#/components/schemas/Vulnerability'
next_key:
type: string
description: The key to use for the next page of results
VulnerabilityExportResponse:
description: Response body for the vulnerability export endpoint. Bare array unless `page_size` is provided.
oneOf:
- type: array
items:
$ref: '#/components/schemas/Vulnerability'
- $ref: '#/components/schemas/VulnerabilityPage'
EventPage:
description: A page of events returned from a paginated export.
type: object
properties:
events:
type: array
items:
$ref: '#/components/schemas/Event'
next_key:
type: string
description: The key to use for the next page of results
EventExportResponse:
description: Response body for the event export endpoint. Bare array unless `page_size` is provided.
oneOf:
- type: array
items:
$ref: '#/components/schemas/Event'
- $ref: '#/components/schemas/EventPage'
AssetMetric:
description: Asset metric summary for a single asset, keyed by asset ID in the parent map.
type: object
properties:
site_id:
type: string
format: uuid
metrics:
description: Free-form metric values keyed by metric name.
type: object
additionalProperties: true
BulkAssetUpdateResult:
description: Result of a bulk asset update operation.
type: object
properties:
updated_asset_count:
type: integer
example: 10
FindingLink:
description: A title and URL pointing to additional finding context.
type: object
properties:
title:
type: string
url:
type: string
FindingLinks:
description: Groups of related URLs that provide additional context for a finding.
type: object
properties:
cves:
description: URLs of relevant CVE records.
type: array
items:
$ref: '#/components/schemas/FindingLink'
rz_blog:
description: URLs of relevant runZero blog postings.
type: array
items:
$ref: '#/components/schemas/FindingLink'
urls:
description: Additional relevant URLs.
type: array
items:
$ref: '#/components/schemas/FindingLink'
AssetOwnership:
description: A single ownership assignment on an asset.
type: object
properties:
ownership_type_id:
type: string
example: "2318e078-4164-4e1b-92a5-11e353093f4b"
owner:
type: string
example: "it@runzero.com"
NetworkInterface:
description: A network interface attached to a custom-integration asset.
type: object
properties:
ipv4Addresses:
description: Represents IPV4 addresses. Addresses are ordered from most to least likely to uniquely identify the asset.
type: array
maxItems: 256
items:
type: string
format: ipv4
ipv6Addresses:
description: Represents the IPV6 addresses. Addresses are ordered from most to least likely to uniquely identify the asset.
type: array
maxItems: 100
items:
type: string
format: ipv6
macAddress:
description: |
Represents a MAC address in IEEE 802 MAC/EUI-48, or EUI-64 form in one of the following formats:
01:23:45:67:89:AB
01:23:45:67:89:ab:cd:ef
01-23-45-67-89-ab
01-23-45-67-89-ab-cd-ef
0123.4567.89ab
0123.4567.89ab.cdef
0123 4567 89ab cdEF
type: string
maxLength: 23
example: "01:23:45:67:89:0A"
ImportTask:
description: Information which describes the task created when asset data is imported.
type: object
required:
- name
properties:
name:
type: string
maxLength: 100
example: "my import task"
description:
type: string
maxLength: 1024
example: "importing assets from custom integration A"
excludeUnknown:
description: Instructs the data ingestion process whether to skip assets which do not merge into an existing asset in the asset inventory
type: boolean
default: false
example: true
tags:
description: Arbitrary string tag values which are applied to the asset data import task created.
type: array
maxItems: 100
items:
type: string
maxLength: 1024
example: [ "tag1", "tag2" ]