JSON data in body as per Rule API specification. See example/guide.
IdRamp Identity Verification API - Overview (1.0)
The IdRamp Identity Verification API enables applications to initiate, monitor, and retrieve identity verification sessions using trusted verification providers integrated with IdRamp. It also includes a flexible rules-based matching utility for comparing and validating identity data.
Start Verification (
POST /api/v1/verification): Create a new verification session for a user, specifying the IdRamp Identity Verifier configuration to use. Returns a session identifier and a provider URL where the verification flow begins.Get Verification Status (
GET /api/v1/verification/{identityVerifierId}/status/{verificationId}): Retrieve the current state of a verification session (started,completed). Useful for polling the session progress without fetching detailed results.Get Verification Result (
GET /api/v1/verification/{identityVerifierId}/{verificationId}): Fetch the full verification outcome once a session completes, including status (success,fail,canceled), provider user ID, and verified user traits such as name, email, phone, and document information.Match Utility (
POST /api/v1/verification/match): Evaluate custom rules to compare and match data across two records (e.g., source vs. target). Supports logical and fuzzy matching (e.g., equality, Levenshtein ratio) with detailed per-rule results.
- Client calls Start Verification to create a session and obtain the provider launch URL.
- End-user completes verification via the provider interface.
- Client waits for user to be redirected back to
returnUrlspecified at Start signalling completion. Alternatively, the Client polls Get Status until completion. - Once completed, client calls Get Result to retrieve verified attributes.
- Optionally, client uses Match Utility to compare verified data with existing records.
https://idvtest.idramp.com/
Request
Evaluates a ruleset against two records (e.g., “source” vs “target”) and returns a boolean match along with detailed rule outcomes.
Request
- Provide a JSON body with:
data: arbitrary objects such assourceRecordandtargetRecordholding fields to compare.rule: a tree of evaluation rules (e.g.,and,or,equal,lev-ratio) referencing fields via simple expressions.
- See the example for composing nested rules and thresholds (e.g., Levenshtein ratio with
threshold).
Successful response (200)
- Returns
EvaluateResultModel:isMatch: overall boolean result of the ruleset.fullResult: hierarchicalRuleResulttree with match outcomes and causes.namedResults: flattened list ofRuleResultitems for named rules.
Use cases
- Name normalization and fuzzy matching (e.g.,
lev-ratioacross concatenated name parts). - Combining exact comparisons (
equal) with fallback logic (or) inside higher-levelandconditions.
Errors
- 401/403: authentication/authorization failure.
- 422: invalid body or rule specification (see
ErrorResponse).
Auth
- Requires
x-api-keywith theApiKeyPolicy.
- Test server
https://idvtest.idramp.com/api/v1/verification/match
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://idvtest.idramp.com/api/v1/verification/match \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_API_KEY_HERE' \
-d '{
"data": {
"sourceRecord": {
"firstName": "John",
"lastName": "Doe",
"fullName": "Johnathan Doe"
},
"targetRecord": {
"given_name": "Johnathan",
"surname": "Doe",
"displayName": "Jon Doe"
}
},
"rule": {
"rule": "and",
"name": "Rule",
"rules": [
{
"rule": "or",
"name": "firstOrLast",
"rules": [
{
"rule": "equal",
"name": "first",
"left": {
"expr": "prop",
"name": "sourceRecord.firstName"
},
"right": {
"expr": "prop",
"name": "targetRecord.given_name"
}
},
{
"rule": "equal",
"name": "last",
"left": {
"expr": "prop",
"name": "sourceRecord.lastName"
},
"right": {
"expr": "prop",
"name": "targetRecord.surname"
}
}
]
},
{
"rule": "lev-ratio",
"name": "full",
"left": {
"expr": "join",
"values": [
{
"expr": "prop",
"name": "sourceRecord.firstName"
},
{
"expr": "prop",
"name": "sourceRecord.lastName"
}
],
"separator": " "
},
"right": {
"expr": "join",
"values": [
{
"expr": "prop",
"name": "targetRecord.given_name"
},
{
"expr": "prop",
"name": "targetRecord.surname"
}
],
"separator": " "
},
"threshold": 80
}
]
}
}'{ "isMatch": true, "fullResult": { "name": "string", "rule": "string", "isMatch": true, "results": [ … ], "cause": "string", "property1": null, "property2": null }, "namedResults": [ { … } ] }