Risk Intelligence API: Add & Request Apps

Introduction
Add Apps (JSON)
Add Apps (CSV)
Request Apps

Introduction

The NowSecure Platform API enables you to add and request apps for use with Risk Intelligence. Use these endpoints to Integrate add app functions directly into your organization’s custom workflows. 

Note: A Full repository of all Platform API endpoints for Risk Intelligence can be found on our OpenAPI Spec Swagger Hub

You will first need a NowSecure API bearer token to authenticate to the NowSecure Platform API. 

Add Apps (JSON)

Use this endpoint to add apps to NowSecure Risk Intelligence using both the Apple App Store and Google Play Store via a JSON file.

POST https://api.nowsecure.com/v2/intelligence/apps

curl -H 'Content-Type: application/json' -H "Authorization: Bearer ${API_TOKEN}" -X POST https://api.nowsecure.com/v2/risk-intelligence/apps

Query Fields

Field Description
platform The platform of the app.
applicationID The applicationID.
dryrun Use this field to calculate license usage without applying/committing changes.

Response Fields

Field Description
platform "ios" or "android"
applicationID Application ID
appIdentifier App ID or Bundle ID
packageName App store package name
reason The reason an app could not be added

SummaryInfo

Field Description
totalLicenses The total number of Risk Intelligence licenses for the organization
totalConsumedLicenses The number of licenses consumed after a request, including the newly added apps.
totalAccepted The number of apps added to Risk Intelligence.
totalUnavailable The number of apps that could not be added.
totalPending The number of apps queued for analysis.

Add Apps (CSV)

Use this endpoint to add apps to NowSecure Risk Intelligence using both the Apple App Store and Google Play Store via a CSV file.

POST https://api.nowsecure.com/v2/intelligence/apps/csv

curl -H 'Content-Type: application/json' -H "Authorization: Bearer ${API_TOKEN}" -X POST https://api.nowsecure.com/v2/risk-intelligence/apps/csv

Query Fields

Field Description
appSubscriptionCsv The CSV file containing a list of all apps to add to Risk Intelligence, defined by their platform and application ID pairs.
dryrun Use this field to calculate license usage without applying/committing changes.

Response Fields

The query's response groups apps into accepted, previouslyAccepted, pending, unavailable, and UnknownFormat, plus an optional summaryInfo block. The fields within each app entry are: 

Field Description
platform "ios" or "android"
applicationID Application ID
appIdentifier App ID or Bundle ID
packageName App store package name
reason The reason an app could not be added

SummaryInfo

Field Description
totalLicenses The total number of Risk Intelligence licenses for the organization
totalConsumedLicenses The number of licenses consumed after a request, including the newly added apps.
totalAccepted The number of apps added to Risk Intelligence.
totalUnavailable The number of apps that could not be added.
totalPending The number of apps queued for analysis.

Request App

If there is an application you would like to add to your Risk Intelligence Portfolio that returns as unavailable, you may submit a request for NowSecure to have the app added.

Use this endpoint to submit an app for request and subscribe to a Risk Intelligence app. 

POST https://api.nowsecure.com/v2/intelligence/apps/request-app

curl -H 'Content-Type: application/json' -H "Authorization: Bearer ${API_TOKEN}" -X POST https://api.nowsecure.com/v2/risk-intelligence/request-app

Query Fields

Field Description
platform The platform of the app "ios" or "android." This field is required.
appIdentifier The app identifier, either the application ID or bundle Id. This field is required. 
dryrun When true, returns the result without persisting/committing any changes. Default: false
returnappInfo When true, includes the app info in the response. Default: false
returnlatestAssessment When true, includes the latest assessment data in the response when it is available. Default: false

Response Fields

Field Description
status Classification result (see values below).
platform The platform of the requested app.
applicationID The application ID of the requested app.
reason The reason an app could not be assessed.
appInfo The app's store metadata (object).
latestAssessmentRef The UUID reference of the latest assessment.
latestAssessment The latest assessment data (object).

status response values

Field Description
available Assessment data is available.
pending The app has been queued for analysis.
unsupported The app is currently not supported and cannot be assessed. Contact NowSecure Support for further assistance. 
notFound The requested app identifier could no be found. Contact NowSecure Support for further assistance.

appInfo object

Field Description
platform The platform of the app, "ios" or "android"
title The title of the app.
packageName The app store package name.
iconURL the URL of the app icon.

Example status Success Responses

available — Assessment Data Already Exists

The Platform organization is already subscribed or if NowSecure already has assessment data for the app. The organization is subscribed to it (unless dryrun is set to true), and a fulfilled request is recorded.

{
  "status": "available",
  "platform": "android",
  "applicationId": "com.example.app"
}

With returnAppInfo: true:

{
  "status": "available",
  "platform": "android",
  "applicationId": "com.example.app",
  "appInfo": {
    "platform": "android",
    "title": "My App",
    "packageName": "com.example.app",
    "iconUrl": "https://example.com/icon.png"
  }
}

pending — Queued For Analysis

No data is available yet. A pending request is recorded and the app is queued for analysis. No subscription is created. returnAppInfo works the same as above.

{
  "status": "pending",
  "platform": "ios",
  "applicationId": "com.example.app"
}

unsupported — cannot be assessed

The app is on the forbidden list or failed the assessment precheck. A reason is always included, and an unfulfilled request is recorded.

{
  "status": "unsupported",
  "platform": "android",
  "applicationId": "com.example.app",
  "reason": "Binary unavailable"
}

Below are a list of potential reasons an app is unsupported. For more information see NowSecure Platform Unsupported Applications.

Cause Reason
Paid app This app requires payment prior to downloading, therefore automated analysis can't be performed. Please contact Support with questions.
Sticker / companion app This app requires another app to function, therefore automated analysis can't be performed. Please contact Support with questions.
Removed from store This app is no longer available on the app store, therefore automated analysis can't be performed. Please contact Support with questions.
Forbidden-list entry The stored reason description (e.g. Binary unavailable)

notFound — identifier didn't resolve

The identifier matched no app in the store catalog — usually a wrong store ID, bundle ID, or package name. Nothing persisted.

{
  "status": "notFound",
  "platform": "ios",
  "applicationId": "com.doesnotexist.app",
  "reason": "Application not found."
}

Comments

0 comments

Article is closed for comments.