Discovery Apps (v1)

Endpoint URL

POST https://api-prod-eu-central-1.inappnavi.com/api/public/v1/{{tenantId}}/discovery/discoveryApps 

Purpose

Retrieves a list of discovered applications for the specified time period, including usage metrics and other data displayed in the AppNavi UI.

Request Structure

When making a POST request to /discoveryApps ,include the authentication token in the header and include the following JSON body. Below is a common example; parameter names or structures may differ based on your final OpenAPI documentation:

ParameterTypeRequiredDescription
QueryParamsQueryParamsYesThe Additional data required to process API request

QueryParams Parameters:

ParameterTypeRequiredDescription
fromDatestringNoStart date in YYYY-MM-DD HH:MM:SS format. If provided, set TimeRange to VIEW_CUSTOM_DAYS.
toDatestringNoEnd date in YYYY-MM-DD HH:MM:SS format. If provided, set TimeRange to VIEW_CUSTOM_DAYS.
timeRangestringNoPossible values include LAST_30_DAYS, VIEW_90_DAYS, VIEW_ALLTIME and VIEW_CUSTOM_DAYS. If set to VIEW_CUSTOM_DAYS, you should provide fromDate and toDate. If not specified default to LAST_30_DAYS.
pageintegerNoThe page number to retrieve data from. Defaults to 1.
itemsPerPageintegerNoThe number of items to retrieve per page. Defaults to 50, if not specified.
displayedColumnsArray of StringsNo

The list of property/column names to include in the response.
Example: ["Url"]. Defaults to all columns if not specified.

Available displayedColumns are:
"id", "title", "url", "vendor", "businessCapabilityNames", "hosting", "compliant", "userCount", "powerUserCount", "regularUserCount", "occasionalUserCount", "activityTime", "firstSeen", "lastSeen", "businessCapabilityIds", "managed", "appNaviApps", "subscriptionId", "isUBMActivated", "companyApp", "organizationalUnit", "shouldIncludeOrganizationalUnit", "shouldIncludeBusinessCapabilityNames", "privacyPolicy", "termsOfService", "category", "saasMeta", "applicationLogo", "archivedAt", "source", "bcSuggestions", "isBCTrackingEnabled", "criticalityLevel", "dataLocation", "dataLocationName", "hasSensitiveData", "isAIProductivityTool", "businessProcess", "businessProcessNames", "dataClassification", "dataClassificationNames"

Description of Fields

This table provides a detailed overview of all application fields, including their technical (API) names, data types, corresponding UI labels, descriptions and data sources. It helps map backend data structures to the user interface and clarifies whether each field is automatically populated or manually maintained.

Technical Name (API)TypeUI NameDescriptionSource
titlestringTitleName of the applicationManual (Editable)
urlstringApplication URLBase URL of the appAutomatically
vendorstringVendorApplication providerManual / SaaS
businessCapabilityIdsArrayBusiness capabilitiesBusiness mappingManual / Suggested
dataClassificationArrayData classificationDefines the type and sensitivity level of data handled by the applicationAuto / Derived (based on detected data patterns or policies)
businessProcessArrayBusiness ProcessIndicates which organizational process the application supports (e.g., HR, Finance, Marketing). Helps align apps with business functions.Manual / Suggested
categorystringCategoryApp classificationManual
hostingstringHostingSpecifies where the application is hosted (e.g., Private Cloud, Public cloud, On-Premise). Useful for security, compliance, and infrastructure decisions.Auto / SaaS Metadata
compliantbooleanCompliantIndicates whether the application meets organizational or regulatory compliance standards.
Typically shown as Yes/ No status based.
Derived / Policy-based
criticalityLevelstringCriticality LevelRepresents how critical the application is for business operations (e.g., Low, Medium, High, Mission Critical). Helps prioritize risk and incident handling.
It can be shown as High, Medium and Low
Manual
dataLocationstringPrimary data locationHosting/data regionAutomatically
usersintegerUsersTotal unique usersAutomatically
powerUserCountintegerPower UsersUsers active > 4 days/weekAuto (Calculated)
regularUserCountintegerRegular UsersUsers active 2- 4 days/weekAuto (Calculated)
occasionalUserCountintegerOccasional UsersUsers active < 2 days/weekAuto (Calculated)
medianScorestringCopy /Paste Count

Shows the qualitative score derived from the median based on events of copy and paste.

High – Frequent copy/paste activity detected.
Medium – Moderate level of copy/paste activity
Low – Minimal or no copy/paste activity observed

Auto (if enabled)
hasSensitiveDatabooleanSensitive data/PIIIndicates whether the application handles sensitive or personally identifiable information (PII). Used for risk classification and compliance checks.
Shown as Yes/ No status based.
Automatically
inflowScorestringPII Inflow Risk

Indicates personal data presence.
This can be High, medium and Low.

High – Significant amount of PII is being entered into the application.
Medium – Moderate level of PII inflow detected
Low – Little to no PII inflow observed

Automatically
outflowScorestringPII Outflow Risk

Indicates sensitive data risk.
This can be High, Medium and Low

High – High volume of PII being copied or exported
Medium– Moderate level of PII outflow detected
Low– Minimal or no PII outflow observed

Automatically
isAIProductivityToolbooleanAI Productivity ToolIdentifies AI-based tools.
It is shown as Yes/ No status based.
Automatically
ssoUsageRatiostringSSO Usage

Shows the usage of SSO on applications which are accessed via Single Sign-On (SSO).
these can be High, medium or low

High – Majority of users access the application via SSO
Medium– Partial SSO adoption, mix of SSO and non-SSO access
Low– Minimal or no SSO usage

Derived / Integration-based
activityTimedoubleAvg. daily Activity durationRepresents the average time users spend on the application per day. Useful for measuring engagement and usage intensity.Automatically
firstSeenstringFirst SeenFirst time app detectedAutomatically
lastSeenstringLast SeenLast activity timestampAutomatically

SaaS Catalog Data Inheritance

This table presents the relationship between applications and the SaaS catalog by indicating which fields are automatically inherited and which are maintained manually. Applications recognized in the SaaS catalog benefit from predefined metadata, ensuring consistency and reducing manual effort, while non-catalog applications require user-defined inputs.

Properties Inherited from SaaS CatalogDescription
TitleName of the application
VendorApplication provider
CategoryApp classification
Privacy PolicyPolicy URL
Terms of ServicesLegal terms URL
Sensitive DataIndicates whether the application handles sensitive or personally identifiable information (PII).
AI Productivity ToolIdentifies AI-based tools
Data ClassificationDefines the type and sensitivity level of data handled by the application
Business Capability IdsRepresents the unique identifiers of the business capabilities associated with the application. These IDs are used to map the application to specific organizational functions (e.g., Finance, HR, Marketing)
SaaS MetaContains metadata provided by the SaaS catalog for recognized applications. This may include predefined attributes such as vendor, category, hosting type, compliance information, and other standardized details used to enrich application data.
Application IdA unique identifier assigned to each application within the system. It is primarily used for API operations, data retrieval, and internal referencing.
Application LogoRepresents the visual icon or logo of the application displayed in the UI. This helps users quickly identify applications. Logos may be automatically fetched from the SaaS catalog or manually uploaded for custom applications.

Example: Calling via Postman

  1. Open Postman and create a new POST request.
  2. Set the Request URL to:
https://api-prod-eu-central-1.inappnavi.com/api/public/v1/{{tenantId}}/discovery/discoveryApps
  1. Compose the Body:
    1. In the Body tab, choose raw and then JSON.
    2. Enter the required parameters in the request body.
{
  "queryParams": {
    "page": 1,
    "itemsPerPage": 25,
    "fromDate": "2024-01-21 00:00:00",
    "toDate": "2025-01-21 00:00:00",
    "timeRange": "VIEW_CUSTOM_DAYS",
    "displayedColumns": ["url", "title", "vendor"]
  }
}
  1. Authentication Bearer token

    1. Acquire Authentication Token click
{
    "ClientId": "example-client-id",
    "ClientSecret": "exampleClientSecret"
}
  1. Send the Request:
  2. Click Send.
  3. If everything is correct, you should receive a 200 OK response with a JSON payload containing the discovered apps data.

Response Behavior:

  • The result array contains objects with only the requested columns.
  • Each object inside result includes only the columns requested in the API query.
  • The structure of each object may vary depending on the requested fields.
  • errorMessage will be null if the request is successful; otherwise, it will contain error details.
  • metaData provides pagination information such as current page and items per page.

Example Response:


{
  "result": [
    {
      "title": "Example App",
      "url": "https://example.com",
      "vendor": "Example Vendor"
    }
  ],
  "errorMessage": null,
  "metaData": {
    "page": 1,
    "itemsPerPage": 25
  }
}

What’s Next