{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Table of Contents","description":"Accelerate E&P application development and protect your innovation by consuming our Data and Domain APIs / Platform APIs.","lang":"en-US","meta":[{"name":"robots","content":"noindex"}],"llmstxt":{"hide":true,"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"table-of-contents","__idx":0},"children":["Table of Contents ",{"$$mdtype":"Tag","name":"a","attributes":{"name":"TOC"},"children":[]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#introduction"},"children":["Introduction"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#api-details"},"children":["API Details"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#pre-requisites"},"children":["Pre-requisites"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#required-entitlement-groups"},"children":["Entitlement groups"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#data-mastering-configurations"},"children":["Data Mastering Configurations"]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#api-contract"},"children":["API Contract"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#end-point"},"children":["Endpoint"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#request-headers"},"children":["Request Headers"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#request-body"},"children":["Request Body"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#response"},"children":["Response"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#best-practices"},"children":["Best practices to follow while using this service"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"introduction","__idx":1},"children":["Introduction ",{"$$mdtype":"Tag","name":"a","attributes":{"name":"introduction"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Data Workspace- Data Flow Services exposes many services which enable an application developer to perform various data transformation workflows. One such transformation workflow is merging wks data records from different sources (public, 3rd party, etc.) to build an improved or more complete version of a record. This workflow can add missing values or update existing ones from more trustworthy sources, which is called the Master record. The process of creating a Master record is called the Data Mastering workflow. The Data Mastering service collects and transforms all of the data from one or more sources for the same entity type and creates a blended record based on source attribute prioritization rules. For example, a data manager can declare that corporate sources have a higher priority than public sources for specific attributes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To learn more about Data Mastering Workflow and related scenarios, refer to the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/solutions/data-workspace/tutorial/data-mastering-workflow"},"children":["Data Mastering Workflow tutorial"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The data Mastering endpoint allows user to trigger the Data Mastering process on-demand for WKS(standardized) record(s) and provides the corresponding Data Master Record Id(s) in response instantly without relying on event-   based processing. This helps consumers in many ways, such as linking the child records(Log, Trajectory, Markers, Document etc.) directly to master record, sharing the master record id with other application(s) for collaboration etc."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"api-details","__idx":2},"children":["API Details ",{"$$mdtype":"Tag","name":"a","attributes":{"name":"api-details"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"pre-requisites","__idx":3},"children":["Pre-requisites ",{"$$mdtype":"Tag","name":"a","attributes":{"name":"pre-requisites"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"entitlement-groups","__idx":4},"children":["Entitlement groups ",{"$$mdtype":"Tag","name":"a","attributes":{"name":"required-entitlement-groups"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The user should have any of the following roles (entitlement groups) assigned:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["users.datalake.editors"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["users.datalake.admins"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["users.datalake.ops"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"data-mastering-configurations","__idx":5},"children":["Data Mastering Configurations ",{"$$mdtype":"Tag","name":"a","attributes":{"name":"data-mastering-configurations"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following configurations should be present for the respective WKS entity:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["System or User Defined Match Rule"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Merge Rule(required if more than one sources are contributing to Data Master record)"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To know more about Data Mastering Workflow and related scenarios, refer to the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/solutions/data-workspace/tutorial/data-mastering-configurations"},"children":["Data Mastering Configurations tutorial"]},"."]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#TOC"},"children":["Back to table of contents"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"api-contract","__idx":6},"children":["API Contract ",{"$$mdtype":"Tag","name":"a","attributes":{"name":"api-contract"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"endpoint","__idx":7},"children":["Endpoint ",{"$$mdtype":"Tag","name":"a","attributes":{"name":"end-point"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Endpoint - POST https://",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["<HostURL>"]},"/api/mdm/v1/mastering"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Here, mdm stands for mastering data management."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"request-headers","__idx":8},"children":["Request Headers ",{"$$mdtype":"Tag","name":"a","attributes":{"name":"request-headers"},"children":[]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Authorization : Your Authorization token. (mandatory)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["slb-Partition-Id : slb partition id. (Example: opendes) (mandatory)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Content-Type : Content type of payload. (Example: application/json). (mandatory)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Correlation-id: This is optional parameter. If not provided, then API generates the correlation-id and provides it in response headers. But it is always recommended to provide this parameter for tracking the status of the data mastering process.(Example: 5b07dc73-3b53-4b7c-b9d7-08125f0f48e5)."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"request-body","__idx":9},"children":["Request Body ",{"$$mdtype":"Tag","name":"a","attributes":{"name":"request-body"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This endpoint accepts the list of record ids in request body. You can provide maximum of ",{"$$mdtype":"Tag","name":"b","attributes":{},"children":["50"]}," record ids in one request."," ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Note"]},": In a single api request, all the record ids provided in the list, should be from a same schema."," ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," ","Following is the sample request to the API:"]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[" Sample Request to the API"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"        [\n          \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a251.osdu.wks.master-data--Wellbore.1\",\n          \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a252.osdu.wks.master-data--Wellbore.1\",\n          \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a253.osdu.wks.master-data--Wellbore.1\",\n          \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a254.osdu.wks.master-data--Wellbore.1\",\n          \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a255.osdu.wks.master-data--Wellbore.1\",\n          \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a256.osdu.wks.master-data--Wellbore.1\",\n          \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a257.osdu.wks.master-data--Wellbore.1\",\n          \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a258.osdu.wks.master-data--Wellbore.1\",\n          \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a259.osdu.wks.master-data--Wellbore.1\",\n          \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a260.osdu.wks.master-data--Wellbore.1\"\n        ]\n\n","lang":"json"},"children":[]}]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"response","__idx":10},"children":["Response ",{"$$mdtype":"Tag","name":"a","attributes":{"name":"response"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Response gives you the wks id, corresponding wke id and message in response. Following are the sample responses of valid and invalid scenarios:"]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[" Sample Response of valid request"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"        {\n          \"results\": [\n            {\n              \"wksId\": \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a259.osdu.wks.master-data--Wellbore.1\",\n              \"wkeId\": \"{datapartition}:master-data--Wellbore:34c913ec769996deb4aacc4f97b9843a14365ab4303e1c24b2ed2614d4ab4b7c.data.master\",\n              \"message\": \"SUCCESS\"\n            },\n            {\n              \"wksId\": \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a258.osdu.wks.master-data--Wellbore.1\",\n              \"wkeId\": \"{datapartition}:master-data--Wellbore:675a1ce2edd92cf268c750fe095673876f7ff60396f229c0f440b4a0158cb013.data.master\",\n              \"message\": \"SUCCESS\"\n            },\n            {\n              \"wksId\": \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a252.osdu.wks.master-data--Wellbore.1\",\n              \"wkeId\": \"{datapartition}:master-data--Wellbore:d9104cfbf91c5ea29b7da2ea76494b83d7c3b03b611c93a662150d2989ba17d9.data.master\",\n              \"message\": \"SUCCESS\"\n            },\n            {\n              \"wksId\": \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a251.osdu.wks.master-data--Wellbore.1\",\n              \"wkeId\": \"{datapartition}:master-data--Wellbore:abc87d6fe77397276a18b014aa1cfd597dcfd5df8295356bb0701aa909bfa552.data.master\",\n              \"message\": \"SUCCESS\"\n            },\n            {\n              \"wksId\": \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a253.osdu.wks.master-data--Wellbore.1\",\n              \"wkeId\": \"{datapartition}:master-data--Wellbore:be4debf326aaf9cd4d70fde8bf9695cdacd5e84d5ea93e6181e987add9bbf115.data.master\",\n              \"message\": \"SUCCESS\"\n            },\n            {\n              \"wksId\": \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a257.osdu.wks.master-data--Wellbore.1\",\n              \"wkeId\": \"{datapartition}:master-data--Wellbore:147fdd07810745fb60f0ebf44acb1316a6b12e03bba78977b5e8c42f50bb274b.data.master\",\n              \"message\": \"SUCCESS\"\n            },\n            {\n              \"wksId\": \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a256.osdu.wks.master-data--Wellbore.1\",\n              \"wkeId\": \"{datapartition}:master-data--Wellbore:c559afce793868f062cf665a869123bba9e82c6b2b3822e0a8e4dfdda0469d98.data.master\",\n              \"message\": \"SUCCESS\"\n            },\n            {\n              \"wksId\": \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a254.osdu.wks.master-data--Wellbore.1\",\n              \"wkeId\": \"{datapartition}:master-data--Wellbore:7746984e18718c1a234cb59ae689f96fa9b84a2b63398735da589551c9c1e714.data.master\",\n              \"message\": \"SUCCESS\"\n            },\n            {\n              \"wksId\": \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a255.osdu.wks.master-data--Wellbore.1\",\n              \"wkeId\": \"{datapartition}:master-data--Wellbore:fb728c3d1d0d947fa216ab2141ee3dee24d3ec3dea30a34820ab61564628c48e.data.master\",\n              \"message\": \"SUCCESS\"\n            },\n            {\n              \"wksId\": \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccea61309232011-a260.osdu.wks.master-data--Wellbore.1\",\n              \"wkeId\": \"{datapartition}:master-data--Wellbore:58e52073d201f5c1b72c70079ab9f8a194c6d43fc176cf3eff9a06ddebac2e7a.data.master\",\n              \"message\": \"SUCCESS\"\n            }\n          ]\n        }\n\n","lang":"json"},"children":[]}]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[" Sample Response when Source/Matching Key attribute is missing in the record"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"        {\n          \"results\": [\n            {\n              \"wksId\": \"{datapartition}:master-data--Wellbore:wks-f1b74f0499b71741bd432f7ccea61309232011.osdu.wks.master-data--Wellbore.1\",\n              \"wkeId\": null,\n              \"message\": \"Source information not present\"\n            },\n            {\n              \"wksId\": \"{datapartition}:master-data--Wellbore:wks-f2b92f0499b61739bd432f7ccsd61309232224.osdu.wks.master-data--Wellbore.1\",\n              \"wkeId\": null,\n              \"message\": \"Failed to search mastered record. Match key data.FacilityID not found in raw record, cannot proceed\"\n            },\n            {\n              \"wksId\": \"{datapartition}:master-data--Wellbore:wks-499b61739bd43f2b92f02f7ccea61309232134.osdu.wks.master-data--Wellbore.1\",\n              \"wkeId\": null,\n              \"message\": \"Storage Service : WKS Record Not Found\"\n            }\n          ]\n        }\n\n","lang":"json"},"children":[]}]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#TOC"},"children":["Back to table of contents"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"best-practices-to-follow-while-using-this-service","__idx":11},"children":["Best Practices to follow while using this service ",{"$$mdtype":"Tag","name":"a","attributes":{"name":"best-practices"},"children":[]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Make sure that, Match and Merge rules configurations are configured for your WKS entity before starting the Data Mastering process."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Always provide the correlation-id in request headers, which helps in tracking the job progress using Global Status Monitoring Service or in internal logs if need be."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["As the Data Mastering process includes the merging of the attributes from different sources, it is always recommended to start Data Mastering process of WKS records belonging to any one source and then for other source(s). You can do it by ingesting the WKS records of one source first, let the Data Mastering Service completes it's processing and then ingest the WKS record of second/subsequent source(s)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In case user gets following error message :- Data mastering failed: Exception while writing lineage/wke to storage.status code: 403, reason phrase: Forbidden, please make sure that user has following entitlements:",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["service.storage.viewer"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["service.storage.creator"]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#TOC"},"children":["Back to table of contents"]}]}]},"headings":[{"value":"Table of Contents","id":"table-of-contents","depth":2},{"value":"Introduction","id":"introduction","depth":2},{"value":"API Details","id":"api-details","depth":2},{"value":"Pre-requisites","id":"pre-requisites","depth":3},{"value":"Entitlement groups","id":"entitlement-groups","depth":4},{"value":"Data Mastering Configurations","id":"data-mastering-configurations","depth":4},{"value":"API Contract","id":"api-contract","depth":3},{"value":"Endpoint","id":"endpoint","depth":4},{"value":"Request Headers","id":"request-headers","depth":4},{"value":"Request Body","id":"request-body","depth":4},{"value":"Response","id":"response","depth":4},{"value":"Best Practices to follow while using this service","id":"best-practices-to-follow-while-using-this-service","depth":3}],"frontmatter":{"seo":{"title":"Table of Contents"}},"lastModified":"2025-12-02T12:12:32.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/solutions/data-workspace/tutorial/data-mastering-endpoint","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}