The studies API is responsible for study data within FDPlan.
The key API concepts include:
studies: A study covers the allocation of time and resources to gain knowledge of an asset, identify potential opportunities and threats, derive and evaluate candidate development scenarios, and make critical decisions in field-development planning. It can also be referred to as an asset evaluation project or a conceptual field-development planning project. You can have several studies for different stages of field-development planning, such as one study for the appraisal stage and another for the concept selection stage.
KPOs: A key performance objective (KPO) is an objective that is critical to the success of the project. Typically, three to five objectives are identified as key objectives.
KPIs: A key performance indicator (KPI) represents the performance of the current development scenario compared with the key performance objective, for example, net present value (NPV), internal rate of return (IRR), payback period, date of first oil, maximum exposure, and proven reserves.
decisions: A decision must be made or has been made to define the field-development plan. It can contain one or more available choices to select. A decision is made when one of the available choices is selected.
choices: A choice is an option you can choose to make a decision. It can also be referred to as a concept. There can be multiple available choices in making a decision. A choice can be available or unavailable, and can be selected or unselected.
scenarios: A scenario is a combination of development choices that describes a particular way to develop a field. It can also be referred to as a development scenario, a concept, or a development option.
deliverables: A deliverable is a work item in which you can manage the life cycle of the required data or the documents for a study. It holds the information on the status of the domain contribution, the contributors, the approvers, and the due date. A contribution that fulfills a deliverable is referred to as an 'data source'.
- Get the list of Key Performance Indicators (KPIs).
- Update an existing Key Performance Indicator (KPI) or create a new one.
- Get all studies
- Create a new study
- Get a study
- Delete a study.
- Update a study.
- Get all KPOs
- Get all scenarios
- Create a new scenario
- Delete a scenario
- Update a scenario
- Get scenario results state
- Get all deliverables
- Get a deliverable
- Update a deliverable
- Get the list of opportunities for the given study.
- Get ranking scores for the scenarios in the given study ID
Parameters
slb-data-partition-id Data partition id.
pageNumber The number of the page in the list of KPIs
pageSize The number of KPIs per page
Example
curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/kpis'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
Response: 200 [ { "name": "First Year Capex", "isSystem": false, "lastUpdated": { "atDate": "2022-03-08T08:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "description": "Capital Expenditures at first year", "type": "Money", "defaultObjectiveOperator": "Less Than", "unit": "M$", "priority": 11, "archived": false }, { "name": "First Oil", "isSystem": false, "lastUpdated": { "atDate": "2022-03-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "description": "Date of First Oil", "type": "Date", "defaultObjectiveOperator": "Before", "priority": 14, "archived": false } ]
Parameters
slb-data-partition-id Data partition id.
kpiName The name of the KPI to update or create.
data The KPI details to update or create.
Example
curl -request PUT
--url 'https://api.delfi.slb.com/fdplan/studies/v1/kpis/{kpiName}'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
--data '{ "description": "Capital Expenditures at first year", "type": "Money", "defaultObjectiveOperator": "Less Than", "unit": "M$", "priority": 11, "archived": false, "measurement": "osdu:reference-data--UnitOfMeasure:1E6%20USD:" }'
Response: 200
Get all studies.
Parameters
- slb-data-partition-id Data partition id.
Example
curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/studies'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
Response: 200 [ { "id": "01CP3E6EJJ25J29YHZ0K4RDZH8", "title": "Robin Field Development", "description": "New development opportunity.", "country": "US", "isArchived": false, "workflowSpec": { "id": "01FDYW0CS3RS1Z9BHE53DATBDE", "version": 1 } }, { "id": "02DSFJLKJL34HGH6DFLKGJJ9L8", "title": "Forties Field Development", "description": "Workover project.", "country": "UK", "isArchived": false, "workflowSpec": { "id": "01FDYW0CS3V4V36DVSTH7BJNBY", "version": 2 } } ]
Parameters
slb-data-partition-id Data partition id.
study The study that needs to be created.
Example
curl -request POST
--url 'https://api.delfi.slb.com/fdplan/studies/v1/studies'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
--data '[ { "title": "Robin Field Development", "description": "New development opportunity.", "workflowSpecId": "01CP3E6EJJ25J29YHZ0K4RDZH8", "workflowSpecVersion": 1, "legalTags": [ "legal-tag" ], "studyManagers": [ "study-manager" ], "acl": { "owners": [ "data.team-id-a.owners@tenant-id-1.entitlements-domain-1", "data.team-id-b.owners@tenant-id-1.entitlements-domain-1" ], "viewers": [ "data.team-id-a.viewers@tenant-id-1.entitlements-domain-1", "data.team-id-b.viewers@tenant-id-1.entitlements-domain-1" ] } } ]'
Response: 201 { "id": "01CP3E6EJJ25J29YHZ0K4RDZH8", "title": "Robin Field Development", "description": "New development opportunity.", "country": "US", "isArchived": false, "noOfRealizations": 10, "uncertaintyMethod": "MonteCarlo", "workflowSpec": { "id": "01FDYW0CS3ZZB1FS2NCK01WVDX", "version": 1 }, "acl": { "owners": [ "data.team-id-a.owners@tenant-id-1.entitlements-domain-1", "data.team-id-b.owners@tenant-id-1.entitlements-domain-1" ], "viewers": [ "data.team-id-a.viewers@tenant-id-1.entitlements-domain-1", "data.team-id-b.viewers@tenant-id-1.entitlements-domain-1" ] } }
Get a study given a study ID.
Parameters
slb-data-partition-id Data partition id.
studyId The study to get.
Example
curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/studies/{studyId}'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
Response: 200 { "id": "01CP3E6EJJ25J29YHZ0K4RDZH8", "title": "Robin Field Development", "country": "US", "isArchived": false, "noOfRealizations": 10, "uncertaintyMethod": "MonteCarlo", "workflowSpec": { "id": "01FDYW0CS3GYWBH7S080PMJ66F", "version": 1 }, "acl": { "owners": [ "data.team-id-a.owners@tenant-id-1.entitlements-domain-1", "data.team-id-b.owners@tenant-id-1.entitlements-domain-1" ], "viewers": [ "data.team-id-a.viewers@tenant-id-1.entitlements-domain-1", "data.team-id-b.viewers@tenant-id-1.entitlements-domain-1" ] } }
Parameters
slb-data-partition-id Data partition id.
studyId The study to delete.
Example
curl -request DELETE
--url 'https://api.delfi.slb.com/fdplan/studies/v1/studies/{studyId}'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
Response: 401 { "data": { "code": 500, "message": "internal server error" } }
Parameters
slb-data-partition-id Data partition id.
studyId The study to be updated.
patches The patches to apply to the study. Only "replace" operation is supported.
Example
curl -request PATCH
--url 'https://api.delfi.slb.com/fdplan/studies/v1/studies/{studyId}'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
--data '[ { "op": "replace", "path": "title", "value": "title" }, { "op": "replace", "path": "description", "value": "description" } ]'
Response: 200 { "id": "01CP3E6EJJ25J29YHZ0K4RDZH8", "title": "Robin Field Development", "description": "New development opportunity.", "country": "US", "isArchived": false, "noOfRealizations": 10, "uncertaintyMethod": "MonteCarlo", "workflowSpec": { "id": "01FDYW0CS3ZZB1FS2NCK01WVDX", "version": 1 }, "acl": { "owners": [ "data.team-id-a.owners@tenant-id-1.entitlements-domain-1", "data.team-id-b.owners@tenant-id-1.entitlements-domain-1" ], "viewers": [ "data.team-id-a.viewers@tenant-id-1.entitlements-domain-1", "data.team-id-b.viewers@tenant-id-1.entitlements-domain-1" ] } }
Get the list of Key Performance Objectives (KPOs).
Parameters
slb-data-partition-id Data partition id.
studyId The study which KPOs belongs to.
Example
curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/kpos?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
Response: 200 [ { "name": "ATMaxEx", "description": "After Tax Maximum Exposure", "objectiveOperator": "Less Than", "objectiveValue": 600, "type": "Money", "unit": "M$" }, { "name": "ATNPV", "description": "After Tax Net Present Value", "objectiveOperator": "More than", "objectiveValue": 500, "type": "Money", "unit": "M$" } ]
Get all scenarios including their associated Decisions/Choices.
Parameters
slb-data-partition-id Data partition id.
studyId The study which Scenarios/Decisions/Choices belongs to.
Example
curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/scenarios?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
Response: 200 [ { "id": "01CP3E6EJJ25J29YHZ0K4RDZH8", "displayID": "S1", "title": "Minimal investment", "description": "Minimal investment development option scenario.", "lastUpdated": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "created": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "isSelected": false, "colour": "#ff0000", "associatedDevelopmentConceptId": "01CP3E6EJJ25J29YHZ0K4ANIH8" }, { "id": "01CP3E6EJJ25J29YHZ0K4RSDFI4", "displayID": "S2", "title": "Maximum investment", "description": "Maximum investment development option scenario.", "lastUpdated": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "created": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "isSelected": false, "colour": "#ff0000", "associatedDevelopmentConceptId": "01CP3E6EJJ25J29YHZ0K4ANIH8" } ]
Parameters
slb-data-partition-id Data partition id.
studyId The study in which scenario will be created.
scenario The scenario that needs to be created.
Example
curl -request POST
--url 'https://api.delfi.slb.com/fdplan/studies/v1/scenarios?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
--data '{ "title": "Minimal investment", "colour": "#ff0000", "description": "Minimal investment development option scenario.", "isSelected": false, "associatedOpportunityIDs": [ "01CP3E6EJJ25J29YHZ0K4ANABC", "01CP3E6EJJ25J29YHZ0K4ANDEF" ] }'
Response: 201 { "id": "01CP3E6EJJ25J29YHZ0K4RDZH8", "displayID": "S1", "title": "Minimal investment", "description": "Minimal investment development option scenario.", "lastUpdated": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "created": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "isSelected": false, "colour": "#ff0000", "version": 2, "associatedDevelopmentConceptId": "01CP3E6EJJ25J29YHZ0K4ANIH8", "associatedOpportunityIDs": [ "01CP3E6EJJ25J29YHZ0K4ANABC", "01CP3E6EJJ25J29YHZ0K4ANDEF" ] }
Delete a scenario in a given study given scenario ID.
Parameters
slb-data-partition-id Data partition id.
studyId The study to which the scenario belongs.
scenarioId The id of the scenario to delete.
Example
curl -request DELETE
--url 'https://api.delfi.slb.com/fdplan/studies/v1/scenarios?scenarioId=value&studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
Response: 400 { "data": { "code": 500, "message": "internal server error" } }
Update an existing scenario. It is possible to update the title, description, displayID, colour and isSelected scenario fields.
Parameters
slb-data-partition-id Data partition id.
studyId The study id which the scenario belong to.
scenarioId The id of the scenario to update.
patches The patches to apply to the scenario. Only "replace" operation is supported.
Example
curl -request PATCH
--url 'https://api.delfi.slb.com/fdplan/studies/v1/scenarios?scenarioId=value&studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
--data '[ { "op": "replace", "path": "title", "value": "title" }, { "op": "replace", "path": "description", "value": "description" } ]'
Response: 200 { "id": "01CP3E6EJJ25J29YHZ0K4RDZH8", "displayID": "S1", "title": "Minimal investment", "description": "Minimal investment development option scenario.", "lastUpdated": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "created": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "isSelected": false, "colour": "#ff0000", "version": 2, "associatedDevelopmentConceptId": "01CP3E6EJJ25J29YHZ0K4ANIH8", "associatedOpportunityIDs": [ "01CP3E6EJJ25J29YHZ0K4ANABC", "01CP3E6EJJ25J29YHZ0K4ANDEF" ] }
Get the scenario result state.
Parameters
slb-data-partition-id Data partition id.
studyId The study from which to get the results state.
scenarioId The scenario from which to get the results state.
Example
curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/scenarios/results-state?scenarioId=value&studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
Response: 200 { "dataSource": { "id": "01EY46YV3JXND9NM0T70HABRXF", "version": 1 }, "dataSourceProcessingErrors": [ ], "dataSourceProcessingState": "CompletedSuccessfully", "lastUpdated": "2021-02-09T20:56:46.000Z", "realizationStates": { "uri": "01HGWMW4HWETWWFZCA1Z0C453Z/realizations/01HGWQMY95XHSCDKSBYRZ8P67M", "computationStates": [ { "address": { "computationIndex": 0, "dataTypeIndex": 0, "type": "Computation" }, "runState": "CompletedSuccessfully" }, { "address": { "computationIndex": 1, "dataTypeIndex": 0, "type": "Computation" }, "runState": "CompletedSuccessfully" } ], "lastUpdatedAt": "2021-02-09T20:53:55.000Z", "resultsErrors": [ ], "state": "CompletedSuccessfully", "version": 11 }, "resultsPublishingErrors": [ ], "resultsPublishingState": "CompletedSuccessfully" }
Get all deliverables.
Parameters
slb-data-partition-id Data partition id.
studyId The study which the deliverables belong to.
scenarioId The optional scenario which the deliverables belong to. If not specified all deliverables for given study will be returned.
Example
curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/deliverables?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
Response: 200 [ { "id": "01CKXHZPAEERP06F3CNKBAPE0F", "title": 1, "description": "Decline curves for Robin field.", "status": "Requested", "attachmentType": "decline-curves", "attachmentTypeVersion": 1 }, { "id": "01CKXHZPAEERP06F3SDFKJ567F", "title": 1, "description": "Facility Constraints for Robin field.", "status": "Requested", "attachmentType": "facility-constraints", "attachmentTypeVersion": 1 } ]
Get a deliverable given a deliverable ID.
Parameters
slb-data-partition-id Data partition id.
studyId The study which the deliverable belongs to.
deliverableId The ID of the deliverable to get.
Example
curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/deliverables/{deliverableId}?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
Response: 200 { "id": "01CKXHZPAEERP06F3CNKBAPE0F", "title": 1, "description": "Decline curves for Robin field.", "status": "Requested", "attachmentType": "decline-curves", "attachmentTypeVersion": 1 }
Update an existing deliverable. It is possible to update the title, description, owner, contributers, approvers, due date, status, comments and data source deliverable fields.
Parameters
slb-data-partition-id Data partition id.
studyId The study which the deliverable belong to.
deliverableId The ID of the deliverable to update.
patches The patches to apply to the deliverable. Only "replace" and "remove" operations are supported. The "remove" operation is only supported for the "dataSource" path.
Example
curl -request PATCH
--url 'https://api.delfi.slb.com/fdplan/studies/v1/deliverables/{deliverableId}?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
--data '[ { "op": "replace", "path": "title", "value": "title" }, { "op": "replace", "path": "description", "value": "description" } ]'
Response: 200 { "id": "01CKXHZPAEERP06F3CNKBAPE0F", "title": "title", "description": "description", "status": "Requested", "attachmentType": "decline-curves", "attachmentTypeVersion": 1 }
Parameters
slb-data-partition-id Data partition id.
studyId The study
pageNumber The number of the page in the list of Opportunities
pageSize The number of Opportunities per page
Example
curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/opportunities?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
Response: 200
Parameters
slb-data-partition-id Data partition id.
studyId The ID of the study for which to get the scenario ranking scores
pageNumber The number of the page in the list of ranking scores.
pageSize The number of ranking scores per page.
includeCriteriaScores Whether to include criteria scores break-down in the response
Example
curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/scenario-ranking-scores?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
Response: 200