# Build and Run the Application
source: https://developer.mastercard.com/mastercard-threat-intelligence/tutorial/api-sandbox-guide/step-11/index.md

In this step, you build the project and run the demo. A successful run confirms that authentication, the generated client, and all three features work together.

*** ** * ** ***

### Build the Project {#build-the-project}

From the project root, run:

```bash
mvn clean package
```

This command generates the API client, compiles your code, and packages the application. A successful build ends with `BUILD SUCCESS`.

*** ** * ** ***

### Run the Application {#run-the-application}

Run the demo with the Exec plugin:

```bash
mvn exec:java
```

The application connects to the API, calls each feature, and prints the responses.

*** ** * ** ***

### Review the Output {#review-the-output}

The output starts with the environment you connected to, then shows a section for each feature. The sample below is trimmed for readability:

```text
Connecting to: https://sandbox.cyber.mastercard.com

== Merchant Threat Intelligence ==
class DomainReportCollection {
    reports: [class DomainReport {
        domain: test.com
        risksFound: 0
        totalRisks: 9
        categories: [class RiskCategory {
            categoryName: No Risk Observed
            severityColor: GREEN
            ...
        }]
        status: PASSED
    }]
}

== Payment Ecosystem Threat Intelligence ==
class VulnerabilityPage {
    records: [class Vulnerability {
        cveId: CVE-2018-7600
        riskScore: 100
        severityLabel: Very Critical
        ...
    }]
    page: class PageDetail {
        limit: 5
        offset: 0
        total: 10
    }
}

== Card Testing ==
Filter options (TRANSACTIONS): class Filters {
    cids: [...]
    icas: [...]
    bins: [...]
}
Observed testing: class ObservedTestingPage {
    records: [...]
    page: class PageDetail { limit: 5, offset: 0, total: ... }
}
Testing behaviors: class TestingBehaviorPage { ... }
Transactions: class TransactionsPage { ... }
```

*** ** * ** ***

### Confirm Success {#confirm-success}

Your integration works when the output shows the following:

* A section header for each of the three features.
* A `DomainReportCollection` with a `status` of `PASSED`.
* A `VulnerabilityPage` with one or more records.
* A `Filters` object with lists of identifiers.

Some Card Testing views return data only for the role your project holds. An empty result there is normal and does not indicate a failure.

*** ** * ** ***

