PingOne

JSON pointer syntax reference

JavaScript Object Notation (JSON) Pointer defines a syntax for identifying a specific value within a JSON payload. Using the sample payload and JSON Pointer examples below, identify the attributes that you want to use to populate your attribute contract.

You can find a complete technical description of JSON Pointer syntax in JavaScript Object Notation (JSON) Pointer on ietf.org.

Example PingOne Risk JSON payload

{
  "_links":{
    "self":{
      "href":"https://api.pingone.com/v1/environments/fe561fe9-e374-4de8-be4c-0e38b3b83356/riskEvaluations/8d482f35-4ae5-4ecc-b9ff-db696a01f39f"
    },
    "environment":{
      "href":"https://api.pingone.com/v1/environments/fe561fe9-e374-4de8-be4c-0e38b3b83356"
    },
    "event":{
      "href":"https://api.pingone.com/v1/environments/fe561fe9-e374-4de8-be4c-0e38b3b83356/riskEvaluations/8d482f35-4ae5-4ecc-b9ff-db696a01f39f/event"
    }
  },
  "id":"8d482f35-4ae5-4ecc-b9ff-db696a01f39f",
  "environment":{
    "id":"fe561fe9-e374-4de8-be4c-0e38b3b83356"
  },
  "createdAt":"2022-09-16T20:49:04.029Z",
  "updatedAt":"2022-09-16T20:49:04.029Z",
  "event":{
    "completionStatus":"IN_PROGRESS",
    "ip":"209.133.96.106",
    "flow":{
      "type":"AUTHENTICATION"
    },
    "user":{
      "id":"john",
      "name":"John DeMock",
      "type":"EXTERNAL",
      "groups":[
        {
          "name":"dev"
        },
        {
          "name":"sre"
        }
      ]
    },
    "origin":"PF_RISK_IK",
    "customProp":{
      "":{
        "nested":[
          "abcd",
          3.14
        ]
      }
    },
    "myNumber":8.1,
    "isManaged":"No"
  },
  "riskPolicySet":{
    "id":"368a8459-3f46-4301-bc1e-f4214eb4a5f5",
    "name":"IK-2406"
  },
  "result":{
    "value":"Unmanaged device!",
    "level":"HIGH",
    "score":1.8918918918918919,
    "source":"OVERRIDE",
    "type":"VALUE"
  },
  "details":{
    "ipAddressReputation":{
      "score":0,
      "level":"LOW"
    },
    "anonymousNetworkDetected":false,
    "country":"united states",
    "state":"georgia",
    "city":"atlanta",
    "impossibleTravel":false,
    "ipVelocityByUser":{
      "level":"LOW",
      "threshold":{
        "source":"MIN_NOT_REACHED"
      },
      "velocity":{
        "distinctCount":1,
        "during":3600
      },
      "type":"VELOCITY"
    },
    "userLocationAnomaly":{
      "level":"HIGH",
      "reason":"New transaction location",
      "status":"NEW_LOCATION",
      "type":"USER_LOCATION_ANOMALY"
    },
    "userVelocityByIp":{
      "level":"LOW",
      "threshold":{
        "source":"MIN_NOT_REACHED"
      },
      "velocity":{
        "distinctCount":1,
        "during":3600
      },
      "type":"VELOCITY"
    },
    "geoVelocity":{
      "level":"LOW",
      "type":"GEO_VELOCITY"
    },
    "userRiskBehavior":{
      "reason":"Not enough information to assess risk score",
      "status":"NOT_AVAILABLE",
      "type":"USER_RISK_BEHAVIOR"
    },
    "ipRisk":{
      "level":"LOW",
      "type":"IP_REPUTATION"
    },
    "userBasedRiskBehavior":{
      "reason":"Not enough information to assess risk score",
      "status":"IN_TRAINING_PERIOD",
      "type":"USER_RISK_BEHAVIOR"
    },
    "anonymousNetwork":{
      "level":"LOW",
      "type":"ANONYMOUS_NETWORK"
    },
    "myNumber":{
      "level":"HIGH",
      "reason":"Attribute ${event.myNumber} is 8.1.",
      "attribute":"${event.myNumber}",
      "value":8.1,
      "type":"MAP"
    },
    "nested":{
      "reason":"Not enough information to assess risk score",
      "status":"NOT_AVAILABLE",
      "attribute":"${event.customProp.nested}",
      "type":"MAP"
    },
    "isManaged":{
      "level":"HIGH",
      "reason":"Attribute ${event.isManaged} is \"No\".",
      "attribute":"${event.isManaged}",
      "value":"No",
      "type":"MAP"
    }
  }
}
JSON Pointer syntax
Description JSON Pointer Example value

Minimum Risk Module Policy Score

/details/policies/MIN_RISK_MODULE/score

501

Minimum Risk Module Policy Level

/details/policies/MIN_RISK_MODULE/level

MEDIUM_RISK

To populate an attribute with the entire JSON response, leave the PingOne Risk API Attribute Mapping field blank.