diff --git a/gvm/protocols/gmp/_gmpnext.py b/gvm/protocols/gmp/_gmpnext.py
index 357c236e..c67f798f 100644
--- a/gvm/protocols/gmp/_gmpnext.py
+++ b/gvm/protocols/gmp/_gmpnext.py
@@ -26,6 +26,7 @@
ReportClosedCVEs,
ReportCVEs,
ReportErrors,
+ ReportExports,
ReportHosts,
ReportOperatingSystems,
ReportPorts,
@@ -1808,3 +1809,35 @@ def export_scan_report(
result_tags=result_tags,
)
)
+
+ def get_report_exports(
+ self,
+ ) -> T:
+ """Request report exports.
+
+ The command requests a list of report exports.
+
+ Returns:
+ A request for the get_report_exports GMP command.
+ """
+ return self._send_request_and_transform_response(
+ ReportExports.get_report_exports()
+ )
+
+ def get_report_export(
+ self,
+ report_export_id: EntityID,
+ ) -> T:
+ """Request a single report export.
+
+ Args:
+ report_export_id: UUID of the report export.
+
+ Returns:
+ A request for the get_report_exports GMP command.
+ """
+ return self._send_request_and_transform_response(
+ ReportExports.get_report_export(
+ report_export_id=report_export_id,
+ )
+ )
diff --git a/gvm/protocols/gmp/requests/next/__init__.py b/gvm/protocols/gmp/requests/next/__init__.py
index a4b8f046..ff9cbcff 100644
--- a/gvm/protocols/gmp/requests/next/__init__.py
+++ b/gvm/protocols/gmp/requests/next/__init__.py
@@ -30,6 +30,9 @@
from gvm.protocols.gmp.requests.next._report_errors import (
ReportErrors,
)
+from gvm.protocols.gmp.requests.next._report_exports import (
+ ReportExports,
+)
from gvm.protocols.gmp.requests.next._report_hosts import (
ReportHosts,
)
@@ -174,6 +177,7 @@
"ReportConfigParameter",
"ReportConfigs",
"ReportErrors",
+ "ReportExports",
"ReportFormatType",
"ReportFormats",
"ReportHosts",
diff --git a/gvm/protocols/gmp/requests/next/_integration_configs.py b/gvm/protocols/gmp/requests/next/_integration_configs.py
index d0576852..fd2d3bcc 100644
--- a/gvm/protocols/gmp/requests/next/_integration_configs.py
+++ b/gvm/protocols/gmp/requests/next/_integration_configs.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
from gvm.errors import RequiredArgument
from gvm.protocols.core import Request
from gvm.protocols.gmp.requests import EntityID
diff --git a/gvm/protocols/gmp/requests/next/_report_applications.py b/gvm/protocols/gmp/requests/next/_report_applications.py
index 6875709d..179fcc22 100644
--- a/gvm/protocols/gmp/requests/next/_report_applications.py
+++ b/gvm/protocols/gmp/requests/next/_report_applications.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
from gvm.errors import RequiredArgument
from gvm.protocols.core import Request
from gvm.protocols.gmp.requests import EntityID
diff --git a/gvm/protocols/gmp/requests/next/_report_closed_cves.py b/gvm/protocols/gmp/requests/next/_report_closed_cves.py
index 2650101d..9c485977 100644
--- a/gvm/protocols/gmp/requests/next/_report_closed_cves.py
+++ b/gvm/protocols/gmp/requests/next/_report_closed_cves.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
from gvm.errors import RequiredArgument
from gvm.protocols.core import Request
from gvm.protocols.gmp.requests import EntityID
diff --git a/gvm/protocols/gmp/requests/next/_report_cves.py b/gvm/protocols/gmp/requests/next/_report_cves.py
index ef1fc28b..8a0fc169 100644
--- a/gvm/protocols/gmp/requests/next/_report_cves.py
+++ b/gvm/protocols/gmp/requests/next/_report_cves.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
from gvm.errors import RequiredArgument
from gvm.protocols.core import Request
from gvm.protocols.gmp.requests import EntityID
diff --git a/gvm/protocols/gmp/requests/next/_report_errors.py b/gvm/protocols/gmp/requests/next/_report_errors.py
index e36af893..6c61e99b 100644
--- a/gvm/protocols/gmp/requests/next/_report_errors.py
+++ b/gvm/protocols/gmp/requests/next/_report_errors.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
from gvm.errors import RequiredArgument
from gvm.protocols.core import Request
from gvm.protocols.gmp.requests import EntityID
diff --git a/gvm/protocols/gmp/requests/next/_report_exports.py b/gvm/protocols/gmp/requests/next/_report_exports.py
new file mode 100644
index 00000000..0c1147fd
--- /dev/null
+++ b/gvm/protocols/gmp/requests/next/_report_exports.py
@@ -0,0 +1,55 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+from gvm.errors import RequiredArgument
+from gvm.protocols.core import Request
+from gvm.protocols.gmp.requests import EntityID
+from gvm.xml import XmlCommand
+
+
+class ReportExports:
+ @classmethod
+ def get_report_exports(
+ cls,
+ ) -> Request:
+ """Request report exports.
+
+ The command requests a list of report exports.
+
+ Returns:
+ A request for the get_report_exports GMP command.
+ """
+ cmd = XmlCommand("get_report_exports")
+
+ return cmd
+
+ @classmethod
+ def get_report_export(
+ cls,
+ report_export_id: EntityID,
+ ) -> Request:
+ """Request a single report export.
+
+ Args:
+ report_export_id: UUID of the report export.
+
+ Returns:
+ A request for the get_report_exports GMP command.
+
+ Raises:
+ RequiredArgument: If report_export_id is not provided.
+ """
+ if not report_export_id:
+ raise RequiredArgument(
+ function=cls.get_report_export.__name__,
+ argument="report_export_id",
+ )
+
+ cmd = XmlCommand("get_report_exports")
+ cmd.set_attribute(
+ "report_export_id",
+ str(report_export_id),
+ )
+
+ return cmd
diff --git a/gvm/protocols/gmp/requests/next/_report_hosts.py b/gvm/protocols/gmp/requests/next/_report_hosts.py
index 7237163f..7e9fd798 100644
--- a/gvm/protocols/gmp/requests/next/_report_hosts.py
+++ b/gvm/protocols/gmp/requests/next/_report_hosts.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
from gvm.errors import RequiredArgument
from gvm.protocols.core import Request
from gvm.protocols.gmp.requests import EntityID
diff --git a/gvm/protocols/gmp/requests/next/_report_operating_systems.py b/gvm/protocols/gmp/requests/next/_report_operating_systems.py
index 36fc1ca6..49d2c810 100644
--- a/gvm/protocols/gmp/requests/next/_report_operating_systems.py
+++ b/gvm/protocols/gmp/requests/next/_report_operating_systems.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
from gvm.errors import RequiredArgument
from gvm.protocols.core import Request
from gvm.protocols.gmp.requests import EntityID
diff --git a/gvm/protocols/gmp/requests/next/_report_ports.py b/gvm/protocols/gmp/requests/next/_report_ports.py
index fe3ba7af..49a7e706 100644
--- a/gvm/protocols/gmp/requests/next/_report_ports.py
+++ b/gvm/protocols/gmp/requests/next/_report_ports.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
from gvm.errors import RequiredArgument
from gvm.protocols.core import Request
from gvm.protocols.gmp.requests import EntityID
diff --git a/gvm/protocols/gmp/requests/next/_report_tls_certificates.py b/gvm/protocols/gmp/requests/next/_report_tls_certificates.py
index 13ff8168..058595cf 100644
--- a/gvm/protocols/gmp/requests/next/_report_tls_certificates.py
+++ b/gvm/protocols/gmp/requests/next/_report_tls_certificates.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
from gvm.errors import RequiredArgument
from gvm.protocols.core import Request
from gvm.protocols.gmp.requests import EntityID
diff --git a/gvm/protocols/gmp/requests/next/_report_vulnerabilities.py b/gvm/protocols/gmp/requests/next/_report_vulnerabilities.py
index a5a9b18a..90a8eb30 100644
--- a/gvm/protocols/gmp/requests/next/_report_vulnerabilities.py
+++ b/gvm/protocols/gmp/requests/next/_report_vulnerabilities.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
from gvm.errors import RequiredArgument
from gvm.protocols.core import Request
from gvm.protocols.gmp.requests import EntityID
diff --git a/gvm/protocols/gmp/requests/next/_scan_report.py b/gvm/protocols/gmp/requests/next/_scan_report.py
index b7c13589..50e4334f 100644
--- a/gvm/protocols/gmp/requests/next/_scan_report.py
+++ b/gvm/protocols/gmp/requests/next/_scan_report.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
from gvm.errors import RequiredArgument
from gvm.protocols.core import Request
from gvm.protocols.gmp.requests import EntityID
diff --git a/tests/protocols/gmpnext/entities/report_exports/__init__.py b/tests/protocols/gmpnext/entities/report_exports/__init__.py
new file mode 100644
index 00000000..67091b86
--- /dev/null
+++ b/tests/protocols/gmpnext/entities/report_exports/__init__.py
@@ -0,0 +1,11 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+from .test_get_report_export import GmpGetReportExportTestMixin
+from .test_get_report_exports import GmpGetReportExportsTestMixin
+
+__all__ = [
+ "GmpGetReportExportTestMixin",
+ "GmpGetReportExportsTestMixin",
+]
diff --git a/tests/protocols/gmpnext/entities/report_exports/test_get_report_export.py b/tests/protocols/gmpnext/entities/report_exports/test_get_report_export.py
new file mode 100644
index 00000000..f73663b8
--- /dev/null
+++ b/tests/protocols/gmpnext/entities/report_exports/test_get_report_export.py
@@ -0,0 +1,21 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+from gvm.errors import RequiredArgument
+
+
+class GmpGetReportExportTestMixin:
+ def test_get_report_export_without_id(self):
+ with self.assertRaises(RequiredArgument):
+ self.gmp.get_report_export(None)
+
+ with self.assertRaises(RequiredArgument):
+ self.gmp.get_report_export("")
+
+ def test_get_report_export_with_id(self):
+ self.gmp.get_report_export(report_export_id="e1")
+
+ self.connection.send.has_been_called_with(
+ b''
+ )
diff --git a/tests/protocols/gmpnext/entities/report_exports/test_get_report_exports.py b/tests/protocols/gmpnext/entities/report_exports/test_get_report_exports.py
new file mode 100644
index 00000000..16691f85
--- /dev/null
+++ b/tests/protocols/gmpnext/entities/report_exports/test_get_report_exports.py
@@ -0,0 +1,11 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+
+
+class GmpGetReportExportsTestMixin:
+ def test_get_report_exports(self):
+ self.gmp.get_report_exports()
+
+ self.connection.send.has_been_called_with(b"")
diff --git a/tests/protocols/gmpnext/entities/test_report_exports.py b/tests/protocols/gmpnext/entities/test_report_exports.py
new file mode 100644
index 00000000..c0d358a7
--- /dev/null
+++ b/tests/protocols/gmpnext/entities/test_report_exports.py
@@ -0,0 +1,18 @@
+# SPDX-FileCopyrightText: 2026 Greenbone AG
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+
+from ...gmpnext import GMPTestCase
+from .report_exports import (
+ GmpGetReportExportsTestMixin,
+ GmpGetReportExportTestMixin,
+)
+
+
+class GmpGmpGetReportExportsTestCase(GmpGetReportExportsTestMixin, GMPTestCase):
+ pass
+
+
+class GmpGmpGetReportExportTestCase(GmpGetReportExportTestMixin, GMPTestCase):
+ pass