info
This app connector is in a Beta state.
App summaries
This endpoint enables you to query the entire list of apps that are a part of your company's portfolio. The response returned provides a
small set of app attributes such as ApplicationId, AppStatus, and VendorName.
If you want more detailed information about a particular app, use the App details endpoint with an ApplicationId
provided from this endoint.
Prerequisites
- Querying the developer APIs involves sending an access_token as part of the Authorization header. For instructions on how to generate an access token, see Authorization.
Endpoint
GET |
https://public-api.productiv.com/pull/v1/apps |
Required Scope |
https://api.productiv.com/apps.read |
Parameter |
Value |
Content-Type |
application/json |
Authorization |
Bearer access_token |
Query params
Parameter |
Description |
includeInactive |
Indicates whether inactive apps should be returned in the response |
verbose |
Indicates whether AppDetails objects with all app attributes should be returned instead of AppSummary objects (see definitions below) in the response (example app details object) |
Response
If the request is successful, a JSON response is returned. The JSON object contains the following parameters:
Parameter |
Datatype |
Description |
Apps |
array |
List of AppSummary objects (see definition below). If the query parameter verbose is set to true , a list of AppDetails objects (see definition below) is returned instead. |
AsOfDate |
string |
The date as of which information is being provided, in YYYY-MM-DD format. This is the latest date for which we have complete information for the set of apps in your portfolio. |
ResponseTimeMs |
number |
Time taken by the server to process the request in milliseconds |
Example response
{
"AsOfDate": "2022-07-01",
"Apps": [
{
"ApplicationId": "productiv",
"ApplicationName": "Productiv",
"AppStatus": "Approved",
"Capabilities": ["SaaS Management", "Data & Analytics"],
"Description": "Data-driven enterprise management platform which provides real time data analytics, insights, and workflows for apps across the enterprise.",
"DiscoveryDate": "2021-01-01",
"LastActivityDate": "2022-01-01",
"FirstActivityDate": "2020-01-01",
"Labels": [],
"CustomFields": [
{
"FieldName": "field name",
"FieldValue": ["value1", "value 2"],
"FieldType": "multiselect"
"FieldKey": "dlk2fghaeoi342"
}
],
"Category": "IT Management",
"DataSources": ["Managed SSO", "Contract"],
"AppContacts": {
"NumContacts": 3,
"Finance_Contacts": [
{ "Name": "finance owner", "Email": "finance@domain.com" },
{ "Name": "finance owner 2", "Email": "finance2@domain.com" }
],
"Legal_Contacts": [
{ "Name": "legal owner", "Email": "legal@domain.com" }
]
},
"IsDiscovered": false,
"VendorName": "Productiv"
},
{
"ApplicationId": "app",
"ApplicationName": "App",
"AppStatus": "Not approved",
"Labels": ["label 1", "label 2"],
"CustomFields": [
{
"FieldName": "field name",
"FieldValue": "some text",
"FieldType": "text"
"FieldKey": "lgp5s4z4m0pd"
}
],
"Category": "Analytics",
"DataSources": ["Unmanaged SSO"],
"AppContacts": {
"NumContacts": 0
},
"IsDiscovered": true,
"VendorName": "Vendor"
}
],
"ResponseTimeMs": 2000
}
Objects
This section lists the objects that can be returned in a successful query, and describes their properties.
AppSummary
The AppSummary object is returned in the App List API response. It represents a single application, and contains a limited set of attributes for that app. These attributes are described below:
Parameter |
Datatype |
Description |
ApplicationId |
string |
Unique identifier for the application |
ApplicationName |
string |
Display name for the application |
Category |
string |
Productiv's categorization for the application |
Capabilities |
array |
List of string capabilities of the application |
Description |
string |
Brief description of the application |
DiscoveryDate |
string |
The date we discovered this application, in YYYY-MM-DD format |
LastActivityDate |
string |
The latest date we have data for this application, in YYYY-MM-DD format |
FirstActivityDate |
string |
The first date we have data for this application, in YYYY-MM-DD format |
IsDiscovered |
boolean |
Whether or not the application is a discovered app. An application is discovered if it's not under a contract, is not connected directly to Productiv and is not under managed SSO. |
AppStatus |
string |
Status of the app as configured in the product. Can be one of: "Approved", "Not approved", "In review", "None", "". |
Labels |
array |
List of string labels assigned to the app as configured in the product |
CustomFields |
array |
List of objects representing custom fields as configured in the product. See the CustomFields definition below |
DataSources |
array |
List of string datasources. Can be one or more from: ["Engagement", "Managed SSO", "Unmanaged SSO", "Expenses", "Payments", "Contract", "CASB"] |
VendorName |
string |
Name of the app vendor |
IsInactive |
boolean |
Whether or not the application is inactive |
AppDetails
The AppDetails object is returned in the App Details API response. It represents a single application, and contains a larger set of attributes than provided in the AppSummary object. These attributes are described below:
Parameter |
Datatype |
Description |
ApplicationId |
string |
Unique identifier for the application |
ApplicationName |
string |
Display name for the application |
Category |
string |
Productiv's categorization for the application |
Capabilities |
array |
List of string capabilities of the application |
Description |
string |
Brief description of the application |
IsDiscovered |
boolean |
Whether or not the application is a discovered app. An application is discovered if it's not under a contract, is not connected directly to Productiv and is not under managed SSO. |
AppStatus |
string |
Status of the app as configured in the product. Can be one of: "Approved", "Not approved", "In review", "None", "" |
Labels |
array |
List of string labels assigned to the app as configured in the product |
CustomFields |
array |
List of objects representing custom fields as configured in the product. See the CustomFields definition below |
DataSources |
array |
List of string datasources. Can be one or more from: ["Engagement", "Managed SSO", "Unmanaged SSO", "Expenses", "Payments", "Contract", "CASB"] |
VendorName |
string |
Name of the app vendor |
DiscoveryDate |
string |
The date we discovered this application, in YYYY-MM-DD format |
LastActivityDate |
string |
The latest date we have data for this application, in YYYY-MM-DD format |
FirstActivityDate |
string |
The first date we have data for this application, in YYYY-MM-DD format |
IsConnectorAvailable |
boolean |
Whether or not the application can be connected as an engagement instance in Productiv |
Instances |
array |
List of Instance objects, defined below |
Activity |
object |
See Activity object defined below. Note that if an app has multiple available datasources, the stats will be returned for the "best" available source, and Engagement > Managed SSO > Unmanaged SSO |
Contract |
object |
See Contract object defined below |
FiscalSpend |
object |
See FiscalSpend object defined below |
PreviousYearFiscalSpend |
object |
See PreviousYearFiscalSpend object defined below |
Compliance |
object |
See Compliance object defined below |
SSOProtocols |
object |
See SSOProtocols object defined below |
AppContacts |
object |
See AppContacts object defined below |
IsInactive |
boolean |
Whether or not the application is inactive |
Instance
Parameter |
Datatype |
Description |
InstanceId |
string |
Unique identifier for the application instance |
InstanceName |
string |
Display name for the application instance |
ExternalSSOAppId |
string |
Identifier of the app instance in the external SSO platform (if this instance is discovered through an SSO platform; currently only supported in context of Okta) |
DataSources |
array |
List of string datasources. Can be one or more from: ["Engagement", "Managed SSO", "Unmanaged SSO", "Contract", "CASB"] |
DiscoveryDate |
string |
The earliest date we have data for this instance, in YYYY-MM-DD format |
LastActivityDate |
string |
The latest date we have data for this instance, in YYYY-MM-DD format |
FirstActivityDate |
string |
The first date we have data for this application, in YYYY-MM-DD format |
Activity |
object |
See ActivityStats object defined below |
Contract |
object |
See Contract object defined below |
SSOProtocols |
object |
See SSOProtocols object defined below |
AppContacts |
object |
See AppContacts object defined below |
Activity
Parameter |
Datatype |
Description |
[DataSource] |
string |
See ActivityStats object defined below. Note that the parameter can be one of ["Engagement", "Managed SSO", "Unmanaged SSO"] depending on the available sources for the application |
ActivityStats
Parameter |
Datatype |
Description |
Summary |
object |
Activity stats across all licenses. See ActivityStatsCounts object defined below. |
LicenseTier |
object |
Activity stats split by license tier. This is only defined for the Engagement datasource type. |
CustomField
Property |
Datatype |
Description |
FieldName |
string |
Name of the custom field |
FieldValue |
FieldValue |
Value of the custom field |
FieldType |
string |
Type of the custom field |
FieldKey |
string |
The key that uniquely identifies the custom field |
FieldValue
Custom fields can be one of the following types: singleselect, multiselect, text, number, date, currency, hyperlink. The datatype for value above depends on the type of custom field you are trying to edit.
Type |
Datatype |
Description |
singleselect |
string |
The value must be one of the allowed values as configured in the product for the custom field. |
multiselect |
array |
List of strings. Each value must be one of the allowed values for the field as configured in the product for the custom field. |
text |
string |
Free-form text |
number |
number |
Number |
date |
string |
YYYY-MM-DD format |
currency |
object |
See Currency object below |
hyperlink |
object |
See Hyperlink object below |
Currency
Property |
Datatype |
Description |
currencyCode |
string |
ISO 4217 currency code |
amount |
number |
Amount |
Hyperlink
Property |
Datatype |
Description |
label |
string |
Label for the hyperlink |
url |
string |
URL for the hyperlink |
LicenseTier
Parameter |
Datatype |
Description |
[LicenseTier] |
string |
See ActivityStatsCounts object defined below. Note that the parameter is the name of the license tier. |
ActivityStatsCounts
Parameter |
Datatype |
Description |
ProvisionedLicenses |
number |
Total number of licenses provisioned for the app or instance |
RollingWindow30 |
object |
See RollingWindowActivity object defined below. The stats under this key use the 30-day rolling window |
RollingWindowActivity
Parameter |
Datatype |
Description |
EngagedLicenses |
number |
Number of licenses with activity detected in the specified rolling window |
InactiveLicenses |
number |
Number of licenses with no activity detected in the specified rolling window |
PercentageActive |
number |
Percentage of active users i.e. EngagedLicenses / ProvisionedLicenses. If there are 0 provisioned licenses this stat is null |
Contract
Parameter |
Datatype |
Description |
Summary |
object |
ContractSummary object |
ContractSummary
Parameter |
Datatype |
Description |
StartDate |
string |
Contract start date, in YYYY-MM-DD format |
EndDate |
string |
Contract end date, in YYYY-MM-DD format |
AutoRenews |
boolean |
Whether the contract renews automatically |
LicensesPurchased |
number |
Number of licenses purchased under the contract |
TermMonths |
number |
Contract term in months |
AnnualAmount |
object |
Annualized cost of the contract, the object contains a number amount and a string currency attribute |
TermAmount |
object |
Total cost of the contract, the object contains a number amount and a string currency attribute |
FiscalSpend
Parameter |
Datatype |
Description |
TotalSpend |
object |
Total app spend including expense management and erp spend, see Cost object below |
ExpenseManagementSpend |
object |
Total expense management spend, see Cost object below |
ErpSpend |
object |
Total enterprise resource planning (ERP) app spend, see Cost object below |
PreviousYearFiscalSpend
Parameter |
Datatype |
Description |
TotalSpend |
object |
Total app spend including expense management and erp spend for previous year |
ExpenseManagementSpend |
object |
Total expense management spend for previous year. |
ErpSpend |
object |
Total enterprise resource planning (ERP) app spend for previous year |
Cost
Parameter |
Datatype |
Description |
Amount |
number |
Can represent contract cost, past 12 month spend etc. |
Currency |
string |
Currency code e.g. USD, GBP etc. |
Compliance
Parameter |
Datatype |
Description |
ISO27001 |
string |
One of "COMPLIANT", "NON_COMPLIANT" or "UNKNOWN" |
SOC2 |
string |
One of "COMPLIANT", "NON_COMPLIANT" or "UNKNOWN" |
GDPR |
string |
One of "COMPLIANT", "NON_COMPLIANT" or "UNKNOWN" |
FedRAMP |
string |
One of "COMPLIANT", "NON_COMPLIANT" or "UNKNOWN" |
Fisma |
string |
One of "COMPLIANT", "NON_COMPLIANT" or "UNKNOWN" |
Swiss-U.S. Privacy Shield |
string |
One of "COMPLIANT", "NON_COMPLIANT" or "UNKNOWN" |
CCPA |
string |
One of "COMPLIANT", "NON_COMPLIANT" or "UNKNOWN" |
SSOProtocols
Parameter |
Datatype |
Description |
DetectedProtocols |
array |
List of string s representing sso protocols detected on the app |
SupportedProtocols |
array |
List of string s representing sso protocols supported on the app. Not defined for application instances |
DataSources |
array |
List of string s representing display names of the SSO providers through which SSO data was detected |
Parameter |
Datatype |
Description |
NumContacts |
number |
Total number of app owners for the app across all types |
Finance_Contacts |
array |
List of AppOwner object s representing finance app owners. Key absent if there are no owners of this type |
Security_Contacts |
array |
List of AppOwner object s representing security app owners. Key absent if there are no owners of this type |
IT_Contacts |
array |
List of AppOwner object s representing IT app owners. Key absent if there are no owners of this type |
Legal_Contacts |
array |
List of AppOwner object s representing legal app owners. Key absent if there are no owners of this type |
Functional_Contacts |
array |
List of AppOwner object s representing functional app owners. Key absent if there are no owners of this type |
Vendor_Contacts |
array |
List of AppOwner object s representing vendor app owners. Key absent if there are no owners of this type |
Procurement_Contacts |
array |
List of AppOwner object s representing procurement app owners. Key absent if there are no owners of this type |
Other_Contacts |
array |
List of AppOwner object s representing other app owners. Key absent if there are no owners of this type |
AppOwner
Parameter |
Datatype |
Description |
Name |
string |
App owner name |
Email |
string |
App owner email |