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{
"accepted": [
{
"platform": "string",
"appIdentifier": "string",
"applicationId": "string"
}
],
"unavailable": [
{
"platform": "string",
"applicationId": "string",
"appIdentifier": "string",
"packageName": "string",
"reason": "string"
}
],
"previouslyAccepted": [
{
"platform": "string",
"appIdentifier": "string",
"applicationId": "string"
}
],
"unknownFormat": [
{
"platform": "string",
"applicationId": "string",
"appIdentifier": "string",
"packageName": "string",
"reason": "string"
}
],
"summaryInfo": {
"totalLicenses": 0,
"totalConsumedLicenses": 0,
"totalAccepted": 0,
"totalUnavailable": 0
}
}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{
"accepted": [
{
"platform": "string",
"appIdentifier": "string",
"applicationId": "string"
}
],
"unavailable": [
{
"platform": "string",
"applicationId": "string",
"appIdentifier": "string",
"packageName": "string",
"reason": "string"
}
],
"previouslyAccepted": [
{
"platform": "string",
"appIdentifier": "string",
"applicationId": "string"
}
],
"unknownFormat": [
{
"platform": "string",
"applicationId": "string",
"appIdentifier": "string",
"packageName": "string",
"reason": "string"
}
],
"summaryInfo": {
"totalLicenses": 0,
"totalConsumedLicenses": 0,
"totalAccepted": 0,
"totalUnavailable": 0
}
}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{
"status": "pending",
"platform": "ios",
"applicationId": "com.example.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
Article is closed for comments.