info
This app connector is in a Beta state.
App details
This endpoint fetches detailed information about a particular app that is not provided as part of the App summaries endpoint response.
Additional details include Instances, Activity, Contract, Fiscal Spend, Compliance, and SSO Protocols.
Updated: Feb 12, 2025
Note: Please refer to release notes to check for changes in API. You can use the navigation sidebar on the left to access "Archived" versions of this page. Previous version here.
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/v3/apps/:applicationId |
Required Scope |
https://api.productiv.com/apps.read |
Parameter |
Value |
Content-Type |
application/json |
Authorization |
Bearer access_token |
Path params
Parameter |
Description |
applicationId |
applicationId is the unique identifier for the App for which details are being requested. These IDs are provided in the App List endpoint. |
Response
If the request is successful, a JSON response will be returned. This JSON object will contain the following parameters:
Parameter |
Datatype |
Description |
App |
object |
AppDetails object (see definition below) |
AsOfDate |
string |
The date as of which information is being provided, in YYYY-MM-DD format |
FiscalDate |
object |
FiscalDate object (see definition below) |
FiscalDateRange |
object |
FiscalDateRange object (see definition below) |
ResponseTimeMs |
number |
Time taken by the server to process the request in milliseconds |
Example response
{
"AsOfDate": "2022-07-01",
"FiscalDate": {
"FiscalYear": "2022",
"AsOfMonth": "06"
},
"FiscalDateRange": {
"Start": "2022-01-01",
"End": "2022-06-30"
},
"App": {
"ApplicationId": "productiv",
"ApplicationName": "Productiv",
"AppStatus": "Approved",
"Labels": [],
"CustomFields": [
{
"FieldName": "field name",
"FieldValue": ["value1", "value 2"],
"FieldType": "multiselect"
"FieldKey": "dlk2fghaeoi342"
}
],
"Category": "IT Management",
"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.",
"DataSources": ["Engagement", "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",
"DiscoveryDate": "2021-01-01",
"LastActivityDate": "2022-01-01",
"FirstActivityDate": "2020-01-01",
"IsConnectorAvailable": false,
"Activity": {
"Engagement": {
"Summary": {
"ProvisionedUsers": 100,
"RollingWindow30": {
"EngagedUsers": 70,
"NotEngagedUsers": 30,
"PercentageActive": 70
}
},
},
"Managed SSO": {
"Summary": {
"UsersWithSsoAccess": 100,
"RollingWindow30": {
"UsersLoggingIn": 70
}
}
},
"Unmanaged SSO": {
"Summary": {
"RollingWindow30": {
"FirstAuthenticatedUsers": 70
}
}
}
},
"Instances": [
{
"InstanceId": "productiv",
"InstanceName": "Productiv",
"DiscoveryDate": "2021-01-01",
"LastActivityDate": "2022-01-01",
"FirstActivityDate": "2020-01-01",
"DataSources": ["Engagement"],
"Activity": {
"Engagement": {
"Summary": {
"ProvisionedUsers": 100,
"RollingWindow30": {
"EngagedUsers": 70,
"NotEngagedUsers": 30,
"PercentageActive": 70
}
},
"LicenseTier": {
"License1": {
"ProvisionedUsers": 100,
"RollingWindow30": {
"EngagedUsers": 70,
"NotEngagedUsers": 30,
"PercentageActive": 70
}
}
}
}
},
"Contract": {},
"SSOProtocols": {
"DetectedProtocols": ["SAML 2.0"],
"DataSources": ["Okta"]
},
"AppContacts": { "NumContacts": 0 }
},
{
"InstanceId": "okta:productiv",
"InstanceName": "Productiv",
"ExternalSSOAppId": "0q34jrhqiuh6623rn",
"DiscoveryDate": "2021-01-01",
"LastActivityDate": "2022-01-01",
"FirstActivityDate": "2020-01-01",
"DataSources": ["Managed SSO"],
"Activity": {
"Managed SSO": {
"Summary": {
"UsersWithSsoAccess": 100,
"RollingWindow30": {
"UsersLoggingIn": 70
}
}
}
},
"Contract": {},
"SSOProtocols": {
"DetectedProtocols": ["SAML 2.0"],
"DataSources": ["Okta"]
},
"AppContacts": { "NumContacts": 0 }
},
{
"InstanceId": "gsuiteSSO:productiv",
"InstanceName": "Productiv (Google Social Login)",
"DiscoveryDate": "2020-01-01",
"LastActivityDate": "2022-01-01",
"FirstActivityDate": "2020-01-01",
"DataSources": ["Unmanaged SSO"],
"Activity": {
"Unmanaged SSO": {
"Summary": {
"RollingWindow30": {
"FirstAuthenticatedUsers": 70
}
}
}
},
"Contract": {},
"SSOProtocols": {
"DetectedProtocols": ["Google Social Login"],
"DataSources": ["Google Workspace"]
},
"AppContacts": { "NumContacts": 0 }
}
],
"Contract": {
"Summary": {
"StartDate": "2021-01-01",
"EndDate": "2023-01-01",
"AutoRenews": false,
"LicensesPurchased": 100,
"TermMonths": 24,
"AnnualAmount": {
"Amount": 8000,
"Currency": "USD"
},
"TermAmount": {
"Amount": 16000,
"Currency": "USD"
}
}
},
"FiscalSpend": {
"TotalSpend": {
"Amount": 1000,
"Currency": "USD"
},
"ExpenseManagementSpend": {
"Amount": 500,
"Currency": "USD"
},
"ErpSpend": {
"Amount": 500,
"Currency": "USD"
}
},
"PreviousYearFiscalSpend": {
"TotalSpend": {
"Amount": 980,
"Currency": "USD"
},
"ExpenseManagementSpend": {
"Amount": 510,
"Currency": "USD"
},
"ErpSpend": {
"Amount": 210,
"Currency": "USD"
}
},
"Compliance": {
"ISO27001": "COMPLIANT",
"SOC2": "COMPLIANT",
"GDPR": "COMPLIANT",
"FedRAMP": "COMPLIANT",
"Fisma": "NON_COMPLIANT",
"Swiss-U.S. Privacy Shield": "UNKNOWN",
"CCPA": "COMPLIANT"
},
"SSOProtocols": {
"DetectedProtocols": ["SAML 2.0"],
"SupportedProtocols": ["SAML 2.0", "SAML 1.1"],
"DataSources": ["Okta"]
}
},
"ResponseTimeMs": 2000
}
Objects
This section lists the objects that can be returned in a successful query and describes their properties.
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 CustomField 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 |
ProvisionedUsers |
number |
Total number of users provisioned for the app or instance |
UsersWithSsoAccess |
number |
Total number of users with SSO Access 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 |
EngagedUsers |
number |
Number of users who have engaged with the app/instance, detected in the specified rolling window |
NotEngagedUsers |
number |
Number of users who are not engaged, detected in the specified rolling window |
PercentageActive |
number |
Percentage of engaged users i.e. EngagedUsers / ProvisionedUsers. If there are 0 provisioned licenses this stat is null |
UsersLoggingIn |
number |
Number of users who have logged in via SSO, detected in the specified rolling window |
FirstAuthenticatedUsers |
number |
Number of users detected who have authenticated for the first time, detected in the specified rolling window |
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 |
FiscalDate
Parameter |
Datatype |
Description |
FiscalYear |
string |
Fiscal year for which spend data is being returned |
AsOfMonth |
string |
Month (in 'MM' format) till which data for the fiscal year above is being returned |
FiscalDateRange
Parameter |
Datatype |
Description |
Start |
string |
Fiscal spend data start date, in YYYY-MM-DD format |
End |
string |
Fiscal spend data end date, in YYYY-MM-DD format |
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 |