Introduction
IBM Master Data Management on IBM Software Hub provides APIs that enable you to connect the IBM Master Data Management service's powerful master data matching capabilities to your systems and processes. IBM Master Data Management enables you to establish a single, trusted, 360-degree view of your customers. IBM Master Data Management includes machine learning-assisted, self-service analytics and matching tools that deliver better business insights.
Business users and systems can access IBM Master Data Management data to search, view, and analyze master data entities. With IBM Master Data Management on IBM Software Hub, you can ensure that your users and systems have a total view of your data. With a seamlessly integrated, cross-solution experience, your users can discover master data directly in the space where they expect to consume it.
The IBM Master Data Management APIs support:
- Loading and mapping data
- Customizing the data model
- Configuring the matching algorithm
- Running matching
- Retrieving master data entity and record details
- MDM job management
Important: This reference documentation is for the v1 API, which applies to IBM Master Data Management for IBM Software Hub 5.0 and above, and IBM Match 360 for Cloud Pak for Data 4.0.1 and above.
For more information about IBM Master Data Management on IBM Software Hub, see the service's documentation in the IBM Software Hub documentation. For more information about IBM Match 360 on IBM Cloud Pak for Data 4.x, see the service's documentation in the IBM Cloud Pak for Data documentation.
Service endpoint
The IBM Master Data Management service endpoint is based on your IBM Software Hub deployment URL: https://{cpd_cluster_host}/mdm/{match360-microservice}/. The valid microservice values are:
modelmatchingconfigurationdatajob
For example, if your instance is deployed at https://www.example.com:31843, you can access the IBM Master Data Management model APIs at https://www.example.com:31843/mdm/model/.
Additionally, you can access, discover, and run API commands with the Swagger UI API Explorer at the URL https://{cpd_cluster_host}/<MDM_INSTANCE_ID>/api-{match360-microservice}/explorer/#. For example, using the same instance host as in the previous example and an instance ID of 1664447707275339, you can access the Swagger UI API Explorer IBM Master Data Management APIs at the following URLs:
- Model:
https://www.example.com/1664447707275339/api-model/explorer/# - Matching:
https://www.example.com/1664447707275339/api-matching/explorer/# - Configuration:
https://www.example.com/1664447707275339/api-configuration/explorer/# - Data:
https://www.example.com/1664447707275339/api-data/explorer/# - Job:
https://www.example.com/1664447707275339/api-job/explorer/#
Example
curl -H "Authorization: Bearer {token}" -X {request_method} "https://{cpd_cluster_host}/mdm/model/<METHOD>"
Error handling
This API uses standard HTTP response codes to indicate whether a method completed successfully. A 200 response indicates success. A 400 type response indicates a failure, and a 500 type response indicates an internal system error.
| HTTP Error Code | Description | Recovery |
|---|---|---|
200 |
Success | The request was successful. |
202 |
Accepted | The request was understood and accepted. Processing will continue in the background. |
202 |
No Content | The request was successful. No content will be returned. |
400 |
Bad Request | The input parameters in the request are either incomplete or in the wrong format. Be sure to include all required parameters in your request. |
401 |
Unauthorized | You are not authorized to make this request. Log in to try again. If this error persists, contact the account owner to check your permissions. |
403 |
Forbidden | The supplied authentication is not authorized to access the resource. Contact the account owner to check your permissions. |
404 |
Not Found | The requested resource could not be found. |
405 |
Method Not Allowed | The request is not allowed for the requested resource. |
408 |
Request Timeout | The connection to the server timed out. Wait a few minutes, then try again. |
409 |
Conflict | The entity is already in the requested state. |
410 |
Gone | The requested resource is no longer available and will not become available in the future. |
500 |
Internal Server Error | Your request could not be processed due to an internal error. Check server logs for more details. |
503 |
Service Unavailable | The requested service is currently unavailable. Wait a few minutes and try again. |
ErrorResponse
| Name | Description |
|---|---|
code integer |
HTTP error code. |
error string |
Human-readable error string, like 'Invalid image file'. |
ErrorAuthentication
| Name | Description |
|---|---|
status string |
The status of error. |
statusInfo string |
Information about the error. |
ErrorHTML
| Name | Description |
|---|---|
Error string |
HTML description of the error. |
statusInfo string |
Information about the error. |
ErrorInfo
Information about what might have caused a failure, such as an image that is too large. Not returned when there is no error.
| Name | Description |
|---|---|
code integer |
HTTP status code. |
description string |
Human-readable error description. For example, File size limit exceeded. |
error_id string |
Codified error string. For example, limit_exceeded. |
The Java SDK generates an exception for any unsuccessful method invocation. All methods that accept an argument can also throw an IllegalArgumentException.
| Exception | Description |
|---|---|
| IllegalArgumentException | An invalid argument was passed to the method. |
When the Java SDK receives an error response from the IBM Master Data Management service, it generates an exception containing the following fields:
| Field | Description |
|---|---|
| statusCode | The HTTP status code returned |
| message | A message describing the error |
The Python SDK generates an exception for any unsuccessful method invocation. When the Python SDK receives an error response from the IBM Master Data Management service, it generates an exception containing the following fields:
| Field | Description |
|---|---|
| code | The HTTP status code returned |
| message | A message describing the error |
| info | A dictionary of additional information about the error |
Example error handling
try {
// Invoke a IBM Master Data Management method
} catch (NotFoundException e) {
// Handle Not Found (404) exception
} catch (RequestTooLargeException e) {
// Handle Request Too Large (413) exception
} catch (ServiceResponseException e) {
// Base class for all exceptions caused by error responses from the service
System.out.println("Service returned status code " + e.getStatusCode() + ": " + e.getMessage());
}
Granting users access to IBM Master Data Management
After you install IBM Master Data Management on IBM Software Hub, you must give users access to the service by creating user groups and adding users to them.
Only the IBM Software Hub administrator who installs IBM Master Data Management is granted access to the service by default. To provide other users with access to the service, the administrator user must add them to the appropriate user groups. For example, to create and set up a master data configuration asset, users must belong to the DataEngineer group.
To access IBM Master Data Management, an IBM Software Hub user must belong to one of the following specialized groups:
- DataEngineer: DataEngineer group members have full rights to configure a IBM Master Data Management service instance, onboard data sources, customize the data model, tune and customize the matching algorithm, run matching, view or create jobs, create pair review requests, and view or edit entities and records in the master data explorer. DataEngineer users can create and set up a master data configuration asset. DataEngineer users can also view and manage governed data.
- DataSteward: Data Steward group members can onboard data sources, run matching, view the data model, view ongoing jobs, complete pair review tasks, and view or edit entities and records in the master data explorer.
- PublisherUser: PublisherUser group members can publish data from an IBM InfoSphere® Master Data Management instance, through the MDM Publisher tool, into IBM Master Data Management. PublisherUser members can onboard data sources, customize the data model, and view or create jobs. PublisherUser users can also view and manage governed data.
- EntityViewer: EntityViewer group members have read-only permission in an IBM Master Data Management instance. They can view the master data, the model, the results of matching, and ongoing jobs.
For information about creating the necessary IBM Master Data Management user groups and granting users access to IBM Master Data Management, see Giving users access to IBM Master Data Management in the IBM Software Hub documentation.
After access has been granted to users, IBM Master Data Management can accept authenticated API calls from those users.
Authentication
To authenticate to the IBM Master Data Management API, you can use either a ZenAPIKey token or a service instance token. You must first generate the token from the IBM Software Hub platform, and then you can include it in the Authorization header of calls to the IBM Master Data Management API.
Authenticating by using a ZenApiKey token
In IBM Software Hub (and Cloud Pak for Data 4.8.4 and later), you can authenticate to the IBM Master Data Management API by using a ZenAPIKey token.
The ZenApiKey token is built from the platform API key. To generate an API key through the IBM Software Hub user interface:
- Log in to the IBM Software Hub web client.
- From the toolbar, click your avatar.
- Click Profile and settings.
- Click API key > Generate new key.
- Click Generate.
- Click Copy and save your key somewhere safe. You cannot recover this key if you lose it.
Alternatively, you can call the IBM Software Hub Generate API key method. Note: this method must be called with Bearer access token authorization.
When you get the API Key from the user experience or from the "generate API Key" method, you must Base64 encode <username>:<api_key> to get the ZenAPIKey token.
Using a ZenAPIKey token to authorize your IBM Master Data Management API calls
Pass the ZenApiKey token in the Authorization header of an API request to authorize your IBM Master Data Management API calls. To provide the ZenApiKey token in an API Authorization header, run the following curl command:
curl -X GET 'https://{cpd_cluster_host}/<API_PATH>' -H 'Authorization: ZenApiKey {token}' -H 'Content-type: application/json'
Replace the following values in the curl command:
<API_PATH>- the path of your desired API (Such as/mdm/model/v1/jobs).{token}- the platform ZenApiKey authentication token.
echo "<username>:<api_key>" | base64
curl -H "Authorization: ZenApiKey {token}" "https://{cpd_cluster_host}/v1/{method}"
Authenticating by using a service instance token (Bearer token)
After authenticating to the IBM Software Hub platform, obtain a service instance token to authenticate to your IBM Master Data Management instance.
Service instance tokens expire 20 minutes after creation.
To retrieve a service instance token, view the service instance details in the IBM Software Hub web interface:
- Log into the IBM Software Hub web interface.
- Navigate to My Instances and select the appropriate IBM Master Data Management instance.
- Click View details.
The service instance token is displayed in the Access Information section.
Service instance tokens are only valid for a particular instance of IBM Master Data Management.
Using a service instance token to authorize your IBM Master Data Management API calls
Pass the service instance token as Bearer token in the Authorization header of an API request to authorize your IBM Master Data Management API calls.
To provide the service instance token in an API Authorization header, run the following curl command:
curl -X GET 'https://{cpd_cluster_host}/<API_PATH>' -H 'Authorization: ZenApiKey {token}' -H 'Content-type: application/json'
Replace the following values in the curl command:
<API_PATH>- the path of your desired API (Such as/mdm/model/v1/jobs).{token}- the service instance authentication token.
curl -H "Authorization: Bearer {token}" "https://{cpd_cluster_host}/v1/{method}"
To get the service instance ID by using the API, run the following curl command:
curl -X GET 'https://{cpd_cluster_host}/zen-data/v3/service_instances?add_on_type=mdm-app' -H 'Authorization: ZenApiKey {token}' -H 'Content-type: application/json'
The service instance ID is returned in the id property of the response.
To get a service instance token by using the API, run the following curl command:
curl -X POST 'https://{cpd_cluster_host}/zen-data/v2/serviceInstance/token' -H 'Authorization: ZenApiKey {token} -d '{
"serviceInstanceID": "<PROVISIONED_INSTANCE_ID>",
"expiryTime:" <EXPIRY_TIME>
}'
Replace the following values in the command:
<PROVISIONED_INSTANCE_ID>- the instance ID of your provisioned instance.<EXPIRY_TIME>- the token expiry time in minutes.
The expiryTime field is optional. If it is not provided, the default expiry time is 20 minutes.
curl -X GET 'https://{cpd_cluster_host}//mdm/model/v1/jobs' -H 'Authorization: ZenAPIKey {token}' -H 'Content-type: application/json'
curl -X PUT --header "Authorization: Bearer {token}" --header "Accept: application/json" "{url}/mdm/configuration/v1/config_data_model/publish_model?project_id=config_42d00915_1497_4d65_90af_cfd09d015769%3A31925406598685396&crn=CRN"
Using API Explorer to access the IBM Master Data Management API
To use the Swagger UI API Explorer with the IBM Master Data Management API, you must first obtain a service instance ID. Then, you can navigate to the Swagger UI API Explorer and use it with the IBM Master Data Management API. Get your service instance ID by using the /zen-data/v3/service_instances API.
Run the following curl command:
curl -X GET 'https://{cpd_cluster_host}/zen-data/v3/service_instances?add_on_type=mdm-app' -H 'Authorization: ZenApiKey {token}' -H 'Content-type: application/json'
The curl command produces the following response in JSON format:
{
"limit":20,
"offset":0,
"service_instances":[
{
"addon_type":"mdm-app",
"addon_version":"1.0.0",
"created_at":"<TIMESTAMP>",
"description":"string",
"display_name":"<SERVICE-DISPLAY-NAME>",
"id":"<SERVICE-INSTANCE-ID>"
...
}
],
"total_count":1
}
The service instance ID is returned in the id property of the response.
After you have the service instance ID, you can authorize the API explorer:
- Navigate to the Swagger API Explorer by browsing to
https://{cpd_cluster_host}/<MDM_INSTANCE_ID>/api-model/explorer/#(replace<MDM_INSTANCE_ID>with your service instance ID number). - Click Authorize at the top of the page.
- Enter the service instance token.
- Click Authorize and then click Close.
The API Explorer passes your service instance token automatically for every API invoked from the API Explorer page.
To get the service instance ID by using the API, run the following curl command:
curl -X GET 'https://{cpd_cluster_host}/zen-data/v3/service_instances?add_on_type=mdm-app' -H 'Authorization: ZenApiKey {token}' -H 'Content-type: application/json'
The service instance ID is returned in the id property of the response.
Running composite transactions
Composite transactions bundle multiple REST API calls into a single composite_service endpoint request. Composite transactions can reduce network overhead, centralize error handling, and produce a consolidated response for the entire sequence of operations.
In the most basic form, a composite transaction contains a series of single transactions, run one after another. You can run composite transactions on your master data to complete several data operations at once by using the \mdm\v1\composite_service API endpoint. The composite operations are treated as a single unit of work, which means:
- If all of the operations complete successfully, then all of the resulting data changes are committed.
- If any one operation fails, then the entire composite transaction fails and any completed changes are rolled back as a single unit of work.
This all-or-none strategy is important so that composite transactions are not left partially complete.
Composite transactions include specially-formatted JSON object payloads that describe how each operation in the composite should be run.
During processing of a composite transaction, the responses from earlier operations can be used as input in the requests for later operations, as required by your business needs. Each composite transaction can also use predefined variables as input for its operation requests.
Composite transactions can also implement conditional logic to determine how each unit of work should be run.
This sample JSON shows an entire composite transaction JSON payload with placeholders:
{
"variables": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"requests": [
{
"request_id": 0,
"method": "string",
"path": "string",
"params": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"req_body": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"exclude_in_response": true
}
],
"choose": {
"if_match": [
{
"condition": "string",
"requests": [
{
"request_id": 0,
"method": "string",
"path": "string",
"params": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"req_body": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"exclude_in_response": true
}
]
}
],
"else": {
"requests": [
{
"request_id": 0,
"method": "string",
"path": "string",
"params": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"req_body": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"exclude_in_response": true
}
],
"message": {
"code": "string",
"text": "string",
"type": "string"
}
}
},
"for_each": {
"select": "string",
"requests": [
{
"request_id": 0,
"method": "string",
"path": "string",
"params": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"req_body": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"exclude_in_response": true
}
],
"choose": {
"if_match": [
{
"condition": "string",
"requests": [
{
"request_id": 0,
"method": "string",
"path": "string",
"params": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"req_body": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"exclude_in_response": true
}
]
}
],
"else": {
"requests": [
{
"request_id": 0,
"method": "string",
"path": "string",
"params": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"req_body": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"exclude_in_response": true
}
]
"message": {
"code": "string",
"text": "string",
"type": "string"
}
}
}
}
}
In this example scenario, a data steward wants to perform a probabilistic search for a particular payload and then perform the following operations based on the result of the probabilistic search:
- If there are no records who has a score above ALT(Auto link threshold), then create a new record in the system.
- If there exists records in the system who has a similarity score above ALT (autolink threshold), get the system identifier of the record using GET record call and then add a new additional attribute to all these records using PATCH record.
Here is the JSON payload for this scenario:
{
"variables": {
"last_name": "HAWKIN",
"given_name": "DAVID",
"phone_number": "647-255-1021",
"person_record_id": "1223345"
},
"requests": [
{
"request_id": 1,
"method": "POST",
"path": "/mdm/v1/probabilistic_search",
"params": {
"include_logical_key": true,
"details": "low",
"min_score": "0",
"max_score": 200,
"offset": 0,
"entity_type": "person_entity",
"limit": 10
},
"req_body": {
"record_type": "person",
"attributes": {
"home_telephone": {
"phone_number": "{$.variables.phone_number}"
},
"legal_name": {
"last_name": "{$.variables.last_name}",
"given_name": "{$.variables.given_name}"
}
}
}
}
],
"for_each": {
"select": "$.responses[?(@.request_id == 1)].response.records[?(@.score > 110)] as item",
"requests": [
{
"request_id": 2,
"path": "/mdm/v1/records/bysourceid",
"method": "GET",
"params": {
"record_type": "person",
"record_id": "{$.item.record_id}",
"record_source": "{$.item.record_source}"
}
},
{
"request_id": 3,
"method": "PATCH",
"path": "/mdm/v1/records/{$.responses[?(@.request_id == 2)].response.record.id}",
"req_body": {
"attributes": {
"mailing_address": {
"province_state": "CA",
"city": "COLOMA",
"zip_postal_code": "95613",
"address_line1": "5955 EAST ST ANNE STREET",
"address_line2": "Unit-89"
}
},
"type": "record",
"type_name": "person"
}
}
]
}
}
When to use composite transactions
A composite transaction is generally used to group related or dependent business transactions that you want to execute as a single unit of work. It is also valuable if you plan to implement simple if-match/else or looping logic between transactions. Composite transactions in IBM Master Data Management are often used by upstream or downstream systems in an Extract, Transform, and Load (ETL) flow to work with master data.
You can use a composite transaction to combine multiple, related transactions and avoid calling the IBM Master Data Management server multiple times. For example, consider a use case where you need to gather Customer 360 type information. You could run a composite transaction that performs multiple GET operations to return information about all of the records, relationships, groups, and hierarchies connected to a single person entity.
Composite transactions are not always the correct choice. Since all operations in a composite are run as one unit of work, you should refrain from grouping too many single transactions in one composite. The more single transactions there are in a composite, the longer it will take to complete the unit of work. This can lead to issues with transaction timeout errors.
Tip: To avoid timeout problems, try not to include more than four single operations within each composite transaction.
This composite transaction sample has two parts: (a) get a record by its source ID, and then (b) take the recordNumber from the response of the first request and use it to complete a different operation:
{
"requests": [
{
"requestId": 1,
"path": "mdm/v1/records/bysourceid",
"method": "GET",
"params": {
"recordType": "person",
"recordId": "34353434",
"recordSource": "MDM"
}
},
{
"requestId": 2,
"path": "mdm/v1/records/{$.requests[?(@.requestId == 1)].response.attributes.recordNumber}",
"method": "PUT",
"req_body": {
<REQUEST-BODY>
}
}
]
}
Example composite transaction scenario
For example, consider a composite transaction containing three operations: two that add two new records into the system, and then another that creates a relationship between them. This transaction includes three separate transactions:
Post RecordPost RecordPost Relationships
After the first two transactions are complete, the Post Relationships transaction needs to refer to the recordNumber values of the records created in the first two Post Record transactions. The composite_service transaction can use the two recordNumber values from the Post Record responses in the Post Relationships request. For details, see Using values from variables or responses in requests.
Formatting the JSON payload of a composite transaction
A basic composite transaction is a series of single API transactions, with the instructions for performing these transactions contained in the composite transasction's JSON payload.
The JSON of each composite transaction has two main sections:
- An optional
variablessection containing values to be shared by all of the component operations. - An array of transaction API
requests, optionally including conditions and optionally using values from thevariablessection or from responses of earlier requests.
The basic JSON structure is as follows:
{
"variables":
{
<VARIABLE-DEFINITIONS>
},
"requests": [
{
<REQUEST-1>
},
{
<REQUEST-2>
},
...
{
<REQUEST-n>
}
]
}
In the variables section, replace
In the requests section, the JSON for each request object includes the following parameters:
request_id: A unique ID for this request within the composite transaction. You can use this ID to refer to this request in subsequent requests within the composite. For example, a request can refer to the ID of a previous request to allow it to use some of its returned values.exclude_in_response: Determines whether to exclude the response of this request in the final response payload of thecomposite_servicetransaction.true: Exclude from final responsefalse: Include in final response
method: The type of REST API method to use in this request:GET,POST,PUT,DELETE, orPATCH.path: The path to the IBM Master Data Management API method to use in this request. For a list of supported API endpoints, see Supported APIs for composite transactions.params: The parameters required for this API request, if applicable.req_body: The JSON payload content for this API request, if applicable.
Here is the basic structure of the request objects:
{
"requests": [
{
"requestId": <ID>,
"path": "<ENDPOINT-PATH>",
"method": "<METHOD-TYPE>",
"params": {
<PARAMETERS>
}
},
{
"requestId": <ID>,
"path": "<ENDPOINT-PATH>",
"method": "<METHOD-TYPE>",
"req_body": {
<REQUEST-BODY>
}
}
]
}
This sample shows the JSON for substituting values from variables
{
"variables": {
"recordNumber": 442234234
},
"requests": [
{
"path": "mdm/v1/records/${$.variables.recordNumber}",
"method": "GET"
},
{
"path": "mdm/v1/records/${$.variables.recordNumber}/relationships",
"method": "GET"
}
]
}
Using values from variables or responses in requests
When structuring a composite transaction, you can substitute values either from a variable (defined in the variables section of the request) or from the response payload of an earlier request in the composite. You can substitute values in either the path element or the req_body element of a request.
To substitute values in a request, use the standard JSONPath syntax to select and extract the JSON values from within a given JSON payload. Enclose the substitute variables in curly braces. Within the curly braces, you can optionally use the standard JSONPath expressions.
This sample shows the JSON for substituting values from responses in composite transactions:
{
"requests": [
{
"requestId": 1,
"path": "mdm/v1/records/bysourceid",
"method": "GET",
"params": {
"recordType": "person",
"recordId": "34353434",
"recordSource": "MDM"
}
},
{
"requestId": 2,
"path": "mdm/v1/records/{$.requests[?(@.requestId==1)].response.attributes.recordNumber}",
"method": "PUT",
"req_body": {
"attributes": {
"legal_name": {
"given_name": "Jane"
},
"mailing_address": {
"province_state": "CA",
"city": "COLOMA",
"zip_postal_code": "95613",
"address_line1": "5955 EAST ST ANNE STREET",
"address_line2": "Unit-89"
},
"birth_date": {
"value": "22-12-1975",
"recordLastUpdated": "{$.requests[?(@.requestId==1)].response.attributes.recordNumber}"
}
},
"type": "record",
"type_name": "person"
}
}
]
}
If-match/else logic
The if-match/else condition lets you choose which operation to run based on the response of an earlier operation in the composite. Use standard JSONPath comparison functions to define each conditions.
To use if-match/else logic, include a choose JSON object in your payload that uses the following syntax:
{
"choose": {
"if_match": [
{
"condition": "{JSONPath comparison}",
"requests": [
{
<REQUEST-OBJECT>
}
]
},
{
"condition": "{JSONPath comparison}",
"requests": [
{
<REQUEST-OBJECT>
}
]
}
],
"else_block": {
"requests": [
{
<REQUEST-OBJECT>
}
]
}
}
}
Each choose object can contain one if-match object.
Each if-match object can contain multiple condition objects and one else_block object.
If none of the conditions matches, then the else_block section is run.
Providing custom error messages in composite transactions that use if-match/else logic
If your composite transaction includes if-match/else logic, but none of the conditions match, you might want to provide a meaningfull error message in the response to describe the situation. In the composite transaction, you can use the message section of the else object to include text that the user sees when none of the conditions match.
To include a message section, use the following syntax:
"message": {
"code": "<UNIQUE-MESSAGE-ID>",
"text": "<TEXT-TO-DISPLAY>",
"type": "<MESSAGE-TYPE>"
}
The <MESSAGE-TYPE> can be one of the following values:
error: If the type iserror, then the composite transaction fails and all changes are rolled back.warning: If the type iswarning, the composite transaction is allowed to complete, but the specified message is returned to the user.
This sample shows to use if-match/else logic in a composite transaction:
{
"requests": [
{
"request_id": 1,
"path": "/mdm/v1/records/bysourceid",
"method": "GET",
"params": {
"record_type": "person",
"record_id": "12345",
"record_source": "MDM"
}
}
],
"choose": {
"if_match": [
{
"condition": "{$.responses[?(@.request_id == 1)].response.data.code} == '404'",
"requests": [
{
"request_id": 2,
"method": "POST",
"path": "/mdm/v1/records",
"req_body": {
"attributes": {
"maiden_name": {
"last_name": "PATTERSON",
"given_name": "CONNIE"
},
"legal_name": {
"last_name": "HAWKIN",
"given_name": "DAVID"
},
"display_name": {
"value": "DAVID HAWKIN"
},
"record_start": {
"value": "2019-02-01 07:42:56.627"
},
"social_insurance_number": {
"identification_number": "867807131"
},
"gender": {
"value": "M"
},
"personal_email": {
"email_id": "908254903577664099"
},
"record_source": "SourceA",
"mobile_telephone": {
"phone_number": "647-255-1021"
},
"record_id": "12345",
"record_last_updated": "1549006976633"
},
"type_name": "person",
"type": "record"
}
}
]
}
],
"else": {
"message": {
"code": "1200",
"text": "If condition failed",
"type": "Warning"
}
}
}
}
Looping logic
The for_each condition lets you iterate through a collection of objects (such as from a response to a GET operation) and then run a secondary operation on each of the objects.
To use looping logic, include a for_each JSON object in your payload that uses the following syntax:
{
"for_each": {
"select": "{$.responses.requests[?(@.requestId == <REQUEST-ID>)].response.*} as var",
"requests": [
{
<REQUEST-OBJECT>
}
]
}
}
The for_each object contains a select attribute and a var attribute:
- The mandatory
selectattribute points to an object-set-expression, which gets evaluated against a collection of objects at runtime. - The
varattribute is a reference name that you can give to associate it with each object in the collection, as the collection is iterated through.
In each for_each object, you can include one or more requests for sub-transactions. When the object-set expression is evaluated to return a collection of objects, each of the requests is run as many times as there are objects in the collection.
You can also include a choose object, which enables you to further qualify the loop with if-match/else logic.
This sample shows how to use a looping condition in a composite transaction to update the addresses of all records that match the search criteria:
{
"variables": {},
"requests": [
{
"request_id": 1,
"method": "POST",
"path": "/mdm/v1/search",
"params": {
"return_type": "results",
"limit": "2",
"offset": "0",
"include_total_count": true,
"include": null,
"exclude": null
},
"req_body": {}
}
],
"for_each": {
"select": "$.responses[0].response.data.results as item",
"choose": {
"if_match": [
{
"condition": "{$.item.type_name} != \"person\"",
"requests": [
{
"loop_count": 1,
"request_id": 5,
"method": "PATCH",
"path": "/mdm/v1/records/{$.item.record_number}",
"req_body": {
"attributes": {
"mailing_address": {
"province_state": "CA",
"city": "COLOMA",
"zip_postal_code": "95613",
"address_line1": "5955 EAST ST ANNE STREET",
"address_line2": "Unit-89"
}
},
"type": "record",
"type_name": "person"
}
}
]
}
],
"else": {
"message": {
"code": "1200",
"text": "If condition failed",
"type": "warning"
}
}
}
}
}
Running a composite transaction
To run a composite transaction:
-
Define and structure the JSON payload of your composite transaction:
- Optionally, define variables in the
variablessection. - Define each request in the
requestssection, using conditions and substituting values as needed.
- Optionally, define variables in the
-
Submit the JSON as part of an API request that uses the
composite_serviceendpoint.PUT /mdm/v1/composite_service Host: https://api.dataplatform.cloud.ibm.com/ Authorization: Bearer <BEARER-TOKEN> { "variables": { "<VARIABLE-DEFINITIONS>" }, "requests": [ { "<REQUEST-1>" }, { "<REQUEST-2>" }, ... { "<REQUEST-n>" } ] }
Supported APIs for composite transactions
You can include the following data API endpoints as operations within your composite transactions. These endpoints are all included in the {{ site.data.keyword.mdm-oc_short }} data microservice, with the exception of the probabilistic_search endpoint. Transactions that include bulk operations or that are asynchrous are not supported.
| Endpoint | Method | Operation ID |
|---|---|---|
| /mdm/v1/entities/{id}/records | GET | list_data_records_for_entity |
| /mdm/v1/entities/{id} | GET | get_data_entity |
| /mdm/v1/entities/{id} | PUT | replace_data_entity |
| /mdm/v1/entities/{id} | PATCH | update_data_entity |
| /mdm/v1/entities/{id}/relationships | GET | list_data_relationships_for_entity |
| /mdm/v1/entities/{id}/related_records | GET | list_data_related_records_for_entity |
| /mdm/v1/groups/{id} | GET | get_group |
| /mdm/v1/groups/{id} | PUT | put_group |
| /mdm/v1/groups/{id} | DELETE | delete_data_group |
| /mdm/v1/groups/by_associated_object/{id} | GET | get_all_groups |
| /mdm/v1/groups/by_associated_object/{id} | PATCH | patch_by_associated_object |
| /mdm/v1/groups | POST | create_group |
| /mdm/v1/groups | GET | get_groups |
| /mdm/v1/groups/search | POST | search_groups |
| /mdm/v1/groups/{id}/associations | PATCH | patch_group_associations |
| /mdm/v1/groups/bysourceid | GET | get_group_by_source_id |
| /mdm/v1/hierarchies/by_associated_object/{id} | GET | get_all_hierarchy |
| /mdm/v1/hierarchies/{id} | GET | get_hierarchy |
| /mdm/v1/hierarchies/{id} | DELETE | delete_data_hierarchy |
| /mdm/v1/hierarchies/{id} | PATCH | update_data_hierarchy |
| /mdm/v1/hierarchies/{id}/configuration | GET | get_hierarchy_configuration |
| /mdm/v1/hierarchies/{id}/configuration | PUT | put_hierarchy_configuration |
| /mdm/v1/hierarchies/{id}/configuration | DELETE | delete_hierarchy_configuration |
| /mdm/v1/hierarchies/{id}/broken_branches | GET | hierarchy_broken_branches |
| /mdm/v1/hierarchies/{id}/centric_view | GET | get_hierarchy_node_centric_view |
| /mdm/v1/hierarchies | POST | create_data_hierarchy |
| /mdm/v1/hierarchies | GET | get_all_hierarchies |
| /mdm/v1/hierarchies/{id}/branches/{branch_node_id} | DELETE | delete_hierarchy_branch |
| /mdm/v1/hierarchies/{id}/member_search | GET | hierarchy_member_search |
| /mdm/v1/records/{id}/related_records | GET | list_data_related_records_for_record |
| /mdm/v1/records/{id}/entities | GET | list_data_entities_for_record |
| /mdm/v1/records/{id}/accumulated_updates | GET | potential_overlay_records |
| /mdm/v1/records/{id}/relationships | GET | list_data_relationships_for_record |
| /mdm/v1/records/{id} | GET | get_data_record |
| /mdm/v1/records/{id} | PUT | replace_data_record |
| /mdm/v1/records/{id} | DELETE | delete_data_record |
| /mdm/v1/records/{id} | PATCH | patch_data_record |
| /mdm/v1/records | GET | list_data_records |
| /mdm/v1/records | POST | create_data_record |
| /mdm/v1/records/bysourceid | GET | get_data_record_params |
| /mdm/v1/records/{id}/relationships/{relationship_id} | GET | get_data_relationship_for_record |
| /mdm/v1/records/bysource_system_id | GET | get_data_record_multisource |
| /mdm/v1/relationships | POST | create_data_relationship |
| /mdm/v1/relationships/{id} | GET | get_data_relationship |
| /mdm/v1/relationships/{id} | PUT | replace_data_relationship |
| /mdm/v1/relationships/{id} | DELETE | delete_data_relationship |
| /mdm/v1/search | POST | search_data |
| /mdm/v1/probabalistic_search | POST | search_matching_index |
Methods
Get Config Data Model Type Attributes
Gets all the attributes of a specific type for the data model present in configuration space.
GET /mdm/v1/config_data_model/attributes
Request
Query Parameters
The cloud resource name of the service.
The type category of the data model attributes
The type name of the type category to identify data model attributes
Response
The Config Data Model attributes for a record type.
Collection of Data Model Attribute property for a record type.
Status Code
Config Data Model Type attributes retrieved.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Error in fetching Config Data Model Record Type attributes.
{ "attributes": [ { "name": "record_id", "default_display_name": "Record identifier" }, { "name": "record_source", "default_display_name": "Record source" } ] }
Get config data model
Gets the data model present in configuration space.
GET /mdm/v1/config_data_model
Response
Collection of record and relationship types and system properties definition
Collection of common fields applicable to various types in data model
Collection of user defined attribute types. The attribute type key must be lower snake case (i.e. address)
- attribute_types
A single user defined attribute type
Collection of relationship types. The relationship type key must be lower snake case (i.e. employment)
- relationship_types
A single relationship type
The request language and location (i.e. enUS)
Collection of user defined record types. The record type key must be lower snake case (i.e. person, organization)
- record_types
A single user defined record type
Collection of hierarchy types. The hierarchy type key must be lower snake case (i.e. legal_hierarchy)
- hierarchy_types
A single user defined hierarchy type
Collection of node types. The node type key must be lower snake case (i.e. hierarchy_node)
- node_types
A single user defined node type
Collection of group types. The group type key must be lower snake case (i.e. baseball_club)
- group_types
A single user defined group type
The flag which stores whether data model is publised.
Status Code
Config data model is returned
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting config data model. An internal error occurred while attempting to get config data model.
{ "record_types": [ { "name": "person", "default_display_name": "person", "properties": [ { "name": "record_source", "data_type": "String", "default_display_name": "Record Source", "designation": "source" }, { "name": "social_security_number", "data_type": "identification", "cardinality": "*", "default_display_name": "Social Security Number" } ], "source_systems": [ { "name": "MDMSP", "default_display_name": "MDMS Person", "quality_factors": { "completeness": 100, "accuracy": 100, "correctness": 100, "age_relevancy": 100, "data_relevancy": 100, "consistency": 100 } } ] } ], "data_types": [ { "name": "identification", "default_display_name": "identification", "properties": [ { "name": "identification", "data_type": "String", "default_display_name": "Identification Value" }, { "name": "identification_number", "data_type": "String", "default_display_name": "Identification Number" } ] } ] }
Replace Config Data Model
Replaces the config data model present in configuration space.
PUT /mdm/v1/config_data_model
Request
Collection of record and relationship types and system properties definition
{
"record_types": [
{
"name": "person",
"default_display_name": "person",
"properties": [
{
"name": "record_source",
"data_type": "String",
"default_display_name": "Record Source",
"designation": "source"
},
{
"name": "social_security_number",
"data_type": "identification",
"cardinality": "*",
"default_display_name": "Social Security Number"
}
],
"source_systems": [
{
"name": "MDMSP",
"default_display_name": "MDMS Person",
"quality_factors": {
"completeness": 100,
"accuracy": 100,
"correctness": 100,
"age_relevancy": 100,
"data_relevancy": 100,
"consistency": 100
}
}
]
}
],
"data_types": [
{
"name": "identification",
"default_display_name": "identification",
"properties": [
{
"name": "identification",
"data_type": "String",
"default_display_name": "Identification Value"
},
{
"name": "identification_number",
"data_type": "String",
"default_display_name": "Identification Number"
}
]
}
]
}Collection of common fields applicable to various types in data model
Collection of user defined attribute types. The attribute type key must be lower snake case (i.e. address)
- attribute_types
A single user defined attribute type
Collection of relationship types. The relationship type key must be lower snake case (i.e. employment)
- relationship_types
A single relationship type
The request language and location (i.e. enUS)
Collection of user defined record types. The record type key must be lower snake case (i.e. person, organization)
- record_types
A single user defined record type
Collection of hierarchy types. The hierarchy type key must be lower snake case (i.e. legal_hierarchy)
- hierarchy_types
A single user defined hierarchy type
Collection of node types. The node type key must be lower snake case (i.e. hierarchy_node)
- node_types
A single user defined node type
Collection of group types. The group type key must be lower snake case (i.e. baseball_club)
- group_types
A single user defined group type
The flag which stores whether data model is publised.
Response
Collection of record and relationship types and system properties definition
Collection of common fields applicable to various types in data model
Collection of user defined attribute types. The attribute type key must be lower snake case (i.e. address)
- attribute_types
A single user defined attribute type
Collection of relationship types. The relationship type key must be lower snake case (i.e. employment)
- relationship_types
A single relationship type
The request language and location (i.e. enUS)
Collection of user defined record types. The record type key must be lower snake case (i.e. person, organization)
- record_types
A single user defined record type
Collection of hierarchy types. The hierarchy type key must be lower snake case (i.e. legal_hierarchy)
- hierarchy_types
A single user defined hierarchy type
Collection of node types. The node type key must be lower snake case (i.e. hierarchy_node)
- node_types
A single user defined node type
Collection of group types. The group type key must be lower snake case (i.e. baseball_club)
- group_types
A single user defined group type
The flag which stores whether data model is publised.
Status Code
Config data model is replaced.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem replacing config data model. An internal error occurred while attempting to replace the config data model.
{ "record_types": [ { "name": "person", "default_display_name": "person", "properties": [ { "name": "record_source", "data_type": "String", "default_display_name": "Record Source", "designation": "source" }, { "name": "social_security_number", "data_type": "identification", "cardinality": "*", "default_display_name": "Social Security Number" } ], "source_systems": [ { "name": "MDMSP", "default_display_name": "MDMS Person", "quality_factors": { "completeness": 100, "accuracy": 100, "correctness": 100, "age_relevancy": 100, "data_relevancy": 100, "consistency": 100 } } ] } ], "data_types": [ { "name": "identification", "default_display_name": "identification", "properties": [ { "name": "identification", "data_type": "String", "default_display_name": "Identification Value" }, { "name": "identification_number", "data_type": "String", "default_display_name": "Identification Number" } ] } ] }
Get configuration ms health status
Gets the configuration health status.
GET /mdm/v1/configuration_health
Request
Query Parameters
The cloud resource name of the service.
a target of the health check, ie. fdb, rabbitmq
Default:
all
Response
Response object for get configuration api health
Status of configuration api health.
Severity of configuration api health.
Additional details of the configuration api health status.
Status Code
Configuration ms health status is returned
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting configuration ms health status. An internal error occurred while attempting to get configuration ms health status
{ "status": "healthy/unhealthy.", "severity": "info/critical.", "message": "Additional details of the configuration health status.", }
Fetch the current value of job status polling metadata
Fetch the current value of job status polling metadata. This is useful to debug the issues with auto resumption of matching/loading job after pod restart
GET /mdm/v1/job_status_polling_metadata/{process_name}Request
Path Parameters
The process name to proceed matching or loading
Example:
matching
Query Parameters
The cloud resource name of the service.
Response
Status Code
Fetched job status polling metadata successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Job status poling metadata do not exist in the system.
Unexpected error occured while fetching job status poling metadata.
loading
matching
Replace job status polling metadata
Replace job status polling metadata
PUT /mdm/v1/job_status_polling_metadata/{process_name}Request
Path Parameters
The process name to proceed matching or loading
Example:
matching
Query Parameters
The cloud resource name of the service.
Request details for creating comparison record pair decision.
{
"polling_job_invocation_last_updated_time": "2024-01-01T10:10:10.122Z",
"polling_job_owner_instance_name": "nmdm-config-12344"
}{
"polling_job_invocation_last_updated_time": "2024-01-01T10:10:10.122Z",
"polling_job_owner_instance_name": "nmdm-config-12344"
}The identifier for the comparison pair.
The identifier for the record 1 of the comparison pair.
The identifier for the record 1 of the comparison pair.
The user decision on comparison of the record pair.
The data type identifier of the comparison pair records.
The data type identifier of the comparison pair records.
The entity type identifier of the comparison pair records.
Response
Pair and corresponding user decision details.
The id of the comparison record pair.
Example:
6096bfdf_40976432_8320The identified category of the comparison record pair.
Example:
matchedThe record number of the first record of the comparison record pair.
Example:
41001160The record number of the second record of the comparison record pair.
Example:
41001The decision taken by the user for the comparison record pair.
Example:
MatchThe data type identifier of the comparison pair records.
Example:
personThe last modified date of the pair decision.
Example:
2022-11-dd 13:32:12
Status Code
Job status polling metadata replaced successfully.
The request you used is invalid. Please revalidate and try again.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Internal error occurred in replacing Job status polling metadata.
No Sample Response
Response
Response wrapper with details of Asset Mapping patterns.
System generated id when a mapping pattern was created/updated.
System generated timestamp when a mapping pattern was last updated
Collection of Asset Mapping Patterns for Data Asset.
Status Code
Fetched existing mapping pattern successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Mapping patterns do not exist in the system.
Unexpected error occured while fetching mapping patterns.
{ "id": "config_1:4186180239988952", "last_update_date": "2024-04-12T06:11:09.000Z", "created_date": "2024-04-12T00:00:00.000Z", "mapping_patterns": [ { "mapping_pattern_hash": "307e7a7d9757fb186ad8f106d4d92279e366b6c1f723b4de068f65a63d2303f3", "mapping_pattern_id": "436cbd13-fd5b-380d-bb2a-870cb64983e5", "mapping_pattern_name": "", "source_of_mapping": "config_metadata", "mapping_pattern_last_updated_date": "2024-01-05T15:28:12.000Z", "assets": [ { "project_id": "", "asset_id": "", "asset_name": "" } ], "asset_record_type": "person", "asset_type": "person", "asset_mappings": [ { "key": "COLUMN1", "data_mapping_name": "record_id", "exclude_column": false }, { "key": "COLUMN2", "data_mapping_attribute_type": "person_name", "data_mapping_name": "legal_name.middle_name", "exclude_column": false } ] } ] }
Request
Response wrapper with details of Asset Mapping patterns.
{
"id": "config_1:4186180239988952",
"last_update_date": "2024-04-12T06:11:09.000Z",
"created_date": "2024-04-12T00:00:00.000Z",
"mapping_patterns": [
{
"mapping_pattern_hash": "307e7a7d9757fb186ad8f106d4d92279e366b6c1f723b4de068f65a63d2303f3",
"mapping_pattern_id": "436cbd13-fd5b-380d-bb2a-870cb64983e5",
"mapping_pattern_name": "",
"source_of_mapping": "config_metadata",
"mapping_pattern_last_updated_date": "2024-01-05T15:28:12.000Z",
"assets": [
{
"project_id": "",
"asset_id": "",
"asset_name": ""
}
],
"asset_record_type": "person",
"asset_type": "person",
"asset_mappings": [
{
"key": "COLUMN1",
"data_mapping_name": "record_id",
"exclude_column": false
},
{
"key": "COLUMN2",
"data_mapping_attribute_type": "person_name",
"data_mapping_name": "legal_name.middle_name",
"exclude_column": false
}
]
}
]
}System generated id when a mapping pattern was created/updated.
System generated timestamp when a mapping pattern was last updated
Collection of Asset Mapping Patterns for Data Asset.
Response
Response wrapper with details of Asset Mapping patterns.
System generated id when a mapping pattern was created/updated.
System generated timestamp when a mapping pattern was last updated
Collection of Asset Mapping Patterns for Data Asset.
Status Code
Stored/Replaced mapping pattern successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Unexpected error occured while storing/updating mapping patterns.
{ "mapping_patterns": [ { "mapping_pattern_hash": "307e7a7d9757fb186ad8f106d4d92279e366b6c1f723b4de068f65a63d2303f3", "mapping_pattern_id": "436cbd13-fd5b-380d-bb2a-870cb64983e5", "mapping_pattern_name": "", "source_of_mapping": "config_metadata", "mapping_pattern_last_updated_date": "2024-01-05T15:28:12.000Z", "assets": [ { "project_id": "", "asset_id": "", "asset_name": "" } ], "asset_record_type": "person", "asset_type": "person", "asset_mappings": [ { "key": "COLUMN1", "data_mapping_name": "record_id", "exclude_column": false }, { "key": "COLUMN2", "data_mapping_attribute_type": "person_name", "data_mapping_name": "legal_name.middle_name", "exclude_column": false } ] } ] }
Get matching statistics
Gets the matching statistics (such as number of entities, entity size distributions, etc.) for the specified record type.
GET /mdm/v1/match_statistics
Request
Query Parameters
The cloud resource name of the service.
Record type of match statistics
Example:
personEntity type of match statistics
Example:
person_entity
Response
The Statistics of the match process results.
The status of match process execution.
- status
The total time consumed to run match process.
Example:
159000The match process execution completion date.
Example:
2021-03-16T13:04:34.000ZCount of the comparisons made during match process.
Example:
120Count of the comparison buckets created during match process.
Example:
9
The summary of statistics of the match process results.
- summary
The count of entities having size of one.
Example:
300The number of distinct sources of data records.
Example:
4The number of data assets processed by the match process.
Example:
9The total number of data records processed by the match process.
Example:
2500The total number of entities generated by the match process.
Example:
950
The breakdown statistics of entities generated by match process.
- entity_breakdown
The count of the entities.
Example:
500The minimum size of the entity.
Example:
1The maximum size of the entity.
Example:
4The variance of the entity sizes.
The average of the entity sizes.
Example:
2The standard deviation of the entity sizes.
The size statistics of entities generated by the match process.
The size distribution statistics of entities generated by the match process.
Status Code
Statistics retrieved
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Error occurred in get resource process. Resource does not exist
Error in fetching statistics
{ "entity_breakdown": { "average": 2, "standard_deviation": 0, "variance": 0, "max": 4, "count": 500, "min": 1 }, "largest_entities": [ { "entity_id": 40976536, "entity_size": 4 } ], "entity_size_distribution": [ { "entity_count": 5, "entity_size": 120 } ], "summary": { "total_records": 2500, "singleton_count": 300, "distinct_sources": 4, "data_assets": 9, "entities_count": 950 }, "status": { "date_completed": {}, "comparison_count": 120, "bucket_count": 9, "run_time": 159000 } }
Response
The pair offset of the pair analysis.
Example:
12Tuned config of the pair analysis.
Example:
{'threshold'': 0.156,}- tuned_config
The base config of the pair analysis.
Example:
{'threshold'': 0.156,}- base_config
The id pair generation job.
Example:
b221364e-b98c-11ec-8422-0242ac120002The id of tuning job .
Example:
b221364e-b98c-11ec-8422-0242ac120002The status of the pair analysis.
Example:
CompletedThe record type of the pair analysis.
Example:
personThe entity type of the pair analysis.
Example:
person_entity
Status Code
Pair analysis is fetched successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
The pair analysis for the given record and entity type not found.
Error in getting Pair analysis.
No Sample Response
Add pair analysis results
Adds a new pair analysis in configuration space. This allows to store result of tuning job with thresholds
POST /mdm/v1/pair_analysis
Request
{
"entity_type": "person_entity",
"record_type": "person",
"tuned_config": "{'threshold': 0.156,}",
"base_config": "{'threshold': 0.156,}",
"pair_offset": 1,
"pair_gen_job_id": "121",
"tuning_job_id": "121",
"status": "Completed"
}The pair offset of the pair analysis.
Example:
12Tuned config of the pair analysis.
Example:
{'threshold'': 0.156,}- tuned_config
The base config of the pair analysis.
Example:
{'threshold'': 0.156,}- base_config
The id pair generation job.
Example:
b221364e-b98c-11ec-8422-0242ac120002The id of tuning job .
Example:
b221364e-b98c-11ec-8422-0242ac120002The status of the pair analysis.
Example:
CompletedThe record type of the pair analysis.
Example:
personThe entity type of the pair analysis.
Example:
person_entity
Response
The pair offset of the pair analysis.
Example:
12Tuned config of the pair analysis.
Example:
{'threshold'': 0.156,}- tuned_config
The base config of the pair analysis.
Example:
{'threshold'': 0.156,}- base_config
The id pair generation job.
Example:
b221364e-b98c-11ec-8422-0242ac120002The id of tuning job .
Example:
b221364e-b98c-11ec-8422-0242ac120002The status of the pair analysis.
Example:
CompletedThe record type of the pair analysis.
Example:
personThe entity type of the pair analysis.
Example:
person_entity
Status Code
Pair Analysis created successfully.
Error in pair Analysis. The request you used is invalid. Please revalidate and try again.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Internal error occured in creating asset for the given Pair analysis data.
No Sample Response
Patch pair analysis
Updates the pair analysis. Unknown attributes will be ignored
PATCH /mdm/v1/pair_analysis
Request
Query Parameters
The cloud resource name of the service.
Record type of comparison pair
Entity type of comparison pair
{
"tuned_config": "{'threshold'': 0.156,}",
"base_config": "{'threshold'': 0.156,}",
"pair_offset": 1,
"pair_gen_job_id": "121",
"tuning_job_id": "121",
"status": "Completed"
}The pair offset of the pair analysis data.
Example:
13Tuned config of the pair analysis data.
Example:
{'threshold'': 0.155,}- tuned_config
The base config of the pair analysis data.
Example:
{'threshold'': 0.159,}- base_config
The id of pair generation job.
Example:
b221364e-b98c-11ec-8422-0242ac120007The tuning job id.
Example:
b221364e-b98c-11ec-8422-0242ac1200664The pair analysis status
Example:
Completed
Response
The pair offset of the pair analysis data.
Example:
13Tuned config of the pair analysis data.
Example:
{'threshold'': 0.155,}- tuned_config
The base config of the pair analysis data.
Example:
{'threshold'': 0.159,}- base_config
The id of pair generation job.
Example:
b221364e-b98c-11ec-8422-0242ac120007The tuning job id.
Example:
b221364e-b98c-11ec-8422-0242ac1200664The pair analysis status
Example:
Completed
Status Code
Pair analysis was updated successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
The pair analysis for the given record and entity type not found.
Error updating pair analysis.
No Sample Response
Update the pair analysis and create pair decision
Update the pair analysis and create pair decision.
PATCH /mdm/v1/pair_analysis/update_pair
Request
Query Parameters
The cloud resource name of the service.
Record type of comparison pair
Entity type of comparison pair
Request containing both pair decision and pair analysis data.
{
"pair_decision": {
"score": 13,
"comparison_details": {
"address_compare": 8.6,
"identifiers_compare": 6.666,
"date_compare": 9.99,
"pername_compare": 3.01
},
"id": "79c7bb2a_11541749544868939_13111749544878277",
"category": "unmatched",
"record_number_1": "11541749544868939",
"record_number_2": "13111749544878277",
"user_decision": "Match",
"record_type": "person",
"entity_type": "person_entity"
},
"pair_analysis": {
"pair_offset": 40
}
}The decision details for the record pair.
- pair_decision
The identifier for the comparison pair.
The identifier for the record 1 of the comparison pair.
The identifier for the record 1 of the comparison pair.
The user decision on comparison of the record pair.
The data type identifier of the comparison pair records.
The data type identifier of the comparison pair records.
The entity type identifier of the comparison pair records.
The analysis details for the record pair.
- pair_analysis
The pair offset of the pair analysis data.
Example:
13Tuned config of the pair analysis data.
Example:
{'threshold'': 0.155,}- tuned_config
The base config of the pair analysis data.
Example:
{'threshold'': 0.159,}- base_config
The id of pair generation job.
Example:
b221364e-b98c-11ec-8422-0242ac120007The tuning job id.
Example:
b221364e-b98c-11ec-8422-0242ac1200664The pair analysis status
Example:
Completed
Response
Request containing both pair decision and pair analysis data.
The decision details for the record pair.
- pair_decision
The identifier for the comparison pair.
The identifier for the record 1 of the comparison pair.
The identifier for the record 1 of the comparison pair.
The user decision on comparison of the record pair.
The data type identifier of the comparison pair records.
The data type identifier of the comparison pair records.
The entity type identifier of the comparison pair records.
The analysis details for the record pair.
- pair_analysis
The pair offset of the pair analysis data.
Example:
13Tuned config of the pair analysis data.
Example:
{'threshold'': 0.155,}- tuned_config
The base config of the pair analysis data.
Example:
{'threshold'': 0.159,}- base_config
The id of pair generation job.
Example:
b221364e-b98c-11ec-8422-0242ac120007The tuning job id.
Example:
b221364e-b98c-11ec-8422-0242ac1200664The pair analysis status
Example:
Completed
Status Code
Pair analysis was updated and Pair decision was created successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
The pair analysis for the given record and entity type not found.
Error updating pair analysis and creating pair decision
No Sample Response
Get pair analysis
Gets the pair analysis for given entity and record type.
GET /mdm/v1/pair_analysis/data
Request
Query Parameters
The cloud resource name of the service.
Record type of comparison pair
Entity type of comparison pair
Response
The pair offset of the pair analysis.
Example:
12Tuned config of the pair analysis.
Example:
{'threshold'': 0.156,}- tuned_config
The base config of the pair analysis.
Example:
{'threshold'': 0.156,}- base_config
The id pair generation job.
Example:
b221364e-b98c-11ec-8422-0242ac120002The id of tuning job .
Example:
b221364e-b98c-11ec-8422-0242ac120002The status of the pair analysis.
Example:
CompletedThe record type of the pair analysis.
Example:
personThe entity type of the pair analysis.
Example:
person_entity
Status Code
Pair analysis is fetched successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
The pair analysis for the given record and entity type not found.
Error in getting Pair analysis.
No Sample Response
Delete comparison record pair decision
Delete the comparison record pair decision.
DELETE /mdm/v1/pair_decisions
Get configuration metadata
Gets the configuration metadata with all assets, their mappings, loading status, matching status, etc.
GET /mdm/v1/configuration_metadata
Response
Configuration metadata details.
The name of the Configuration metadata.
The description of the Configuration metadata.
The project id of the linked WKC project.
Example:
0e4bb17d-4871-40a5-b5a1-55b2866fe000The catalog id from the linked WKC project.
Example:
ee1de5f6-54da-4246-95bc-7bc282151000The identifier of this Configuration metadata.
Example:
0e4bb17d-4871-40a5-b5a1-0000000Last updated date of this Configuration metadata.
The date of Configuration metadata creation.
Pair analysis in configuration Metadata
- pair_analysis
- any property
The details of entities in Configuration metadata
Status Code
configuration metadata for given id is fetched successfullly.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Error in getting configuration metadata.
{ "name": "configuration_metadata", "description": "sample configuration metadata", "storage_type": "Cloud storage", "project_id": "52a72453-597c-4fb3-a518-c815225e3ea9", "catalog_id": "8a3cc967-81c4-49a3-86a2-208059819b24", "role": "admin", "collaborators": "AP", "assets": [ { "asset_name": "person-100.csv", "asset_status": "Mapped", "asset_record_type": "Person", "asset_source": "project", "asset_mappings": [ { "key": "COLUMN1", "classified_class": "X", "data_mapping_name": "record_id", "data_mapping_default_display_name": "record_source", "exclude_column": "FALSE", "auto_mapped": true, "completeness_percent": "90" }, { "key": "COLUMN2", "classified_class": "X", "data_mapping_name": "record_id", "data_mapping_default_display_name": "record_id", "exclude_column": "FALSE", "auto_mapped": true, "completeness_percent": "90" } ], "asset_id": "0777c0a7-9a3f-40a8-a094-c85091fa2ec7" } ] }
Replace configuration metadata
Replaces the configuration metadata. It would replace the configuration data including asset information, matching attributes, etc.
PUT /mdm/v1/configuration_metadata
Request
Configuration metadata details.
{
"name": "configuration_metadata",
"description": "sample configuration metadata",
"storage_type": "Cloud storage",
"project_id": "52a72453-597c-4fb3-a518-c815225e3ea9",
"catalog_id": "8a3cc967-81c4-49a3-86a2-208059819b24",
"role": "admin",
"collaborators": "AP",
"assets": [
{
"asset_name": "person-100.csv",
"asset_status": "Mapped",
"asset_record_type": "Person",
"asset_source": "project",
"asset_mappings": [
{
"key": "COLUMN1",
"classified_class": "X",
"data_mapping_name": "record_id",
"data_mapping_default_display_name": "record_source",
"exclude_column": "FALSE",
"auto_mapped": true,
"completeness_percent": "90"
},
{
"key": "COLUMN2",
"classified_class": "X",
"data_mapping_name": "record_id",
"data_mapping_default_display_name": "record_id",
"exclude_column": "FALSE",
"auto_mapped": true,
"completeness_percent": "90"
}
],
"asset_id": "0777c0a7-9a3f-40a8-a094-c85091fa2ec7"
}
]
}The name of the Configuration metadata.
The description of the Configuration metadata.
The project id of the linked WKC project.
Example:
0e4bb17d-4871-40a5-b5a1-55b2866fe000The catalog id from the linked WKC project.
Example:
ee1de5f6-54da-4246-95bc-7bc282151000Pair analysis in configuration Metadata
- pair_analysis
- any property
The details of entities in Configuration metadata
Response
Configuration metadata details.
The name of the Configuration metadata.
The description of the Configuration metadata.
The project id of the linked WKC project.
Example:
0e4bb17d-4871-40a5-b5a1-55b2866fe000The catalog id from the linked WKC project.
Example:
ee1de5f6-54da-4246-95bc-7bc282151000The identifier of this Configuration metadata.
Example:
0e4bb17d-4871-40a5-b5a1-0000000Last updated date of this Configuration metadata.
The date of Configuration metadata creation.
Pair analysis in configuration Metadata
- pair_analysis
- any property
The details of entities in Configuration metadata
Status Code
configuration metadata successfully replaced
Error in replacing configuration metadata. The request you used is invalid. Please revalidate and try again.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Internal error occured in replacing configuration metadata.
{ "name": "configuration_metadata", "description": "sample configuration metadata", "storage_type": "Cloud storage", "project_id": "52a72453-597c-4fb3-a518-c815225e3ea9", "catalog_id": "8a3cc967-81c4-49a3-86a2-208059819b24", "role": "admin", "collaborators": "AP", "assets": [ { "asset_name": "person-100.csv", "asset_status": "Mapped", "asset_record_type": "Person", "asset_source": "project", "asset_mappings": [ { "key": "COLUMN1", "classified_class": "X", "data_mapping_name": "record_id", "data_mapping_default_display_name": "record_source", "exclude_column": "FALSE", "auto_mapped": true, "completeness_percent": "90" }, { "key": "COLUMN2", "classified_class": "X", "data_mapping_name": "record_id", "data_mapping_default_display_name": "record_id", "exclude_column": "FALSE", "auto_mapped": true, "completeness_percent": "90" } ], "asset_id": "0777c0a7-9a3f-40a8-a094-c85091fa2ec7" } ] }
Update configuration metadata
Updates the configuration metadata with the information provided in the request.
PATCH /mdm/v1/configuration_metadata
Request
Configuration metadata details.
{
"name": "configuration_metadata",
"description": "sample configuration metadata",
"storage_type": "Cloud storage",
"project_id": "52a72453-597c-4fb3-a518-c815225e3ea9",
"catalog_id": "8a3cc967-81c4-49a3-86a2-208059819b24",
"role": "admin",
"collaborators": "AP",
"assets": [
{
"asset_name": "person-100.csv",
"asset_status": "Mapped",
"asset_record_type": "Person",
"asset_source": "project",
"asset_mappings": [
{
"key": "COLUMN1",
"classified_class": "X",
"data_mapping_name": "record_id",
"data_mapping_default_display_name": "record_source",
"exclude_column": "FALSE",
"auto_mapped": true,
"completeness_percent": "90"
},
{
"key": "COLUMN2",
"classified_class": "X",
"data_mapping_name": "record_id",
"data_mapping_default_display_name": "record_id",
"exclude_column": "FALSE",
"auto_mapped": true,
"completeness_percent": "90"
}
],
"asset_id": "0777c0a7-9a3f-40a8-a094-c85091fa2ec7"
}
]
}The name of the Configuration metadata.
The description of the Configuration metadata.
The project id of the linked WKC project.
Example:
0e4bb17d-4871-40a5-b5a1-55b2866fe000The catalog id from the linked WKC project.
Example:
ee1de5f6-54da-4246-95bc-7bc282151000Pair analysis in configuration Metadata
- pair_analysis
- any property
The details of entities in Configuration metadata
Response
Configuration metadata details.
The name of the Configuration metadata.
The description of the Configuration metadata.
The project id of the linked WKC project.
Example:
0e4bb17d-4871-40a5-b5a1-55b2866fe000The catalog id from the linked WKC project.
Example:
ee1de5f6-54da-4246-95bc-7bc282151000The identifier of this Configuration metadata.
Example:
0e4bb17d-4871-40a5-b5a1-0000000Last updated date of this Configuration metadata.
The date of Configuration metadata creation.
Pair analysis in configuration Metadata
- pair_analysis
- any property
The details of entities in Configuration metadata
Status Code
configuration metadata successfully updated
Error in updating configuration metadata. The request you used is invalid. Please revalidate and try again.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Internal error occured in getting configuration metadata.
{ "name": "configuration_metadata", "description": "sample configuration metadata", "storage_type": "Cloud storage", "project_id": "52a72453-597c-4fb3-a518-c815225e3ea9", "catalog_id": "8a3cc967-81c4-49a3-86a2-208059819b24", "role": "admin", "collaborators": "AP", "assets": [ { "asset_name": "person-100.csv", "asset_status": "Mapped", "asset_record_type": "Person", "asset_source": "project", "asset_mappings": [ { "key": "COLUMN1", "classified_class": "X", "data_mapping_name": "record_id", "data_mapping_default_display_name": "record_source", "exclude_column": "FALSE", "auto_mapped": true, "completeness_percent": "90" }, { "key": "COLUMN2", "classified_class": "X", "data_mapping_name": "record_id", "data_mapping_default_display_name": "record_id", "exclude_column": "FALSE", "auto_mapped": true, "completeness_percent": "90" } ], "asset_id": "0777c0a7-9a3f-40a8-a094-c85091fa2ec7" } ] }
Regenerate the mapping pattern ID in project metadata using the current logic
The previous algorithm for generating the mapping pattern has been replaced with new algorithm.The existing mapping pattern id in the project metadata should be regenerated by using the current mapping pattern id generation logic.
POST /mdm/v1/configuration_metadata/regenerate_mapping_pattern_id
Response
Configuration metadata details.
The name of the Configuration metadata.
The description of the Configuration metadata.
The project id of the linked WKC project.
Example:
0e4bb17d-4871-40a5-b5a1-55b2866fe000The catalog id from the linked WKC project.
Example:
ee1de5f6-54da-4246-95bc-7bc282151000The identifier of this Configuration metadata.
Example:
0e4bb17d-4871-40a5-b5a1-0000000Last updated date of this Configuration metadata.
The date of Configuration metadata creation.
Pair analysis in configuration Metadata
- pair_analysis
- any property
The details of entities in Configuration metadata
Status Code
The regeneration of the mapping pattern id has been completed successfully
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Unexpected error occurred during the regeneration of mapping pattern id.
{ "name": "configuration_metadata", "description": "sample configuration metadata", "storage_type": "Cloud storage", "project_id": "52a72453-597c-4fb3-a518-c815225e3ea9", "catalog_id": "8a3cc967-81c4-49a3-86a2-208059819b24", "role": "admin", "collaborators": "AP", "assets": [ { "asset_name": "person-100.csv", "asset_status": "Mapped", "asset_record_type": "Person", "asset_source": "project", "asset_mappings": [ { "key": "COLUMN1", "classified_class": "X", "data_mapping_name": "record_id", "data_mapping_default_display_name": "record_source", "exclude_column": "FALSE", "auto_mapped": true, "completeness_percent": "90" }, { "key": "COLUMN2", "classified_class": "X", "data_mapping_name": "record_id", "data_mapping_default_display_name": "record_id", "exclude_column": "FALSE", "auto_mapped": true, "completeness_percent": "90" } ], "asset_id": "0777c0a7-9a3f-40a8-a094-c85091fa2ec7" } ] }
List the process details
Lists the Configurator process details for all processes, optionally filtered by process status.
GET /mdm/v1/configuration_metadata/processes
Request
Query Parameters
The cloud resource name of the service.
Unique status param to get the processes based on it. i.e. Not-Initiated, In-progress, Complete and Error
Example:
In-progress
Response
Response wrapper with the list of Processes.
Collection of Processes with details.
Status Code
Processes retrieved.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Error in getting processes.
{ "processes": [ { "record_type_label": "Person", "record_type": "person", "process_name": "match", "process_count": "0", "message": "Match completed successfully and statistics updated.", "status": "Complete" } ] }
Create process
Create the Configurator process to publish data, publish model, match and delete assets.
POST /mdm/v1/configuration_metadata/processes
Request
Process creation request details.
{
"process_name": "publish_data",
"asset_source_details": {
"project": {
"cos_endpoint": "https://s3.us-south.cloud-object-storage.appdomain.cloud",
"cos_bucket_name": "bucket-name",
"cos_api_key": "project_api_key"
}
},
"initiator": "IAM ID"
}{
"process_name": "publish_data",
"asset_source_details": {
"project": {
"cos_endpoint": "https://s3.us-south.cloud-object-storage.appdomain.cloud",
"cos_bucket_name": "bucket-name",
"cos_api_key": "project_api_key"
}
},
"asset_ids": "asset-1,asset-2",
"initiator": "IAM ID"
}{
"process_name": "delete_asset",
"asset_ids": "asset-id-1,asset-id-2",
"initiator": "IAM ID"
}{
"process_name": "publish_model",
"initiator": "IAM ID"
}{
"process_name": "match",
"record_type": "person",
"entity_type": "person_entity",
"do_derive": true,
"do_match": true,
"do_sync": true,
"do_report": true,
"do_force_derive": true,
"do_force_matching": true,
"do_force_entity_sync": true,
"report_job_list": entity_summary,
"initiator":"IAM ID"
}{
"process_name": "import_snapshot",
"initiator": "IAM ID",
"snapshot_summary": {
"id": "Snapshot_1651495290688"
}
}{
"process_name": "import_snapshot",
"initiator": "IAM ID",
"snapshot_summary": {
"created_time": "1651495290689",
"description": "",
"user": "user",
"name": "test_snapshot"
},
"map_resources": {},
"compare_spec_resources": {},
"composite_rules": {},
"match_settings": {},
"set_resources": {},
"data_model": {},
"algorithms": {},
"mapping_patterns": [
{}
]
}The name of the Process to be created.
Example:
matchThe record type which needs to be processed for match and publish_data processes.
Example:
personThe entity type which needs to be processed for match process.
Example:
person_entityFlag to enable/disable derive operation for matching process. If do_derive flag is set to true, the rest of the match jobs (do-match, do-sync, report) will get executed even if they are set to false.
Flag to enable/disable Bulkmatch operation for matching process. If do_match flag is set to true, the rest of the match jobs (do-sync, report) will get executed even if they are set to false.
Flag to enable/disable PersistEntity operation for matching process. If do_sync flag is set to true, the rest of the match jobs (report) will get executed even if they are set to false.
Flag to enable/disable Reporting operation for matching process. If do_sync flag is set to true, the rest of the match jobs (report) will get executed even if they are set to false.
Comma separated asset ids of assets to be processed by delete_assets and publish_data processes.
The asset source details for the data asset to be published for publish_data process.
- asset_source_details
The asset source details for project data asset
- project
Endpoint URL of the Cloud Object Storage. This is applicable in case of cloud environment only.
Bucket Name of data asset file in the Cloud Object Storage. This is applicable in case of cloud environment only.
API Key of the Cloud Object Storage account. This is applicable in case of cloud environment only.
Identifier of source project or source catalog.
The asset source details for catalog data asset
- catalog
Endpoint URL of the Cloud Object Storage. This is applicable in case of cloud environment only.
Bucket Name of data asset file in the Cloud Object Storage. This is applicable in case of cloud environment only.
API Key of the Cloud Object Storage account. This is applicable in case of cloud environment only.
Identifier of source project or source catalog.
User identifier of the initiator of processes. This identifier will be available in the headers of the messaging queue events generated by the initiated process.
Flag to enable/disable force match operation.
Flag to enable/disable force derive operation.
Flag to enable/disable force entity sync operation.
Example:
trueThe list of jobs that should be considered during reporting
Example:
entity_summary
Response
Process Status.
Status of the Process execution.
Additional details about the Process status.
Optional summary of the processes.
- summary
Status Code
Process created successfully.
Error in process creation. The request you used is invalid. Please revalidate and try again.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Error in getting processes.
{ "status": "In-Progress_bulkderive", "message": "Matching is in progress." }{ "status": "In-progress", "message": "Publish model is initiated." }{ "status": "In-progress", "message": "Import Snapshot is initiated." }{ "status": "In-progress", "message": "Asset Deletion is initiated!", "summary": { "asset_id_1": "Delete-in-progress" } }{ "message": "Bulk load of data is initiated.", "status": "In-progress" }
Replace configuration metadata asset
Replaces asset information in the configuration with the information provided in the request.
PUT /mdm/v1/configuration_metadata/assets/{asset_id}Request
Path Parameters
Unique identifier of project asset
Query Parameters
The cloud resource name of the service.
Request object for updating an asset.
{
"asset_name": "Person10.csv",
"asset_status": "Mapped",
"asset_record_type": "Person",
"asset_created_date": "2020-05-12T13:21:21.727Z",
"asset_mappings": [
{
"key": "COLUMN1",
"classified_class": "X",
"data_mapping_name": "record_source",
"data_mapping_default_display_name": "Record Source",
"exclude_column": false,
"auto_mapped": false,
"completeness_percent": 100
},
{
"key": "COLUMN2",
"classified_class": "T",
"data_mapping_name": "",
"data_mapping_default_display_name": "",
"exclude_column": true,
"auto_mapped": false,
"completeness_percent": 100
}
]
}Name of the data asset.
Example:
Person10k.csvThe status of the Data Asset.
Example:
MappedThe date of data asset creation.
Details of Data Asset column mappings with the data model.
Response
Response wrapper with details of Data Asset Metadata.
Details of the Data Asset.
- asset
The name of the Data asset.
Example:
person_data_records.csvThe status of the Data asset.
Example:
MappedThe date of the Data asset creation.
Example:
'2020-06-25 11:36:18'The details of Data asset column mappings to the data model.
The identifier of the Data asset.
Example:
d8868c51-a96e-48ab-a4cd-0000000The last updated date of the Data asset metadata.
Example:
'2020-06-25 11:36:18'The identifier of this suggested mapping pattern id.
Example:
436cbd13-fd5b-380d-bb2a-870cb64983e5The hash identifier of this suggested mapping pattern hash.
Example:
307e7a7d9757fb186ad8f106d4d92279e366b6c1f723b4de068f65a63d2303f3The name of the suggested mapping pattern.
Status Code
Asset replaced successfully.
Error in replacing asset. The request you used is invalid. Please revalidate and try again.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Internal error occured in replacing asset for the given configuration metadata.
{ "asset_name": "Person10.csv", "asset_status": "Mapped", "asset_record_type": "Person", "asset_created_date": {}, "asset_mappings": [ { "key": "COLUMN1", "classified_class": "X", "data_mapping_name": "record_source", "data_mapping_default_display_name": "Record Source", "exclude_column": false, "auto_mapped": false, "completeness_percent": 100 }, { "key": "COLUMN2", "classified_class": "T", "data_mapping_name": "", "data_mapping_default_display_name": "", "exclude_column": true, "auto_mapped": false, "completeness_percent": 100 } ], "asset_id": "asset_id", "asset_last_updated_date": "2021-05-17T19:00:34.000Z" }
Patch configuration metadata asset
Update the asset fields in the configuration metadata with the information provided in the request. Only the fields given in the request will be updated.
PATCH /mdm/v1/configuration_metadata/assets/{asset_id}Request
Path Parameters
Unique identifier of project asset
Query Parameters
The cloud resource name of the service.
Request object for updating an asset.
{
"asset_record_type": "Person",
"asset_status": "Mapped"
}The status of the Data Asset.
Example:
MappedDetails of Data Asset column mappings with the data model.
Response
Response wrapper with details of Data Asset Metadata.
Details of the Data Asset.
- asset
The name of the Data asset.
Example:
person_data_records.csvThe status of the Data asset.
Example:
MappedThe date of the Data asset creation.
Example:
'2020-06-25 11:36:18'The details of Data asset column mappings to the data model.
The identifier of the Data asset.
Example:
d8868c51-a96e-48ab-a4cd-0000000The last updated date of the Data asset metadata.
Example:
'2020-06-25 11:36:18'The identifier of this suggested mapping pattern id.
Example:
436cbd13-fd5b-380d-bb2a-870cb64983e5The hash identifier of this suggested mapping pattern hash.
Example:
307e7a7d9757fb186ad8f106d4d92279e366b6c1f723b4de068f65a63d2303f3The name of the suggested mapping pattern.
Status Code
Asset fields updated successfully.
Error in updating the asset. The request is invalid. Please revalidate the input and try again.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Internal error occurred in updating the asset for the given asset id.
{ "asset_name": "Person10.csv", "asset_status": "Mapped", "asset_record_type": "Person", "asset_created_date": {}, "asset_mappings": [ { "key": "COLUMN1", "classified_class": "X", "data_mapping_name": "record_source", "data_mapping_default_display_name": "Record Source", "exclude_column": false, "auto_mapped": false, "completeness_percent": 100 }, { "key": "COLUMN2", "classified_class": "T", "data_mapping_name": "", "data_mapping_default_display_name": "", "exclude_column": true, "auto_mapped": false, "completeness_percent": 100 } ], "asset_id": "asset_id", "asset_last_updated_date": "2021-05-17T19:00:34.000Z" }
Get configurator process
Gets the process details for the specified process name.
GET /mdm/v1/configuration_metadata/processes/{process_name}Request
Path Parameters
Unique process name to get the process status. i.e. publish_model, publish_data, match, delete_asset and import_snapshot
Query Parameters
The cloud resource name of the service.
Unique record type associated with the process
Example:
personUnique entity type associated with the process
Example:
person_entity
Response
Details of the Process.
The displayable text for the record type.
The data type identifier of source records under processing.
Count of process of this process name under execution.
Status of the Process execution.
Additional details about the Process execution.
Name of the Process.
Status Code
Process retrieved.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem processing request. Please check if you have provided correct process name.
Error in getting process.
{ "record_type_label": "Person", "record_type": "person", "process_name": "match", "process_count": "0", "message": "Match completed successfully and statistics updated.", "status": "Complete" }
Apply mapping patterns
Apply mapping pattern to the existing assets based on user selection during import of snapshots.
POST /mdm/v1/configuration_metadata/apply_mapping_patterns
Request
Request details to suggest data assets during import
{
"mapping_patterns": [
{
"mapping_pattern_hash": "0b74893612bc657fbdb89eb0e9b2ab4a515b60ffaa43910c2ef40f19ede33929",
"mapping_pattern_id": "e7dba4ff-7dcf-3c9a-8009-d9668ff3bbc1",
"mapping_pattern_name": "Mapping Pattern Name",
"apply_to_assets": [
{
"project_id": "52a72453-597c-4fb3-a518-c815225e3ea9",
"asset_id": "0777c0a7-9a3f-40a8-a094-c85091fa2ec7",
"asset_name": "Asset Name 1"
}
],
"asset_record_type": "Person",
"asset_type": "Person",
"asset_mappings": [
{
"key": "fname2",
"auto_mapped": "true",
"data_mapping_attribute_type": "person_name",
"data_mapping_name": "legal_name.given_name",
"exclude_column": "false",
"completeness_percent": 90
},
{
"key": "gender",
"auto_mapped": "true",
"data_mapping_attribute_type": "string",
"data_mapping_name": "gender",
"exclude_column": "false",
"completeness_percent": 58
}
],
"mapping_pattern_last_updated_date": "2024-01-17T16:33:26.000Z"
}
]
}The list of mapping patterns.
Response
Response wrapper with details of assets in which mapping pattern is applied
Collection of assets in which mapping pattern is applied during import
Status Code
Mapping pattern is successfully applied.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Unexpected error occured while getting data mappings.
{ "applied_assets": [ { "asset_name": "person-100.csv", "asset_status": "Mapped", "asset_record_type": "Person", "asset_source": "project", "asset_mappings": [ { "key": "fname2", "auto_mapped": "true", "data_mapping_attribute_type": "person_name", "data_mapping_name": "legal_name.given_name", "exclude_column": "false", "completeness_percent": 90 }, { "key": "gender", "auto_mapped": "true", "data_mapping_attribute_type": "string", "data_mapping_name": "gender", "exclude_column": "false", "completeness_percent": 58 } ], "asset_id": "0777c0a7-9a3f-40a8-a094-c85091fa2ec7", "mapping_pattern_hash": "0b74893612bc657fbdb89eb0e9b2ab4a515b60ffaa43910c2ef40f19ede33929", "mapping_pattern_id": "e7dba4ff-7dcf-3c9a-8009-d9668ff3bbc1", "mapping_pattern_last_updated_date": "2024-02-02T08:04:52.000Z", "mapping_pattern_name": "Mapping Pattern Name", "asset_type": "Person", "asset_last_updated_date": "2024-02-07T16:42:23.000Z" } ] }
Add configuration metadata asset
Adds a new asset in configuration metadata. This can be called when new asset is getting added into configuration space.
POST /mdm/v1/configuration_metadata/assets
Request
Request details for creating new Data Asset.
{
"asset_id": "asset_id",
"asset_name": "Person10.csv",
"asset_status": "Mapped",
"asset_record_type": "Person",
"asset_created_date": "2020-05-12T13:21:21.727Z",
"asset_mappings": [
{
"key": "COLUMN1",
"classified_class": "X",
"data_mapping_name": "record_source",
"data_mapping_default_display_name": "Record Source",
"exclude_column": false,
"auto_mapped": false,
"completeness_percent": 100
},
{
"key": "COLUMN2",
"classified_class": "T",
"data_mapping_name": "",
"data_mapping_default_display_name": "",
"exclude_column": true,
"auto_mapped": false,
"completeness_percent": 100
}
]
}The identifier for the Data Asset.
Example:
d8868c51-a96e-48ab-a4cd-0000000The name of the Data Asset.
Example:
Person10k.csvThe status of the Data Asset.
Example:
MappedThe date of the Data Asset creation.
The collection of Data Asset column mappings with the data model.
Response
Response wrapper with details of Data Asset Metadata.
Details of the Data Asset.
- asset
The name of the Data asset.
Example:
person_data_records.csvThe status of the Data asset.
Example:
MappedThe date of the Data asset creation.
Example:
'2020-06-25 11:36:18'The details of Data asset column mappings to the data model.
The identifier of the Data asset.
Example:
d8868c51-a96e-48ab-a4cd-0000000The last updated date of the Data asset metadata.
Example:
'2020-06-25 11:36:18'The identifier of this suggested mapping pattern id.
Example:
436cbd13-fd5b-380d-bb2a-870cb64983e5The hash identifier of this suggested mapping pattern hash.
Example:
307e7a7d9757fb186ad8f106d4d92279e366b6c1f723b4de068f65a63d2303f3The name of the suggested mapping pattern.
Status Code
Asset created successfully.
Error in created asset. The request you used is invalid. Please revalidate and try again.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Internal error occured in creating asset for the given configuration metadata.
{ "asset_id": "asset_id", "asset_name": "Person10.csv", "asset_status": "Mapped", "asset_record_type": "Person", "asset_created_date": {}, "asset_mappings": [ { "key": "COLUMN1", "classified_class": "X", "data_mapping_name": "record_source", "data_mapping_default_display_name": "Record Source", "exclude_column": false, "auto_mapped": false, "completeness_percent": 100 }, { "key": "COLUMN2", "classified_class": "T", "data_mapping_name": "", "data_mapping_default_display_name": "", "exclude_column": true, "auto_mapped": false, "completeness_percent": 100 } ], "asset_last_updated_date": "2021-05-17T18:58:59.000Z" }
Response
Response wrapper with the details of the snapshot
Collection of matching algorithms for different record types e.g. person, organization
- algorithms
Collection of various comparison resources used to customize comparison logic of a matching algorithm
- compare_spec_resources
- data_model
Collection of various map resources used in matching algorithm, like for handling equivalent values. Map resource key must be lower snake case (i.e. person_map_name_nickname)
- map_resources
Collection of various set resources used in matching algorithm, like for handling anonymous values. Set resource key must be lower snake case (i.e. person_set_name_aname)
- set_resources
- composite_rules
- snapshot_summary
Match Settings
- match_settings
Mapping Patterns
Status Code
Snapshot with given id is fetched successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Error in getting configuration metadata.
No Sample Response
Update a snapshot of model assets
- This service updates the name and description of a snapshot.
PUT /mdm/v1/snapshots/{id}Request
Path Parameters
The unique identifier of a snapshot
Query Parameters
The cloud resource name of the service.
Request wrapper object for snapshot summary of model assets
Additional detail about snapshot
Snapshot Name
Response
Request wrapper object for snapshot summary of model assets
Additional detail about snapshot
Snapshot Name
Status Code
The snapshot has been successfully updated.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Response
Response wrapper with the details of the snapshot
Collection of matching algorithms for different record types e.g. person, organization
- algorithms
Collection of various comparison resources used to customize comparison logic of a matching algorithm
- compare_spec_resources
- data_model
Collection of various map resources used in matching algorithm, like for handling equivalent values. Map resource key must be lower snake case (i.e. person_map_name_nickname)
- map_resources
Collection of various set resources used in matching algorithm, like for handling anonymous values. Set resource key must be lower snake case (i.e. person_set_name_aname)
- set_resources
- composite_rules
- snapshot_summary
Match Settings
- match_settings
Mapping Patterns
Status Code
Snapshot with given id is deleted successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Error in getting configuration metadata.
No Sample Response
Response
Response wrapper with the list of Snapshots.
list of snapshots
- snapshots
Status Code
Snapshots are fetched successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Error in getting configuration metadata.
No Sample Response
Create a snapshot of config assets
- This service creates a snapshot of current config assets.
POST /mdm/v1/snapshots
Request
Request wrapper object for post a snapshot of model assets
{
"name": "Snapshot Name",
"description": "Description of the Snapshot"
}Additional detail about snapshot
Snapshot identifier
Snapshot Name
User who created the snapshot
Time in which the snapshot was created
Response
Request wrapper object for post a snapshot of model assets
Additional detail about snapshot
Snapshot identifier
Snapshot Name
User who created the snapshot
Time in which the snapshot was created
Status Code
The snapshot of model assets has been successfully created.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Request
Request wrapper with the details of the snapshot for comparison with current configuration
{
"data_model": {},
"match_settings": {},
"composite_rules": {},
"snapshot_summary": {},
"algorithms": {},
"map_resources": {},
"compare_spec_resources": {},
"set_resources": {},
"mapping_patterns": [
{}
]
}Data model of snapshot for comparison with current system's data model
- data_model
Match Settings of snapshot for comparison with current system's match settings
- match_settings
Composite Rules of snapshot for comparison with current system's Composite Rules
- composite_rules
Algorithms from the snapshot for checking the compatibility with Model
- algorithms
Mapping Patterns
Response
Response wrapper with the details of the snapshot comparison with current configuration
- data_model
Match Settings of configuration
- match_settings
Composite rules of configuration
- composite_rules
Snapshot Summary of incoming snapshot
- snapshot_summary
Snapshot compatibility of data_model and algorithms
- compatibility_result
Status Code
Snapshot comparison is generated and fetched successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Error in getting configuration metadata.
{ "data_model": { "attribute_types": { "address": { "matching_types": { "__current": [ "ADDRESS" ], "__incoming": [ "ADDRESS" ], "__change": "unchanged" }, "description": { "__current": "The address locations associated with a record.", "__incoming": "The address locations associated with a record type.", "__change": "modified" }, "label": { "__current": "Address", "__incoming": "Address", "__change": "unchanged" }, "classification": { "__current": "", "__incoming": "", "__change": "unchanged" }, "fields": { "country": { "indexed": { "__current": true, "__incoming": true, "__change": "unchanged" }, "description": { "__current": "The country of this address.", "__incoming": "The country of this address.", "__change": "unchanged" }, "label": { "__current": "Country value", "__incoming": "Country value", "__change": "unchanged" }, "classification": { "__current": "", "__incoming": "", "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 4, "__change": "unchanged" }, "address_line1": { "indexed": { "__current": true, "__incoming": true, "__change": "unchanged" }, "description": { "__current": "The first line of this address.", "__incoming": "The first line of this address.", "__change": "unchanged" }, "label": { "__current": "Address line 1", "__incoming": "Address line 1", "__change": "unchanged" }, "classification": { "__current": "", "__incoming": "", "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 4, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 2, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 1, "__unchanged": 4, "__change": "modified" }, "string": { "description": { "__current": "A single field primitive attribute", "__incoming": "A single field primitive attribute", "__change": "unchanged" }, "label": { "__current": "Simple attribute", "__incoming": "Simple attribute", "__change": "unchanged" }, "classification": { "__current": "", "__incoming": "", "__change": "unchanged" }, "fields": { "value": { "indexed": { "__current": true, "__incoming": true, "__change": "unchanged" }, "description": { "__current": "", "__incoming": "", "__change": "unchanged" }, "label": { "__current": "Value", "__incoming": "Value", "__change": "unchanged" }, "classification": { "__current": "", "__incoming": "", "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 4, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 1, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 4, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 1, "__unchanged": 1, "__change": "modified" }, "system_properties": { "attribute_types": { "attribute_last_updated": { "settable": { "__current": true, "__incoming": true, "__change": "unchanged" }, "indexed": { "__current": false, "__incoming": false, "__change": "unchanged" }, "editable": { "__current": false, "__incoming": false, "__change": "unchanged" }, "data_type": { "__current": "Long", "__incoming": "Long", "__change": "unchanged" }, "description": { "__current": "The time an attribute was last updated", "__incoming": "The time an attribute was last updated", "__change": "unchanged" }, "label": { "__current": "Attribute last updated date", "__incoming": "Attribute last updated date", "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 6, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 1, "__change": "unchanged" }, "entity_types": { "entity_id": { "indexed": { "__current": true, "__incoming": true, "__change": "unchanged" }, "editable": { "__current": false, "__incoming": false, "__change": "unchanged" }, "data_type": { "__current": "String", "__incoming": "String", "__change": "unchanged" }, "description": { "__current": "", "__incoming": "", "__change": "unchanged" }, "label": { "__current": "Entity identifier", "__incoming": "Entity identifier", "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 5, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 1, "__change": "unchanged" }, "relationship_types": { "from_record_id": { "settable": { "__current": true, "__incoming": true, "__change": "unchanged" }, "editable": { "__current": false, "__incoming": false, "__change": "unchanged" }, "data_type": { "__current": "String", "__incoming": "String", "__change": "unchanged" }, "description": { "__current": "The record id this relationship is coming from", "__incoming": "The record id this relationship is coming from", "__change": "unchanged" }, "label": { "__current": "From record id", "__incoming": "From record id", "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 5, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 1, "__change": "unchanged" }, "version": { "__current": "v3", "__incoming": "v3", "__change": "unchanged" }, "record_types": { "collection_id": { "settable": { "__current": true, "__incoming": true, "__change": "unchanged" }, "indexed": { "__current": true, "__incoming": true, "__change": "unchanged" }, "editable": { "__current": false, "__incoming": false, "__change": "unchanged" }, "data_type": { "__current": "String", "__incoming": "String", "__change": "unchanged" }, "description": { "__current": "Optional identifier for identifying a collection of records", "__incoming": "Optional identifier for identifying a collection of records", "__change": "unchanged" }, "label": { "__current": "Collection ID", "__incoming": "Collection ID", "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 6, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 1, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 5, "__change": "unchanged" }, "relationship_types": { "linkage": { "internal": { "__current": true, "__incoming": true, "__change": "unchanged" }, "label_from_source": { "__current": "Linked into", "__incoming": "Linked into", "__change": "unchanged" }, "label_from_target": { "__current": "Linked from", "__incoming": "Linked from", "__change": "unchanged" }, "directional": { "__current": true, "__incoming": true, "__change": "unchanged" }, "description": { "__current": "This is the built in linkage relationship type", "__incoming": "This is the built in linkage relationship type", "__change": "unchanged" }, "label": { "__current": "Linkage", "__incoming": "Linkage", "__change": "unchanged" }, "cardinality": { "__current": "ONE2MANY", "__incoming": "ONE2MANY", "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 7, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 1, "__change": "unchanged" }, "locale": { "__current": "en_us", "__incoming": "en_us", "__change": "unchanged" }, "record_types": { "person": { "entity_types": { "person_entity": { "default": { "__current": true, "__incoming": true, "__change": "unchanged" }, "description": { "__current": "The entity type for person records.", "__incoming": "The entity type for person records.", "__change": "unchanged" }, "label": { "__current": "Person entity", "__incoming": "Person entity", "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 3, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 1, "__change": "unchanged" }, "description": { "__current": "The record type for person records.", "__incoming": "The record type for person records.", "__change": "unchanged" }, "attributes": { "primary_residence": { "indexed": { "__current": true, "__incoming": true, "__change": "unchanged" }, "description": { "__current": "Indicates that this address is a primary residence.", "__incoming": "Indicates that this address is a primary residence.", "__change": "unchanged" }, "attribute_type": { "__current": "address", "__incoming": "address", "__change": "unchanged" }, "label": { "__current": "Primary residence", "__incoming": "Primary residence", "__change": "unchanged" }, "classification": { "__current": "", "__incoming": "", "__change": "unchanged" }, "cardinality": { "__current": "LIST", "__incoming": "LIST", "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 6, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 1, "__change": "unchanged" }, "label": { "__current": "Person", "__incoming": "Person", "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 4, "__change": "unchanged" }, "organization": { "entity_types": { "organization_entity": { "default": { "__current": true, "__incoming": true, "__change": "unchanged" }, "description": { "__current": "The entity type for org records.", "__incoming": "The entity type for org records.", "__change": "unchanged" }, "label": { "__current": "Organization entity", "__incoming": "Organization entity", "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 3, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 1, "__change": "unchanged" }, "description": { "__current": "The record type for organization records.", "__incoming": "The record type for organization records.", "__change": "unchanged" }, "attributes": { "mailing_address": { "indexed": { "__current": true, "__incoming": true, "__change": "unchanged" }, "description": { "__current": "Indicates that this address is a mailing address.", "__incoming": "Indicates that this address is a mailing address.", "__change": "unchanged" }, "attribute_type": { "__current": "address", "__incoming": "address", "__change": "unchanged" }, "label": { "__current": "Mailing address", "__incoming": "Mailing address", "__change": "unchanged" }, "classification": { "__current": "", "__incoming": "", "__change": "unchanged" }, "cardinality": { "__current": "LIST", "__incoming": "LIST", "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 6, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 1, "__change": "unchanged" }, "label": { "__current": "Organization", "__incoming": "Organization", "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 4, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 2, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 1, "__unchanged": 4, "__change": "modified" }, "match_settings": { "person": { "person_entity": { "matching_thresholds": { "clerical_review_threshold": { "__current": 8, "__incoming": 8, "__change": "unchanged" }, "auto_link_threshold": { "__current": 8, "__incoming": 8, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 2, "__change": "unchanged" }, "matching_attributes": { "__current": [ { "name": "mailing_address", "data_type": "address" } ], "__incoming": [ { "name": "mailing_address", "data_type": "address" } ], "__change": "unchanged" }, "matching_fields": { "address": { "__current": [ "address_line1", "country" ], "__incoming": [ "address_line1", "country" ], "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 1, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 3, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 1, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 0, "__unchanged": 1, "__change": "unchanged" }, "__added": 0, "__removed": 0, "__modified": 1, "__unchanged": 1, "__change": "modified" }
Suggest asset mappings
Suggest asset mappings from MDM configuration meta data and existing asset mappings matching the columns of the requested asset.
POST /mdm/v1/suggest_asset_mappings
Request
Asset Id for mapping suggestion request.
{
"asset_ids": [
{
"asset_id": "1213224567"
}
]
}The collection of asset_id for fetching their corresponding mapping pattern suggestions.
Response
Response wrapper with details of Suggested Asset Mappings.
Collection of Suggested Asset Mappings for Data Asset.
Status Code
Suggested asset mappings are fetched
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Error occurred in get resource process. Resource does not exist
Unexpected error occured while getting suggest asset mappings.
{ "suggestion_patterns": [ { "mapping_pattern_hash": "307e7a7d9757fb186ad8f106d4d92279e366b6c1f723b4de068f65a63d2303f3", "mapping_pattern_id": "436cbd13-fd5b-380d-bb2a-870cb64983e5", "mapping_pattern_name": "", "source_of_mapping": "config_metadata", "mapping_pattern_last_updated_date": "2024-01-05T15:28:12.000Z", "assets": [ { "project_id": "", "asset_id": "", "asset_name": "" } ], "asset_record_type": "person", "asset_type": "person", "asset_mappings": [ { "key": "COLUMN1", "data_mapping_name": "record_id", "exclude_column": false }, { "key": "COLUMN2", "data_mapping_attribute_type": "person_name", "data_mapping_name": "legal_name.middle_name", "exclude_column": false } ] } ] }
Suggest assets during import
Suggest existing assets in the system that can be mapped with existing asset mappings in the snapshot during import
POST /mdm/v1/suggest_assets
Request
Request details to suggest data assets during import
{
"mapping_patterns": [
{
"mapping_pattern_hash": "a83e7b3b3675d879c2000f45665d94ffdcec11c5795c506378d02e654dc9f3d4",
"mapping_pattern_name": "person_colcount11_1710467471277",
"mapping_pattern_id": "5f51b76b-ec9b-398a-a52b-18d29ec592eb",
"source_of_mapping": "config_metadata",
"mapping_pattern_last_updated_date": "2024-03-15T07:21:11.000Z",
"assets": [
{
"project_id": "52a72453-597c-4fb3-a518-c815225e3ea9",
"asset_id": "126e6ea2-ec10-492d-bf3e-149ad675df4f",
"asset_name": "Person1K_ENTSIZ_100_ENTNUm_10_copy.csv"
},
{
"project_id": "52a72453-597c-4fb3-a518-c815225e3ea9",
"asset_id": "ae826430-947b-4503-91ff-519fc36ab5c0",
"asset_name": "Person1K_ENTSIZ_100_ENTNUm_10_nw.csv"
}
],
"asset_record_type": "person",
"asset_type": "record",
"asset_mappings": [
{
"key": "COLUMN1",
"auto_mapped": false,
"data_mapping_attribute_type": "",
"data_mapping_name": "",
"exclude_column": false
},
{
"key": "COLUMN2",
"auto_mapped": false,
"data_mapping_attribute_type": "",
"data_mapping_name": "",
"exclude_column": false
},
{
"key": "COLUMN3",
"auto_mapped": false,
"data_mapping_attribute_type": "",
"data_mapping_name": "",
"exclude_column": false
},
{
"key": "COLUMN4",
"auto_mapped": false,
"data_mapping_attribute_type": "",
"data_mapping_name": "",
"exclude_column": false
},
{
"key": "COLUMN5",
"auto_mapped": false,
"data_mapping_attribute_type": "",
"data_mapping_name": "",
"exclude_column": false
},
{
"key": "COLUMN6",
"auto_mapped": false,
"data_mapping_attribute_type": "",
"data_mapping_name": "",
"exclude_column": false
},
{
"key": "COLUMN7",
"auto_mapped": false,
"data_mapping_attribute_type": "",
"data_mapping_name": "",
"exclude_column": false
},
{
"key": "COLUMN8",
"auto_mapped": false,
"data_mapping_attribute_type": "",
"data_mapping_name": "",
"exclude_column": false
},
{
"key": "COLUMN9",
"auto_mapped": false,
"data_mapping_attribute_type": "",
"data_mapping_name": "",
"exclude_column": false
},
{
"key": "COLUMN10",
"auto_mapped": false,
"data_mapping_attribute_type": "",
"data_mapping_name": "",
"exclude_column": false
},
{
"key": "COLUMN11",
"auto_mapped": false,
"data_mapping_attribute_type": "",
"data_mapping_name": "",
"exclude_column": false
}
]
}
]
}The list of mapping patterns.
Response
Response wrapper with details of Suggested Assets during import of snapshot based on existing asset mapping
Collection of Suggested Assets for import based on the existing asset mapping
Status Code
Suggested assets are fetched
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Unexpected error occured while getting asset suggestions.
{ "suggestions": [ { "mapping_pattern_hash": "a83e7b3b3675d879c2000f45665d94ffdcec11c5795c506378d02e654dc9f3d4", "mapping_pattern_id": "5f51b76b-ec9b-398a-a52b-18d29ec592eb", "mapping_pattern_name": "person_colcount11_1710467471277", "mapping_pattern_last_updated_date": "2024-03-15T07:21:11.000Z", "apply_to_assets": [ { "asset_name": "Person1K_ENTSIZ_100_ENTNUm_10_copy.csv", "asset_status": "Partially mapped", "asset_type": "record", "asset_record_type": "person", "attachment_id": "13a91fa8-0db7-468b-ad21-d7c6f798598b", "asset_source": "project", "asset_cos_file_name": "ameyafvt-donotdelete-pr-diuvbtdhpycmwz/Person1K_ENTSIZ_100_ENTNUm_10_copy.csv", "asset_created_by": "mdmmck@ca ibm mdmmck@ca.ibm.com", "asset_last_updated_date": "2024-02-13T14:21:20.000Z", "asset_mappings": [ { "key": "COLUMN1", "auto_mapped": false, "data_mapping_attribute_type": "", "data_mapping_name": "", "exclude_column": false }, { "key": "COLUMN2", "auto_mapped": false, "data_mapping_attribute_type": "", "data_mapping_name": "", "exclude_column": false }, { "key": "COLUMN3", "auto_mapped": false, "data_mapping_attribute_type": "", "data_mapping_name": "", "exclude_column": false }, { "key": "COLUMN4", "auto_mapped": false, "data_mapping_attribute_type": "", "data_mapping_name": "", "exclude_column": false }, { "key": "COLUMN5", "auto_mapped": false, "data_mapping_attribute_type": "", "data_mapping_name": "", "exclude_column": false }, { "key": "COLUMN6", "auto_mapped": false, "data_mapping_attribute_type": "", "data_mapping_name": "", "exclude_column": false }, { "key": "COLUMN7", "auto_mapped": false, "data_mapping_attribute_type": "", "data_mapping_name": "", "exclude_column": false }, { "key": "COLUMN8", "auto_mapped": false, "data_mapping_attribute_type": "", "data_mapping_name": "", "exclude_column": false }, { "key": "COLUMN9", "auto_mapped": false, "data_mapping_attribute_type": "", "data_mapping_name": "", "exclude_column": false }, { "key": "COLUMN10", "auto_mapped": false, "data_mapping_attribute_type": "", "data_mapping_name": "", "exclude_column": false }, { "key": "COLUMN11", "auto_mapped": false, "data_mapping_attribute_type": "", "data_mapping_name": "", "exclude_column": false } ], "asset_id": "126e6ea2-ec10-492d-bf3e-149ad675df4f" } ] } ] }
Suggest data mappings
Suggest data mappings from MDM data model based on the generic classes of Watson Knowledge Catalog with which the asset is profiled.
POST /mdm/v1/suggest_data_mappings
Request
Query Parameters
The cloud resource name of the service.
Record type for data mapping suggestions
Example:
person
Suggested Data Mapping Request details.
{
"columns": [
{
"key": "COLUMN1",
"classified_class": "X"
}
]
}The collection of data mapping columns having key and WKC identified class.
Response
Response wrapper with details of Suggested Data Mappings.
Collection of Suggested Data Mappings for Data Asset column.
Status Code
Suggested mappings are fetched
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Unexpected error occured while getting data mappings.
{ "suggested_data_mappings": [ { "data_mapping_default_display_name": "Gender", "data_mapping_name": "gender", "classified_class": "GEN", "key": "COLUMN 1" } ] }
Get suggested matching attributes
Gets suggested matching attributes for the record type based on mappings of assets of the specified record type.
GET /mdm/v1/suggested_matching_attributes
Request
Query Parameters
The cloud resource name of the service.
Record type for matching attribute suggestions
Response
Response wrapper for attributes suggested for running match process.
Collection of attributes suggested for running match process.
Status Code
Suggested matching attributes are retrieved
Project assets are missing or in invalid state.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Error occured while getting suggested matching attributes.
{ "suggested_matching_attributes": [ { "matching_attribute_default_display_name": "Gender", "matching_attribute_name": "gender" } ] }
Initiate weight tuning job
- This service initiates asynchronous processing of the weight tuning job.
- Weight tuning is the process to improve the weight for the matching algorithm based on given set of match decisions from data stewards.
POST /mdm/v1/weight_tuning_job
Request
Query Parameters
The cloud resource name of the service.
Record type of match statistics
Example:
personEntity type of match statistics
Example:
person_entity
Response
Response object for asynchronous processing of a tuning job
System generated timestamp when a job was created
System defined name of a given job e.g. weight-tuning
System generated timestamp when a job was last updated
System generated identifier of a job
Status of a job. One Of: Queued, Running, Completed, Failed, Canceled
Status Code
The weight tuning job has been successfully created.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "created_at": "", "image": "mdm-tuning-job", "job_name": "weight-tuning", "last_updated_at": "", "id": "2ba3ed28-00c7-42e4-9cc9-8c74bf5e4ff0", "input": {}, "status": "Running" }
Start an operation to bulk delete data from the graph
A delete can target either records or relationships in the graph. If not specified, records are targeted by default. There are four options for a delete:
- Delete by search, which removes all elements matching a search criteria. This delete type is only supported for records.
- Delete by source, which removes all elements of a specified source.
- Delete by asset, which removes all elements loaded from a particular asset or list of assets.
- Full delete, which removes all elements from the graph.
POST /mdm/v1/bulk_delete
Request
Query Parameters
The cloud resource name of the service.
The number of spark executors
Example:
1Amount of memory to use per executor process
Example:
8gThe number of cores to use on each executor
Example:
1The number of partitions to be used by spark
Example:
2batch size of the query parameter
Default:
1000Example:
1000No.of retries, if any failure occur
Example:
10Data Entitlement Access Token
Example:
2000
Valid object defining the bulk delete job information.
The type of delete to run.
Allowable values: [
asset,full,search,source]The data type to target for deletion.
Allowable values: [
record,relationship,hierarchy]Asset IDs for data to be deleted. Required on delete by asset.
Record source for data to be deleted. Required on delete by source targeting records.
Relationship source for data to be deleted. Required on delete by source targeting relationships.
A set of criteria for a search operation.
Response
Information about a bulk delete job.
The id for the job.
The type of job.
Possible values: [
delete,export,migration_export,bulk_load,reindex,sync_entities,backend_sync,cleanup_deleted_elements]The current status of the job.
Possible values: [
not_started,prep,queued,running,succeeded,failed,canceled,unknown]The type of delete.
Possible values: [
asset,full,search,source]The timestamp of when the job started.
The timestamp of when the job completed.
The list of identifiers for the job runs or processes.
Asset IDs for delete by asset.
Record source for delete by source.
The data type to target for deletion.
Possible values: [
record,relationship,hierarchy]Relationship source for delete by source.
A set of criteria for a search operation.
Status Code
The bulk delete job was successfully started.
Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem performing bulk delete. An internal error occurred while attempting to perform the operation.
{ "job_id": "24403560707830722", "job_type": "delete", "process_ids": [ "b3ba096d-c625-4d2f-ad12-285966f61cb0" ], "start_time": "1603483531000", "status": "running", "delete_type": "source", "record_source": "MDM" }
Start a bulk load of data into the graph
Once the data load job is queued, track the status of the job to completion using the Job APIs.
- To run a sample bulk load, provide the type as 'sample' and the directory_ref identifying which sample data set to load. directory_path is not required when type is set to 'sample', if provided it will be ignored. The available sample data sets are sample_contract_small, sample_consent_small, sample_contract, and sample_consent, and these are the only acceptable values for 'directory_ref'.
- To run a bulk load of custom data, provide the type as 'dfs' and the directory_path pointing to the relative location of the data within the storage system. 'directory_ref' is not required when type is set to 'dfs', if provided it will be ignored. Data source directories are expected to adhere to the following format, if not otherwise specified under 'data_structure' in the request body:
record.properties
relationship.properties
group.properties
group_association.properties
record
--[record data files]
relationship
--[relationship data files]
group
--[group data files]
group_association
--[group_association data files]
- To run a bulk load of data from the IBM Knowledge Catalog, provide the type as 'wkc' and either the 'project_id' or 'catalog_id' of the resource that contains the data. If both are provided, 'catalog_id' will be used by default. 'directory_ref' and 'directory_path' are not required when type is set to 'wkc', if provided they will be ignored. The data asset id and properties must be specified under 'data_structure' in the request body.
- For bulk loads of type 'dfs' or 'wkc', required data properties must be supplied either in a properties file or by specifying the properties contents in the request. If both a file and properties contents are provided, the properties contents will take precedence. Properties contents must include 'file_type' to be valid.
- To enable efficient deletion of a data asset in the future after bulk loading completes, please ensure that the optional 'collection_id' attribute is specified in the set of properties defined in the request. Alternatively, the value can be configured using the 'json.collection.id' or 'csv.collection.id' property in the data load properties file, depending on your data structure.
- For CSV import option if includes_header_row is set as true then header must be present in all partitions.
To specify a COS directory, directory_path should be in the format <bucket_name>/<directory_path>. If the COS bucket is not the provided tenant bucket, the origin field must be set to external and an IAM API key with access to the bucket must be provided in the api_key field. If the data directories do not follow the above format, the data structure field must be provided.
POST /mdm/v1/bulk_load
Request
Query Parameters
The cloud resource name of the service.
The number of spark executors
Example:
1Amount of memory to use per executor process
Example:
8gThe number of cores to use on each executor
Example:
1Batch Size
Example:
100Record Volume
Example:
5000The number of partitions to be used by spark
Example:
2Is initial load of data
Default:
falseExample:
trueData Entitlement Access Token
Example:
2000Set true to ignore history capture for bulk load
Default:
false
Valid object defining the data source and parameters for the bulk load job.
Information about the source of the data to be loaded.
Information about how the source data is structured on the storage system.
The strategy for updating existing data during the bulk load job.
Allowable values: [
append,patch,replace]
Response
Information about a bulk load job.
The id for the job.
The type of job.
Possible values: [
delete,export,migration_export,bulk_load,reindex,sync_entities,backend_sync,cleanup_deleted_elements]The current status of the job.
Possible values: [
not_started,prep,queued,running,succeeded,failed,canceled,unknown]The current stage of the bulk load job.
Possible values: [
vertices,edges,groups,group_associations,not_started,unknown]The timestamp of when the job started.
The timestamp of when the job completed.
The list of identifiers for the job runs or processes.
The strategy for updating existing data during the bulk load job.
Possible values: [
append,patch,put]
Status Code
The bulk load job was successfully started.
Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem performing bulk load. An internal error occurred while attempting to perform the operation.
Problem performing bulk load. A bulk load process is already running.
{ "job_id": "11734859286522966", "job_type": "bulk_load", "process_ids": [ "3d2a5f4a-4784-4562-9252-2aa5afa3547f", "cfdf26ea-040e-4ce1-80b4-a7491acd0198" ], "start_time": "1603479295000", "status": "running", "load_stage": "vertices" }
Perform a bulk update of data on the graph
Run an update of records and relationships in the graph by creating, modifying and deleting data in a single transaction. This operation is intended for incremental updates of data. Please use the bulk load feature when loading large volumes of data.
The operation runs as follows:
- Performs all relationship deletions first, then record deletions.
- After the deletions are completed, all record upserts (i.e. insertions and updates) are performed next, followed by relationship upserts.
- Any element found in both deletions and upserts is treated as a deletion, and is removed from the upserts list before processing.
- Any other case of a duplicated element will cause the update to fail.
- If the 'ignore_redundant_updates' parameter is set to 'true', any update with a timestamp that is not newer than the existing timestamp for that element will not be applied, but it will not cause the entire transaction to fail. If the flag is set to 'false', invalid timestamps will cause a transaction failure.
- If 'operation_strategy' is set to 'patch', any attributes not specified will be unchanged on the existing record or relationship. Attributes and fields can be removed by setting the attribute or field value to null. If 'operation_strategy' is not set to 'patch', existing attributes on the record or relationship will be overwritten.
- A failed update will cause all changes performed by the transaction to be reverted back to the original graph state.
POST /mdm/v1/ongoing_sync
Request
Query Parameters
The cloud resource name of the service.
Whether to ignore updates that fail due to missing or invalid 'record_last_updated' timestamps.
Default:
false
Valid object defining the elements to be inserted, updated or deleted on the graph.
The strategy for updating existing data during the ongoing sync.
Allowable values: [
patch,put]Default:
putA collection of records and relationships to create or update.
- upserts
A collection of records.
A collection of relationships.
A collection of groups.
A colleciton of hierarchies
A collection of group associations.
A collection of records and relationships to delete.
- deletions
A collection of records.
A collection of relationships.
A collection of groups.
A colleciton of hierarchies
A collection of group associations.
Response
Status Code
The updates have been successfully processed.
Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem performing bulk update. An internal error occurred while attempting to update the graph.
No Sample Response
Response
Status Code
Composite transaction has been successfully executed.
Problem executing composite transaction. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem executing composite transaction. An internal error occurred while attempting to create the record.
No Sample Response
Request
Query Parameters
The cloud resource name of the service.
a target of the health check for fdb (fdb, es, rabbitmq, all) and neo4j (neo4j, rabbitmq, all)
Default:
all
Response
Response object for get data health
Additional details of the health status.
Status of data health.
Severity of data health.
Status Code
The data service is healthy on the specified target.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Get the composite view of an entity
View attributes for an entity in a consolidated view based on defined composite view rules from the Model APIs.
GET /mdm/v1/entities/{id}Request
Path Parameters
The unique identifier of the entity.
Query Parameters
The cloud resource name of the service.
Record attributes from the data model to include in the results.
Possible values: contains only unique items
Examples:[ "legal_name.given_name" ]Record attributes from the data model to exclude from the results.
Possible values: contains only unique items
Examples:[ "legal_name.given_name" ]Point in time to retrieve the record history. Accepts ISO‑8601 date/time in UTC or local formats (e.g., '2025-09-10', '2025-09-10T13:59:59', '2025-09-10T13:59:59Z').
Example:
2025-09-10T13:59:59.000Z
Response
Information and metadata about the composite view of an entity.
Information about an entity.
Supplemental information about a resource.
Status Code
The composite view has been successfully retrieved.
Problem getting composite view of entity. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting composite view of entity. Entity with id <entity_id> does not exist.
Problem getting composite view of entity. An internal error occurred while attempting to retrieve the composite view.
{ "entity": { "attributes": { "birth_date": { "attribute_last_updated": "1548936483016", "value": "1934-05-11T00:00:00.000Z" }, "entity_last_updated": "1603572360787", "gender": { "attribute_last_updated": "1548936483016", "value": "F" }, "legal_name": { "attribute_last_updated": "1548936483016", "last_name": "LEES", "given_name": "KAROLYN" }, "primary_residence": { "attribute_last_updated": "1548936483189", "address_province_state_value": "KY", "address_city": "ELLIOTTVILLE", "address_zip_postal_code": "40317", "address_line_1": "106 EAST SYCAMORE ST.", "address_record_id": "215054896528318812", "address_line_2": "Unit-701" }, "record_id": "216754896528315937", "record_source": "MDM" }, "id": "person_entity-53496", "type": "entity", "record_count": 1, "type_name": "person_entity" }, "metadata": { "href": "${host}/mdm/v1/entities/person_entity-53496?crn=${crn}", "id": "person_entity-53496", "updated_at": "2020-10-24T20:46:00.787Z" } }
Replace entity-level attributes of a persisted entity
Replace the existing persisted entity with the new set of attributes. Any existing editable entity-level attributes not specified in the request will be removed from the entity.
PUT /mdm/v1/entities/{id}Request
Path Parameters
The unique identifier of the entity.
Query Parameters
The cloud resource name of the service.
Valid object defining the attributes of an entity to replace the existing entity-level attributes. All non-entity attributes will be ignored.
{
"attributes": {
"entity_last_updated": "1603572360787",
"family_name": {
"value": "Doe"
}
},
"type": "entity",
"type_name": "person_entity"
}Allowable values: [
entity]The list of the attributes of the element.
- attributes
The type as defined in the data model.
The number of records linked into the entity.
Then indicator which tells us if composite view is included or not.
The list of the system attributes of the element.
- system_attributes
User-owned custom attributes for the entity.
Possible values: contains only unique items
Response
Information and metadata about the composite view of an entity.
Information about an entity.
Supplemental information about a resource.
Status Code
The entity attributes have been successfully updated.
Problem updating attributes of entity. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem updating attributes of entity. Entity is not persisted on the graph.
Problem updating attributes of entity. An internal error occurred while attempting to update the entity attributes.
{ "entity": { "attributes": { "birth_date": { "value": "1934-05-11T00:00:00.000Z" }, "entity_last_updated": "1603572360787", "gender": { "attribute_last_updated": "1548936483016", "value": "F" }, "legal_name": { "attribute_last_updated": "1548936483016", "last_name": "LEES", "given_name": "KAROLYN" }, "primary_residence": { "attribute_last_updated": "1548936483189", "address_province_state_value": "KY", "address_city": "ELLIOTTVILLE", "address_zip_postal_code": "40317", "address_line_1": "106 EAST SYCAMORE ST.", "address_record_id": "215054896528318812", "address_line_2": "Unit-701" }, "family_name": { "attribute_last_updated": "1548936483016", "value": "Doe" }, "record_id": "216754896528315937", "record_source": "MDM" }, "id": "person_entity-53496", "type": "entity", "record_count": 1, "type_name": "person_entity" }, "metadata": { "href": "${host}/mdm/v1/entities/person_entity-53496?crn=${crn}", "id": "person_entity-53496", "updated_at": "2020-10-24T20:46:00.787Z" } }
Patch entity-level attributes of a persisted entity
Patch the existing persisted entity with the new set of attributes. Any existing editable entity-level attributes not specified in the request will be retained in the entity.
PATCH /mdm/v1/entities/{id}Request
Path Parameters
The unique identifier of the entity.
Query Parameters
The cloud resource name of the service.
Valid object defining the attributes of an entity to patch the existing entity-level attributes. All non-entity attributes will be ignored.
{
"attributes": {
"entity_last_updated": "1603572360787",
"family_name": {
"value": "Doe"
}
},
"type": "entity",
"type_name": "person_entity"
}Allowable values: [
entity]The list of the attributes of the element.
- attributes
The type as defined in the data model.
The number of records linked into the entity.
Then indicator which tells us if composite view is included or not.
The list of the system attributes of the element.
- system_attributes
User-owned custom attributes for the entity.
Possible values: contains only unique items
Response
Information and metadata about the composite view of an entity.
Information about an entity.
Supplemental information about a resource.
Status Code
The entity attributes have been successfully patched.
Problem patching attributes of entity. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem patching attributes of entity. Entity is not persisted on the graph.
Problem patching attributes of entity. An internal error occurred while attempting to patch the entity attributes.
{ "entity": { "attributes": { "birth_date": { "value": "1934-05-11T00:00:00.000Z" }, "entity_last_updated": "1603572360787", "gender": { "attribute_last_updated": "1548936483016", "value": "F" }, "legal_name": { "attribute_last_updated": "1548936483016", "last_name": "LEES", "given_name": "KAROLYN" }, "primary_residence": { "attribute_last_updated": "1548936483189", "address_province_state_value": "KY", "address_city": "ELLIOTTVILLE", "address_zip_postal_code": "40317", "address_line_1": "106 EAST SYCAMORE ST.", "address_record_id": "215054896528318812", "address_line_2": "Unit-701" }, "family_name": { "attribute_last_updated": "1548936483016", "value": "Doe" }, "record_id": "216754896528315937", "record_source": "MDM" }, "id": "person_entity-53496", "type": "entity", "record_count": 1, "type_name": "person_entity" }, "metadata": { "href": "${host}/mdm/v1/entities/person_entity-53496?crn=${crn}", "id": "person_entity-53496", "updated_at": "2020-10-24T20:46:00.787Z" } }
Preview the composite view of an entity given set of records
View attributes for an entity in a consolidated view based on defined composite view rules from the request.
POST /mdm/v1/entities
Request
Query Parameters
The cloud resource name of the service.
Entity Type
List of recordIds for which composite view is to be found
{
"record_ids": [
216754896528315940,
216754343254354370,
254315143644376540,
216754896528312320,
216234532528315940,
216734341123434560,
216798213768311230,
232131232123565950,
216754893465787900,
216432654765876580
]
}Get IDs of records
Response
Information and metadata about the composite view of an entity.
Information about an entity.
Supplemental information about a resource.
Status Code
The composite view has been successfully retrieved.
Problem getting composite view of entity. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting composite view of entity. Entity with id <entity_id> does not exist.
Problem getting composite view of entity. An internal error occurred while attempting to retrieve the composite view.
{ "entity": { "attributes": { "birth_date": { "attribute_last_updated": "1548936483016", "value": "1934-05-11T00:00:00.000Z" }, "entity_last_updated": "1603572360787", "gender": { "attribute_last_updated": "1548936483016", "value": "F" }, "legal_name": { "attribute_last_updated": "1548936483016", "last_name": "LEES", "given_name": "KAROLYN" }, "primary_residence": { "attribute_last_updated": "1548936483189", "address_province_state_value": "KY", "address_city": "ELLIOTTVILLE", "address_zip_postal_code": "40317", "address_line_1": "106 EAST SYCAMORE ST.", "address_record_id": "215054896528318812", "address_line_2": "Unit-701" }, "record_id": "216754896528315937", "record_source": "MDM" }, "id": "person_entity-53496", "type": "entity", "record_count": 1, "type_name": "person_entity" }, "metadata": { "href": "${host}/mdm/v1/entities/person_entity-53496?crn=${crn}", "id": "person_entity-53496", "updated_at": "2020-10-24T20:46:00.787Z" } }
List the records linked into an entity
View a list of member records that form the entity.
GET /mdm/v1/entities/{id}/recordsRequest
Path Parameters
The unique identifier of the entity.
Query Parameters
The cloud resource name of the service.
The maximum number of records to return in each page of results. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10The number of records to skip before returning a page of results.
Default:
0Record attributes from the data model to include in the results.
Possible values: contains only unique items
Examples:[ "legal_name.given_name" ]Record attributes from the data model to exclude from the results.
Possible values: contains only unique items
Examples:[ "legal_name.given_name" ]Flag to include the total record count on pages other than the first.
Default:
truePoint in time to retrieve the record history. Accepts ISO‑8601 date/time in UTC or local formats (e.g., '2025-09-10', '2025-09-10T13:59:59', '2025-09-10T13:59:59Z').
Example:
2025-09-10T13:59:59.000Z
Response
Paged information about a collection of records.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
A link to the first page of results.
- first
The url for the page of results.
The paged collection of workflows.
The total number of elements.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The entity records have been successfully retrieved.
Problem getting records for entity. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting records for entity: Entity with id <entity_id> does not exist.
Problem getting records for entity. An internal error occurred while attempting to retrieve the records.
{ "first": { "href": "${host}/mdm/v1/entities/person_entity-53496/records?crn=${crn}&return_type=results_as_entities&offset=0&limit=10" }, "last": { "href": "${host}/mdm/v1/entities/person_entity-53496/records?crn=${crn}&return_type=results_as_entities&offset=0&limit=10" }, "limit": 10, "offset": 0, "total_count": 1, "records": [ { "attributes": { "birth_date": { "attribute_last_updated": "1548936483016", "value": "1934-05-11T00:00:00.000Z" }, "gender": { "attribute_last_updated": "1548936483016", "value": "F" }, "legal_name": { "attribute_last_updated": "1548936483016", "last_name": "LEES", "given_name": "KAROLYN" }, "primary_residence": { "attribute_last_updated": "1548936483189", "address_province_state_value": "KY", "address_city": "ELLIOTTVILLE", "address_zip_postal_code": "40317", "address_province_state_type": "21", "address_line_1": "106 EAST SYCAMORE ST.", "address_record_id": "215054896528318812", "address_line_2": "Unit-701" }, "record_id": "216754896528315937", "record_last_updated": "1603572360787", "record_source": "MDM" }, "id": "53496", "type": "record", "record_number": 53496, "type_name": "person" } ] }
List the entity history
Retrieves the history of changes made to an entity within the specified time range. The response provides a chronological view of additions, updates or deletions that occurred during the requested period.
GET /mdm/v1/entities/{id}/historyRequest
Path Parameters
The unique entity id used to fetch entity history
Query Parameters
The cloud resource name of the service.
The type of entity.
The start of the time range (inclusive) for retrieving entity history changes. Accepts ISO‑8601 date/time in UTC or local formats (e.g., '2025-09-10', '2025-09-10T13:59:59', '2025-09-10T13:59:59Z').If provided, history changes from the given time will be fetched. If not provided, history changes from the earliest available will be fetched
Example:
2025-09-10T13:59:59.000ZThe end of the time range (inclusive) for retrieving entity history changes. Accepts ISO‑8601 date/time in UTC or local formats (e.g., '2025-09-15', '2025-09-15T10:11:05', '2025-09-15T10:11:05Z').If provided, history changes till the given time will be fetched. If not provided, history changes till the latest available will be fetched
Example:
2025-09-15T10:11:05.000ZThe number of entity history changes to skip over.
Default:
0The number of entity history changes to be returned. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10
Response
Paged information about a historical changes.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
A link to the first page of results.
- first
The url for the page of results.
The paged collection of historical changes.
The total number of elements.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The entity history have been successfully retrieved.
Problem getting entity history. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting entity history. An internal error occurred while attempting to retrieve the entity history.
{ "first": { "href": "${host}/mdm/v1/entities/person_entity-53496/history?crn=${crn}&offset=0&limit=10" }, "last": { "href": "${host}/mdm/v1/entities/person_entity-53496/history?crn=${crn}&offset=0&limit=10" }, "limit": 10, "offset": 0, "changes": [ { "id": "person_entity-53496", "type_name": "person_entity", "service_context": { "correlation_id": "1547836463189", "action_type": "update", "action_name": "match360.entity.update" }, "last_updated_date": "1757723880738", "last_updated_user": "sam.peter", "history_data_type": "entity" } ] }
List the relationships for an entity
View a list of relationships that exist between the given entity and other nodes on the graph. This endpoint does not include internal relationships in the resulting list of relationships.
GET /mdm/v1/entities/{id}/relationshipsRequest
Path Parameters
The ID of the entity.
Query Parameters
The cloud resource name of the service.
The relationship types to return.
Whether to include entity record relationships to other nodes.
Default:
falseThe number of relationships to skip over.
Default:
0The number of relationships to be returned. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10Attributes from the data model to include in the results for the source vertex.
Possible values: contains only unique items
Examples:[ "all" ]Attributes from the data model to include in the results for the target vertex.
Possible values: contains only unique items
Examples:[ "all" ]Point in time to retrieve the relationship history. Accepts ISO‑8601 date/time in UTC or local formats (e.g., '2025-09-10', '2025-09-10T13:59:59', '2025-09-10T13:59:59Z').
Example:
2025-09-10T13:59:59.000Z
Response
Paged information about a collection of relationships.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
The total number of elements.
A link to the first page of results.
- first
The url for the page of results.
The collection of relationships.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The relationships have been successfully retrieved.
Problem getting relationships for entity. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting relationships for entity. Entity not found.
Problem getting relationships for entity. An internal error occurred while attempting to retrieve the relationships.
{ "first": { "href": "${host}/mdm/v1/entities/456/relationships?crn=${crn}&offset=0&limit=10" }, "last": { "href": "${host}/mdm/v1/entities/456/relationships?crn=${crn}&offset=0&limit=10" }, "limit": 10, "offset": 0, "relationships": [ { "attributes": { "relationship_id": "997554896611881692", "relationship_last_updated": "1548937318815", "relationship_source": "MDM", "from_record_id": "358354896586841797", "from_record_source": "MDM", "from_record_type": "preference", "to_record_id": "998254896587316451", "to_record_source": "MDM", "to_record_type": "organization" }, "id": "215tzl-5cw8-q7f9-oi7u8", "source": { "id": "4344", "type": "record", "type_name": "person" }, "target": { "id": "456", "type": "entity", "type_name": "person_entity" }, "type": "relationship", "type_name": "preference_association" } ] }
List the records associated with entity records
View a list of records that have a relationship to the member records of the specified entity based on the specified relationship type. All records related to the specified entity will be returned regardless of relationship direction. The relationship type is expected to be defined in the data model.
GET /mdm/v1/entities/{id}/related_recordsRequest
Path Parameters
The unique identifier of the entity.
Query Parameters
The cloud resource name of the service.
The type of records to return in results.
The type of relationship between related records and entity member records.
The maximum number of records to return in each page of results. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10The number of records to skip before returning a page of results.
Default:
0Record attributes from the data model to include in the results.
Possible values: contains only unique items
Examples:[ "legal_name.given_name" ]Record attributes from the data model to exclude from the results.
Possible values: contains only unique items
Examples:[ "legal_name.given_name" ]Flag to include the total record count on pages other than the first.
Default:
true
Response
Paged information about a set of other records related to an entity or a record.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
The total number of elements.
A link to the first page of results.
- first
The url for the page of results.
The paged list of related records.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The related records for the entity have been successfully retrieved.
Problem getting related records for entity. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting related records for entity. Entity with id does not exist.
Problem getting related records for entity. An internal error occurred while attempting to retrieve the records.
{ "first": { "href": "${host}/mdm/v1/entities/person_entity-53496/related_records?crn=${crn}&relationship_type=party_relationship&record_type=person&offset=0&limit=10" }, "last": { "href": "${host}/mdm/v1/entities/person_entity-53496/related_records?crn=${crn}&relationship_type=party_relationship&record_type=person&offset=0&limit=10" }, "limit": 10, "offset": 0, "total_count": 1, "related_records": [ { "attributes": { "record_id": "535354896573139473", "record_last_updated": "1603572360787", "record_source": "MDM", "usage_type": { "attribute_last_updated": "1548936483189", "value": "3" }, "usage_value": { "attribute_last_updated": "1548936483189", "value": "Retail Banking" } }, "id": "192616", "type": "record", "record_number": 192616, "type_name": "preference" } ] }
List the export jobs
View a summary list of export jobs that have been requested.
GET /mdm/v1/data_exports
Request
Query Parameters
The cloud resource name of the service.
The number of exports to skip before returning a page of results.
Default:
0The maximum number of exports to return in each page of results. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10Whether to include exports with expired files.
Default:
true
Response
Paged information about a collection of exports.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
The total number of elements.
A link to the first page of results.
- first
The url for the page of results.
The paged collection of exports.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The list of exports was retrieved successfully.
Problem getting list of exports. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting list of exports. An internal error occurred while attempting to retrieve the list of exports.
{ "first": { "href": "${host}/mdm/v1/data_exports?crn=${crn}&record_type=person&local=true&offset=0&limit=10" }, "last": { "href": "${host}/mdm/v1/data_exports?crn=${crn}&record_type=person&local=true&offset=0&limit=10" }, "limit": 10, "offset": 0, "exports": [ { "end_time": "1603483621000", "job_id": "24403560707830722", "job_type": "export", "process_ids": [ "b3ba096d-c625-4d2f-ad12-285966f61cb0" ], "start_time": "1603483531000", "status": "succeeded", "file_expired": false, "file_name": "records", "search_criteria": { "filters": [], "query": { "expressions": [ { "condition": "equal", "expressions": [], "value": "JOHN" } ], "operation": "and" }, "search_type": "record" } } ], "total_count": 1 }
Start an export of search results
Run a data export job to export the results of a search. Export format, search criteria, and file name are configurable in the message body. The file name must only contain alphanumeric characters, and be 64 characters or less.
The operation runs as follows:
- On public cloud, instance metadata must be configured and include valid bucket credentials before an export job is started.
- A compression type must be provided when a partition type of 'executor_count' is specified.
POST /mdm/v1/data_exports
Request
Query Parameters
The cloud resource name of the service.
The type of file compression used when exporting the output file. Required when a partition type of 'executor_count' is specified.
Allowable values: [
tar,tgz,zip]The type of partitioning used when exporting the results.
Allowable values: [
none,executor_count]Default:
noneThe maximum number of results to be returned. The maximum limit is 10000.
Possible values: value ≤ 10000
The number of spark executors
Example:
1Amount of memory to use per executor process
Example:
8gThe number of cores to use on each executor
Example:
1The number of partitions to be used by spark
Example:
2Group multi value field values in single column
Default:
trueExample:
trueOptional batch size to be used by spark
Example:
1000Optional Access Token
Example:
1000
Valid object defining the export format and search criteria for the export job.
The type of data to export.
Allowable values: [
record,entity,relationship,potential_match,potential_duplicate,potential_overlay]The format of the export file.
Allowable values: [
csv,psv,tsv,json]A set of criteria for a search operation.
The file name of the export file.
The attributes to include when exporting.
- include_attributes
The list of record types and corresponding attributes to export.
The list of relationship types and corresponding attributes to export.
The list of entity types and corresponding attributes to export.
The attributes to exclude when exporting.
- exclude_attributes
The list of record types and corresponding attributes to export.
The list of relationship types and corresponding attributes to export.
The list of entity types and corresponding attributes to export.
Should Deleted Entities Be Exported.
Response
Information about an export.
The id for the job.
The type of job.
Possible values: [
delete,export,migration_export,bulk_load,reindex,sync_entities,backend_sync,cleanup_deleted_elements]The current status of the job.
Possible values: [
not_started,prep,queued,running,succeeded,failed,canceled,unknown]The type of data being exported.
Possible values: [
record,entity,relationship,potential_match,potential_duplicate,potential_overlay]The name of the export file.
Whether the export file is expired.
A set of criteria for a search operation.
The timestamp of when the job started.
The timestamp of when the job completed.
The list of identifiers for the job runs or processes.
Additional Information of Export Job.
- additional_info
Status Code
The export job was started successfully.
Problem starting export job. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem starting export job. An internal error occurred.
{ "job_id": "24403560707830722", "job_type": "export", "process_ids": [ "b3ba096d-c625-4d2f-ad12-285966f61cb0" ], "start_time": "1603483531000", "status": "running", "file_expired": false, "file_name": "records", "search_criteria": { "filters": [], "query": { "expressions": [ { "condition": "equal", "expressions": [], "value": "JOHN" } ], "operation": "and" }, "search_type": "record" }, "include_attributes": { "record_attributes": [ { "record_type": "person", "attribute_names": [ "legal_name.given_name" ] } ] }, "exclude_attributes": { "record_attributes": [ { "record_type": "person", "attribute_names": [ "legal_name.last_name" ] } ] } }
Download an export file
Download the resulting file from a completed export job if the file exists. The export files may expire after some time.
GET /mdm/v1/data_exports/{export_id}/downloadRequest
Path Parameters
The ID of the export. This ID is equivalent to the job ID of the export job.
Query Parameters
The cloud resource name of the service.
Response
Status Code
The export file has been successfully retrieved.
Problem downloading export file. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem downloading export file. The export does not exist.
Problem downloading export file. The export file no longer exists.
Problem downloading export file. An internal error occurred while attempting to retrieve the export file.
Problem downloading export file. The export job is not in a successful state.
No Sample Response
Get information for an export
View detailed information about the specified export job. The process ids can be used to track the job status through the Job APIs.
GET /mdm/v1/data_exports/{export_id}Response
Information about an export.
The id for the job.
The type of job.
Possible values: [
delete,export,migration_export,bulk_load,reindex,sync_entities,backend_sync,cleanup_deleted_elements]The current status of the job.
Possible values: [
not_started,prep,queued,running,succeeded,failed,canceled,unknown]The type of data being exported.
Possible values: [
record,entity,relationship,potential_match,potential_duplicate,potential_overlay]The name of the export file.
Whether the export file is expired.
A set of criteria for a search operation.
The timestamp of when the job started.
The timestamp of when the job completed.
The list of identifiers for the job runs or processes.
Additional Information of Export Job.
- additional_info
Status Code
The export information was retrieved successfully.
Problem getting export information. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting export information. The export does not exist.
Problem getting export information. An internal error occurred while attempting to retrieve the export information.
{ "end_time": "1603483621000", "job_id": "24403560707830722", "job_type": "export", "process_ids": [ "b3ba096d-c625-4d2f-ad12-285966f61cb0" ], "start_time": "1603483531000", "status": "succeeded", "file_expired": false, "file_name": "records", "search_criteria": { "filters": [], "query": { "expressions": [ { "condition": "equal", "expressions": [], "value": "JOHN" } ], "operation": "and" }, "search_type": "record" } }
Request
Query Parameters
The cloud resource name of the service.
The number of records to skip over.
Default:
0The number of records to be returned. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10
Response
Information about a Json UI Exports Response for all users.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
A link to the first page of results.
- first
The url for the page of results.
The paged collection of UI Exports jobs for all users.
The total number of elements.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Supplemental information about a resource.
Status Code
The export jobs details for all users has been successfully retrieved.
Problem getting export jobs. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting exports. An internal error occurred while attempting to get the exports.
[ { "export_jobs": { "33884041791950441": "abc.csv", "3434155992631831": "exportdatasample.csv", "26265886994529861": "asdsaa.csv", "4527694741782481": "test.csv", "34569389088179072": "testss.csv", "9825814994662883": "testss00.csv" } }, "exports_id": "test-user-exports" ]
Request
Path Parameters
The ID of the export doc.
Query Parameters
The cloud resource name of the service.
Response
Information about a Json UI Exports Response.
Information about UI exports.
Supplemental information about a resource.
Status Code
The export jobs details has been successfully retrieved.
Problem getting export jobs. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting exports. An internal error occurred while attempting to get the exports.
{ "export_jobs": { "33884041791950440": "abc.csv", "3434155992631832": "exportdatasample.csv", "26265886994529867": "asdsaa.csv", "4527694741782488": "test.csv", "34569389088179071": "testss.csv", "9825814994662888": "testss00.csv" } }
Request
Path Parameters
The ID of the exports doc.
Query Parameters
The cloud resource name of the service.
Valid object defining the exportJob to be added.
{
"export_jobs": {
"33884041791950440": "abc.csv",
"3434155992631832": "exportdatasample.csv",
"26265886994529867": "asdsaa.csv",
"4527694741782488": "test.csv",
"34569389088179071": "testss.csv",
"9825814994662888": "testss00.csv"
}
}- export_jobs
Response
Information about a Json UI Exports Response.
Information about UI exports.
Supplemental information about a resource.
Status Code
The export job has been successfully added.
Problem adding export job. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem adding export job. An internal error occurred while attempting to add the export job.
{ "export_jobs": { "33884041791950440": "abc.csv", "3434155992631832": "exportdatasample.csv", "26265886994529867": "asdsaa.csv", "4527694741782488": "test.csv", "34569389088179071": "testss.csv", "9825814994662888": "testss00.csv" } }
Delete export job from a set of jobs
Delete export job from a set of jobs from EM-UI
DELETE /mdm/v1/ui_exports/{id}Request
Path Parameters
The ID of the exports doc.
Query Parameters
The cloud resource name of the service.
Export Job Id to be deleted
Response
Information about a Json UI Exports Response.
Information about UI exports.
Supplemental information about a resource.
Status Code
The export job has been successfully deleted.
Problem deleting export job. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem deleting export job. An internal error occurred while attempting to delete the export job.
{ "export_jobs": { "33884041791950440": "abc.csv", "3434155992631832": "exportdatasample.csv", "26265886994529867": "asdsaa.csv", "4527694741782488": "test.csv", "34569389088179071": "testss.csv", "9825814994662888": "testss00.csv" } }
Get group for a given group_id, group_source and group_type
Retrieves the group for a given group_id, group_type and group_source
GET /mdm/v1/groups/bysourceid
Request
Query Parameters
The cloud resource name of the service.
Id of the group
Type of the group
Source of the group
The associated objects
Default:
noneThe number of groups to skip over
Default:
0The number of groups to be returned. The maximum limit is 50
Possible values: value ≤ 50
Default:
10Flag to include the member group count.
Default:
true
Response
Information about a group.
Information about a group.
Supplemental information about a resource.
Status Code
The group has been retrieved successfully.
Problem fetching group. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem processing request. Group not found for given id, type and source.
Problem fetching group. An internal error occurred while attempting retrieve group.
{ "group": { "attributes": { "entity_name": { "attribute1_value": [ "CONTACT" ] }, "group_description": { "attribute1_value": [ "Squad for Group Feature" ] }, "group_display_name": { "attribute1_value": [ "Group Feature Squad" ] }, "group_id": "200", "group_name": { "attribute1_value": [ "Group Feature Squad" ] }, "group_number": 200, "group_source": "MDM", "party_group_value": { "attribute1_value": [ "Status" ], "misc_value_priority_value": [ "High" ], "misc_value_description": [ "test 2 description" ], "attribute0_type": [ "9" ], "attribute0_value": [ "Customer Relationship Status" ], "misc_value_type": [ "2" ], "misc_value_priority_type": [ "2" ], "misc_value_value": [ "Office Locations" ], "category_type": [ "1" ], "attribute1_string": [ "Attribute 1" ], "category_value": [ "Demographic Info" ], "attribute1_type": [ "1" ] }, "start_date": "2024-01-01T00:00:00.000Z" }, "id": "200", "system_attributes": { "created_date": "1548935657855", "created_user": "testusr", "last_updated_date": "1548935657855", "last_updated_user": "testusr" }, "group_associations": [ { "attributes": { "description": "groupassociation", "group_association_role": { "role_type": [ "3" ], "role_value": [ "QA" ], "context_entity_name": [ "PartyGroupingAssociation" ], "description": [ "Developer" ], "category_type": [ "1" ], "category_value": [ "Implementing Frontend" ], "start_date": [ "32423424" ] }, "group_source_type": "2", "group_source_value": "User marked", "relationship_id": "1231562", "relationship_number": 42234232, "relationship_source": "MDM" }, "id": "1231562", "system_attributes": { "created_date": "1548935657855", "created_user": "testusr", "last_updated_date": "1548935657855", "last_updated_user": "testusr" }, "source": { "attributes": { "group_number": "200", "group_source": "MDM" }, "id": "200", "system_attributes": {}, "group_associations": [], "type": "group", "type_name": "feature_squad" }, "target": { "attributes": { "collection_id": "data-create-op", "record_id": "fd5baf1c-caef-4300-9cb2-12d2805ec743", "record_last_updated": "1741784342749", "record_number": 6225011741784343000, "record_source": "MDM" }, "id": "6225011741784342832", "system_attributes": { "created_date": 1741784342749, "created_user": "cpadmin", "last_updated_date": 1741784342749, "last_updated_user": "cpadmin" }, "record_number": 6225011741784343000, "type": "record", "type_name": "person" }, "type": "relationship", "type_name": "feature_squad_association" } ], "type": "group", "type_name": "feature_squad" }, "metadata": { "href": "https://cpd-mdm.apps.mdm.cp.fyre.ibm.com/17/mdm/v1", "id": "200", "updated_at": "2019-01-31T11:54:17.855Z" } }
Get all groups
This function retrieves all groups if no specific group_type is passed. Otherwise, retrieves groups under the specific group_type.
GET /mdm/v1/groups
Request
Query Parameters
The cloud resource name of the service.
group type
The number of groups to skip over.
Default:
0The number of groups to be returned. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10Flag to include the total member count for each group.
Default:
false
Response
Paged information about a collection of groups.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
A link to the first page of results.
- first
The url for the page of results.
The paged collection of groups.
The total number of elements.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The groups has been retrieved successfully.
Problem fetching groups. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem fetching groups. An internal error occurred while attempting to retrieve groups.
{ "first": { "href": "https://data:9443/mdm/v1/groups?crn=%3A%3A%3A%3A%3A%3A%3Atenant01%3A%3A&include_member_count=true&offset=0&limit=10" }, "limit": 10, "offset": 0, "groups": [ { "attributes": { "group_display_name": { "value": "Statewide Customers Group 1" }, "group_id": "1001", "group_name": { "value": "Statewide Customers Group 1" }, "group_source": "MDM" }, "id": "10001752731043258", "system_attributes": { "created_date": 1752731042813, "created_user": "admin", "last_updated_date": 1752731042813, "last_updated_user": "admin" }, "group_associations": [], "group_number": 10001752731043258, "member_count": 3, "type": "group", "type_name": "statewide_customers_group" } ] }
Request
Valid object defining the group to be added to the graph.
{
"type": "group",
"type_name": "generic_group",
"attributes": {
"group_source": "MDM",
"group_name": {
"value": "MDM Group"
},
"group_description": {
"value": "Group of MDM members"
},
"group_display_name": {
"value": "MDM Group"
}
},
"group_associations": [
{
"type": "relationship",
"type_name": "generic_group_relationship",
"attributes": {
"relationship_source": "MDM",
"description": {
"value": "Generic Group Relationship"
}
},
"target": {
"type": "record",
"type_name": "person",
"id": "10051001"
}
}
]
}Allowable values: [
group]The list of the attributes of the element.
- attributes
The type as defined in the data model.
The list of the system attributes of the element.
- system_attributes
The group associations.
group number
Total Number of members for the group.
Response
Information about a group.
Information about a group.
Supplemental information about a resource.
Status Code
The group has been successfully created.
Problem creating group. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting statistics. An internal error occurred.
{ "group": { "attributes": { "group_description": { "value": "GroupofMDMmembers" }, "group_display_name": { "value": "MDMGroup" }, "group_id": "b3729d7c-7d7c-440a-bfc2-5461bc999004", "group_name": { "value": "MDMGroup" }, "group_source": "MDM" }, "id": "10001746508679704", "system_attributes": { "created_date": 1746508679616, "created_user": "admin", "last_updated_date": 1746508679616, "last_updated_user": "admin" }, "group_associations": [ { "attributes": { "relationship_last_updated": "1746508679616", "relationship_number": 10001746508679824, "relationship_source": "MDM" }, "id": "10001746508679824", "system_attributes": { "created_date": 1746508679616, "created_user": "admin", "last_updated_date": 1746508679616, "last_updated_user": "admin" }, "source": { "attributes": { "group_id": "b3729d7c-7d7c-440a-bfc2-5461bc999004", "group_source": "MDM" }, "id": "10001746508679704", "group_number": 10001746508679704, "type": "group", "type_name": "feature_squad" }, "target": { "attributes": { "collection_id": "data-create-op", "record_id": "12345", "record_last_updated": "1746507967759", "record_number": 3621851746507968500, "record_source": "MDM" }, "id": "3621851746507968566", "record_number": 3621851746507968500, "type": "record", "type_name": "person" }, "type": "relationship", "type_name": "feature_squad_relationship" } ], "group_number": 10001746508679704, "type": "group", "type_name": "feature_squad" }, "metadata": { "href": "https://data:9443/mdm/v1/groups?crn=%3A%3A%3A%3A%3A%3A%3Atenant01%3A%3A/10001746508679704", "id": "10001746508679704", "updated_at": "2025-05-06T05:17:59.616Z" } }
Request
Path Parameters
Id of the group
Query Parameters
The cloud resource name of the service.
type of the group
The associated objects.
Default:
noneThe number of group nodes to skip over.
Default:
0The number of group nodes to be returned. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10Flag to include the member group count.
Default:
true
Response
Information about a group.
Information about a group.
Supplemental information about a resource.
Status Code
The group has been retrieved successfully.
Problem fetching group. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem processing request. Group not found for given id and type
Problem fetching group. An internal error occurred while attempting retrieve group.
{ "group": { "attributes": { "entity_name": { "attribute1_value": [ "CONTACT" ] }, "group_description": { "attribute1_value": [ "Squad for Group Feature" ] }, "group_display_name": { "attribute1_value": [ "Group Feature Squad" ] }, "group_id": "200", "group_name": { "attribute1_value": [ "Group Feature Squad" ] }, "group_number": 200, "group_source": "MDM", "party_group_value": { "attribute1_value": [ "Status" ], "misc_value_priority_value": [ "High" ], "misc_value_description": [ "test 2 description" ], "attribute0_type": [ "9" ], "attribute0_value": [ "Customer Relationship Status" ], "misc_value_type": [ "2" ], "misc_value_priority_type": [ "2" ], "misc_value_value": [ "Office Locations" ], "category_type": [ "1" ], "attribute1_string": [ "Attribute 1" ], "category_value": [ "Demographic Info" ], "attribute1_type": [ "1" ] }, "start_date": "2024-01-01T00:00:00.000Z" }, "id": "200", "system_attributes": { "created_date": "1548935657855", "created_user": "testusr", "last_updated_date": "1548935657855", "last_updated_user": "testusr" }, "group_associations": [ { "attributes": { "description": "groupassociation", "group_association_role": { "role_type": [ "3" ], "role_value": [ "QA" ], "context_entity_name": [ "PartyGroupingAssociation" ], "description": [ "Developer" ], "category_type": [ "1" ], "category_value": [ "Implementing Frontend" ], "start_date": [ "32423424" ] }, "group_source_type": "2", "group_source_value": "User marked", "relationship_id": "1231562", "relationship_number": 42234232, "relationship_source": "MDM" }, "id": "1231562", "system_attributes": { "created_date": "1548935657855", "created_user": "testusr", "last_updated_date": "1548935657855", "last_updated_user": "testusr" }, "source": { "attributes": { "group_number": "200", "group_source": "MDM" }, "id": "200", "system_attributes": {}, "group_associations": [], "type": "group", "type_name": "feature_squad" }, "target": { "attributes": { "collection_id": "data-create-op", "record_id": "fd5baf1c-caef-4300-9cb2-12d2805ec743", "record_last_updated": "1741784342749", "record_number": 6225011741784343000, "record_source": "MDM" }, "id": "6225011741784342832", "system_attributes": { "created_date": 1741784342749, "created_user": "cpadmin", "last_updated_date": 1741784342749, "last_updated_user": "cpadmin" }, "record_number": 6225011741784343000, "type": "record", "type_name": "person" }, "type": "relationship", "type_name": "feature_squad_association" } ], "type": "group", "type_name": "feature_squad" }, "metadata": { "href": "https://cpd-mdm.apps.mdm.cp.fyre.ibm.com/17/mdm/v1", "id": "200", "updated_at": "2019-01-31T11:54:17.855Z" } }
Replace attributes for a group
Replace the existing group with the new set of attributes. Any existing editable record attributes not specified in the request will be removed from the group.
PUT /mdm/v1/groups/{id}Request
Path Parameters
The ID of the group.
Query Parameters
The cloud resource name of the service.
Valid object defining the group information to replace the existing group.
{
"type":"group","type_name":"generic_group","attributes":{"group_source":"MDM","group_name":{"value":"MDM Group"},"group_description":{"value":"Group of MDM members"},"group_display_name":{"value":"MDM Group"}},"id":"112233""group_number":112233"group_associations":[]}Allowable values: [
group]The list of the attributes of the element.
- attributes
The type as defined in the data model.
The list of the system attributes of the element.
- system_attributes
The group associations.
group number
Total Number of members for the group.
Response
Information about a group.
Information about a group.
Supplemental information about a resource.
Status Code
The group has been successfully updated.
Problem updating group. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem updating group. The group could not be found.
Problem getting statistics. An internal error occurred.
{ "type": "group", "type_name": "generic_group", "attributes": { "group_source": "MDM", "group_name": { "value": "MDM Group" }, "group_description": { "value": "Group of MDM members" }, "group_display_name": { "value": "MDM Group" } }, "group_associations": [] }
Delete a group Instance
Deletes Group node and all of its relationships for the given group_type and group_number
DELETE /mdm/v1/groups/{id}Request
Path Parameters
The id for the group
Query Parameters
The cloud resource name of the service.
The type of the group
Response
Status Code
The deletes have been successfully processed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Group instance does not exist.
Problem performing group delete. An internal error occurred while attempting to update the graph.
No Sample Response
Search the data on the group
Search Options:
- Simple or Full text search: Use * as the property key, contains as the condition key and group_type must be empty
- Advance or Attribute field search: Apply dot notation for keys (e.g. group_name.value) and group_type must be non-empty.
- Filters: For simple search, include filters to filter by group types.
- Member associated groups: Include associated_member details to filter by a member's groups.
- Pagination: supported.
POST /mdm/v1/groups/search
Request
Query Parameters
The cloud resource name of the service.
The maximum number of elements to return in each page of results. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10The number of elements to skip before returning a page of results.
Default:
0The field is used to include total count of search data.
Default:
false
Valid input defining the search criteria.
{
"expressions": [
{
"property": "group_name.value",
"condition": "equal",
"value": "soccer club",
"group_type": "sports_club"
}
],
"operation": "and",
"filters": [
{
"type": "group",
"values": [
"sports_club"
]
}
],
"associated_member": {
"type": "record",
"type_name": "person",
"id": "1422123424"
}
}The list of expressions.
The operation to apply to the expressions.
Allowable values: [
and,or]The search filters to apply to the search to narrow down results.
Member used to narrow down the search results to associated groups.
- associated_member
The type of the member.
Allowable values: [
record,entity]The type as defined in the data model.
The id of the member.
Response
Paged information about a collection of groups.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
A link to the first page of results.
- first
The url for the page of results.
The paged collection of groups.
The total number of elements.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The groups has been retrieved successfully.
Problem searching groups. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem searching groups. An internal error occurred while attempting to retrieve groups.
{ "first": { "href": "" }, "last": { "href": "" }, "limit": 10, "offset": 0, "total_count": 2, "groups": [ { "type": "group", "type_name": "branch_bank_customer", "id": "12324", "attributes": { "group_id": "999", "group_source": "MDM", "group_number": 1002, "group_name": "toronto_branch_bank_customers", "description": "test 2", "group_value": [ { "value": "x", "priority": "1", "category": "cat1" }, { "value": "y", "priority": "4", "category": "cat2" } ], "status": "draft", "start_date": "456456", "created_date": "456456", "group_last_updated": "123456", "last_updated_user": "user2", "group_associations": [ { "relationship_id": "source_id", "relationship_source": "MDM", "member_role": [ { "role": "manager", "start_date": "457867234" } ], "source": { "group_id": "source_id", "group_source": "MDM" }, "target": { "record_id": "342432", "record_source": "MDM" } } ] } }, { "type": "group", "type_name": "generic_group", "id": "988", "attributes": { "group_id": "988", "group_source": "MDM", "group_number": 1008, "group_name": "generic_group", "description": "test 1", "group_value": [ { "value": "x", "priority": "1", "category": "cat1" }, { "value": "y", "priority": "4", "category": "cat2" } ], "status": "draft", "start_date": "456456", "created_date": "456456", "group_last_updated": "123456", "last_updated_user": "user2", "group_associations": [ { "relationship_id": "source_id", "relationship_source": "MDM", "member_role": [ { "role": "manager", "start_date": "457867234" } ], "source": { "group_id": "source_id", "group_source": "MDM" }, "target": { "record_id": "342432", "record_source": "MDM" } } ] } } ] }
Get all the groups for a given id
This function retrieves all the groups to which the given object is part of.
GET /mdm/v1/groups/by_associated_object/{id}Request
Path Parameters
id of respective entity
Query Parameters
The cloud resource name of the service.
type of the given id
type name of the given id
The number of groups to skip over.
Default:
0The number of groups to be returned. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10Flag to include the total group count.
Default:
false
Response
Paged information about a collection of groups.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
A link to the first page of results.
- first
The url for the page of results.
The paged collection of groups.
The total number of elements.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The groups has been retrieved successfully.
Problem fetching groups. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem fetching groups. An internal error occurred while attempting to retrieve groups.
{ "first": { "href": "" }, "last": { "href": "" }, "limit": 10, "offset": 0, "total_count": 2, "groups": [ { "type": "group", "type_name": "branch_bank_customer", "id": "12324", "attributes": { "group_id": "999", "group_source": "MDM", "group_number": 1002, "group_name": "toronto_branch_bank_customers", "description": "test 2", "group_value": [ { "value": "x", "priority": "1", "category": "cat1" }, { "value": "y", "priority": "4", "category": "cat2" } ], "status": "draft", "start_date": "456456", "created_date": "456456", "group_last_updated": "123456", "last_updated_user": "user2", "group_associations": [ { "relationship_id": "source_id", "relationship_source": "MDM", "member_role": [ { "role": "manager", "start_date": "457867234" } ], "source": { "group_id": "source_id", "group_source": "MDM" }, "target": { "record_id": "342432", "record_source": "MDM" } } ] } }, { "type": "group", "type_name": "generic_group", "id": "988", "attributes": { "group_id": "988", "group_source": "MDM", "group_number": 1008, "group_name": "generic_group", "description": "test 1", "group_value": [ { "value": "x", "priority": "1", "category": "cat1" }, { "value": "y", "priority": "4", "category": "cat2" } ], "status": "draft", "start_date": "456456", "created_date": "456456", "group_last_updated": "123456", "last_updated_user": "user2", "group_associations": [ { "relationship_id": "source_id", "relationship_source": "MDM", "member_role": [ { "role": "manager", "start_date": "457867234" } ], "source": { "group_id": "source_id", "group_source": "MDM" }, "target": { "record_id": "342432", "record_source": "MDM" } } ] } } ] }
Add, update and remove groups from given object
Add, update and remove groups from a given object. The operation runs as follows:
- Any element found in both upserts and deletions is considered as a deletion and removed from upsert list.
- Any duplicate element in upsert list will cause API to fail.
- Any duplicate element in delete list is ignored.
- Perform all deletions first and then upserts.
- Any element in upsert list with id is considered as an update, otherwise an insert.
- For an update scenario, API will replace group association attributes with the new set of values coming in input. ie, any existing editable attributes for group association not specified in the request will be removed from the group association.
PATCH /mdm/v1/groups/by_associated_object/{id}Request
Path Parameters
The id for the respective entity
Query Parameters
The cloud resource name of the service.
type of the given id
type name of the given id
Valid object defining the group associations to be added/updated/removed to the graph.
{
"upserts": [
{
"type": "relationship",
"type_name": "feature_squad_relationship",
"attributes": {
"relationship_source": "MDM"
},
"source": {
"type": "group",
"type_name": "feature_squad",
"id": "4871251747213535879"
}
}
],
"deletions": [
{
"type": "relationship",
"type_name": "feature_squad_relationship",
"id": "10001747233857057",
"source": {
"type": "group",
"type_name": "feature_squad",
"id": "2771251747213535865"
}
}
]
}Collection of group associations to create or update.
Collection of group associations to delete.
Response
Information about patch group associations.
patch group associations data.
Supplemental information about a resource.
Status Code
The object has been successfully updated with incoming group associations.
Problem creating group. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting statistics. An internal error occurred.
{ "metadata": { "href": "https://data:9443/mdm/v1/groups/by_associated_object/5914751748583943094?crn=%3A%3A%3A%3A%3A%3A%3Atenant01%3A%3A&type=record&type_name=person", "id": "5914751748583943094", "updated_at": "2025-05-14T13:37:39.957Z" }, "patch_group_associations": { "upserts": [ { "attributes": { "relationship_id": "1be12f19-6610-4374-8182-ea2f022cb0b4", "relationship_last_updated": "1747229859957", "relationship_number": 10001747229861480, "relationship_source": "MDM" }, "id": "10001747229861480", "system_attributes": { "created_date": 1747229859957, "created_user": "admin", "last_updated_date": 1747229859957, "last_updated_user": "admin" }, "source": { "attributes": { "group_id": "a363fd60-6a61-4b1a-a2af-4495363d04c8", "group_source": "MDM" }, "id": "10001747213127842", "group_number": 10001747213127842, "type": "group", "type_name": "feature_squad" }, "target": { "attributes": { "collection_id": "data-create-op", "record_id": "12345", "record_last_updated": "1747213535765", "record_number": 4871251747213536000, "record_source": "MDM" }, "id": "4871251747213535879", "record_number": 4871251747213536000, "type": "record", "type_name": "person" }, "type": "relationship", "type_name": "feature_squad_relationship" } ], "deletions": [ { "type": "relationship", "type_name": "feature_squad_relationship", "id": "10001747233857057", "target": { "type": "record", "type_name": "person", "id": "4871251747213535879" } } ] } }
Request
Query Parameters
The cloud resource name of the service.
Group types to include in the results
Possible values: contains only unique items
Examples:[ "statewide_customers_group" ]
Response
Detailed statistics for groups.
The aggregate counts by group type.
Status Code
The groups statistics data is returned successfully.
Problem getting group statistics. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting statistics. An internal error occurred.
{ "group_types": [ { "key": "statewide_customers_group", "size": 10 }, { "key": "statewide_contracts_group", "size": 36 }, { "key": "generic_group", "size": 45 } ] }
Add, update and remove associations from a group
Add, update and remove associations from a group. The operation runs as follows:
- Any element found in both upserts and deletions is considered as a deletion and removed from upsert list.
- Any duplicate element in upsert list will cause API to fail.
- Any duplicate element in delete list is ignored.
- Perform all deletions first and then upserts.
- Any element in upsert list with id is considered as an update, otherwise an insert.
- For an update scenario, API will replace group association attributes with the new set of values coming in input. ie, any existing editable attributes for group association not specified in the request will be removed from the group association.
PATCH /mdm/v1/groups/{id}/associationsRequest
Path Parameters
The id for the group
Query Parameters
The cloud resource name of the service.
Valid object defining the group associations to be added/updated/removed to the graph.
{
"upserts": [
{
"type": "relationship",
"type_name": "feature_squad_relationship",
"attributes": {
"relationship_source": "MDM"
},
"target": {
"type": "record",
"type_name": "person",
"id": "4871251747213535879"
}
}
],
"deletions": [
{
"type": "relationship",
"type_name": "feature_squad_relationship",
"id": "10001747233857057",
"target": {
"type": "record",
"type_name": "person",
"id": "4871251747213535879"
}
}
]
}Collection of group associations to create or update.
Collection of group associations to delete.
Response
Information about patch group associations.
patch group associations data.
Supplemental information about a resource.
Status Code
The group has been successfully updated with incoming group associations.
Problem creating group. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting statistics. An internal error occurred.
{ "metadata": { "href": "https://data:9443/mdm/v1/groups/10001747213127842/associations?crn=%3A%3A%3A%3A%3A%3A%3Atenant01%3A%3A/10001747213127842", "id": "10001747213127842", "updated_at": "2025-05-14T13:37:39.957Z" }, "patch_group_associations": { "upserts": [ { "attributes": { "relationship_id": "1be12f19-6610-4374-8182-ea2f022cb0b4", "relationship_last_updated": "1747229859957", "relationship_number": 10001747229861480, "relationship_source": "MDM" }, "id": "10001747229861480", "system_attributes": { "created_date": 1747229859957, "created_user": "admin", "last_updated_date": 1747229859957, "last_updated_user": "admin" }, "source": { "attributes": { "group_id": "a363fd60-6a61-4b1a-a2af-4495363d04c8", "group_source": "MDM" }, "id": "10001747213127842", "group_number": 10001747213127842, "type": "group", "type_name": "feature_squad" }, "target": { "attributes": { "collection_id": "data-create-op", "record_id": "12345", "record_last_updated": "1747213535765", "record_number": 4871251747213536000, "record_source": "MDM" }, "id": "4871251747213535879", "record_number": 4871251747213536000, "type": "record", "type_name": "person" }, "type": "relationship", "type_name": "feature_squad_relationship" } ], "deletions": [ { "type": "relationship", "type_name": "feature_squad_relationship", "id": "10001747233857057", "target": { "type": "record", "type_name": "person", "id": "4871251747213535879" } } ] } }
Get all the hierarchy for a given id
This function retrieves all the hierarchies to which the given object is part of.
GET /mdm/v1/hierarchies/by_associated_object/{id}Request
Path Parameters
id of respective entity
Query Parameters
The cloud resource name of the service.
type of the given id
type name of the given id
The number of hierarchies to skip over.
Default:
0The number of hierarchies to be returned. The maximum limit is 200.
Possible values: value ≤ 200
Default:
10Flag to include the total hierarchy count.
Default:
falseFlag to include the node centric view.
Default:
false
Response
Information about a hierarchy.
Information about a hierarchy.
Supplemental information about a resource.
A link to the first page.
- first
The url for the page of results.
A link to the last page.
- last
The url for the page of results.
A link to the previous page.
- previous
The url for the page of results.
A link to the next page.
- next
The url for the page of results.
The number of elements to skip.
The maximum number of elements to return in a page.
The total count of elements.
Status Code
The hierarchy has been retrieved successfully.
Problem fetching hierarchies. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem fetching hierarchies. An internal error occurred while attempting to retrieve hierarchies.
{ "first": { "href": "${host}/mdm/v1/hierarchies/40964176?crn=${crn}" }, "limit": 10, "offset": 0, "hierarchies": [ { "attributes": { "description.value": "ABC generic hierarchy description", "hierarchy_name.value": "ABC legal and report hierarchy", "hierarchy_type": "generic_hierarchy" }, "id": "169442046788183040", "system_attributes": { "created_date": 1732746528141, "created_user": "admin", "hierarchy_id": "7e6f9001-a291-481c-8fcb-c6d7a550501c", "hierarchy_number": 169442046788183040, "hierarchy_source": "MDM", "last_updated_date": 1732746589604, "last_updated_user": "admin" }, "type": "hierarchy", "type_name": "generic_hierarchy" }, { "attributes": { "description.value": "ABC generic hierarchy description", "hierarchy_name.value": "ABC generic hierarchy", "hierarchy_type": "generic_hierarchy" }, "id": "169442294398919680", "system_attributes": { "created_date": 1732746764281, "created_user": "admin", "hierarchy_id": "987", "hierarchy_number": 169442294398919680, "hierarchy_source": "MDM", "last_updated_date": 1732746764281, "last_updated_user": "admin1" }, "type": "hierarchy", "type_name": "generic_hierarchy" } ] }
Get hierarchy for a given id
Retrieves the hierarchy, for a given id and typeName
GET /mdm/v1/hierarchies/{id}Request
Path Parameters
Id of the hierarchy
Query Parameters
The cloud resource name of the service.
type of the hierarchy
Specify the starting level from which you want to retrieve the hierarchy.
Default:
0Specify the level up to which you want to retrieve the hierarchy.
Default:
0The associated objects.
return hierarchy orphan nodes only
Default:
falseThe number of hierarchy nodes to skip over.
Default:
0The number of hierarchy nodes to be returned. The maximum limit is 200.
Possible values: value ≤ 200
Default:
20
Response
Information about a hierarchy.
Information about a hierarchy.
Supplemental information about a resource.
A link to the first page.
- first
The url for the page of results.
A link to the last page.
- last
The url for the page of results.
A link to the previous page.
- previous
The url for the page of results.
A link to the next page.
- next
The url for the page of results.
The number of elements to skip.
The maximum number of elements to return in a page.
The total count of elements.
Status Code
The hierarchy has been retrieved successfully.
Problem fetching hierarchy. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem fetching hierarchy. An internal error occurred while attempting retrieve hierarchy.
{ "hierarchy_type": "generic_hierarchy", "nodes": [ { "node_type": "hierarchy_node", "id": "1000", "type": "node", "attributes": { "node_number": 1000, "context_id": 1, "node_last_updated": 1555605105822 }, "system_attributes": { "created_date": "1731525595757", "last_updated_date": "1555605105822" } } ], "relationships": [ { "sourceNode": { "node_type": "generic_hierarchy", "id": "168161806391443456", "type": "node" }, "targetNode": { "node_type": "hierarchy_node", "id": "1000", "type": "node" }, "relationship_type": "hierarchy_node_relationship", "type": "relationship" }, { "sourceNode": { "node_type": "hierarchy_node", "id": "1000", "type": "node" }, "targetNode": { "record_type": "person", "id": "1000", "type": "record" }, "relationship_type": "hierarchy_node_association_relationship", "type": "relationship" } ], "associated_objects": [ { "record_type": "person", "id": "1000", "type": "record", "attributes": { "vertex_id": "MDM-person-5521608536332042", "record_number": 1000, "record_source": "MDM", "record_type": "person" }, "system_attributes": { "created_date": "1731525595697", "last_updated_date": "1731525595697" } } ], "id": "168161806391443456", "type": "hierarchy", "attributes": { "hierarchy_id": "988", "hierarchy_last_updated": 1555605105822, "hierarchy_name.value": "test hierarchy name", "hierarchy_type": "generic_hierarchy", "hierarchy_number": 168161806391443460 }, "system_attributes": { "hierarchy_last_updated_user": "cusadmin", "created_date": "1731525595757", "hierarchy_created_date": "2023-08-02T00:00:00.000Z", "last_updated_date": "1555605105822" } }
Delete a Hierarchy Instance
Deletes the hierarchy anchor node, the hierarchy nodes and all of its relationships for the given hierarchy_type and context_id.The context_id in the hierarchy nodes and the hierarchy_number in the hierarchy anchor node will be the same.
DELETE /mdm/v1/hierarchies/{id}Request
Path Parameters
The id for the hierarchy
Query Parameters
The cloud resource name of the service.
The type of the hierarchy
Response
Status Code
The deletes have been successfully processed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Hierarchy instance does not exist.
Problem performing hierarchy delete. An internal error occurred while attempting to update the graph.
No Sample Response
Replace attributes for a hierarchy
Run an update of hierarchy and relationships in the graph by creating, modifying and deleting data in a single transaction. The operation runs as follows:
- Performs all node deletions first, then relationship deletions.
- After the deletions are completed, all hierarchy upserts (i.e. insertions and updates) are performed next.
- Any element found in both deletions and upserts is treated as a deletion, and removed from the upserts list before processing. Attributes and fields can be removed by setting the attribute or field value to empty string "".
- A failed update will cause all changes performed by the transaction to be reverted back to the original graph state.
PATCH /mdm/v1/hierarchies/{id}Request
Path Parameters
The id for the hierarchy
Query Parameters
The cloud resource name of the service.
The type of the hierarchy
Valid object defining the record information to replace the existing record.
{
"upserts": {
"type": "hierarchy",
"type_name": "generic_hierarchy",
"id": "id",
"attributes": {
"hierarchy_name": {
"value": "ABC legal and report hierarchy"
},
"last_updated_date": "last_updated_date"
},
"nodes": [
{
"type": "node",
"type_name": "hierarchy_node",
"reference_id": "11",
"attributes": {
"role": {
"value": "CEO, A Co"
},
"designation": {
"value": "LOCAL PARENT"
}
}
},
{
"type": "node",
"type_name": "hierarchy_node",
"reference_id": "12",
"attributes": {
"role": {
"value": "CEO, B Co"
},
"designation": {
"value": "LOCAL PARENT"
}
}
},
{
"type": "node",
"type_name": "hierarchy_node",
"reference_id": "13",
"attributes": {
"role": {
"value": "CEO, C Co"
},
"designation": {
"value": "LOCAL PARENT"
}
}
}
],
"relationships": [
{
"type": "relationship",
"type_name": "hierarchy_node_relationship",
"source": {
"id": "node_id2",
"type": "node",
"type_name": "hierarchy_node"
},
"target": {
"id": "11",
"type": "node",
"type_name": "hierarchy_node"
}
},
{
"type": "relationship",
"type_name": "hierarchy_node_relationship",
"source": {
"id": "node_id3",
"type": "node",
"type_name": "hierarchy_node"
},
"target": {
"id": "12",
"type": "node",
"type_name": "hierarchy_node"
}
},
{
"type": "relationship",
"type_name": "hierarchy_node_association_relationship",
"source": {
"id": "11",
"type": "node",
"type_name": "hierarchy_node"
},
"target": {
"id": "person_id1",
"type": "record",
"type_name": "person"
}
},
{
"type": "relationship",
"type_name": "hierarchy_node_association_relationship",
"source": {
"id": "12",
"type": "node",
"type_name": "hierarchy_node"
},
"target": {
"id": "person_id2",
"type": "record",
"type_name": "person"
}
},
{
"type": "relationship",
"type_name": "hierarchy_node_association_relationship",
"source": {
"id": "13",
"type": "node",
"type_name": "hierarchy_node"
},
"target": {
"id": "person_id3",
"type": "record",
"type_name": "person"
}
}
]
},
"deletions": {
"relationships": [
{
"type": "relationship",
"type_name": "hierarchy_node_association_relationship",
"source": {
"id": "node_id3",
"type": "node",
"type_name": "hierarchy_node"
},
"target": {
"id": "org_id3",
"type": "record",
"type_name": "organization"
}
}
]
}
}A Hierarchy and collection of hierarchy nodes to create or update.
- upserts
Allowable values: [
hierarchy]The list of the attributes of the element.
- attributes
The type as defined in the data model.
The list of the system attributes of the element.
- system_attributes
The hierarchy reference ID.
The hierarchy nodes.
The hierarchy relationships.
The hierarchy associated objects.
A collection of hierarchy nodes and relationships to delete.
- deletions
A collection of hierarchy nodes.
A collection of relationships.
Response
Information about a patchhierarchy.
patch hierarchy data.
Supplemental information about a resource.
Status Code
The hierarchy has been successfully updated.
Problem updating hierarchy. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem updating hierarchy. Hierarchy/Node does not exist.
Problem updating record. An internal error occurred while attempting to update the hierarchy.
{ "metadata": { "href": "https://data:9443/mdm/v1/hierarchies/177205142370693120?crn=crn&hierarchy_type=generic_hierarchy/177205142370693120", "id": "177205142370693120", "updated_at": "2025-02-21T14:59:58.264Z" }, "patch_hierarchy": { "deletions": { "nodes": [], "relationships": [ { "source": { "id": "177205142370693123", "type": "node", "type_name": "hierarchy_node" }, "target": { "id": "6591521740149764680", "is_blocked_for_update": false, "is_quarantined": false, "record_number": 6591521740149765000, "type": "record", "type_name": "organization" }, "type": "relationship", "type_name": "hierarchy_node_association_relationship" } ] }, "upserts": { "attributes": { "hierarchy_name": { "value": "ABC legal and report hierarchy" } }, "id": "177205142370693120", "system_attributes": { "hierarchy_number": 177205142370693120, "last_updated_date": 1740149993014, "last_updated_user": "admin" }, "nodes": [ { "attributes": { "designation": { "value": "LOCAL PARENT" }, "role": { "value": "CEO, A Co" } }, "id": "177205147592601600", "system_attributes": { "context_id": 177205142370693120, "created_date": 1740149993014, "created_user": "admin", "last_updated_date": 1740149998268, "last_updated_user": "admin", "node_number": 177205147592601600 }, "reference_id": "11", "type": "node", "type_name": "hierarchy_node" }, { "attributes": { "designation": { "value": "LOCAL PARENT" }, "role": { "value": "CEO, B Co" } }, "id": "177205147592601601", "system_attributes": { "context_id": 177205142370693120, "created_date": 1740149993014, "created_user": "admin", "last_updated_date": 1740149998270, "last_updated_user": "admin", "node_number": 177205147592601600 }, "reference_id": "12", "type": "node", "type_name": "hierarchy_node" }, { "attributes": { "designation": { "value": "LOCAL PARENT" }, "role": { "value": "CEO, C Co" } }, "id": "177205147592601602", "system_attributes": { "context_id": 177205142370693120, "created_date": 1740149993014, "created_user": "admin", "last_updated_date": 1740149998271, "last_updated_user": "admin", "node_number": 177205147592601600 }, "reference_id": "13", "type": "node", "type_name": "hierarchy_node" } ], "relationships": [ { "id": "177205147592601603", "source": { "id": "177205142370693122", "type": "node", "type_name": "hierarchy_node" }, "target": { "id": "177205147592601600", "type": "node", "type_name": "hierarchy_node" }, "type": "relationship", "type_name": "hierarchy_node_relationship" }, { "id": "177205147592601604", "source": { "id": "177205142370693123", "type": "node", "type_name": "hierarchy_node" }, "target": { "id": "177205147592601601", "type": "node", "type_name": "hierarchy_node" }, "type": "relationship", "type_name": "hierarchy_node_relationship" }, { "id": "177205147592601605", "source": { "id": "177205147592601600", "type": "node", "type_name": "hierarchy_node" }, "target": { "id": "3718531740149773251", "is_blocked_for_update": false, "is_quarantined": false, "record_number": 3718531740149773300, "type": "record", "type_name": "person" }, "type": "relationship", "type_name": "hierarchy_node_association_relationship" }, { "id": "177205147592601606", "source": { "id": "177205147592601601", "type": "node", "type_name": "hierarchy_node" }, "target": { "id": "6195501740149775423", "is_blocked_for_update": false, "is_quarantined": false, "record_number": 6195501740149775000, "type": "record", "type_name": "person" }, "type": "relationship", "type_name": "hierarchy_node_association_relationship" }, { "id": "177205147592601607", "source": { "id": "177205147592601602", "type": "node", "type_name": "hierarchy_node" }, "target": { "id": "4498531740149778283", "is_blocked_for_update": false, "is_quarantined": false, "record_number": 4498531740149778400, "type": "record", "type_name": "person" }, "type": "relationship", "type_name": "hierarchy_node_association_relationship" } ], "type": "hierarchy", "type_name": "generic_hierarchy" } } }
Retrieve the hierarchy configuration for a given id
Retrieve the data in the configuration node associated with the hierarchy instance
GET /mdm/v1/hierarchies/{id}/configurationRequest
Path Parameters
The id for the hierarchy
Query Parameters
The cloud resource name of the service.
Response
Detailed statistics for hierarchies.
Hierarchy statistics.
- hierarchy_statistics
Detailed statistics for a hierarchy type.
A link to the first page.
- first
The url for the page of results.
A link to the last page.
- last
The url for the page of results.
A link to the previous page.
- previous
The url for the page of results.
A link to the next page.
- next
The url for the page of results.
The number of elements to skip.
The maximum number of elements to return in a page.
The total count of elements.
Status Code
The hierarchies statistics data is returned successfully.
Problem getting hierarchy statistics. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
No hierarchy configuration was found.
Problem getting statistics. An internal error occurred.
{ "cyclic_relationship_validation_enabled": "true", "unique_association_validation_enabled": "false", "node_existence_validation_enabled": "true", "maximum_return_nodes": "50", "batch_size": "1000", "deletion_batch_size": "2000" }
Create or replace configurations for a hierarchy of the given id
Create or replace a configuration node associated with the hierarchy instance
PUT /mdm/v1/hierarchies/{id}/configurationRequest
Path Parameters
The id for the hierarchy
Query Parameters
The cloud resource name of the service.
Valid object defining the configuration information for hierarchy instance.
{
"cyclic_relationship_validation_enabled": "true",
"unique_association_validation_enabled": "false",
"node_existence_validation_enabled": "true",
"maximum_return_nodes": "50",
"batch_size": "1000",
"deletion_batch_size": "2000"
}Cyclic relationship validation enabled
Unique association validation enabled
Node existence validation enabled
Maximum number of nodes to return
Batch size
Deletion batch size
Date node was created
Date node was last updated
User who created the node
User who last updated the node
Response
Status Code
The hierarchies statistics data is returned successfully.
Problem getting hierarchy statistics. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting statistics. An internal error occurred.
No Sample Response
Delete the hierarchy configuration for a given id
Delete the configuration node associated with the hierarchy instance
DELETE /mdm/v1/hierarchies/{id}/configurationRequest
Path Parameters
The id for the hierarchy
Query Parameters
The cloud resource name of the service.
Response
Status Code
The hierarchies statistics data is returned successfully.
Problem getting hierarchy statistics. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting statistics. An internal error occurred.
No Sample Response
Request
Query Parameters
The cloud resource name of the service.
The type of the hierarchy
The number of hierarchies to skip over.
Default:
0The number of hierarchies to be returned. The maximum limit is 200.
Possible values: value ≤ 200
Default:
10Flag to include the hierarchy total count.
Default:
false
Response
Information about a hierarchy.
Information about a hierarchy.
Supplemental information about a resource.
A link to the first page.
- first
The url for the page of results.
A link to the last page.
- last
The url for the page of results.
A link to the previous page.
- previous
The url for the page of results.
A link to the next page.
- next
The url for the page of results.
The number of elements to skip.
The maximum number of elements to return in a page.
The total count of elements.
Status Code
The hierarchy has been retrieved successfully.
Problem fetching hierarchies. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem fetching hierarchies. An internal error occurred while attempting to retrieve hierarchies.
{ "first": { "href": "${host}/mdm/v1/hierarchies/40964176?crn=${crn}" }, "limit": 10, "offset": 0, "hierarchies": [ { "attributes": { "description.value": "ABC generic hierarchy description", "hierarchy_name.value": "ABC legal and report hierarchy", "hierarchy_type": "generic_hierarchy" }, "id": "169442046788183040", "system_attributes": { "created_date": 1732746528141, "created_user": "admin", "hierarchy_id": "7e6f9001-a291-481c-8fcb-c6d7a550501c", "hierarchy_number": 169442046788183040, "hierarchy_source": "MDM", "last_updated_date": 1732746589604, "last_updated_user": "admin" }, "type": "hierarchy", "type_name": "generic_hierarchy" }, { "attributes": { "description.value": "ABC generic hierarchy description", "hierarchy_name.value": "ABC generic hierarchy", "hierarchy_type": "generic_hierarchy" }, "id": "169442294398919680", "system_attributes": { "created_date": 1732746764281, "created_user": "admin", "hierarchy_id": "987", "hierarchy_number": 169442294398919680, "hierarchy_source": "MDM", "last_updated_date": 1732746764281, "last_updated_user": "admin1" }, "type": "hierarchy", "type_name": "generic_hierarchy" } ] }
Request
Valid object defining the hierarchy to be added to the graph.
{
"type": "hierarchy",
"type_name": "generic_hierarchy",
"id": "",
"reference_id": "100",
"attributes": {
"hierarchy_id": "987",
"hierarchy_source": "MDM",
"hierarchy_name": {
"value": "ABC generic hierarchy"
},
"description": {
"value": "ABC generic hierarchy description"
}
},
"nodes": [
{
"type": "node",
"type_name": "hierarchy_node",
"id": "",
"reference_id": "1",
"attributes": {
"role": {
"value": "Global Headquarter"
},
"designation": {
"value": "ULTIMATE PARENT"
}
}
},
{
"type": "node",
"type_name": "hierarchy_node",
"id": "",
"reference_id": "2",
"attributes": {
"role": {
"value": "Asia headquarter"
},
"designation": {
"value": "LOCAL PARENT"
}
}
},
{
"type": "node",
"type_name": "hierarchy_node",
"id": "",
"reference_id": "3",
"attributes": {
"role": {
"value": "Europe headquarter"
},
"designation": {
"value": "LOCAL PARENT"
}
}
}
],
"relationships": [
{
"type": "relationship",
"type_name": "hierarchy_node_relationship",
"source": {
"id": "100",
"type": "hierarchy",
"type_name": "generic_hierarchy"
},
"target": {
"id": "1",
"type": "node",
"type_name": "hierarchy_node"
}
},
{
"type": "relationship",
"type_name": "hierarchy_node_relationship",
"source": {
"id": "1",
"type": "node",
"type_name": "hierarchy_node"
},
"target": {
"id": "2",
"type": "node",
"type_name": "hierarchy_node"
}
},
{
"type": "relationship",
"type_name": "hierarchy_node_relationship",
"source": {
"id": "1",
"type": "node",
"type_name": "hierarchy_node"
},
"target": {
"id": "3",
"type": "node",
"type_name": "hierarchy_node"
}
},
{
"type": "relationship",
"type_name": "hierarchy_node_association_relationship",
"source": {
"id": "1",
"type": "node",
"type_name": "hierarchy_node"
},
"target": {
"id": "org_id1",
"type": "record",
"type_name": "organization"
}
},
{
"type": "relationship",
"type_name": "hierarchy_node_association_relationship",
"source": {
"id": "2",
"type": "node",
"type_name": "hierarchy_node"
},
"target": {
"id": "org_id2",
"type": "record",
"type_name": "organization"
}
},
{
"type": "relationship",
"type_name": "hierarchy_node_association_relationship",
"source": {
"id": "3",
"type": "node",
"type_name": "hierarchy_node"
},
"target": {
"id": "org_id3",
"type": "record",
"type_name": "organization"
}
}
]
}Allowable values: [
hierarchy]The list of the attributes of the element.
- attributes
The type as defined in the data model.
The list of the system attributes of the element.
- system_attributes
The hierarchy reference ID.
The hierarchy nodes.
The hierarchy relationships.
The hierarchy associated objects.
Response
Information about a hierarchy.
Information about a hierarchy.
Supplemental information about a resource.
A link to the first page.
- first
The url for the page of results.
A link to the last page.
- last
The url for the page of results.
A link to the previous page.
- previous
The url for the page of results.
A link to the next page.
- next
The url for the page of results.
The number of elements to skip.
The maximum number of elements to return in a page.
The total count of elements.
Status Code
The hierarchy has been successfully created.
Problem creating hierarchy. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem creating record. An internal error occurred while attempting to create the record.
{ "enabled": false, "hierarchy": { "attributes": { "description": { "value": "ABC generic hierarchy description" }, "hierarchy_name": { "value": "ABC generic hierarchy" } }, "id": "177205142370693120", "system_attributes": { "created_date": 1740149993014, "created_user": "admin", "hierarchy_id": "987", "hierarchy_number": 177205142370693120, "hierarchy_source": "MDM", "last_updated_date": 1740149993014, "last_updated_user": "admin" }, "nodes": [ { "attributes": { "designation": { "value": "ULTIMATE PARENT" }, "role": { "value": "Global Headquarter" } }, "id": "177205142370693121", "system_attributes": { "context_id": 177205142370693120, "created_date": 1740149993014, "created_user": "admin", "last_updated_date": 1740149993014, "last_updated_user": "admin", "node_number": 177205142370693120 }, "reference_id": "1", "type": "node", "type_name": "hierarchy_node" }, { "attributes": { "designation": { "value": "LOCAL PARENT" }, "role": { "value": "Asia headquarter" } }, "id": "177205142370693122", "system_attributes": { "context_id": 177205142370693120, "created_date": 1740149993014, "created_user": "admin", "last_updated_date": 1740149993014, "last_updated_user": "admin", "node_number": 177205142370693120 }, "reference_id": "2", "type": "node", "type_name": "hierarchy_node" }, { "attributes": { "designation": { "value": "LOCAL PARENT" }, "role": { "value": "Europe headquarter" } }, "id": "177205142370693123", "system_attributes": { "context_id": 177205142370693120, "created_date": 1740149993014, "created_user": "admin", "last_updated_date": 1740149993014, "last_updated_user": "admin", "node_number": 177205142370693120 }, "reference_id": "3", "type": "node", "type_name": "hierarchy_node" } ], "reference_id": "100", "relationships": [ { "id": "177205142370693124", "source": { "id": "177205142370693120", "type": "hierarchy", "type_name": "generic_hierarchy" }, "target": { "id": "177205142370693121", "type": "node", "type_name": "hierarchy_node" }, "type": "relationship", "type_name": "hierarchy_node_relationship" }, { "id": "177205142370693125", "source": { "id": "177205142370693121", "type": "node", "type_name": "hierarchy_node" }, "target": { "id": "177205142370693122", "type": "node", "type_name": "hierarchy_node" }, "type": "relationship", "type_name": "hierarchy_node_relationship" }, { "id": "177205142370693126", "source": { "id": "177205142370693121", "type": "node", "type_name": "hierarchy_node" }, "target": { "id": "177205142370693123", "type": "node", "type_name": "hierarchy_node" }, "type": "relationship", "type_name": "hierarchy_node_relationship" }, { "id": "177205142370693127", "source": { "id": "177205142370693121", "type": "node", "type_name": "hierarchy_node" }, "target": { "id": "6607131740149756494", "is_blocked_for_update": false, "is_quarantined": false, "record_number": 6607131740149757000, "type": "record", "type_name": "organization" }, "type": "relationship", "type_name": "hierarchy_node_association_relationship" }, { "id": "177205142370693128", "source": { "id": "177205142370693122", "type": "node", "type_name": "hierarchy_node" }, "target": { "id": "4045211740149760671", "is_blocked_for_update": false, "is_quarantined": false, "record_number": 4045211740149760500, "type": "record", "type_name": "organization" }, "type": "relationship", "type_name": "hierarchy_node_association_relationship" }, { "id": "177205142371741696", "source": { "id": "177205142370693123", "type": "node", "type_name": "hierarchy_node" }, "target": { "id": "6591521740149764680", "is_blocked_for_update": false, "is_quarantined": false, "record_number": 6591521740149765000, "type": "record", "type_name": "organization" }, "type": "relationship", "type_name": "hierarchy_node_association_relationship" } ], "type": "hierarchy", "type_name": "generic_hierarchy" }, "metadata": { "href": "https://data:9443/mdm/v1/hierarchies?crn=crn/177205142370693120", "id": "177205142370693120", "updated_at": "2025-02-21T14:59:53.014Z" } }
Get the broken branches of a hierarchy
This function retrieve the broken branches of a hierarchy
GET /mdm/v1/hierarchies/{id}/broken_branchesRequest
Path Parameters
The id for the hierarchy
Query Parameters
The cloud resource name of the service.
The type of the hierarchy
The levels of broken branches nodes to be included
Default:
1The associated objects.
The number of hierarchy nodes to skip over.
Default:
0The number of hierarchy nodes to be returned. The maximum limit is 200.
Possible values: value ≤ 200
Default:
10
Response
Information about a broken branch hierarchy.
List of broken branches
Supplemental information about a resource.
A link to the first page.
- first
The url for the page of results.
A link to the last page.
- last
The url for the page of results.
A link to the previous page.
- previous
The url for the page of results.
A link to the next page.
- next
The url for the page of results.
The number of elements to skip.
The maximum number of elements to return in a page.
The total count of elements.
Status Code
The broken branches has been retrived successfully.
Problem getting hierarchy broken branches. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting hierarchy broken branches. An internal error occurred while attempting to get hierarchy broken branches.
{ "hierarchy_broken_branches": [ { "nodes": [ { "attributes": { "designation": { "value": "ULTIMATE PARENT" }, "role": { "value": "Global Headquarter" } }, "id": "170049929143693313", "system_attributes": { "context_id": 170049929143693300, "created_date": 1733326249931, "created_user": "admin", "last_updated_date": 1733326249931, "last_updated_user": "admin", "node_number": 170049929143693300 }, "type": "node", "type_name": "hierarchy_node" } ], "relationships": [ { "id": "170049929144741889", "source": { "id": "170049929143693313", "type": "node", "type_name": "hierarchy_node" }, "target": { "id": "170049929143693314", "type": "node", "type_name": "hierarchy_node" }, "type": "relationship", "type_name": "hierarchy_node_relationship" } ] } ], "total_count": "1", "offset": "0", "limit": "10" }
Get the centric view of a given hierarchy node
This function retrieve the centric view of the specific hierarchy node
GET /mdm/v1/hierarchies/{id}/centric_viewRequest
Path Parameters
The id for the hierarchy
Query Parameters
The cloud resource name of the service.
The type of the hierarchy
type of the given node
type name of the given node
centric id of the given node
The parent level of the given node
Default:
0The children level of the given node
Default:
0The associated objects.
The number of hierarchy nodes to skip over.
Default:
0The number of hierarchy nodes to be returned. The maximum limit is 200.
Possible values: value ≤ 200
Default:
20Flag to include the total direct parents/children nodes count.
Default:
false
Response
Information about a hierarchy.
Information about a hierarchy.
Supplemental information about a resource.
A link to the first page.
- first
The url for the page of results.
A link to the last page.
- last
The url for the page of results.
A link to the previous page.
- previous
The url for the page of results.
A link to the next page.
- next
The url for the page of results.
The number of elements to skip.
The maximum number of elements to return in a page.
The total count of elements.
Status Code
The hierarchy node centric view has been retrived successfully.
Problem getting hierarchy node centric view. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting hierarchy node centric view. An internal error occurred while attempting to get hierarchy node centric view.
{ "hierarchy": { "id": "170049929143693312", "nodes": [ { "attributes": { "designation": { "value": "ULTIMATE PARENT" }, "role": { "value": "Global Headquarter" } }, "id": "170049929143693313", "system_attributes": { "context_id": 170049929143693300, "created_date": 1733326249931, "created_user": "admin", "last_updated_date": 1733326249931, "last_updated_user": "admin", "node_number": 170049929143693300 }, "type": "node", "type_name": "hierarchy_node" } ], "relationships": [ { "id": "170049929144741889", "source": { "id": "170049929143693313", "type": "node", "type_name": "hierarchy_node" }, "target": { "id": "170049929143693314", "type": "node", "type_name": "hierarchy_node" }, "type": "relationship", "type_name": "hierarchy_node_relationship" } ], "type": "hierarchy", "type_name": "generic_hierarchy" }, "metadata": { "href": "https://${HOST}/mdm/v1/hierarchies/${hierarchy_type}/instances/11/centric_view", "id": "11" } }
Delete a Hierarchy Branch
Deletes the hierarchy branch within the given hierarchy, including the specified branch node id and all its descendants.
DELETE /mdm/v1/hierarchies/{id}/branches/{branch_node_id}Request
Path Parameters
The id for the hierarchy
The branch node id for the hierarchy
Query Parameters
The cloud resource name of the service.
The type of the hierarchy
Response
Status Code
The deletes have been successfully processed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Hierarchy branch does not exist.
Problem performing hierarchy branch delete. An internal error occurred while attempting to update the graph.
No Sample Response
Hierarchy Member Search
This function retrieve the hierarchy member search results
GET /mdm/v1/hierarchies/{id}/member_searchRequest
Path Parameters
The id for the hierarchy
Query Parameters
The cloud resource name of the service.
The type of the hierarchy
The search query for hierarchy member search
The number of hierarchy nodes to skip over.
Default:
0The number of hierarchy nodes to be returned. The maximum limit is 200.
Possible values: value ≤ 200
Default:
10Associated Object from the data model to include in the results.
Possible values: contains only unique items
Examples:[ "legal_name.given_name" ]Associated Object from the data model to exclude from the results.
Possible values: contains only unique items
Examples:[ "legal_name.given_name" ]
Response
Information about a hierarchy.
Information about a hierarchy.
Supplemental information about a resource.
A link to the first page.
- first
The url for the page of results.
A link to the last page.
- last
The url for the page of results.
A link to the previous page.
- previous
The url for the page of results.
A link to the next page.
- next
The url for the page of results.
The number of elements to skip.
The maximum number of elements to return in a page.
The total count of elements.
Status Code
This function retrieve the hierarchy member search results
Problem performing hierarchy member search. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem performing hierarchy member search. An internal error occurred while performing hierarchy member search.
{ "members": [ { "hierarchy_node": { "attributes": { "designation": { "value": "ULTIMATE PARENT" }, "role": { "value": "Global Headquarter" } }, "id": "170049929143693313", "system_attributes": { "context_id": 170049929143693312, "created_date": 1733326249931, "created_user": "admin", "last_updated_date": 1733326249931, "last_updated_user": "admin", "node_number": 170049929143693313 }, "type": "node", "type_name": "hierarchy_node" }, "associated_object": { "record_type": "person", "id": "1000", "type": "record", "attributes": { "vertex_id": "MDM-person-5521608536332042", "record_number": 1000, "record_source": "MDM", "record_type": "person" }, "system_attributes": { "created_date": "1731525595697", "last_updated_date": "1731525595697" } }, } "total_count": "1", "offset": "0", "limit": "10" }
List the jobs
View a list of jobs that have been run. Filter on job type or job status to get a more precise list of jobs.
GET /mdm/v1/data_jobs
Request
Query Parameters
The cloud resource name of the service.
The number of jobs to skip before returning a page of results.
Default:
0The maximum number of jobs to return in each page of results. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10Filter by job status.
Allowable values: [
not_started,prep,queued,running,succeeded,failed,canceled,unknown]Filter by job type.
Allowable values: [
bulk_load,delete,export,migration_export,reindex,sync_entities]
Response
Paged information about a collection of jobs.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
The total number of elements.
A link to the first page of results.
- first
The url for the page of results.
The paged collection of jobs.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The list of jobs was retrieved successfully.
Problem getting list of jobs. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting list of jobs. An internal error occurred while attempting to retrieve the list of jobs.
{ "first": { "href": "${host}/mdm/v1/data_jobs?crn=${CRN}&offset=0&limit=10" }, "last": { "href": "${host}/mdm/v1/data_jobs?crn=${CRN}&offset=0&limit=10" }, "limit": 10, "offset": 0, "jobs": [ { "end_time": "1620155648000", "job_id": "4839655889405511", "job_type": "bulk_load", "process_ids": [ "e7df6747-6668-4b5b-a642-70b05eadf20f", "658fde68-384c-427e-90a0-bdfd8aa02b6d" ], "start_time": "1620155442000", "status": "succeeded", "load_stage": "edges" } ], "total_count": 1 }
Response
Information about a job.
The id for the job.
The type of job.
Possible values: [
delete,export,migration_export,bulk_load,reindex,sync_entities,backend_sync,cleanup_deleted_elements]The current status of the job.
Possible values: [
not_started,prep,queued,running,succeeded,failed,canceled,unknown]The timestamp of when the job started.
The timestamp of when the job completed.
The list of identifiers for the job runs or processes.
Status Code
The job status was retrieved successfully.
Problem getting job information. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting job information. Job not found.
Problem getting job information. An internal error occurred while attempting to retrieve the job information.
{ "end_time": "1620155648000", "job_id": "4839655889405511", "job_type": "bulk_load", "process_ids": [ "e7df6747-6668-4b5b-a642-70b05eadf20f", "658fde68-384c-427e-90a0-bdfd8aa02b6d" ], "start_time": "1620155442000", "status": "succeeded", "load_stage": "edges" }
Stop a given job
Attempt to stop a running job. This operation does not rollback changes made by the job process prior to stopping the job. Full deletion of job resources may take up to a few minutes.
POST /mdm/v1/data_jobs/{job_id}/stopResponse
Information about a job.
The id for the job.
The type of job.
Possible values: [
delete,export,migration_export,bulk_load,reindex,sync_entities,backend_sync,cleanup_deleted_elements]The current status of the job.
Possible values: [
not_started,prep,queued,running,succeeded,failed,canceled,unknown]The timestamp of when the job started.
The timestamp of when the job completed.
The list of identifiers for the job runs or processes.
Status Code
The job was stopped successfully.
Problem stopping job process. The process with job id <job_id> is not running.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem stopping job process. A process with job id <job_id> could not be found.
Problem stopping job process. Jobs of this type are not supported.
Problem stopping job process. An internal error occurred while attempting to perform the operation.
{ "end_time": "1620660046000", "job_id": "8785798185259674", "job_type": "bulk_load", "process_ids": [ "7155aff7-7d42-487b-85a7-8474b5efff2f", "8647d779-b13e-4f77-bda7-3ab2ca85c881" ], "start_time": "1620660025000", "status": "canceled", "load_stage": "vertices" }
Clean up job data
Delete any uploaded artifacts from the system after the job completes.
POST /mdm/v1/data_jobs/{job_id}/clean_upResponse
Status Code
The job clean up was successful.
Problem cleaing up job. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem cleaning up job. Job not found.
Problem cleaning up job. Jobs of this type are not supported.
Problem cleaning up job. The job data could not be found.
Problem cleaning up job. An internal error occurred while cleaning up the job.
Problem cleaning up job. Operation cannot be performed while job is still running.
No Sample Response
Get all data quality issues for a given issue type
This function retrieves all the quality issues that are persisted for the given issue_type in a paginated manner
POST /mdm/v1/quality_issues
Request
Query Parameters
The cloud resource name of the service.
issue_type to be searched for
The number of quality issues to skip over.
Default:
0The number of quality issues to be returned. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10Flag to include the total issue count on pages other than the first.
Default:
trueFlag to include the total issue count without tasks.
Default:
false
Valid input defining the search criteria
{
"type": "record",
"type_name": "person"
}The type of the quality issue to be searched for.
The defined name of the quality issue type as defined in the workflow configuration to be searched for.
Response
Paged information about a collection of quality issues.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
A link to the first page of results.
- first
The url for the page of results.
The total number of elements.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
The paged collection of quality issues.
Total count quality issues without tasks created.
Status Code
The quality issues have been successfully retrieved.
Problem getting quality issues. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting quality issues: issue type does not exist.
Problem getting quality issues. An internal error occurred while attempting to retrieve the quality issues.
{ "first": { "href": "https://matching:9443/mdm/v1/data_quality/issues?crn=:::::::msk::&offset=0&limit=1" }, "last": { "href": "https://matching:9443/mdm/v1/data_quality/issues?crn=:::::::msk::&offset=4&limit=1" }, "next": { "href": "https://matching:9443/mdm/v1/data_quality/issues?crn=:::::::msk::&offset=1&limit=1" }, "quality_issues": [ { "issue_type": "potential_overlay", "type": "record", "type_name": "person", "id": "123", "number": "123", "created_at": "Jan15, 2023" } ], "total_count": 25, "offset": 0, "limit": 8 }
Request
Path Parameters
The ID of the record.
Query Parameters
The cloud resource name of the service.
Record attributes from the data model to include in the results.
Possible values: contains only unique items
Examples:[ "legal_name.given_name" ]Record attributes from the data model to exclude from the results.
Possible values: contains only unique items
Examples:[ "legal_name.given_name" ]Point in time to retrieve the record history. Accepts ISO‑8601 date/time in UTC or local formats (e.g., '2025-09-10', '2025-09-10T13:59:59', '2025-09-10T13:59:59Z').
Example:
2025-09-10T13:59:59.000Z
Response
Information about a record.
Information about a record.
Supplemental information about a resource.
Status Code
The record has been successfully retrieved.
Problem getting record. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting record: Record does not exist.
Problem getting record. An internal error occurred while attempting to retrieve the record.
{ "metadata": { "href": "${host}/mdm/v1/records/40964176?crn=${crn}", "id": "40964176", "updated_at": "2020-10-23T19:49:51.442Z" }, "record": { "attributes": { "legal_name": { "attribute_last_updated": "1548936483189", "last_name": "Smith", "given_name": "Jane" }, "record_id": "12345", "record_last_updated": "1603482591442", "record_source": "MDM" }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "40964176", "type": "record", "record_number": 40964176, "type_name": "person" } }
Replace attributes for a record
Replace the existing record with the new set of attributes. Any existing editable record attributes not specified in the request will be removed from the record.
PUT /mdm/v1/records/{id}Request
Path Parameters
The ID of the record.
Query Parameters
The cloud resource name of the service.
Valid object defining the record information to replace the existing record.
{
"attributes": {
"legal_name": {
"last_name": "Smith",
"given_name": "Jane"
},
"mailing_address": {
"province_state": "CA",
"city": "COLOMA",
"zip_postal_code": "95613",
"address_line1": "5955 EAST ST ANNE STREET",
"address_line2": "Unit-89"
},
"record_id": "12345",
"record_source": "MDM"
},
"type": "record",
"type_name": "person"
}Allowable values: [
record]The list of the attributes of the element.
- attributes
The type as defined in the data model.
The list of the system attributes of the element.
- system_attributes
Is the Record Blocked for Update.
Is the Record quarantined.
Response
Information about a record.
Information about a record.
Supplemental information about a resource.
Status Code
The record has been successfully updated.
Update request accepted but not processed. Quarantined record.
Problem updating record. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem updating record. The record could not be found.
Update request rejected for quarantined record due to max allowed limit.
Problem updating record. An internal error occurred while attempting to update the record.
{ "metadata": { "href": "${host}/mdm/v1/records/40964176?crn=${crn}", "id": "40964176", "updated_at": "2020-10-23T19:49:51.442Z" }, "record": { "attributes": { "legal_name": { "attribute_last_updated": "1548936483189", "last_name": "Smith", "given_name": "Jane" }, "record_id": "12345", "record_last_updated": "1603482591442", "record_source": "MDM" }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "40964176", "type": "record", "record_number": 40964176, "type_name": "person" } }
Delete a record
Delete an existing record from the graph. Deleting a record automatically triggers a removal of the record from any formed entities.
DELETE /mdm/v1/records/{id}Response
Status Code
The record was successfully deleted.
Problem deleting record. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem deleting record. Record does not exist.
Problem deleting record. An internal error occurred while attempting to delete the record.
No Sample Response
Patches attributes for a record
Patches the existing record with the new set of attributes. Any existing editable record attributes not specified in the request will be retained in the record. Any attributes that are explicitly set as null will be removed.
PATCH /mdm/v1/records/{id}Request
Path Parameters
The ID of the record.
Query Parameters
The cloud resource name of the service.
Valid object defining the record information to patch the existing record.
{
"attributes": {
"legal_name": {
"given_name": "Jane"
},
"mailing_address": {
"province_state": "CA",
"city": "COLOMA",
"zip_postal_code": "95613",
"address_line1": "5955 EAST ST ANNE STREET",
"address_line2": "Unit-89"
},
"birth_date": {
"value": null,
},
"record_id": "12345",
"record_source": "MDM"
},
"type": "record",
"type_name": "person"
}Allowable values: [
record]The list of the attributes of the element.
- attributes
The type as defined in the data model.
The list of the system attributes of the element.
- system_attributes
Is the Record Blocked for Update.
Is the Record quarantined.
Response
Information about a record.
Information about a record.
Supplemental information about a resource.
Status Code
The record has been successfully patched.
Update request accepted but not processed. Quarantined record.
Problem patching record. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem patching record. The record could not be found.
Update request rejected for quarantined record due to max allowed limit.
Problem patching record. An internal error occurred while attempting to patch the record.
{ "metadata": { "href": "${host}/mdm/v1/records/40964176?crn=${crn}", "id": "40964176", "updated_at": "2020-10-23T19:49:51.442Z" }, "record": { "attributes": { "legal_name": { "attribute_last_updated": "1548936483189", "last_name": "Smith", "given_name": "Jane" }, "record_id": "12345", "record_last_updated": "1603482591442", "record_source": "MDM" }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "40964176", "type": "record", "record_number": 40964176, "type_name": "person" } }
List the records
View a list of records that have been added to the graph for given record type. If record type is not provided, then list all records
GET /mdm/v1/records
Request
Query Parameters
The cloud resource name of the service.
The number of records to skip over.
Default:
0The number of records to be returned. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10Record type
Default:
Response
Paged information about a collection of records.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
A link to the first page of results.
- first
The url for the page of results.
The paged collection of workflows.
The total number of elements.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The records have been successfully retrieved.
Problem getting records. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting records. An internal error occurred while attempting to retrieve the records.
{ "first": { "href": "${host}/mdm/v1/records?crn=${crn}&offset=0&limit=10" }, "last": { "href": "${host}/mdm/v1/records?crn=${crn}&offset=0&limit=10" }, "limit": 10, "offset": 0, "records": [ { "attributes": { "record_id": "1000007", "record_last_updated": "1603209081559", "record_source": "MDM", "regulation": { "regulation_value": "Safety Regulations", "attribute_last_updated": "1549006675422", "description": "The Safety Regulations provided by Company ABC", "regulation_type": "1", "url": "https://www.ibm.com" } }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "151592", "type": "record", "record_number": 151592, "type_name": "process_purpose" } ] }
Create a new record
Add a new record to the graph. An incremental matching operation is automatically triggered after the record is created, to enable the record to join or form an entity.
POST /mdm/v1/records
Request
Valid object defining the record to be added to the graph.
{
"attributes": {
"legal_name": {
"last_name": "Smith",
"given_name": "Jane"
},
"record_id": "12345",
"record_source": "MDM"
},
"id": "40964176",
"type": "record",
"˙record_number": 40964176,
"type_name": "person"
}Allowable values: [
record]The list of the attributes of the element.
- attributes
The type as defined in the data model.
The list of the system attributes of the element.
- system_attributes
Is the Record Blocked for Update.
Is the Record quarantined.
Response
Information about a record.
Information about a record.
Supplemental information about a resource.
Status Code
The record has been successfully created.
Problem creating record. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem creating record. An internal error occurred while attempting to create the record.
{ "metadata": { "href": "${host}/mdm/v1/records/40964176?crn=${crn}", "id": "40964176", "updated_at": "2020-10-23T19:49:51.442Z" }, "record": { "attributes": { "legal_name": { "attribute_last_updated": "1548936483189", "last_name": "Smith", "given_name": "Jane" }, "record_id": "12345", "record_last_updated": "1603482591442", "record_source": "MDM" }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "40964176", "type": "record", "record_number": 40964176, "type_name": "person" } }
Get a record given record_type, record_source and record_id
View information about the specified record on the graph.
GET /mdm/v1/records/bysourceid
Request
Query Parameters
The cloud resource name of the service.
The type of the record.
source of record
Example:
MDMId of record
Example:
15687873482748Collection Id of record
Default:
Response
Information about a record.
Information about a record.
Supplemental information about a resource.
Status Code
The record has been successfully retrieved.
Problem getting record. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting record: Record does not exist.
Problem getting record. An internal error occurred while attempting to retrieve the record.
{ "metadata": { "href": "${host}/mdm/v1/records/40964176?crn=${crn}", "id": "40964176", "updated_at": "2020-10-23T19:49:51.442Z" }, "record": { "attributes": { "legal_name": { "attribute_last_updated": "1548936483189", "last_name": "Smith", "given_name": "Jane" }, "record_id": "12345", "record_last_updated": "1603482591442", "record_source": "MDM" }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "40964176", "type": "record", "record_number": 40964176, "type_name": "person" } }
Get a record given record_type, record_source and source_record_id
View information about record on the graph based on source system id.
GET /mdm/v1/records/bysource_system_id
Request
Query Parameters
The cloud resource name of the service.
Id of source
Example:
15687873482748The type of the record.
Example:
personsource of record
Example:
MDM
Response
Information about a record.
Information about a record.
Supplemental information about a resource.
Status Code
The record has been successfully retrieved
Problem getting record, Input validation failed.
Problem processing request, The user is not authenticated.
Problem processing request, The user is not authorized to perform the request.
Problem getting record, Record does not exist.
Problem getting record, An internal error occurred while attempting to retrieve the record.
{ "metadata": { "href": "${host}/mdm/v1/records/40964176?crn=${crn}", "id": "40964176", "updated_at": "2020-10-23T19:49:51.442Z" }, "record": { "attributes": { "legal_name": { "attribute_last_updated": "1548936483189", "last_name": "Smith", "given_name": "Jane" }, "record_id": "12345", "record_last_updated": "1603482591442", "record_source": "MDM" }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "40964176", "type": "record", "record_number": 40964176, "type_name": "person" } }
List the record history
Retrieves the history of changes made to a record within the specified time range. The response provides a chronological view of additions, updates or deletions that occurred during the requested period.
GET /mdm/v1/records/{id}/historyRequest
Path Parameters
The unique record number used to fetch its history
Query Parameters
The cloud resource name of the service.
The type of record.
The start of the time range (inclusive) for retrieving record history changes. Accepts ISO‑8601 date/time in UTC or local formats (e.g., '2025-09-10', '2025-09-10T13:59:59', '2025-09-10T13:59:59Z'). If provided, history changes from the given time will be fetched. If not provided, history changes from the earliest available will be fetched
Example:
2025-09-10T13:59:59.000ZThe end of the time range (inclusive) for retrieving record history changes. Accepts ISO‑8601 date/time in UTC or local formats (e.g., '2025-09-15', '2025-09-15T10:11:05', '2025-09-15T10:11:05Z'). If provided, history changes till the given time will be fetched. If not provided, history changes till the latest available will be fetched
Example:
2025-09-15T10:11:05.000ZThe number of record history changes to skip over.
Default:
0The number of record history changes to be returned. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10
Response
Paged information about a historical changes.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
A link to the first page of results.
- first
The url for the page of results.
The paged collection of historical changes.
The total number of elements.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The records history have been successfully retrieved.
Problem getting record history. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting record history. An internal error occurred while attempting to retrieve the record history.
{ "first": { "href": "${host}/mdm/v1/records/47653/history?crn=${crn}&offset=0&limit=10" }, "last": { "href": "${host}/mdm/v1/records/47653/history?crn=${crn}&offset=0&limit=10" }, "limit": 10, "offset": 0, "changes": [ { "id": "151592", "type_name": "record", "service_context": { "correlation_id": "1547836463189", "action_type": "update", "action_name": "match360.record.update" }, "last_updated_date": "1757723880738", "last_updated_user": "sam.peter", "history_data_type": "record" } ] }
List the related records for a record
Retrieve a set of records which are directly connected to the specified record by a relationship. All records related to the specified record will be returned regardless of relationship direction.
GET /mdm/v1/records/{id}/related_recordsRequest
Path Parameters
The ID of the record.
Query Parameters
The cloud resource name of the service.
The type of record to filter in results
Example:
personThe type of relationship between related records and the specified record.
Example:
process_purposeThe maximum number of records to return in each page of results. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10The number of records to skip before returning a page of results.
Default:
0Flag to include the total record count on pages other than the first.
Default:
true
Response
Paged information about a set of other records related to an entity or a record.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
The total number of elements.
A link to the first page of results.
- first
The url for the page of results.
The paged list of related records.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The related records for the record have been successfully retrieved.
Problem getting related records. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem retrieving neighbors. Record does not exist.
Problem retrieving related records. An internal error occurred while attempting to retrieve the related records.
{ "first": { "href": "${host}/mdm/v1/records/249992/related_records?crn=${crn}&offset=0&limit=10" }, "last": { "href": "${host}/mdm/v1/records/249992/related_records?crn=${crn}&offset=0&limit=10" }, "limit": 10, "offset": 0, "total_count": 1, "related_records": [ { "attributes": { "record_id": "1000007", "record_last_updated": "1603209081559", "record_source": "MDM", "regulation": { "regulation_value": "Safety Regulations", "attribute_last_updated": "1549006675422", "description": "The Safety Regulations provided by Company ABC", "regulation_type": "1", "url": "https://www.ibm.com" } }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "151592", "type": "record", "record_number": 151592, "type_name": "process_purpose" } ] }
List the entities for a record
View a list of entities which the record contributes to.
GET /mdm/v1/records/{id}/entitiesRequest
Path Parameters
The id of the record.
Query Parameters
The cloud resource name of the service.
The maximum number of records to return in each page of results. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10The number of records to skip before returning a page of results.
Default:
0Record attributes from the data model to include in the results.
Possible values: contains only unique items
Examples:[ "legal_name.given_name" ]Record attributes from the data model to exclude from the results.
Possible values: contains only unique items
Examples:[ "legal_name.given_name" ]Point in time to retrieve the record history. Accepts ISO‑8601 date/time in UTC or local formats (e.g., '2025-09-10', '2025-09-10T13:59:59', '2025-09-10T13:59:59Z').
Example:
2025-09-10T13:59:59.000Z
Response
Paged information about a collection of entities.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
A link to the first page of results.
- first
The url for the page of results.
The paged collection of entities.
The total number of elements.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The list of entities have been successfully retrieved.
Problem getting entities for record. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting entities for record. Record with id <record_id> does not exist.
Problem getting entities for record. An internal error occurred while attempting to retrieve entities for the specified record.
{ "first": { "href": "${host}/mdm/v1/records/53496/entities?crn=${crn}&offset=0&limit=10" }, "last": { "href": "${host}/mdm/v1/records/53496/entities?crn=${crn}&offset=0&limit=10" }, "limit": 10, "offset": 0, "entities": [ { "attributes": { "birth_date": { "attribute_last_updated": "1548936483189", "value": "1934-05-11T00:00:00.000Z" }, "entity_last_updated": "1603572360787", "gender": { "attribute_last_updated": "1548936483189", "value": "F" }, "legal_name": { "attribute_last_updated": "1548936483016", "last_name": "LEES", "given_name": "KAROLYN" }, "primary_residence": { "attribute_last_updated": "1548936483189", "address_province_state_value": "KY", "address_city": "ELLIOTTVILLE", "address_zip_postal_code": "40317", "address_province_state_type": "21", "address_line_1": "106 EAST SYCAMORE ST.", "address_line_2": "Unit-701" }, "record_id": "216754896528315937", "record_source": "MDM" }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "person_entity-53496", "type": "entity", "record_count": 1, "type_name": "person_entity" } ] }
List the Potenital Overlay records for a record
Retrieve a set of potental overlay records which are accumulated to the specified record.
GET /mdm/v1/records/{id}/accumulated_updatesRequest
Path Parameters
The ID of the record.
Query Parameters
The cloud resource name of the service.
The maximum number of PO records to return in each page of results. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10The number of records to skip before returning a page of results.
Default:
0Order of sorting of result.
Default:
trueHide unmodified Attributes.
Default:
falseShow overlays only with updates.
Response
Paged information about a set of acculumulated record updates on a record.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
A link to the first page of results.
- first
The url for the page of results.
The paged list of po records.
The count of accumulated po records.
The total number of elements.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The potential overlay records for the record have been successfully retrieved.
Problem getting PO overlay records. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem retrieving PO records. Record does not exist.
Problem retrieving PO records. An internal error occurred while attempting to retrieve the PO records.
{ "first": { "href": "${host}/mdm/v1/records/249992/accumulated_updates?crn=${crn}&offset=0&limit=10" }, "last": { "href": "${host}/mdm/v1/records/249992/accumulated_updates?crn=${crn}&offset=0&limit=10" }, "limit": 10, "offset": 0, "accumulated_update_count": 1, "accumulated_update_reqs": [ { "update_seq": 1, "update_value": { "attributes": { "record_id": "1000007", "record_last_updated": "1603209081559", "record_source": "MDM", "regulation": { "regulation_value": "Safety Regulations", "attribute_last_updated": "1549006675422", "description": "The Safety Regulations provided by Company ABC", "regulation_type": "1", "url": "https://www.ibm.com" } }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "151592", "type": "record", "record_number": 151592, "type_name": "process_purpose" } } ] }
List the relationships for a record
View a list of relationships that exist between the given record and other records in the graph.
GET /mdm/v1/records/{id}/relationshipsRequest
Path Parameters
The ID of the record.
Query Parameters
The cloud resource name of the service.
The relationship types to return.
Examples:[ "preference_association" ]The number of relationships to skip over.
Default:
0The number of relationships to be returned. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10Attributes from the data model to include in the results for the source vertex.
Possible values: contains only unique items
Examples:[ "all" ]Attributes from the data model to include in the results for the target vertex.
Possible values: contains only unique items
Examples:[ "all" ]Point in time to retrieve the relationship history. Accepts ISO‑8601 date/time in UTC or local formats (e.g., '2025-09-10', '2025-09-10T13:59:59', '2025-09-10T13:59:59Z').
Example:
2025-09-10T13:59:59.000Z
Response
Paged information about a collection of relationships.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
The total number of elements.
A link to the first page of results.
- first
The url for the page of results.
The collection of relationships.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The relationships have been successfully retrieved.
Problem retrieving relationships for record. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem retrieving relationships for record. Record not found.
Problem retrieving relationships for record. An internal error occurred.
{ "first": { "href": "${host}/mdm/v1/records/123/relationships?crn=${crn}&offset=0&limit=10" }, "last": { "href": "${host}/mdm/v1/records/123/relationships?crn=${crn}&offset=0&limit=10" }, "limit": 10, "offset": 0, "relationships": [ { "attributes": { "relationship_id": "997554896611881692", "relationship_last_updated": "1548937318815", "relationship_source": "MDM", "from_record_id": "358354896586841797", "from_record_source": "MDM", "from_record_type": "preference", "to_record_id": "998254896587316451", "to_record_source": "MDM", "to_record_type": "organization" }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "215tzl-5cw8-q7f9-oi7u8", "source": { "id": "123", "type": "record", "type_name": "person" }, "target": { "id": "40964344", "type": "record", "type_name": "person" }, "type": "relationship", "type_name": "preference_association" } ] }
Get a relationship for a record
Retrieve a single relationship from the set of relationships for the record.
GET /mdm/v1/records/{id}/relationships/{relationship_id}Request
Path Parameters
The ID of the record.
The ID of the linked relationship to return.
Query Parameters
The cloud resource name of the service.
Attributes from the data model to include in the results for the source vertex.
Possible values: contains only unique items
Examples:[ "all" ]Attributes from the data model to include in the results for the target vertex.
Possible values: contains only unique items
Examples:[ "all" ]
Response
Information about a relationship.
Information about a relationship.
Supplemental information about a resource.
Status Code
The relationship has been successfully retrieved.
Problem getting relationship for record. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting relationship for record. Relationship does not exist.
Problem getting relationship for record. An internal error occurred while attempting to retrieve the relationship.
{ "metadata": { "href": "${host}/mdm/v1/records/41160752/relationships/215tzl-5cw8-q7f9-oi7u8?crn={crn}", "id": "215tzl-5cw8-q7f9-oi7u8", "updated_at": "2019-01-31T12:21:58.815Z" }, "relationship": { "attributes": { "relationship_id": "997554896611881692", "relationship_last_updated": "1548937318815", "relationship_source": "MDM", "from_record_id": "358354896586841797", "from_record_source": "MDM", "from_record_type": "preference", "to_record_id": "998254896587316451", "to_record_source": "MDM", "to_record_type": "organization" }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "215tzl-5cw8-q7f9-oi7u8", "type": "relationship", "type_name": "preference_association" } }
Request
Valid object defining the relationship to be added to the graph.
{
"attributes": {
"relationship_id": "123",
"relationship_source": "MDM"
},
"id": "7x80m4-oe09s-i711-2u49q8",
"source": {
"id": "40964320",
"type": "record",
"type_name": "person"
},
"target": {
"id": "171520064",
"type": "record",
"type_name": "person"
},
"type": "relationship",
"type_name": "party_relationship"
}The list of the attributes of the element.
- attributes
The type as defined in the data model.
Allowable values: [
relationship]Default:
relationshipThe list of the system attributes of the element.
- system_attributes
A node with attributes.
A node with attributes.
Response
Information about a relationship.
Information about a relationship.
Supplemental information about a resource.
Status Code
The relationship has been successfully created.
Problem creating relationship. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem creating relationship. An internal error occurred while attempting to create the relationship.
{ "metadata": { "href": "${host}/mdm/v1/relationships/7x80m4-oe09s-i711-2u49q8?crn=${crn}", "id": "7x80m4-oe09s-i711-2u49q8", "updated_at": "2021-08-19T18:33:55.679Z" }, "relationship": { "attributes": { "relationship_id": "123", "relationship_last_updated": "1629398035679", "relationship_source": "MDM" }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "7x80m4-oe09s-i711-2u49q8", "source": { "id": "40964320", "type": "record", "type_name": "person" }, "target": { "id": "171520064", "type": "record", "type_name": "person" }, "type": "relationship", "type_name": "party_relationship" } }
Get a relationship
View information about the specified relationship on the graph.
GET /mdm/v1/relationships/{id}Request
Path Parameters
The ID of the relationship.
Query Parameters
The cloud resource name of the service.
Attributes from the data model to include in the results for the source vertex.
Possible values: contains only unique items
Examples:[ "all" ]Attributes from the data model to include in the results for the target vertex.
Possible values: contains only unique items
Examples:[ "all" ]Relationship type from the data model to include in the results
Examples:[ "all" ]
Response
Information about a relationship.
Information about a relationship.
Supplemental information about a resource.
Status Code
The relationship has been successfully retrieved.
Problem getting relationship. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting relationship. The relationship could not be found.
Problem getting relationship. An internal error occurred while attempting to retrieve the relationship.
{ "metadata": { "href": "${host}/mdm/v1/relationships/7x80m4-oe09s-i711-2u49q8?crn=${crn}", "id": "7x80m4-oe09s-i711-2u49q8", "updated_at": "2021-08-19T18:33:55.679Z" }, "relationship": { "attributes": { "relationship_id": "123", "relationship_last_updated": "1629398035679", "relationship_source": "MDM" }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "7x80m4-oe09s-i711-2u49q8", "source": { "id": "40964320", "type": "record", "type_name": "person" }, "target": { "id": "171520064", "type": "record", "type_name": "person" }, "type": "relationship", "type_name": "party_relationship" } }
Replace attributes for a relationship
Replace the existing relationship attributes on the graph with the new set of attributes.
PUT /mdm/v1/relationships/{id}Request
Path Parameters
The ID of the relationship.
Query Parameters
The cloud resource name of the service.
Valid object defining the relationship information to replace the existing relationship.
{
"attributes": {
"relationship_id": "123",
"relationship_source": "MDM"
},
"id": "7x80m4-oe09s-i711-2u49q8",
"source": {
"id": "40964320",
"type": "record",
"type_name": "person"
},
"target": {
"id": "171520064",
"type": "record",
"type_name": "person"
},
"type": "relationship",
"type_name": "party_relationship"
}The list of the attributes of the element.
- attributes
The type as defined in the data model.
Allowable values: [
relationship]Default:
relationshipThe list of the system attributes of the element.
- system_attributes
A node with attributes.
A node with attributes.
Response
Information about a relationship.
Information about a relationship.
Supplemental information about a resource.
Status Code
The relationship has been successfully updated.
Problem updating relationship. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem updating relationship. The relationship could not be found.
Problem updating relationship. The resulting composite key conflicts with an existing relationship.
Problem updating relationship. An internal error occurred while attempting to update the relationship.
{ "metadata": { "href": "${host}/mdm/v1/relationships/7x80m4-oe09s-i711-2u49q8?crn=${crn}", "id": "7x80m4-oe09s-i711-2u49q8", "updated_at": "2021-08-19T18:33:55.679Z" }, "relationship": { "attributes": { "relationship_id": "123", "relationship_last_updated": "1629398035679", "relationship_source": "MDM" }, "system_attributes": { "created_date": "1547836463189", "last_updated_user": "user", "created_user": "user", "last_updated_date": "1548936493189" }, "id": "7x80m4-oe09s-i711-2u49q8", "source": { "id": "40964320", "type": "record", "type_name": "person" }, "target": { "id": "171520064", "type": "record", "type_name": "person" }, "type": "relationship", "type_name": "party_relationship" } }
Delete a relationship
Delete an existing relationship from the graph.
DELETE /mdm/v1/relationships/{id}Request
Path Parameters
The ID of the relationship.
Query Parameters
The cloud resource name of the service.
Response
Status Code
The relationship was successfully deleted.
Problem deleting relationship. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem deleting relationship. Relationship does not exist.
Problem deleting relationship. An internal error occurred while attempting to delete the relationship.
No Sample Response
Update the graph schema
Update the existing graph schema to support the latest draft version of the data model. A draft version of the data model is required to exist in the Model APIs when running a schema update operation.
POST /mdm/v1/schema_update
Response
Status Code
The schema is up to date with the latest data model.
Problem updating schema. Input validation failed.
Problem updating schema. The user is not authenticated.
Problem updating schema. The user is not authorized to perform the request.
Problem updating schema.
Problem updating schema. An internal error occurred while attempting to perform the operation.
No Sample Response
Search the data on the graph
Run a full text search, or search on attribute fields. Searching on fields is achievable by using dot-notation for the property keys (e.g. legal_name.given_name). Omit the property key for a full text search. Pagination is supported.
POST /mdm/v1/search
Request
Query Parameters
The cloud resource name of the service.
The type of results to return from the search.
Allowable values: [
results,results_as_entities,results_as_hierarchy_nodes]Default:
resultsThe maximum number of elements to return in each page of results. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10The number of elements to skip before returning a page of results.
Default:
0Record attributes from the data model to include in the results.
Possible values: contains only unique items
Examples:[ "legal_name.given_name" ]Record attributes from the data model to exclude from the results.
Possible values: contains only unique items
Examples:[ "legal_name.given_name" ]The field is used to include total count of search data.
Default:
true
Valid input defining the search criteria.
{
"search_type": "record",
"query": {
"expressions": [
{
"property": "legal_name.last_name",
"condition": "equal",
"value": "smith"
}
]
}
}The type of data to search against.
Allowable values: [
record,relationship,entity,hierarchy_node]Default:
recordA search query to run.
The search filters to apply to the search to narrow down results.
Response
Results of a search operation.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
The total number of elements.
A link to the first page of results.
- first
The url for the page of results.
Whether an exact number of results have been calculated.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
The paged list of results containing entities or records from the search.
- results
Statistical summary of the full collection of search results.
- stats
The aggregate counts by record type.
The aggregate counts by record source.
The aggregate counts by entity type.
Status Code
The search was performed successfully.
Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Request timed out.
Problem searching. An internal error occurred while attempting to perform the search.
{ "first": { "href": "${host}/mdm/v1/search?return_type=results&crn=${crn}&offset=0&limit=10" }, "last": { "href": "${host}/mdm/v1/search?return_type=results&crn=${crn}&offset=0&limit=10" }, "limit": 10, "offset": 0, "is_exact_count": true, "results": [ { "attributes": { "birth_date": { "attribute_last_updated": "1548936432644", "value": "1981-11-27T00:00:00.000Z" }, "gender": { "attribute_last_updated": "1548936432644", "value": "M" }, "legal_name": { "attribute_last_updated": "1548936432644", "last_name": "MYERS", "given_name": "JOHN" }, "primary_residence": { "attribute_last_updated": "1548936432653", "address_province_state_value": "CA", "address_city": "COLOMA", "address_zip_postal_code": "95613", "address_province_state_type": "6", "address_line_1": "5955 EAST ST ANNE STREET", "address_line_2": "Unit-89" }, "record_id": "103954896523264298", "record_last_updated": "1603479339402", "record_source": "MDM" }, "id": "180336", "type": "record", "record_number": 180336, "type_name": "person" } ], "total_count": 1 }
Request
Path Parameters
The ID of the settings doc.
Query Parameters
The cloud resource name of the service.
Response
Information about a Json UI Settings Response.
Information about UI settings.
Supplemental information about a resource.
Status Code
The global/user setings has been successfully retrieved.
Problem getting settings. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting settings. An internal error occurred while attempting to get the settings.
{ "entity_types": { "person_entity": { "label": [], "search_result_attributes": [], "summary": { "label": "Summary", "attributes": [ [], [] ] }, "attribute_groups": [], "cards": [ { "label": "entity type", "show": true, "type": "key_relationship ", "record_type": "person ", "result_type": "results_as_entities ", "key_mappings": [ { "condition": "equal" } ], " table_attributes": [ "entity_id", "entity_display_label" ], "entity_type": "person_entity" }, { "label": "entity type 2", "show": true, "type": "key_relationship", "record_type": "person", "result_type": "results_as_entities", "key_mappings": [ { "condition": "equal" } ], "table_attributes": [ "entity_id", "entity_display_label" ], "entity_type": "person_entity" } ] } }, "record_types": { "person": { "label": [], "search_result_attributes": [], "summary": { "label": "Summary", "attributes": [ [], [] ] }, "attribute_groups": [], "cards": [ { "label": "one", "show": true, "type": "key_relationship", "record_type": "person", "result_type": "results", "key_mappings": [ { "condition": "equal" } ], "table_attributes": [ "record_id", "record_source", "record_display_label" ] } ] } } }
Request
Path Parameters
The ID of the settings doc.
Query Parameters
The cloud resource name of the service.
Valid object defining the updated settings to be added.
{
"entity_types": {
"person_entity": {
"label": [],
"search_result_attributes": [],
"summary": {
"label": "Summary",
"attributes": [
[],
[]
]
},
"attribute_groups": [],
"cards": [
{
"label": "entity type",
"show": true,
"type": "key_relationship ",
"record_type": "person ",
"result_type": "results_as_entities ",
"key_mappings": [
{
"condition": "equal"
}
],
" table_attributes": [
"entity_id",
"entity_display_label"
],
"entity_type": "person_entity"
},
{
"label": "entity type 2",
"show": true,
"type": "key_relationship",
"record_type": "person",
"result_type": "results_as_entities",
"key_mappings": [
{
"condition": "equal"
}
],
"table_attributes": [
"entity_id",
"entity_display_label"
],
"entity_type": "person_entity"
}
]
}
},
"record_types": {
"person": {
"label": [],
"search_result_attributes": [],
"summary": {
"label": "Summary",
"attributes": [
[],
[]
]
},
"attribute_groups": [],
"cards": [
{
"label": "one",
"show": true,
"type": "key_relationship",
"record_type": "person",
"result_type": "results",
"key_mappings": [
{
"condition": "equal"
}
],
"table_attributes": [
"record_id",
"record_source",
"record_display_label"
]
}
]
}
}
}- record_types
Information about UI Record Type.
- group_types
Information about UI Group Type.
- entity_types
Information about UI Entity Type.
- attribute_types
Information about UI Attribute Type.
- hierarchy_types
Information about UI Hierarchy Type.
Information about UI Workspace
Response
Information about a Json UI Settings Response.
Information about UI settings.
Supplemental information about a resource.
Status Code
The global/user setings has been successfully updated.
Problem updating settings. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem updating settings. An internal error occurred while attempting to update the settings.
{ "entity_types": { "person_entity": { "label": [], "search_result_attributes": [], "summary": { "label": "Summary", "attributes": [ [], [] ] }, "attribute_groups": [], "cards": [ { "label": "entity type", "show": true, "type": "key_relationship ", "record_type": "person ", "result_type": "results_as_entities ", "key_mappings": [ { "condition": "equal" } ], " table_attributes": [ "entity_id", "entity_display_label" ], "entity_type": "person_entity" }, { "label": "entity type 2", "show": true, "type": "key_relationship", "record_type": "person", "result_type": "results_as_entities", "key_mappings": [ { "condition": "equal" } ], "table_attributes": [ "entity_id", "entity_display_label" ], "entity_type": "person_entity" } ] } }, "record_types": { "person": { "label": [], "search_result_attributes": [], "summary": { "label": "Summary", "attributes": [ [], [] ] }, "attribute_groups": [], "cards": [ { "label": "one", "show": true, "type": "key_relationship", "record_type": "person", "result_type": "results", "key_mappings": [ { "condition": "equal" } ], "table_attributes": [ "record_id", "record_source", "record_display_label" ] } ] } } }
Request
Path Parameters
The ID of the settings doc.
Query Parameters
The cloud resource name of the service.
Response
Information about a Json UI Settings Response.
Information about UI settings.
Supplemental information about a resource.
Status Code
The global/user setings has been successfully reset.
Problem resetting settings. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem resetting settings. An internal error occurred while attempting to reset the settings.
{ "entity_types": { "person_entity": { "label": [], "search_result_attributes": [], "summary": { "label": "Summary", "attributes": [ [], [] ] }, "attribute_groups": [], "cards": [ { "label": "entity type", "show": true, "type": "key_relationship ", "record_type": "person ", "result_type": "results_as_entities ", "key_mappings": [ { "condition": "equal" } ], " table_attributes": [ "entity_id", "entity_display_label" ], "entity_type": "person_entity" }, { "label": "entity type 2", "show": true, "type": "key_relationship", "record_type": "person", "result_type": "results_as_entities", "key_mappings": [ { "condition": "equal" } ], "table_attributes": [ "entity_id", "entity_display_label" ], "entity_type": "person_entity" } ] } }, "record_types": { "person": { "label": [], "search_result_attributes": [], "summary": { "label": "Summary", "attributes": [ [], [] ] }, "attribute_groups": [], "cards": [ { "label": "one", "show": true, "type": "key_relationship", "record_type": "person", "result_type": "results", "key_mappings": [ { "condition": "equal" } ], "table_attributes": [ "record_id", "record_source", "record_display_label" ] } ] } } }
Request
Path Parameters
The ID of the settings doc.
Query Parameters
The cloud resource name of the service.
Valid object defining the updated settings to be added.
{
"entity_types": {
"person_entity": {
"label": [],
"search_result_attributes": [],
"summary": {
"label": "Summary",
"attributes": [
[],
[]
]
},
"attribute_groups": [],
"cards": [
{
"label": "entity type",
"show": true,
"type": "key_relationship ",
"record_type": "person ",
"result_type": "results_as_entities ",
"key_mappings": [
{
"condition": "equal"
}
],
" table_attributes": [
"entity_id",
"entity_display_label"
],
"entity_type": "person_entity"
},
{
"label": "entity type 2",
"show": true,
"type": "key_relationship",
"record_type": "person",
"result_type": "results_as_entities",
"key_mappings": [
{
"condition": "equal"
}
],
"table_attributes": [
"entity_id",
"entity_display_label"
],
"entity_type": "person_entity"
}
]
}
},
"record_types": {
"person": {
"label": [],
"search_result_attributes": [],
"summary": {
"label": "Summary",
"attributes": [
[],
[]
]
},
"attribute_groups": [],
"cards": [
{
"label": "one",
"show": true,
"type": "key_relationship",
"record_type": "person",
"result_type": "results",
"key_mappings": [
{
"condition": "equal"
}
],
"table_attributes": [
"record_id",
"record_source",
"record_display_label"
]
}
]
}
}
}- record_types
Information about UI Record Type.
- group_types
Information about UI Group Type.
- entity_types
Information about UI Entity Type.
- attribute_types
Information about UI Attribute Type.
- hierarchy_types
Information about UI Hierarchy Type.
Information about UI Workspace
Response
Information about a Json UI Settings Response.
Information about UI settings.
Supplemental information about a resource.
Status Code
The global/user setings has been successfully updated.
Problem updating settings. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem updating settings. An internal error occurred while attempting to update the settings.
{ "entity_types": { "person_entity": { "label": [], "search_result_attributes": [], "summary": { "label": "Summary", "attributes": [ [], [] ] }, "attribute_groups": [], "cards": [ { "label": "entity type", "show": true, "type": "key_relationship ", "record_type": "person ", "result_type": "results_as_entities ", "key_mappings": [ { "condition": "equal" } ], " table_attributes": [ "entity_id", "entity_display_label" ], "entity_type": "person_entity" }, { "label": "entity type 2", "show": true, "type": "key_relationship", "record_type": "person", "result_type": "results_as_entities", "key_mappings": [ { "condition": "equal" } ], "table_attributes": [ "entity_id", "entity_display_label" ], "entity_type": "person_entity" } ] } }, "record_types": { "person": { "label": [], "search_result_attributes": [], "summary": { "label": "Summary", "attributes": [ [], [] ] }, "attribute_groups": [], "cards": [ { "label": "one", "show": true, "type": "key_relationship", "record_type": "person", "result_type": "results", "key_mappings": [ { "condition": "equal" } ], "table_attributes": [ "record_id", "record_source", "record_display_label" ] } ] } } }
Get global and user settings for all users
Get global and user settings of all users from EM-UI
GET /mdm/v1/ui_settings
Request
Query Parameters
The cloud resource name of the service.
The number of records to skip over.
Default:
0The number of records to be returned. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10
Response
Information about a Json UI Settings Response for all users.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
A link to the first page of results.
- first
The url for the page of results.
The paged collection of UI Settings.
The total number of elements.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Supplemental information about a resource.
Status Code
The global and user setings for all users has been successfully retrieved.
Problem getting settings. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting settings. An internal error occurred while attempting to get the settings.
[ { "entity_types": { "person_entity": { "label": [], "search_result_attributes": [], "summary": { "label": "Summary", "attributes": [ [], [] ] }, "attribute_groups": [], "cards": [ { "label": "entity type", "show": true, "type": "key_relationship ", "record_type": "person ", "result_type": "results_as_entities ", "key_mappings": [ { "condition": "equal" } ], " table_attributes": [ "entity_id", "entity_display_label" ], "entity_type": "person_entity" }, { "label": "entity type 2", "show": true, "type": "key_relationship", "record_type": "person", "result_type": "results_as_entities", "key_mappings": [ { "condition": "equal" } ], "table_attributes": [ "entity_id", "entity_display_label" ], "entity_type": "person_entity" } ] } }, "record_types": { "person": { "label": [], "search_result_attributes": [], "summary": { "label": "Summary", "attributes": [ [], [] ] }, "attribute_groups": [], "cards": [ { "label": "one", "show": true, "type": "key_relationship", "record_type": "person", "result_type": "results", "key_mappings": [ { "condition": "equal" } ], "table_attributes": [ "record_id", "record_source", "record_display_label" ] } ] } } } ]
Response
Whether the system has started successfully or not.
Whether the system started successfully or not.
Status Code
The startup check was successfully performed.
Unable to determine startup status due to internal error.
Startup of the service FAILED. The metadata store is not available.
No Sample Response
Get the storage metadata
View information about the storage component where data can be uploaded before being loaded to the graph. This operation is used by Publisher.
GET /mdm/v1/storage_metadata
Response
Information about the storage component for the instance.
The type of storage.
Possible values: [
cloud,cp4d]The source system path.
The target system path.
The api key used to access the cloud endpoint.
The id of the service instance.
The endpoint url.
The physical location.
The hostname of the high-speed transfer endpoint.
The port of the high-speed transfer endpoint.
The user for the high-speed transfer endpoint.
The password for the high-speed transfer endpoint.
Status Code
The storage metadata has been successfully fetched.
Problem fetching storage metadata. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem fetching storage metadata. An internal error occurred while attempting to perform the operation.
{ "transfer_type": "cloud" }
Response
Status Code
The readiness check was successfully performed and the api is considered ready to receive requests.
Problem getting readiness status. An internal error occurred while attempting to determine the readiness status.
Readiness status is NOT READY. The metadata store is not available.
No Sample Response
Get graph statistics
View statistics derived from the data on the graph, including total count, counts by source, and counts by type.
GET /mdm/v1/statistics
Request
Query Parameters
The cloud resource name of the service.
Include source statistics
Default:
trueShow approximate entity statistics
Default:
falseInclude entity count on PE disabled
Default:
trueReturn only the list of sources without computing other statistics
Default:
false
Response
A collection of statistics for the graph.
The total count of vertices in the graph.
The number of records in the graph.
Supplemental statistics based on various groupings of the data.
- aggregate_counts
The aggregate counts by record type.
The aggregate counts by record source.
The aggregate counts by entity type.
The number of persisted entities in the graph.
Status Code
The graph statistics have been successfully retrieved.
Problem getting graph statistics. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting graph statistics. An internal error occurred while attempting to retrieve the graph statistics.
{ "aggregate_counts": { "record_types": [ { "key": "macro_role", "size": 273 }, { "key": "person", "size": 406 }, { "key": "organization", "size": 516 }, { "key": "contract", "size": 315 }, { "key": "preference", "size": 161 }, { "key": "interaction", "size": 279 }, { "key": "contract_component", "size": 203 }, { "key": "process_purpose", "size": 9 } ], "sources": [ { "key": "MDM", "size": 2062 }, { "key": "Other", "size": 100 } ] }, "record_count": 2162, "total_count": 2162 }
Get the surrounding vertices and edges for a set of vertices
Fetch a subgraph view of a subset of data on the graph as specified in the request.
The operation runs with the following features:
- Includes initial vertices in the result.
- Returns a summary of graph elements. Does not include detailed information such as model attribute keys and values.
- Ignores a vertex identifier if the vertex cannot be found. Returns an empty subgraph if no vertices are found.
- Returns an edge in the resulting subgraph if its source vertex, target vertex and the edge itself can be reached within the specified number of hops from at least one initial vertex.
- Includes edges between record and entity vertices.
- No more than 3 hops and 50 input vertices are permitted. The number of edges per vertex is capped at 50. Note that the number of edges per vertex may be less than this limit due to shared edges.
POST /mdm/v1/subgraph
Request
Valid object defining scope parameters for the subgraph.
The list of identifiers of initial vertices from which to build the subgraph.
The maximum number of hops from initial vertices.
Possible values: 0 ≤ value ≤ 3
Default:
0The attributes to be included in the response.
Examples:{ "person": [ "record_id" ] }- include
Possible values: contains only unique items
Response
A graph view representing a scoped subset of the graph.
The list of vertices that make up the subgraph.
The list of encountered edges whose source and target vertices also exist on the subgraph.
Status Code
The subgraph has been successfully retrieved.
Problem retrieving subgraph. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem retrieving subgraph. An internal error occurred while attempting to retrieve the subgraph.
{ "edges": [ { "display_name": "consent_process_purpose_link", "id": "2pjo60-18e8-r28l-38yw", "source_id": "57536", "target_id": "151592", "type": "relationship", "type_name": "consent_process_purpose_link" }, { "display_name": "consent_process_purpose_link", "id": "odzpo-2734-r28l-38yw", "source_id": "102496", "target_id": "151592", "type": "relationship", "type_name": "consent_process_purpose_link" } ], "vertices": [ { "attributes": {}, "display_name": "person-57536", "id": "57536", "is_global": true, "type": "record", "type_name": "person" }, { "attributes": {}, "display_name": "person-102496", "id": "102496", "is_global": true, "type": "record", "type_name": "person" }, { "attributes": {}, "display_name": "process_purpose-151592", "id": "151592", "is_global": true, "type": "record", "type_name": "process_purpose" } ] }
List the workflows
View a list of workflow nodes that have been added to the graph for given workflow type.
GET /mdm/v1/workflows
Request
Query Parameters
The cloud resource name of the service.
The workflow type to return.
Example:
potential_overlayReturn workflow node associated with record number.
The number of workflows to skip over.
Default:
0The number of workflow nodes to be returned. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10
Response
Paged information about a collection of records.
The number of elements to skip before returning a page of results.
The maximum number of elements to return in each page of results.
A link to the first page of results.
- first
The url for the page of results.
The paged collection of workflows.
The total number of elements.
A link to the last page of results.
- last
The url for the page of results.
A link to the previous page of results.
- previous
The url for the page of results.
A link to the next page of results.
- next
The url for the page of results.
Status Code
The workflow nodes have been successfully retrieved.
Problem retrieving workflow nodes. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem retrieving workflow nodes for workflow type. workflow node not found.
Problem retrieving workflow node. An internal error occurred.
{ "first": { "href": "${host}/mdm/v1/workflow?crn=${crn}&offset=0&limit=10" }, "last": { "href": "${host}/mdm/v1/workflow?crn=${crn}&offset=0&limit=10" }, "next": { "href": "${host}/mdm/v1/workflow?crn=${crn}&offset=0&limit=10" }, "previous": { "href": "${host}/mdm/v1/workflow?crn=${crn}&offset=0&limit=10" }, "limit": 10, "offset": 2, "total_count": 240, "workflows": [ { "id": "123441", "type": "potential_overlay", "last_updated_date": ", "last_updated_user": ", "entities": [{ "type": "record", "type_name": "person", "id": "2413sd53", "number": "122441" }] } ]}
Get a workflow
View information about a specific workflow node on the graph.
GET /mdm/v1/workflows/{workflow_id}Request
Path Parameters
The ID of the workflow.
Query Parameters
The cloud resource name of the service.
The workflow type to return.
Response
Information about a workflow.
Information about a workflow.
Status Code
The workflow node has been successfully retrieved.
Problem retrieving workflow node. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem retrieving workflow node for record. workflow node not found.
Problem retrieving workflow node. An internal error occurred.
{ "id": "123441", "type": "potential_overlay", "last_updated_date": ", "last_updated_user": ", "entities": [{ "type": "record", "type_name": "person", "id": "2413sd53", "number": "122441" }]}
Request
Path Parameters
The ID of the workflow.
Query Parameters
The cloud resource name of the service.
The type of the workflow.
Response
Status Code
The workflow was successfully deleted.
Problem deleting workflow. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem deleting workflow. Record does not exist.
Problem deleting workflow. An internal error occurred while attempting to delete the workflow.
No Sample Response
patch a workflow
Patch the workflow associated to the given id and worklfow_type.
PATCH /mdm/v1/workflows/{workflow_id}Request
Path Parameters
The ID of the workflow.
Query Parameters
The cloud resource name of the service.
The type of the workflow.
Valid object defining the information to patch a workflow of the given type.
{
"actions": [
{
"action_type": "update",
"action_values": {
"update_seq": [
1,
4,
6
]
}
}
]
}List of actions to be performed to patch workflow.
Response
Status Code
The workflow has been successfully patched.
Problem patching workflow. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem patching workflow. An internal error occurred while attempting to patch the workflow.
No Sample Response
Get workflow statistics
View information about workflow statistics for given workflow type and record type.
GET /mdm/v1/workflows/statistics
Request
Query Parameters
The cloud resource name of the service.
The workflow type to search for.
The record type to search for.
Response
Provides information about workflow statistics
stats of given workflow
- workflow_stats
Status Code
The workflow statistics have been successfully retrieved.
Problem retrieving workflow statistics. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem retrieving workflow statistics. workflow statistics node not found.
Problem retrieving workflow statistics. An internal error occurred.
{ "workflow_stats": { "SSN": 30, "Gender": 3, "Name and DOB": 24 } }
Resolve a workflow
Resolve the workflow associated to the given id and worklfow_type.
POST /mdm/v1/workflows/{workflow_id}/resolveRequest
Path Parameters
The ID of the workflow.
Query Parameters
The cloud resource name of the service.
The type of the workflow.
Flag to preview the resolved workflow changes or to apply them. Defualt is false
Default:
false
Valid object defining the information to resolve a workflow of the given type.
{
"actions": [
{
"action_type": "update",
"entities": [
{
"type": "record",
"type_name": "person",
"number": "124451"
}
],
"action_values": {
"update_seq": [
1,
4,
6
]
}
}
],
"comments": ""
}List of actions to be performed to resolve workflow.
Comments associated to workflow resolve.
Response
Status Code
The workflow has been successfully resolved.
Problem resolving workflow. Input validation failed.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem resolving workflow. An internal error occurred while attempting to resolve the workflow.
No Sample Response
Initiate export manual rules job
- This service initiates asynchronous processing of the export rules job.
POST /mdm/v1/bulk_export_linkage_rules
Request
Query Parameters
The cloud resource name of the service.
Wait for job finish, default is false
Default:
falseThe number of spark executors
Example:
1Amount of memory to use per executor process
Example:
8gThe number of cores to use on each executor
Example:
1The number of partitions to be used by spark
Example:
2
The wrapper object for export manual rules request body
The type of the output rules, ie. ALL, VALID, INVALID
The data type identifier of record, ie. person, organization
The storage bucket for the output file, ie. bucket-27200-lwx4cfvcue
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
The file format used when exporting the output file, ie. json, csv
The storage endpoint for the output file, ie. https://s3.us-east.cloud-object-storage.appdomain.cloud
The access key for your storage, ie. cf4965cebe074720a4929759f57e1214
The type of file compression used when exporting the output file. Required when a partition type of 'executor_count' is specified, ie. null, zip, tar, tgz
The secret key to access your storage
The folder name used when exporting the output file, ie. rulesData. The export file will be named as rulesData_<entity_type>.
The type of partitioning used when exporting the results. ie. null, executor_count
Response
Response object for asynchronous processing of a job
System defined name of a given job e.g. match-bulkderiver
System generated timestamp when a job was last updated
System generated timestamp when a job was created
System generated identifier of a job
Status of a job. One Of: Queued, Running, Completed, Failed, Canceled
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "job_id": "", "exit_code": 0, "arguments": "runExportRules.sh -d person -m person_entity", "start_time": "", "end_time": "", "process_id": 0 }
Initiate score entities job
- This service initiates asynchronous processing of the score entities job.
POST /mdm/v1/bulk_score_entities
Request
Query Parameters
The cloud resource name of the service.
Output directory
Example:
/entitiesThe data type identifier of source records, ie. person, organization, contract
Example:
personThe data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityIBM COS end point
Example:
http://s3.us-south.cloud-object-storage.appdomain.cloudIBM COS bucket
Example:
mdmexportIBM COS access key
Example:
b33037e4e8954207a434cc032c1139d1 #pragma: allowlist secretIBM COS secret key
Example:
<hex string>Wait for job finish, default is false
Default:
falseThe number of spark executors
Example:
1Amount of memory to use per executor process
Example:
8gThe number of cores to use on each executor
Example:
1The number of partitions to be used by spark
Example:
2
The wrapper object for List of entity ids
List of entity ids
Response
Response object for asynchronous processing of a job
System defined name of a given job e.g. match-bulkderiver
System generated timestamp when a job was last updated
System generated timestamp when a job was created
System generated identifier of a job
Status of a job. One Of: Queued, Running, Completed, Failed, Canceled
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "job_id": "61687493865291776", "arguments": "runEntityPairCompare.sh -d person -m person_entity -o /entities -a", "start_time": "", "process_id": 151, "end_time": "", "exit_code": 0, "metrics": { "entity_pair_matched_count": {} } }
Initiate match job
- This service initiates asynchronous processing of the match job.
- Matching is the process to compare two or more records and create linkages between the matched records.
POST /mdm/v1/bulk_match
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of source records, ie. person, organization, contract
Example:
personThe data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityForce to re-match all records, default is false
Default:
falseDeduplicate pairs, default is false
Default:
falsecollect analysis report, default is false
Default:
falseReplicate entity id, default is true
Default:
trueDo checkpoint
Default:
falseResume from step copying entity id, default is false
Default:
falseThe maximum number of pairs to be retained for pair review.
Default:
1000Example:
1000The distance from the clerical review and autolink thresholds that have increased pair sampling. A value of 10 indicates that there will be more sample pairs with matching scores within 10 points of either threshold.
Default:
10Example:
10The factor by which pair sampling will increase for pairs that fall within the area defined by sampling_dense_region.
Default:
2Example:
2The number of spark executors
Example:
1Amount of memory to use per executor process
Example:
8gThe number of cores to use on each executor
Example:
1The number of partitions to be used by spark
Example:
2IBM COS end point for job log storage.
Example:
http://s3.us-south.cloud-object-storage.appdomain.cloudIBM COS bucket for job log storage.
Example:
mdmdataIBM COS access key for spark log storage
Example:
b33037e4e8954207a434cc032c1139d1IBM COS secret key for spark log storage
Example:
<hex string>
Response
Response object for asynchronous processing of a job
System defined name of a given job e.g. match-bulkderiver
System generated timestamp when a job was last updated
System generated timestamp when a job was created
System generated identifier of a job
Status of a job. One Of: Queued, Running, Completed, Failed, Canceled
Status Code
The request has been successfully created.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "created_at": "", "image": "mdm-spark-job", "job_name": "match-bulkmatcher", "last_updated_at": "", "id": "b10502a6-b336-4452-b15d-bbda67b95299", "input": {}, "spark_configuration": {}, "status": "Queued" }
Initiate import manual rules job
- This service initiates asynchronous processing of the import rules job.
POST /mdm/v1/bulk_import_linkage_rules
Request
Query Parameters
The cloud resource name of the service.
Wait for job finish, default is false
Default:
falseThe number of spark executors
Example:
1Amount of memory to use per executor process
Example:
8gThe number of cores to use on each executor
Example:
1The number of partitions to be used by spark
Example:
2
The wrapper object for import manual rules request body
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
The data type identifier of record, ie. person, organization
The full path to the input linkage rules CSV file, ie. /rulesData/output.csv. The corresponding header files should be in the same level and named HEADERS.
The storage bucket for the output file, ie. bucket-27200-lwx4cfvcue
The storage endpoint for the output file, ie. https://s3.us-east.cloud-object-storage.appdomain.cloud
The access key for your storage, ie. cf4965cebe074720a4929759f57e1214
The secret key to access your storage
Response
Response object for asynchronous processing of a job
System defined name of a given job e.g. match-bulkderiver
System generated timestamp when a job was last updated
System generated timestamp when a job was created
System generated identifier of a job
Status of a job. One Of: Queued, Running, Completed, Failed, Canceled
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "job_id": "", "exit_code": 0, "arguments": "runImportRules.sh -d person -m person_entity", "start_time": "", "end_time": "", "process_id": 0 }
Initiate matching export job
- This service initiates asynchronous processing of a matching export job.
- Match export job exports the existing matching data, pairs data, data quality data and workflow data to a given path under /service-exports.
POST /mdm/v1/bulk_matching_export
Request
Query Parameters
The cloud resource name of the service.
The number of spark executors
Example:
1Amount of memory to use per executor process
Example:
8gThe number of cores to use on each executor
Example:
1The number of partitions to be used by spark
Example:
2The output path under /service-exports for the exported data
Default:
/service-exports/matchingExample:
/service-exports/customFolder
Response
Response object for asynchronous processing of a job
System defined name of a given job e.g. match-bulkderiver
System generated timestamp when a job was last updated
System generated timestamp when a job was created
System generated identifier of a job
Status of a job. One Of: Queued, Running, Completed, Failed, Canceled
Status Code
The request has been successfully created.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
The request cannot be processed due to the server not supporting the required functionality
{ "created_at": "", "image": "mdm-spark-job", "job_name": "match-bulkmatchingexport", "last_updated_at": "", "id": "854ed8ca-dddf-4862-b069-58cb15eba138", "input": {}, "spark_configuration": {}, "status": "Queued" }
Initiate data derivation job
- This service initiates asynchronous processing of the derive job.
- Data derivation is the process to standardize and generate buckets for the input records.
POST /mdm/v1/bulk_derive
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of source records, ie. person, organization, contract
Example:
personForce to re-derive all records, default is false
Default:
falseThe delimited text file name, ending with .csv/.tsv for comma/tab separated format.
Example:
/usr/mdm-matching/sample/person-100.tsvcomma separated column names in the data file
Example:
record_source,,record_id,legal_name.given_name,legal_name.last_name,primary_residence.address_line1,primary_residence.city,primary_residence.province_state,primary_residence.zip_postal_code,,home_telephone.phone_number,business_address.address_line1,business_address.city,business_address.province_state,business_address.zip_postal_code,,home_telephone.phone_number.1,social_security_number.identification_number,health_card.identification_number,birth_date.value,gender.valueIBM COS end point (i.e. https://s3.us-east.cloud-object-storage.appdomain.cloud)
Example:
http://s3.us-south.cloud-object-storage.appdomain.cloudIBM COS bucket (i.e. bucket-27200-lwx4cfvcue)
Example:
mdmdataIBM COS access key (i.e. cf4965cebe074720a4929759f57e1214)
Example:
b33037e4e8954207a434cc032c1139d1 #pragma: allowlist secretThe unique secret code to access IBM COS
Example:
<hex string>The number of spark executors
Example:
1Amount of memory to use per executor process
Example:
8gThe number of cores to use on each executor
Example:
1The number of partitions to be used by spark
Example:
2IBM COS end point for job log storage.
Example:
http://s3.us-south.cloud-object-storage.appdomain.cloudIBM COS bucket for job log storage.
Example:
mdmdataIBM COS access key for spark log storage
Example:
b33037e4e8954207a434cc032c1139d1IBM COS secret key for spark log storage
Example:
<hex string>
Response
Response object for asynchronous processing of a job
System defined name of a given job e.g. match-bulkderiver
System generated timestamp when a job was last updated
System generated timestamp when a job was created
System generated identifier of a job
Status of a job. One Of: Queued, Running, Completed, Failed, Canceled
Status Code
The request has been successfully created.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "created_at": "", "image": "mdm-spark-job", "job_name": "match-bulkderiver", "last_updated_at": "", "id": "2ba3ed28-00c7-42e4-9cc9-8c74bf5e4ff0", "input": {}, "spark_configuration": {}, "status": "Running" }
Initiate report job
- This service initiates asynchronous processing of a report job.
- Report job creates a report of the existing derived data that includes information like matching summary, largest entities, etc..
POST /mdm/v1/bulk_report
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of source records, ie. person, organization, contract
Example:
personThe data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityThe number of spark executors
Example:
1Amount of memory to use per executor process
Example:
8gThe number of cores to use on each executor
Example:
1The number of partitions to be used by spark
Example:
2Comma separated analytics report identifier to be collected, ie. entity_summary, bucket_summary
Default:
entity_summary,bucket_summaryExample:
entity_summary,bucket_summarycollect analysis report, default is false
Default:
false
Response
Response object for asynchronous processing of a job
System defined name of a given job e.g. match-bulkderiver
System generated timestamp when a job was last updated
System generated timestamp when a job was created
System generated identifier of a job
Status of a job. One Of: Queued, Running, Completed, Failed, Canceled
Status Code
The request has been successfully created.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "created_at": "", "image": "mdm-spark-job", "job_name": "match-bulkreporter", "last_updated_at": "", "id": "854ed8ca-dddf-4862-b069-58cb15eba138", "input": {}, "spark_configuration": {}, "status": "Queued" }
Initiate generate pairs job
- This service initiates asynchronous processing of the generate pairs job.
POST /mdm/v1/bulk_generate_pairs
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityThe data type identifier of source records, ie. person, organization, contract
Example:
personWait for job finish, default is false
Default:
falseThe maximum number of pairs to return
Default:
500Example:
500The number of spark executors
Example:
1Amount of memory to use per executor process
Example:
8gThe number of cores to use on each executor
Example:
1The number of partitions to be used by spark
Example:
2Exclude reviewd pairs. Default is false
Default:
false
Response
Response object for asynchronous processing of a job
System defined name of a given job e.g. match-bulkderiver
System generated timestamp when a job was last updated
System generated timestamp when a job was created
System generated identifier of a job
Status of a job. One Of: Queued, Running, Completed, Failed, Canceled
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "job_id": "44465189566855168", "arguments": "runPairScore.sh -d person -m person_entity", "start_time": "2021-02-17T10:55:09.264Z", "process_id": 1550, "end_time": "2021-02-17T10:55:22.487Z", "exit_code": 0, "metrics": { "total_pairs": 118, "bucket_count_compared": 1125, "bucket_count_large": 0, "bucket_count_singleton": 1776, "record_count_updated": 0, "record_count_deleted": 0, "record_count_no_buckets": 0, "record_count_low_score": 0, "record_count_candidate": 100, "pair_comparison_count": 5614, "pair_matched_count": 5101 } }
Report entity confidence metrics
- This service reports the entity confidence metrics.
GET /mdm/v1/data_quality/entity_confidence_metrics
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityThe API will report the entity confidence metrics to DQ dashboard when the parameter is true. Default is false
Default:
false
Response
Response wrapper object for getting entity quality metrics
Total number of entities with derived matching data.
Number of entities containing atleast one record with potential match issues.
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "entity_count_with_potential_match_issues": 10, "total_entity_count": 50 }
Retrieve list of issues for given entities
- This service retrieves list issues for given entities.
GET /mdm/v1/data_quality/issues
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityThe entity identifiers of an entity as assigned by the system
Examples:[ "entity_type-12345678" ]The number of issues to be retrieved for the given entities
Default:
1Example:
1The number of issues to skip before returning the result
Default:
0If true, the total number of issues for the given entity ids and types will be returned. Otherwise, the number of results will be returned. Default value is true
Default:
trueExample:
true
Response
The wrapper object for getting data quality issues
Information about a quality issue.
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "first": { "href": "https://matching:9443/mdm/v1/data_quality/issues?crn=:::::::msk::&offset=0&limit=1" }, "last": { "href": "https://matching:9443/mdm/v1/data_quality/issues?crn=:::::::msk::&offset=4&limit=1" }, "next": { "href": "https://matching:9443/mdm/v1/data_quality/issues?crn=:::::::msk::&offset=1&limit=1" }, "issues": [ { "type": "potential_match", "entity_type": "person_entity", "entities": [ { "record_number": "107618727585906689", "entity_id": "person_entity-107618727577518081" }, { "record_number": "107618727585906689", "entity_id": "person_entity-107618727577518081" } ], "created_at": "Jan 15, 2023", "resolution_prediction": { "probability": 0.7095238, "action": "link" }, "id": "vs68cku9hfmp" } ], "total_count": 5, "offset": 0, "limit": 1 }
Start matching remediation workflow
- This service starts the matching workflow.
POST /mdm/v1/data_quality/remediation_workflows
Request
The wrapper object for remediation workflow start request
{
"type": "potential_match",
"entities": [
"person_entity-48242682",
"person_entity-93523223"
]
}Collection of entities
Response
The wrapper object for post start workflow response
Collection of entities
Last updated user
The unique identifier of a workflow
The type of workflow
Last updated date
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "type": "potential_match", "id": "cd4431f4-505b-11ed-bdc3-0242ac120002", "entities": [ "person_entity-48242682", "person_entity-93523223" ], "last_update_date": "2022-10-31T16:18:01.864Z", "last_update_user": "ID1234", "bulk_action": { "decision": "link", "comments": "these entities are obviously the same." }, "bulk_recommendation": { "action": "link", "probability": "0.5689" }, "issue_actions": [ { "issue_id": 123456, "decision": "link", "records": [ "1", "2" ], "comments": "the social id is matching", "last_update_date": "2022-10-31T16:18:01.864Z", "last_update_user": "ID1234" } ] }
Starts matching bulk remediation workflows
- This service starts bulk workflows.
POST /mdm/v1/data_quality/remediation_workflows/bulk_start_workflows
Request
The wrapper object for starting bulk remediation workflow request
{
"limit": 25,
"search_criteria": {
"search_type": "record",
"filters": [
{
"type": "record",
"values": [
"person"
]
}
],
"query": {
"expressions": [
{
"property": "customer_segment.value",
"condition": "equal",
"value": "vip",
"record_type": "person"
},
{
"property": "primary_address.city",
"condition": "equal",
"value": "London",
"record_type": "person"
}
],
"operation": "and"
}
}
}The wrapper object for search criteria used for stating bulk remediation workflow request
Response
Response object for asynchronous processing of a job
System defined name of a given job e.g. match-bulkderiver
System generated timestamp when a job was last updated
System generated timestamp when a job was created
System generated identifier of a job
Status of a job. One Of: Queued, Running, Completed, Failed, Canceled
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "job_name": "string", "last_updated_at": "string", "created_at": "string", "id": "string", "status": "string", "additionalProp1": {} }
Compare records
- This service compares the input records and returns comparison details.
- This service supports comparing two records by supplying payload or record_id.
- This service also supports self comparison of a single input record.
POST /mdm/v1/compare
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityThe level of information detail in response, ie. low, high, debug
Default:
lowThe unique identifier of the first source record as assigned by the system
Example:
123456789The unique identifier of the second source record as assigned by the system
Example:
123456789The data type identifier of source records, ie. person, organization, contract
Default:
personExample:
person
The wrapper object for collection of records
{
"records": [
{
"record_type": "person",
"attributes": {
"record_source": "MDM",
"record_id": "2",
"record_last_updated": 1506982103000,
"birth_date": [
{
"value": "11/05/1993"
}
],
"gender": [
{
"value": "male"
}
],
"primary_residence": [
{
"record_start": " ",
"address_line1": "7908 NE VAN TRUMP AVE",
"city": "LEFOR",
"province_state": "Texas"
}
]
}
}
]
}Collection of records
Response
Response object for comparing records
The overall comparison score of the record(s)
Collection of post filter methods
The score category of the record(s)
The record number of the second record
The record number of the first record
Collection of comparators used for comparing the records
Collection of triggers that caused Potential Overlay
- potential_overlay_triggers
Collection of triggers
Flag to indicate Potential Overlay
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "score": 238, "score_category": "matched", "record_number1": 168071492364660740, "record_number2": 168071476032040960 }
Get entity detail
- This service provides entity members, matched pairs, and manual rules.
POST /mdm/v1/entity_detail
Request
The wrapper object of entity and record numbers
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
The data type identifier of record, ie. person, organization
Collection of entity numbers
The minimal score for matched pairs
Collection of record numbers
Response
Response object for entity details
Collection of record details
Collection of sample pairs of records
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "records": [ { "record_number": "52538957658369024", "entity_number": "52538957658369024", "score": "186" }, { "record_number": "52538759671491584", "entity_number": "52538759671491584", "score": "186" }, { "record_number": "52538887606152192", "entity_number": "52538759671491584", "score": "186" } ], "pairs": [ { "source": "52538759671491584", "target": "52538887606152192", "score": "183", "type": "LINKED" }, { "source": "52538759671491584", "target": "52538957658369024", "score": "58", "type": "NOT_LINKED" }, { "source": "52538887606152192", "target": "52538957658369024", "score": "67", "type": "NOT_LINKED" } ] }
Retrieve information for a job
- This service retrieves the information about a job which is identified with the supplied job id.
GET /mdm/v1/matching_jobs/{job_id}Request
Path Parameters
The unique identifier of the job.
Example:
95364
Query Parameters
The cloud resource name of the service.
Response
Response object for get matching job
System defined name of a given job e.g. match-bulkderiver
System generated timestamp when a job was last updated
System generated timestamp when a job was created
System generated identifier of a job
Status of a job. One Of: Queued, Running, Completed, Failed, Canceled
Summary of a job
System defined image for a given job e.g. mdm-spark-job
System generated timestamp when a job was started
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "image": "mdm-spark-job", "job_name": "match-bulkderiver", "created_at": "2021-07-08T06:55:53.000Z", "id": "2a01507e-92a8-41c4-8568-2b3dec10889b", "last_updated_at": "2021-07-08T07:01:41.000Z", "started_at": "2021-07-08T06:55:53.000Z", "status": "Success" }
Add or update manual link/unlink
- This service adds or updates a collection of manual link/unlink rules.
PUT /mdm/v1/linkage_rules
Request
The wrapper object of linkage rules
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
Collection of linkage rules
Response
Response wrapper object for linkage rules
A single linkage rule for a given entity
- any property
System generated timestamp when the linkage rule was last updated
User specified rule type. One Of: link, unlink
One of the record numbers in linkage rule
User defined description for the linkage rule
The other record number in linkage rule
Creator of the linkage rule
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to presence of quarantine record(s)
The request cannot be processed due to an unexpected system error.
{ "person_entity": [ { "src_recno": "35677335438998528", "target_recno": "35677332186315776", "rule_type": "LINK", "description": "string", "user": "user1", "last_updated": "1605178647780" } ] }
Compare pairs of records
- This service compares the input pairs of records and returns comparison details.
- This service supports comparing multiple pairs of records by supplying pairs of record numbers in the payload.
POST /mdm/v1/batch_compare
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityThe data type identifier of source records, ie. person, organization, contract
Example:
personThe level of information detail in response, ie. low, high, debug
Default:
low
The wrapper Object for pairs of record numbers
{
"pairs": [
{
"record_number1": "123",
"record_number2": "456"
},
{
"record_number1": "321",
"record_number2": "654"
}
]
}Collection of pairs of record numbers
Response
The wrapper object for the comparison details of the pairs compared
Collection of details of pairs comparisons
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "comparison_details": [ { "score": 238, "score_category": "matched", "record_number1": 168071492364660740, "record_number2": 168071476032040960 } ] }
Retrieve derived data for a record
- This service retrieves the derived data for a given input record.
GET /mdm/v1/index
Request
Query Parameters
The cloud resource name of the service.
The unique identifier of a source record as assigned by the system
Example:
1234567890The source system name of the record
Example:
MDMThe record identifier of the record
Example:
123456The data type identifier of source records, ie. person, organization
Example:
person
Response
Response wrapper object for retrieving the derived matching data for given source record keys
Collection of self comparison scores of the source record for each entity type
The unique identifier of a source record as assigned by the system
Collection of a record's bucket hashes, primarily used for efficient entity resolution
A serialized representation of the standardized values
Status Code
The request has been successfully finished.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "self_scores": { "person_entity": 344 }, "record_number": 35676912450780160, "buckets": [], "standardized_values": " " }
Preview derived data
- This service computes and returns a preview of the derived data for the input records.
- Data derivation is the process to standardize and generate buckets for the input records.
POST /mdm/v1/derive
Request
Query Parameters
The cloud resource name of the service.
The level of information detail in response, ie. low, high, debug
Default:
low
The wrapper object for collection of records
{
"records": [
{
"record_type": "person",
"attributes": {
"record_source": "MDM",
"record_id": "2",
"record_last_updated": 1506982103000,
"birth_date": [
{
"value": "1964-08-21T00:00:00.000Z"
}
],
"gender": [
{
"value": "Female"
}
],
"primary_residence": [
{
"record_start": "017-10-02 18:08:23.689",
"address.residence": "condo",
"address.address_line1": "7908 NE VAN TRUMP AVE",
"address.city": "LEFOR"
}
]
}
}
]
}Collection of records
Response
Response object for previewing the derived matching data for given records
Collection of derived matching data for given records
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "index_response": [ { "record_id": "1", "record_type": "person", "record_source": "MDM", "algorithm_name": "person", "standardized_values": {}, "buckets": [] } ] }
Preview entity composition
- This service provides a preview of the impacted entities by hypothesizing one or more manual link/unlink rules.
POST /mdm/v1/linkage_rules_preview
Request
The wrapper object of linkage rules
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
Collection of linkage rules
Response
Response wrapper object for previewing the impacted entities by hypothesizing one or more linkage rules
- any property
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to presence of quarantine record(s)
The request cannot be processed due to an unexpected system error.
{ "person_entity": { "35678330629897216": [], "35678327655087104": [ "35678330629897216", "35678327655087104" ] } }
Retrieve record ids
- This service retrieves all record_ids that are assigned with the same entity_id.
GET /mdm/v1/entity_ids/{entity_id}Request
Path Parameters
The entity identifier of an entity as assigned by the system
Example:
entity_type-123456789
Query Parameters
The cloud resource name of the service.
Response
Response wrapper object for getting the record keys of a given entity_id
Collection of record number, record id and record source
Status Code
The request has been successfully finished.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "records": [] }
Search records by matching algorithm
- This service searches for the supplied payload and returns record_ids of potential matches.
- The order of record_ids in the response is determined by matching algorithms.
POST /mdm/v1/probabilistic_search
Request
Query Parameters
The cloud resource name of the service.
To include logical keys in the response, default is true
Default:
trueThe level of information detail in response, ie. low, high, debug
Default:
lowThe minimum score to filter the matching records in the results. The default min_score is 0.
The maximum score to filter the matching records in the results. The default max_score is 32767.
The number of entries to skip before returning a page of results. The default offset is 0.
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
Default:
person_entityThe maximum expected number of entries in each page of results. The default limit is 20.
The wrapper Object for a single record
{
"record_type": "person",
"attributes": {
"record_source": "MDM",
"record_id": "2",
"record_last_updated": 1506982103000,
"birth_date": [
{
"value": "1964-08-21T00:00:00.000Z"
}
],
"gender": [
{
"value": "mALe"
}
],
"legal_name": [
{
"record_start": "017-10-02 18:08:23.689",
"generation": "NEWBORN",
"given_name": [
"GIRL1",
"GIRL1",
"GIRL2",
"GIRL3",
"GIRL4"
],
"middle_name": "BABYGIRL"
}
]
}
}Details of a single record including external record reference and record attributes
- attributes
The data type identifier of the record, ie. person, organization
Optional record number
Response
Response object for searching the potential matches of a given search criteria
Collection of records matching the search criteria
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "records": [ { "record_id": "101", "score": 238, "record_source": "PERSONLIST" }, { "record_id": "1", "score": 238, "record_source": "PERSONLIST" } ] }
Retrieve an entity's manual links/unlinks
- This service retrieves all manual link/unlink rules for specified entity.
GET /mdm/v1/entities/{entity_id}/linkage_rulesRequest
Path Parameters
The entity identifier of an entity as assigned by the system
Example:
person_entity-1234
Query Parameters
The cloud resource name of the service.
Response
Response wrapper object for linkage rules
A single linkage rule for a given entity
- any property
System generated timestamp when the linkage rule was last updated
User specified rule type. One Of: link, unlink
One of the record numbers in linkage rule
User defined description for the linkage rule
The other record number in linkage rule
Creator of the linkage rule
Status Code
The request has been successfully finished.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "person_entity": [ { "last_updated": "1611866992413", "rule_type": "UNLINK", "src_recno": "42690607485214720", "description": "string", "target_recno": "42690601550274560", "user": "admin" } ] }
Retrieve sample pairs of records
- This service retrieves the sample pairs from the generated pairs of records for analysis.
GET /mdm/v1/pairs
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of source records, ie. person, organization, contract
Example:
personThe data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityThe number of pairs to be retrieved from the generated pairs
Default:
1Example:
1The number of pairs to skip before returning the result
Default:
0
Response
Response wrapper object for getting the sample pairs from the generated pairs
Collection of sample pairs of records
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
[ { "score": 207, "record_number_1 ": "47096809827657730", "comparison_details": { "gender_compare": 3, "address_compare": 52, "phone_compare": 52, "name_compare": 34, "identifiers_compare": 54, "birth_date_compare": 12 }, "id": 4.709680982765773e+33, "category": "matched", "record_number_2": "47096809840240640" } ]
Retrieve all entity ids
- This service retrieves all assigned entity_ids for a given record.
GET /mdm/v1/entity_ids
Request
Query Parameters
The cloud resource name of the service.
The unique identifier of a source record as assigned by the system
Example:
1234567890The source system name of the record
Example:
MDMThe record identifier of the record
Example:
123The data type identifier of source records, ie. person, organization
Example:
person
Response
Response wrapper object for getting entity ids
Collection of entity ids and entity types
Status Code
The request has been successfully finished.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "entities": [ { "entity_type": "person_entity", "entity_id": 32995408531474430 } ] }
Retrieve a summary of all derived data
- This service retrieves a summary of all derived data in system (e.g. entity distribution).
GET /mdm/v1/summary
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of source records, ie. person, organization, contract
Example:
personThe data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityComma separated counts and statistics, ie. total_records, total_entities
Default:
total_records,total_active_records,total_inactive_records,unique_source_count,total_entities,total_records_with_record_filter,stats_and_entitiesExample:
total_records,total_entities
Response
Response wrapper object for summary of derived matching data
Total number of records currently present with derived matching data
Total number of records with derived matching data
Total number of entities with derived matching data
Total number of records deleted
Statistical information of entities
The number of source systems in the derived matching data
Total number of records with record_filter.<entity_type> as true
Status Code
The request has been successfully finished.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "total_records": 100, "unique_source_count": 1, "total_entities": 27, "total_records_with_record_filter": 2, "stats_and_entities": { "entity_size_stats": {}, } }
Retrieve a record's manual links/unlinks
- This service retrieves all manual link/unlink rules for given record and entity type.
GET /mdm/v1/records/{record_number}/linkage_rulesRequest
Path Parameters
The unique identifier of a source record as assigned by the system
Example:
123456789
Query Parameters
The cloud resource name of the service.
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
entity-type
Response
Response wrapper object for linkage rules
A single linkage rule for a given entity
- any property
System generated timestamp when the linkage rule was last updated
User specified rule type. One Of: link, unlink
One of the record numbers in linkage rule
User defined description for the linkage rule
The other record number in linkage rule
Creator of the linkage rule
Status Code
The request has been successfully finished.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "person_entity": [ { "src_recno": "35677335438998529", "target_recno": "35677332186315776", "rule_type": "LINK", "description": "string", "user": "user2", "last_updated": "1605178647781" } ] }
Remove manual link/unlink
- This service removes one or more manual link/unlink rules supplied by user.
POST /mdm/v1/delete_linkage_rules
Request
The wrapper object of linkage rules
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
Collection of linkage rules
Response
Response wrapper object for linkage rules
A single linkage rule for a given entity
- any property
System generated timestamp when the linkage rule was last updated
User specified rule type. One Of: link, unlink
One of the record numbers in linkage rule
User defined description for the linkage rule
The other record number in linkage rule
Creator of the linkage rule
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to presence of quarantine record(s)
The request cannot be processed due to an unexpected system error.
{ "person_entity": [ { "src_recno": "35677335438998528", "target_recno": "35677332186315776", "rule_type": "LINK", "description": "string", "user": "user1", "last_updated": "1605178647780" } ] }
Check the existence of linkage rules
- This service checks for the existence of valid and invalid linkage rules for specified entity type when record filter is enabled.*
GET /mdm/v1/linkage_rules/exist
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of source records, ie. person, organization, contract
Example:
personThe data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityTo check if invalid manual linkage rules exist, default is false
Default:
false
Response
Response wrapper object of checking existence of linkage rules
True when there are any manual linkage rules for the given entity type
Status Code
The request has been successfully finished.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "linkage_rules_exist": "true", }
Retrieve bucket hash details
- This service retrives details about all the bucket hashes supplied as an input
POST /mdm/v1/bucket_details
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of source records, ie. person, organization, contract
Example:
personTo check if invalid manual linkage rules exist, default is false
Default:
false
The wrapper Object for list of bucket hashes
Collection of bucket hashes
Response
Response wrapper object for bucket hash details
Collection of hash details for a given bucket hash
- any property
Boolean indicator to indicate if the bukcet hash is large or not
Number of member records in a given bucket hash
Bucket group identifier
String value derived from the record attribtes used for generating bucket hash
Collection of member records number
Collection of member records derived data
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "1277079518137406915": { "candidate_records_count": 1, "bucket_group": 1, "member_records": [ "130063453988585473" ], "isLarge": false, "contributing_prehashed_value": "JRLT", "contributing_attributes_derived_data": { "130063453988585473": { "legal_name": [ { "last_name": [ "TEEL" ], "given_name": [ "JERRY" ] } ] } } } }
Remove all derived data
- This service removes all derived data for the specified record types.
POST /mdm/v1/reset_matching
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of source records, ie. person, organization, contract. If not supplied, all record types will be considered
Example:
person
Response
Response object for removing all the derived matching data
True when operation was successful
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "done_reset": "true", }
Get comparison details between two clusters
- This service retrieves comparison details between two clusters in the system. A cluster represents a closely matched collection of records of an entity.
POST /mdm/v1/clusters/compare
Request
Query Parameters
The cloud resource name of the service.
The cluster identifier of a cluster as assigned by the system
Example:
entity_type-123456789-0The cluster identifier of a cluster as assigned by the system
Example:
entity_type-123456789-0
Response
Response wrapper object for previewing comparison between two clusters
The comparison of important values from both clusters
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{"comparison":{"primary_residence":{"cluster1_value":[{"city":["SAN","MATEO"],"postal_code":["32187"]}],"cluster2_value":[{"city":["SAN","MATEO"],"postal_code":["32187"]}]},"gender":{"cluster1_value":[{}],"cluster2_value":[{}]},"social_security_number":{"cluster1_value":[{"identification_number":["398724006"]}],"cluster2_value":[{"identification_number":["398724006"]}]},"legal_name":{"cluster1_value":[{"given_name":["WILDER"]}],"cluster2_value":[{"given_name":["ROSEMARY"]}]}}}
Perform pair wise comparisons of the records for each entity in entities list
Requires the application role of 'MatchingManager'.
POST /mdm/v1/jobs/score_entities
Request
Query Parameters
The cloud resource name of the service.
Output directory
Example:
/entitiesThe data type identifier of source records, ie. person, organization, contract
Example:
personThe data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityIBM COS end point
Example:
http://s3.us-south.cloud-object-storage.appdomain.cloudIBM COS bucket
Example:
mdmexportIBM COS access key
Example:
b33037e4e8954207a434cc032c1139d1 #pragma: allowlist secretIBM COS secret key
Example:
<hex string>Wait for job finish, default is false
Default:
false
The wrapper object for List of entity ids
List of entity ids
Response
Response object for asynchronous processing of a bulk job
The timestamp when a job was started
The unique identifier of a job as assigned by the system
Arguments passed for executing the job
The identifier of a process as assigned by the spark
The timestamp when a job ended
The exit code of the job. 0 when successful, 1 when failed
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "job_id": "61687493865291776", "arguments": "runEntityPairCompare.sh -d person -m person_entity -o /entities -a", "start_time": "", "process_id": 151, "end_time": "", "exit_code": 0, "metrics": { "entity_pair_matched_count": {} } }
Perform asynchronous processing of the import linkage rules job
Requires the application role of 'MatchingManager'.
POST /mdm/v1/jobs/import_linkage_rules
Request
Query Parameters
The cloud resource name of the service.
Wait for job finish, default is false
Default:
false
The wrapper object for import manual rules request body
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
The data type identifier of record, ie. person, organization
The full path to the input linkage rules CSV file, ie. /rulesData/output.csv. The corresponding header files should be in the same level and named HEADERS.
The storage bucket for the output file, ie. bucket-27200-lwx4cfvcue
The storage endpoint for the output file, ie. https://s3.us-east.cloud-object-storage.appdomain.cloud
The access key for your storage, ie. cf4965cebe074720a4929759f57e1214
The secret key to access your storage
Response
Response object for asynchronous processing of a bulk job
The timestamp when a job was started
The unique identifier of a job as assigned by the system
Arguments passed for executing the job
The identifier of a process as assigned by the spark
The timestamp when a job ended
The exit code of the job. 0 when successful, 1 when failed
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "job_id": "", "exit_code": 0, "arguments": "runImportRules.sh -d person -m person_entity", "start_time": "", "end_time": "", "process_id": 0 }
Perform asynchronous processing of the matching export job
Requires the application role of 'MatchingManager'.
POST /mdm/v1/jobs/matching_export
Request
Query Parameters
The cloud resource name of the service.
Wait for job finish, default is false
Default:
falseThe output path under /home/default for the exported data
Default:
/home/default/matchingExample:
/home/default/customFolder
Response
Response object for asynchronous processing of a bulk job
The timestamp when a job was started
The unique identifier of a job as assigned by the system
Arguments passed for executing the job
The identifier of a process as assigned by the spark
The timestamp when a job ended
The exit code of the job. 0 when successful, 1 when failed
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "job_id": "", "exit_code": 0, "arguments": "runExportData.sh -d person -m person_entity", "start_time": "", "end_time": "", "process_id": 0 }
Perform asynchronous processing of the derive job of a data file
This job is performed in IBM Cloud Storage. Requires the application role of 'MatchingManager'.
POST /mdm/v1/jobs/derive
Request
Query Parameters
The cloud resource name of the service.
Record type of input data
Example:
personWait for job finish, default is false
Default:
falseForce to re-derive all records, default is false
Default:
falseTSV or CSV file path
Example:
/usr/mdm-matching/sample/person-100.tsvComma separated column specification of TSV/CSV file
Example:
record_source,,record_id,legal_name.given_name,legal_name.last_name,primary_residence.address_line1,primary_residence.city,primary_residence.province_state,primary_residence.zip_postal_code,,home_telephone.phone_number,business_address.address_line1,business_address.city,business_address.province_state,business_address.zip_postal_code,,home_telephone.phone_number.1,social_security_number.identification_number,health_card.identification_number,birth_date.value,gender.valueIBM COS end point
Example:
http://s3.us-south.cloud-object-storage.appdomain.cloudIBM COS bucket
Example:
mdmdataIBM COS access key
Example:
b33037e4e8954207a434cc032c1139d1 #pragma: allowlist secretIBM COS secret key
Example:
<hex string>
Response
Response object for asynchronous processing of a bulk job
The timestamp when a job was started
The unique identifier of a job as assigned by the system
Arguments passed for executing the job
The identifier of a process as assigned by the spark
The timestamp when a job ended
The exit code of the job. 0 when successful, 1 when failed
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "job_id": "32616745843241984", "arguments": "runDerive.sh -d person", "start_time": "", "process_id": 13112, "end_time": "", "exit_code": 0, "metrics": { "record_count_derived": 100, "record_count_no_value": 0, "record_count_no_buckets": 0 } }
Perform asynchronous processing of the export linkage rules job
Requires the application role of 'MatchingManager'.
POST /mdm/v1/jobs/export_linkage_rules
Request
Query Parameters
The cloud resource name of the service.
Wait for job finish, default is false
Default:
false
The wrapper object for export manual rules request body
The type of the output rules, ie. ALL, VALID, INVALID
The data type identifier of record, ie. person, organization
The storage bucket for the output file, ie. bucket-27200-lwx4cfvcue
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
The file format used when exporting the output file, ie. json, csv
The storage endpoint for the output file, ie. https://s3.us-east.cloud-object-storage.appdomain.cloud
The access key for your storage, ie. cf4965cebe074720a4929759f57e1214
The type of file compression used when exporting the output file. Required when a partition type of 'executor_count' is specified, ie. null, zip, tar, tgz
The secret key to access your storage
The folder name used when exporting the output file, ie. rulesData. The export file will be named as rulesData_<entity_type>.
The type of partitioning used when exporting the results. ie. null, executor_count
Response
Response object for asynchronous processing of a bulk job
The timestamp when a job was started
The unique identifier of a job as assigned by the system
Arguments passed for executing the job
The identifier of a process as assigned by the spark
The timestamp when a job ended
The exit code of the job. 0 when successful, 1 when failed
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "job_id": "", "exit_code": 0, "arguments": "runExportRules.sh -d person -m person_entity", "start_time": "", "end_time": "", "process_id": 0 }
Request
Query Parameters
The cloud resource name of the service.
Job identifier after job been submitted
Example:
95364
Response
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "job_id": "32616217173608448", "arguments": "runMatch.sh -d person -m person_entity", "start_time": "2020-10-09T16:00:48.616Z", "process_id": 16158, "end_time": "2020-10-09T16:00:54.800Z", "exit_code": 1, "metrics": {} }
Perform asynchronous processing of the export job
Requires the application role of 'MatchingManager'.
POST /mdm/v1/jobs/export
Request
Query Parameters
The cloud resource name of the service.
Output directory
Example:
/entitiesThe data type identifier of source records, ie. person, organization, contract
Example:
personWait for job finish, default is false
Default:
falseThe data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityIBM COS end point
Example:
http://s3.us-south.cloud-object-storage.appdomain.cloudIBM COS bucket
Example:
mdmexportIBM COS access key
Example:
b33037e4e8954207a434cc032c1139d1 #pragma: allowlist secretIBM COS secret key
Example:
<hex string>
Response
Response object for asynchronous processing of a bulk job
The timestamp when a job was started
The unique identifier of a job as assigned by the system
Arguments passed for executing the job
The identifier of a process as assigned by the spark
The timestamp when a job ended
The exit code of the job. 0 when successful, 1 when failed
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "job_id": "", "exit_code": 0, "arguments": "runExport.sh -d person -m person_entity", "start_time": "", "end_time": "", "process_id": 0 }
Response
Status Code
The request has been successfully finished.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
No Sample Response
Perform asynchronous processing of the match job
Requires the application role of 'MatchingManager'.
POST /mdm/v1/jobs/match
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of source records, ie. person, organization, contract
Example:
personWait for job finish, default is false
Default:
falseForce to re-match all records, default is false
Default:
falseDeduplicate pairs, default is false
Default:
falseThe data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entitycollect analytics report, default is false
Default:
falseReplicate entity id, default is false
Default:
falseDo checkpoint
Default:
false
Response
Response object for asynchronous processing of a bulk job
The timestamp when a job was started
The unique identifier of a job as assigned by the system
Arguments passed for executing the job
The identifier of a process as assigned by the spark
The timestamp when a job ended
The exit code of the job. 0 when successful, 1 when failed
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "job_id": "32616805717798912", "arguments": "runMatch.sh -d person -m person_entity", "start_time": "", "process_id": 12941, "end_time": "", "exit_code": 0, "metrics": { "person_entity": { "bucket_count_compared": 1125, "bucket_count_large": 0, "bucket_count_singleton": 1776, "record_count_updated": 100, "record_count_no_buckets": 0, "record_count_low_score": 0, "record_count_candidate": 100, "pair_comparison_count": 5614 } } }
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of source records, ie. person, organization, contract
Example:
personWait for job finish, default is false
Default:
falseThe data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityComma separated analytics report identifier to be collected, ie. entity_summary, bucket_summary
Default:
entity_summary,bucket_summaryExample:
entity_summary,bucket_summarycollect analytics report, default is false
Default:
false
Response
Response object for asynchronous processing of a bulk job
The timestamp when a job was started
The unique identifier of a job as assigned by the system
Arguments passed for executing the job
The identifier of a process as assigned by the spark
The timestamp when a job ended
The exit code of the job. 0 when successful, 1 when failed
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "job_id": "32629164350425088", "arguments": "runReport.sh -l entity_summary,bucket_summary -d person", "start_time": "", "process_id": 21901, "end_time": "", "exit_code": 0, "metrics": { "bucket_summary": { "bucket_dist": {}, "top_buckets": {} }, "entity_summary": { "person_entity": { "entity_dist": {}, "top_entities": {} } } } }
Initiate generate pairs job
- This service initiates asynchronous processing of the generate pairs job. Requires the application role of 'MatchingManager'.
POST /mdm/v1/jobs/generate_pairs
Request
Query Parameters
The cloud resource name of the service.
The data type identifier of entity, ie. person_entity, organization_entity, household_entity
Example:
person_entityThe data type identifier of source records, ie. person, organization, contract
Example:
personWait for job finish, default is false
Default:
falseThe maximum number of pairs to return
Default:
500Example:
500
Response
Response object for asynchronous processing of a bulk job
The timestamp when a job was started
The unique identifier of a job as assigned by the system
Arguments passed for executing the job
The identifier of a process as assigned by the spark
The timestamp when a job ended
The exit code of the job. 0 when successful, 1 when failed
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "job_id": "44465189566855168", "arguments": "runPairScore.sh -d person -m person_entity", "start_time": "2021-02-17T10:55:09.264Z", "process_id": 1550, "end_time": "2021-02-17T10:55:22.487Z", "exit_code": 0, "metrics": { "total_pairs": 118, "bucket_count_compared": 1125, "bucket_count_large": 0, "bucket_count_singleton": 1776, "record_count_updated": 0, "record_count_deleted": 0, "record_count_no_buckets": 0, "record_count_low_score": 0, "record_count_candidate": 100, "pair_comparison_count": 5614, "pair_matched_count": 5101 } }
Request
Query Parameters
The cloud resource name of the service.
Record type to be matched
Example:
personWait for job finish, default is false
Default:
falseEntity type to be matched, matchs all if missing
Example:
person_entity
Response
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Request
Query Parameters
The cloud resource name of the service.
Job identifier after job been submitted
Example:
95364
Response
Status Code
Success
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
No Sample Response
Request
Query Parameters
The cloud resource name of the service.
Job identifier after job been submitted
Example:
95364it is relative filepath for a particular job result
Example:
person.json
Response
Status Code
The request has been successfully finished.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
No Sample Response
Request
Query Parameters
The cloud resource name of the service.
a target of the health check, ie. es, fdb, rabbitmq, neo4j, all
Default:
all
Response
Response object for get matching health
Severity of matching health.
Additional details of the health status.
Status of matching health.
Status Code
The matching service is healthy on the specified target.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Retrieve record types of all the matching algorithms
- This service retrieves the record types of all the matching algorithms present.
- A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
GET /mdm/v1/algorithms
Response
Response wrapper object for all algorithm names
Collection of algorithm names
Status Code
The algorithms' record types has been successfully retrieved.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "algorithm_names": [ "organization", "person" ] }
Retrieve the matching algorithm
- This service retrieves the matching algorithm for a given record type.
- A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
GET /mdm/v1/algorithms/{record_type}Request
Path Parameters
The data type identifier of source records, ie. person, organization, contract
Query Parameters
The cloud resource name of the service.
response will return the default template algorithm when set to true
Default:
false
Response
The matching algorithm for a given record type (i.e. person)
Collection of standardizer definitions
- standardizers
A single standardizer definition
Asymmetric encryption configuration
Collection of entity type definitions
- entity_types
A single entity type definition
The request language and location (i.e. enUS)
Bit length for bucket group.The default length is 4
Status Code
The algorithm has been successfully retrieved.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "locale": "en_us", "encryption": {}, "standardizers": {}, "entity_types": {} }
Overwrite the matching algorithm
- This service completely overwrites the matching algorithm for a given record type.
- A matching algorithm defines how two records of a given type are compared.
- A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
PUT /mdm/v1/algorithms/{record_type}Request
Path Parameters
The data type identifier of source records, ie. person, organization, contract
Query Parameters
The cloud resource name of the service.
The matching algorithm for a given record type (i.e. person)
Collection of standardizer definitions
- standardizers
A single standardizer definition
Asymmetric encryption configuration
Collection of entity type definitions
- entity_types
A single entity type definition
The request language and location (i.e. enUS)
Bit length for bucket group.The default length is 4
Response
Response wrapper object for overwriting matching algorithm
Current state of flow according to its state machine
System generated flow identifier
The matching algorithm for a given record type (i.e. person)
Status Code
The algorithm has been successfully modified.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "flow_state": "published", "flow_id": "41017488", "algorithm": {} }
generate matching algorithm
- This service customizes the matching algorithm for a given record type.
- A matching algorithm defines how two records of a given type are compared.
- A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
POST /mdm/v1/algorithms/{record_type}Request
Path Parameters
The data type identifier of source records, ie. person, organization, contract
Query Parameters
The cloud resource name of the service.
The matching algorithm for a given record type (i.e. person)
A single read-only entity type
- any property
Collection of user defined attribute types. The attribute type key must be lower snake case (i.e. address)
The threshold to control the self score difference between records within same entity
A single criteria using a collection of rules for filtering out record(s).The record filter key must be lower snake case (i.e. record_filter)
The minimum matching score between two records for clerical review
Possible values: 0 ≤ value ≤ 1
The minimum matching score between two records to automatically link them together. The range is from 0 to 1
Possible values: 0 ≤ value ≤ 1
Collection of source across source thresholds
- source_level_thresholds
Default thresholds and a collection of thresholds of each source pair
Response
Response wrapper object for overwriting matching algorithm
Current state of flow according to its state machine
System generated flow identifier
The matching algorithm for a given record type (i.e. person)
Status Code
The algorithm has been successfully modified.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "flow_state": "published", "flow_id": "41017488", "algorithm": {} }
Partially modify matching algorithm
- This service partially modifies the matching algorithm for a given record type.
- A matching algorithm defines how two records of a given type are compared.
- A matching algorithm contains the matching metadata for a given record type and is comprised of standardization, bucket generation and comparison sections.
PATCH /mdm/v1/algorithms/{record_type}Request
Path Parameters
The data type identifier of source records, ie. person, organization, contract
Query Parameters
The cloud resource name of the service.
The matching algorithm for a given record type (i.e. person)
Collection of standardizer definitions
- standardizers
A single standardizer definition
Asymmetric encryption configuration
Collection of entity type definitions
- entity_types
A single entity type definition
The request language and location (i.e. enUS)
Bit length for bucket group.The default length is 4
Response
Response wrapper object for overwriting matching algorithm
Current state of flow according to its state machine
System generated flow identifier
The matching algorithm for a given record type (i.e. person)
Status Code
The algorithm has been successfully modified.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "flow_state": "published", "flow_id": "135208", "algorithm": {} }
Retrieve details of comparison parameters
- This service retrieves the comparison parameters for a given specification name.
- Comparison parameters are maintained in a json document and is used for comparing attributes within an algorithm.
GET /mdm/v1/compare_spec_resources/{resource_name}Request
Path Parameters
The unique identifier for the comparison parameters
Query Parameters
The cloud resource name of the service.
Response
A single comparison resource used to customize comparison logic of a matching algorithm
Collection of user defined comparison feature categories. The feature category key must be lower snake case
- feature_categories
A single feature category definition
Collection of feature coefficients used for distance measurement. The feature coefficient key must be lower snake case (i.e. name_similar90, name_exact)
- feature_coefficients
The distance factor for each occurence of typographical error. The value must be between 0 to 1
The indicator of using similarity edit distance. The default value is false.
An existing map resource name for lookalike characters
The indicator of using the raw edit distance value instead of the weighted one. The default value is false.
The max distance for geo compare should consider.
The distance factor for each occurence of lookalike characters (i.e. 8 vs B, 0 vs O). The value must be between 0 to 1
Status Code
The resources have been successfully retrieved.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "typo_distance": 0.25, "similar_characters_distance": 0.5, "similar_characters_map_resource": "person_map_character_similar_character", "feature_categories": { "id": { "features": [ "similarity" ], "fields": [ "email_local_part" ] }, "domain": { "features": [ "similarity" ], "fields": [ "email_domain" ] } }, "feature_coefficients": { "id_similarity": 0.9, "domain_similarity": 0.1 } }
Overwrite the comparison parameters
- This service completely overwrites the comparison parameters for a given specification name.
- Comparison parameters are maintained in a json document and is used for comparing attributes within an algorithm.
PUT /mdm/v1/compare_spec_resources/{resource_name}Request
Path Parameters
The unique identifier for the comparison parameters
Query Parameters
The cloud resource name of the service.
A single comparison resource used to customize comparison logic of a matching algorithm
Collection of user defined comparison feature categories. The feature category key must be lower snake case
- feature_categories
A single feature category definition
Collection of feature coefficients used for distance measurement. The feature coefficient key must be lower snake case (i.e. name_similar90, name_exact)
- feature_coefficients
The distance factor for each occurence of typographical error. The value must be between 0 to 1
The indicator of using similarity edit distance. The default value is false.
An existing map resource name for lookalike characters
The indicator of using the raw edit distance value instead of the weighted one. The default value is false.
The max distance for geo compare should consider.
The distance factor for each occurence of lookalike characters (i.e. 8 vs B, 0 vs O). The value must be between 0 to 1
Response
Response wrapper object for overwriting comparison resource
Current state of flow according to its state machine
A single comparison resource used to customize comparison logic of a matching algorithm
System generated flow identifier
Status Code
The resources have been successfully modified.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "flow_state": "published", "compare_spec_resources": {} }
Retrieve a summary of all comparison parameters
- This service retrieves the list of specification names for the existing comparison parameters.
GET /mdm/v1/compare_spec_resources
Response
Response wrapper object for all comparison resource names
Collection of comparison resource names
Status Code
The resources have been successfully retrieved.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "compare_spec_resource_names": [ "person_compare_spec_email", "org_compare_spec_identifier", "person_compare_spec_non_phone", "org_compare_spec_phone", "org_compare_spec_name", "persongnm_compare_spec_name", "person_compare_spec_identifier", "person_compare_spec_date", "person_compare_spec_name", "org_compare_spec_address", "person_compare_spec_gender", "person_compare_spec_phone", "person_compare_spec_address" ] }
Retrieve details of equivalency criteria
- This service retrieves all existing equivalency criteria for a given resource name.
- A Map Resource is a json document containing a collection of equivalency criteria (e.g. BOB, ROB) for given tokens (e.g. ROBERT).
- A Map Resource may be used in standardization, bucket generation and comparison recipes within one more more algorithms.
GET /mdm/v1/map_resources/{resource_name}Request
Path Parameters
The unique identifier for the configuration for the equivalent words
Query Parameters
The cloud resource name of the service.
Response
A single map resource used for matching algorithm like for handling equivalent values. Map resource key must be lower snake case (i.e. nickname)
A single entry of mapping
- any property
Collection of applicable regular expressions
Collection of user defined values mapped to the key
User defined data type for the values in the category. One of: String, byte, short, int, long, float, double, char or boolean
User defined context category, when applicable (i.e. UNITEDSTATES)
The cardinality of map entry, when applicable
User defined key (i.e. Ron)
Status Code
The resources have been successfully retrieved.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The resources requested do not exist.
The request cannot be processed due to an unexpected system error.
{ "country": [ { "category": "", "key": "USA", "values": [ "UNITED STATES", "UNITED STATES OF AMERICA", "US" ], "regex": [] }, { "category": "", "key": "UK", "values": [ "GREAT BRITAIN", "UNITED KINGDOM" ], "regex": [] } ] }
Overwrite equivalency criteria
- This service completely overwrites equivalency criteria for a given resource name.
- A Map Resource is a json document containing a collection of equivalency criteria (e.g. BOB, ROB) for given tokens (e.g. ROBERT).
- A Map Resource may be used in standardization, bucket generation and comparison recipes within one more more algorithms.
PUT /mdm/v1/map_resources/{resource_name}Request
Path Parameters
The unique identifier for the configuration for the equivalent words
Query Parameters
The cloud resource name of the service.
A single map resource used for matching algorithm like for handling equivalent values. Map resource key must be lower snake case (i.e. nickname)
A single entry of mapping
- any property
Collection of applicable regular expressions
Collection of user defined values mapped to the key
User defined data type for the values in the category. One of: String, byte, short, int, long, float, double, char or boolean
User defined context category, when applicable (i.e. UNITEDSTATES)
The cardinality of map entry, when applicable
User defined key (i.e. Ron)
Response
Response wrapper object for overwriting map resource
Current state of flow according to its state machine
System generated flow identifier
Map resource detail
- map_resources
A single entry of mapping
Status Code
The resources have been successfully modified.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "flow_state": "published", "flow_id": "172056", "map_resources": {} }
Retrieve a summary of all equivalency criteria
- This service retrieves the list of resource names of all existing equivalency criteria.
- A Map Resource is a json document containing a collection of equivalency criteria (e.g. BOB, ROB) for given tokens (e.g. ROBERT).
- A Map Resource may be used in standardization, bucket generation and comparison recipes within one more more algorithms.
GET /mdm/v1/map_resources
Response
Response wrapper object for all map resource names
Collection of map resource names
Status Code
The resources have been successfully retrieved.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "map_resource_names": [ "person_map_address_address_line_equivalents", "person_map_address_country_equivalents", "org_map_address_province_equivalents", "org_map_character_phone", "person_map_address_tokens_city", "org_map_address_province_state", "person_map_address_tokens_latitude", "org_map_address_sub_division_equivalents", "person_map_address_tokens_province", "person_map_address_tokens_street_number_name_direction_type", "org_map_address_tokens_longtitude" ] }
Retrieve a summary of all anonymous words
- This service retrieves a summary of resource names for all anonymous words.
- A Set Resource is a json document that generally contains grouped list of values of interest.
- A Set Resource may be used in one or more matching algorithms to filter out the anonymous words in the input fields from further processing.
GET /mdm/v1/set_resources
Response
Response object wrapper for all set resource names
Collection of set resource names
Status Code
The resources have been successfully retrieved.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "set_resource_names": [ "org_set_phone_anon_phone", "person_set_address_postal_code", "person_set_identifier_corp_taxid", "person_set_character_date", "org_set_character_date", "person_set_phone_anon_phone", "org_set_identifier_anonymous", "org_set_name_bkt_anon", "person_set_identifier_anonymous", "person_set_identifier_duns_num", "person_set_name_digits", "person_set_name_acname", "person_set_character_cstop_pxnm" ] }
Retrieve details of anonymous words
- This service retrieves the details of all anonymous words for a given resource name.
- A Set Resource is a json document that generally contains grouped list of values of interest.
- A Set Resource may be used in one or more matching algorithms to filter out the anonymous words in the input fields from further processing.
GET /mdm/v1/set_resources/{resource_name}Request
Path Parameters
he unique identifier for the configuration for the anonymous set of words
Query Parameters
The cloud resource name of the service.
Response
A single set resource used for matching algorithm like for handling anonymous values. Set resource key must be lower snake case (i.e. anonymous)
A single set resource entry
- any property
Collection of applicable regular expressions
Collection of user defined values
User defined data type for the values in the category. One of: String, byte, short, int, long, float, double, char or boolean
User defined context category, when applicable
Status Code
The resources have been successfully retrieved.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "date": { "values": [ "-" ], "regex": [] } }
Overwrite anonymous words
- This service completely overwrites the anonymous words for a given resource name.
- A Set Resource is a json document that generally contains grouped list of values of interest.
- A Set Resource may be used in one or more matching algorithms to filter out the anonymous words in the input fields from further processing.
PUT /mdm/v1/set_resources/{resource_name}Request
Path Parameters
he unique identifier for the configuration for the anonymous set of words
Query Parameters
The cloud resource name of the service.
A single set resource used for matching algorithm like for handling anonymous values. Set resource key must be lower snake case (i.e. anonymous)
A single set resource entry
- any property
Collection of applicable regular expressions
Collection of user defined values
User defined data type for the values in the category. One of: String, byte, short, int, long, float, double, char or boolean
User defined context category, when applicable
Response
Response wrapper object for overwriting set resource
Current state of flow according to its state machine
System generated flow identifier
- set_resources
A single set resource entry
Status Code
The resources have been successfully modified.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "flow_state": "published", "flow_id": "172056", "set_resources": { "date": { "regex": [], "values": [ "-" ] } } }
Retrieve the survivorship composite rules
- Retrieve the survivorship composite rules applicable to entity types, as defined by matching algorithms
- The ability to construct survived "picture" of the linked records relies on Composite Rule definition.
- Composite Rule is a json document that contains survivorship criteria at global level or within a specific scope.
GET /mdm/v1/composite_rules
Response
The wrapper object of composite rules
Collection of composite rule definitions
The request language and location (i.e. enUS)
Status Code
The composite rules have been successfully modified.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "locale": "en_us", "rules": { "global": { "choices": [ "mca", "mfa" ], "sources": [] } } }
Overwrite the survivorship composite rules
- Overwrite the survivorship composite rules applicable to entity types, as defined by matching algorithm
- The ability to construct survived "picture" of the linked records relies on Composite Rule definition.
- Composite Rule is a json document that contains survivorship criteria at global level or within a specific scope.
PUT /mdm/v1/composite_rules
Request
The wrapper object of composite rules
Collection of composite rule definitions
The request language and location (i.e. enUS)
Response
Response wrapper object for overwriting composite rules
Current state of flow according to its state machine
System generated flow identifier
The wrapper object of composite rules
Status Code
The composite rules have been successfully modified.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "flow_state": "published", "flow_id": "172056", "composite_rules": {} }
Batch associate access tokens to a role
- This service associate or unassoicate access token to the given role in batch mode.
POST /mdm/v1/data_entitlements/roles/{id}/access_tokens/batchRequest
Path Parameters
id of the role
Query Parameters
The cloud resource name of the service.
Array of token IDs to add
Array of token IDs to remove
Response
Array of token IDs to remove
Array of token IDs to add
Status Code
The access tokens have been successfully associated or unassociated to a role.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Get all access tokens by a role
- This service gets all access tokens for a given role.
GET /mdm/v1/data_entitlements/roles/{id}/access_tokensRequest
Path Parameters
id of the role
Query Parameters
The cloud resource name of the service.
The number of roles to skip over.
Default:
0The number of roles to be returned. The maximum limit is 1000.
Possible values: value ≤ 1000
Default:
10
Response
Status Code
The access tokens associated with the role has been successfully retrieved.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Get data entitlement role
- This service gets data entitlement role.
GET /mdm/v1/data_entitlements/roles/{id}Response
Human-readable name
User who created the role
User who last updated the role
Optional description
Unique identifier for the role
Timestamp when the role was created
Timestamp when the role was last updated
Status Code
The role has been successfully retrieved.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Delete data entitlement role
- This service deletes a data entitlement role.
DELETE /mdm/v1/data_entitlements/roles/{id}Response
Status Code
The role has been successfully deleted.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Get all data entitlement roles
- This service gets all data entitlement roles.
GET /mdm/v1/data_entitlements/roles
Request
Query Parameters
The cloud resource name of the service.
The number of roles to skip over.
Default:
0The number of roles to be returned. The maximum limit is 1000.
Possible values: value ≤ 1000
Default:
10The Flag of including access tokens in response.
Default:
falseThe Flag of including data entitlements in response.
Default:
false
Response
Status Code
The roles have been successfully retrieved.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Request
Path Parameters
id of data entitlement
Query Parameters
The cloud resource name of the service.
Response
data entitlement for user roles
a role id associated with this entitlement
List of permissions associated with the role id
Display name of the data entitlement
Current status of the data entitlement
User who created the entitlement
User who last updated the entitlement
Detailed description of the data entitlement
Unique identifier for the data entitlement
Timestamp when the entitlement was created
Timestamp when the entitlement was last updated
Status Code
The data entitlement has been successfully retrieved.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Replace data entitlements
- This service replaces data entitlements.
PUT /mdm/v1/data_entitlements/{id}Request
Path Parameters
id of data entitlement
Query Parameters
The cloud resource name of the service.
data entitlement for user roles
a role id associated with this entitlement
List of permissions associated with the role id
Display name of the data entitlement
Current status of the data entitlement
User who created the entitlement
User who last updated the entitlement
Detailed description of the data entitlement
Timestamp when the entitlement was created
Timestamp when the entitlement was last updated
Response
data entitlement for user roles
a role id associated with this entitlement
List of permissions associated with the role id
Display name of the data entitlement
Current status of the data entitlement
User who created the entitlement
User who last updated the entitlement
Detailed description of the data entitlement
Timestamp when the entitlement was created
Timestamp when the entitlement was last updated
Status Code
The data entitlement has been successfully updated.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Delete data entitlements
- This service deletes data entitlements.
DELETE /mdm/v1/data_entitlements/{id}Request
Path Parameters
id of data entitlement
Query Parameters
The cloud resource name of the service.
Response
Status Code
The data entitlement has been successfully deleted.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Request
Query Parameters
The cloud resource name of the service.
A comma-separated role id list.
A filter of status, either active or inactive.
The number of tokens to skip over.
Default:
0The number of tokens to be returned. The maximum limit is 1000.
Possible values: value ≤ 1000
Default:
10
Response
data entitlement for user roles
Status Code
The data entitlements have been successfully retrieved.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Request
data entitlement for user roles
a role id associated with this entitlement
List of permissions associated with the role id
Display name of the data entitlement
Current status of the data entitlement
User who created the entitlement
User who last updated the entitlement
Detailed description of the data entitlement
Unique identifier for the data entitlement
Timestamp when the entitlement was created
Timestamp when the entitlement was last updated
Response
data entitlement for user roles
a role id associated with this entitlement
List of permissions associated with the role id
Display name of the data entitlement
Current status of the data entitlement
User who created the entitlement
User who last updated the entitlement
Detailed description of the data entitlement
Unique identifier for the data entitlement
Timestamp when the entitlement was created
Timestamp when the entitlement was last updated
Status Code
The data entitlement has been successfully created.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Get all data entitlement access tokens for current user
- This service gets all data entitlement access tokens for current user.
GET /mdm/v1/data_entitlements/access_tokens/scope/current_user
Response
Status Code
The access tokens have been successfully retrieved.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "last": { "href": "https://model:9443/null/mdm/v1/data_entitlements/access_tokens?offset=0&limit=10" }, "offset": 0, "total_count": 2, "limit": 10, "access_tokens": [ { "created_user": "admin", "issued_to": "vip banking", "last_updated_user": "admin", "name": "vip banking admin", "description": "vip banking admin token", "id": "100", "created_date": 1760971866592, "type": "global", "last_updated_date": 1760971866592 }, { "created_user": "admin", "last_updated_user": "admin", "name": "vip banking users", "description": "vip banking regular users", "id": "2", "created_date": 1760830258924, "type": "object", "last_updated_date": 1760972090436 } ], "first": { "href": "https://model:9443/null/mdm/v1/data_entitlements/access_tokens?offset=0&limit=10" } }
Get data entitlement access token
- This service gets data entitlement access token.
GET /mdm/v1/data_entitlements/access_tokens/{id}Response
Human-readable name
type of the token. Users with global token can access all objects. Users with object token can only access objects with matched token
User who created the feature
User who last updated the feature
Optional description
Unique identifier for the feature
Timestamp when the feature was created
Timestamp when the feature was last updated
Status Code
The access token has been successfully retrieved.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "created_user": "admin", "issued_to": "vip banking", "last_updated_user": "admin", "name": "vip banking admin", "description": "vip banking admin token", "id": "100", "created_date": 1760971866592, "type": "global", "last_updated_date": 1760971866592 }
Delete data entitlement access token
- This service deletes a data entitlement access token.
DELETE /mdm/v1/data_entitlements/access_tokens/{id}Response
Status Code
The access token has been successfully deleted.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Update data entitlement access token
- This service updates data entitlement access token.
PATCH /mdm/v1/data_entitlements/access_tokens/{id}Request
Path Parameters
id of access token
Query Parameters
The cloud resource name of the service.
{
"name": "vip banking admin",
"type": "global",
"description": "vip banking admin token",
"issued_to": "vip banking"
}User who created the feature
User who last updated the feature
Human-readable name
Optional description
Timestamp when the feature was created
type of the token. Users with global token can access all objects. Users with object token can only access objects with matched token
Timestamp when the feature was last updated
Response
Human-readable name
type of the token. Users with global token can access all objects. Users with object token can only access objects with matched token
User who created the feature
User who last updated the feature
Optional description
Unique identifier for the feature
Timestamp when the feature was created
Timestamp when the feature was last updated
Status Code
The access token has been successfully updated.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "created_user": "admin", "issued_to": "vip banking", "last_updated_user": "admin", "name": "vip banking admin", "description": "vip banking admin token", "id": "100", "created_date": 1760971866592, "type": "global", "last_updated_date": 1760971866592 }
Get all data entitlement access tokens
- This service gets all data entitlement access tokens.
GET /mdm/v1/data_entitlements/access_tokens
Request
Query Parameters
The cloud resource name of the service.
The list of role ids.
Include associated roles for each token.
Default:
falseThe number of tokens to skip over.
Default:
0The number of tokens to be returned. The maximum limit is 1000.
Possible values: value ≤ 1000
Default:
10
Response
Status Code
The access tokens have been successfully retrieved.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "last": { "href": "https://model:9443/null/mdm/v1/data_entitlements/access_tokens?offset=0&limit=10" }, "offset": 0, "total_count": 2, "limit": 10, "access_tokens": [ { "created_user": "admin", "issued_to": "vip banking", "last_updated_user": "admin", "name": "vip banking admin", "description": "vip banking admin token", "id": "100", "created_date": 1760971866592, "type": "global", "last_updated_date": 1760971866592 }, { "created_user": "admin", "last_updated_user": "admin", "name": "vip banking users", "description": "vip banking regular users", "id": "2", "created_date": 1760830258924, "type": "object", "last_updated_date": 1760972090436 } ], "first": { "href": "https://model:9443/null/mdm/v1/data_entitlements/access_tokens?offset=0&limit=10" } }
Create data entitlement access tokens
- This service creates data entitlement access tokens.
POST /mdm/v1/data_entitlements/access_tokens
Request
{
"id": "100",
"name": "vip banking admin",
"type": "global",
"description": "vip banking admin token",
"issued_to": "vip banking"
}Human-readable name
type of the token. Users with global token can access all objects. Users with object token can only access objects with matched token
User who created the feature
User who last updated the feature
Optional description
Unique identifier for the feature
Timestamp when the feature was created
Timestamp when the feature was last updated
Response
Human-readable name
type of the token. Users with global token can access all objects. Users with object token can only access objects with matched token
User who created the feature
User who last updated the feature
Optional description
Unique identifier for the feature
Timestamp when the feature was created
Timestamp when the feature was last updated
Status Code
The access token has been successfully created.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "created_user": "admin", "issued_to": "vip banking", "last_updated_user": "admin", "name": "vip banking admin", "description": "vip banking admin token", "id": "100", "created_date": 1760971866592, "type": "global", "last_updated_date": 1760971866592 }
Retrieve the data model
- This service retrieves the data model for record types and relationship types.
- Data model defines the fields and attributes associated to one or more record types (e.g. person, organization) and one or more relationship types (e.g. sibling, employment).
GET /mdm/v1/data_model
Request
Query Parameters
The cloud resource name of the service.
The identifier for a given state of the data model, ie. current, draft
Default:
current
Response
Collection of record and relationship types definition
Collection of common fields applicable to various types in data model
Collection of user defined attribute types. The attribute type key must be lower snake case (i.e. address)
- attribute_types
A single user defined attribute type
Collection of relationship types. The relationship type key must be lower snake case (i.e. employment)
- relationship_types
A single relationship type
The request language and location (i.e. enUS)
Collection of user defined record types. The record type key must be lower snake case (i.e. person, organization)
- record_types
A single user defined record type
Collection of hierarchy types. The hierarchy type key must be lower snake case (i.e. legal_hierarchy)
- hierarchy_types
A single user defined hierarchy type
Collection of node types. The node type key must be lower snake case (i.e. hierarchy_node)
- node_types
A single user defined node type
Collection of group types. The group type key must be lower snake case (i.e. baseball_club)
- group_types
A single user defined group type
Status Code
The data model has been successfully retrieved.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "locale": "en_us", "system_properties": {}, "record_types": {}, "attribute_types": {}, "relationship_types": {} }
Overwrite the data model
- This service completely overwrites the data model for record types and relationship types.
- Data model defines the fields and attributes associated to one or more record types (e.g. person, organization) and one or more relationship types (e.g. sibling, employment).
PUT /mdm/v1/data_model
Request
Collection of record and relationship types definition
Collection of common fields applicable to various types in data model
Collection of user defined attribute types. The attribute type key must be lower snake case (i.e. address)
- attribute_types
A single user defined attribute type
Collection of relationship types. The relationship type key must be lower snake case (i.e. employment)
- relationship_types
A single relationship type
The request language and location (i.e. enUS)
Collection of user defined record types. The record type key must be lower snake case (i.e. person, organization)
- record_types
A single user defined record type
Collection of hierarchy types. The hierarchy type key must be lower snake case (i.e. legal_hierarchy)
- hierarchy_types
A single user defined hierarchy type
Collection of node types. The node type key must be lower snake case (i.e. hierarchy_node)
- node_types
A single user defined node type
Collection of group types. The group type key must be lower snake case (i.e. baseball_club)
- group_types
A single user defined group type
Response
Response wrapper object for overwritting data model
Current state of flow according to its state machine
System generated flow identifier
Collection of record and relationship types definition
Status Code
The data model has been successfully modified.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "flow_state": "draft", "flow_id": "41017488", "data_model": { "locale": "en_us", "system_properties": {}, "record_types": {}, "attribute_types": {}, "relationship_types": {} } }
Partially modify data model
- This service partially modifies the data model for record types and relationship types.
- Data model defines the fields and attributes associated to one or more record types (e.g. person, organization) and one or more relationship types (e.g. sibling, employment).
PATCH /mdm/v1/data_model
Request
Collection of record and relationship types definition
Collection of common fields applicable to various types in data model
Collection of user defined attribute types. The attribute type key must be lower snake case (i.e. address)
- attribute_types
A single user defined attribute type
Collection of relationship types. The relationship type key must be lower snake case (i.e. employment)
- relationship_types
A single relationship type
The request language and location (i.e. enUS)
Collection of user defined record types. The record type key must be lower snake case (i.e. person, organization)
- record_types
A single user defined record type
Collection of hierarchy types. The hierarchy type key must be lower snake case (i.e. legal_hierarchy)
- hierarchy_types
A single user defined hierarchy type
Collection of node types. The node type key must be lower snake case (i.e. hierarchy_node)
- node_types
A single user defined node type
Collection of group types. The group type key must be lower snake case (i.e. baseball_club)
- group_types
A single user defined group type
Response
Response wrapper object for overwritting data model
Current state of flow according to its state machine
System generated flow identifier
Collection of record and relationship types definition
Status Code
The data model has been successfully modified.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "flow_state": "published", "flow_id": "135208", "data_model": {} }
Retrieve list of event subscription based on filters
- This service retrieves a list of event subscriptions based on filters.
GET /mdm/v1/event_subscription
Request
Query Parameters
The cloud resource name of the service.
The maximum number of elements to return in each page of results. The maximum limit is 50.
Possible values: value ≤ 50
Default:
10The number of elements to skip before returning a page of results.
Default:
0Type of the event, i.e. entity_change or record_change
Example:
entity_change
Response
Response wrapper object for retrieving event subscriptions
Collection of event subscriptions
Status Code
List of event subscriptions have been successfully retrieved.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "event_subscriptions": [ { "subscription_id": "1678466128043", "filter": [ "filter1", "filter2" ], "event_type": "entity_change", "created_user": "mdmadmin", "last_update_user": "mdmadmin", "stream_connection": { "stream_connection_properties": { "str3": "str1", "str1": "str1", "str2": "str1" }, "stream_type": "Kafka", "asset_scope": "Project", "topic": "test", "asset_id": "asset01", "container_id": "containerid01" }, "subscription_description": "Type of the event, i.e. entity_change or record_change", "subscription_name": "test_sub_01", "active": false, "created_date": 1678706808248, "last_update_date": 1678706808248 }, { "subscription_id": "1678466128056", "filter": [ "filter1", "filter2" ], "event_type": "notification", "created_user": "mdmadmin", "last_update_user": "mdmadmin", "stream_connection": { "stream_connection_properties": { "prop2": "value2", "prop1": "value1" }, "stream_type": "Pulsar", "asset_scope": "Catalog", "topic": "entityid", "asset_id": "asset02", "container_id": "containerid02" }, "subscription_description": "test_sub_02 description", "subscription_name": "test_sub_02", "active": false, "created_date": 1678706808399, "last_update_date": 1678706808399 } ] }
Create or Update Event Subscription
- This service performs the event subscription creation/update.
PUT /mdm/v1/event_subscription
Request
Request wrapper object for event subscription
Event Subscription type
Stream connection details
Event Subscription name
Event Subscription id
Event Subscription filters, need to filter subscription based on the passed filter.
Event Subscription created by user
Event Subscription last updated by user
Event Subscription description
Event Subscription active status
Event Subscription creation date
Event Subscription last update date
Response
Request wrapper object for event subscription
Event Subscription type
Stream connection details
Event Subscription name
Event Subscription id
Event Subscription filters, need to filter subscription based on the passed filter.
Event Subscription created by user
Event Subscription last updated by user
Event Subscription description
Event Subscription active status
Event Subscription creation date
Event Subscription last update date
Status Code
Event subscription process is successful.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "subscription_id": "11223344", "filter": "["11223344", "11223345"]", "event_type": "entity_change", "created_user": "mdmadmin", "last_update_user": "mdmadmin", "subscription_description": "Type of the event, i.e. entity_change or record_change", "stream_connection": "{ "description": "Stream connection details", "asset_scope": "Project", "container_id": "Container01", "asset_id": "Project", "topic": "test", "stream_type": "Kafka", "stream_connection_properties": "{ "key1": "value1", "key2": "value2" "key3": "value3" "}" "}" "subscription_name": "test_sub_01", "active": "false", "created_date": "1678706808248", "last_update_date": "1678706808248" }
Remove an existing Event subscription
- This service removes an existing Event subscription specified by the supplied subscription_id.
DELETE /mdm/v1/event_subscription/{subscription_id}Request
Path Parameters
The unique identifier of a subscription_id as assigned by the system
Query Parameters
The cloud resource name of the service.
Response
Status Code
The event subscription has been successfully removed.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{}
This service exports the model data to shared volume at the destination folder
Requires the application role of 'ModelManager'.
POST /mdm/v1/jobs/model_export
Request
Query Parameters
The cloud resource name of the service.
The output path under for the exported data
Default:
/shared-volume/modelExample:
/shared-volume/model
Response
Status Code
The request has been successfully finished.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
The request cannot be processed due to the server not supporting the required functionality
No Sample Response
Retrieve the active workflow information
- This service retrieves the active workflow information, if present, of a previously requested change to data model.
- An update to data model is only finalized when its corresponding workflow is approved by the authorized approvers.
- This capability is primarily built for internal approval processes.
GET /mdm/v1/flows
Response
Response wrapper object for retrieving active flow
Collection of active flows
Status Code
The flow status of an active workflow has been successfully retrieved
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "flows": [ { "flow_state": "draft", "flow_type": "data_model", "rejections": [], "flow_id": "327733440", "approvals": [], "active": true } ] }
Retrieve the latest workflow information
- This service retrieves the latest workflow information of a previously requested change to data model.
- An update to data model is only finalized when its corresponding workflow is approved by the authorized approvers.
- This capability is primarily built for internal approval processes.
GET /mdm/v1/flows/{flow_id}Request
Path Parameters
The unique identifier of a workflow as assigned by the system
Query Parameters
The cloud resource name of the service.
Response
Response wrapper object for retrieving a flow
Current state of flow according to its state machine
Type of flow. One of: data_model, algorithm, compare_spec_resources, composite_rules, map_resources or set_resources
Collection of authorized approvers that rejected the flow
System generated flow identifier
Collection of authorized approvers that approved the flow
True if the flow is active
Status Code
The flow status has been successfully retrieved
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "flow_state": "published", "flow_type": "data_model", "rejections": [], "flow_id": "192696", "approvals": [], "active": false }
Remove an existing workflow
- This service removes an existing workflow specified by the supplied flow_id.
- An update to data model is only finalized when its corresponding workflow is approved by the authorized approvers.
- This capability is primarily built for internal approval processes.
DELETE /mdm/v1/flows/{flow_id}Approve or Reject an active workflow
- This service is used to approve or reject an active workflow specified by the supplied flow_id.
- An update to data model is only finalized when its corresponding workflow is approved by the authorized approvers.
- This capability is primarily built for internal approval processes.
PATCH /mdm/v1/flows/{flow_id}Request
Path Parameters
The unique identifier of a workflow as assigned by the system
Query Parameters
The cloud resource name of the service.
Request wrapper object for updating a flow
Authorized approver name who invokes the action
One of: approve or reject
Additional detail about the action (i.e. success)
Response
Response wrapper object for retrieving a flow
Current state of flow according to its state machine
Type of flow. One of: data_model, algorithm, compare_spec_resources, composite_rules, map_resources or set_resources
Collection of authorized approvers that rejected the flow
System generated flow identifier
Collection of authorized approvers that approved the flow
True if the flow is active
Status Code
The flow has been successfully modified.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "flow_state": "published", "flow_type": "data_model", "rejections": [], "flow_id": "192696", "approvals": [], "active": false }
Retrieve masked attributes for a user.
- This service retrieves the masked attributes for a user
GET /mdm/v1/masked_attributes
Request
Query Parameters
The cloud resource name of the service.
The type identifier for record_types or entity_types
Example:
record_typesThe data type identifier of source records, ie. person, organization, contract or entity, ie. person_entity, organization_entity, household_entity
Example:
person
Response
Response wrapper object for masked fields for a user
Collection of fully qualified name of a masked column
Status Code
The list of masked columns has been successfully retrieved.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "masked_columns": [ { "masked_type": "obfuscate", "masked_column": "drivers_licence.identification_number" }, { "masked_type": "substitute", "masked_column": "legal_name.last_nam" } ] }
Retrieve the governance metadata containing the connected data asset details.
- This service retrieves the connected data asset details for record types and entity types
GET /mdm/v1/governance_metadata
Response
Wrapper object for connected data asset for record types and entity types
Collection of applicable entity types
- entity_types
A single entity type
Collection of user defined record types
- record_types
A single user defined record type
Status Code
The connected data asset details has been successfully retrieved.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "entity_types": { "person_entity": { "asset_id": "723383939" } }, "record_types": { "person": { "asset_id": "1262727272" } } }
Retrieve the configured metadata
- This service retrieves the configured metadata for a provisioned instance of system.
- The onboarding process of a new subscriber to Master Data Management On Cloud depends on capturing and maintaining certain configured metadata for their provisioned instance.
- Instance Metadata is a json document that primarily contains the catalog and project information in Watson Knowledge Catalog and the details of Cloud Object Storage if provided by the user.
GET /mdm/v1/instance_metadata
Response
Wrapper object for instance metadata response
Plan type for a given IBM Master Data Management instance, dedicated or free
Collection of project objects as available in Watson Knowledge Catalog (WKC)
The workflow configuration id created in WKC workflow for a Match360 instance
Generate connected data asset indicator, true or false
Collection of workflow objects configured with current instnce
- workflows
Label for instance metadata
Endpoint of a cloud object storage
Data entitlement for user roles
Match360 modes of operation-> operational_cache, probabilistic_search or usual mode(when not present)
The cloud resource Name of cloud object storage
Bulkload Bucket credentials
The unique identifier of a connection to a Match360 instance
Governance enabled indicator, true or false
API key generated from service id
Stream connection details
Collection of catalog objects as available in Watson Knowledge Catalog (WKC)
The unique identifier of a project for the jobs
The workflow type id created in WKC workflow services
History enabled indicator, true or false
Status Code
The instance metadata has been successfully retrieved.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to resource not found.
The request cannot be processed due to an unexpected system error.
{ "label": "test instance", "catalogs": [ { "catalog_instance": "wkc instance", "catalog_id": "123_catalog" } ], "projects": [ { "project_id": "123_project", "project_name": "test project", "asset_id": "123_asset" } ], "job_project_id": "123", "workflow_configuration_id": "worflow-config-id", "workflow_type_id": "type-id" }
Overwrite the configured metadata
- This service overwrites the configured metadata for a provisioned instance of system.
- The onboarding process of a new subscriber to Master Data Management On Cloud depends on capturing and maintaining certain configured metadata for their provisioned instance.
- Instance Metadata is a json document that primarily contains the catalog and project information in Watson Knowledge Catalog and the details of Cloud Object Storage if provided by the user.
PUT /mdm/v1/instance_metadata
Request
Wrapper object for instance metadata
Collection of project objects as available in Watson Knowledge Catalog (WKC)
The workflow configuration id created in WKC workflow for a Match360 instance
Generate connected data asset indicator, true or false
Collection of workflow objects configured with current instnce
- workflows
Label for instance metadata
Endpoint of a cloud object storage
Data entitlement for user roles
Match360 modes of operation-> operational_cache, probabilistic_search or usual mode(when not present)
The cloud resource Name of cloud object storage
Bulkload Bucket credentials
The unique identifier of a connection to a Match360 instance
Governance enabled indicator, true or false
Generate API key from service id, true or false
Stream connection details
Collection of catalog objects as available in Watson Knowledge Catalog (WKC)
The unique identifier of a project for the jobs
The workflow type id created in WKC workflow services
History enabled indicator, true or false
Response
Wrapper object for instance metadata response
Plan type for a given IBM Master Data Management instance, dedicated or free
Collection of project objects as available in Watson Knowledge Catalog (WKC)
The workflow configuration id created in WKC workflow for a Match360 instance
Generate connected data asset indicator, true or false
Collection of workflow objects configured with current instnce
- workflows
Label for instance metadata
Endpoint of a cloud object storage
Data entitlement for user roles
Match360 modes of operation-> operational_cache, probabilistic_search or usual mode(when not present)
The cloud resource Name of cloud object storage
Bulkload Bucket credentials
The unique identifier of a connection to a Match360 instance
Governance enabled indicator, true or false
API key generated from service id
Stream connection details
Collection of catalog objects as available in Watson Knowledge Catalog (WKC)
The unique identifier of a project for the jobs
The workflow type id created in WKC workflow services
History enabled indicator, true or false
Status Code
The instance metadata has been successfully modified.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
{ "label": "test instance", "catalogs": [ { "catalog_instance": "wkc instance", "catalog_id": "123_catalog" } ], "projects": [ { "project_id": "123_project", "project_name": "test project", "asset_id": "123_asset" } ], "job_project_id": "123" }
Request
Query Parameters
The cloud resource name of the service.
a target of the health check, ie. fdb, rabbitmq
Default:
all
Response
Response object for get model health
Severity of model health.
Additional details of the health status.
Status of model health.
Status Code
The model service is healthy on the specified target.
The request cannot be processed due to authentication error.
The request cannot be processed due to insufficient permission error.
The request cannot be processed due to an unexpected system error.
No Sample Response
Configure workflow in WKC Workflow service
- This service performs the workflow configuration for Potential Matches in WKC Workflow services.
POST /mdm/v1/configure_workflow
Request
Query Parameters
The cloud resource name of the service.
To select one workflow template
Request for initiating workflow configuration
Name of workflow configuration to be created for this instance
A single workflow configuration to be created
Response
Response wrapper object for workflow configuration
Workflow configuration id created for this instance
Workflow type id created for this account
Status Code
Workflow service configuration is successful.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to an unexpected system error.
{ "workflow_configuration_id": "f37fed77-5d2a-4ca5-9914-7d5b3b4dcf62", "workflow_type_id": "d24cfe5e-35aa-4085-b688-24b2bd984e15" }
Get generic workflows per workflow type
- This service completely retrieves the workflow configuration for a given workflow type.
GET /mdm/v1/workflows_configuration/{workflow_type}Request
Path Parameters
The workflow confiuration type
Query Parameters
The cloud resource name of the service.
Response
A configuration object for a workflow for a given workflow type.
A boolean value that specifies whether tasks should be automatically created for this workflow.
An object that specifies the data types that the workflow is applicable to.
A description of the workflow configuration.
A generic object to have custom tags e.g, priority.
An integer value that specifies the maximum number of updates that can be accumulated for this workflow.
An object to specify the trigger operator for each record_type and entity_type.
Status Code
The workflow has been successfully retrieved.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to an unexpected system error.
{ "description": "", "applicable_data_types": { "record_types": [], "entity_types": [] }, "auto_create_tasks": true, "max_accumulated_updates": 50, "custom_tags": {}, "max_tasks": { "default": 300, "sources": { "sourceA": { "default": 100, "record_types": { "person": 50 }, "entity_types": { "household_entity": 100 } } } }, "trigger_operator": { "record_types": { "person": { "excluded_sources": [], "included_sources": [], "entity_types": { "person_entity": { "triggers": { "default": [ { "label": "Name and DOB", "recipe": { "pername_compare": 2, "date_compare": 3 } }, { "label": "SSN", "recipe": { "identification_compare": 1 } } ], "source_based": { "sourceA": [ { "label": "Name and Gender", "recipe": { "pername_compare": 2, "gender_compare": 1 } } ], "sourceB": [] } } }, "household_entity": {} } }, "organization": {} }, "entity_types": {}, "hierarchy_types": {} } }
Put generic workflows per workflow type
- This service completely overwrites the workflow configuration for a given workflow type.
PUT /mdm/v1/workflows_configuration/{workflow_type}Request
Path Parameters
The workflow confiuration type
Query Parameters
The cloud resource name of the service.
A configuration object for a workflow for a given workflow type.
A boolean value that specifies whether tasks should be automatically created for this workflow.
An object that specifies the data types that the workflow is applicable to.
A description of the workflow configuration.
A generic object to have custom tags e.g, priority.
An integer value that specifies the maximum number of updates that can be accumulated for this workflow.
An object to specify the trigger operator for each record_type and entity_type.
Response
A configuration object for a workflow for a given workflow type.
A boolean value that specifies whether tasks should be automatically created for this workflow.
An object that specifies the data types that the workflow is applicable to.
A description of the workflow configuration.
A generic object to have custom tags e.g, priority.
An integer value that specifies the maximum number of updates that can be accumulated for this workflow.
An object to specify the trigger operator for each record_type and entity_type.
Status Code
The workflow has been successfully modified.
The request cannot be processed due to user error.
The request cannot be processed due to authentication error.
The request cannot be processed due to an unexpected system error.
{ "description": "", "applicable_data_types": { "record_types": [], "entity_types": [] }, "auto_create_tasks": true, "max_accumulated_updates": 50, "custom_tags": {}, "max_tasks": { "default": 300, "sources": { "sourceA": { "default": 100, "record_types": { "person": 50 }, "entity_types": { "household_entity": 100 } } } }, "trigger_operator": { "record_types": { "person": { "excluded_sources": [], "included_sources": [], "entity_types": { "person_entity": { "triggers": { "default": [ { "label": "Name and DOB", "recipe": { "pername_compare": 2, "date_compare": 3 } }, { "label": "SSN", "recipe": { "identification_compare": 1 } } ], "source_based": { "sourceA": [ { "label": "Name and Gender", "recipe": { "pername_compare": 2, "gender_compare": 1 } } ], "sourceB": [] } } }, "household_entity": {} } }, "organization": {} }, "entity_types": {}, "hierarchy_types": {} } }
Cancel a running job run or remove job run from queue.
Requires the application role of 'JobWriter'.
POST /mdm/v1/job_runs/{job_run_id}/cancelRequest
Path Parameters
The id of the job run.
Query Parameters
The cloud resource name of the service.
Response
Status Code
The job run was cancelled successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting job run information. Job run not found.
An internal server error occurred.
No Sample Response
Request
Query Parameters
The cloud resource name of the service.
The name of the job.
The status of the job run.
The offset from the start of the list.
Default:
0The chunk size (default '50') of the requested sublist.
Default:
50
Response
Status Code
The job runs were retrieved successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem processing request. Status used for filter is invalid.
An internal server error occurred.
No Sample Response
Request
Example:
spark-sample-jobExample:
mdm-spark-job- input
- spark_configuration
- Examples:
{ "property1": "value1" }
Response
Example:
spark-sample-jobExample:
mdm-spark-jobExample:
RunningExample:
61d9479a-7d5c-41c6-8ac4-21637b1fe7ecExample:
61d9479a-7d5c-41c6-8ac4-21637b1fe7ecExample:
00:01:02Example:
1Example:
4Example:
1Example:
2048Example:
61d9479a-7d5c-41c6-8ac4-21637b1fe7ec- Examples:
{ "property1": "value1" }
Status Code
The job run was started successfully.
Problem processing request. Invalid or missing input.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
An internal server error occurred.
No Sample Response
Retrieve active jobs.
Retrieve active jobs from the active job tracker.
GET /mdm/v1/job_runs/active_job_list
Response
Possible values: [
APPLICATION,CONFIGURATION,CONFIGURATION_PROJECT,CONFIGURATION_DATA_MODEL,CONFIGURATION_MATCH_STATISTICS,CONFIGURATION_WKC_DATA_MODEL_MAP,CONFIGURATION_PAIR,PAIR_ANALYSIS,EXPORT,MIGRATION_EXPORT,JOB,JOB_MS,MODEL,INDEX_NAMES_MAP,REINDEX,TRAVERSAL_TEMPLATE,OBJECT_STORE_INSTANCE,OBJECT_STORE_BUCKET,BROKER_SERVICE_PLAN,BROKER_SERVICE_BINDING,BROKER_SERVICE_INSTANCES,BROKER_SERVICE_PROVIDER,BROKER_SERVICE_CATALOG,METERING_SERVICE_INSTANCES,METERING_WHITELISTED_USERS,MAPPING_PATTERN,MATCHING_JOB_STATUS_POLLING_METADATA,BULKLOAD_JOB_STATUS_POLLING_METADATA,BULKDELETE_JOB_STATUS_POLLING_METADATA,ACTIVE_JOB_RUN_TRACKER]
Status Code
The job run stats were retrieved successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem processing request. Status used for filter is invalid.
An internal server error occurred.
No Sample Response
Delete all Active Job Runs
Requires the application role of 'JobWriter'.
DELETE /mdm/v1/job_runs/delete_active_jobs
Response
Status Code
The Active Job run was deleted successfully cleaned
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting Active Job run run information. Active Job run not found.
An internal server error occurred.
No Sample Response
Fetch job run information.
Requires the application role of 'JobReader'.
GET /mdm/v1/job_runs/{job_run_id}Request
Path Parameters
The id of the job run.
Query Parameters
The cloud resource name of the service.
Response
Example:
spark-sample-jobExample:
mdm-spark-jobExample:
RunningExample:
61d9479a-7d5c-41c6-8ac4-21637b1fe7ecExample:
61d9479a-7d5c-41c6-8ac4-21637b1fe7ecExample:
00:01:02Example:
1Example:
4Example:
1Example:
2048Example:
61d9479a-7d5c-41c6-8ac4-21637b1fe7ec- Examples:
{ "property1": "value1" }
Status Code
The job run information was retrieved successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Job run not found.
An internal server error occurred.
No Sample Response
Update a job run information.
Requires the application role of 'Service'. Only the status can be updated using this endpoint.
PATCH /mdm/v1/job_runs/{job_run_id}Request
Path Parameters
The id of the job run.
Query Parameters
The cloud resource name of the service.
- Examples:
{ "property1": "value1" }
Response
Example:
spark-sample-jobExample:
mdm-spark-jobExample:
RunningExample:
61d9479a-7d5c-41c6-8ac4-21637b1fe7ecExample:
61d9479a-7d5c-41c6-8ac4-21637b1fe7ecExample:
00:01:02Example:
1Example:
4Example:
1Example:
2048Example:
61d9479a-7d5c-41c6-8ac4-21637b1fe7ec- Examples:
{ "property1": "value1" }
Status Code
The job run was updated successfully.
Problem processing request. Status used is invalid.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Job run not found.
An internal server error occurred.
No Sample Response
Delete user selected job runs.
Requires the application role of 'JobWriter'.
DELETE /mdm/v1/job_runs/delete_selected_jobs
Response
Status Code
The job run was deleted successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem getting job run information. Job run not found.
An internal server error occurred.
No Sample Response
Retrieve job statistics.
Requires the application role of 'JobReader'.
GET /mdm/v1/job_runs/statistics
Response
Status Code
The job run stats were retrieved successfully.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
Problem processing request. Status used for filter is invalid.
An internal server error occurred.
No Sample Response
Restore the job that was running at the time of the backup.
Requires the application role of 'Service'.
POST /mdm/v1/job_runs/restore
Response
Example:
spark-sample-jobExample:
mdm-spark-jobExample:
RunningExample:
61d9479a-7d5c-41c6-8ac4-21637b1fe7ecExample:
61d9479a-7d5c-41c6-8ac4-21637b1fe7ecExample:
00:01:02Example:
1Example:
4Example:
1Example:
2048Example:
61d9479a-7d5c-41c6-8ac4-21637b1fe7ec- Examples:
{ "property1": "value1" }
Status Code
The job run was started successfully.
The job queue is empty.
Problem processing request. The user is not authenticated.
Problem processing request. The user is not authorized to perform the request.
An internal server error occurred.