Rapid7 Asset Discovery API
Resources for managing and viewing the mechanisms used to automatically discover assets.
Resources for managing and viewing the mechanisms used to automatically discover assets.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/rapid7-asset-discovery-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
description: '# Overview
This guide documents the InsightVM Application Programming Interface (API) Version 3.'
version: '3'
title: InsightVM Asset Discovery API
contact:
name: Rapid7
email: support@rapid7.com
servers:
- url: https://localhost:3780/
tags:
- name: Asset Discovery
description: Resources for managing and viewing the mechanisms used to automatically discover assets.
paths:
/api/3/discovery_connections:
get:
tags:
- Asset Discovery
summary: Discovery Connections
description: Returns all discovery connections.
operationId: getDiscoveryConnections
parameters:
- name: page
in: query
description: The index of the page (zero-based) to retrieve.
required: false
schema:
type: integer
format: int32
default: 0
- name: size
in: query
description: The number of records per page to retrieve.
required: false
schema:
type: integer
format: int32
default: 10
- name: sort
in: query
description: 'The criteria to sort the records by, in the format: `property[,ASC|DESC]`. The default sort order is ascending. Multiple sort criteria can be specified using multiple sort query parameters.'
required: false
style: form
explode: true
schema:
type: array
items:
type: string
responses:
'200':
description: OK
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/PageOf_DiscoveryConnection'
'401':
description: Unauthorized
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'404':
description: Not Found
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/NotFoundError'
'500':
description: Internal Server Error
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/InternalServerError'
'503':
description: Service Unavailable
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ServiceUnavailableError'
security: []
/api/3/discovery_connections/{id}:
get:
tags:
- Asset Discovery
summary: Discovery Connection
description: Returns a discovery connection.
operationId: getDiscoveryConnection
parameters:
- name: id
in: path
description: The identifier of the discovery connection.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: OK
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/DiscoveryConnection'
'401':
description: Unauthorized
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'404':
description: Not Found
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/NotFoundError'
'500':
description: Internal Server Error
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/InternalServerError'
'503':
description: Service Unavailable
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ServiceUnavailableError'
security: []
/api/3/discovery_connections/{id}/connect:
post:
tags:
- Asset Discovery
summary: Discovery Connection Reconnect
description: Attempts to reconnect the discovery connection.
operationId: reconnectDiscoveryConnection
parameters:
- name: id
in: path
description: The identifier of the discovery connection.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: OK
headers: {}
content: {}
'400':
description: Bad Request
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/BadRequestError'
'401':
description: Unauthorized
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'500':
description: Internal Server Error
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/InternalServerError'
'503':
description: Service Unavailable
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ServiceUnavailableError'
security: []
/api/3/sonar_queries:
get:
tags:
- Asset Discovery
summary: Sonar Queries
description: Returns all sonar queries.
operationId: getSonarQueries
responses:
'200':
description: OK
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/Resources_SonarQuery'
'401':
description: Unauthorized
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'404':
description: Not Found
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/NotFoundError'
'500':
description: Internal Server Error
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/InternalServerError'
'503':
description: Service Unavailable
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ServiceUnavailableError'
security: []
post:
tags:
- Asset Discovery
summary: Sonar Queries
description: Creates a sonar query.
operationId: createSonarQuery
responses:
'200':
description: OK
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/CreatedReference_DiscoveryQueryID_Link'
'400':
description: Bad Request
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/BadRequestError'
'401':
description: Unauthorized
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'500':
description: Internal Server Error
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/InternalServerError'
'503':
description: Service Unavailable
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ServiceUnavailableError'
security: []
x-code-samples:
- lang: Assets in IP Range
source: "{\n \"criteria\": {\n \"filters\": [\n { \"type\": \"ip-address-range\", \"lower\": \"192.168.1.1\", \"upper\": \"192.168.1.254\" }\n ]\n },\n \"name\": \"Assets In IP Range\"\n}"
- lang: Recently Scanned Rapid7 Assets
source: "{\n \"criteria\": {\n \"filters\": [\n { \"type\": \"domain-contains\", \"domain\": \"acme.com\" },\n { \"type\": \"scan-date-within-the-last\", \"days\": \"30\" }\n ]\n },\n \"name\": \"Recently Scanned ACME Assets\"\n}"
- lang: Recently Scanned Assets in IP Range
source: "{\n \"criteria\": {\n \"filters\": [\n { \"type\": \"ip-address-range\", \"lower\": \"192.168.1.1\", \"upper\": \"192.168.1.254\" },\n { \"type\": \"scan-date-within-the-last\", \"days\": \"30\" }\n ]\n },\n \"name\": \"Recently Scanned Assets in IP Range\"\n}"
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SonarQuery'
description: The criteria for a Sonar query.
/api/3/sonar_queries/search:
post:
tags:
- Asset Discovery
summary: Sonar Query Search
description: Executes a Sonar query to discover assets with the given search criteria.
operationId: sonarQuerySearch
responses:
'200':
description: OK
headers: {}
content:
application/json;charset=UTF-8:
schema:
type: array
items:
$ref: '#/components/schemas/DiscoveryAsset'
'400':
description: Bad Request
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/BadRequestError'
'401':
description: Unauthorized
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'500':
description: Internal Server Error
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/InternalServerError'
'503':
description: Service Unavailable
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ServiceUnavailableError'
security: []
x-code-samples:
- lang: Assets in IP Range
source: "{\n \"filters\": [\n { \"type\": \"ip-address-range\", \"lower\": \"192.168.1.1\", \"upper\": \"192.168.1.254\" }\n ]\n}"
- lang: Recently Scanned Rapid7 Assets
source: "{\n \"filters\": [\n { \"type\": \"domain-contains\", \"domain\": \"acme.com\"},\n { \"type\": \"scan-date-within-the-last\", \"days\": \"30\"}\n ]\n}"
- lang: Recently Scanned Assets in IP Range
source: "{\n \"filters\": [\n { \"type\": \"ip-address-range\", \"lower\": \"192.168.1.1\", \"upper\": \"192.168.1.254\" },\n { \"type\": \"scan-date-within-the-last\", \"days\": \"30\" }\n ]\n}"
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SonarCriteria'
description: The criteria for a Sonar query.
/api/3/sonar_queries/{id}:
get:
tags:
- Asset Discovery
summary: Sonar Query
description: Returns a sonar query.
operationId: getSonarQuery
parameters:
- name: id
in: path
description: The identifier of the Sonar query.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: OK
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/SonarQuery'
'401':
description: Unauthorized
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'404':
description: Not Found
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/NotFoundError'
'500':
description: Internal Server Error
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/InternalServerError'
'503':
description: Service Unavailable
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ServiceUnavailableError'
security: []
put:
tags:
- Asset Discovery
summary: Sonar Query
description: Updates a sonar query.
operationId: updateSonarQuery
parameters:
- name: id
in: path
description: The identifier of the Sonar query.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: OK
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/Links'
'400':
description: Bad Request
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/BadRequestError'
'401':
description: Unauthorized
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'404':
description: Not Found
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/NotFoundError'
'500':
description: Internal Server Error
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/InternalServerError'
'503':
description: Service Unavailable
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ServiceUnavailableError'
security: []
x-code-samples:
- lang: Assets in IP Range
source: "{\n \"criteria\": {\n \"filters\": [\n { \"type\": \"ip-address-range\", \"lower\": \"192.168.1.1\", \"upper\": \"192.168.1.254\" }\n ]\n },\n \"name\": \"Assets In IP Range\"\n}"
- lang: Recently Scanned Rapid7 Assets
source: "{\n \"criteria\": {\n \"filters\": [\n { \"type\": \"domain-contains\", \"domain\": \"acme.com\" },\n { \"type\": \"scan-date-within-the-last\", \"days\": \"30\" }\n ]\n },\n \"name\": \"Recently Scanned ACME Assets\"\n}"
- lang: Recently Scanned Assets in IP Range
source: "{\n \"criteria\": {\n \"filters\": [\n { \"type\": \"ip-address-range\", \"lower\": \"192.168.1.1\", \"upper\": \"192.168.1.254\" },\n { \"type\": \"scan-date-within-the-last\", \"days\": \"30\" }\n ]\n },\n \"name\": \"Recently Scanned Assets in IP Range\"\n}"
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SonarQuery'
description: The criteria for a Sonar query.
delete:
tags:
- Asset Discovery
summary: Sonar Query
description: Removes a sonar query.
operationId: deleteSonarQuery
parameters:
- name: id
in: path
description: The identifier of the Sonar query.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: OK
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/Links'
'401':
description: Unauthorized
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'404':
description: Not Found
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/NotFoundError'
'500':
description: Internal Server Error
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/InternalServerError'
'503':
description: Service Unavailable
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ServiceUnavailableError'
security: []
/api/3/sonar_queries/{id}/assets:
get:
tags:
- Asset Discovery
summary: Sonar Query Assets
description: Returns the assets that are discovered by a Sonar query.
operationId: getSonarQueryAssets
parameters:
- name: id
in: path
description: The identifier of the Sonar query.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: OK
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/Resources_DiscoveryAsset'
'401':
description: Unauthorized
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'404':
description: Not Found
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/NotFoundError'
'500':
description: Internal Server Error
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/InternalServerError'
'503':
description: Service Unavailable
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ServiceUnavailableError'
security: []
components:
schemas:
Resources_DiscoveryAsset:
type: object
properties:
links:
type: array
items:
$ref: '#/components/schemas/Link'
resources:
type: array
items:
$ref: '#/components/schemas/DiscoveryAsset'
description: ''
DiscoveryAsset:
type: object
properties:
address:
type: string
example: 12.83.99.203
description: The IP address of a discovered asset.
readOnly: true
links:
type: array
description: Hypermedia links to corresponding or related resources.
readOnly: true
items:
$ref: '#/components/schemas/Link'
name:
type: string
example: desktop-27.acme.com
description: The host name of a discovered asset.
readOnly: true
description: ''
Resources_SonarQuery:
type: object
properties:
links:
type: array
description: Hypermedia links to corresponding or related resources.
items:
$ref: '#/components/schemas/Link'
resources:
type: array
description: The resources returned.
items:
$ref: '#/components/schemas/SonarQuery'
description: ''
InternalServerError:
type: object
required:
- status
properties:
links:
type: array
description: Hypermedia links to corresponding or related resources.
items:
$ref: '#/components/schemas/Link'
message:
type: string
example: An error has occurred.
description: The messages indicating the cause or reason for failure.
status:
type: string
example: '500'
description: The HTTP status code for the error (same as in the HTTP response).
enum:
- '500'
description: ''
PageOf_DiscoveryConnection:
type: object
properties:
links:
type: array
description: Hypermedia links to corresponding or related resources.
items:
$ref: '#/components/schemas/Link'
page:
example: ''
description: The details of pagination indicating which page was returned, and how the remaining pages can be retrieved.
$ref: '#/components/schemas/PageInfo'
resources:
type: array
description: The page of resources returned.
items:
$ref: '#/components/schemas/DiscoveryConnection'
description: ''
Link:
type: object
properties:
href:
type: string
example: https://hostname:3780/api/3/...
description: 'A hypertext reference, which is either a URI (see <a target="_blank" rel="noopener noreferrer" href="https://tools.ietf.org/html/rfc3986">RFC 3986</a>) or URI template (see <a target="_blank" rel="noopener noreferrer" href="https://tools.ietf.org/html/rfc6570">RFC 6570</a>). '
rel:
type: string
example: self
description: The link relation type. This value is one from the <a target="_blank" rel="noopener noreferrer" href="https://tools.ietf.org/html/rfc5988#section-6.2">Link Relation Type Registry</a> or is the type of resource being linked to.
description: ''
UnauthorizedError:
type: object
required:
- status
properties:
links:
type: array
description: Hypermedia links to corresponding or related resources.
items:
$ref: '#/components/schemas/Link'
message:
type: string
example: An error has occurred.
description: The messages indicating the cause or reason for failure.
status:
type: string
example: '401'
description: The HTTP status code for the error (same as in the HTTP response).
enum:
- '401'
description: ''
SonarCriteria:
type: object
properties:
filters:
type: array
description: The filters in the Sonar query.
items:
$ref: '#/components/schemas/SonarCriterion'
description: ''
NotFoundError:
type: object
required:
- status
properties:
links:
type: array
description: Hypermedia links to corresponding or related resources.
items:
$ref: '#/components/schemas/Link'
message:
type: string
example: An error has occurred.
description: The messages indicating the cause or reason for failure.
status:
type: string
example: '404'
description: The HTTP status code for the error (same as in the HTTP response).
enum:
- '404'
description: ''
DiscoveryConnection:
type: object
properties:
accessKeyId:
type: string
example: ''
description: The AWS credential access key identifier (only used for the AWS connection).
address:
type: string
example: ''
description: The address used to connect to the discovery connection source.
arn:
type: string
example: ''
description: The AWS credential ARN (only used for the AWS connection).
awsSessionName:
type: string
example: ''
description: The AWS credential session name (only used for the AWS connection).
connectionType:
type: string
example: ''
description: The type of the discovery connection.
eventSource:
type: string
example: ''
description: The event source type to use.
exchangeServerHostname:
type: string
example: ''
description: The hostname of the exchange server to connect to.
exchangeUser:
type: string
example: ''
description: The username used to connect to the exchange server.
folderPath:
type: string
example: ''
description: The folder path to pull logs from.
id:
type: integer
format: int64
example: ''
description: The identifier of the discovery connection.
readOnly: true
ldapServer:
type: string
example: ''
description: The LDAP server to connect to.
links:
type: array
description: Hypermedia links to corresponding or related resources.
readOnly: true
items:
$ref: '#/components/schemas/Link'
name:
type: string
example: Connection 1
description: The discovery connection name.
port:
type: integer
format: int32
example: ''
description: The port used to connect to the discovery connection source.
protocol:
type: string
example: ''
description: The protocol used to connect to the discovery connection source.
region:
type: string
example: ''
description: The AWS region (only used for the AWS connection).
scanEngineIsInsideAWS:
type: boolean
example: false
description: Flag denoting whether the scan engine is in AWS, this is used for AWS discovery connections for scanning purposes (only used for the AWS connection).
secretAccessKey:
type: string
example: ''
description: The AWS credential secret access key (only used for the AWS connection).
status:
type: string
example: ''
description: The status of the discovery connection.
username:
type: string
example: ''
description: The username used to authenticate to the discovery connection source.
winRMServer:
type: string
example: ''
description: 'The WinRM server to connect to. '
description: ''
BadRequestError:
type: object
required:
- status
properties:
links:
type: array
description: Hypermedia links to corresponding or related resources.
items:
$ref: '#/components/schemas/Link'
message:
type: string
example: An error has occurred.
description: The messages indicating the cause or reason for failure.
status:
type: string
example: '400'
description: The HTTP status code for the error (same as in the HTTP response).
enum:
- '400'
description: ''
PageInfo:
type: object
properties:
number:
type: integer
format: int64
example: 6
description: The index (zero-based) of the current page returned.
size:
type: integer
format: int64
example: 10
description: The maximum size of the page returned.
totalPages:
type: integer
format: int64
example: 13
description: The total number of pages available.
totalResources:
type: integer
format: int64
example: 123
description: The total number of resources available across all pages.
description: ''
SonarCriterion:
type: object
properties:
days:
type: integer
format: int32
example: ''
description: If the field is `scan-date-within-the-last`, the number of days to search against.
domain:
type: string
example: acme.com
description: If the field is `domain-contains`, the domain to search against.
lower:
type: string
example: ''
description: If the field is `ip-address-range`, the lower limit of the search.
type:
type: string
example: domain-contains
description: The type of query to perform.
enum:
- domain-contains
- scan-date-within-the-last
- ip-address-range
upper:
type: string
example: ''
description: If the field is `ip-address-range`, the upper limit of the search.
description: ''
CreatedReference_DiscoveryQueryID_Link:
type: object
properties:
id:
type: integer
format: int64
example: 1
description: The identifier of the resource created.
links:
type: array
description: Hypermedia links to corresponding or related resources.
items:
$ref: '#/components/schemas/Link'
description: ''
Links:
type: object
properties:
links:
type: array
description: Hypermedia links to corresponding or related resources.
items:
$ref: '#/components/schemas/Link'
description: ''
SonarQuery:
type: object
properties:
criteria:
example: ''
description: The search criteria used to search for assets from the Sonar API.
$ref: '#/components/schemas/SonarCriteria'
id:
type: integer
format: int64
example: 14
description: The identifier of the Sonar query.
readOnly: true
links:
type: array
items:
$ref: '#/components/schemas/Link'
name:
type: string
example: Assets in Domain
description: The name of the Sonar query.
description: ''
ServiceUnavailableError:
type: object
required:
- status
properties:
links:
type: array
description: Hypermedia links to corresponding or related resources.
items:
$ref: '#/components/schemas/Link'
message:
type: string
example: An error has occurred.
description: The messages indicating the cause or reason for failure.
status:
type: string
example: '503'
description: The HTTP status code for the error (same as in the HTTP response).
enum:
- '503'
description: ''
securitySchemes:
Basic:
type: http
scheme: basic