Bulk export agent-based policies and vulnerabilities with the API

Introduction

Using the Bulk Export API, you can bulk export your agent-based policies and assets data or your vulnerabilities and assets data using a GraphQL API. The data is returned in Parquet format and can be downloaded for use in your business intelligence tools.

To bulk export API data to Parquet files, complete the following:

  1. Choose the endpoint for your region.
  2. Generate export files.
  3. Query the returned ID.
  4. Download the files.

Authorization

⚠️

Permissions

You need an Organization API key or a user API key with Platform Administrator permissions to use the Bulk Export API.

Authorization is performed by passing your API key using the X-Api-Key header parameter. The API key must be passed with all requests. To learn how to generate and manage API keys, see Managing Platform API Keys.

Endpoints

RegionURI
United States - 1https://us.api.insight.rapid7.com/export/graphql
United States - 2https://us2.api.insight.rapid7.com/export/graphql
United States - 3https://us3.api.insight.rapid7.com/export/graphql
Europehttps://eu.api.insight.rapid7.com/export/graphql
Canadahttps://ca.api.insight.rapid7.com/export/graphql
Australiahttps://au.api.insight.rapid7.com/export/graphql
Japanhttps://ap.api.insight.rapid7.com/export/graphql

Initiating the export

Complete these steps to create and retrieve the export files in Parquet.

Step 1: Mutation to initiate export

The mutations initiate the generation of the export files for Policy and Vulnerability data, respectively:

Agent-based policy and all assets:

mutation CreatePolicyExport { createPolicyExport(input:{}) { id } }

All vulnerabilities and all assets:

mutation CreateVulnerabilityExport { createVulnerabilityExport(input:{}) { id } }

Step 2: Export query

To retrieve the URLs to download the Parquet files, you must query the ID returned when initiating the export. The results will return a URL where you can download the Parquet files.

⚠️

Export considerations

The data is refreshed by the system once a day. You can make multiple export requests, however overuse of this method may result in throttling.

query GetExport { export(id: "YzY1ODk5YzQtNjkwNi00MDRjLTk3NDQtNjRhOGNkNWFkNDIx"){ id status dataset timestamp result { prefix urls } } }

Parquet files

These schemas provide an overview of the fields returned in the files at the URLs provided:

Agent-Based Policy Export

asset

FieldTypeDefinitionExample
orgIdStringOrganization IDa08de390-bb6a-4297-b1df-9ee58c7beb7a
assetIdStringAsset ID2b2b6a57-9136-4874-8af1-3f9f0a6de60a-default-asset-1
agentIdStringAgent ID586d68c92af55c27b7bfecf7f6df0cb4
awsInstanceIdStringThe Amazon Web Services instance ID of the asset, if applicablei-0e1cc483957bc29d8
azureResourceIdStringThe Azure resource identifier of the asset, if applicable
gcpObjectIdStringThe Google Cloud Platform identifier of the asset, if applicable
macStringThe primary MAC address of the asset0050568A103C
ipStringThe primary IP address of the asset0.0.0.0
hostNameStringThe primary hostname of the assettesthost.us
osArchitectureStringArchitecture of the OS on the assetx86_64
osFamilyStringFamily of the OS on the assetWindows
osProductStringProduct of the OS on the assetWindows Server 2016 Standard Edition
osVendorStringVendor of the OS on the assetMicrosoft
osVersionStringThe OS version on the asset1607
osTypeStringType of OS on the assetServer
osDescriptionStringThe description for the operating systemMicrosoft Windows Server 2016 Standard Edition 1607
riskScoreDoubleThe asset risk score10000.0
sitesListArray of sites the asset belongs to[site1, site2]
assetGroupsListThe groups the asset is part of[group1, group2]
tagsListThe tags present on the asset[{name: tag1, tagType: Owner}, {name: tag2, tagType: Location}]

asset_policy

FieldTypeDefinitionExample
orgId String Organization ID a08de390-bb6a-4297-b1df-9ee58c7beb7a
assetId String Asset ID 2b2b6a57-9136-4874-8af1-3f9f0a6de60a-default-asset-1
benchmarkNaturalId String The natural ID of the XCCDF benchmark xccdf_org.cisecurity.benchmarks_benchmark_2.0.0_CIS_Google_Chrome_Benchmark
profileNaturalId String The natural profile of the XCCDF benchmark xccdf_org.cisecurity.benchmarks_profile_Level_1_L1_-_CorporateEnterprise_Environment_general_use
benchmarkVersion String The version of the XCCDF benchmark 2.0.0
ruleNaturalId String The natural ID of the XCCDF rule xccdf_org.cisecurity.benchmarks_rule_3.6_L1_Ensure_Control_how_Chrome_Cleanup_reports_data_to_Google_is_set_to_Disabled
ruleTitle String The title of the XCCDF rule 3.6. (L1) Ensure 'Control how Chrome Cleanup reports data to Google' is set to 'Disabled'
finalStatus String The final status of the rule finding, after applying overrides FAIL
proof String Text describing how the status was determined
<p><p>Based on the following 1 results:<ol><li><p><ol><li><p>At least one specified Windows registry information entry must match the given criteria. At least one evaluation must pass.<Table TableTitle=""><Table.Tr RowTitle=""><Table.Td>The specified Windows registry information entry was not found based on the given criteria:</Table.Td></Table.Tr><Table.Tr RowTitle=""><Table.Td>hive: HKEY_LOCAL_MACHINE</Table.Td></Table.Tr><Table.Tr RowTitle=""><Table.Td>key: SOFTWARE\Policies\Google\Chrome</Table.Td></Table.Tr><Table.Tr RowTitle=""><Table.Td>name: ChromeCleanupReportingEnabled</Table.Td></Table.Tr></Table></p></li></ol></p></li></ol></p></p>
lastAssessmentTimestamp Timestamp The last time the policy was assessed 2022-12-06T04:07:44.471Z
benchmarkTitle String The title of the XCCDF benchmark CIS Google Chrome Benchmark
profileTitle String The title of the XCCDF profile Level 1 (L1) - Corporate/Enterprise Environment (general use)
publisher String The publisher of the policy CIS
fixTexts List Data describing how to bring a target system into compliance with the rule
fixTexts=[ <xhtml:div xmlns="http://checklists.nist.gov/xccdf/1.2" xmlns:cc6="http://cisecurity.org/20-cc/v6.1" xmlns:cc7="http://cisecurity.org/20-cc/v7.0" xmlns:notes="http://benchmarks.cisecurity.org/notes" xmlns:xccdf="http://checklists.nist.gov/xccdf/1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <xhtml:p> <xhtml:p> To establish the recommended configuration via Group Policy, set the following UI path to <xhtml:span class="inline_block">Disabled</xhtml:span> : </xhtml:p> <xhtml:code class="code_block">Computer Configuration\Administrative Templates\Google\Google Chrome\Control how Chrome Cleanup reports data to Google </xhtml:code> <xhtml:p class="bold">Impact:</xhtml:p> <xhtml:p> < xhtml:p> Chrome Cleanup detected unwanted software, will no longer report metadata about the scan to Google.</xhtml:p> </xhtml:div> ]
rationales List Descriptive text giving rationale or motivations for abiding by the rule

[<xhtml:p xmlns="http://checklists.nist.gov/xccdf/1.2" xmlns:cc6="http://cisecurity.org/20-cc/v6.1" xmlns:cc7="http://cisecurity.org/20-cc/v7.0" xmlns:notes="http://benchmarks.cisecurity.org/notes" xmlns:xccdf="http://checklists.nist.gov/xccdf/1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Anonymous crash/usage data can be used to identify people, companies and information, which can be considered data ex-filtration from company systems.</xhtml:p>]

Vulnerability Export

asset

FieldTypeDefinitionExample
orgIdStringOrganization IDa08de390-bb6a-4297-b1df-9ee58c7beb7a
assetIdStringAsset ID2b2b6a57-9136-4874-8af1-3f9f0a6de60a-default-asset-1
agentIdStringAgent ID586d68c92af55c27b7bfecf7f6df0cb4
awsInstanceIdStringThe Amazon Web Services instance ID of the asset, if applicablei-0e1cc483957bc29d8
azureResourceIdStringThe Azure resource identifier of the asset, if applicable
gcpObjectIdStringThe Google Cloud Platform identifier of the asset, if applicable
macStringThe primary MAC address of the asset0050568A103C
ipStringThe primary IP address of the asset0.0.0.0
hostNameStringThe primary hostname of the assettesthost.us
osArchitectureStringArchitecture of the OS on the assetx86_64
osFamilyStringFamily of the OS on the assetWindows
osProductStringProduct of the OS on the assetWindows Server 2016 Standard Edition
osVendorStringVendor of the OS on the assetMicrosoft
osVersionStringThe OS version on the asset1607
osTypeStringType of OS on the assetServer
osDescriptionStringThe description for the operating systemMicrosoft Windows Server 2016 Standard Edition 1607
riskScoreDoubleThe asset risk score10000.0
sitesListArray of sites the asset belongs to[site1, site2]
assetGroupsListThe groups the asset is part of[group1, group2]
tagsListThe tags present on the asset[{name: tag1, tagType: Owner}, {name: tag2, tagType: Location}]

asset_vulnerability

FieldTypeDefinitionExample
orgIdStringOrganization IDa08de390-bb6a-4297-b1df-9ee58c7beb7a
assetIdStringAsset ID2b2b6a57-9136-4874-8af1-3f9f0a6de60a-default-asset-1
vulnIdStringVulnerability IDmsft-cve-2023-29372
portIntegerThe scanned port the vulnerability is present on, if applicable22
protocolStringThe scanned protocol the vulnerability is present on, if applicableTCP
nicStringThe scanned network interface, if applicable
proofStringProof describing how the asset is vulnerable to the vulnerability<p><p>Vulnerable OS: Microsoft Windows Server 2012 R2 Standard Edition<p></p></p><p>Based on the following 3 results:<ol><li><p>Microsoft patch KB5027282 is not installed.</p></li><li><p>Microsoft patch KB5027271 is not installed.</p></li><li><p><ul><li>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion<ul><li>UBR - contains unexpected value 20337</li></ul></li></ul></p></li></ol></p></p>
firstFoundTimestampTimestampTimestamp of when the vulnerability was found on the asset2023-11-06T11:40:37.000Z
titleStringThe title of the vulnerabilityMicrosoft CVE-2023-29372: Microsoft WDAC OLE DB provider for SQL Server Remote Code Execution Vulnerability
descriptionStringThe description of the vulnerability, containing a mix of HTML/XML contentMicrosoft CVE-2023-29372: Microsoft WDAC OLE DB provider for SQL Server Remote Code Execution Vulnerability
cvssAccessComplexityStringThe CVSS V2 access complexity of the vulnerabilityM
cvssAccessVectorStringThe CVSS V2 access vector of the vulnerabilityN
cvssAuthenticationStringThe CVSS V2 authentication of the vulnerabilityN
cvssAvailabilityImpactStringThe CVSS V2 availability impact of the vulnerabilityC
cvssConfidentialityImpactStringThe CVSS V2 confidentiality impact of the vulnerabilityC
cvssIntegrityImpactStringThe CVSS V2 integrity impact of the vulnerabilityC
cvssScoreDoubleThe CVSS V2 score of the vulnerability8.8
cvssV3AttackVectorStringThe CVSS V3 attack vector (AV) of the vulnerabilityNetwork
cvssV3AttackComplexityStringThe CVSS V3 attack complexity (AC) of the vulnerabilityLow
cvssV3PrivilegesRequiredStringThe CVSS V3 privileges required (PR) of the vulnerabilityNone
cvssV3UserInteractionStringThe CVSS V3 user interaction (UI) of the vulnerabilityRequired
cvssV3ScopeStringThe CVSS V3 scope (S) of the vulnerabilityUnchanged
cvssV3ConfidentialityStringThe CVSS V3 confidentiality (C) of the vulnerabilityHigh
cvssV3IntegrityStringThe CVSS V3 integrity (I) of the vulnerabilityHigh
cvssV3AvailabilityStringThe CVSS V3 availability (A) of the vulnerabilityHigh
cvssV3ScoreDoubleThe CVSS V3 score of the vulnerability8.8
cvssV3SeverityStringThe CVSS V3 severity of the vulnerabilityHigh
cvssV3SeverityRankIntegerThe CVSS V3 severity rank of the vulnerability4
skillLevelStringThe skill level of the vulnerabilityunknown
skillLevelRankIntegerThe skill level rank of the vulnerability4
severityStringThe severity of the vulnerabilityCritical
severityRankIntegerThe severity rank of the vulnerability3
severityScoreIntegerThe severity score of the vulnerability9
hasExploitsBooleanWhether there are exploits associated with the vulnerabilityfalse
threatFeedExistsBooleanWhether a threat feed exists for the vulnerabilityfalse
pciCompliantBooleanWhether the vulnerability is PCI compliantfalse
pciSeverityIntegerThe PCI severity of the vulnerability5
riskScoreDoubleThe real risk score of the vulnerability. Used only when riskScoreV2_0 is not present348.70102
riskScoreV2_0IntegerThe active risk score of the vulnerability589
cvesListAn array of CVE IDs applicable to the vulnerability[CVE-2023-29372]
dateAddedTimestampTimestamp of when the vulnerability was added2023-06-13T00:00:00.000Z
dateModifiedTimestampTimestamp of when the vulnerability was modified2023-06-15T00:00:00.000Z
datePublishedTimestampTimestamp of when the vulnerability was published2023-06-13T00:00:00.000Z
tagsListThe tags associated with the vulnerability[Apple, Apple Mac OS X]

Downloading the Parquet files

  • Each time download URLs are generated, they remain valid for 15 minutes. Within this window, files can be downloaded as many times as needed.
  • These URLs can be regenerated at any time within 30 days of the initial request.
  • Exported files are retained for 30 days. After that, attempts to access the files will result in an error.