PingOne DaVinci

PingOne DaVinci is an orchestration platform that lets you create flows to guide users through authorization and authentication activities.

In DaVinci, a flow is a set of paths that define a user's journey through a given IAM process, such as registration or authentication, using a set of logically linked nodes. These nodes can prompt the user for input or take an action on the backend, and these actions are determined by logical decision operators that sit between the nodes, enabling you to control how a user progresses based on the information they provide, existing user information, or other parameters. After you create a flow, you add it to an application and create a flow policy to control how and when the flow gets used.

This document describes the DaVinci Admin APIs to configure flows, flow versions, variables, applications, connectors, and connector instances. For information about executing DaVinci flows using the PingOne authorize endpoint, refer to DaVinci Flow Executions.

DaVinci Admin APIs

The PingOne DaVinci Admin APIs provide access to DaVinci operations through the PingOne API resource server. These services are called using the api.pingone.com domain (or api.pingone.ca, api.pingone.eu, api.pingone.com.au, api.pingone.sg, and api.pingone.asia for other geographic regions) to manage DaVinci workflow configuration.

At this time, the following services are supported on the PingOne API resource server:

DaVinci Admin Variables

PingOne DaVinci Admin Variables service provides endpoints to create, read, update, and delete DaVinci variables. Variables are values that can be read and modified during a flow. Every variable has a context, which determines how widely its value is shared.

The options for the variable's context types are:

  • flow

    The variable is tied to a specific flow and has a single, persistent value until that value is changed.

  • flowInstance

    The variable can be used in multiple flows.

    • If the variable's value is set within a flow, the variable instance in that flow gets the value set by the flow's execution.

    • If the variable's value is not set within a flow, the variable instance in that flow inherits the value.

  • user

    The variable has a separate value for each user. If you use a variable with this context in a flow, the user must be identified.

  • company

    The variable has a single value for the company. This value is used in all flows and for all users.

DaVinci Admin variable data model properties

Property Type? Required? Mutable? Description
createdAt Date N/A Read only The time when the variable was created.
context String Required Immutable The context or type of the variable. Options are flow, flowInstance, user, or company.
dataType String Required Mutable Data type of the variable. Can be STRING, BOOLEAN, NUMBER, SECRET, or OBJECT. The context property must be set to company to use SECRET as the value for the dataType property.
displayName String Optional Mutable A human-readable variable name set in the request.
environment Object N/A Read only The DaVinci company ID (environment ID) object.
environment.id String N/A Read only The DaVinci company ID, which is the PingOne environment ID.
flow Object Immutable Optional The flow object specifying the DaVinci flow associated with the variable. This is a required property when context is set to flow. It is ignored when context is set to any other option.
flow.id String Immutable Optional The flow ID of the DaVinci flow associated with the variable. This is a required property when context is set to flow. It is ignored when context is set to any other option.
id String N/A Read only The variable ID.
max Integer Optional Mutable The maximum value of the variable. The default value is 2000.
min Integer Optional Mutable The minimum value of the variable. The default value is 0.
mutable Boolean Optional Mutable Specifies whether the variable is mutable, which allows nodes within a flow to change the value of the variable. If the value property is null, this property is required.
name String Required Immutable The variable name.
updatedAt Date N/A Read only The time when the variable was modified.
value String/Number/Boolean/Object Optional Mutable An internally stored value that is part of a HashMap/Object. If the mutable property is set to false, this property is required. If mutable is not set on the request, it defaults to true.

Limiting and filtering data

These SCIM operators can be applied to the following attributes:

  • eq (equals)

    Supports attributes of type STRING and BOOLEAN.

  • sw (starts with)

    Supports attributes of type STRING.

  • ew (ends with)

    Supports attributes of type STRING.

  • co (contains)

    Supports attributes of type STRING.

  • and (logical AND)

    Logical AND for building compound expressions in which both expressions are true.

  • or (logical OR)

    Logical OR for building compound expressions if either expression is true.

For information about paging and ordering the response for Read All DaVinci Variables, refer to Paging, ordering, and filtering collections.

Response codes

Code Message
200 Successful operation.
201 Successfully created.
204 Successfully removed. No content.
400 The request could not be completed.
401 You do not have access to this resource.
403 You do not have permissions or are not licensed to make this request.
404 The requested resource was not found.

Create DaVinci Variable


Read All DaVinci Variables


Read One DaVinci Variable


Update DaVinci Variable


Delete DaVinci Variable

DaVinci Admin Connectors

PingOne DaVinci Admin Connector service provides endpoints to read DaVinci connector resources. Connectors give DaVinci the ability to integrate third party technologies, HTML pages, and other tools to create a sign-on flow. They define the capabilities that you can use as nodes in a flow. For example, an HTTP connector provides the capability to present an HTML form to collect and submit user information or make REST API calls.

DaVinci admin connector data model properties

Property Type? Required? Mutable? Description
description String Optional Mutable The connector description.
environment Object N/A Read only The DaVinci company ID (environment ID) object.
environment.id String N/A Read only The DaVinci company ID, which is the PingOne environment ID.
id String N/A Read only The connector ID (for example, httpConnector).
metadata Object N/A Read only Represents the metadata information about the connector, such as type, color, and logo.
metadata.type String N/A Read only The type of connector. Options are core, ping, or service.
metadata.vendor String N/A Read only The ID of a vendor (for example,microsoft or amazon).
metadata.colors Object N/A Read only An object that specifies the colors on the canvas.
metadata.colors.canvas String N/A Read only A hexadecimal representation of the canvas color.
metadata.colors.canvasText String N/A Read only A hexadecimal representation of the canvas text color.
metadata.colors.dark String N/A Read only A hexadecimal representation of the shade of darkness.
metadata.logos String N/A Read only The image name of the connector logo file.
metadata.logos.canvas Object N/A Read only An object that specifies the canvas.
metadata.logos.imageFileName String N/A Read only The name of the connector logo image.
name String Required Mutable The connector name (for example, HTTP).
version String N/A Read only The version number of the connector.

DaVinci admin connectors details data model properties

Property Type? Required? Mutable? Description
accountConfigView Object[] Optional Mutable Represents the account configuration of the connector. For details, refer to Core connectors.
accountConfigView.componentViewSize String Optional Mutable The size of the configuration window.
accountConfigView.items Array Optional Mutable An array of configurable properties.
accountConfigView.items.propertyName String Optional Mutable The name of the configurable property.
accountConfigView.items.items Array Optional Mutable An array of sub-property names under the top level property.
accountConfigView.items.items.propertyName Array Optional Mutable The name of the sub-property under the top level property.
capabilities Object[] Optional Mutable A list of all connector capabilities and their input properties. For more information, refer to Core connectors.
createdAt Date N/A Read only The time when the connector was created.
credentialsView Object Optional Mutable Represents the credentials view of the connector.
credentialsView Object Optional Mutable The fields that will be part of the connector configuration specific to credentials.
credentialsView.items Array Optional Mutable An array of configurable properties.
credentialsView.items.propertyName String Optional Mutable The name of the property.
flowSections Object[] Optional Mutable Represents the flow section to which the connector can be categorized.
flowSections.name String Optional Mutable The name of the section being shown.
flowSections.value String Optional Mutable A pointer to the flow section name referenced by other sections in the manifest.
properties Object Optional Mutable A list of properties that will be used by the capabilities. For more information, refer to Core connectors.
sections Object[] Optional Mutable An array of sections shown in Connector Configuration. For more information, refer to Core connectors.

Response codes

Code Message
200 Successful operation.
201 Successfully created.
204 Successfully removed. No content.
400 The request could not be completed.
401 You do not have access to this resource.
403 You do not have permissions or are not licensed to make this request.
404 The requested resource was not found.

Read All DaVinci Connectors


Read One DaVinci Connector


Read DaVinci Connector Details

DaVinci Admin Connector Instances

PingOne DaVinci Admin Connector Instances service provides endpoints to create, read, update, and delete DaVinci connector instances. A DaVinci connector instance is one instance of a DaVinci connector (the connection configuration specifies a connector by name). You can then use the capabilities provided by the connector inside a flow, and launch the flow through an application.

This service also includes an action to clone connector instance resources.

DaVinci admin connector instances data model properties

Property Type? Required? Mutable? Description
connector Object Required Immutable The connector object.
connector.id String Required Immutable The connector object name (for example, httpConnector).
createdAt Date N/A Read only The time when the connection was created.
environment Object N/A Read only The DaVinci company ID (environment ID) object.
environment.id String N/A Read only The DaVinci company ID, which is the PingOne environment ID.
id String N/A Read only The connector instance resource ID.
name String Required Mutable The connector instance name.
properties Object Optional Mutable The configuration of the connector object. This field is not applicable to all connectors and is omitted in the output if empty or null. If the specified connector requires configuration, see the Connector configuration section of the connector documentation for the connector specified in connector.id.
updatedAt Date N/A Read only The time when the connector instance was updated.

Response codes

Code Message
200 Successful operation.
201 Successfully created.
204 Successfully removed. No content.
400 The request could not be completed.
401 You do not have access to this resource.
403 You do not have permissions or are not licensed to make this request.
404 The requested resource was not found.

Create DaVinci Connector Instance


Clone DaVinci Connector Instance


Read All DaVinci Connector Instances


Read One DaVinci Connector Instance


Update DaVinci Connector Instance


Delete DaVinci Connector Instance

DaVinci Admin Flows

DaVinci flows are constructed, logical paths that specify the workflow for the user's authorization and authentication experiences.

Flows consist of one or more nodes joined together. Each node performs a specific task, using one of the capabilities of your connectors. After completing the task, the flow determines which task to perform next until the flow is complete.

The PingOne DaVinci Admin Flows service provides endpoints to create, read, update, and delete DaVinci flows. This service also includes endpoints to enable, deploy, import, and clone flows.

DaVinci admin flow data model properties

Property Type? Required? Mutable? Description
color String Optional Mutable The color of the flow.
connectors Array[object] Optional Mutable An array of connectors that apply to the flow. An optional query parameter can toggle behavior, either the names of the connectors are returned or the connection objects themselves are returned as embedded objects.
connectors.id String Optional Mutable The connector ID (or IDs) associated with the flow. Example connectors are httpConnector, functionsConnector, pingOneVerifyConnector, and annotationConnector.
createdAt Time N/A Read only The timestamp when the flow was created.
currentVersion Integer Optional Immutable The saved version of the flow.
deployedAt Time N/A Read only The stamp when the flow was last deployed.
description String Optional Mutable The description of the flow.
enabled Boolean Optional Immutable The state of the flow. This can be stored as its own value in the database or it can reflect an existing flowStatus.
environment Object N/A Read only The DaVinci company ID (environment ID) object.
environment.id String N/A Read only The DaVinci company ID, which is the PingOne environment ID.
graphData Object Optional Mutable The graph-based representation of the flow depicted in the UI.
id String N/A Read only The flow ID.
inputSchema Array[object] Optional Mutable The flow input parameters in an array of JSONschema objects. If the trigger.type property is AUTHENTICATION, then the flow is a PingOne flow, and the input schema properties are listed in this table. If the trigger.type property is not AUTHENTICATION, then the flow is not a PingOne flow and the input schema properties are described in Input schema for non-PingOne flows data model properties.
inputSchema.propertyName String Required Mutable If inputSchema is set, the input schema property name is a required property.
inputSchema.description String Optional Mutable The description for an input schema property.
inputSchema.isExpanded Boolean Optional Mutable Specifies whether the input schema is expanded in the response.
inputSchema.preferredDataType String Required Mutable If inputSchema is set, the data type of the input schema property is required. Options are string, number, integer, boolean, array, and object.
inputSchema.preferredControlType String Optional Mutable The control type of the input schema property. Options are textField.
inputSchema.required Boolean Optional Mutable Specifies whether the input schema property is required for the flow.
name String Required Mutable The name of the flow.
outputSchema Object Optional Mutable The JSONschema output object of the flow.
outputSchema.output Object Optional Mutable The output object of the output schema.
outputSchema.output.type String Optional Mutable The output type.
outputSchema.output.additionalProperties Boolean Optional Mutable Specifies whether the output has additional properties.
outputSchema.output.properties Object Optional Mutable A JSON object that specifies the output schema's properties.
outputSchema.output.properties.{{propName}} Object Optional Mutable An output schema property definition.
outputSchema.output.properties.{{propName}}.type Object Optional Mutable An output schema property's data type.
publishedVersion Integer Optional Immutable The currently deployed version of the flow.
settings Object Optional Mutable Flow settings saved by the user. Refer to the Settings property data model table for details.
trigger Object Optional Mutable The flow trigger object.
trigger.type String Optional Mutable If the trigger type is set to AUTHENTICATION, you invoke the flow through PingOne OpenID Connect or SAML endpoints. The AUTHENTICATION trigger type overwrites the inputSchema values with the default authentication schema.
trigger.configuration Object Optional Mutable The configuration object for session reuse.
trigger.configuration.pwd Object Optional Mutable The configuration object for password session reuse.
trigger.configuration.pwd.enabled Boolean Optional Mutable Specifies whether this configuration must be used to check for existing sessions.
trigger.configuration.pwd.lastSignOn Integer Optional Mutable An integer that specifies the duration (in seconds) that an active session can be reused.
trigger.configuration.mfa Object Optional Mutable The configuration object for MFA session reuse.
trigger.configuration.mfa.enabled Boolean Optional Mutable Specifies whether this configuration must be used to check for existing sessions.
trigger.configuration.mfa.lastSignOn Integer Optional Mutable An integer that specifies the duration (in seconds) that an active session can be reused.
updatedAt Date N/A Read only The timestamp when the flow was updated or saved.

Settings property data model

The following table lists the supported flow settings properties that can be used in the settings property.

Property Type? Required? Mutable? Description
csp String Optional Mutable Content Security Policy content to which a Content-Security-Policy meta tag will be added. If you use a custom Javascript flow player, it is required.
css String Optional Mutable The CSS styling rules to be applied to the flow version.
cssLinks Array Optional Mutable A list of URL locations of CSS files to apply to the flow version.
customErrorScreenBrandLogoUrl String Optional Mutable The URL of the logo to use for the error page, such as "https://example.com/logo.png".
customErrorShowFooter Boolean Optional Mutable Show footer in the error screen.
customFaviconLink String Optional Mutable The URL of the favicon image to use for the page. This image is displayed in the title bar of the browser and in saved bookmarks.
customLogoUrlSelection String Optional Mutable The URL location of the logo to show on error pages.
customTitle String Optional Mutable The title of the page. This title is displayed in the title bar of the browser and used for the page title in search engine results.
doNotSubstituteUnreplacedFields Boolean Optional Mutable By default, unreplaced parameterized fields will be substituted with an empty string. This parameter overrides that behavior if set to true.
flowHttpTimeoutInSeconds Number Optional Mutable Timeout period for every node's execution time. A response must be returned by a node before this timeout. The default value is 15 seconds. If set to 0, the default timeout value is used.
flowTimeoutInSeconds Number Optional Mutable The period after which a particular flow execution becomes inactive. The default value is 300 seconds. If set to 0, the default timeout value is used.
intermediateLoadingScreenCss String Optional Mutable The CSS rules to use for the intermediate page. This setting applies only when the show intermediate page setting is enabled (useIntermediateLoadingScreen).
intermediateLoadingScreenHtml String Optional Mutable The HTML content of the intermediate page. Applies only when the show intermediate page is enabled (useIntermediateLoadingScreen).
jsLinks Array Optional Mutable The location of JavaScript files to apply to the flow.
logLevel String Optional Mutable The log level for flow analytics. Options are None, Info, or Debug.
pingOneFlow Boolean Optional Mutable PingOne runs this flow for OIDC or SAML authentication. When a flow is invoked, PingOne sends input parameters to be made available for any node in the flow.
requireAuthenticationToInitiate Boolean Optional Mutable Flow invocation via OpenID requires authentication. Use the /sdktoken endpoint to retrieve the accessToken value, which can be sent in the query parameter &accessToken=<accessToken>.
scrubSensitiveInfo Boolean Optional Mutable Remove sensitive information from analytics.
sensitiveInfoFields Array Optional Mutable These fields will be masked with ****** in Flow analytics.
useCsp Boolean Optional Mutable Enable and add a content security policy if you are adding additional scripts.
useCustomCss Boolean Optional Mutable When enabled, DaVinci uses the CSS rules in the custom CSS field.
useCustomScript Boolean Optional Mutable When enabled, DaVinci uses the JavaScript files in the JavaScript files field.
useIntermediateLoadingScreen Boolean Optional Mutable When enabled, DaVinci shows a custom user-facing page between each node in the flow.

Input schema for non-PingOne flows data model properties

Property Type? Required? Mutable? Description
inputSchema.propertyName String Required Mutable An input schema property name.
inputSchema.description String Optional Mutable The description for an input schema property.
inputSchema.isExpanded Boolean Optional Mutable Specifies whether the input schema is expanded in the response.
inputSchema.preferredDataType String Required Mutable The data type of the input schema property. Options are string, number, integer, boolean, array, and object.
inputSchema.preferredControlType String Optional Mutable The control type of the input schema property. Options are textField.
inputSchema.required Boolean Optional Mutable Specifies whether the input schema property is required for the flow.

Limiting and filtering data

You can limit the number of results returned on the Read DaVinci Flows and Read One DaVinci Flow requests with the attributes parameter. This parameter filters the response data returned by the request. The query accepts top-level DaVinci admin flow data model properties as a list of comma separated values. The query returns only the specified property values; it removes all other properties from the response. For example, the following request uses the attributes query parameter:

/environments/{{envID}}/flows/{{davinciFlowID}}?attributes=name,description

The response returns the following flow data:

{
   "_links": {...},
   "id": "{{resourceID}}",
   "name": "SomeFlow, 
   "description": "A brief description"
}

SCIM operators

These SCIM operators can be applied to the following attributes:

  • eq (equals)

    Supports attributes of type STRING, DATE, NUMBER, and BOOLEAN.

  • gt (greater than)

    Supports attributes of type DATE and NUMBER.

  • ge (greater than or equal to)

    Supports attributes of type DATE and NUMBER.

  • lt (less than)

    Supports attributes of type DATE and NUMBER.

  • le (less than or equal to)

    Supports attributes of type DATE and NUMBER.

  • sw (starts with)

    Supports attributes of type STRING.

  • ew (ends with)

    Supports attributes of type STRING.

  • co (contains)

    Supports attributes of type STRING.

  • within (within a specified date)

    Supports attributes of type DATE.

  • and (logical AND)

    Logical AND for building compound expressions in which both expressions are true.

  • or (logical OR)

    Logical OR for building compound expressions if either expression is true.

Response codes

Code Message
200 Successful operation.
201 Successfully created.
204 Successfully removed. No content.
400 The request could not be completed.
401 You do not have access to this resource.
403 You do not have permissions or are not licensed to make this request.
404 The requested resource was not found.

Create DaVinci Flow


Deploy a DaVinci Flow


Clone a DaVinci Flow


Import DaVinci Flow


Import DaVinci Legacy Flow


Read One DaVinci Flow


Read All DaVinci Flows


Enable a DaVinci Flow


Update DaVinci Flow


Delete DaVinci Flow

DaVinci Admin Flow Versions

The PingOne DaVinci Admin Flow Versions service provides endpoints to read, update, and delete DaVinci flow versions. This service also includes endpoints to export, revert, and see details about a flow version.

DaVinci admin flow versions data model properties

Property Type? Required? Mutable? Description
alias String Optional Mutable The user defined flow version alias.
clonedFrom Number Optional Immutable The version number from which this flow version was cloned or created.
connectors Array[object] Optional Mutable An array of connectors that apply to the flow.
connectors[].id String Optional Mutable The connector ID (or IDs) associated with the flow. Example connectors are httpConnector, functionsConnector, pingOneVerifyConnector, and annotationConnector.
createdAt Time N/A Read only The timestamp when the flow was created.
deployedAt Time N/A Read only The stamp when the flow was last deployed.
description String Optional Mutable The description of the flow.
enabled Boolean Optional Immutable Specifies the state of the flow. This can be stored as its own value in the database or it can reflect an existing flowStatus.
environment Object N/A Read only The DaVinci company ID (environment ID) object.
environment.id String N/A Read only The DaVinci company ID, which is the PingOne environment ID.
graphData Object Optional Mutable The graph-based representation of the flow depicted in the UI. Refer to the Flow versions graph data property data model table for details.
flow Object Required Immutable The flow object associated with this flow version.
flow.id String Required Immutable The flow ID of the flow associated with this flow version.
flow.name String Required Immutable The name of the flow associated with this flow version.
includeSubFlows Boolean Optional Mutable Specifies whether the exported flow version should include subflows.
includeVariableValues Boolean Optional Mutable Specifies whether the exported flow version should include variable values.
outputSchema Object Required Mutable The JSONschema output object of the flow.
updatedAt Date N/A Read only The timestamp when the flow was updated or saved.
version Number Required Mutable The version number of the flow instance represented by this object.

Flow versions details property data model

The following table lists the supported flow versions details settings properties.

Property Type? Required? Mutable? Description
color String Optional Mutable The color of the flow.
connectors Array[object] Optional Mutable An array of connectors that apply to the flow.
connectors.id String Optional Mutable The connector ID (or IDs) associated with the flow.
description String Optional Mutable The description of the flow.
enabled Boolean Optional Immutable Specifies the state of the flow.
graphData Object Optional Mutable The graph-based representation of the flow depicted in the UI. Refer to the Flow versions graph data property data model table for details.
inputSchema Array[object] Optional Mutable The flow input parameters in an array of JSONschema objects.
name String Required Mutable The name of the flow.
outputSchema Object Required Mutable The JSONschema output object of the flow.
settings Object Optional Mutable Flow settings saved by the user. Refer to the Settings property data model table for details.
trigger Object Optional Mutable The flow trigger object.
trigger.type String Optional Mutable If the trigger type is set to AUTHENTICATION, you invoke the flow through PingOne OpenID Connect or SAML endpoints.
trigger.configuration Object Optional Mutable The configuration object for session reuse.
trigger.configuration.pwd Object Optional Mutable The configuration object for password session reuse.
trigger.configuration.pwd.enabled Boolean Optional Mutable Specifies whether this configuration must be used to check for existing sessions.
trigger.configuration.pwd.lastSignOn Integer Optional Mutable An integer that specifies the duration (in seconds) that an active session can be reused.
trigger.configuration.mfa Object Optional Mutable The configuration object for MFA session reuse.
trigger.configuration.mfa.enabled Boolean Optional Mutable Specifies whether this configuration must be used to check for existing sessions.
trigger.configuration.mfa.lastSignOn Integer Optional Mutable An integer that specifies the duration (in seconds) that an active session can be reused.
updates Array N/A Read only String of actions taken to generate this version from the previous version.

Flow versions graph data property data model

The following table lists the supported flow versions graph data settings properties.

Property Type? Required? Mutable? Description
graphData Object Optional Mutable The graph-based representation of the flow depicted in the UI.
graphData.elements Object Required Mutable If graphData is set, the graphData.elements object must be defined.
graphData.elements.nodes[] Array[Object] Required Mutable If graphData.elements is set, the graphData.elements.nodes[] object must be defined.
graphData.elements.nodes[].data Object Required Mutable The node item data associated with the flow version. If graphData.elements.nodes[] is set, the graphData.elements.nodes[]].data object must be defined.
graphData.elements.nodes[].data.nodeType String Required Mutable The node type associated with the node item.
graphData.elements.nodes[].data.connectionId String Optional Mutable The connection ID associated with the node item.
graphData.elements.nodes[].data.connectorId String Optional Mutable The connector ID associated with the node item.
graphData.elements.nodes[].data.name String Optional Mutable The name of the node item.
graphData.elements.nodes[].data.label String Optional Mutable The label associated with the node item.
graphData.elements.nodes[].data.status String Optional Mutable The status of the node item.
graphData.elements.nodes[].data.capabilityName String Optional Mutable The name of the capability associated with the node item.
graphData.elements.nodes[].data.type String Optional Mutable The type associated with the node item.
graphData.elements.nodes[].data.properties Object Optional Mutable The properties associated with the node item.
graphData.elements.nodes[].data.properties.nodeTitle Object Optional Mutable The node title object.
graphData.elements.nodes[].data.properties.nodeTitle.value String Required Mutable The node title text.
graphData.elements.nodes[].data.properties.code Object Optional Mutable The node item code object.
graphData.elements.nodes[].data.properties.code.value String Required Mutable The code associated with the node item.
graphData.elements.nodes[].data.properties.type Object Optional Mutable The node type object.
graphData.elements.nodes[].data.properties.type.value String Required Mutable The node type.
graphData.elements.nodes[].data.properties.customCSS Object Optional Mutable The node's stylesheet object.
graphData.elements.nodes[].data.properties.customCSS.value String Required Mutable The node's CSS.
graphData.elements.nodes[].data.properties.customHTML Object Optional Mutable The node's HTML object.
graphData.elements.nodes[].data.properties.customHTML.value String Required Mutable The node's custom HTML.
graphData.elements.nodes[].data.properties.customScript Object Optional Mutable The node's script object.
graphData.elements.nodes[].data.properties.customScript.value String Required Mutable The node's custom scripts.
graphData.elements.nodes[].data.properties.backgroundColor Object Optional Mutable The node's background color object.
graphData.elements.nodes[].data.properties.backgroundColor.value String Required Mutable The node's background color.
graphData.elements.nodes[].data.properties.inputSchema Object Optional Mutable The node's input schema object.
graphData.elements.nodes[].data.properties.inputSchema.value String Required Mutable The node's input schema.
graphData.elements.nodes[].data.properties.outputSchema Object Optional Mutable The node's output schema object.
graphData.elements.nodes[].data.properties.outputSchema.value String Required Mutable The node's output schema.
graphData.elements.nodes[].data.properties.message Object Optional Mutable The node's message object.
graphData.elements.nodes[].data.properties.message.value String Required Mutable The node's message text.
graphData.elements.nodes[].data.properties.showContinueButton Object Optional Mutable The node's show continue button object.
graphData.elements.nodes[].data.properties.showContinueButton.value Boolean Required Mutable Specifies whether to show the node's continue text.
graphData.elements.nodes[].data.properties.saveVariables Object Optional Mutable The node's save variables object.
graphData.elements.nodes[].data.properties.saveVariables.value Array[Object] Required Mutable An array of variables that are saved.
graphData.elements.nodes[].data.properties.formFieldList Object Optional Mutable The node's form fields object.
graphData.elements.nodes[].data.properties.formFieldsList.value Array[Object] Required Mutable An array of form fields associated with the node.
graphData.elements.nodes[].data.properties.variableInputList Object Optional Mutable The node's variable input list object.
graphData.elements.nodes[].data.properties.variableInputList.value Array[Object] Required Mutable An array of input variables associated with the node.
graphData.elements.nodes[].data.properties.additionalProperties Array[Object] Optional Mutable An array of additional properties allowed by the node.
graphData.elements.nodes[].data.additionalProperties Array[Object] Optional Mutable An array of additional properties allowed in the Item definition.
graphData.elements.nodes[].position Object Required Mutable The node's position object.
graphData.elements.nodes[].position.x Number Required Mutable The node's x-axis position.
graphData.elements.nodes[].position.y Number Required Mutable The node's y-axis position.
graphData.elements.nodes[].group String Required Mutable The node's group.
graphData.elements.nodes[].removed Boolean Required Mutable Specifies whether the node can be removed.
graphData.elements.nodes[].selected Boolean Required Mutable Specifies whether the node can be selected.
graphData.elements.nodes[].selectable Boolean Required Mutable Specifies whether the node is selectable.
graphData.elements.nodes[].locked Boolean Required Mutable Specifies whether the node is locked.
graphData.elements.nodes[].grabbable Boolean Required Mutable Specifies whether the node is grabbable.
graphData.elements.nodes[].pannable Boolean Required Mutable Specifies whether the node can be moved.
graphData.elements.nodes[].classes String Optional Mutable The classes associated with the node.
graphData.elements.edges[] Array[Object] Required Mutable The object that describes the graph data element edges.
graphData.elements.edges[].data Object Required Mutable The object that describes the edges data.
graphData.elements.edges[].data.id String Required Mutable The edges element ID.
graphData.elements.edges[].data.source String Required Mutable The edges element source.
graphData.elements.edges[].data.target String Required Mutable The edges element target.
graphData.elements.edges[].position Object Required Mutable The edge's position object.
graphData.elements.edges[].position.x Number Required Mutable The edge's x-axis position.
graphData.elements.edges[].position.y Number Required Mutable The edge's y-axis position.
graphData.elements.edges[].group String Required Mutable The edge's group.
graphData.elements.edges[].removed Boolean Required Mutable Specifies whether the edge can be removed.
graphData.elements.edges[].selected Boolean Required Mutable Specifies whether the edge can be selected.
graphData.elements.edges[].selectable Boolean Required Mutable Specifies whether the node is selectable.
graphData.elements.edges[].locked Boolean Required Mutable Specifies whether the edge is locked.
graphData.elements.edges[].grabbable Boolean Required Mutable Specifies whether the edge is grabbable.
graphData.elements.edges[].pannable Boolean Required Mutable Specifies whether the edge can be moved.
graphData.elements.edges[].classes String Optional Mutable The classes associated with the item.
graphData.elements.data String Required Mutable The data associated with the element.
graphData.elements.zoomingEnabled Boolean Required Mutable Specifies whether zooming is enabled for the element.
graphData.elements.userZoomingEnabled Boolean Required Mutable Specifies whether user zooming is enabled for the element.
graphData.elements.zoom Number Required Mutable The zoom number.
graphData.elements.minZoom Number Required Mutable The minimum zoom number.
graphData.elements.maxZoom Number Required Mutable The maximum zoom number.
graphData.elements.panningEnabled Boolean Required Mutable Specifies whether the element can be moved.
graphData.elements.userPanningEnabled Boolean Required Mutable Specifies whether the element can be moved by the user.
graphData.elements.pan Object Required Mutable The panning object.
graphData.elements.pan.x Number Required Mutable The element's x-axis position.
graphData.elements.pan.y Number Required Mutable The element's y-axis position.
graphData.elements.boxSelectionEnabled Boolean Required Mutable Specifies whether box selection is enabled.
graphData.elements.renderer Object Required Mutable The renderer object.
graphData.elements.renderer.name String Required Mutable The renderer name.

Response codes

Code Message
200 Successful operation.
201 Successfully created.
204 Successfully removed. No content.
400 The request could not be completed.
401 You do not have access to this resource.
403 You do not have permissions or are not licensed to make this request.
404 The requested resource was not found.

Read All DaVinci Flow Versions


Read One DaVinci Flow Version


Read DaVinci Flow Version Details


Revert DaVinci Flow Version


Export a DaVinci Flow Version


Add a DaVinci Flow Version Alias


Delete DaVinci Flow Version

DaVinci Admin Applications

PingOne DaVinci Admin Applications service provides endpoints to create, read, update, and delete DaVinci applications. This service also includes endpoints to rotate the application key and application secret values.

A DaVinci application configuration is the link between your site and the sign-on flows you have created in DaVinci. The application configuration contains settings to determine how external sites can send requests for flows, what flows can be requested, and how users and resources from other sites are managed.

DaVinci Admin applications data model properties

Property Type? Required? Mutable? Description
apiKey Object Optional Mutable The collection of API keys associated with this application resource.
apiKey.enabled Boolean Optional Mutable Specifies whether the API key for this appliction is enabled.
apiKey.value String Optional Mutable The value of the API key.
createdAt Date N/A Read only The time when the application was created.
environment Object N/A Read only The DaVinci company ID (environment ID) object.
environment.id String N/A Read only The DaVinci company ID, which is the PingOne environment ID.
id String N/A Read only The application ID.
name String Required Mutable The application name.
oauth Object Optional Mutable The OAuth configuration for this application resource.
oauth.clientSecret String Optional Mutable The client secret used by this application resource.
oauth.redirectUris Array Optional Mutable The list of redirect URIs configured for this application resource.
oauth.logoutURIs Array Optional Mutable The list of logout URIs configured for this application resource.
oauth.scopes Array Optional Mutable The list of OAuth scopes configured for this application resource.
oauth.grantTypes Array Optional Mutable The list of OAuth grant types configured for this application resource.
oauth.spjwksUrl String Optional Mutable A URL to retrieve JWKS keys to verify the authorization request signature. This option takes precedence over spjwksOpenid property if both are set.
oauth.spJwksOpenid String Optional Mutable A set of JWKS keys to verify the authorization request signature. This property is ignored if spjwksUrl is set.
updatedAt Date N/A Read only The time when the application was last modified.

Response codes

Code Message
200 Successful operation.
201 Successfully created.
204 Successfully removed. No content.
400 The request could not be completed.
401 You do not have access to this resource.
403 You do not have permissions or are not licensed to make this request.
404 The requested resource was not found.

Create DaVinci Application


Rotate DaVinci Application Key


Rotate DaVinci Application Secret


Read DaVinci Applications


Read One DaVinci Application


Update DaVinci Application


Delete DaVinci Application

DaVinci Admin Application Flow Policies

PingOne DaVinci Admin Application Flow Policies service provides endpoints to create, read, update, and delete DaVinci application flow policies. Application flow policies specify which flows are run through the application. A flow policy is an entity that points to one or more flows or versions of flows.

DaVinci Admin application flow policies data model properties

Property Type? Required? Mutable? Description
createdAt Date N/A Read only The time when the flow policy was created.
environment Object N/A Read only The DaVinci company ID (environment ID) object.
environment.id String N/A Read only The DaVinci company ID, which is the PingOne environment ID.
id String N/A Read only The flow policy ID.
name String Required Mutable The flow policy name.
flowDistributions Array Optional Immutable An array of flow distribution properties that are a part of this flow policy.
flowDistributions.id String Optional Immutable The flow ID associated with this flow policy.
flowDistributions.weight Number Optional Mutable The weight that is assigned to the current flow in the flow policy.
flowDistributions.version String Optional Mutable The version of the flow to be used in the flow policy.
flowDistributions.successNodes Array Optional Mutable An array of node IDs in the flow that indicate a successful execution of the flow policy.
flowDistributions.successNodes.id Array Optional Mutable The node ID.
flowDistributions.ip Array Optional Mutable An array of IP addresses to create a whitelist of IP addresses from which flow executions can be performed.
status String Optional Mutable The status of the flow policy. Options are Enabled and Disabled.
trigger Object Optional Immutable The trigger associated with the flow.
trigger.type String Optional Immutable If the trigger type is set to AUTHENTICATION, you invoke the flow through PingOne OpenID Connect or SAML endpoints.
updatedAt Date N/A Read only The time when the flow policy was modified.

DaVinci Admin application flow policy event data model properties

Property Type? Required? Mutable? Description
environment Object N/A Read only The environment object.
environment.id String N/A Read only The DaVinci company ID, which is the PingOne environment ID.
events Object N/A Read only The DaVinci event object.
events.id String N/A Read only The DaVinci event ID.
events.timestamp Date N/A Read only A UTC timestamp that specifies when the event was logged.
flow Object N/A Read only The DaVinci flow object.
flow.id String N/A Read only The DaVinci flow ID.
flow.version Number N/A Read only The DaVinci flow version number.
totalCount Number N/A Read only The total number of flow executions.
successCount Number N/A Read only The total count of success nodes reached in flow executions.

Response codes

Code Message
200 Successful operation.
201 Successfully created.
204 Successfully removed. No content.
400 The request could not be completed.
401 You do not have access to this resource.
403 You do not have permissions or are not licensed to make this request.
404 The requested resource was not found.

Create DaVinci Application Flow Policies


Read DaVinci Application Flow Policies


Read DaVinci Application Flow Policy Events


Read One DaVinci Application Flow Policy


Update DaVinci Application Flow Policy


Delete DaVinci Application Flow Policy

DaVinci Admin UI Templates

You can create user interface (UI) templates that match your company style and branding, which you can include in flows using an HTTP connector. The PingOne DaVinci Admin UI Templates service provides endpoints to create, read, and delete DaVinci UI templates.

DaVinci Admin UI templates data model properties

Property Type? Required? Mutable? Description
createdAt Date N/A Read only A UTC string that specifies the time when the DaVinci UI template was created.
description String Optional Mutable The UI template description.
environment Object N/A Read only The DaVinci company ID (environment ID) object.
environment.id String N/A Read only The DaVinci company ID, which is the PingOne environment ID.
id String N/A Read only The DaVinci UI template ID.
name String Required Mutable The UI template name.
inputSchema String Optional Mutable A JSON representation of the input schema defined in this template.
outputSchema String Optional Mutable A JSON representation of the output schema defined in this template.
script String Optional Mutable Javascript code utilized by this template.
style String Optional Mutable The CSS used in flows that are associated with this template.
template String Optional Mutable The HTML template to me rendered.
updatedAt Date N/A Read only A UTC string that specifies the time when the UI template was last modified.
validationRules Array Optional Mutable The validation rules object.
validationRules.propertyName String Required Mutable The name of the property to which the validation rule applies.
validationRules.rules Array Required Mutable The rules object in which the validation rules elements are defined.
validationRules.rules.ruleName String Required Mutable The name of the rule. Options are presence, email, length, format, and equality.
validationRules.rules.message String Optional Mutable The rule message that displays if the required property is not present or if the property is not a valid email. For length rules, enter a minimum, maximum, or exact value for the property and a validation message that is displayed for each length restriction that is not met. For format rules, enter the regex that defines the required format and the validation message that displays if the property does not match the format. For equality rules, enter the other property that this property must match, and the validation message that displays if the properties do not match.
validationRules.rules.attribute String Optional Mutable The property to check when applying the equality rule.
validationRules.rules.pattern String Optional Mutable The pattern to match when applying the format rule.

Response codes

Code Message
200 Successful operation.
201 Successfully created.
204 Successfully removed. No content.
400 The request could not be completed.
401 You do not have access to this resource.
403 You do not have permissions or are not licensed to make this request.
404 The requested resource was not found.

Create DaVinci UI Template


Read DaVinci UI Templates


Read One DaVinci UI Template


Delete DaVinci UI Template

Working with PingOne APIs

If you want to start building your own workflows with PingOne APIs, the Workflow Library provides step-by-step workflows with linked Postman collections to help you start using the PingOne APIs in your Postman environment. For information about how PingOne secures APIs, resources, and data, and what you can do to implement security measures for your PingOne deployment and applications, refer to Platform security.

If you're new to PingOne and have not set up your test environment, refer to PingOne for Developers Getting Started. This guide helps you get an admin access token, which is required to make API calls to DaVinci Admin API resources.

PingOne API domains

This section discusses how PingOne API regional endpoints are entered in the domain name system (DNS). In DNS, and in our endpoints, the domain part of the uniform resource locator (URL) comprises three parts separated by periods, such as api.pingone.com: one of our service-specific subdomains, our PingOne domain name of pingone, and one of our top level domains.

We use Postman variables to manage this variety of domain parts in PingOne API endpoints. The later discussion is correct regarding the domain part that the variables evaluate to. However, to ease maintenance, the Postman environment template you get when you download a collection uses variables to isolate the TLD from the rest of the domain part and to isolate the domain part from the rest of the endpoint.

The environment template has a path variable for each subdomain. Each path variable uses another variable, {{tld}}, for the top level domain (TLD). Such as https://api.pingone.{{tld}}/v1 for {{apiPath}}. The tld variable is first in the environment template that you downloaded.

The table below shows the top level domain value for each region. To change your region, simply change the default {{tld}} value from com to your region's TLD.

Region Code Top level domain
North America region (excluding Canada) NA com (default)
Canada region CA ca
European Union region EU eu
Australia region AU com.au
Singapore region SG sg
Asia-Pacific region AP asia

The PingOne API includes the following domains:

Domain Postman path variable Description
api.pingone.{{tld}} {{apiPath}} The primary domain for calling PingOne Management API resource server.
auth.pingone.{{tld}} {{authPath}} The authorization and authentication server domain called to request the access token required to authenticate PingOne API requests.
orchestrate-api.pingone.{{tld}} {{orchestratePath}} The primary domain for calling the PingOne DaVinci Management API resource server.
scim-api.pingone.{{tld}} {{scimPath}} PingOne API service for Cross-domain Identity Management (SCIM).

The {{...Path}} variable in the sample requests stand for the PingOne service endpoint. Refer to Public endpoints in the PingOne for Developers Foundations guide for more information.

The Try a Request feature

Our documentation for the PingOne APIs includes an interactive Try a Request feature. Try a Request enables you to configure and send a PingOne API request and get a response from within the documentation. This is a quick way to interactively test a PingOne API request without needing to use either Postman or the command line.

Requests in Authentication and Authorization APIs do not have the Try a Request feature due to a Cross-Origin Resource Sharing (CORS) constraint.

Calling the PingOne APIs from the command line

Each PingOne API request in the documentation includes an example request and response. By default, the example request is displayed using cURL. However, a number of coding languages are available in the associated drop-down list. If you want to run a request from the command line, you can select the coding language and copy the displayed request. You'll need to replace any variables in the request with the appropriate values before running the request.

Using Postman collection-level authorization

Most APIs require authorization to ensure that client requests access data securely. Postman can pass along whatever authorization details necessary for the method demanded by the endpoint. You can manually include authorization data in the header, body, or as parameters to a request. However, the easiest way is to use the Authorization tab in Postman. Select an authorization Type on that tab and Postman offers a dialog to gather the information required by that Type. When you run a request, Postman uses the information from the Authorization tab to automatically add the necessary authorization header, body, or parameters to the request. Postman offers the Authorization tab on requests, folders, and collections.

In PingOne collections, the authorization method is defined at the collection level. Only those requests that require a specific authorization method have authorization defined on the request (roughly 10% of PingOne requests). This allows you to easily change the authorization used for most requests. Refer to Postman Collection-Level Authorization for more information.

Postman and the PingOne APIs

We use Postman to create our PingOne DaVinci Admin API docs, and have supplied our Postman collections for you to download. There's also an accompanying Postman Environment template already populated with the variables used in the collections.

If you aren't currently using Postman, you can install the free version. Refer to Download Postman to install Postman, either locally, or in your browser.

Refer to The PingOne DaVinci Admin API Postman collections for the collections you can download or fork.

For more information about our Postman environment variables, refer to The PingOne Postman environment template.

You'll also find all of the Postman collections for our documented PingOne use cases in our Workflow Library.

The PingOne Postman collections

You can get the PingOne DaVinci Admin API Postman collection by following either of these methods for retrieving a Postman collection into your workspace:

  1. Fork the collection into your workspace. Postman retains an association between the source and your fork. If we update the source collection, you can pull those changes into the fork in your workspace.

  2. Import the collection into your workspace. This is a one-time transfer and retains no association to the source collection.

To retrieve a collection

Refer to The PingOne DaVinci Admin API collections on this page.

  1. Click the collection's Run In Postman button.

  2. At the prompt, click Fork Collection at the bottom of the dialog or click import a copy near the bottom of the dialog.

    RunInPostman

  3. Follow the on-screen instructions to fork or import the collection. You're prompted to select a Postman workspace for the retrieved collection.

When you fork a Postman collection, you create a copy of it in a selected workspace. Forking a collection creates a linked version that synchronizes with its source collection. This synchronization is apparent when you click the three dots icon on the forked collection - you'll see Pull changes on the context menu. When you click Pull changes, Postman compares the fork to the source collection. If changes are available, you can pull those changes into your fork. If you also elect to watch the collection, you'll receive notifications when the source changes.

If you import a collection, a copy is created in the selected workspace with no link back to the source. The collection is static. This may be desirable for some use cases. For example, if you intend to keep and use only some requests in a collection, a link back to the source is not needed.

You're not limited to choosing one method or the other. You can fork a copy to track the source and import a copy for experimentation, if you like.

The PingOne DaVinci Admin API collections

These Postman collections include requests for all create, read, update, and delete (CRUD) operations for the PingOne DaVinci Admin APIs.

Collection Description Retrieve
PingOne DaVinci Postman requests for the PingOne DaVinci Admin API. Includes all environment variables. No example responses to make it easy to get started. Run In Postman
PingOne DaVinci Postman requests for the PingOne DaVinci Admin API. Includes all PingOne Platform API Reference documentation and example reponses. No environment variables are included. Run In Postman

For more information about the Postman environment variables included when you download or fork one of our Postman collections, refer to The PingOne Postman environment template.

The PingOne Postman environment template

Our Postman collections use variables in the request URLs to specify the UUIDs for PingOne resources. When you click the Run in Postman button for a collection, these environment variables are included in your download or fork. Use these environment variables as a template to assign your PingOne resource UUIDs with the common variables used in many of the requests.

For more information about using Postman environments, refer to the following topic in the Postman documentation: Environments in Postman.

POST requests in the PingOne DaVinci Admin API Postman collections that create a resource and return a resource ID include a Postman script. This script automatically adds a resource variable to your active Postman environment, and uses the newly created ID as the value.

For example, the following request creates a new DaVinci variable. This request URL contains variables for the API path and environment ID:

POST {{apiPath}}/environments/{{envID}}/variables

To run this request, you must ensure the {{apiPath}} in the Postman environment template has the regional top-level domain (TLD) associated with your organization. Refer to Variables you must value for more information.

Almost every request in PingOne requires an environment ID. If you are working primarily in one environment for testing purposes, you'll want to add your environment's UUID to your active Postman environment as the value for the {{envID}} variable.

Requests to PingOne Management API endpoints require a valid access token to authenticate the request. In the PingOne Postman collections, the token value is represented in the Postman environment template as the variable {{accessToken}}.

With the {{tld}} and {{envID}} variables defined in your Postman template, and with a valid token value defined in the {{accessToken}} variable, you can run the request shown above:

POST {{apiPath}}/environments/{{envID}}/variables

If the request is successful, Postman adds a {{variableID}} variable to the current Postman environment automatically, and associates the new user's id property value (the UUID of the new user) with this variable.

Notes about environment variables and security

It's important to understand how Postman allows you to Store and reuse values using variables. Postman has two values for each environment variable: an Initial value and a Current value. You'll want to pay particular attention to differences between Initial and current values. Initial values are saved to Postman's cloud, and available to anyone who has access to the environment. Current values are saved only locally and available only to you. Postman uses only the current value in requests. If an environment variable has an initial value but no current value, Postman doesn't copy it to the current value or use the initial value in the request, the request simply fails. In this case, you need to manually copy the initial value to the current value.

When you create a new variable with an initial value and save the environment, Postman autofills the current value. However, that is the only time that Postman autofills the current value. If you subsequently delete the current value, the variable is no longer valued in a request.

Saving initial values to the Postman cloud impacts security. These initial values are available to anyone who has access to the workspace. If a workspace is public, you have a security issue.

Postman's recommended solution to exposing secrets is to Store secrets in your Postman Vault. Remember that Postman uses only current values in requests.

Variables you must value

When you download or fork a PingOne Postman collection, your workspace receives a set of Postman environment variables for you to use as a template. The variables that represent a resource in PingOne automatically receive a value when you create a new PingOne resource using Postman. Our script associated with the request (shown on the request's Scripts tab) inserts the identifier of the resource it creates as the value of the variable associated with that resource. However, some variables essential to using Postman with PingOne do not have their values inserted automatically. You must manually add the correct value to these variables before making any requests in Postman:

Postman variable PingOne resource
adminAppID The Client ID of the Worker app you created Create an admin Worker app connection.
adminAppSecret The Client Secret of the Worker app created.
adminEnvID The ID for the environment in which your Worker app resides.
envID The ID for the environment in which you are running your Postman API requests.
orgID The ID for your organization. In the PingOne admin console, select Environment and click Properties to view your organization ID.
tld The top-level domain to use for your environment. This is used in URLs containing apiPath, authPath, orchestratePath, and scimPath.
apiPath The regional domain for the PingOne management server (https://api.pingone.{{tld}}/v1).
authPath The regional domain for the PingOne authorization and authentication server (https://auth.pingone.{{tld}}).
orchestratePath The regional domain for the PingOne DaVinci management server (https://orchestrate-api.pingone.{{tld}}/v1).
scimPath The regional domain for the PingOne SCIM management server (https://scim-api.pingone.{{tld}}).