Accessing Prowler Cloud and API Documentation
If you are a Prowler Cloud user, you can access API docs at https://api.prowler.com/api/v1/docsFor Prowler App usersAfter installing Prowler App, access it at http://localhost:3000.To view the auto-generated Prowler API documentation, navigate to http://localhost:8080/api/v1/docs. This documentation provides details on available endpoints, parameters, and responses.
Step 1: Sign Up
Sign Up with Email
To get started, sign up using your email and password:

Sign Up with Social Login
If Social Login is enabled, you can sign up using your preferred provider (e.g., Google, GitHub).How Social Login WorksIf your email is already registered, you will be logged in, and your social account will be linked.
If your email is not registered, a new account will be created using your social account email.
Enable Social LoginSee how to configure Social Login for Prowler to enable this feature in your own deployments.
Step 2: Log In
Once registered, log in with your email and password to access Prowler App.
Step 3: Add a Provider
To perform security scans, link a cloud provider account. Prowler supports the following providers and more:- AWS
- Azure
- Google Cloud Platform (GCP)
- Kubernetes
- M365
- GitHub
- Navigate to
Settings > Cloud Providers
. - Click
Add Account
to set up a new provider and provide your credentials.

Step 4: Configure the Provider
Select the cloud provider you want to scan.
- AWS: Enter your AWS Account ID.
- GCP: Enter your GCP Project ID.
- Azure: Enter your Azure Subscription ID.
- Kubernetes: Enter your Kubernetes Cluster context of your kubeconfig file.
- M365: Enter your M365 Domain ID.
Step 4.1: AWS Credentials
For AWS, enter yourAWS Account ID
and choose one of the following methods to connect:
Step 4.1.1: IAM Access Keys
-
Select
Connect via Credentials
. -
Enter your
Access Key ID
,Secret Access Key
and optionally aSession Token
:
Step 4.1.2: IAM Role
-
Select
Connect assuming IAM Role
. -
Enter the
Role ARN
and any optional field like the AWS Access Keys to assume the role, theExternal ID
, theRole Session Name
or theSession Duration
:
Check if your AWS Security Token Service (STS) has the EU (Ireland) endpoint active. If not, we will not be able to connect to your AWS account.If that is the case your STS configuration may look like this:
To solve this issue, please activate the EU (Ireland) STS endpoint.

Step 4.2: Azure Credentials:
For Azure, Prowler App uses a service principal application to authenticate. For more information about the process of creating and adding permissions to a service principal refer to this section. When you finish creating and adding the Entra and Subscription scope permissions to the service principal, enter theTenant ID
, Client ID
and Client Secret
of the service principal application.

Step 4.3: GCP Credentials
For Google Cloud, first enter yourGCP Project ID
and then select the authentication method you want to use:
- Service Account Authentication (Recommended)
- Application Default Credentials

Step 4.3.1: Service Account Authentication
First of all, in the same project that you selected in the previous step, you need to create a service account and then generate a key in JSON format for it. For more information about this, you can follow the next Google Cloud documentation tutorials:
Step 4.3.2: Application Default Credentials
-
Run the following command in your terminal to authenticate with GCP:
-
Once authenticated, get the
Client ID
,Client Secret
andRefresh Token
from~/.config/gcloud/application_default_credentials
. -
Paste the
Client ID
,Client Secret
andRefresh Token
into Prowler App.

Step 4.4: Kubernetes Credentials:
For Kubernetes, Prowler App uses akubeconfig
file to authenticate, paste the contents of your kubeconfig
file into the Kubeconfig content
field.
By default, the kubeconfig
file is located at ~/.kube/config
.

52.48.254.174/32
-
Apply the necessary Kubernetes resources to your EKS, GKE, AKS or external cluster (you can find the files in the
kubernetes
directory of the Prowler repository): -
Generate a long-lived token for authentication:
- Security Note: The
--duration=0
option generates a non-expiring token, which may pose a security risk if not managed properly. Users should decide on an appropriate expiration time based on their security policies. If a limited-time token is preferred, set--duration=<TIME>
(e.g.,--duration=24h
). - Important: If the token expires, Prowler Cloud will no longer be able to authenticate with the cluster. In this case, you will need to generate a new token and remove and re-add the provider in Prowler Cloud with the updated
kubeconfig
.
- Security Note: The
-
Update your
kubeconfig
to use the ServiceAccount token:Replace<SA_TOKEN>
with the generated token and<CONTEXT_NAME>
with your KubeConfig Context Name of your EKS, GKE or AKS cluster. -
Now you can add the modified
kubeconfig
in Prowler Cloud. Then test the connection.
Step 4.5: M365 Credentials
For M365, you must enter your Domain ID and choose the authentication method you want to use:- Service Principal Authentication (Recommended)
User authentication with M365_USER and M365_PASSWORD is deprecated and will be removed.

Step 4.6: GitHub Credentials
For GitHub, you must enter your Provider ID (username or organization name) and choose the authentication method you want to use:- Personal Access Token (Recommended for individual users)
- OAuth App Token (For applications requiring user consent)
- GitHub App (Recommended for organizations and production use)
For full setup instructions and requirements, check the GitHub provider requirements.

Step 4.6.1: Personal Access Token
Personal Access Tokens provide the simplest GitHub authentication method and support individual user authentication or testing scenarios.- Select
Personal Access Token
and enter yourPersonal Access Token
:

For detailed instructions on creating a Personal Access Token and the exact permissions required, check the GitHub Personal Access Token tutorial.
Step 4.6.2: OAuth App Token
OAuth Apps enable applications to act on behalf of users with explicit consent.- Select
OAuth App Token
and enter yourOAuth App Token
:

To create an OAuth App, go to GitHub Settings → Developer settings → OAuth Apps → New OAuth App. You’ll need to exchange an authorization code for an access token using the OAuth flow.
Step 4.6.3: GitHub App
GitHub Apps provide the recommended integration method for accessing multiple repositories or organizations.-
Select
GitHub App
and enter yourGitHub App ID
andGitHub App Private Key
:
To create a GitHub App, go to GitHub Settings → Developer settings → GitHub Apps → New GitHub App. Configure the necessary permissions and generate a private key. Install the app to your account or organization and provide the App ID and private key content.
Step 5: Test Connection
After adding your credentials of your cloud account, click theLaunch
button to verify that Prowler App can successfully connect to your provider:

Step 6: Scan started
After successfully adding and testing your credentials, Prowler will start scanning your cloud environment, click theGo to Scans
button to see the progress:

Prowler will automatically scan all configured providers every 24 hours, ensuring your cloud environment stays continuously monitored.
Step 7: Monitor Scan Progress
Track the progress of your scan in theScans
section:

Step 8: Analyze the Findings
While the scan is running, start exploring the findings in these sections:-
Overview: High-level summary of the scans.
-
Compliance: Insights into compliance status.
-
Issues: Types of issues detected.
-
Browse All Findings: Detailed list of findings detected, where you can filter by severity, service, and more.
new
findings that have not been seen prior to this scan, click the Delta
filter and select new
. To view all changed
findings that have had a status change (from PASS
to FAIL
for example), click the Delta
filter and select changed
.
Step 9: Download the Outputs
Once a scan is complete, navigate to the Scan Jobs section to download the output files generated by Prowler:
zip
file. This archive contains the CSV, JSON-OSCF, and HTML reports detailing the findings.
To download these files, click the Download button. This button becomes available only after the scan has finished.

zip
file unpacks into a folder named like prowler-output-<provider_id>-<timestamp>
, which includes all of the above outputs. In the example below, you can see the .csv
, .json
, and .html
reports alongside a subfolder for detailed compliance checks.

API NoteFor more information about the API endpoint used by the UI to download the ZIP archive, refer to: Prowler API Reference - Download Scan Output
Step 10: Download specified compliance report
Once your scan has finished, you don’t need to grab the entire ZIP—just pull down the specific compliance report you want:- Navigate to the Compliance section of the UI.

- Find the Framework report you need.
- Click its Download icon to retrieve that report’s CSV file with all the detailed findings.

API NoteTo fetch a single compliance report via API, see the Retrieve compliance report as CSV endpoint in the Prowler API Reference.Prowler API Reference - Retrieve compliance report as CSV