Added in: 5.19.0
Findings Ingestion enables uploading OCSF (Open Cybersecurity Schema Framework) scan results to Prowler Cloud. This feature supports importing findings from Prowler CLI output files that use the Detection Finding class.
This feature is available exclusively in Prowler Cloud.
OCSF Detection Finding format
The ingestion API accepts.ocsf.json files containing a JSON array of OCSF Detection Finding records. Each finding represents a security check result from Prowler.
Example Detection Finding record:
Only Detection Finding (
class_uid: 2004) records are accepted. Other OCSF classes are not supported for ingestion.Required permissions
The Manage Ingestions RBAC permission controls access to the ingestion endpoints. Without this permission, findings cannot be submitted via the API or--export-ocsf.
For more information about RBAC permissions, refer to the Prowler App RBAC documentation.
Using the CLI
The--export-ocsf flag uploads scan results directly to Prowler Cloud after a scan completes. This approach automates the ingestion process without manual file uploads.
Prerequisites
- A valid Prowler Cloud API key (see API Keys)
- The
PROWLER_API_KEYenvironment variable configured
Basic usage
Combining with output formats
When using--export-ocsf with custom output formats that exclude OCSF, Prowler generates a temporary OCSF file for upload:
The temporary OCSF file is saved in the system temporary directory and not in the output path passed with -o.
CLI output examples
Successful upload:Ingestion failures do not affect the scan exit code. The CLI emits warnings but completes normally.
Using the API
The Ingestion API provides endpoints for submitting OCSF files and monitoring job status.Authentication
Include the API key in theAuthorization header:
Submit an ingestion batch
Upload a.ocsf.json file containing a JSON array of OCSF Detection Finding records. See OCSF Detection Finding format for the expected structure.
Endpoint: POST /api/v1/ingestions
Request:
Get ingestion status
Monitor the progress of an ingestion job. Endpoint:GET /api/v1/ingestions/{id}
Request:
List ingestion jobs
Retrieve a list of ingestion jobs for the tenant. Endpoint:GET /api/v1/ingestions
Query parameters:
| Parameter | Type | Description |
|---|---|---|
filter[status] | string | Filter by status: pending, processing, completed, failed |
filter[status__in] | array | Filter by multiple statuses (comma-separated) |
filter[completed_at] | date | Filter by completion date |
filter[inserted_at] | date | Filter by insertion date |
filter[search] | string | Search term |
fields[ingestions] | array | Return specific fields: status, summary, requested_at, started_at, completed_at |
sort | array | Sort by: inserted_at, requested_at, started_at, completed_at (prefix with - for descending) |
page[number] | integer | Page number |
page[size] | integer | Results per page |
Get ingestion errors
Retrieve error details for a specific ingestion job. Endpoint:GET /api/v1/ingestions/{id}/errors
Request:
Ingestion status values
| Status | Description |
|---|---|
pending | Job received and queued for processing |
processing | Job is actively being processed |
completed | All records processed successfully |
failed | Job encountered errors during processing |
CI/CD integration
Automate findings ingestion in CI/CD pipelines by setting the API key as a secret.Prowler must be installed in the CI/CD environment before running scans. Refer to the Prowler CLI installation guide for setup instructions.
GitHub Actions
GitLab CI
Troubleshooting
HTTP 401 Unauthorized
- Verify the API key is valid and not revoked
- Confirm the API key has the Manage Ingestions permission
- Check that the
Authorizationheader uses the correct format:Api-Key <key>
HTTP 403 Forbidden
- The user associated with the API key lacks the Manage Ingestions permission
- Contact the tenant administrator to grant the required permission
Ingestion job status is “failed”
- Check the
/api/v1/ingestions/{id}/errorsendpoint for details - Verify the OCSF file format is valid
- Ensure the file contains Detection Finding records
CLI reports “could not reach the Prowler Cloud API”
- Verify network connectivity to
api.prowler.com - Check firewall rules allow outbound HTTPS traffic
- Confirm the API endpoint is not blocked by proxy settings

