Maintenance API (1.6.0)

Download OpenAPI specification:Download

The Maintenance API is an open API covering the Operation & Maintenance area in Equinor.

This document describes the release v1.6.0 for February 2022. We recommend using documentation published at https://equinor.github.io/maintenance-api-docs as it provides the best developer experience. Information on the next release v1.7.0 planned for March 2022 is available at this page.

Introduction

The API is designed and built according to Equinor's API strategy.

The API is documented in OpenAPI 3.0 format and follows REST principles.

A simple way to test the API is through Postman which is accessible through AccessIT.

Maintenance terminology

The API will use common terminology used across the Oil&Gas industry for the maintenance process. Norsok standard NS-EN 13306 and ISO 14224 are key resource in the naming of resources in the API.

API versioning

api-version must be present in all request as part of the query string. Requests without API version will be rejected with a HTTP 404 response code. The latest api-version is v1.

Subscription key

Subscription key must be created from Equinor's API Portal for the consumer application and each request must have the HTTP header Ocp-Apim-Subscription-Key present with this value.

Data sources

The Maintenance API will combine information from various business systems in Equinor used in the maintenance area through one common API.

Currently, the majority of endpoints connect to Equinor's ERP system based on SAP.

Authentication and authorization overview

The user executing the API requests will need to authenticate with OAuth 2.0 authorization code flow with Equinor Azure AD as the identity provider.

The user needs to exist and have authorization in Equinor's ERP system. Equinor Azure AD affiliated users are not supported as the user does not existing in Equinor's ERP system. In special cases, system to system integration can be setup; see section Client setup->System to system setup for more information.

Applying for access is handled by the internal AccessIT solution and the following roles are required:

  • SAP P05: YO900 - OM Mobile Apps & API (SAPP05)
  • SAP P03: General Operation & Maintenance roles for P03

Note: YO900 replaces old role YT105. YO900 is normally only required in SAP P05. For SAP P03, it's in most cases covered by general operation & maintenance roles (as they include YO900/ZO900).

Note: If the user should have only display access through the role YO017 - Display role O&M External, they need the YO900 - OM Mobile Apps & API (SAPP03) role in addition.

General operation & maintenance roles depend on the function of the business users. For employees, it's typically YO001 - Display role O&M and YO002 - Operations & Maintenance Executor. For consultants, it's typically YO017 - Display role O&M External and YO011 External - Support Executor. For contractors, the roles are covered through ACM positions assigned and approved by the vendor company (YO301_01 is an example of a role defined for contractors). More information can be found in governing document GL0446 - SAP roles in operation, maintenance and modifications.

For Maintenance API QA environment, consumers will need to apply for same roles in SAP QA systems Q05, Q93 and Q83 (used during planned downtime for Q93). The KB0036937 defines the procedure for applying for roles in the SAP QA environment.

In addition for Maintenance API QA environment, the end-users need to be members of the Equinor Azure AD group APPL OM Notification and Work order QA. Request this access through the #maintenance-api channel of Equinor slack or via Equinor's service managent system service-now.

Mock response

The API allows you to get mock response for all endpoints if required. This can be useful in special cases. For example if developers from external companies do not have (and should not have) authorization in Equinor's ERP system, they can still interact with the API to see the possibilities.

Add mock-response=true as a query parmeter to the request and the response will be mock data based on the OpenAPI specification.

Client setup

Maintenance API can be integrated and provide value in solutions such as web applications, mobile apps, Power Apps, commandline scripts and many more. In order to start using Maintenance API, some setup is required. We strive to keep this to a minimum and will assist developers from IT and the business in the necessary setup.

Standard setup

The standard and prefered scenario for using Maintenance API involves OAuth Authorization Code Flow. Here the client application is configured with permission to call the Maintenance API on behalf of the logged on user in Equinor Azure AD. Interaction with the backend ERP system (such as read a failure report or update a work order) is performed with the logged on user and requires that the logged on user has the necessary authorizations.

The following configuration steps needs to be performed for the initial setup:

  1. Create client app registration in Equinor Azure AD through portal.azure.com for each environment of your solution. This step requires the Application Developer role in Access IT. See Omnia documentation Application Management in AAD for more information. We recommend one client app registration pr client environment such as dev, qa and production.

  2. Create client secrets for your client app registrations

  3. Add an API permission for the app registrations towards the Maintenance API. The following API names are used with application id in parenthesis: Maintenance API Dev (0e595101-1f08-4ce0-8684-148b2e2b8e18), Maintenance API Test (25bb4326-cdc1-4048-8306-29d9fe1102a4), Maintenance API QA (ad711600-154b-4ab0-8945-06cba7f10c4b) and Maintenance API Prod (1aee2186-b5f4-445a-bbf2-d28589ccb59a)

  4. Create a subscription key from Equinor's API Portal. We recommend first creating the subscription key in the API Portal QA environment, before proceeding with the API Portal Production environment

  5. Trigger an authentication request through a http client (such as postman) in order to trigger the consent process of the API permission

  6. Contact us at the #maintenance-api channel on slack or create a Github issue for maintenance-api-docs. We would love to hear how you intend to use the API and to allow us to map the subscription key to an application in our operational logging

We recommend using Postman as a tool for experimenting with the API.

System to system setup

In some scenarios, the standard setup does not cover the requirements and there is a need for system to system communication without user interaction. An example of such a scenario is scheduled background jobs.

For Maintenance API system to system integration requires additional setup both in the ERP system and for the client.

In the ERP system, a role supporting the specific client requirements must be established. In addition, a system user with this role will be need to be created.

The client must use the OAuth 2.0 client credentials flow with certificates. In the client credentials flow, the client application will be registered in Equinor Azure AD as an app registration with a client secret. The client must securely store the client secret. The client must also generate a self-signed client certificate and upload the public key to Equinor Azure AD.

The Maintenance API team will assist in the system to system setup if it's necessary for integration. So contact us at the #maintenance-api channel on slack or create a Github issue for maintenance-api-docs.

Power Apps setup

Microsoft Power Apps is a low-code platform for implementing business functionality. For more information on the usage of Power Apps in Equinor, see the Microsoft Power Platform group at yammer.

In order to simplify the usage of Maintenance API within Equinor Power Apps, our team maintains a custom connector for the API. The custom connector will be kept up to date with the latest functionality in the API.

We also maintain a proof of concept Power App using the Maintenance API custom connector called "Maintenance API - GP Møte Forberedelser".

The following steps are required in order to add the custom connector to an existing Power Apps project:

  1. Create a subscription key from Equinor's API Portal. We recommend first creating the subscription key in the API Portal QA environment, before proceeding with the API Portal Production environment

  2. Edit the Power App to use. In the data panel, select Add Data, expand connector and add maintenance-api-qa for the QA environment and maintenance-api for the production environment. Power Apps will prompt you to create a connection to the custom connector. For more information see Microsoft documentation Use a custom connector from a Power Apps app

  3. MaintenanceAPI object will now be available from formulas in the Power App. We recommend the results of calls to Maintenance API are stored as a collection. As the last mandatory parameter to all calls, Ocp-Apim-Subscription-Key, use the subscription key from step 1.

Below we have provided some example formulas with Maintenance API which can be used from Power Apps.

  1. Search for failure reports with the CRTE - Created status set in the last seven days for plant 1100. Store the results in the collection FailureReports (and clear it if it already had some data)

ClearCollect(FailureReports, MaintenanceAPI.SearchFailureReports("recent-status-activations", "<my subscription key>",{'status-id':"CRTE",'plant-id': "1100", 'max-days-since-activation':7}))

  1. Lookup the failure report with id from the failureReportId local variable

ClearCollect(FailureReportSelected, MaintenanceAPI.LookupFailureReport(failureReportId, "<my subscription key>",{'include-status-details': false,'include-tag-details': false}))

To understand the operations and its parameters available see this documentation.

Modelling of resources

Resources

The resource will be named according to common terminology used across the Oil&Gas industry (for example Norsok standard NS-EN 13306 and ISO 14224).

Example of resources are /work-orders/preventive-work-orders and /plants/{plant-id}/tags .

Resource keys

Resources keys will indicate the resource type as part of the name. Example: workCenterId and priorityId.

If there is a common "supertype resource", the supertype will determine the naming standard of the key. Example: FailureReports and ActivityReports are both a type of MaintenanceRecord. Therefore, the key for both is recordId.

Resource text

Some resources may have multi-line text describing the resource or the contents of it in more detail. This will always have property name text.

Dates

All date and time information are based on UTC (Universal Time Coordinated) and formatted according to RFC3339. This also applies to durations, such as 1 day or 2 hours.

Example values:

  • datetime: 2022-08-24T14:15:22Z
  • date: 2019-08-24
  • duration: P0Y0M1DT0H0M0S (one day) and P0Y0M0DT2H0M0S (two hours)

These values are easily compatible with libraries such as moment.js library.

It's worth mentioning that in some special cases for maintenance data outside of Norway, datetimes after timezone conversion is not what the end-users would expect. The reason for this is that users may have entered datetimes in their local timezone into the Equinor ERP system, but the Equinor ERP system is configured to treat the input as if it was in the current Norwegian timezone (UTC+1/UTC+2). This causes a disrepancy in the Equinor ERP system which can not be corrected for in Maintenance API. basicStartDateTime and basicEndDateTime for work orders are examples of properties which may have unexpected time conversion.

Modelling of endpoints

Operation - Lookup

Lookup operations return a single instance for the resource based on the key.

The resource may have related data which may or may not be relevant for a client. In order to indicate which related data to include, the lookup operation provides include-... query string boolean options. Examples: include-operations and include-tasks

Operation - Search/Filter

Clients need to retrieve a subset of all resources for an endpoint. Usually, the criteria are non-trivial and in many case are not direct properties of the resource. REST does not provide a well-defined pattern for these types of requests.

Our approach, is to provide predefined filters with parameters. Each filter is documented in the OpenAPI specification.

Examples: maintenance-records/failure-reports/?api-version=v1&filter=recent-status-activation&status-id=RIDO&max-days-since-activation=1 and /maintenance-orders/preventive-work-order/?api-version=v1&filter=same-maintenance-plan&work-order-id=12345678&max=5

Operation - Update

Update operations for resources will utilize a sub-set of the JSON Patch proposed standard. JSON Patch is described in RFC 6902 with a user-friendly version at http://jsonpatch.com/.

Our goals with using JSON Patch is to focus on the intent of the update and avoid common pitfalls for the client. The common pitfalls we avoid with JSON Patch are:

  1. Clients inadvertently resetting properties of a resource to an empty value. This due to the client mistakenly sending all properties of a resource in a HTTP PATCH request with some of them having an initial value.
  2. Clients inadvertently overwriting changes made by other users directly in the back-end system. This due to client mistakenly have provided properties which have not been changed in a HTTP PATCH request.

Using JSON Patch is straightforward.

  • Set the content-type to application/json-patch+json.
  • In the body, send an array of JSON Patch operations. Typically, one element pr property to be update for the resource

As part of the OpenAPI documentation, we will provide concrete examples for all update operation. In addition, the schema definiton for the request body defines which resource properties can be updated.

Example of JSON Patch request body which replaces the value of the properties title and text:

[
  {
    "op": "replace",
    "path": "/title",
    "value": "Material failure"
  },
  {
    "op": "replace",
    "path": "/text",
    "value": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nMaterial tretthet..\n"
  }
]

HTTP Response codes

HTTP response codes will follow established best practice for REST services and will be documented in the OpenAPI specification.

Below is a list of status codes used in the API which the client should handle. Common:

  • 400 Bad Request - The request is invalid. For example missing parameters in the query string
  • 401 Unauthorized - The request did not include an authentication token or the authentication token was expired or invalid
  • 403 Forbidden - User does not have sufficient permissions
  • 405 Method not allowed - HTTP verb not supported for requested resource
  • 500 Internal Server Error - Sorry, an unexpected error occured on our side. Let's us know and we'll get around to fix it
  • 503 Service unavailable - API or a service it depends on is currently not available.

Read - HTTP GET:

  • 200 OK - The request completed successfully
  • 404 Not Found - The resource does not exist or an non-existing endpoint has been called

Create - HTTP POST:

  • 201 Created - Create of resource was successful and resource is returned in body
  • 400 Bad Request - The resource provided in the body is not according to specification
  • 409 Conflict - The creation of this resource is in conflict with an already existing resources

Create - HTTP PUT

  • HTTP PUT only used for file uploads
  • 204 No Content - Request successful but no resource returned in body
  • 400 Bad Request - HTTP Put failed due to file contents
  • 413 Payload too large - File too large

Update - HTTP PATCH:

  • 204 OK - Update of resource was successful and resource is returned in body
  • 400 Bad Request - The resource properties to update is not according to specification
  • 409 Conflict - The update of this resource is in conflict with an already existing resources

Delete - HTTP DELETE:

  • 204 OK - Delete of resource was successful
  • 404 Not Found - The resource does not exist or an non-existing endpoint has been called
  • 409 Conflict - The delete of this resource is in conflict with an already existing resources

Pagination

Endpoints that return multiple items will in some cases support pagination. This helps improve performance by only fetching the data which is necessary for the client.

Parameters page and per-page are used to define which page is fetched and how many records are returned in the current request. per-page will typically have a max limit defined in the endpoint's documentation.

The response of a pagination request will include 3 additional HTTP headers:

  • Total-Count: Custom HTTP header which shows total number of items found matching the criteria of the request (not just in the page returned)
  • Link: Pagination data in accordance to RFC 5988. This will include a link for the next, previous, first and last page.
  • Link-Json: Custom HTTP header for making the information in Total-Count and Link accessible in an easy to read JSON format

Clients are recommended to use Link-Json HTTP header to traverse the pages. Example of the data in this HTTP header:

{
  "totalCount": 49,
  "links": {
      "next": "https://api-test.gateway.equinor.com/maintenance-api/equipment?page=3&api-version=v1",
      "prev": "https://api-test.gateway.equinor.com/maintenance-api/equipment?page=2&api-version=v1",
      "first": "https://api-test.gateway.equinor.com/maintenance-api/equipment?api-version=v1",
      "last": "https://api-test.gateway.equinor.com/maintenance-api/equipment?page=4&api-version=v1"
  }
}

Note: For some endpoints there is a risk that individual items "disappear" between pages if data is updated in ERP system whilst the pages are requested.

Deprecation

Deprecation policy

The Maintenance API will use the principles of API evolution instead of introducing a new api-version on every breaking change.

In order to achieve this, endpoints, query parameters and resource properties can become deprecated and will be marked so in the OpenAPI specification.

In general, depcrated properties will be removed after 3 months. If a client uses a deprecated endpoint or query parameter, the Maintenance API will in the response provide a Sunset HTTP header Sunset: Sat, 15 May 2021 12:59:59 GMT representing the removal date for the deprecated feature as specified in RFC8594. In addition, a HTTP header Link: <https://equinor.github.io/maintenance-api-docs/#section/Deprecation>; rel="sunset" will be provided to pointing to relevant documentation.

Clients must monitor these messages and take corrective actions.

Endpoints with deprecation

Rename area to location

In order to align naming of structured locations within a plant across Equinor systems, Maintenance API is renaming areaId,area-id and area to locationId,location-id and location.

This deprecates the following endpoints:

  1. /plants/{plant-id}/areas - Use new endpoint instead /plants/{plant-id}/locations

This deprecates query parameters for the following endpoints:

  1. /work-orders
  2. /work-orders/corrective-work-orders
  3. /work-orders/preventive-work-orders

This deprecates HTTP POST request properties for the following endpoints:

  1. /work-orders/corrective-work-orders
  2. /work-orders/project-work-orders
  3. /work-orders/sas-change-work-orders

This deprecates properties of the response in the following endpoints:

  1. GET /plants/{plant-id}/tags/{tag-id}
  2. GET /plants/{plant-id}/tags
  3. GET /maintenance-records/failure-reports/{record-id}
  4. GET /work-orders
  5. GET /work-orders/corrective-work-orders/{work-order-id}
  6. GET /work-orders/corrective-work-orders
  7. GET /work-orders/preventive-work-orders/{work-order-id}
  8. GET /work-orders/preventive-work-orders
  9. GET /work-orders/sas-change-work-orders/{work-order-id}
  10. GET /work-orders/sas-change-work-orders
  11. POST /work-orders/sas-change-work-orders
  12. GET /work-orders/project-work-orders/{work-order-id}
  13. GET /work-orders/project-work-orders
  14. POST /work-orders/project-work-orders

Rename quantityUnit to quantityUnitId

quantityUnitId is added to differentiate the field from future requirement where a description of quantityUnit might be added.

This deprecates the response in the following endpoints

  1. GET /work-orders/corrective-work-orders/{work-order-id}
  2. GET /work-orders/preventive-work-orders/{work-order-id}
  3. GET /work-orders/sas-change-work-orders/{work-order-id}
  4. GET /work-orders/project-work-orders/{work-order-id}
  5. GET /work-orders/subsea-work-orders/{work-order-id}
  6. GET /work-orders/modification-work-orders/{work-order-id}

Feature requests

Feature requests are welcomed and can be submitted through:

  1. Github issue for maintenance-api-docs
  2. Equinor Slack channel #maintenance-api
  3. Contact in GBS IT PLA POM department

Authentication

bearerAuth

Security Scheme Type OAuth2
authorizationCode OAuth Flow
Authorization URL: https://login.windows.net/common/oauth2/authorize?resource=0e595101-1f08-4ce0-8684-148b2e2b8e18
Token URL: https://login.microsoftonline.com/common/oauth2/token
Scopes:

    apiKey

    Subscription key created from https://api.equinor.com

    Security Scheme Type API Key
    Header parameter name: ocp-apim-subscription-key

    New endpoints

    Endpoints have been introduced in the current version

    Work order - Add materials

    Overview

    This endpoint will be de-activated in Production until release 1.7.0. It can still be tested in our QA environment.

    Add materials to a work order operation (of any work order type). The ´operation-id´ parameter to use in the url can be found using the various lookup and search endpoints for work orders. ´operation-id´ consist of two internal ids from the ERP system called routing number and counter separated by the - character.

    There are two types of materials which can be added to work orders:

    1. Material identified by materialId
    2. Material identified by equipmentId (only for Subsea work orders)

    Requests need to supply either materialId or equipmentId (not both)

    Authorizations:
    path Parameters
    operation-id
    required
    string
    Request Body schema: application/json

    Add material details

    Array ()
    quantity
    required
    number <double> >= 0
    quantityUnitId
    required
    string

    Commonly used values: PC - Pieces L - Liters KG - Kilograms M - Meters

    materialId
    string
    equipmentId
    string
    requiredDatetime
    string <date-time> Nullable

    Specifies the date and time for when the material is needed at its destination

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "equipmentId": "12218664",
      • "quantity": 1,
      • "quantityUnitId": "PC"
      },
    • {
      • "equipmentId": "12146835",
      • "quantity": 1,
      • "quantityUnitId": "PC"
      }
    ]

    Response samples

    Content type
    application/json
    [
    • {
      • "reservationId": "25457443-001",
      • "materialId": "741466",
      • "material": "LIGHT,FIXTURE,26w,SZ 4155.100,RITTAL",
      • "quantity": 1,
      • "quantityUnit": "string",
      • "quantityUnitId": "string",
      • "location": "P10N utenfor lager",
      • "holdDeliveryOnshore": true,
      • "requiredDatetime": "2019-08-24T14:15:22Z"
      }
    ]

    Work order operation - Remove material

    Overview

    Remove a material from a work order operation (of any work order type). The ´operation-id´ parameter to use in the url can be found using the various lookup and search endpoints for work orders. ´operation-id´ consist of two internal ids from the ERP system called routing number and counter separated by the - character. The ´reservation-id´ parameter to use in the url can be found using the include-materials query parameter to work order lookup.

    Authorizations:
    path Parameters
    operation-id
    required
    string
    reservation-id
    required
    string

    Reservation id for the material found through work order lookup with include-materials

    Responses

    Request samples

    curl --request DELETE \
      --url https://api-test.gateway.equinor.com/maintenance-api/work-order-operations/%7Boperation-id%7D/materials/%7Breservation-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Failure report - Update task status

    Overview

    Update status of an existing task for failure report.

    To find tasks avaliable on a failure report, use the /maintenance-records/failure-reports/{record-id}?include-tasks=true.

    When a task is created, it will have status TSOS - Outstanding task and CRTE - Created. The status TSRL - Task Released can be set afterwards.

    Authorizations:
    path Parameters
    record-id
    required
    string

    id of the failure report

    task-id
    required
    string

    id of the task

    status-id
    required
    string

    id of the status

    Request Body schema: application/json

    Task status to update

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Value: "/isActive"

    Path indicating the property to be impacted by the operation

    required
    string or boolean

    Value to be assigned to a resource property based on the operation and path

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "op": "replace",
      • "path": "/isActive",
      • "value": true
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Activity report - Update status

    Update status of activity report.

    The statuses available for the actiivty report can be found by querying /maintenance-records/activity-reports/{record-id}?include-status-details=true.

    Important information

    The endpoints supports status activation such as:

    • NOCO - Notification completed
    • CANC - Cancelled
    • EVCO - Evaluation Complete
    • RECO - Results Recording Complete

    If the activity report has a relationship to a Work Order, the status ORAS - Order assigned will be set automatically on the activity report.

    When the activty report is completed, the status NOCO - Notification completed must be set.

    Equinor's governing document GL1561 - Work orders and notifications types provides some additional information.

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the activity report.

    status-id
    required
    string
    Request Body schema: application/json-patch+json

    Activity report status to update

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Value: "/isActive"

    Path indicating the property to be impacted by the operation

    required
    string or boolean

    Value to be assigned to a resource property based on the operation and path

    Responses

    Request samples

    Content type
    application/json-patch+json
    [
    • {
      • "op": "replace",
      • "path": "/isActive",
      • "value": true
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Technical Information Update Request - Attachment upload

    Overview

    Upload attachment for technical information update request.

    Authorizations:
    path Parameters
    record-id
    required
    string
    Request Body schema: multipart/form-data
    files
    Array of strings <binary>

    Responses

    Request samples

    curl --request POST \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/technical-information-update-requests/%7Brecord-id%7D/attachments \
      --header 'content-type: multipart/form-data' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Technical information update request - Update task status

    Overview

    Update status of an existing task for technical information update request.

    To find tasks avaliable on a technical information update request, use the /maintenance-records/technical-information-update-requests/{record-id}?include-tasks=true.

    When a task is created, it will have status TSOS - Outstanding task and CRTE - Created. The status TSRL - Task Released can be set afterwards.

    Authorizations:
    path Parameters
    record-id
    required
    string

    id of the technical information update request

    task-id
    required
    string

    id of the task

    status-id
    required
    string

    id of the status

    Request Body schema: application/json

    Task status to update

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Value: "/isActive"

    Path indicating the property to be impacted by the operation

    required
    string or boolean

    Value to be assigned to a resource property based on the operation and path

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "op": "replace",
      • "path": "/isActive",
      • "value": true
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Maintenance Plan Item - Remove operation from a task list

    Overview

    Remove an operation in a task list of a maintenance plan item.

    Important information

    Note: This action is allowed only for operations that are considered support activities and not operations that constitute concept activities. The operation belongs to a task list which may be shared with multiple maintenance plan items. Therefore, multiple maintenance plan items may be affected by the change. Use the HTTP GET endpoint /maintenance-plans?filter=by-task-id&task-id={task-id}&api-version=v1 to view maintenance plans and maintenance plan items affected by this change. Use the HTTP GET endpoint /maintenance-plans/{plan-id}/items/{item-id}?include-task-list=true for retrieving current data and necesary ids.

    Examples

    /maintenance-plans/1056916/items/10072940/tasks/T-10012713-1/operations/0010?api-version=v1

    Authorizations:
    path Parameters
    plan-id
    required
    string
    Example: 1056916

    The id of the maintenance plan

    item-id
    required
    string
    Example: 10072940

    The id of the maintenance plan item

    task-id
    required
    string
    Example: T-10012713-1

    The id of the task within the maintenance plant item

    operation-id
    required
    string
    Example: 0020

    The id of the operation within the task list

    Responses

    Request samples

    curl --request DELETE \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-plans/%7Bplan-id%7D/items/%7Bitem-id%7D/tasks/%7Btask-id%7D/operations/%7Boperation-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Modified endpoints

    Endpoints which have been modified in the current version

    Equipment - Lookup

    Overview

    Lookup a single equipment with related maintenance information.

    The endpoint has several include query parameters which allows a client to retrieve only the information which is relevant for their use case.

    Important information

    For warehouse and logistics data of an equipment, use SCM Logistics API.

    Example usage

    /equipment/11948620?include-maintenance-records=true&include-maintenance-record-types=failure-report&include-only-open-maintenance-records=true&include-work-orders=true&include-work-order-types=preventiveWorkOrders,subseaWorkOrders&include-only-open-work-orders=true&include-characteritics=true&include-status-details=true&api-version=v1 - Lookup equipment with status details and characteristics. Include open failure reports where the equipment is used as main reference. Include open subsea work orders and open preventive work orders where the equipment is either a material component or the main reference (equipmentId at work order header level).

    Update release v1.4.0

    include-work-orders now include work orders where the equipmentId is the main reference (equipmentId at work order header level).

    Update release v1.5.0

    Fixed known limitation for include-work-orders and include-only-open-work-orders=false.

    Bugfix for include-work-orders related to deleted equipment reservations.

    Added revisionId and revision to related work orders (represents shutdown or campaign work).

    Update release v1.6.0

    For include-work-orders, add information on the relationship between the equipment and the work order (for example the id of the reservation)

    Authorizations:
    path Parameters
    equipment-id
    required
    string

    The unique equipmentId in Equinor's system

    query Parameters
    include-maintenance-records
    boolean
    Default: true

    Include maintenance records. If include-maintenance-record-types is not supplied, all support types are returned

    include-maintenance-record-types
    Array of strings
    Items Enum: "modification-proposal" "failure-report" "activity-report" "certification-report" "technical-information-update-request" "technical-clarification"

    Include which types of maintenance records

    include-only-open-maintenance-records
    boolean
    Default: false

    Limit include-maintenance-records to only open maintenance records

    include-work-orders
    boolean
    Default: true

    Include work orders. If include-work-order-types is not supplied, all support types are returned

    include-work-order-types
    Array of strings
    Items Enum: "correctiveWorkOrders" "preventiveWorkOrders" "modificationWorkOrders" "sasChangeWorkOrders" "projectWorkOrders" "subseaWorkOrders"

    Include which types of work orders. Use comma separated list of entries.

    include-only-open-work-orders
    boolean
    Default: false

    Limit include-work-orders to only open work order

    include-catalog-profile-details
    boolean
    Default: false

    Include possible detection methods, failure modes and failure mechanisms

    include-characteristics
    boolean
    Default: false

    Include equipment characteristics such as 'Kontrollkort gyldig til' and 'Equipment group'

    include-measuring-points
    boolean
    Default: false

    Include measuring points for this equipment

    include-last-measurement
    boolean
    Default: false

    Include last measurement for the measuring points (only relevant if include-measuring-points is true)

    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/equipment/%7Bequipment-id%7D?include-maintenance-records=SOME_BOOLEAN_VALUE&include-maintenance-record-types=SOME_ARRAY_VALUE&include-only-open-maintenance-records=SOME_BOOLEAN_VALUE&include-work-orders=SOME_BOOLEAN_VALUE&include-work-order-types=SOME_ARRAY_VALUE&include-only-open-work-orders=SOME_BOOLEAN_VALUE&include-catalog-profile-details=SOME_BOOLEAN_VALUE&include-characteristics=SOME_BOOLEAN_VALUE&include-measuring-points=SOME_BOOLEAN_VALUE&include-last-measurement=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceConceptId": "ST0190",
    • "classId": "SUBSEA_POOL",
    • "workCenterId": "AKSO",
    • "workCenter": "Aker",
    • "workCenterPlantId": "1012",
    • "planningPlantId": "1012",
    • "plannerGroupId": "PL4",
    • "plannerGroup": "WOS support Equip",
    • "characteristics": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "maintenanceRecords": {
      • "modificationProposals": [
        ],
      • "failureReports": [
        ],
      • "activityReports": [
        ],
      • "certificationReports": [
        ],
      • "technicalInformationUpdateRequests": [
        ],
      • "technicalClarifications": [
        ]
      },
    • "workOrders": {
      • "correctiveWorkOrders": [
        ],
      • "preventiveWorkOrders": [
        ],
      • "modificationWorkOrders": [
        ],
      • "sasChangeWorkOrders": [
        ],
      • "projectWorkOrders": [
        ],
      • "subseaWorkOrders": [
        ]
      },
    • "catalogProfileDetails": {
      • "detectionMethods": [
        ],
      • "failureModes": [
        ],
      • "failureMechanisms": [
        ]
      },
    • "measuringPoints": [
      • {
        }
      ],
    • "serialNumber": "4500695422-20-003",
    • "partNumber": "10219863",
    • "isInService": true,
    • "plantId": "1915",
    • "ABCId": "3",
    • "ABC": "Crit.=H & Red.=A",
    • "systemId": "BS",
    • "system": "PM-PROG.SYST.",
    • "locationId": "W14",
    • "location": "METERING DECK",
    • "catalogProfileId": "PM-253",
    • "warrantyStartDate": "2019-08-24",
    • "warrantyEndDate": "2019-08-24",
    • "sortField": "TROLL 01.2017 – 12.2020",
    • "equipmentId": "11948620",
    • "equipment": "PEDESTAL,TH ISOLAT.SLEEVE,ASSY,10219863",
    • "materialId": "854586"
    }

    Equipment - Search

    Overview

    Search for equipment and include related maintenance information.

    The endpoint has several include query parameters which allows a client to retrieve only the information which is relevant for their use case.

    The client must in the request provide at least one of the following search parameters:

    • equipment-id-any-of
    • serial-number-any-of
    • vendor-part-number-any-of
    • material-id-any-of

    These parameters allow a comma-separated list of entries.

    If more than one of these parameters are supplied in the same request, the equipment in the response will need to fulfill all parameters (ie. operator AND is used between the parameter).

    Query parameters include-only-open-maintenance-records and include-only-open-work-orders have a recommended value of true in order to improve performance (default value false).

    Important information

    For warehouse and logistics data of an equipment, use SCM Logistics API.

    Example usage

    /equipment?serial-number-any-of=4500695422-20-003,4500695422-20-004&include-maintenance-records=true&include-maintenance-record-types=failure-report&include-only-open-maintenance-records=true&include-work-orders=true&include-work-order-types=preventiveWorkOrders,subseaWorkOrders&include-only-open-work-orders=true&include-characteristics=true&api-version=v1 - Search equipment based on serialNumber with characteritics. Include open failure reports where the equipment is used as main reference. Include open subsea work orders and open preventive work orders where the equipment is either a material component or the main reference (equipmentId at work order header level).

    Update release v1.4.0

    include-work-orders now include work orders where the equipmentId is the main reference (equipmentId at work order header level).

    Update release v1.5.0

    Fixed known limitation for include-work-orders and include-only-open-work-orders=false.

    Bugfix for include-work-orders related to deleted equipment reservations.

    Added revisionId and revision to related work orders (represents shutdown or campaign work).

    Update release v1.6.0

    For include-work-orders, add information on the relationship between the equipment and the work order (for example the id of the reservation)

    Authorizations:
    query Parameters
    equipment-id-any-of
    Array of strings
    Example: equipment-id-any-of=11948620

    Search based on equipmentIds. Wildcards are supported

    serial-number-any-of
    Array of strings
    Example: serial-number-any-of=4500695422-20-003

    Search based on serialNumber. Wildcards are supported

    vendor-part-number-any-of
    Array of strings
    Example: vendor-part-number-any-of=10219863

    Search based on partNumber. Wildcards are supported

    material-id-any-of
    Array of strings
    Example: material-id-any-of=854586

    Search based on materialId. Wildcards are supported

    include-maintenance-records
    boolean
    Default: true

    Include maintenance records. If include-maintenance-record-types is not supplied, all support types are returned

    include-maintenance-record-types
    Array of strings
    Items Enum: "modification-proposal" "failure-report" "activity-report" "certification-report" "technical-information-update-request" "technical-clarification"

    Include which types of maintenance records

    include-only-open-maintenance-records
    boolean
    Default: false

    Limit include-maintenance-records to only open maintenance records. Recommend using true in order to improve performance.

    include-work-orders
    boolean
    Default: true

    Include work orders. If include-work-order-types is not supplied, all support types are returned

    include-work-order-types
    Array of strings
    Items Enum: "correctiveWorkOrders" "preventiveWorkOrders" "modificationWorkOrders" "sasChangeWorkOrders" "projectWorkOrders" "subseaWorkOrders"

    Include which types of work orders. Use comma separated list of entries.

    include-only-open-work-orders
    boolean
    Default: false

    Limit include-work-orders to only open work order. Recommend using true in order to improve performance.

    include-characteristics
    boolean
    Default: false

    Include tag characteristics such as 'Kontrollkort gyldig til' and 'Equipment group'

    per-page
    integer
    Default: 20

    Results to return pr page

    page
    integer
    Default: 1

    Page to fetch

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/equipment?equipment-id-any-of=SOME_ARRAY_VALUE&serial-number-any-of=SOME_ARRAY_VALUE&vendor-part-number-any-of=SOME_ARRAY_VALUE&material-id-any-of=SOME_ARRAY_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-maintenance-record-types=SOME_ARRAY_VALUE&include-only-open-maintenance-records=SOME_BOOLEAN_VALUE&include-work-orders=SOME_BOOLEAN_VALUE&include-work-order-types=SOME_ARRAY_VALUE&include-only-open-work-orders=SOME_BOOLEAN_VALUE&include-characteristics=SOME_BOOLEAN_VALUE&per-page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "characteristics": [
        ],
      • "maintenanceRecords": {
        },
      • "workOrders": {
        },
      • "serialNumber": "4500695422-20-003",
      • "partNumber": "10219863",
      • "isInService": true,
      • "plantId": "1915",
      • "ABCId": "3",
      • "ABC": "Crit.=H & Red.=A",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "catalogProfileId": "PM-253",
      • "warrantyStartDate": "2019-08-24",
      • "warrantyEndDate": "2019-08-24",
      • "sortField": "TROLL 01.2017 – 12.2020",
      • "equipmentId": "11948620",
      • "equipment": "PEDESTAL,TH ISOLAT.SLEEVE,ASSY,10219863",
      • "materialId": "854586"
      }
    ]

    Plants - Lookup

    Overview

    Lookup a single plant with related information.

    Update version 1.6.0

    Added include-revisions for reading master data on revisions for the planningPlantId of the provided plantId.

    Authorizations:
    path Parameters
    plant-id
    required
    string
    query Parameters
    include-locations
    boolean
    Default: false

    Include location for plant

    include-work-centers
    boolean
    Default: false

    Include work centers for plant

    include-planner-groups
    boolean
    Default: false

    Include planner groups for plant

    include-tag-catalog-profiles
    boolean
    Default: false

    Include tag catalog profiles in use for plant

    include-surface-degradation-factors
    boolean
    Default: false

    Include surface degradations for plant

    include-revisions
    boolean
    Default: false

    Include revisions for plant

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D?include-locations=SOME_BOOLEAN_VALUE&include-work-centers=SOME_BOOLEAN_VALUE&include-planner-groups=SOME_BOOLEAN_VALUE&include-tag-catalog-profiles=SOME_BOOLEAN_VALUE&include-surface-degradation-factors=SOME_BOOLEAN_VALUE&include-revisions=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "locations": [
      • {
        }
      ],
    • "workCenters": [
      • {
        }
      ],
    • "plannerGroups": [
      • {
        }
      ],
    • "tagCatalogProfiles": [
      • {
        }
      ],
    • "surfaceDegradationFactors": [
      • {
        }
      ],
    • "revisions": [
      • {
        }
      ],
    • "plantId": "5033",
    • "plant": "Askepott CAT J",
    • "planningPlantId": "5033",
    • "countryCode": "NO",
    • "country": "Norway"
    }

    Preventive Work order - Update

    Overview

    Update preventive work order.

    Supports:

    • Append to text
    • Update workCenterId and workCenterPlantId
    • Update tagId and tagPlantId
    • Update basicStartDateTime and basicEndDateTime
    • Update sortField
    • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)

    Important information

    Append to text follows requirement I-103209 - Notation in long text field - Upstream offshore.

    Newest information in text is added above existing information and is automatically signed with date and full name of logged on user.

    Update release v1.0.0

    Added additional properties to update

    Update release v1.4.0

    Adjusted logic for append text to work order. Newest information in text is now added above existing information.

    Update release v1.6.0

    Added possibility for update of sortField and revisionId.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    Request Body schema: application/json

    The information to be updated

    Array ()
    op
    string
    Enum: "append" "replace"

    JSON Patch operation according to RFC6902.

    Operation replace is suitable for the following properties: /workCenterId,/workCenterPlantId,tagId,/tagPlantId,/basicStartDateTime,/basicEndDateTime

    Operation append is suitable for the following properties: /text

    path
    string
    Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField"

    The property to be updated by the non-trivial patch operation. /workCenterId and /workCenterPlantId must be provided in same request. tagId,/tagPlantId must be provided in same request.

    value
    string

    Value to be assigned to a resource property based on the operation and path.

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "append",
      • "path": "/text",
      • "value": "Text to append\nMulti-line"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Preventive Work order - Update status

    Overview

    Activate or deactivate status for Work order.

    Overview of how status are used can be found in Equinor's governing document GL1561 - Work orders and notifications types

    To identify which status the work order currently has perform a request to: work-orders/preventive-work-orders/{{work-order-id}}?include-status-details=true

    Supported statuses

    The endpoint supports most status activiation such as:

    • RDEX - Ready for execution
    • STRT - Job started
    • RDOP - Ready for operation
    • TECO - Technical complete - Note: This will also close the related failure-report
    • CLSD - Business close - Note: This will not close the related failure-report

    Deactivation is supported in most cases where there is no interdependency between statuses. For status with a statusOrder value, deactivation is not necessary (nor supported) as the business logic will handle the switch.

    The following statuses are not supported at the moment and will return a HTTP 405 response:

    • EXTR - Date extension required
    • PERM - Work permit provided
    • SJA - Safe job analysis required
    • WP - Work Permit exist
    • SJAR - Safe Job Analysis required
    • SJAE - Safe Job Analysis exist
    • PMSG - Purchasing Message
    • MLTI - Multi discipline

    Update version 0.9.0

    Support for releasing a work order by setting the REL status.

    Update version 1.1.0

    Support for deactivating TECO status

    Update version 1.6.0

    Support for ActivatedDateTime for TECO status. It is an optional parameter which allows to overwrite the default reference date for TECO. If no value is provided, the value will be set to current timestamp.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    status-id
    required
    string
    Request Body schema: application/json

    Work order status to update

    isActive
    required
    boolean
    activatedDateTime
    string <date-time> Nullable

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "isActive": true
    }

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Update

    Overview

    Update corrective work order.

    Supports:

    • Append to text
    • Update workCenterId and workCenterPlantId
    • Update tagId and tagPlantId
    • Update basicStartDateTime and basicEndDateTime
    • Update sortField
    • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)

    Important information

    Append to text follows requirement I-103209 - Notation in long text field - Upstream offshore.

    Newest information in text is added above existing information and is automatically signed with date and full name of logged on user.

    Update release v1.0.0

    Added additional properties to update

    Update release v1.4.0

    Adjusted logic for append text to work order. Newest information in text is now added above existing information.

    Update release v1.6.0

    Added possibility for update of sortField and revisionId.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    Request Body schema: application/json

    The information to be updated

    Array ()
    op
    string
    Enum: "append" "replace"

    JSON Patch operation according to RFC6902.

    Operation replace is suitable for the following properties: /workCenterId,/workCenterPlantId,tagId,/tagPlantId,/basicStartDateTime,/basicEndDateTime

    Operation append is suitable for the following properties: /text

    path
    string
    Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField"

    The property to be updated by the non-trivial patch operation. /workCenterId and /workCenterPlantId must be provided in same request. tagId,/tagPlantId must be provided in same request.

    value
    string

    Value to be assigned to a resource property based on the operation and path.

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "append",
      • "path": "/text",
      • "value": "Text to append\nMulti-line"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Update status

    Overview

    Activate or deactivate status for Work order.

    Overview of how status are used can be found in Equinor's governing document GL1561 - Work orders and notifications types

    To identify which status the work order currently has perform a request to: work-orders/corrective-work-orders/{{work-order-id}}?include-status-details=true

    Supported statuses

    The endpoint supports most status activiation such as:

    • RDEX - Ready for execution
    • STRT - Job started
    • RDOP - Ready for operation
    • TECO - Technical complete
    • CLSD - Business close

    Deactivation is supported in most cases where there is no interdependency between statuses. For status with a statusOrder value, deactivation is not necessary (nor supported) as the business logic will handle the switch.

    The following statuses are not supported at the moment and will return a HTTP 405 response:

    • EXTR - Date extension required
    • PERM - Work permit provided
    • SJA - Safe job analysis required
    • WP - Work Permit exist
    • SJAR - Safe Job Analysis required
    • SJAE - Safe Job Analysis exist
    • PMSG - Purchasing Message
    • MLTI - Multi discipline

    Update version 0.9.0

    Support for releasing a work order by setting the REL status.

    Support for complete-outstanding-maintenance-records query parameter for TECO and CLSD statuses.

    Update version 1.1.0

    Support for deactivating TECO status

    Update version 1.6.0

    Support for ActivatedDateTime for TECO status. It is an optional parameter which allows to overwrite the default reference date for TECO. If no value is provided, the value will be set to current timestamp.

    Parameter complete-outstanding-maintenance-records set to true will close maintenance records which have a relationship to the work order via the ObjectList.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    status-id
    required
    string
    query Parameters
    complete-outstanding-maintenance-records
    boolean
    Default: true

    Additional parameter to activation of TECO and CLSD statuses. Determines if related maintenance records should be closed as well.

    Request Body schema: application/json

    Work order status to update

    isActive
    required
    boolean
    activatedDateTime
    string <date-time> Nullable

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "isActive": true
    }

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Create

    Overview

    Create new Corrective Work order based on a supplied failure report.

    It's possible to supply operations in the create operation. If no operations are passed, a default operation will be created automatically.

    To lookup the created corrective work order use endpoint /work-orders/corrective-work-orders/{work-order-id}

    Update release v1.1.0

    Added externalPartnerWorkOrderId property to be used as reference to work order in external partner system.

    Update release v1.5.0

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Update release v1.6.0

    Added sortField and revisionId to create request. Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values for revisionId.

    Authorizations:
    Request Body schema: application/json

    Corrective Work order to create

    planningPlantId
    required
    string
    workCenterId
    required
    string
    workCenterPlantId
    required
    string
    title
    required
    string
    plantId
    required
    string
    failureReportId
    required
    string
    externalPartnerWorkOrderId
    string

    Work order id as represented in external partner system

    Array of objects (WorkOrderOperationListCreate)
    tagId
    string
    tagPlantId
    string
    plannerGroupId
    string
    maintenanceTypeId
    string
    basicStartDateTime
    string <date-time>
    basicEndDateTime
    string <date-time>
    revisionId
    string

    An identifier to the revision (shutdown or campaign work) this work order is related to. Read possible values from /plants/{plant-id}

    sortField
    string

    Field used to assist in grouping/sorting Work orders. Unstructured field used non-consistently between plants

    locationId
    string

    Structured location within the plant where the tag is located

    areaId
    string
    Deprecated

    Deprecated 01.2021 - Use locationId instead

    text
    string

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "failureReportId": "45836077",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "workCenterId": "CO2PIP",
    • "workCenterPlantId": "1100",
    • "title": "14xx/Installere flowline CD2",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "plantId": "1100",
    • "sortField": "PRS10239.WP12",
    • "revisionId": "PV04_21",
    • "basicStartDateTime": "2020-11-01T00:00:00Z",
    • "basicEndDateTime": "2021-03-01T00:00:00Z",
    • "text": "Project for replacing flowing on CD2\n",
    • "operations": [
      • {
        },
      • {
        }
      ]
    }

    Response samples

    Content type
    application/json
    {
    • "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n\nHvordan påvirker feilen utstyrets funksjon? ...\n",
    • "workOrderTypeId": "correctiveWorkOrder",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24983466",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "failureReportId": "45836077",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "002",
    • "maintenanceType": "Periodic maintenance",
    • "requiredEndDate": "2019-08-24",
    • "revisionId": "PS02_21",
    • "revision": "FV 26A/RIA",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "sortField": "PRS10239.WP12",
    • "priorityId": "L"
    }

    Project Work order - Update

    Overview

    Update project work order.

    Supports:

    • Append to text
    • Update workCenterId and workCenterPlantId
    • Update tagId and tagPlantId
    • Update basicStartDateTime and basicEndDateTime
    • Update sortField
    • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)

    Important information

    Append to text follows requirement I-103209 - Notation in long text field - Upstream offshore.

    Newest information in text is added above existing information and is automatically signed with date and full name of logged on user.

    Update release v1.0.0

    Added additional properties to update

    Update release v1.4.0

    Adjusted logic for append text to work order. Newest information in text is now added above existing information.

    Update release v1.6.0

    Added possibility for update of sortField and revisionId.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    Request Body schema: application/json

    The information to be updated

    Array ()
    op
    string
    Enum: "append" "replace"

    JSON Patch operation according to RFC6902.

    Operation replace is suitable for the following properties: /workCenterId,/workCenterPlantId,tagId,/tagPlantId,/basicStartDateTime,/basicEndDateTime

    Operation append is suitable for the following properties: /text

    path
    string
    Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField"

    The property to be updated by the non-trivial patch operation. /workCenterId and /workCenterPlantId must be provided in same request. tagId,/tagPlantId must be provided in same request.

    value
    string

    Value to be assigned to a resource property based on the operation and path.

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "append",
      • "path": "/text",
      • "value": "Text to append\nMulti-line"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Project Work order - Update status

    Activate or deactivate status for Work order

    Important information

    Currently, not all statuses are supported.

    The status supported are:

    1. RDEX - Ready for execution
    2. CLSD - Business close

    Update version 1.6.0

    Support for ActivatedDateTime for TECO status. It is an optional parameter which allows to overwrite the default reference date for TECO. If no value is provided, the value will be set to current timestamp.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    status-id
    required
    string
    Request Body schema: application/json

    Work order status to update

    isActive
    required
    boolean
    activatedDateTime
    string <date-time> Nullable

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "isActive": true
    }

    Response samples

    Content type
    application/json
    {}

    Project Work order - Create

    Overview

    Create new Project Work order

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    Update release v1.4.0

    Fixed bug related to costNetworkId.

    Update release v1.5.0

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Update release v1.6.0

    Added sortField and revisionId to create request. Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values for revisionId.

    Authorizations:
    Request Body schema: application/json

    Project Work order to create

    planningPlantId
    required
    string
    workCenterId
    required
    string
    workCenterPlantId
    required
    string
    title
    required
    string
    plantId
    required
    string
    locationId
    required
    string

    Structured location within the plant where the tag is located

    costNetworkId
    required
    string
    costNetworkOperationId
    required
    string
    required
    Array of objects (WorkOrderOperationCreate)
    isTimeOnlyWorkOrder
    boolean

    If true, this project work order can only be used for time cost and is represented by a different work order type (PM20) in SAP

    tagId
    string
    tagPlantId
    string
    plannerGroupId
    string
    maintenanceTypeId
    string
    basicStartDateTime
    string <date-time>
    basicEndDateTime
    string <date-time>
    revisionId
    string

    An identifier to the revision (shutdown or campaign work) this work order is related to. Read possible values from /plants/{plant-id}

    sortField
    string

    Field used to assist in grouping/sorting Work orders. Unstructured field used non-consistently between plants

    areaId
    string
    Deprecated

    Deprecated 01.2021 - Use locationId instead

    text
    string

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "title": "14xx/Installere flowline CD2",
    • "isTimeOnlyWorkOrder": false,
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "plantId": "1100",
    • "locationId": "CD2",
    • "sortField": "PRS10239.WP12",
    • "revisionId": "PV04_21",
    • "maintenanceTypeId": "015",
    • "basicStartDateTime": "2020-11-01T00:00:00Z",
    • "basicEndDateTime": "2021-03-01T00:00:00Z",
    • "text": "Project for replacing flowing on CD2\n",
    • "operations": [
      • {
        },
      • {
        }
      ]
    }

    Response samples

    Content type
    application/json
    {
    • "text": "Beskrivelse av prosjekt modifikasjon\n",
    • "workOrderTypeId": "projectWorkOrder",
    • "costWBS": "Conc.: Well A10 GL hook-up FL",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24684145",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "tag": "A10 OIL PRODUCTION WELL",
    • "title": "1416/Installerer Flowlinw A10",
    • "isTimeOnlyWorkOrder": false,
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "systemId": "11",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "015",
    • "maintenanceType": "Project work",
    • "revisionId": "PS02_21",
    • "revision": "FV 26A/RIA",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "costWBSId": "M.O037C.20.A.0002.A2",
    • "projectId": "M.O037C.20.A.0002",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "sortField": "PRS10239.WP12"
    }

    Modification Work order - Update

    Overview

    Update modification work order.

    Supports:

    • Append to text
    • Update workCenterId and workCenterPlantId
    • Update tagId and tagPlantId
    • Update basicStartDateTime and basicEndDateTime
    • Update sortField
    • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)

    Important information

    Append to text follows requirement I-103209 - Notation in long text field - Upstream offshore.

    Newest information in text is added above existing information and is automatically signed with date and full name of logged on user.

    Update release v1.0.0

    Added additional properties to update

    Update release v1.4.0

    Adjusted logic for append text to work order. Newest information in text is now added above existing information.

    Update release v1.6.0

    Added possibility for update of sortField and revisionId.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    Request Body schema: application/json

    The information to be updated

    Array ()
    op
    string
    Enum: "append" "replace"

    JSON Patch operation according to RFC6902.

    Operation replace is suitable for the following properties: /workCenterId,/workCenterPlantId,tagId,/tagPlantId,/basicStartDateTime,/basicEndDateTime

    Operation append is suitable for the following properties: /text

    path
    string
    Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField"

    The property to be updated by the non-trivial patch operation. /workCenterId and /workCenterPlantId must be provided in same request. tagId,/tagPlantId must be provided in same request.

    value
    string

    Value to be assigned to a resource property based on the operation and path.

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "append",
      • "path": "/text",
      • "value": "Text to append\nMulti-line"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    SAS Change Work order - Update

    Overview

    Update SAS Change work order.

    Supports:

    • Append to text
    • Update workCenterId and workCenterPlantId
    • Update tagId and tagPlantId
    • Update basicStartDateTime and basicEndDateTime
    • Update sortField
    • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)

    Important information

    Append to text follows requirement I-103209 - Notation in long text field - Upstream offshore.

    Newest information in text is added above existing information and is automatically signed with date and full name of logged on user.

    Update release v1.0.0

    Added additional properties to update

    Update release v1.4.0

    Adjusted logic for append text to work order. Newest information in text is now added above existing information.

    Update release v1.6.0

    Added possibility for update of sortField and revisionId.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    Request Body schema: application/json

    The information to be updated

    Array ()
    op
    string
    Enum: "append" "replace"

    JSON Patch operation according to RFC6902.

    Operation replace is suitable for the following properties: /workCenterId,/workCenterPlantId,tagId,/tagPlantId,/basicStartDateTime,/basicEndDateTime

    Operation append is suitable for the following properties: /text

    path
    string
    Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField"

    The property to be updated by the non-trivial patch operation. /workCenterId and /workCenterPlantId must be provided in same request. tagId,/tagPlantId must be provided in same request.

    value
    string

    Value to be assigned to a resource property based on the operation and path.

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "append",
      • "path": "/text",
      • "value": "Text to append\nMulti-line"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    SAS Change Work order - Update status

    Activate or deactivate status for Work order

    Important information

    Currently, not all statuses are supported.

    The status supported are:

    1. RDEX - Ready for execution
    2. CLSD - Business close

    Update version 1.6.0

    Support for ActivatedDateTime for TECO status. It is an optional parameter which allows to overwrite the default reference date for TECO. If no value is provided, the value will be set to current timestamp.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    status-id
    required
    string
    Request Body schema: application/json

    Work order status to update

    isActive
    required
    boolean
    activatedDateTime
    string <date-time> Nullable

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "isActive": true
    }

    Response samples

    Content type
    application/json
    {}

    SAS Change Work order - Create

    Overview

    Create new SAS Change Work order

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    Update release v1.5.0

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Update release v1.6.0

    Added sortField and revisionId to create request. Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values for revisionId.

    Authorizations:
    Request Body schema: application/json

    SAS Change Work order to create

    planningPlantId
    required
    string
    workCenterId
    required
    string
    workCenterPlantId
    required
    string
    title
    required
    string
    plantId
    required
    string
    locationId
    required
    string

    Structured location within the plant where the tag is located

    required
    Array of objects (WorkOrderOperationCreate)
    tagId
    required
    string
    tagPlantId
    required
    string
    costNetworkId
    string
    costNetworkOperationId
    string
    plannerGroupId
    string
    maintenanceTypeId
    string
    basicStartDateTime
    string <date-time>
    basicEndDateTime
    string <date-time>
    revisionId
    string

    An identifier to the revision (shutdown or campaign work) this work order is related to. Read possible values from /plants/{plant-id}

    sortField
    string

    Field used to assist in grouping/sorting Work orders. Unstructured field used non-consistently between plants

    areaId
    string
    Deprecated

    Deprecated 01.2021 - Use locationId instead

    text
    string

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "title": "14xx/Installere flowline CD2",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "plantId": "1100",
    • "locationId": "CD2",
    • "sortField": "PRS10239.WP12",
    • "revisionId": "PV04_21",
    • "maintenanceTypeId": "015",
    • "basicStartDateTime": "2020-11-01T00:00:00Z",
    • "basicEndDateTime": "2021-03-01T00:00:00Z",
    • "text": "Project for replacing flowing on CD2\n",
    • "operations": [
      • {
        },
      • {
        }
      ]
    }

    Response samples

    Content type
    application/json
    {
    • "text": "Beskrivelse av prosjekt modifikasjon\n",
    • "workOrderTypeId": "sasChangeWorkOrder",
    • "costWBS": "Conc.: Well A10 GL hook-up FL",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24684145",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "tag": "A10 OIL PRODUCTION WELL",
    • "title": "1416/Installerer Flowlinw A10",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "systemId": "11",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "Z06",
    • "maintenanceType": "SAS Change Activity",
    • "revisionId": "PS02_21",
    • "revision": "FV 26A/RIA",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "costWBSId": "M.O037C.20.A.0002.A2",
    • "projectId": "M.O037C.20.A.0002",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "sortField": "PRS10239.WP12"
    }

    Activity report - Lookup

    Overview

    Lookup a single activity report. The activity report represents work performed for a maintenance activity against a tag or an equipment.

    Update release v1.5.0

    Added createdDateTime for attachments.

    Update release v.1.6.0

    Added 301 response.

    Added isOpen to lookup response.

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the activity report.

    query Parameters
    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    include-activities
    boolean
    Default: false

    Include detailed information for activities

    include-attachments
    boolean
    Default: false

    Include attachments

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/activity-reports/%7Brecord-id%7D?include-status-details=SOME_BOOLEAN_VALUE&include-activities=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "activities": [
      • {
        }
      ],
    • "attachments": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "recordId": "45894100",
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "equipmentId": "12410072",
    • "title": "Endre skalering på PDT",
    • "text": "Multi-line text based on template",
    • "isOpen": true,
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "activeStatusIds": "OSNO CRTE",
    • "createdDateTime": "2019-08-24T14:15:22Z"
    }

    Activity report - Create

    Create new activity report

    Important information

    Equinor governing documents states that activity reports should be created at the lowest possible level in the tag hierachy.

    Currently, it's only supported to create failure reports for tags. In the future, support for equipment will be provided.

    Update release 1.0.0

    Added workCenterId, workCenterPlantId to create endpoint.

    Added activities to create endpoint.

    Update release 1.1.0

    Added relatedWorkOrder to create endpoint. This will allow a relationship to be established on creation to either technical feedback or object list of a work order.

    Update release 1.6.0

    Added isOpen to create endpoint. isOpen set to true enables creation of activity report in status OSNO - Outstanding Notification. By default isOpen is set to false, and activity report is created with NOCO - Notification Completed status.

    Authorizations:
    Request Body schema: application/json

    Activity report to create

    title
    required
    string
    text
    required
    string
    tagId
    string

    Required to input either tag or equipment

    tagPlantId
    string

    Required to input either tag or equipment

    equipmentId
    string

    Required to input either tag or equipment

    workCenterId
    string

    If workCenter is not provided, it will use default defined on tag/equipment

    workCenterPlantId
    string

    If workCenter is not provided, it will use default defined on tag/equipment

    isOpen
    boolean

    If isOpen is not provided, it will be set by default to false

    Array of objects (MaintenanceRecordActivityCreate)

    Activities to add to the activity report on creation

    object

    Defines a relationship to a specific part of a work order

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "title": "Skiftet ventiler på bulk system",
    • "isOpen": true,
    • "text": "Skiftet 5 stk ventiler på bulk system sement og barytt da både vent og\nTrykkside var utvasket, testet alt OK.\n"
    }

    Response samples

    Content type
    application/json
    {
    • "recordId": "45894100",
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "equipmentId": "12410072",
    • "title": "Endre skalering på PDT",
    • "text": "Multi-line text based on template",
    • "isOpen": true,
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "activeStatusIds": "OSNO CRTE",
    • "createdDateTime": "2019-08-24T14:15:22Z"
    }

    Tag / Equipment

    Endpoints related to tag or equipment master data.

    Tag - Lookup

    Overview

    Lookup a single tag with related information

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    Update release v0.9.0

    Added include-measuring-points and include-last-measurement query parameters.

    Update release v1.1.0

    Added additional characteristics with ids CRIT_MAIN_FUNCTION and CRIT_SUB_FUNCTION.

    Added certification-report, technical-information-update-requests and technical-clarifications for include-maintenance-records query parameter.

    Added include-work-orders to return work orders where the requested tag is the main reference. include-work-order-types can be used to limit to certain work order types.

    Added isOpen and completedDateTime propertiers for maintenance records if include-maintenance-records is true.

    Fixed bug for include-installed-equipment.

    Update release v1.3.0

    Added workCenterId, workCenterPlantId, workCenter, planningPlantId,plannerGroupId and plannerGroup properties.

    Added include-bill-of-materials query parameter.

    Update release v1.5.0

    Added revisionId and revision to related work orders (represents shutdown or campaign work).

    Authorizations:
    path Parameters
    plant-id
    required
    string
    tag-id
    required
    string
    query Parameters
    include-maintenance-records
    boolean
    Default: true

    Include maintenance records. If include-maintenance-record-types is not supplied, all support types are returned

    include-maintenance-record-types
    Array of strings
    Items Enum: "failure-report" "activity-report" "certification-report" "technical-information-update-request" "technical-clarification"

    Include which types of maintenance records

    include-work-orders
    boolean
    Default: true

    Include work orders. If include-work-order-types is not supplied, all support types are returned

    include-work-order-types
    Array of strings
    Items Enum: "correctiveWorkOrders" "preventiveWorkOrders" "modificationWorkOrders" "sasChangeWorkOrders" "projectWorkOrders" "subseaWorkOrders"

    Include which types of work orders. Use comma separated list of entries.

    include-installed-equipment
    boolean
    Default: false

    Include installed equipment

    include-catalog-profile-details
    boolean
    Default: false

    Include possible detection methods, failure modes and failure mechanisms

    include-characteristics
    boolean
    Default: false

    Include tag characteristics such as 'Function Fail Consequence' and 'Safety Critical Element (SCE)'

    include-maintenance-plan-items
    boolean
    Default: false

    Include Maintenance Plan items this functional location is part of

    include-measuring-points
    boolean
    Default: false

    Include measuring points for this tag

    include-last-measurement
    boolean
    Default: false

    Include last measurement for the measuring points (only relevant if include-measuring-points is true)

    include-bill-of-materials
    boolean
    Default: false

    Include bill of materials (also known as structure list) for tag and installed equipment

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/tags/%7Btag-id%7D?include-maintenance-records=SOME_BOOLEAN_VALUE&include-maintenance-record-types=SOME_ARRAY_VALUE&include-work-orders=SOME_BOOLEAN_VALUE&include-work-order-types=SOME_ARRAY_VALUE&include-installed-equipment=SOME_BOOLEAN_VALUE&include-catalog-profile-details=SOME_BOOLEAN_VALUE&include-characteristics=SOME_BOOLEAN_VALUE&include-maintenance-plan-items=SOME_BOOLEAN_VALUE&include-measuring-points=SOME_BOOLEAN_VALUE&include-last-measurement=SOME_BOOLEAN_VALUE&include-bill-of-materials=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "maintenanceConceptId": "VA1631",
    • "classId": "DG0105",
    • "workCenterId": "PPMELE",
    • "workCenter": "PV Elektro",
    • "workCenterPlantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "plannerGroup": "Plattform PV",
    • "characteristics": [
      • {
        }
      ],
    • "maintenanceRecords": {
      • "failureReports": [
        ],
      • "activityReports": [
        ],
      • "certificationReports": [
        ],
      • "technicalInformationUpdateRequests": [
        ],
      • "technicalClarifications": [
        ]
      },
    • "workOrders": {
      • "correctiveWorkOrders": [
        ],
      • "preventiveWorkOrders": [
        ],
      • "modificationWorkOrders": [
        ],
      • "sasChangeWorkOrders": [
        ],
      • "projectWorkOrders": [
        ],
      • "subseaWorkOrders": [
        ]
      },
    • "installedEquipment": [
      • {
        }
      ],
    • "maintenancePlanItems": [
      • {
        }
      ],
    • "catalogProfileDetails": {
      • "detectionMethods": [
        ],
      • "failureModes": [
        ],
      • "failureMechanisms": [
        ]
      },
    • "measuringPoints": [
      • {
        }
      ],
    • "billOfMaterials": [
      • {
        }
      ],
    • "isInactive": false,
    • "parentTagId": "AT5566",
    • "systemId": "BS",
    • "system": "PM-PROG.SYST.",
    • "ABCId": "5",
    • "ABC": "Crit.=M & Red.=B",
    • "locationId": "W14",
    • "location": "METERING DECK",
    • "areaId": "Deprecated - Use locationId",
    • "area": "Deprecated - Use location",
    • "catalogProfileId": "PM-160",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    }

    Tag hierachy - Get

    Get the entire tag hierachy for a plant. For each tag you will be provided with catalog profile and the parent tag.

    Filter: filter-by-root-tags

    Limits the response to the sub trees defined by the provided root tags. Parameters:

    • root-tags

    Important information

    This returns a significant amount of data as it returns all tags for a plant (which may be up to 250 000).

    The data will be cached in the API and renewed on a daily basis.

    Update release v0.9.0

    Added filter-by-root-tags filter.

    Authorizations:
    path Parameters
    plant-id
    required
    string
    query Parameters
    filter
    string
    Value: "filter-by-root-tags"

    Filter to limit the tag hierachy by

    root-tags
    string
    Example: root-tags=10A1,10A10,10A11,10A12,10A13

    Comma separated list of tags (without tagPlantId prefix)

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/tag-hierachy?filter=SOME_STRING_VALUE&root-tags=10A1%2C10A10%2C10A11%2C10A12%2C10A13' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "tagId": "AE5566",
      • "parentTagId": "AT5566",
      • "catalogProfileId": "PM-160"
      }
    ]

    Equipment - Lookup

    Overview

    Lookup a single equipment with related maintenance information.

    The endpoint has several include query parameters which allows a client to retrieve only the information which is relevant for their use case.

    Important information

    For warehouse and logistics data of an equipment, use SCM Logistics API.

    Example usage

    /equipment/11948620?include-maintenance-records=true&include-maintenance-record-types=failure-report&include-only-open-maintenance-records=true&include-work-orders=true&include-work-order-types=preventiveWorkOrders,subseaWorkOrders&include-only-open-work-orders=true&include-characteritics=true&include-status-details=true&api-version=v1 - Lookup equipment with status details and characteristics. Include open failure reports where the equipment is used as main reference. Include open subsea work orders and open preventive work orders where the equipment is either a material component or the main reference (equipmentId at work order header level).

    Update release v1.4.0

    include-work-orders now include work orders where the equipmentId is the main reference (equipmentId at work order header level).

    Update release v1.5.0

    Fixed known limitation for include-work-orders and include-only-open-work-orders=false.

    Bugfix for include-work-orders related to deleted equipment reservations.

    Added revisionId and revision to related work orders (represents shutdown or campaign work).

    Update release v1.6.0

    For include-work-orders, add information on the relationship between the equipment and the work order (for example the id of the reservation)

    Authorizations:
    path Parameters
    equipment-id
    required
    string

    The unique equipmentId in Equinor's system

    query Parameters
    include-maintenance-records
    boolean
    Default: true

    Include maintenance records. If include-maintenance-record-types is not supplied, all support types are returned

    include-maintenance-record-types
    Array of strings
    Items Enum: "modification-proposal" "failure-report" "activity-report" "certification-report" "technical-information-update-request" "technical-clarification"

    Include which types of maintenance records

    include-only-open-maintenance-records
    boolean
    Default: false

    Limit include-maintenance-records to only open maintenance records

    include-work-orders
    boolean
    Default: true

    Include work orders. If include-work-order-types is not supplied, all support types are returned

    include-work-order-types
    Array of strings
    Items Enum: "correctiveWorkOrders" "preventiveWorkOrders" "modificationWorkOrders" "sasChangeWorkOrders" "projectWorkOrders" "subseaWorkOrders"

    Include which types of work orders. Use comma separated list of entries.

    include-only-open-work-orders
    boolean
    Default: false

    Limit include-work-orders to only open work order

    include-catalog-profile-details
    boolean
    Default: false

    Include possible detection methods, failure modes and failure mechanisms

    include-characteristics
    boolean
    Default: false

    Include equipment characteristics such as 'Kontrollkort gyldig til' and 'Equipment group'

    include-measuring-points
    boolean
    Default: false

    Include measuring points for this equipment

    include-last-measurement
    boolean
    Default: false

    Include last measurement for the measuring points (only relevant if include-measuring-points is true)

    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/equipment/%7Bequipment-id%7D?include-maintenance-records=SOME_BOOLEAN_VALUE&include-maintenance-record-types=SOME_ARRAY_VALUE&include-only-open-maintenance-records=SOME_BOOLEAN_VALUE&include-work-orders=SOME_BOOLEAN_VALUE&include-work-order-types=SOME_ARRAY_VALUE&include-only-open-work-orders=SOME_BOOLEAN_VALUE&include-catalog-profile-details=SOME_BOOLEAN_VALUE&include-characteristics=SOME_BOOLEAN_VALUE&include-measuring-points=SOME_BOOLEAN_VALUE&include-last-measurement=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceConceptId": "ST0190",
    • "classId": "SUBSEA_POOL",
    • "workCenterId": "AKSO",
    • "workCenter": "Aker",
    • "workCenterPlantId": "1012",
    • "planningPlantId": "1012",
    • "plannerGroupId": "PL4",
    • "plannerGroup": "WOS support Equip",
    • "characteristics": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "maintenanceRecords": {
      • "modificationProposals": [
        ],
      • "failureReports": [
        ],
      • "activityReports": [
        ],
      • "certificationReports": [
        ],
      • "technicalInformationUpdateRequests": [
        ],
      • "technicalClarifications": [
        ]
      },
    • "workOrders": {
      • "correctiveWorkOrders": [
        ],
      • "preventiveWorkOrders": [
        ],
      • "modificationWorkOrders": [
        ],
      • "sasChangeWorkOrders": [
        ],
      • "projectWorkOrders": [
        ],
      • "subseaWorkOrders": [
        ]
      },
    • "catalogProfileDetails": {
      • "detectionMethods": [
        ],
      • "failureModes": [
        ],
      • "failureMechanisms": [
        ]
      },
    • "measuringPoints": [
      • {
        }
      ],
    • "serialNumber": "4500695422-20-003",
    • "partNumber": "10219863",
    • "isInService": true,
    • "plantId": "1915",
    • "ABCId": "3",
    • "ABC": "Crit.=H & Red.=A",
    • "systemId": "BS",
    • "system": "PM-PROG.SYST.",
    • "locationId": "W14",
    • "location": "METERING DECK",
    • "catalogProfileId": "PM-253",
    • "warrantyStartDate": "2019-08-24",
    • "warrantyEndDate": "2019-08-24",
    • "sortField": "TROLL 01.2017 – 12.2020",
    • "equipmentId": "11948620",
    • "equipment": "PEDESTAL,TH ISOLAT.SLEEVE,ASSY,10219863",
    • "materialId": "854586"
    }

    Equipment - Search

    Overview

    Search for equipment and include related maintenance information.

    The endpoint has several include query parameters which allows a client to retrieve only the information which is relevant for their use case.

    The client must in the request provide at least one of the following search parameters:

    • equipment-id-any-of
    • serial-number-any-of
    • vendor-part-number-any-of
    • material-id-any-of

    These parameters allow a comma-separated list of entries.

    If more than one of these parameters are supplied in the same request, the equipment in the response will need to fulfill all parameters (ie. operator AND is used between the parameter).

    Query parameters include-only-open-maintenance-records and include-only-open-work-orders have a recommended value of true in order to improve performance (default value false).

    Important information

    For warehouse and logistics data of an equipment, use SCM Logistics API.

    Example usage

    /equipment?serial-number-any-of=4500695422-20-003,4500695422-20-004&include-maintenance-records=true&include-maintenance-record-types=failure-report&include-only-open-maintenance-records=true&include-work-orders=true&include-work-order-types=preventiveWorkOrders,subseaWorkOrders&include-only-open-work-orders=true&include-characteristics=true&api-version=v1 - Search equipment based on serialNumber with characteritics. Include open failure reports where the equipment is used as main reference. Include open subsea work orders and open preventive work orders where the equipment is either a material component or the main reference (equipmentId at work order header level).

    Update release v1.4.0

    include-work-orders now include work orders where the equipmentId is the main reference (equipmentId at work order header level).

    Update release v1.5.0

    Fixed known limitation for include-work-orders and include-only-open-work-orders=false.

    Bugfix for include-work-orders related to deleted equipment reservations.

    Added revisionId and revision to related work orders (represents shutdown or campaign work).

    Update release v1.6.0

    For include-work-orders, add information on the relationship between the equipment and the work order (for example the id of the reservation)

    Authorizations:
    query Parameters
    equipment-id-any-of
    Array of strings
    Example: equipment-id-any-of=11948620

    Search based on equipmentIds. Wildcards are supported

    serial-number-any-of
    Array of strings
    Example: serial-number-any-of=4500695422-20-003

    Search based on serialNumber. Wildcards are supported

    vendor-part-number-any-of
    Array of strings
    Example: vendor-part-number-any-of=10219863

    Search based on partNumber. Wildcards are supported

    material-id-any-of
    Array of strings
    Example: material-id-any-of=854586

    Search based on materialId. Wildcards are supported

    include-maintenance-records
    boolean
    Default: true

    Include maintenance records. If include-maintenance-record-types is not supplied, all support types are returned

    include-maintenance-record-types
    Array of strings
    Items Enum: "modification-proposal" "failure-report" "activity-report" "certification-report" "technical-information-update-request" "technical-clarification"

    Include which types of maintenance records

    include-only-open-maintenance-records
    boolean
    Default: false

    Limit include-maintenance-records to only open maintenance records. Recommend using true in order to improve performance.

    include-work-orders
    boolean
    Default: true

    Include work orders. If include-work-order-types is not supplied, all support types are returned

    include-work-order-types
    Array of strings
    Items Enum: "correctiveWorkOrders" "preventiveWorkOrders" "modificationWorkOrders" "sasChangeWorkOrders" "projectWorkOrders" "subseaWorkOrders"

    Include which types of work orders. Use comma separated list of entries.

    include-only-open-work-orders
    boolean
    Default: false

    Limit include-work-orders to only open work order. Recommend using true in order to improve performance.

    include-characteristics
    boolean
    Default: false

    Include tag characteristics such as 'Kontrollkort gyldig til' and 'Equipment group'

    per-page
    integer
    Default: 20

    Results to return pr page

    page
    integer
    Default: 1

    Page to fetch

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/equipment?equipment-id-any-of=SOME_ARRAY_VALUE&serial-number-any-of=SOME_ARRAY_VALUE&vendor-part-number-any-of=SOME_ARRAY_VALUE&material-id-any-of=SOME_ARRAY_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-maintenance-record-types=SOME_ARRAY_VALUE&include-only-open-maintenance-records=SOME_BOOLEAN_VALUE&include-work-orders=SOME_BOOLEAN_VALUE&include-work-order-types=SOME_ARRAY_VALUE&include-only-open-work-orders=SOME_BOOLEAN_VALUE&include-characteristics=SOME_BOOLEAN_VALUE&per-page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "characteristics": [
        ],
      • "maintenanceRecords": {
        },
      • "workOrders": {
        },
      • "serialNumber": "4500695422-20-003",
      • "partNumber": "10219863",
      • "isInService": true,
      • "plantId": "1915",
      • "ABCId": "3",
      • "ABC": "Crit.=H & Red.=A",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "catalogProfileId": "PM-253",
      • "warrantyStartDate": "2019-08-24",
      • "warrantyEndDate": "2019-08-24",
      • "sortField": "TROLL 01.2017 – 12.2020",
      • "equipmentId": "11948620",
      • "equipment": "PEDESTAL,TH ISOLAT.SLEEVE,ASSY,10219863",
      • "materialId": "854586"
      }
    ]

    Tag - Search

    Search tags for a plant based on the first few characters of the tag.

    The results include key information for a tag. Additional information for each tag can be retrieved by using the endpoint /plants/{plant-id}/tags/{tag-id}.

    If there are no tags found for the search, the response will be HTTP 200 with an empty array as content.

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    The value of the tag-prefix parameter should be url-encoded in order to support special characters

    Examples

    /plants/1219/tags?tag-prefix=44&api-version=v1

    /plants/1100/tags?tag-prefix=02%22-EC-%202525-M&api-version=v1

    Authorizations:
    path Parameters
    plant-id
    required
    string
    query Parameters
    tag-prefix
    required
    string >= 2 characters

    The first few characters of the tag

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/tags?tag-prefix=SOME_STRING_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      }
    ]

    Master data for plants

    Provide master data for a plant for example for tags, areas and work centers. This is information is often required as parameters to other endpoints for example when creating a failure report.

    Tag catalog profiles - Get

    Overview

    Get all catalog profiles used in active tags at a plant. The catalog profile provides valid values for detection method, failure mode and failure mechanism when creating and updating maintenance-records such as failure-reports.

    Important information

    Some tags will not have an assigned catalog profile. For these tags use the catalog profile defined as isDefaultProfileForActivityReports or isDefaultProfileForFailureReports when creating and updating maintenance-records.

    Authorizations:
    path Parameters
    plant-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/tag-catalog-profiles \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "catalogProfileId": "PM-170",
      • "catalogProfile": "SC-Valves",
      • "isDefaultProfileForActivityReports": false,
      • "isDefaultProfileForFailureReports": false,
      • "detectionMethods": [
        ],
      • "failureModes": [
        ],
      • "failureMechanisms": [
        ]
      }
    ]

    Locations - Get

    Overview

    Get structured locations within the plant. locationId is commonly used as metadata for tags and when creating project-work-orders.

    Authorizations:
    path Parameters
    plant-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/locations \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "locationId": "MG29",
      • "location": "MAIN DECK AFT"
      }
    ]

    Areas - Get Deprecated

    Overview

    Get areas

    Important information

    Endpoint is deprecated as of 01.2021 in order to align with naming across Equinor system. Use /plants/{plant-id}/locations instead .

    Authorizations:
    path Parameters
    plant-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/areas \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "areaId": "MG29",
      • "area": "MAIN DECK AFT"
      }
    ]

    Planner groups - Get

    Get planner groups

    Authorizations:
    path Parameters
    plant-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/planner-groups \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "plannerGroupId": "PPM",
      • "plannerGroup": "Plattform PV"
      }
    ]

    Work centers - Get

    Overview

    Get Work centers for plant.

    Authorizations:
    path Parameters
    plant-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/work-centers \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "workCenterId": "PPMELE",
      • "workCenter": "PV Elektro"
      }
    ]

    Plants - Lookup

    Overview

    Lookup a single plant with related information.

    Update version 1.6.0

    Added include-revisions for reading master data on revisions for the planningPlantId of the provided plantId.

    Authorizations:
    path Parameters
    plant-id
    required
    string
    query Parameters
    include-locations
    boolean
    Default: false

    Include location for plant

    include-work-centers
    boolean
    Default: false

    Include work centers for plant

    include-planner-groups
    boolean
    Default: false

    Include planner groups for plant

    include-tag-catalog-profiles
    boolean
    Default: false

    Include tag catalog profiles in use for plant

    include-surface-degradation-factors
    boolean
    Default: false

    Include surface degradations for plant

    include-revisions
    boolean
    Default: false

    Include revisions for plant

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D?include-locations=SOME_BOOLEAN_VALUE&include-work-centers=SOME_BOOLEAN_VALUE&include-planner-groups=SOME_BOOLEAN_VALUE&include-tag-catalog-profiles=SOME_BOOLEAN_VALUE&include-surface-degradation-factors=SOME_BOOLEAN_VALUE&include-revisions=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "locations": [
      • {
        }
      ],
    • "workCenters": [
      • {
        }
      ],
    • "plannerGroups": [
      • {
        }
      ],
    • "tagCatalogProfiles": [
      • {
        }
      ],
    • "surfaceDegradationFactors": [
      • {
        }
      ],
    • "revisions": [
      • {
        }
      ],
    • "plantId": "5033",
    • "plant": "Askepott CAT J",
    • "planningPlantId": "5033",
    • "countryCode": "NO",
    • "country": "Norway"
    }

    Plants - Search

    Overview

    Search for plants through predefined filters.

    Filter: by-plant

    Search plant based on one or more plant-id

    Parameters:

    • plant-id (supports comma-separated list)

    Filter: by-planning-plant

    Search plant based on one or more planning-plant-id

    Parameters:

    • planning-plant-id (supports comma-separated list)
    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "by-plant" "by-planning-plant"

    Filter to limit plants by

    plant-id
    string
    Example: plant-id=5033,1201

    Plant identifier

    planning-plant-id
    string
    Example: planning-plant-id=1901,1100

    Plant used to plan the maintenance work. Usually same as plantId, but there are some cases were one planningPlantId is used across multiple plantId.

    include-locations
    boolean
    Default: false

    Include location for plant

    include-work-centers
    boolean
    Default: false

    Include work centers for plant

    include-planner-groups
    boolean
    Default: false

    Include planner groups for plant

    include-tag-catalog-profiles
    boolean
    Default: false

    Include tag catalog profiles in use for plant

    include-surface-degradation-factors
    boolean
    Default: false

    Include surface degradations for plant

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/plants?filter=SOME_STRING_VALUE&plant-id=5033%2C1201&planning-plant-id=1901%2C1100&include-locations=SOME_BOOLEAN_VALUE&include-work-centers=SOME_BOOLEAN_VALUE&include-planner-groups=SOME_BOOLEAN_VALUE&include-tag-catalog-profiles=SOME_BOOLEAN_VALUE&include-surface-degradation-factors=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "locations": [
        ],
      • "workCenters": [
        ],
      • "plannerGroups": [
        ],
      • "tagCatalogProfiles": [
        ],
      • "surfaceDegradationFactors": [
        ],
      • "revisions": [
        ],
      • "plantId": "5033",
      • "plant": "Askepott CAT J",
      • "planningPlantId": "5033",
      • "countryCode": "NO",
      • "country": "Norway"
      }
    ]

    Surface degradation factors - Get

    Get the surface degradation factors defined for a plant. This information can be used to understand how paint degrades over time.

    Authorizations:
    path Parameters
    plant-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/surface-degradation-factors \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "plantId": "1140",
      • "tagPrefix": "A4",
      • "surface": "PAINTED HANDRAILS",
      • "degradationRate1": 0.075,
      • "degradationRate2": 0.12,
      • "degradationRate3": 0.15
      }
    ]

    Activity reports

    Used to report work performed for a maintenance activity against a tag

    Activity report - Lookup

    Overview

    Lookup a single activity report. The activity report represents work performed for a maintenance activity against a tag or an equipment.

    Update release v1.5.0

    Added createdDateTime for attachments.

    Update release v.1.6.0

    Added 301 response.

    Added isOpen to lookup response.

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the activity report.

    query Parameters
    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    include-activities
    boolean
    Default: false

    Include detailed information for activities

    include-attachments
    boolean
    Default: false

    Include attachments

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/activity-reports/%7Brecord-id%7D?include-status-details=SOME_BOOLEAN_VALUE&include-activities=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "activities": [
      • {
        }
      ],
    • "attachments": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "recordId": "45894100",
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "equipmentId": "12410072",
    • "title": "Endre skalering på PDT",
    • "text": "Multi-line text based on template",
    • "isOpen": true,
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "activeStatusIds": "OSNO CRTE",
    • "createdDateTime": "2019-08-24T14:15:22Z"
    }

    Activity report - Create

    Create new activity report

    Important information

    Equinor governing documents states that activity reports should be created at the lowest possible level in the tag hierachy.

    Currently, it's only supported to create failure reports for tags. In the future, support for equipment will be provided.

    Update release 1.0.0

    Added workCenterId, workCenterPlantId to create endpoint.

    Added activities to create endpoint.

    Update release 1.1.0

    Added relatedWorkOrder to create endpoint. This will allow a relationship to be established on creation to either technical feedback or object list of a work order.

    Update release 1.6.0

    Added isOpen to create endpoint. isOpen set to true enables creation of activity report in status OSNO - Outstanding Notification. By default isOpen is set to false, and activity report is created with NOCO - Notification Completed status.

    Authorizations:
    Request Body schema: application/json

    Activity report to create

    title
    required
    string
    text
    required
    string
    tagId
    string

    Required to input either tag or equipment

    tagPlantId
    string

    Required to input either tag or equipment

    equipmentId
    string

    Required to input either tag or equipment

    workCenterId
    string

    If workCenter is not provided, it will use default defined on tag/equipment

    workCenterPlantId
    string

    If workCenter is not provided, it will use default defined on tag/equipment

    isOpen
    boolean

    If isOpen is not provided, it will be set by default to false

    Array of objects (MaintenanceRecordActivityCreate)

    Activities to add to the activity report on creation

    object

    Defines a relationship to a specific part of a work order

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "title": "Skiftet ventiler på bulk system",
    • "isOpen": true,
    • "text": "Skiftet 5 stk ventiler på bulk system sement og barytt da både vent og\nTrykkside var utvasket, testet alt OK.\n"
    }

    Response samples

    Content type
    application/json
    {
    • "recordId": "45894100",
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "equipmentId": "12410072",
    • "title": "Endre skalering på PDT",
    • "text": "Multi-line text based on template",
    • "isOpen": true,
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "activeStatusIds": "OSNO CRTE",
    • "createdDateTime": "2019-08-24T14:15:22Z"
    }

    Activity report - Update status

    Update status of activity report.

    The statuses available for the actiivty report can be found by querying /maintenance-records/activity-reports/{record-id}?include-status-details=true.

    Important information

    The endpoints supports status activation such as:

    • NOCO - Notification completed
    • CANC - Cancelled
    • EVCO - Evaluation Complete
    • RECO - Results Recording Complete

    If the activity report has a relationship to a Work Order, the status ORAS - Order assigned will be set automatically on the activity report.

    When the activty report is completed, the status NOCO - Notification completed must be set.

    Equinor's governing document GL1561 - Work orders and notifications types provides some additional information.

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the activity report.

    status-id
    required
    string
    Request Body schema: application/json-patch+json

    Activity report status to update

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Value: "/isActive"

    Path indicating the property to be impacted by the operation

    required
    string or boolean

    Value to be assigned to a resource property based on the operation and path

    Responses

    Request samples

    Content type
    application/json-patch+json
    [
    • {
      • "op": "replace",
      • "path": "/isActive",
      • "value": true
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Activity report - Add activities

    Overview

    Add activities for activity report.

    To find possible activityCodeGroupId and activityCodeId use the /maintenance-records/activity-codes?maintenance-record-id=....

    Authorizations:
    path Parameters
    record-id
    required
    string

    id of the activity report

    Request Body schema: application/json

    Activities to add to existing activity report

    Array ()
    title
    required
    string
    text
    string
    activityCodeId
    string
    activityCodeGroupId
    string
    startDateTime
    string <date-time>
    endDateTime
    string <date-time>

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "title": "Smøring av deler",
      • "text": " Smør deler\n Stram bolter",
      • "activityCodeId": "A50",
      • "activityCodeGroupId": "PM-GENE1",
      • "startDateTime": "2020-11-01T00:00:00Z",
      • "endDateTime": "2020-11-14T00:00:00Z"
      },
    • {
      • "title": "Rengjøring",
      • "activityCodeId": "A40",
      • "activityCodeGroupId": "PM-GENE1",
      • "startDateTime": "2020-11-11T12:00:00Z",
      • "endDateTime": "2020-11-11T16:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Activity report - Update activity

    Overview

    Update existing activity for activity report

    To find possible activityCodeGroupId and activityCodeId use the /maintenance-records/activity-codes?maintenance-record-id=....

    Authorizations:
    path Parameters
    record-id
    required
    string

    id of the actuvity report

    activity-id
    required
    string

    id of the activity

    Request Body schema: application/json

    Activities to add to existing failure report

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Enum: "/title" "/text" "/activityCodeId" "/activityCodeGroupId" "/startDateTime" "/endDateTime"

    Path indicating the property to be impacted by the operation

    value
    required
    string

    Value to be assigned to a resource property based on the operation and path

    • /activityCodeGroupId and /activityCodeId - Both fields must be present in order to update activity code

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "op": "replace",
      • "path": "/title",
      • "value": "Smøring av deler"
      },
    • {
      • "op": "replace",
      • "path": "/text",
      • "value": "Smør deler\\n Stram bolter"
      },
    • {
      • "op": "replace",
      • "path": "/activityCodeGroupId",
      • "value": "PM-GENE1"
      },
    • {
      • "op": "replace",
      • "path": "/activityCodeId",
      • "value": "A50"
      },
    • {
      • "op": "replace",
      • "path": "/startDateTime",
      • "value": "2020-11-11T12:00:00Z"
      },
    • {
      • "op": "replace",
      • "path": "/endDateTime",
      • "value": "2020-11-11T16:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Activity report - Attachment download

    Download single attachment for activity report

    Authorizations:
    path Parameters
    record-id
    required
    string
    attachment-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/activity-reports/%7Brecord-id%7D/attachments/%7Battachment-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Activity report - Attachment upload

    Upload attachment for activity report

    Authorizations:
    path Parameters
    record-id
    required
    string
    Request Body schema: multipart/form-data
    files
    Array of strings <binary>

    Responses

    Request samples

    curl --request POST \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/activity-reports/%7Brecord-id%7D/attachments \
      --header 'content-type: multipart/form-data' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Failure reports

    Used when an equipment fault/degradation is detected or when there is need for work that is not related to equipment fault.

    Failure report - Lookup

    Overview

    Lookup a single failure report

    Update release 0.9.0

    Added failureMechanismId,failureMechanismGroupId to additionalMetadata.

    Update release 1.0.0

    Added tasks for failure reports through query option include-tasks. Added properties plannerGroupId, plannerGroup and planningPlantId.

    Update release 1.1.0

    Added isOpen and completedDateTime.

    Added hasUnsafeFailureMode and unsafeFailureModeStatus properties according to business process requirement R-12137 - Give immediate warning of unsafe failure modes.

    Update release 1.3.0

    Added priorityId to response.

    Update release 1.4.0

    Added workCenter and equipment to response. Fields include descriptions of workCenterId and equipmentId

    Update release v1.5.0

    Added createdDateTime for attachments.

    Update release v1.6.0

    Added 301 response.

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the failure report.

    query Parameters
    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    include-tag-details
    boolean
    Default: false

    Include details about tag for failure report

    include-activities
    boolean
    Default: false

    Include detailed information for activities

    include-tasks
    boolean
    Default: false

    Include detailed information for tasks

    include-attachments
    boolean
    Default: false

    Include attachments

    include-additional-metadata
    boolean
    Default: false

    Include extra metadata related to additional failure modes and detection modes. This is only used in rare cases

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/failure-reports/%7Brecord-id%7D?include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-activities=SOME_BOOLEAN_VALUE&include-tasks=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-additional-metadata=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "statuses": [
      • {
        }
      ],
    • "activities": [
      • {
        }
      ],
    • "tasks": [
      • {
        }
      ],
    • "attachments": [
      • {
        }
      ],
    • "tagDetails": {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      },
    • "additionalMetadata": [
      • {
        }
      ],
    • "recordId": "45894100",
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "equipmentId": "12410072",
    • "equipment": "Strainer at inlet Recirc Pmp",
    • "title": "Endre skalering på PDT",
    • "text": "Multi-line text based on template",
    • "workCenterId": "SPIAUT",
    • "workCenter": "AI Automasjon",
    • "workCenterPlantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "plannerGroup": "Plattform PV",
    • "locationId": "CD2",
    • "location": "METERING DECK",
    • "areaId": "Deprecated - Use locationId",
    • "area": "Deprecated - Use location",
    • "systemId": "11",
    • "failureImpactId": "D",
    • "failureImpact": "Unwell (InF)",
    • "priorityId": "D",
    • "isBreakdown": false,
    • "hasUnsafeFailureMode": false,
    • "unsafeFailureModeStatus": "OUTSTANDING",
    • "requiredEndDate": "2019-08-24",
    • "failureModeId": "STC",
    • "failureMode": "CST Struct. deficiency containment risk",
    • "failureModeGroupId": "PMMO-080",
    • "failureModeGroup": "ISO Piping",
    • "detectionMethodId": "3",
    • "detectionMethod": "ISO Inspection",
    • "detectionMethodGroupId": "PMDM-005",
    • "detectionMethodGroup": "ISO Scheduled activities",
    • "failureMechanismId": "2.9",
    • "failureMechanism": "CST Corrosion external",
    • "failureMechanismGroupId": "PMMC-010",
    • "failureMechanismGroup": "ISO Material failure",
    • "correctiveWorkOrderExist": false,
    • "correctiveWorkOrderId": "24871954",
    • "activeStatusIds": "OSNO CRTE",
    • "isOpen": true,
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "completedDateTime": "2019-08-24T14:15:22Z",
    • "failureStartDateTime": "2019-08-24T14:15:22Z",
    • "failureEndDateTime": "2019-08-24T14:15:22Z"
    }

    Failure report - Update

    Overview

    Update key fields of a failure report.

    Important information

    To avoid accidently overwriting the multi-line text property, the endpoint will reject any requests with an empty text property.

    Update release 1.0.0

    Added possibility to update plannerGroupId.

    Update release 1.1.0

    Added hasUnsafeFailureMode and unsafeFailureModeStatus properties to response according to business process requirement R-12137 - Give immediate warning of unsafe failure modes.

    Update release 1.3.0

    Added priorityId to response.

    Update release 1.4.0

    Added workCenter and equipment to response. Fields include descriptions of workCenterId and equipmentId

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the failure report.

    Request Body schema: application/json

    Failure report to create

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Enum: "/tagId" "/tagPlantId" "/equipmentId" "/failureImpactId" "/failureModeId" "/failureModeGroupId" "/detectionMethodId" "/detectionMethodGroupId" "/failureMechanismId" "/failureMechanismGroupId" "/workCenterId" "/workCenterPlantId" "/locationId" "/title" "/text" "/failureStartDateTime" "/failureEndDateTime" "/plannerGroupId"

    Path indicating the property to be impacted by the operation

    value
    required
    string

    Value to be assigned to a resource property based on the operation and path.

    Path specific information:

    • /title - max-length 40 characters
    • /plannerGroupId - Must exist in for the planningPlantId of the maintenance record

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "replace",
      • "path": "/title",
      • "value": "Material failure"
      },
    • {
      • "op": "replace",
      • "path": "/text",
      • "value": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nMaterial tretthet..\n"
      }
    ]

    Response samples

    Content type
    application/json
    {
    • "recordId": "45894100",
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "equipmentId": "12410072",
    • "equipment": "Strainer at inlet Recirc Pmp",
    • "title": "Endre skalering på PDT",
    • "text": "Multi-line text based on template",
    • "workCenterId": "SPIAUT",
    • "workCenter": "AI Automasjon",
    • "workCenterPlantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "plannerGroup": "Plattform PV",
    • "locationId": "CD2",
    • "location": "METERING DECK",
    • "areaId": "Deprecated - Use locationId",
    • "area": "Deprecated - Use location",
    • "systemId": "11",
    • "failureImpactId": "D",
    • "failureImpact": "Unwell (InF)",
    • "priorityId": "D",
    • "isBreakdown": false,
    • "hasUnsafeFailureMode": false,
    • "unsafeFailureModeStatus": "OUTSTANDING",
    • "requiredEndDate": "2019-08-24",
    • "failureModeId": "STC",
    • "failureMode": "CST Struct. deficiency containment risk",
    • "failureModeGroupId": "PMMO-080",
    • "failureModeGroup": "ISO Piping",
    • "detectionMethodId": "3",
    • "detectionMethod": "ISO Inspection",
    • "detectionMethodGroupId": "PMDM-005",
    • "detectionMethodGroup": "ISO Scheduled activities",
    • "failureMechanismId": "2.9",
    • "failureMechanism": "CST Corrosion external",
    • "failureMechanismGroupId": "PMMC-010",
    • "failureMechanismGroup": "ISO Material failure",
    • "correctiveWorkOrderExist": false,
    • "correctiveWorkOrderId": "24871954",
    • "activeStatusIds": "OSNO CRTE",
    • "isOpen": true,
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "completedDateTime": "2019-08-24T14:15:22Z",
    • "failureStartDateTime": "2019-08-24T14:15:22Z",
    • "failureEndDateTime": "2019-08-24T14:15:22Z"
    }

    Failure report - Update status

    Update status of failure report.

    The statuses available for the failure report can be found by querying /maintenance-records/failure-reports/{record-id}?include-status-details=true.

    Important information

    When a failure report is created, it will have status CRTE - Created and OSNO - Outstanding Notification.

    Technical responsible (Norwegian: Fagansvarlig) will be responsible for initial evaluation of the failure report. As part of this, the statuses QAVE - Notification QA Verified or RIDO - Risk Assessment Done can be set.

    The statuses REJE - Rejected, Not Needed or CANC - Cancelled, Duplicate can also be set at this stage. Clients should ensure text of failure report is updated with reasoning behind REJE/CANC status through PATCH request to /maintenance-records/failure-reports/{record-id}

    If the failure report fulfills the criteria for simplified maintenance, the status NOSI - Exec. as Simpl. Maint. can be set.

    When the failure report is ready to be approved and prioritized, the status NOPR - Notification in process must be set.

    When the failure report has been approved and prioritized, the status RIVE - Risk Assesment Verified can be set. In addition, the failure report will be assigned to a corrective work order (either in ERP system or through POST request to /work-orders/corrective-work-orders) and the status ORAS - Order assigned will be set automatically on the failure report.

    When the failure report is completed, the status NOCO - Notification completed must be set. This will typically be set automatically for the failure report when the corrective work order is set to status TECO - Technical Complete (either in ERP system or through PATCH request to /work-orders/corrective-work-orders/{work-order-id}/statuses/TECO).

    Setting the status EXTR - Date Extension Required is not supported for this endpoint and will give a HTTP 400 response. Clients should use POST request against /maintenance-records/failure-reports/{record-id}/required-end-extensions instead.

    Setting the ORAS - Order assigned is not supported for this endpoint and will give a HTTP 400 response.

    Equinor's governing document GL1561 - Work orders and notifications types provides some additional information.

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the failure report.

    status-id
    required
    string
    Request Body schema:

    Failure report status to update

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Value: "/isActive"

    Path indicating the property to be impacted by the operation

    required
    string or boolean

    Value to be assigned to a resource property based on the operation and path

    Responses

    Request samples

    Content type
    [
    • {
      • "op": "replace",
      • "path": "/isActive",
      • "value": true
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Failure report - Attachment download

    Download single attachment for failure report

    Authorizations:
    path Parameters
    record-id
    required
    string
    attachment-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/failure-reports/%7Brecord-id%7D/attachments/%7Battachment-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Failure report - Attachment upload

    Upload attachment for failure report

    Authorizations:
    path Parameters
    record-id
    required
    string
    Request Body schema: multipart/form-data
    files
    Array of strings <binary>

    Responses

    Request samples

    curl --request POST \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/failure-reports/%7Brecord-id%7D/attachments \
      --header 'content-type: multipart/form-data' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Failure report - Search

    Overview

    Search for failure reports through predefined filters. Each filter has a defined action and a set of parameters as described below.

    Response

    The response does not include status details for each failure report. This can be found by subsequent call to lookup failure-reports

    Filter: recent-status-activations

    Failure reports based on recent status activations for the failure reports. Parameters:

    • status-id
    • plant-id
    • max-days-since-activation

    Filter: open-by-plant

    Find open failure reports by plant Parameters:

    • plant-id
    • location-id (optional)
    • system-id (optional)

    Update release v1.1.0

    Added open-by-plant filter and properties systemId and locationId.

    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "recent-status-activations" "open-by-plant"

    Filter to limit the failure reports by

    status-id
    string

    Status

    plant-id
    string

    Plant

    location-id
    string

    Structured location within the plant. Use /plants/{plant-id}/locations for possible values

    system-id
    string

    System id to filter by

    max-days-since-activation
    integer <int32> [ 0 .. 255 ]

    Define how many days from the current day to include results for. 0 if only include for today

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/failure-reports?filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&location-id=SOME_STRING_VALUE&system-id=SOME_STRING_VALUE&max-days-since-activation=SOME_INTEGER_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "recordId": "45894100",
      • "tagId": "PX",
      • "tagPlantId": "1100",
      • "equipmentId": "12410072",
      • "title": "Endre skalering på PDT",
      • "requiredEndDate": "2019-08-24",
      • "failureImpactId": "D",
      • "isBreakdown": false,
      • "locationId": "W14",
      • "systemId": "11",
      • "failureModeId": "STC",
      • "failureModeGroupId": "PMMO-080",
      • "detectionMethodId": "STC",
      • "detectionMethodGroupId": "PMDM-005",
      • "failureMechanismId": "2.9",
      • "failureMechanismGroupId": "PMMC-010",
      • "activeStatusIds": "OSNO CRTE",
      • "isOpen": true,
      • "createdDateTime": "2019-08-24T14:15:22Z",
      • "completedDateTime": "2019-08-24T14:15:22Z",
      • "correctiveWorkOrderExist": false,
      • "correctiveWorkOrderId": "24871954",
      • "failureStartDateTime": "2019-08-24T14:15:22Z",
      • "failureEndDateTime": "2019-08-24T14:15:22Z"
      }
    ]

    Failure report - Create

    Create new failure report

    Important information

    Equinor governing documents states that failure reports should be created at the lowest possible level in the tag hierachy.

    It is possible to create failure report for either tagId or equipmentId.

    If hasUnsafeFailureMode is true after creation, operations supervisor must be contacted immediately in accordance with business process requirement R-12137 - Give immediate warning of unsafe failure modes

    Update release 0.9.0

    Added failureMechanismId,failureMechanismGroupId properties to additionalMetadata on creation.

    Update release 1.1.0

    Added hasUnsafeFailureMode and unsafeFailureModeStatus properties according to business process requirement R-12137 - Give immediate warning of unsafe failure modes.

    Added relatedWorkOrder to create endpoint. This will allow a relationship to be established on creation to either technical feedback or object list of a work order.

    Update release 1.2.0

    Addded externalPartnerId.

    Update release 1.3.0

    Added priorityId to response.

    Update release 1.4.0

    Added workCenter and equipment to response. Fields include descriptions of workCenterId and equipmentId

    Authorizations:
    Request Body schema: application/json

    Failure report to create

    title
    required
    string
    text
    required
    string
    failureImpactId
    required
    string
    Enum: "D" "S" "U" "X"
    failureModeId
    required
    string
    failureModeGroupId
    required
    string
    detectionMethodId
    required
    string
    detectionMethodGroupId
    required
    string
    tagId
    string

    Required to input either tag or equipment

    tagPlantId
    string

    Required to input either tag or equipment

    isBreakdown
    boolean
    failureMechanismId
    string
    failureMechanismGroupId
    string
    workCenterId
    string

    If workCenter is not provided, it will use default defined on tag

    workCenterPlantId
    string

    If workCenter is not provided, it will use default defined on tag

    externalPartnerRecordId
    string <= 12 characters

    If failure report was initially created in an external system, this represent the unique id of it

    externalPartnerId
    string <= 20 characters

    If modification proposal was initially created in an external system, this represent the name of the external system

    createdDateTime
    string <date-time>

    Optional parameter used in special cases where the failure report was created at an earlier time. Should not be a date in the future

    failureStartDateTime
    string <date-time>

    The point in time where the failure started

    failureEndDateTime
    string <date-time>

    The point in time where the failure resolved

    Array of objects (MaintenanceRecordItemMetadataCreate)

    Additional metadata to be used in special cases

    object

    Defines a relationship to a specific part of a work order

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "title": "Skiftet ventiler på bulk system",
    • "failureImpactId": "S",
    • "failureModeId": "STC",
    • "failureModeGroupId": "PMMO-080",
    • "detectionMethodId": "3",
    • "detectionMethodGroupId": "PMDM-005",
    • "failureMechanismId": "2.9",
    • "failureMechanismGroupId": "PMMC-010",
    • "text": "Skiftet 5 stk ventiler på bulk system sement og barytt da både vent og\nTrykkside var utvasket, testet alt OK.\n"
    }

    Response samples

    Content type
    application/json
    {
    • "recordId": "45894100",
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "equipmentId": "12410072",
    • "equipment": "Strainer at inlet Recirc Pmp",
    • "title": "Endre skalering på PDT",
    • "text": "Multi-line text based on template",
    • "workCenterId": "SPIAUT",
    • "workCenter": "AI Automasjon",
    • "workCenterPlantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "plannerGroup": "Plattform PV",
    • "locationId": "CD2",
    • "location": "METERING DECK",
    • "areaId": "Deprecated - Use locationId",
    • "area": "Deprecated - Use location",
    • "systemId": "11",
    • "failureImpactId": "D",
    • "failureImpact": "Unwell (InF)",
    • "priorityId": "D",
    • "isBreakdown": false,
    • "hasUnsafeFailureMode": false,
    • "unsafeFailureModeStatus": "OUTSTANDING",
    • "requiredEndDate": "2019-08-24",
    • "failureModeId": "STC",
    • "failureMode": "CST Struct. deficiency containment risk",
    • "failureModeGroupId": "PMMO-080",
    • "failureModeGroup": "ISO Piping",
    • "detectionMethodId": "3",
    • "detectionMethod": "ISO Inspection",
    • "detectionMethodGroupId": "PMDM-005",
    • "detectionMethodGroup": "ISO Scheduled activities",
    • "failureMechanismId": "2.9",
    • "failureMechanism": "CST Corrosion external",
    • "failureMechanismGroupId": "PMMC-010",
    • "failureMechanismGroup": "ISO Material failure",
    • "correctiveWorkOrderExist": false,
    • "correctiveWorkOrderId": "24871954",
    • "activeStatusIds": "OSNO CRTE",
    • "isOpen": true,
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "completedDateTime": "2019-08-24T14:15:22Z",
    • "failureStartDateTime": "2019-08-24T14:15:22Z",
    • "failureEndDateTime": "2019-08-24T14:15:22Z"
    }

    Failure report - Add activities

    Overview

    Add activities for failure report.

    To find possible activityCodeGroupId and activityCodeId use the /maintenance-records/activity-codes?maintenance-record-id=....

    Update release v0.8.0

    activityCodeId and activityCodeGroupId are no longer required properties. Client's are still recommended to provide them if possible.

    Authorizations:
    path Parameters
    record-id
    required
    string

    id of the failure report

    Request Body schema: application/json

    Activities to add to existing failure report

    Array ()
    title
    required
    string
    text
    string
    activityCodeId
    string
    activityCodeGroupId
    string
    startDateTime
    string <date-time>
    endDateTime
    string <date-time>

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "title": "Smøring av deler",
      • "text": " Smør deler\n Stram bolter",
      • "activityCodeId": "A50",
      • "activityCodeGroupId": "PM-GENE1",
      • "startDateTime": "2020-11-01T00:00:00Z",
      • "endDateTime": "2020-11-14T00:00:00Z"
      },
    • {
      • "title": "Rengjøring",
      • "activityCodeId": "A40",
      • "activityCodeGroupId": "PM-GENE1",
      • "startDateTime": "2020-11-11T12:00:00Z",
      • "endDateTime": "2020-11-11T16:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Failure report - Add tasks

    Overview

    Add task to failure report.

    If taskResponsibleEmail is provided and has a valid Equinor email address, the taskResponsibleId will be set to the employee id of the user.

    To find possible taskCodeGroupId and taskCodeId use the /maintenance-records/task-codes?maintenance-record-id=....

    Authorizations:
    path Parameters
    record-id
    required
    string

    id of the failure report

    Request Body schema: application/json

    Tasks to add to existing failure report

    Array ()
    title
    required
    string
    text
    string
    taskCodeId
    string
    taskCodeGroupId
    string
    taskResponsibleEmail
    string

    Must be an Equinor email address. TaskResponsibleId is populated with the employee id of this user.

    plannedStartDateTime
    string <date-time> Nullable
    plannedEndDateTime
    string <date-time> Nullable

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "title": "Teknisk avklaringsbehov",
      • "text": "Behov for å identifisere historikk ifra AO",
      • "taskCodeId": "1020",
      • "taskCodeGroupId": "PM-M2",
      • "taskResponsibleEmail": "shortname@equinor.com",
      • "plannedStartDateTime": "2020-11-01T00:00:00Z",
      • "plannedEndDateTime": "2020-11-14T00:00:00Z"
      },
    • {
      • "title": "Teknisk avklaringsbehov #2",
      • "text": "Behov for å identifisere historikk ifra AO",
      • "taskCodeId": "1020",
      • "taskCodeGroupId": "PM-M2",
      • "taskResponsibleEmail": "shortname@equinor.com",
      • "plannedStartDateTime": "2020-12-01T00:00:00Z",
      • "plannedEndDateTime": "2020-12-14T00:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Failure report - Update task status

    Overview

    Update status of an existing task for failure report.

    To find tasks avaliable on a failure report, use the /maintenance-records/failure-reports/{record-id}?include-tasks=true.

    When a task is created, it will have status TSOS - Outstanding task and CRTE - Created. The status TSRL - Task Released can be set afterwards.

    Authorizations:
    path Parameters
    record-id
    required
    string

    id of the failure report

    task-id
    required
    string

    id of the task

    status-id
    required
    string

    id of the status

    Request Body schema: application/json

    Task status to update

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Value: "/isActive"

    Path indicating the property to be impacted by the operation

    required
    string or boolean

    Value to be assigned to a resource property based on the operation and path

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "op": "replace",
      • "path": "/isActive",
      • "value": true
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Failure report - Update activity

    Overview

    Update existing activity for failure report

    To find possible activityCodeGroupId and activityCodeId use the /maintenance-records/activity-codes?maintenance-record-id=....

    Authorizations:
    path Parameters
    record-id
    required
    string

    id of the failure report

    activity-id
    required
    string

    id of the activity

    Request Body schema: application/json

    Activities to update for existing failure report

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Enum: "/title" "/text" "/activityCodeId" "/activityCodeGroupId" "/startDateTime" "/endDateTime"

    Path indicating the property to be impacted by the operation

    value
    required
    string

    Value to be assigned to a resource property based on the operation and path

    • /activityCodeGroupId and /activityCodeId - Both fields must be present in order to update activity code

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "op": "replace",
      • "path": "/title",
      • "value": "Smøring av deler"
      },
    • {
      • "op": "replace",
      • "path": "/text",
      • "value": "Smør deler\\n Stram bolter"
      },
    • {
      • "op": "replace",
      • "path": "/activityCodeGroupId",
      • "value": "PM-GENE1"
      },
    • {
      • "op": "replace",
      • "path": "/activityCodeId",
      • "value": "A50"
      },
    • {
      • "op": "replace",
      • "path": "/startDateTime",
      • "value": "2020-11-11T12:00:00Z"
      },
    • {
      • "op": "replace",
      • "path": "/endDateTime",
      • "value": "2020-11-11T16:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Failure report - Extend required end date

    Overview

    Extend the required end date of the failure report. This endpoint should only be executed by persons which have access to the 'action box' in Equinor's ERP system.

    Client applications should take special care in ensuring the business process of Equinor is followed in advance of calling this endpoint.

    The activityCodeId defines the reason for the extension

    • A121= Lack of resources
    • A122= Lack of spares
    • A123=Maintenance access
    • A124=Failure development time

    An activity for the failure report will be created by this call and the status Date Extension Required ('EXTR') will be set.

    Important information

    Most users will not have sufficient authorizations to execute this endpoint. If a request fails due to missing authorizations, the response code will be HTTP 403.

    Authorizations:
    path Parameters
    record-id
    required
    string

    id of the failure report

    Request Body schema: application/json

    Activities to add to existing failure report

    requiredEndDate
    required
    string <date>

    The extended required end date of the failure report

    riskAssessmentTitle
    required
    string

    Title of the risk assessment done for the extension

    riskAssessmentText
    required
    string

    The text should describe the risk assessment done

    activityCodeId
    required
    string
    Enum: "A121" "A122" "A123" "A124"

    The activity code defines the reason for the extension. A121= Lack of resources, A122= Lack of spares, A123=Maintenance access and A124=Failure development time

    activityCodeGroupId
    required
    string
    Value: "PM-ACB-1"

    The group the activityCodeId belongs to. Currently, only a single value is possible

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "requiredEndDate": "2021-11-20",
    • "riskAssessmentTitle": "Risk vurdering for utsettelse",
    • "riskAssessmentText": "Risk vurdert nøye\nVedlikehold kan utsettes",
    • "activityCodeId": "A121",
    • "activityCodeGroupId": "PM-ACB-1"
    }

    Response samples

    Content type
    application/json
    {}

    Failure report - Update additional metadata

    Overview

    Update additional metadata for a failure report. This related to additional failure modes and detection modes for a failure report and only used in rare cases.

    The metadata-id available to update for a given failure report can be found by querying /maintenance-records/failure-reports/{record-id}?include-additional-metadata=true

    Update release 0.9.0

    Added failureMechanismId,failureMechanismGroupId properties.

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the failure report.

    metadata-id
    required
    string

    The id of the metadata record

    Request Body schema: application/json

    Update to make for metadata

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Enum: "/title" "/failureModeId" "/failureModeGroupId" "/detectionMethodId" "/detectionMethodGroupId" "/failureMechanismId" "/failureMechanismGroupId"

    Path indicating the property to be impacted by the operation

    value
    required
    string

    Value to be assigned to a resource property based on the operation and path

    Path specific information:

    • /failureModeId and /failureModeGroupId - Both fields must be present in order to update failure mode
    • /detectionMethodId and /detectionMethodGroupId - Both fields must be present in order to update detection method
    • /failureMechanismId and /failureMechanismGroupId - Both fields must be present in order to update failure mechanism method

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "op": "replace",
      • "path": "/title",
      • "value": "Material failure"
      },
    • {
      • "op": "replace",
      • "path": "/failureModeId",
      • "value": "STC"
      },
    • {
      • "op": "replace",
      • "path": "/failureModeGroupId",
      • "value": "PMMO-080"
      },
    • {
      • "op": "replace",
      • "path": "/failureModeId",
      • "value": "STC"
      },
    • {
      • "op": "replace",
      • "path": "/detectionMethodId",
      • "value": "3"
      },
    • {
      • "op": "replace",
      • "path": "/detectionMethodGroupId",
      • "value": "PMDM-005"
      },
    • {
      • "op": "replace",
      • "path": "/failureMechanismId",
      • "value": "2.9"
      },
    • {
      • "op": "replace",
      • "path": "/failureMechanismGroupId",
      • "value": "PMMC-010"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Failure report - Add additional metadata

    Overview

    Add additional metadata for a failure report. This related to additional failure modes and detection modes for a failure report and only used in rare cases.

    The metadata-id available to update for a given failure report can be found by querying /maintenance-records/failure-reports/{record-id}?include-additional-metadata=true

    Update release 0.9.0

    Added failureMechanismId,failureMechanismGroupId properties.

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the failure report.

    Request Body schema: application/json

    Update to make for metadata

    Array ()
    title
    string <= 40 characters
    failureModeId
    string
    failureModeGroupId
    string
    detectionMethodId
    string
    detectionMethodGroupId
    string
    failureMechanismId
    string
    failureMechanismGroupId
    string

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "title": "Material failure",
      • "failureModeId": "STC",
      • "failureModeGroupId": "PMMO-080",
      • "detectionMethodId": "3",
      • "detectionMethodGroupId": "PMDM-005",
      • "failureMechanismId": "2.9",
      • "failureMechanismGroupId": "PMMC-010"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Modification proposals

    Modification proposal initiates the processing of a modification, replacement or maintenance project. In Equinor for upstream offshore, a modification proposal initiates the business processes 'OM103.01 - Initiate projects on plants in operation' or 'OM103.70.01 - Propose simple modifications in safety and automation systems'.

    Modification Proposal - Lookup

    Overview

    Modification proposal initiates the processing of a modification, replacement or maintenance project. In Equinor for upstream offshore, a modification proposal initiates the business processes 'OM103.01 - Initiate projects on plants in operation' or 'OM103.70.01 - Propose simple modifications in safety and automatiion systems'. This request looks up a single Modification proposal.

    Update release v1.5.0

    Added createdDateTime for attachments.

    Update release 1.6.0

    Added 301 response.

    Authorizations:
    path Parameters
    record-id
    required
    string
    query Parameters
    include-tasks
    boolean
    Default: true

    Include detailed information for tasks

    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    include-attachments
    boolean
    Default: false

    Include attachments

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/modification-proposals/%7Brecord-id%7D?include-tasks=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "attachments": [
      • {
        }
      ],
    • "tasks": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "text": "Multi-line text based on template",
    • "plannerGroup": "Anleggsintegritet",
    • "recordId": "45894100",
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "equipmentId": "12410072",
    • "reasonGroupId": "PMB-PRIM",
    • "reasonId": "MA70",
    • "priorityId": "H",
    • "title": "Endre skalering på PDT",
    • "isSimpleProposal": false,
    • "activeStatusIds": "OSNO CRTE",
    • "plannerGroupId": "SPI",
    • "plannerGroupPlantId": "1100",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "requiredStartDate": "2019-08-24",
    • "requiredEndDate": "2019-08-24",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "completedDateTime": "2019-08-24T14:15:22Z"
    }

    Modification Proposal - Create

    Overview

    Create a new modification proposal maintenance record.

    Modification proposal initiates the processing of a modification, replacement or maintenance project. In Equinor for upstream offshore, a modification proposal initiates the business processes 'OM103.01 - Initiate projects on plants in operation' or 'OM103.70.01 - Propose simple modifications in safety and automatiion systems'.

    Important information

    The following attributes rely on master data:

    • reasonGroupId and reasonId - Use values from endpoint /maintenance-records/reason-codes
    • plannerGroupId and plannerGroupPlantId - Use values from endpoint /plants/{plant-id}/planner-groups
    • workCenterId and workCenterPlantId - USe values from /plants/{plant-id}/work-centers

    Important information

    The isSimpleProposal attribute determines if this is a simple proposal. For a simple proposal, reasonGroupId and reasonId are not required.

    Authorizations:
    Request Body schema: application/json

    Modification proposal to create

    title
    required
    string
    priorityId
    required
    string
    Enum: "H" "M" "L"

    Priority:

    • H - High priority
    • M - Medium priority
    • L - Medium priority
    tagId
    string

    Required to input either tag or equipment

    tagPlantId
    string

    Required to input either tag or equipment

    equipmentId
    string

    Required to input either tag or equipment

    text
    string
    workCenterId
    string

    If workCenter is not provided, it will use default defined on tag

    workCenterPlantId
    string

    If workCenter is not provided, it will use default defined on tag

    plannerGroupId
    string
    plannerGroupPlantId
    string
    reasonGroupId
    string
    reasonId
    string
    isSimpleProposal
    boolean
    Default: false
    externalPartnerRecordId
    string <= 12 characters

    If modification proposal was initially created in an external system, this represent the unique id of it

    externalPartnerId
    string <= 20 characters

    If modification proposal was initially created in an external system, this represent the name of the external system

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "tagId": "20PDT1541",
    • "tagPlantId": "1100",
    • "reasonGroupId": "PMB-PRIM",
    • "reasonId": "MA70",
    • "priorityId": "M",
    • "title": "Endre skalering på PDT",
    • "text": "·,,System og disiplinbeskrivelse\n·,,Videre Modningsbehov\n<U>7,,Spesielle tekniske og operative forhold</>\n·,,Behov for RS, system- eller enhetsstans?\n·,,Relevante tekniske og/eller operasjonelle krav<(>,<)>\no,,,,inkl. vurdering av gyldighet/versjon av krav?\no,,,,eventuelle godkjente dispensasjoner?\n·,,Påvirkes anleggets integritet? (Er der behov for kompenserende\ntiltak?)\n·,,Behov for ny teknologi / teknologikvalifisering ?\n<U>8,,Dokument / tegningsreferanser</>\n<U>9,,Vedlegg til notifikasjonen</>\nStandard vedleggsliste (alternativt kan dokumentene lagres på teamsite\nog link legges inn her):\n·,,HMS-sjekkliste\n·,,·,,Beslutningspresentasjon (uten kost informasjon)\n·,,Eventuell ALARP-vurdering\n·,,Annet\n"
    }

    Response samples

    Content type
    application/json
    {
    • "text": "Multi-line text based on template",
    • "plannerGroup": "Anleggsintegritet",
    • "recordId": "45894100",
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "equipmentId": "12410072",
    • "reasonGroupId": "PMB-PRIM",
    • "reasonId": "MA70",
    • "priorityId": "H",
    • "title": "Endre skalering på PDT",
    • "isSimpleProposal": false,
    • "activeStatusIds": "OSNO CRTE",
    • "plannerGroupId": "SPI",
    • "plannerGroupPlantId": "1100",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "requiredStartDate": "2019-08-24",
    • "requiredEndDate": "2019-08-24",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "completedDateTime": "2019-08-24T14:15:22Z"
    }

    Modification Proposal - Attachment download

    Overview

    Download single attachment for a modification proposal maintenance record.

    Authorizations:
    path Parameters
    record-id
    required
    string
    attachment-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/modification-proposals/%7Brecord-id%7D/attachments/%7Battachment-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Certification reports

    Used to represent the results of a certification such as PSV or lifting certificate

    Certification report - Lookup

    Overview

    Lookup a single certification report.

    The certification report represents the results of PSV or lifting certification.

    For PSV certification, details are reported as measurements for 33 predefined measuring points. For lifting certification, details are stored in attachment and possibly as characteristics on the tag/equipment.

    Update release v1.5.0

    Added createdDateTime for attachments.

    Update release v1.6.0

    Added 301 response.

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the certification report

    query Parameters
    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    include-tag-details
    boolean
    Default: false

    Include details about tag for failure report

    include-attachments
    boolean
    Default: false

    Include attachments

    include-measuring-points
    boolean
    Default: false

    Include measuring points related to tagId/equipmentId

    include-last-measurement
    boolean
    Default: false

    Include last measurement for the measuring points

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/certification-reports/%7Brecord-id%7D?include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-measuring-points=SOME_BOOLEAN_VALUE&include-last-measurement=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "statuses": [
      • {
        }
      ],
    • "attachments": [
      • {
        }
      ],
    • "tagDetails": {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      },
    • "measuringPoints": [
      • {
        }
      ],
    • "text": "Multi-line text based on template",
    • "recordId": "45894100",
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "equipmentId": "12410072",
    • "title": "Endre skalering på PDT",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "plannerGroup": "Plattform PV",
    • "locationId": "CD2",
    • "location": "METERING DECK",
    • "requiredEndDate": "2019-08-24",
    • "failureModeId": "STC",
    • "failureMode": "CST Struct. deficiency containment risk",
    • "failureModeGroupId": "PMMO-080",
    • "failureModeGroup": "ISO Piping",
    • "detectionMethodId": "3",
    • "detectionMethod": "ISO Inspection",
    • "detectionMethodGroupId": "PMDM-005",
    • "detectionMethodGroup": "ISO Scheduled activities",
    • "failureMechanismId": "2.9",
    • "failureMechanism": "CST Corrosion external",
    • "failureMechanismGroupId": "PMMC-010",
    • "failureMechanismGroup": "ISO Material failure",
    • "workOrderExist": false,
    • "workOrderId": "24871954",
    • "activeStatusIds": "OSNO CRTE",
    • "createdDateTime": "2019-08-24T14:15:22Z"
    }

    Certification report - Search

    Overview

    Search for certification reports through predefined filters. Each filter has a defined action and a set of parameters as described below.

    Response

    The response does not include all details for each certification report. Use lookup of certification report to retrieve additional details.

    Filter: recent-status-activations

    Certification reports based on recent status activations Parameters:

    • status-id
    • plant-id
    • max-days-since-activation

    Example request: /maintenance-records/certification-reports?api-version=v1&filter=recent-status-activations&status-id=CRTE&plant-id=1100&max-days-since-activation=10

    Filter: by-tag

    Find certification reports by tag with possibility of not including completed ones. /plants/{plant-id}/tags/{tag-id}?include-maintenance-records=true may also be used for a similar effect. Parameters:

    • plant-id
    • tag-id
    • include-completed (optional)
    • created-after-datetime (optional)

    Example request: /maintenance-records/certification-reports?api-version=v1&filter=by-tag&plant-id=1100&tag-id=DV50100&created-after-datetime=2020-11-01T00%3A00%3A00Z&include-completed=true

    Filter: by-equipment

    Find certification reports by equipment with possibility of not including completed ones. /plants/{plant-id}/tags/{tag-id}?include-maintenance-records=true may also be used for a similar effect. Parameters:

    • equipment-id
    • include-completed (optional)
    • created-after-datetime (optional)

    Example request: /maintenance-records/certification-reports?api-version=v1&filter=by-equipment&equipment-id=10255408&include-completed=false

    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "recent-status-activations" "by-tag" "by-equipment"

    Filter to limit the certification reports by

    status-id
    string

    Status

    plant-id
    string

    Plant

    max-days-since-activation
    integer <int32> [ 0 .. 255 ]

    Define how many days from the current day to include results for. 0 if only include for today

    created-after-datetime
    string <date-time>

    Optional parameter to limit the response to only work orders changed after changed-since-datetime but before this datetime

    include-completed
    boolean
    Default: false

    Filter based on if it's completed or open

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/certification-reports?filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&max-days-since-activation=SOME_INTEGER_VALUE&created-after-datetime=SOME_STRING_VALUE&include-completed=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "recordId": "45894100",
      • "tagId": "PX",
      • "tagPlantId": "1100",
      • "equipmentId": "12410072",
      • "title": "Endre skalering på PDT",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "planningPlantId": "1100",
      • "plannerGroupId": "PPM",
      • "plannerGroup": "Plattform PV",
      • "locationId": "CD2",
      • "location": "METERING DECK",
      • "requiredEndDate": "2019-08-24",
      • "failureModeId": "STC",
      • "failureMode": "CST Struct. deficiency containment risk",
      • "failureModeGroupId": "PMMO-080",
      • "failureModeGroup": "ISO Piping",
      • "detectionMethodId": "3",
      • "detectionMethod": "ISO Inspection",
      • "detectionMethodGroupId": "PMDM-005",
      • "detectionMethodGroup": "ISO Scheduled activities",
      • "failureMechanismId": "2.9",
      • "failureMechanism": "CST Corrosion external",
      • "failureMechanismGroupId": "PMMC-010",
      • "failureMechanismGroup": "ISO Material failure",
      • "workOrderExist": false,
      • "workOrderId": "24871954",
      • "activeStatusIds": "OSNO CRTE",
      • "createdDateTime": "2019-08-24T14:15:22Z"
      }
    ]

    Technical information update requests

    Used to request for update of technical information or maintenance programs

    Technical information update request - Lookup

    Overview

    Lookup a single technical information update request.

    A technical information update request represents a notice of change to initiate, distribute and follow up work to update technical information.

    Examples of usage:

    • Updating blueprints or other technical documentation
    • Changing spare parts lists (BOM- Bill of Materials) and storage management information
    • Updating maintenance program
    • Updating classification such as criticality, containment, selected safety critical equipment, etc.
    • Updating master data/management information in SAP, e.g. Equipment details, work centre, Planner Group, WBS, measuring points, etc.
    • Updating maintenance concept

    Equinor's governing document GL1561 - Work orders and notifications types provides additional information for this maintenance record type.

    Update release v1.5.0

    Added createdDateTime for attachments.

    Update release v1.6.0

    Added 301 response.

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the technical information update request

    query Parameters
    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    include-tasks
    boolean
    Default: false

    Include detailed information for tasks

    include-attachments
    boolean
    Default: false

    Include attachments

    include-tag-details
    boolean
    Default: false

    Include details about tag for failure report

    include-person-responsible
    boolean
    Default: false

    Include person responsible information in response. If user does not have significant rights, this will return a 403 response

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/technical-information-update-requests/%7Brecord-id%7D?include-status-details=SOME_BOOLEAN_VALUE&include-tasks=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-person-responsible=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "statuses": [
      • {
        }
      ],
    • "attachments": [
      • {
        }
      ],
    • "tagDetails": {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      },
    • "tasks": [
      • {
        }
      ],
    • "recordId": "45894100",
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "equipmentId": "12410072",
    • "title": "Endre skalering på PDT",
    • "text": "Multi-line text based on template",
    • "hasPersonResponsible": true,
    • "personResponsibleId": "433937",
    • "personResponsibleEmail": "shortname@equinor.com",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "plannerGroup": "Plattform PV",
    • "locationId": "CD2",
    • "location": "METERING DECK",
    • "systemId": "BS",
    • "system": "PM-PROG.SYST.",
    • "requiredEndDate": "2019-08-24",
    • "priorityId": "H",
    • "sortField": "RETUR",
    • "costWBSId": "T.O265C.GA.00007",
    • "costWBS": "Vedlikehold - System PV",
    • "workOrderExist": false,
    • "workOrderId": "24871954",
    • "activeStatusIds": "OSNO CRTE",
    • "createdDateTime": "2019-08-24T14:15:22Z"
    }

    Technical information update request - Update

    Overview

    Update key fields of a technical information update request.

    Important information

    To avoid accidently overwriting the multi-line text property, the endpoint will reject any requests with an empty text property.

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the technical information update request

    Request Body schema: application/json

    Details on how to update technical information update request

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Enum: "/personResponsibleEmail" "/plannerGroupId" "/title" "/text" "/priorityId" "/requiredEndDate"

    Path indicating the property to be impacted by the operation

    value
    required
    string

    Value to be assigned to a resource property based on the operation and path.

    Path specific information:

    • /title - max-length 40 characters
    • /personResponsibleEmail - Must be in the form <shortname>@equinor.com
    • /plannerGroupId - Must exist in for the planningPlantId of the maintenance record
    • /priorityId - Must be H for High, N for Normal priority.

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "replace",
      • "path": "/personResponsibleEmail",
      • "value": "shortname@equinor.com"
      }
    ]

    Response samples

    Content type
    application/json
    {
    • "recordId": "45894100",
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "equipmentId": "12410072",
    • "title": "Endre skalering på PDT",
    • "text": "Multi-line text based on template",
    • "hasPersonResponsible": true,
    • "personResponsibleId": "433937",
    • "personResponsibleEmail": "shortname@equinor.com",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "plannerGroup": "Plattform PV",
    • "locationId": "CD2",
    • "location": "METERING DECK",
    • "systemId": "BS",
    • "system": "PM-PROG.SYST.",
    • "requiredEndDate": "2019-08-24",
    • "priorityId": "H",
    • "sortField": "RETUR",
    • "costWBSId": "T.O265C.GA.00007",
    • "costWBS": "Vedlikehold - System PV",
    • "workOrderExist": false,
    • "workOrderId": "24871954",
    • "activeStatusIds": "OSNO CRTE",
    • "createdDateTime": "2019-08-24T14:15:22Z"
    }

    Technical information update request - Attachment download

    Download single attachment for technical information update request

    Authorizations:
    path Parameters
    record-id
    required
    string
    attachment-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/technical-information-update-requests/%7Brecord-id%7D/attachments/%7Battachment-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Technical Information Update Request - Attachment upload

    Overview

    Upload attachment for technical information update request.

    Authorizations:
    path Parameters
    record-id
    required
    string
    Request Body schema: multipart/form-data
    files
    Array of strings <binary>

    Responses

    Request samples

    curl --request POST \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/technical-information-update-requests/%7Brecord-id%7D/attachments \
      --header 'content-type: multipart/form-data' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Technical information update request - Search

    Overview

    Search for technical information update requests through predefined filters. Each filter has a defined action and a set of parameters as described below.

    Response

    The response does not include all details for each technical information update requests. Use lookup of technical information update requests to retrieve additional details.

    Request

    If query parameter include-person-responsible is set to true in the request, the response will contain values for personResponsibleId and personResponsibleEmail. This will have a performance impact and therefore the default value is false.

    Filter: recent-status-activations

    Technical information update requests based on recent status activations. Parameters:

    • status-id
    • plant-id
    • max-days-since-activation

    Example request: /maintenance-records/technical-information-update-requests?api-version=v1&filter=recent-status-activations&status-id=CRTE&plant-id=1100&max-days-since-activation=10

    Filter: open-by-plant

    Find open technical information update requests by plant. Parameters:

    • plant-id
    • location-id (optional)
    • system-id (optional)
    • has-person-responsible (optional, default false)
    • created-after-datetime (optional)
    • planning-plant-id (optional)
    • planner-group-id (optional)

    Example request: /maintenance-records/technical-information-update-requests?api-version=v1&filter=open-by-plant&plant-id=1100&has-person-responsible=false

    Filter: by-tag

    Find technical information update requests by tag with possibility of not including completed ones. /plants/{plant-id}/tags/{tag-id}?include-maintenance-records=true may also be used for a similar effect. Parameters:

    • plant-id
    • tag-id
    • include-completed (optional, default false)
    • created-after-datetime (optional)

    Example request: /maintenance-records/technical-information-update-requests?api-version=v1&filter=by-tag&plant-id=1100&tag-id=DV50100&include-completed=true

    Filter: by-person-responsible

    Find technical information update requests by person responsible. Parameters:

    • person-responsible-email (value should be urlencoded)
    • include-completed (optional, default false)

    Example request: /maintenance-records/technical-information-update-requests?api-version=v1&filter=by-person-responsible&person-responsible-email=dapa%40equinor.com&include-completed=false&include-person-responsible=true

    Update release 1.4.0

    Added filter by-person-responsible.

    Added query parameter include-person-responsible.

    Added properties personResponsibleId and personResponsibleEmail to response (only populated if include-person-responsible=true in the request).

    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "recent-status-activations" "open-by-plant" "by-tag" "by-person-responsible"

    Filter to limit the technical information update requests by

    include-person-responsible
    boolean
    Default: false

    Include person responsible information in response

    status-id
    string

    Status

    plant-id
    string

    Plant

    location-id
    string

    Structured location within the plant. Use /plants/{plant-id}/locations for possible values

    system-id
    string

    System id to filter by

    tag-id
    string
    planning-plant-id
    string
    Example: planning-plant-id=1901

    Planning plant used for planner group id

    planner-group-id
    string
    Example: planner-group-id=SRM

    Planner group id (planning-plant-id must also be supplied)

    max-days-since-activation
    integer <int32> [ 0 .. 255 ]

    Define how many days from the current day to include results for. 0 if only include for today

    has-person-responsible
    boolean
    Default: false

    Define if it should have a person responsible or not

    created-after-datetime
    string <date-time>

    Optional parameter to limit the response to only work orders changed after changed-since-datetime but before this datetime

    include-completed
    boolean
    Default: false

    Filter based on if it's completed or open

    person-responsible-email
    string

    Email of the person responsible in urlencoded format

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/technical-information-update-requests?include-person-responsible=SOME_BOOLEAN_VALUE&filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&location-id=SOME_STRING_VALUE&system-id=SOME_STRING_VALUE&tag-id=SOME_STRING_VALUE&planning-plant-id=1901&planner-group-id=SRM&max-days-since-activation=SOME_INTEGER_VALUE&has-person-responsible=SOME_BOOLEAN_VALUE&created-after-datetime=SOME_STRING_VALUE&include-completed=SOME_BOOLEAN_VALUE&person-responsible-email=SOME_STRING_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "recordId": "45894100",
      • "tagId": "PX",
      • "tagPlantId": "1100",
      • "equipmentId": "12410072",
      • "title": "Endre skalering på PDT",
      • "text": "Multi-line text based on template",
      • "hasPersonResponsible": true,
      • "personResponsibleId": "433937",
      • "personResponsibleEmail": "shortname@equinor.com",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "planningPlantId": "1100",
      • "plannerGroupId": "PPM",
      • "plannerGroup": "Plattform PV",
      • "locationId": "CD2",
      • "location": "METERING DECK",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "requiredEndDate": "2019-08-24",
      • "priorityId": "H",
      • "sortField": "RETUR",
      • "costWBSId": "T.O265C.GA.00007",
      • "costWBS": "Vedlikehold - System PV",
      • "workOrderExist": false,
      • "workOrderId": "24871954",
      • "activeStatusIds": "OSNO CRTE",
      • "createdDateTime": "2019-08-24T14:15:22Z"
      }
    ]

    Technical information update request - Add tasks

    Overview

    Add task to technical information update request.

    If taskResponsibleEmail is provided and has a valid Equinor email address, the taskResponsibleId will be set to the employee id of the user.

    To find possible taskCodeGroupId and taskCodeId use the /maintenance-records/task-codes?maintenance-record-id=....

    Authorizations:
    path Parameters
    record-id
    required
    string

    id of the technical information update request

    Request Body schema: application/json

    Tasks to add to existing technical information update request

    Array ()
    title
    required
    string
    text
    string
    taskCodeId
    string
    taskCodeGroupId
    string
    taskResponsibleEmail
    string

    Must be an Equinor email address. TaskResponsibleId is populated with the employee id of this user.

    plannedStartDateTime
    string <date-time> Nullable
    plannedEndDateTime
    string <date-time> Nullable

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "title": "Oppdater bill of material",
      • "text": "Bill of material for tag xxx må oppdateres med følgende:",
      • "taskCodeId": "A50",
      • "taskCodeGroupId": "PM-TI",
      • "taskResponsibleEmail": "shortname@equinor.com",
      • "plannedStartDateTime": "2022-11-01T00:00:00Z",
      • "plannedEndDateTime": "2022-11-14T00:00:00Z"
      },
    • {
      • "title": "Tekniske tegninger",
      • "text": "Behov for å oppdatere tekniske tegninger med følgende:",
      • "taskCodeId": "A10",
      • "taskCodeGroupId": "PM-TI",
      • "taskResponsibleEmail": "shortname@equinor.com",
      • "plannedStartDateTime": "2022-12-01T00:00:00Z",
      • "plannedEndDateTime": "2022-12-14T00:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Technical information update request - Update task status

    Overview

    Update status of an existing task for technical information update request.

    To find tasks avaliable on a technical information update request, use the /maintenance-records/technical-information-update-requests/{record-id}?include-tasks=true.

    When a task is created, it will have status TSOS - Outstanding task and CRTE - Created. The status TSRL - Task Released can be set afterwards.

    Authorizations:
    path Parameters
    record-id
    required
    string

    id of the technical information update request

    task-id
    required
    string

    id of the task

    status-id
    required
    string

    id of the status

    Request Body schema: application/json

    Task status to update

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Value: "/isActive"

    Path indicating the property to be impacted by the operation

    required
    string or boolean

    Value to be assigned to a resource property based on the operation and path

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "op": "replace",
      • "path": "/isActive",
      • "value": true
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Technical clarifications

    Used to request technical clarification when not covered by other maintenance records (such as failure reports)

    Technical clarifications - Lookup

    Overview

    Lookup a single technical clarification.

    Represents a request for technical clarification when not covered by other maintenance records (such as failure-reports and corrective-work-orders).

    Equinor's governing document GL1561 - Work orders and notifications types provides additional information for this maintenance record type.

    Update release v1.5.0

    Added createdDateTime for attachments.

    Update release v1.6.0

    Added 301 response.

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the technical clarification

    query Parameters
    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    include-tasks
    boolean
    Default: false

    Include detailed information for tasks

    include-attachments
    boolean
    Default: false

    Include attachments

    include-tag-details
    boolean
    Default: false

    Include details about tag for technical clarification

    include-person-responsible
    boolean
    Default: false

    Include person responsible information in response. If user does not have significant rights, this will return a 403 response

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/technical-clarifications/%7Brecord-id%7D?include-status-details=SOME_BOOLEAN_VALUE&include-tasks=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-person-responsible=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "statuses": [
      • {
        }
      ],
    • "attachments": [
      • {
        }
      ],
    • "tagDetails": {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      },
    • "tasks": [
      • {
        }
      ],
    • "recordId": "45894100",
    • "tagId": "D-13L35001A",
    • "tagPlantId": "1902",
    • "equipmentId": "",
    • "title": "Material vurdering FD100 Vanninj service",
    • "text": "Multi-line text\nbased on template",
    • "hasPersonResponsible": true,
    • "personResponsibleId": "433937",
    • "personResponsibleEmail": "shortname@equinor.com",
    • "workCenterId": "SPIMEK",
    • "workCenterPlantId": "1901",
    • "planningPlantId": "1901",
    • "plannerGroupId": "SPIAUT",
    • "plannerGroup": "AI Mekanisk",
    • "locationId": "DC132",
    • "location": "Wellbay Area Center Cellar Deck",
    • "systemId": "13",
    • "system": "RISER/WELL TOP",
    • "requiredEndDate": "2019-08-24",
    • "priorityId": "H",
    • "sortField": "RETUR",
    • "costWBSId": "T.O265C.GA.00007",
    • "costWBS": "Vedlikehold - System PV",
    • "workOrderExist": false,
    • "workOrderId": "24871954",
    • "activeStatusIds": "ATCO OSNO RPRI",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "plannedEndDate": "2019-08-24",
    • "completedDateTime": "2019-08-24"
    }

    Technical clarification - Update

    Overview

    Update key fields of a technical clarification.

    Important information

    To avoid accidently overwriting the multi-line text property, the endpoint will reject any requests with an empty text property.

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the technical clarification

    Request Body schema: application/json

    Details on how to update technical clarification

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Enum: "/personResponsibleEmail" "/plannerGroupId" "/title" "/text" "/priorityId" "/requiredEndDate"

    Path indicating the property to be impacted by the operation

    value
    required
    string

    Value to be assigned to a resource property based on the operation and path.

    Path specific information:

    • /title - max-length 40 characters
    • /personResponsibleEmail - Must be in the form <shortname>@equinor.com
    • /plannerGroupId - Must exist in for the planningPlantId of the maintenance record
    • /priorityId - Must be H for High, M for Medium or L for Low priority.

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "replace",
      • "path": "/personResponsibleEmail",
      • "value": "shortname@equinor.com"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Technical clarification - Attachment download

    Download single attachment for technical clarification

    Authorizations:
    path Parameters
    record-id
    required
    string
    attachment-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/technical-clarifications/%7Brecord-id%7D/attachments/%7Battachment-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Technical clarification - Search

    Overview

    Search for technical clarifications through predefined filters. Each filter has a defined action and a set of parameters as described below.

    Response

    The response does not include all details for each technical clarification. Use lookup of technical clarification to retrieve additional details.

    Request

    If query parameter include-person-responsible is set to true in the request, the response will contain values for personResponsibleId and personResponsibleEmail. This will have a performance impact and therefore the default value is false.

    Filter: recent-status-activations

    Technical clarifications based on recent status activations. Parameters:

    • status-id
    • plant-id
    • max-days-since-activation

    Example request: /maintenance-records/technical-clarifications?api-version=v1&filter=recent-status-activations&status-id=CRTE&plant-id=1100&max-days-since-activation=10

    Filter: open-by-plant

    Find open Technical clarifications by plant. Parameters:

    • plant-id
    • location-id (optional)
    • system-id (optional)
    • has-person-responsible (optional)
    • created-after-datetime (optional)
    • planning-plant-id (optional)
    • planner-group-id (optional)

    Example request: /maintenance-records/technical-clarifications?api-version=v1&filter=open-by-plant&plant-id=1100&has-person-responsible=false

    Filter: by-tag

    Find Technical clarifications by tag with possibility of not including completed ones. /plants/{plant-id}/tags/{tag-id}?include-maintenance-records=true may also be used for a similar effect. Parameters:

    • plant-id
    • tag-id
    • include-completed (optional)
    • created-after-datetime (optional)

    Example request: /maintenance-records/technical-clarifications?api-version=v1&filter=by-tag&plant-id=1100&tag-id=DV50100&include-completed=true

    Filter: by-person-responsible

    Find technical clarificatons by person responsible. Parameters:

    • person-responsible-email (value should be urlencoded)
    • include-completed (optional, default false)

    Example request: /maintenance-records/technical-clarifications?api-version=v1&filter=by-person-responsible&person-responsible-email=shortname%40equinor.com&include-completed=false&include-person-responsible=true

    Update release 1.4.0

    Added filter by-person-responsible.

    Added query parameter include-person-responsible.

    Added properties personResponsibleId and personResponsibleEmail to response (only populated if include-person-responsible=true in the request).

    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "recent-status-activations" "open-by-plant" "by-tag" "by-person-responsible"

    Filter to limit the technical clarifications by

    include-person-responsible
    boolean
    Default: false

    Include person responsible information in response

    status-id
    string

    Status

    plant-id
    string

    Plant

    location-id
    string

    Structured location within the plant. Use /plants/{plant-id}/locations for possible values

    system-id
    string

    System id to filter by

    planning-plant-id
    string
    Example: planning-plant-id=1901

    Planning plant used for planner group id

    planner-group-id
    string
    Example: planner-group-id=SRM

    Planner group id (planning-plant-id must also be supplied)

    max-days-since-activation
    integer <int32> [ 0 .. 255 ]

    Define how many days from the current day to include results for. 0 if only include for today

    has-person-responsible
    boolean
    Default: false

    Define if it should have a person responsible or not

    created-after-datetime
    string <date-time>

    Optional parameter to limit the response to only work orders changed after changed-since-datetime but before this datetime

    include-completed
    boolean
    Default: false

    Filter based on if it's completed or open

    person-responsible-email
    string

    Email of the person responsible in urlencoded format

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/technical-clarifications?include-person-responsible=SOME_BOOLEAN_VALUE&filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&location-id=SOME_STRING_VALUE&system-id=SOME_STRING_VALUE&planning-plant-id=1901&planner-group-id=SRM&max-days-since-activation=SOME_INTEGER_VALUE&has-person-responsible=SOME_BOOLEAN_VALUE&created-after-datetime=SOME_STRING_VALUE&include-completed=SOME_BOOLEAN_VALUE&person-responsible-email=SOME_STRING_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "recordId": "45894100",
      • "tagId": "D-13L35001A",
      • "tagPlantId": "1902",
      • "equipmentId": "",
      • "title": "Material vurdering FD100 Vanninj service",
      • "text": "Multi-line text\nbased on template",
      • "hasPersonResponsible": true,
      • "personResponsibleId": "433937",
      • "personResponsibleEmail": "shortname@equinor.com",
      • "workCenterId": "SPIMEK",
      • "workCenterPlantId": "1901",
      • "planningPlantId": "1901",
      • "plannerGroupId": "SPIAUT",
      • "plannerGroup": "AI Mekanisk",
      • "locationId": "DC132",
      • "location": "Wellbay Area Center Cellar Deck",
      • "systemId": "13",
      • "system": "RISER/WELL TOP",
      • "requiredEndDate": "2019-08-24",
      • "priorityId": "H",
      • "sortField": "RETUR",
      • "costWBSId": "T.O265C.GA.00007",
      • "costWBS": "Vedlikehold - System PV",
      • "workOrderExist": false,
      • "workOrderId": "24871954",
      • "activeStatusIds": "ATCO OSNO RPRI",
      • "createdDateTime": "2019-08-24T14:15:22Z",
      • "plannedEndDate": "2019-08-24",
      • "completedDateTime": "2019-08-24"
      }
    ]

    Maintenance records

    Maintenance records represent registration, prioritisation, control of needs/activities and registration of technical history. Each maintenance records type is tailored for a specific purpose.

    Maintenance records - Search

    Overview

    Search for Maintenance records regardless of type through predefined filters. Each filter has a defined action and a set of parameters as described below.

    Response

    The response does not include all details for each Maintenance record. This can be found by subsequent call to lookup for the respective maintenance record resource type

    Filter: by-external-partner-record-id

    Find open Maintenance records for an id in an external partner system. Note: In theory different external system could have the same external-partner-record-id but it's very unlikely. Clients are recommended to filter the response based on the plants they are intersted in to avoid any issues.

    Parameters:

    • external-partner-record-id

    Filter: my-recent-maintenance-records

    Find maintenance record created by the logged in user.

    Parameters:

    • created-after-datetime (optional)

    Filter: recently-changed

    Find maintenance records which have been recently changed (created or updated) for a given plant. Normally, clients will provide parameters changed-since-datetime and plant-id and in this case the endpoint will return any changed maintenance record from changed-since-datetime and to now. It is also possible to add before-datetime query parameter and the endpoint will then return any changed maintenance between changed-since-datetime and before-datetime.

    Parameters:

    • plant-id
    • changed-since-datetime
    • before-datetime (optional)

    Update release v1.2.0

    Added filter my-recent-maintenance-records.

    Update release v1.5.0

    Added filter recently-changed and maintenance record types modification-proposal, certification-report,technical-information-update-request and technical-clarification.

    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "by-external-partner-record-id" "my-recent-maintenance-records" "recently-changed"

    Filter to limit the failure reports by

    external-partner-record-id
    string

    If failure report was initially created in an external system, this represent the unique id of it

    created-after-datetime
    string <date-time>

    Optional parameter to limit the response to only maintenance records changed after changed-since-datetime but before this datetime

    plant-id
    string

    Plant

    changed-since-datetime
    string <date-time>

    Earliest datetime to returned changed work orders for

    before-datetime
    string <date-time>

    Optional parameter to limit the response to only work orders changed after changed-since-datetime but before this datetime

    include-maintenance-record-types
    Array of strings
    Items Enum: "modification-proposal" "failure-report" "activity-report" "certification-report" "technical-information-update-request" "technical-clarification"

    Include maintenance records. If include-maintenance-record-types is not supplied, all support types are returned

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records?filter=SOME_STRING_VALUE&external-partner-record-id=SOME_STRING_VALUE&created-after-datetime=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&changed-since-datetime=SOME_STRING_VALUE&before-datetime=SOME_STRING_VALUE&include-maintenance-record-types=SOME_ARRAY_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "modificationProposals": [
      • {
        }
      ],
    • "failureReports": [
      • {
        }
      ],
    • "activityReports": [
      • {
        }
      ],
    • "certificationReports": [
      • {
        }
      ],
    • "technicalInformationUpdateRequests": [
      • {
        }
      ],
    • "technicalClarifications": [
      • {
        }
      ]
    }

    Master data for maintenance records

    Provide master data related to maintenance records for example activity codes.

    Maintenance records - Get activity codes

    Overview

    Get a list of all activity codes which are in use for maintenance records.

    To be used when adding new activities to an existing failure report

    Examples

    /maintenance-records/activity-codes?maintenance-record-id=45939208&api-version=v1 - Use when maintenance record already exist

    /maintenance-records/activity-codes?catalog-profile-id=PM-600&maintenance-record-type=failure-report&api-version=v1 - Use when maintenance record does not already exist. Get catalog-profile-id from tag or equipment to be used when the maintenance record is created

    Update release v0.9.0

    Endpoint now requires a query parameter maintenance-record-id. The values returned are dependent on the maintenance record type and possibly tag or equipment for the maintenance record.

    activityCodeHelpText added as property.

    Update release v0.10.0

    Endpoint requires either query parameter maintenance-record-id or both catalog-profile-id and maintenance-record-type.

    Authorizations:
    query Parameters
    maintenance-record-id
    string

    The maintenance record to get activity codes for

    catalog-profile-id
    string

    The catalog profile of the functional location/equipment

    maintenance-record-type
    string
    Enum: "failure-report" "activity-report"

    The type of maintenance record to get activities or

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/activity-codes?maintenance-record-id=SOME_STRING_VALUE&catalog-profile-id=SOME_STRING_VALUE&maintenance-record-type=SOME_STRING_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "activityCodeGroupId": "PM-GENE1",
      • "activityCodeGroup": "PM: General Actions (E)",
      • "activityCodes": [
        ]
      }
    ]

    Maintenance records - Get task codes

    Overview

    Get a list of all task codes which are in use for maintenance records.

    To be used when adding new tasks to an existing failure report

    Endpoint requires a query parameter maintenance-record-id. The values returned are dependent on the maintenance record type and possibly tag or equipment for the maintenance record.

    Examples

    /maintenance-records/task-codes?maintenance-record-id=45939208&api-version=v1 - Use when maintenance record already exist

    /maintenance-records/task-codes?catalog-profile-id=PM-600&maintenance-record-type=failure-report&api-version=v1 - Use when maintenance record does not already exist. Get catalog-profile-id from tag or equipment to be used when the maintenance record is created

    Important information

    taskCodeHelpText is defined for relatively few codes.

    Authorizations:
    query Parameters
    maintenance-record-id
    string

    The maintenance record to get task codes for

    catalog-profile-id
    string

    The catalog profile of the functional location/equipment

    maintenance-record-type
    string
    Enum: "failure-report" "activity-report"

    The type of maintenance record to get activities or

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/task-codes?maintenance-record-id=SOME_STRING_VALUE&catalog-profile-id=SOME_STRING_VALUE&maintenance-record-type=SOME_STRING_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "taskCodeGroupId": "PM-M2",
      • "taskCodeGroup": "M2 Notification Tasks",
      • "taskCodes": [
        ]
      }
    ]

    Maintenance records - Get reason codes

    Overview

    Get a list of all reason codes used in modification proposal maintenance records.

    Examples

    /maintenance-records/reason-codes?maintenance-record-type=modification-proposal&api-version=v1

    Authorizations:
    query Parameters
    maintenance-record-type
    required
    string
    Value: "modification-proposal"

    The type of maintenance record to get activities or

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/reason-codes?maintenance-record-type=SOME_STRING_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "reasonGroupId": "PMB-PRIM",
      • "reasonGroup": "Proposal for improvement (modification)",
      • "reasons": [
        ]
      }
    ]

    Master data for work orders

    Provide master data related to work orders for example standard text templates.

    Work orders

    Work orders are used to describe and plan activities regarding the plants technical structure for operations, maintenance, improvement work, modifications, and projects.

    Work orders - Search

    Overview

    Search for Work orders regardless of type through predefined filters. Each filter has a defined action and a set of parameters as described below.

    Response

    The response can include most of the details for each work order. If additional data is needed, it can be retrieved by using the endpoint represented in the _links.self property.

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    Update release v1.4.0

    Introduced property calculationKey for operations.

    Filter: recently-changed

    Find Work orders which have been recently changed (created or updated) for a given plant. Normally, clients will provide parameters changed-since-datetime and plant-id and in this case the endpoint will return any changed work order from changed-since-datetime and to now. It is also possible to add before-datetime query parameter and the endpoint will then return any changed work order between changed-since-datetime and before-datetime. Parameters:

    • plant-id
    • changed-since-datetime
    • before-datetime (optional)

    Filter: before-basic-end-date

    Find open work orders before the basic-end-date Parameters:

    • plant-id
    • basic-end-date
    • location-id (optional)
    • area-id (optional) Deprecated - Use locationId instead

    Filter: by-external-partner-work-order-id

    Find work orders for an id in an external partner system. Note: In theory different external system could have the same external-partner-id but it's very unlikely. Clients are recommended to filter the response based on the plants they are intersted in to avoid any issues.

    Parameters:

    • external-partner-work-order-id

    Update release v0.11.0

    Work order operation actualPercentageComplete now represents progress reported through technical feedback. If the Work order operation is completed, the value of actualPercentageComplete will always be 100.

    Filter by-external-partner-work-order-id added.

    Update release v1.3.0

    Bugfix related to plantId source.

    Update release v1.4.0

    Introduced property calculationKey for operations.

    Update release v1.5.0

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "recently-changed" "before-basic-end-date" "by-external-partner-work-order-id"

    Filter to limit the work order by

    plant-id
    string

    Plant

    changed-since-datetime
    string <date-time>

    Earliest datetime to returned changed work orders for

    before-datetime
    string <date-time>

    Optional parameter to limit the response to only work orders changed after changed-since-datetime but before this datetime

    include-work-order-text
    boolean

    The text of the Work order is time-consuming to retrieve. Set to false to avoid returning it

    include-work-order-operation-text
    boolean

    The text of the Work order operation is time-consuming to retrieve. Set to false to avoid returning it

    include-work-order-types
    Array of strings
    Items Enum: "correctiveWorkOrders" "preventiveWorkOrders" "modificationWorkOrders" "sasChangeWorkOrders" "projectWorkOrders" "subseaWorkOrders"

    Include which types of work orders. Use comma separated list of entries.

    basic-end-date
    string <date-time>

    Earliest date to find maintenance plan history for (optional for filter)

    area-id
    string
    Deprecated

    Deprecated. Use location-id instead

    location-id
    string

    Structured location within the plant. Use /plants/{plant-id}/locations for possible values

    external-partner-work-order-id
    string

    If work order was initially created in an external system, this represent the unique id of it

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders?filter=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&changed-since-datetime=SOME_STRING_VALUE&before-datetime=SOME_STRING_VALUE&include-work-order-text=SOME_BOOLEAN_VALUE&include-work-order-operation-text=SOME_BOOLEAN_VALUE&include-work-order-types=SOME_ARRAY_VALUE&basic-end-date=SOME_STRING_VALUE&area-id=SOME_STRING_VALUE&location-id=SOME_STRING_VALUE&external-partner-work-order-id=SOME_STRING_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "correctiveWorkOrders": [
      • {
        }
      ],
    • "preventiveWorkOrders": [
      • {
        }
      ],
    • "modificationWorkOrders": [
      • {
        }
      ],
    • "sasChangeWorkOrders": [
      • {
        }
      ],
    • "projectWorkOrders": [
      • {
        }
      ],
    • "subseaWorkOrders": [
      • {
        }
      ]
    }

    Work orders - Optimized for query

    Overview

    Query work orders for potentially complicated patterns where speed is of the essence.

    planning-plants is the only mandatory fields, but clients should normally provide at least one more query criteria.

    A normal use case would be to first provide an initial query criteria based on user input. Then allow the end-users based on the resulting data select unwanted results based on specific attributes. The unwanted results should then be added to the exclusion list (for example keywords-not or work-centers-not) and the API call repeated.

    max-results have a default value of 1000 and is necessary to provide a quick response.

    The multi-line text property is not included by default, but can included by setting include-text=true in the request. This will influence performance significantly.

    Response

    The response schema differs slightly from the other work order endpoints as a result of the optimization for speed.

    Examples

    /work-orders-optimized-for-query?api-version=v1&planning-plants=1100,1101,1102&tags-all-of=10B9 - Return work orders where tag is 10B9

    /work-orders-optimized-for-query?api-version=v1&planning-plants=1100,1101,1102&tags-all-of=AA15*&tags-not=AA15002 - Return work orders where tag has pattern AA15* but is not AA15002

    /work-orders-optimized-for-query?api-version=v1&planning-plants=1100,1101,1102&keyworkds-all-of=heli,male - Return work orders where the ttle contains both heli and male

    /work-orders-optimized-for-query?api-version=v1&planning-plants=1100,1101,1102&status-any-of=PREP,RDEX&created-after-date=2021-06-01 - Return work orders with status PREP or RDEX and created after a certain date

    Update release v1.5.0

    Added revisionId to work order response (represents shutdown or campaign work).

    Authorizations:
    query Parameters
    planning-plants
    required
    Array of strings
    Example: planning-plants=1100

    Query based on planningPlantIds (any-of)

    keywords-all-of
    Array of strings
    Example: keywords-all-of=stillas

    Query based on keywords in title (case insensitive)

    keywords-any-of
    Array of strings
    Example: keywords-any-of=sand

    Query based on keywords in title (case insensitive)

    keywords-not
    Array of strings
    Example: keywords-not=12M

    Query based on keywords in title (case insensitive)

    tags-all-of
    Array of strings
    Example: tags-all-of=1A*-6A

    Query based on tagIds. Expressions with wildcards can be used for example 1A*-6A. Ensure the tagIds are url-encoded in order to handle special characters

    tags-any-of
    Array of strings
    Example: tags-any-of=BF

    Query based on tagIds. Expressions with wildcards can be used for example 1A*-6A. Ensure the tagIds are url-encoded in order to handle special characters

    tags-not
    Array of strings
    Example: tags-not=AE5566

    Query based on tagIds. Expressions with wildcards can be used for example AE55*. Ensure the tagIds are url-encoded in order to handle special characters

    work-centers-any-of
    Array of strings
    Example: work-centers-any-of=PPMMEC

    Query based on workCenterIds

    work-centers-not
    Array of strings
    Example: work-centers-not=SPIAUT

    Query based on workCenterIds

    systems-any-of
    Array of strings
    Example: systems-any-of=73

    Query based on systemIds

    systems-not
    Array of strings
    Example: systems-not=99

    Query based on systemIds

    locations-any-of
    Array of strings
    Example: locations-any-of=MG29

    Query based on locationIds

    locations-not
    Array of strings
    Example: locations-not=W14

    Query based on locationIds

    sort-field-any-of
    Array of strings
    Example: sort-field-any-of=RS1_11_S

    Query based on sortField ()used for grouping work orders)

    sort-field-not
    Array of strings
    Example: sort-field-not=PRS10239.WP12

    Query based on sortField (used for grouping work orders)

    revision-code-any-of
    Array of strings
    Example: revision-code-any-of=FACILITY

    Query based on revisionCode

    revision-code-not
    Array of strings
    Example: revision-code-not=WELL

    Query based on sortField (often used for revision codes)

    status-all-of
    Array of strings
    Example: status-all-of=RDEX

    Query based on statusIds (not all statuses are supported)

    status-any-of
    Array of strings
    Example: status-any-of=TECO

    Query based on statusIds (not all statuses are supported)

    status-not
    Array of strings
    Example: status-not=PREP

    Query based on statusIds (not all statuses are supported)

    is-open
    boolean
    Example: is-open=true

    Include only open work orders or only closed work orders. By default, all work orders are included.

    created-after-date
    string <date>

    Earliest creation date to include

    created-before-date
    string <date>

    Latest creation date to include

    work-order-types
    Array of strings
    Items Enum: "correctiveWorkOrders" "preventiveWorkOrders" "modificationWorkOrders" "sasChangeWorkOrders" "projectWorkOrders" "subseaWorkOrders"

    Limit to specific work order types (one-of)

    sort-by
    Array of strings
    Items Enum: "createdDateTime desc" "createdDateTime asc" "workOrderId desc" "workOrderId asc" "systemId desc" "systemId asc" "locationId desc" "locationId asc" "sortField desc" "sortField asc" "title desc" "title asc"

    Property to sort the results by

    include-text
    boolean
    Default: false

    Include the multi-line text of the work order (will cause the endpoint to go significantly slower)

    max-results
    number
    Example: max-results=100

    Maximum number of results to include. Default is 1000.

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders-optimized-for-query?planning-plants=SOME_ARRAY_VALUE&keywords-all-of=SOME_ARRAY_VALUE&keywords-any-of=SOME_ARRAY_VALUE&keywords-not=SOME_ARRAY_VALUE&tags-all-of=SOME_ARRAY_VALUE&tags-any-of=SOME_ARRAY_VALUE&tags-not=SOME_ARRAY_VALUE&work-centers-any-of=SOME_ARRAY_VALUE&work-centers-not=SOME_ARRAY_VALUE&systems-any-of=SOME_ARRAY_VALUE&systems-not=SOME_ARRAY_VALUE&locations-any-of=SOME_ARRAY_VALUE&locations-not=SOME_ARRAY_VALUE&sort-field-any-of=SOME_ARRAY_VALUE&sort-field-not=SOME_ARRAY_VALUE&revision-code-any-of=SOME_ARRAY_VALUE&revision-code-not=SOME_ARRAY_VALUE&status-all-of=SOME_ARRAY_VALUE&status-any-of=SOME_ARRAY_VALUE&status-not=SOME_ARRAY_VALUE&is-open=true&created-after-date=SOME_STRING_VALUE&created-before-date=SOME_STRING_VALUE&work-order-types=SOME_ARRAY_VALUE&sort-by=SOME_ARRAY_VALUE&include-text=SOME_BOOLEAN_VALUE&max-results=100' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "workOrderId": "24597659",
      • "workOrderTypeId": "correctiveWorkOrder",
      • "tagId": "BF",
      • "tagPlantId": "1100",
      • "title": "Modifikasjon av brannmur",
      • "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "locationId": "CD17OU",
      • "systemId": "11",
      • "plantId": "1100",
      • "planningPlantId": "1100",
      • "plannerGroupId": "PPM",
      • "revisionId": "PS02_21",
      • "basicStartDateTime": "2019-08-24T14:15:22Z",
      • "basicEndDateTime": "2019-08-24T14:15:22Z",
      • "createdDateTime": "2019-08-24T14:15:22Z",
      • "sortField": "PRS10239.WP12",
      • "revisionCodeId": "PS02_21",
      • "isOpen": true,
      • "hasStatusPREP": true,
      • "hasStatusPRCO": true,
      • "hasStatusRDEX": true,
      • "hasStatusSTRT": true,
      • "hasStatusRDOP": true,
      • "hasStatusCANC": true,
      • "hasStatusTECO": true,
      • "_links": {
        }
      }
    ]

    Work orders change log - Search

    Overview

    Search for Work orders changes done recently.

    Response

    The response contains only minimum information about the change made to the work orders. For more information about each individual work order, use the lookup end-point referenced in _links.related.

    Important information

    This endpoint relies on change log being activated for the plant in question.

    Filter: recently-changed-property

    Find Work orders which have recently had a change in a specific property. Parameters:

    • plant-id
    • property-name - Values supported basicStartDateTime and basicEndDateTime
    • changed-since-datetime

    include-work-order-types is an optional parameter to define which work orders to return changes for.

    Important information

    The response contains list of changes to work orders (not list of work orders changed). Therefore, an individual work order may be represented multiple times. Consumers can use changeDateTime to identify the last change.

    Authorizations:
    query Parameters
    filter
    required
    string
    Value: "recently-changed-property"

    Filter to limit the work order by

    plant-id
    string

    Plant

    changed-since-datetime
    string <date-time>

    Earliest datetime to returned changed work orders for

    property-name
    string
    Enum: "basicStartDateTime" "basicEndDateTime"

    The property which was recently changed

    include-work-order-types
    Array of strings
    Items Enum: "correctiveWorkOrders" "preventiveWorkOrders" "modificationWorkOrders" "sasChangeWorkOrders" "projectWorkOrders" "subseaWorkOrders"

    Include which types of work orders. Use comma separated list of entries.

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders-change-log?filter=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&changed-since-datetime=SOME_STRING_VALUE&property-name=SOME_STRING_VALUE&include-work-order-types=SOME_ARRAY_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "correctiveWorkOrdersChanged": [
      • {
        }
      ],
    • "preventiveWorkOrdersChanged": [
      • {
        }
      ],
    • "modificationWorkOrdersChanged": [
      • {
        }
      ],
    • "sasChangeWorkOrdersChanged": [
      • {
        }
      ],
    • "projectWorkOrdersChanged": [
      • {
        }
      ],
    • "subseaWorkOrdersChanged": [
      • {
        }
      ]
    }

    Work order operations

    Work orders operations are part of a work order and describe the planned activitied.

    Work order - Update operation

    Overview

    Update the work order operation for all work order types. The ´operation-id´ parameter to use in the url can be found using the various lookup and search endpoints for work orders. ´operation-id´ consist of two internal ids from the ERP system called routing number and counter separated by the - character.

    The following fields are possible to update:

    • actualPercentageComplete
    • isCompleted
    • schedulingStartConstraintId - Value one of: MSO - Must start on, SNET - Start no earlier than or SNLT - Start no later than
    • schedulingStartConstraintDateTime
    • schedulingFinishConstraintId - Value one of: MFO - Must finish on, FNET - Finish no earlier than or FNLT - Finish no later than
    • schedulingFinishConstraintDateTime
    Authorizations:
    path Parameters
    operation-id
    required
    string
    Request Body schema: application/json

    Update of Work order details

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Enum: "/isCompleted" "/actualPercentageComplete" "/schedulingStartConstraintId" "/schedulingStartConstraintDateTime" "/schedulingFinishConstraintId" "/schedulingFinishConstraintDateTime"

    Path indicating the property to be impacted by the operation

    required
    string or boolean or number

    Value to be assigned to a resource property based on the operation and path.

    /schedulingStartConstraintId allowed values:

    • MSO - Must start on
    • SNET - Start no earlier than
    • SNLT - Start no later than

    /schedulingFinishConstraintId allowed values:

    • MFO - Must finish on
    • FNET - Finish no earlier than
    • FNLT - Finish no later than

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "replace",
      • "path": "/schedulingStartConstraintId",
      • "value": "SNET"
      },
    • {
      • "op": "replace",
      • "path": "/schedulingStartConstraintDateTime",
      • "value": "2022-12-01T00:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Work order - Add materials

    Overview

    This endpoint will be de-activated in Production until release 1.7.0. It can still be tested in our QA environment.

    Add materials to a work order operation (of any work order type). The ´operation-id´ parameter to use in the url can be found using the various lookup and search endpoints for work orders. ´operation-id´ consist of two internal ids from the ERP system called routing number and counter separated by the - character.

    There are two types of materials which can be added to work orders:

    1. Material identified by materialId
    2. Material identified by equipmentId (only for Subsea work orders)

    Requests need to supply either materialId or equipmentId (not both)

    Authorizations:
    path Parameters
    operation-id
    required
    string
    Request Body schema: application/json

    Add material details

    Array ()
    quantity
    required
    number <double> >= 0
    quantityUnitId
    required
    string

    Commonly used values: PC - Pieces L - Liters KG - Kilograms M - Meters

    materialId
    string
    equipmentId
    string
    requiredDatetime
    string <date-time> Nullable

    Specifies the date and time for when the material is needed at its destination

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "equipmentId": "12218664",
      • "quantity": 1,
      • "quantityUnitId": "PC"
      },
    • {
      • "equipmentId": "12146835",
      • "quantity": 1,
      • "quantityUnitId": "PC"
      }
    ]

    Response samples

    Content type
    application/json
    [
    • {
      • "reservationId": "25457443-001",
      • "materialId": "741466",
      • "material": "LIGHT,FIXTURE,26w,SZ 4155.100,RITTAL",
      • "quantity": 1,
      • "quantityUnit": "string",
      • "quantityUnitId": "string",
      • "location": "P10N utenfor lager",
      • "holdDeliveryOnshore": true,
      • "requiredDatetime": "2019-08-24T14:15:22Z"
      }
    ]

    Work order operation - Remove material

    Overview

    Remove a material from a work order operation (of any work order type). The ´operation-id´ parameter to use in the url can be found using the various lookup and search endpoints for work orders. ´operation-id´ consist of two internal ids from the ERP system called routing number and counter separated by the - character. The ´reservation-id´ parameter to use in the url can be found using the include-materials query parameter to work order lookup.

    Authorizations:
    path Parameters
    operation-id
    required
    string
    reservation-id
    required
    string

    Reservation id for the material found through work order lookup with include-materials

    Responses

    Request samples

    curl --request DELETE \
      --url https://api-test.gateway.equinor.com/maintenance-api/work-order-operations/%7Boperation-id%7D/materials/%7Breservation-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Work order relationships

    Covers updating relationships between Work order and other resources such as maintenance records, tags and material

    Work order relationships - Add related maintenance record

    Overview

    Add new relationship between a work order and a maintenance record.

    For source type ObjectList, the relationship will be stored in the object list of the work order. This will add a relationship that is accessible by lookup requests to the work order.

    For source type TechnicalFeedback, the relationship will be stored as part of the technical feedback for the work order. Depending on technicalFeedbackParameters.statusId and technicalFeedbackParameters.reasonId, different types of maintenance records are required (either failureReport or activityReport). If these requirements are not fulfilled, the response status code will be 409 - Conflict.

    This endpoint returns no response data. Perform a lookup request for the specific work order type to get updated information. This is currently not possible for technical feedback, but is expected to be added in the future.

    Important information

    The maintenance record must not be closed.

    Update release v1.5.0

    Added relationship of type TechnicalFeedback.

    Authorizations:
    path Parameters
    work-order-id
    required
    string

    Id of the work order (can be any type)

    Request Body schema: application/json

    Define maintenance record to add relationship to

    recordId
    required
    string

    Id of the maintenance record

    source
    string
    Default: "ObjectList"
    Enum: "ObjectList" "TechnicalFeedback"

    Defines the type of relationship to the work order

    sourceId
    string

    Reference to the specific element the relationship will be defined for. The specific format for this value will depend on the source type and the value should be found using lookup of the work order.

    object

    For source TechnicalFeedback these parameters are must be supplied.

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "recordId": "45894100",
    • "source": "ObjectList"
    }

    Response samples

    Content type
    application/json
    {}

    Work order relationships - Remove related maintenance record

    Overview

    Remove an existing relationship between a work order and a maintenance record.

    Internally in the ERP system, this relationship will be removed from the object list of the work order.

    This endpoint returns no response data. Perform a lookup request for the specific work order type to get updated information.

    Important information

    In some case, it will not be possible to remove a maintenance record relationship to a work order. For example, when a corrective work order is created from a failure report, it is not possible to remove this initial relationship (internally this is refered to as the header notification of the work order).

    Authorizations:
    path Parameters
    work-order-id
    required
    string

    Id of the work order (can be any type)

    record-id
    required
    string

    Id of the maintenance record (can be any type)

    Responses

    Request samples

    curl --request DELETE \
      --url https://api-test.gateway.equinor.com/maintenance-api/work-order-relationships/%7Bwork-order-id%7D/related-maintenance-records/%7Brecord-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Corrective Work orders

    Used for all corrective maintenance, i.e. all maintenance that is intended to restore the equipment's technical condition, so that it can perform its assigned function.

    Corrective work orders can also be used for activities not directly connected with equipment failure (corrective), but as follows same work process for prioritisation and scheduling.

    Corrective Work order - Lookup

    Overview

    Lookup single Corrective Work order with related information

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    Update release v1.0.0

    Work order operation actualPercentageComplete now represents progress reported through technical feedback. If the Work order operation is completed, the value of actualPercentageComplete will always be 100.

    Update release v1.1.0

    If work-order-id exist, but is not a correctiveWorkOrder, the response is a HTTP 301 Moved Permanently with the url to the resource in the HTTP header Location.

    Update release v1.3.0

    Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

    Update release v1.4.0

    Introduced property calculationKey for operations.

    Update release v1.5.0

    Added createdDateTime for attachments.

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    query Parameters
    include-operations
    boolean
    Default: true

    Include Work order operations

    include-materials
    boolean
    Default: true

    Include materials for Work order operations

    include-maintenance-records
    boolean
    Default: false

    Include related maintenance records (from object list)

    include-attachments
    boolean
    Default: false

    Include Work order attachments (on header and for operation)

    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    include-tag-details
    boolean
    Default: false

    Include detailed for the main tag of the Work order

    include-related-tags
    boolean
    Default: false

    Include related tags (from object list)

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/corrective-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "operations": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "tagsRelated": [
      • {
        }
      ],
    • "maintenanceRecords": [
      • {
        }
      ],
    • "tagDetails": {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      },
    • "attachments": [
      • {
        }
      ],
    • "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n\nHvordan påvirker feilen utstyrets funksjon? ...\n",
    • "workOrderTypeId": "correctiveWorkOrder",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24983466",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "failureReportId": "45836077",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "002",
    • "maintenanceType": "Periodic maintenance",
    • "requiredEndDate": "2019-08-24",
    • "revisionId": "PS02_21",
    • "revision": "FV 26A/RIA",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "sortField": "PRS10239.WP12",
    • "priorityId": "L"
    }

    Corrective Work order - Update

    Overview

    Update corrective work order.

    Supports:

    • Append to text
    • Update workCenterId and workCenterPlantId
    • Update tagId and tagPlantId
    • Update basicStartDateTime and basicEndDateTime
    • Update sortField
    • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)

    Important information

    Append to text follows requirement I-103209 - Notation in long text field - Upstream offshore.

    Newest information in text is added above existing information and is automatically signed with date and full name of logged on user.

    Update release v1.0.0

    Added additional properties to update

    Update release v1.4.0

    Adjusted logic for append text to work order. Newest information in text is now added above existing information.

    Update release v1.6.0

    Added possibility for update of sortField and revisionId.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    Request Body schema: application/json

    The information to be updated

    Array ()
    op
    string
    Enum: "append" "replace"

    JSON Patch operation according to RFC6902.

    Operation replace is suitable for the following properties: /workCenterId,/workCenterPlantId,tagId,/tagPlantId,/basicStartDateTime,/basicEndDateTime

    Operation append is suitable for the following properties: /text

    path
    string
    Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField"

    The property to be updated by the non-trivial patch operation. /workCenterId and /workCenterPlantId must be provided in same request. tagId,/tagPlantId must be provided in same request.

    value
    string

    Value to be assigned to a resource property based on the operation and path.

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "append",
      • "path": "/text",
      • "value": "Text to append\nMulti-line"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Add operation(s)

    Add operations

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    Request Body schema: application/json

    Operations to add to existing Work order

    Array ()
    title
    required
    string [ 0 .. 40 ] characters
    operation
    required
    string

    Id of operation user is familiar with

    workCenterId
    string
    workCenterPlantId
    string
    text
    string
    plannedWorkDuration
    string

    Duration as defined in ISO8601

    plannedWorkHours
    string

    Duration as defined in ISO8601

    capacityCount
    integer <int32>
    schedulingStartConstraintId
    string
    Enum: "MSO" "SNET" "SNLT"

    Constraint: * MSO - Must start on * SNET - Start no earlier than * SNLT - Start no later than

    schedulingStartConstraintDateTime
    string <date-time>
    schedulingFinishConstraintId
    string
    Enum: "MFO" "FNET" "FNLT"

    Constraint: * MFO - Must finish on date * FNET - Finish no earlier than * FNLT - Finish no later than

    schedulingFinishConstraintDateTime
    string <date-time>
    isScheduledExternally
    boolean
    earliestStartDateTime
    string <date-time>
    earliestFinishDateTime
    string <date-time>

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "operation": "0010",
      • "title": "Bygge stillas",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkHours": "P0Y0M0DT4H0M0S",
      • "capacityCount": 2,
      • "text": "Bygge stillas\n3 x 3 x 5 meter",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      },
    • {
      • "operation": "0020",
      • "title": "Bytte del",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkHours": "P0Y0M0DT3H30M0S",
      • "capacityCount": 1,
      • "text": "",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Update operation Deprecated

    Important information

    Endpoint is deprecated as of 06.2021. It is replaced by a generic endpoint for all work order types /work-order-operations/{operation-id}.

    Overview

    Update the work order operation. Currently, we support completing the operation but additional functionality will be added in future releases.

    Update release v0.11.0

    Deprecated endpoint

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    operation
    required
    string
    Example: 0020
    Request Body schema: application/json

    Work order operation to update

    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Value: "/isCompleted"

    Path indicating the property to be impacted by the operation

    required
    boolean or string

    Value to be assigned to a resource property based on the operation and path.

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "op": "replace",
    • "path": "/isCompleted",
    • "value": true
    }

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Add time ticket

    Overview

    Add time ticket for work performed

    Update release v0.8.0

    Text multi-line property now is persisted as expected in ERP system.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    operation
    required
    string
    Example: 0020
    Request Body schema: application/json

    Time ticket to add to operation

    workHours
    required
    string

    The work performed for the operation. Duration as defined in ISO8601

    remainingWorkHours
    string

    New estimate of remaining work for the operation. In Duration format as defined in ISO8601

    workStartDateTime
    string <date-time> Nullable
    workEndDateTime
    string <date-time> Nullable
    workCenterId
    string

    Resource which performed the work. Default is based on Work order operation.

    workCenterPlantId
    string

    Resource which performed the work. Default is based on Work order operation.

    title
    string <= 40 characters

    Title for time ticket

    text
    string

    Multi-line description for the time ticket

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "workHours": "P0Y0M0DT2H0M0S",
    • "remainingWorkHours": "P0Y0M0DT2H0M0S",
    • "workStartDateTime": "2020-11-01T00:00:00Z",
    • "workEndDateTime": "2020-11-05T00:00:00Z",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "title": "Prep jobb",
    • "text": "Multi-line text\nDescribing the work done"
    }

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Attachment download

    Download single attachment for corrective Work order

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    attachment-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/corrective-work-orders/%7Bwork-order-id%7D/attachments/%7Battachment-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Update status

    Overview

    Activate or deactivate status for Work order.

    Overview of how status are used can be found in Equinor's governing document GL1561 - Work orders and notifications types

    To identify which status the work order currently has perform a request to: work-orders/corrective-work-orders/{{work-order-id}}?include-status-details=true

    Supported statuses

    The endpoint supports most status activiation such as:

    • RDEX - Ready for execution
    • STRT - Job started
    • RDOP - Ready for operation
    • TECO - Technical complete
    • CLSD - Business close

    Deactivation is supported in most cases where there is no interdependency between statuses. For status with a statusOrder value, deactivation is not necessary (nor supported) as the business logic will handle the switch.

    The following statuses are not supported at the moment and will return a HTTP 405 response:

    • EXTR - Date extension required
    • PERM - Work permit provided
    • SJA - Safe job analysis required
    • WP - Work Permit exist
    • SJAR - Safe Job Analysis required
    • SJAE - Safe Job Analysis exist
    • PMSG - Purchasing Message
    • MLTI - Multi discipline

    Update version 0.9.0

    Support for releasing a work order by setting the REL status.

    Support for complete-outstanding-maintenance-records query parameter for TECO and CLSD statuses.

    Update version 1.1.0

    Support for deactivating TECO status

    Update version 1.6.0

    Support for ActivatedDateTime for TECO status. It is an optional parameter which allows to overwrite the default reference date for TECO. If no value is provided, the value will be set to current timestamp.

    Parameter complete-outstanding-maintenance-records set to true will close maintenance records which have a relationship to the work order via the ObjectList.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    status-id
    required
    string
    query Parameters
    complete-outstanding-maintenance-records
    boolean
    Default: true

    Additional parameter to activation of TECO and CLSD statuses. Determines if related maintenance records should be closed as well.

    Request Body schema: application/json

    Work order status to update

    isActive
    required
    boolean
    activatedDateTime
    string <date-time> Nullable

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "isActive": true
    }

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Search

    Overview

    Search for corrective Work orders through predefined filters. Each filter has a defined action and a set of parameters as described below.

    Response

    The response does not include all details for each corrective work order. This can be found by subsequent call to lookup corrective-work-order

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    Filter: recent-status-activations

    Corrective work orders based on recent status activations for the work orders. Parameters:

    • status-id
    • plant-id
    • max-days-since-activation

    Filter: before-required-end-date

    Find open Corrective work orders before the required-end-date Parameters:

    • plant-id
    • required-end-date
    • location-id (optional)
    • area-id (optional) Deprecated - Use locationId instead
    • system-id (optional)

    Filter: by-maintenance-type-id

    Find preventive work orders by maintenance type. Response will only include open work orders. Parameters:

    • plant-id
    • maintenance-type-id

    Update release v0.9.0

    Added filter by-maintenance-type-id.

    Update release v0.11.0

    Added system-id as optional parameter til filter before-required-end-date.

    Update release v1.5.0

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "recent-status-activations" "same-maintenance-plan" "before-required-end-date" "by-maintenance-type-id"

    Filter to limit the Corrective work order by

    status-id
    string

    Status

    plant-id
    string

    Plant

    max-days-since-activation
    integer <int32> [ 0 .. 255 ]

    Define how many days from the current day to include results for. 0 if only include for today

    max-work-orders
    integer <int32> >= 0

    Maximal numbers of results returned (optional for filter)

    area-id
    string
    Deprecated

    Deprecated. Use location-id instead

    location-id
    string

    Structured location within the plant. Use /plants/{plant-id}/locations for possible values

    required-end-date
    string <date>

    placeholder

    system-id
    string
    Deprecated

    system-id of the corrective work order

    maintenance-type-id
    string
    Example: maintenance-type-id=017

    Type of maintenance for the work order

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/corrective-work-orders?filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&max-days-since-activation=SOME_INTEGER_VALUE&max-work-orders=SOME_INTEGER_VALUE&area-id=SOME_STRING_VALUE&location-id=SOME_STRING_VALUE&required-end-date=SOME_STRING_VALUE&system-id=SOME_STRING_VALUE&maintenance-type-id=017' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "workOrderId": "24983466",
      • "tagId": "BF",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE.",
      • "title": "Modifikasjon av brannmur",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "locationId": "CD17OU",
      • "areaId": "Deprecated - Use locationId",
      • "failureReportId": "45836077",
      • "plantId": "1100",
      • "planningPlantId": "1100",
      • "plannerGroupId": "PPM",
      • "activeStatusIds": "OSNO CRTE",
      • "maintenanceTypeId": "002",
      • "maintenanceType": "Periodic maintenance",
      • "requiredEndDate": "2019-08-24",
      • "revisionId": "PS02_21",
      • "revision": "FV 26A/RIA",
      • "basicStartDateTime": "2019-08-24T14:15:22Z",
      • "basicEndDateTime": "2019-08-24T14:15:22Z",
      • "createdDateTime": "2019-08-24T14:15:22Z",
      • "changedDateTime": "2019-08-24T14:15:22Z",
      • "sortField": "PRS10239.WP12",
      • "priorityId": "L"
      }
    ]

    Corrective Work order - Create

    Overview

    Create new Corrective Work order based on a supplied failure report.

    It's possible to supply operations in the create operation. If no operations are passed, a default operation will be created automatically.

    To lookup the created corrective work order use endpoint /work-orders/corrective-work-orders/{work-order-id}

    Update release v1.1.0

    Added externalPartnerWorkOrderId property to be used as reference to work order in external partner system.

    Update release v1.5.0

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Update release v1.6.0

    Added sortField and revisionId to create request. Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values for revisionId.

    Authorizations:
    Request Body schema: application/json

    Corrective Work order to create

    planningPlantId
    required
    string
    workCenterId
    required
    string
    workCenterPlantId
    required
    string
    title
    required
    string
    plantId
    required
    string
    failureReportId
    required
    string
    externalPartnerWorkOrderId
    string

    Work order id as represented in external partner system

    Array of objects (WorkOrderOperationListCreate)
    tagId
    string
    tagPlantId
    string
    plannerGroupId
    string
    maintenanceTypeId
    string
    basicStartDateTime
    string <date-time>
    basicEndDateTime
    string <date-time>
    revisionId
    string

    An identifier to the revision (shutdown or campaign work) this work order is related to. Read possible values from /plants/{plant-id}

    sortField
    string

    Field used to assist in grouping/sorting Work orders. Unstructured field used non-consistently between plants

    locationId
    string

    Structured location within the plant where the tag is located

    areaId
    string
    Deprecated

    Deprecated 01.2021 - Use locationId instead

    text
    string

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "failureReportId": "45836077",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "workCenterId": "CO2PIP",
    • "workCenterPlantId": "1100",
    • "title": "14xx/Installere flowline CD2",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "plantId": "1100",
    • "sortField": "PRS10239.WP12",
    • "revisionId": "PV04_21",
    • "basicStartDateTime": "2020-11-01T00:00:00Z",
    • "basicEndDateTime": "2021-03-01T00:00:00Z",
    • "text": "Project for replacing flowing on CD2\n",
    • "operations": [
      • {
        },
      • {
        }
      ]
    }

    Response samples

    Content type
    application/json
    {
    • "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n\nHvordan påvirker feilen utstyrets funksjon? ...\n",
    • "workOrderTypeId": "correctiveWorkOrder",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24983466",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "failureReportId": "45836077",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "002",
    • "maintenanceType": "Periodic maintenance",
    • "requiredEndDate": "2019-08-24",
    • "revisionId": "PS02_21",
    • "revision": "FV 26A/RIA",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "sortField": "PRS10239.WP12",
    • "priorityId": "L"
    }

    Preventive Work orders

    Used for work orders generated from pre-defined preventive maintenance programs.

    Preventive Work order - Lookup

    Overview

    Lookup single Preventive Work order with related information.

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    Update release v1.0.0

    Work order operation actualPercentageComplete now represents progress reported through technical feedback. If the Work order operation is completed, the value of actualPercentageComplete will always be 100.

    Update release v1.1.0

    If work-order-id exist, but is not a preventiveWorkOrder, the response is a HTTP 301 Moved Permanently with the url to the resource in the HTTP header Location.

    Update release v1.3.0

    Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

    Update release v1.4.0

    Introduced property calculationKey for operations.

    Update release v1.5.0

    Added createdDateTime for attachments.

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    query Parameters
    include-operations
    boolean
    Default: true

    Include Work order operations

    include-materials
    boolean
    Default: false

    Include materials for Work order operations

    include-maintenance-records
    boolean
    Default: false

    Include related maintenance records (from object list and technical feedback)

    include-maintenance-plan-details
    boolean
    Default: false

    Include details for maintenance plan

    include-attachments
    boolean
    Default: false

    Include Work order attachments (on header and for operation)

    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    include-tag-details
    boolean
    Default: false

    Include detailed for the main tag of the Work order

    include-related-tags
    boolean
    Default: false

    Include related tags (from object list)

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/preventive-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-maintenance-plan-details=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "operations": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "tagsRelated": [
      • {
        }
      ],
    • "maintenanceRecords": [
      • {
        }
      ],
    • "maintenancePlan": {
      • "maintenancePlanId": "1108244",
      • "maintenancePlanItemId": "10149640",
      • "planDate": "2019-08-24"
      },
    • "tagDetails": {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      },
    • "attachments": [
      • {
        }
      ],
    • "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n\nHvordan påvirker feilen utstyrets funksjon? ...\n",
    • "workOrderTypeId": "preventiveWorkOrder",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24597659",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "002",
    • "maintenanceType": "Periodic maintenance",
    • "plannedDate": "2019-08-24",
    • "revisionId": "PS02_21",
    • "revision": "FV 26A/RIA",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "sortField": "PRS10239.WP12"
    }

    Preventive Work order - Update

    Overview

    Update preventive work order.

    Supports:

    • Append to text
    • Update workCenterId and workCenterPlantId
    • Update tagId and tagPlantId
    • Update basicStartDateTime and basicEndDateTime
    • Update sortField
    • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)

    Important information

    Append to text follows requirement I-103209 - Notation in long text field - Upstream offshore.

    Newest information in text is added above existing information and is automatically signed with date and full name of logged on user.

    Update release v1.0.0

    Added additional properties to update

    Update release v1.4.0

    Adjusted logic for append text to work order. Newest information in text is now added above existing information.

    Update release v1.6.0

    Added possibility for update of sortField and revisionId.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    Request Body schema: application/json

    The information to be updated

    Array ()
    op
    string
    Enum: "append" "replace"

    JSON Patch operation according to RFC6902.

    Operation replace is suitable for the following properties: /workCenterId,/workCenterPlantId,tagId,/tagPlantId,/basicStartDateTime,/basicEndDateTime

    Operation append is suitable for the following properties: /text

    path
    string
    Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField"

    The property to be updated by the non-trivial patch operation. /workCenterId and /workCenterPlantId must be provided in same request. tagId,/tagPlantId must be provided in same request.

    value
    string

    Value to be assigned to a resource property based on the operation and path.

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "append",
      • "path": "/text",
      • "value": "Text to append\nMulti-line"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Preventive Work order - Add operation(s)

    Add operations

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    Request Body schema: application/json

    Operations to add to existing Work order

    Array ()
    title
    required
    string [ 0 .. 40 ] characters
    operation
    required
    string

    Id of operation user is familiar with

    workCenterId
    string
    workCenterPlantId
    string
    text
    string
    plannedWorkDuration
    string

    Duration as defined in ISO8601

    plannedWorkHours
    string

    Duration as defined in ISO8601

    capacityCount
    integer <int32>
    schedulingStartConstraintId
    string
    Enum: "MSO" "SNET" "SNLT"

    Constraint: * MSO - Must start on * SNET - Start no earlier than * SNLT - Start no later than

    schedulingStartConstraintDateTime
    string <date-time>
    schedulingFinishConstraintId
    string
    Enum: "MFO" "FNET" "FNLT"

    Constraint: * MFO - Must finish on date * FNET - Finish no earlier than * FNLT - Finish no later than

    schedulingFinishConstraintDateTime
    string <date-time>
    isScheduledExternally
    boolean
    earliestStartDateTime
    string <date-time>
    earliestFinishDateTime
    string <date-time>

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "operation": "0010",
      • "title": "Bygge stillas",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkHours": "P0Y0M0DT4H0M0S",
      • "capacityCount": 2,
      • "text": "Bygge stillas\n3 x 3 x 5 meter",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      },
    • {
      • "operation": "0020",
      • "title": "Bytte del",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkHours": "P0Y0M0DT3H30M0S",
      • "capacityCount": 1,
      • "text": "",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Preventive Work order - Update operation Deprecated

    Important information

    Endpoint is deprecated as of 06.2021. It is replaced by a generic endpoint for all work order types /work-order-operations/{operation-id}.

    Overview

    Update the work order operation. Currently, we support completing the operation but additional functionality will be added in future releases.

    Update release v0.11.0

    Deprecated endpoint.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    operation
    required
    string
    Example: 0020
    Request Body schema: application/json

    Work order operation to update

    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Value: "/isCompleted"

    Path indicating the property to be impacted by the operation

    required
    boolean or string

    Value to be assigned to a resource property based on the operation and path.

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "op": "replace",
    • "path": "/isCompleted",
    • "value": true
    }

    Response samples

    Content type
    application/json
    {}

    Preventive Work order - Add time ticket

    Overview

    Add time ticket for work performed

    Update release v0.8.0

    Text multi-line property now is persisted as expected in ERP system.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    operation
    required
    string
    Example: 0020
    Request Body schema: application/json

    Time ticket to add to operation

    workHours
    required
    string

    The work performed for the operation. Duration as defined in ISO8601

    remainingWorkHours
    string

    New estimate of remaining work for the operation. In Duration format as defined in ISO8601

    workStartDateTime
    string <date-time> Nullable
    workEndDateTime
    string <date-time> Nullable
    workCenterId
    string

    Resource which performed the work. Default is based on Work order operation.

    workCenterPlantId
    string

    Resource which performed the work. Default is based on Work order operation.

    title
    string <= 40 characters

    Title for time ticket

    text
    string

    Multi-line description for the time ticket

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "workHours": "P0Y0M0DT2H0M0S",
    • "remainingWorkHours": "P0Y0M0DT2H0M0S",
    • "workStartDateTime": "2020-11-01T00:00:00Z",
    • "workEndDateTime": "2020-11-05T00:00:00Z",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "title": "Prep jobb",
    • "text": "Multi-line text\nDescribing the work done"
    }

    Response samples

    Content type
    application/json
    {}

    Preventive Work order - Attachment download

    Download single attachment for preventive Work order

    Authorizations:
    path Parameters
    record-id
    required
    string
    attachment-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/preventive-work-orders/%7Brecord-id%7D/attachments/%7Battachment-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Preventive Work order - Update status

    Overview

    Activate or deactivate status for Work order.

    Overview of how status are used can be found in Equinor's governing document GL1561 - Work orders and notifications types

    To identify which status the work order currently has perform a request to: work-orders/preventive-work-orders/{{work-order-id}}?include-status-details=true

    Supported statuses

    The endpoint supports most status activiation such as:

    • RDEX - Ready for execution
    • STRT - Job started
    • RDOP - Ready for operation
    • TECO - Technical complete - Note: This will also close the related failure-report
    • CLSD - Business close - Note: This will not close the related failure-report

    Deactivation is supported in most cases where there is no interdependency between statuses. For status with a statusOrder value, deactivation is not necessary (nor supported) as the business logic will handle the switch.

    The following statuses are not supported at the moment and will return a HTTP 405 response:

    • EXTR - Date extension required
    • PERM - Work permit provided
    • SJA - Safe job analysis required
    • WP - Work Permit exist
    • SJAR - Safe Job Analysis required
    • SJAE - Safe Job Analysis exist
    • PMSG - Purchasing Message
    • MLTI - Multi discipline

    Update version 0.9.0

    Support for releasing a work order by setting the REL status.

    Update version 1.1.0

    Support for deactivating TECO status

    Update version 1.6.0

    Support for ActivatedDateTime for TECO status. It is an optional parameter which allows to overwrite the default reference date for TECO. If no value is provided, the value will be set to current timestamp.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    status-id
    required
    string
    Request Body schema: application/json

    Work order status to update

    isActive
    required
    boolean
    activatedDateTime
    string <date-time> Nullable

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "isActive": true
    }

    Response samples

    Content type
    application/json
    {}

    Preventive Work order - Search

    Overview

    Search for preventive Work orders through predefined filters. Each filter has a defind action and a set of parameters as described below.

    Response

    The response does not include all details for each preventive work order. This can be found by subsequent call to lookup preventive-work-order

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    Filter: maintenance-plan-history

    Based on the maintenance plan of the Preventive Work order provided, find other instances sorted by start date Parameters:

    • work-order-id
    • earliest-date (optional)
    • max-work-orders (optional)

    Filter: recent-status-activations

    Preventive work orders based on recent status activations for the work order. Parameters:

    • status-id
    • plant-id
    • max-days-since-activation

    Filter: before-planned-date

    Find open Preventive work orders before the before-planned-date Parameters:

    • plant-id
    • planned-date
    • location-id (optional)
    • area-id (optional) Deprecated - Use locationId instead
    • system-id (optional)

    Filter: by-maintenance-type-id

    Find preventive work orders by maintenance type. Response will only include open work orders. Parameters:

    • plant-id
    • maintenance-type-id

    Update release v0.9.0

    Added filter by-maintenance-type-id.

    Update release v0.11.0

    Added system-id as optional parameter til filter before-planned-date.

    Update release v1.5.0

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "recent-status-activations" "before-planned-date" "by-maintenance-type-id" "maintenance-plan-history"

    Filter to limit the failure reports by

    status-id
    string

    Status

    plant-id
    string

    Plant

    max-days-since-activation
    integer <int32> [ 0 .. 255 ]

    Define how many days from the current day to include results for. 0 if only include for today

    work-order-id
    string

    Preventive Work order id

    earliest-date
    string <date>

    Earliest date to find maintenance plan history for (optional for filter)

    max-work-orders
    integer <int32>

    Maximal numbers of results returned (optional for filter)

    location-id
    string

    Structured location within the plant. Use /plants/{plant-id}/locations for possible values

    area-id
    string <date>
    Deprecated

    Deprecated. Use locationId instead

    planned-date
    string <date>

    Earliest date to find maintenance plan history for (optional for filter)

    system-id
    string
    Deprecated

    system-id of the preventive work order

    maintenance-type-id
    string
    Example: maintenance-type-id=005

    Type of maintenance for the work order

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/preventive-work-orders?filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&max-days-since-activation=SOME_INTEGER_VALUE&work-order-id=SOME_STRING_VALUE&earliest-date=SOME_STRING_VALUE&max-work-orders=SOME_INTEGER_VALUE&location-id=SOME_STRING_VALUE&area-id=SOME_STRING_VALUE&planned-date=SOME_STRING_VALUE&system-id=SOME_STRING_VALUE&maintenance-type-id=005' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "workOrderId": "24597659",
      • "tagId": "BF",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE.",
      • "title": "Modifikasjon av brannmur",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "locationId": "CD17OU",
      • "areaId": "Deprecated - Use locationId",
      • "plantId": "1100",
      • "planningPlantId": "1100",
      • "plannerGroupId": "PPM",
      • "activeStatusIds": "OSNO CRTE",
      • "maintenanceTypeId": "002",
      • "maintenanceType": "Periodic maintenance",
      • "plannedDate": "2019-08-24",
      • "revisionId": "PS02_21",
      • "revision": "FV 26A/RIA",
      • "basicStartDateTime": "2019-08-24T14:15:22Z",
      • "basicEndDateTime": "2019-08-24T14:15:22Z",
      • "createdDateTime": "2019-08-24T14:15:22Z",
      • "changedDateTime": "2019-08-24T14:15:22Z",
      • "sortField": "PRS10239.WP12"
      }
    ]

    SAS Change Work orders

    Used as a tool to ensure change control of software changes to Safety and Automation Systems.

    SAS Change Work order - Attachment download

    Download single attachment for SAS Change Work order

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    attachment-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/sas-change-work-orders/%7Bwork-order-id%7D/attachments/%7Battachment-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    SAS Change Work order - Lookup

    Overview

    Lookup single SAS Change Work order with related information

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    Update release v1.0.0

    Work order operation actualPercentageComplete now represents progress reported through technical feedback. If the Work order operation is completed, the value of actualPercentageComplete will always be 100.

    Update release v1.1.0

    If work-order-id exist, but is not a sasChangeWorkOrder, the response is a HTTP 301 Moved Permanently with the url to the resource in the HTTP header Location.

    Update release v1.3.0

    Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

    Update release v1.4.0

    Introduced property calculationKey for operations.

    Update release v1.5.0

    Added createdDateTime for attachments.

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    query Parameters
    include-operations
    boolean
    Default: true

    Include Work order operations

    include-materials
    boolean
    Default: true

    Include materials for Work order operations

    include-maintenance-records
    boolean
    Default: false

    Include related maintenance records (from object list)

    include-attachments
    boolean
    Default: false

    Include Work order attachments (on header and for operation)

    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    include-tag-details
    boolean
    Default: false

    Include detailed for the main tag of the Work order

    include-related-tags
    boolean
    Default: false

    Include related tags (from object list)

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/sas-change-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "operations": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "tagsRelated": [
      • {
        }
      ],
    • "maintenanceRecords": [
      • {
        }
      ],
    • "tagDetails": {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      },
    • "attachments": [
      • {
        }
      ],
    • "text": "Beskrivelse av prosjekt modifikasjon\n",
    • "workOrderTypeId": "sasChangeWorkOrder",
    • "costWBS": "Conc.: Well A10 GL hook-up FL",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24684145",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "tag": "A10 OIL PRODUCTION WELL",
    • "title": "1416/Installerer Flowlinw A10",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "systemId": "11",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "Z06",
    • "maintenanceType": "SAS Change Activity",
    • "revisionId": "PS02_21",
    • "revision": "FV 26A/RIA",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "costWBSId": "M.O037C.20.A.0002.A2",
    • "projectId": "M.O037C.20.A.0002",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "sortField": "PRS10239.WP12"
    }

    SAS Change Work order - Update

    Overview

    Update SAS Change work order.

    Supports:

    • Append to text
    • Update workCenterId and workCenterPlantId
    • Update tagId and tagPlantId
    • Update basicStartDateTime and basicEndDateTime
    • Update sortField
    • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)

    Important information

    Append to text follows requirement I-103209 - Notation in long text field - Upstream offshore.

    Newest information in text is added above existing information and is automatically signed with date and full name of logged on user.

    Update release v1.0.0

    Added additional properties to update

    Update release v1.4.0

    Adjusted logic for append text to work order. Newest information in text is now added above existing information.

    Update release v1.6.0

    Added possibility for update of sortField and revisionId.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    Request Body schema: application/json

    The information to be updated

    Array ()
    op
    string
    Enum: "append" "replace"

    JSON Patch operation according to RFC6902.

    Operation replace is suitable for the following properties: /workCenterId,/workCenterPlantId,tagId,/tagPlantId,/basicStartDateTime,/basicEndDateTime

    Operation append is suitable for the following properties: /text

    path
    string
    Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField"

    The property to be updated by the non-trivial patch operation. /workCenterId and /workCenterPlantId must be provided in same request. tagId,/tagPlantId must be provided in same request.

    value
    string

    Value to be assigned to a resource property based on the operation and path.

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "append",
      • "path": "/text",
      • "value": "Text to append\nMulti-line"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    SAS Change Work order - Update status

    Activate or deactivate status for Work order

    Important information

    Currently, not all statuses are supported.

    The status supported are:

    1. RDEX - Ready for execution
    2. CLSD - Business close

    Update version 1.6.0

    Support for ActivatedDateTime for TECO status. It is an optional parameter which allows to overwrite the default reference date for TECO. If no value is provided, the value will be set to current timestamp.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    status-id
    required
    string
    Request Body schema: application/json

    Work order status to update

    isActive
    required
    boolean
    activatedDateTime
    string <date-time> Nullable

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "isActive": true
    }

    Response samples

    Content type
    application/json
    {}

    SAS Change Work order - Search

    Overview

    Search for SAS Change Work orders through predefined filters. Each filter has a defined action and a set of parameters as described below.

    Response

    The response does not include all details for each SAS Change Work order. This can be found by subsequent call to lookup sas-change-work-orders

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    Filter: open-by-plant

    Find open SAS Change Work orders by plant Parameters:

    • plant-id
    • location-id (optional)
    • system-id (optional)

    Filter: recent-status-activations

    SAS Change Work orders based on recent status activations for the work orders. Parameters:

    • status-id
    • plant-id
    • max-days-since-activation

    Update release 1.4.0

    Added location-id and system-id to filter open-by-plant.

    Update release v1.5.0

    Added revisionId to work order response (represents shutdown or campaign work).

    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "open-by-plant" "recent-status-activations"

    Filter to limit the SAS Change work order by

    status-id
    string

    Status

    plant-id
    string

    Plant

    location-id
    string

    Structured location within the plant. Use /plants/{plant-id}/locations for possible values

    system-id
    string

    System id to filter by

    max-days-since-activation
    integer <int32> [ 0 .. 255 ]

    Define how many days from the current day to include results for. 0 if only include for today

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/sas-change-work-orders?filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&location-id=SOME_STRING_VALUE&system-id=SOME_STRING_VALUE&max-days-since-activation=SOME_INTEGER_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "workOrderId": "24684145",
      • "tagId": "LZ1012",
      • "tagPlantId": "1100",
      • "tag": "A10 OIL PRODUCTION WELL",
      • "title": "1416/Installerer Flowlinw A10",
      • "workCenterId": "PPMAUT",
      • "workCenterPlantId": "1100",
      • "locationId": "CD17OU",
      • "areaId": "Deprecated - Use locationId",
      • "systemId": "11",
      • "plantId": "1100",
      • "planningPlantId": "1100",
      • "plannerGroupId": "PPM",
      • "activeStatusIds": "OSNO CRTE",
      • "maintenanceTypeId": "Z06",
      • "maintenanceType": "SAS Change Activity",
      • "revisionId": "PS02_21",
      • "revision": "FV 26A/RIA",
      • "basicStartDateTime": "2019-08-24T14:15:22Z",
      • "basicEndDateTime": "2019-08-24T14:15:22Z",
      • "createdDateTime": "2019-08-24T14:15:22Z",
      • "changedDateTime": "2019-08-24T14:15:22Z",
      • "costWBSId": "M.O037C.20.A.0002.A2",
      • "projectId": "M.O037C.20.A.0002",
      • "costNetworkId": "9045173",
      • "costNetworkOperationId": "0010",
      • "sortField": "PRS10239.WP12"
      }
    ]

    SAS Change Work order - Create

    Overview

    Create new SAS Change Work order

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    Update release v1.5.0

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Update release v1.6.0

    Added sortField and revisionId to create request. Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values for revisionId.

    Authorizations:
    Request Body schema: application/json

    SAS Change Work order to create

    planningPlantId
    required
    string
    workCenterId
    required
    string
    workCenterPlantId
    required
    string
    title
    required
    string
    plantId
    required
    string
    locationId
    required
    string

    Structured location within the plant where the tag is located

    required
    Array of objects (WorkOrderOperationCreate)
    tagId
    required
    string
    tagPlantId
    required
    string
    costNetworkId
    string
    costNetworkOperationId
    string
    plannerGroupId
    string
    maintenanceTypeId
    string
    basicStartDateTime
    string <date-time>
    basicEndDateTime
    string <date-time>
    revisionId
    string

    An identifier to the revision (shutdown or campaign work) this work order is related to. Read possible values from /plants/{plant-id}

    sortField
    string

    Field used to assist in grouping/sorting Work orders. Unstructured field used non-consistently between plants

    areaId
    string
    Deprecated

    Deprecated 01.2021 - Use locationId instead

    text
    string

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "title": "14xx/Installere flowline CD2",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "plantId": "1100",
    • "locationId": "CD2",
    • "sortField": "PRS10239.WP12",
    • "revisionId": "PV04_21",
    • "maintenanceTypeId": "015",
    • "basicStartDateTime": "2020-11-01T00:00:00Z",
    • "basicEndDateTime": "2021-03-01T00:00:00Z",
    • "text": "Project for replacing flowing on CD2\n",
    • "operations": [
      • {
        },
      • {
        }
      ]
    }

    Response samples

    Content type
    application/json
    {
    • "text": "Beskrivelse av prosjekt modifikasjon\n",
    • "workOrderTypeId": "sasChangeWorkOrder",
    • "costWBS": "Conc.: Well A10 GL hook-up FL",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24684145",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "tag": "A10 OIL PRODUCTION WELL",
    • "title": "1416/Installerer Flowlinw A10",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "systemId": "11",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "Z06",
    • "maintenanceType": "SAS Change Activity",
    • "revisionId": "PS02_21",
    • "revision": "FV 26A/RIA",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "costWBSId": "M.O037C.20.A.0002.A2",
    • "projectId": "M.O037C.20.A.0002",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "sortField": "PRS10239.WP12"
    }

    SAS Change Work order - Add operation(s)

    Add operations

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    Request Body schema: application/json

    Operations to add to existing Work order

    Array ()
    title
    required
    string [ 0 .. 40 ] characters
    operation
    required
    string

    Id of operation user is familiar with

    workCenterId
    string
    workCenterPlantId
    string
    text
    string
    plannedWorkDuration
    string

    Duration as defined in ISO8601

    plannedWorkHours
    string

    Duration as defined in ISO8601

    capacityCount
    integer <int32>
    schedulingStartConstraintId
    string
    Enum: "MSO" "SNET" "SNLT"

    Constraint: * MSO - Must start on * SNET - Start no earlier than * SNLT - Start no later than

    schedulingStartConstraintDateTime
    string <date-time>
    schedulingFinishConstraintId
    string
    Enum: "MFO" "FNET" "FNLT"

    Constraint: * MFO - Must finish on date * FNET - Finish no earlier than * FNLT - Finish no later than

    schedulingFinishConstraintDateTime
    string <date-time>
    isScheduledExternally
    boolean
    earliestStartDateTime
    string <date-time>
    earliestFinishDateTime
    string <date-time>

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "operation": "0010",
      • "title": "Bygge stillas",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkHours": "P0Y0M0DT4H0M0S",
      • "capacityCount": 2,
      • "text": "Bygge stillas\n3 x 3 x 5 meter",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      },
    • {
      • "operation": "0020",
      • "title": "Bytte del",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkHours": "P0Y0M0DT3H30M0S",
      • "capacityCount": 1,
      • "text": "",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Project Work orders

    Used for modification projects that are controlled and managed using standard modification project structures that include WBS, network orders and activities.

    Project Work order - Attachment download

    Download single attachment for Project Work order

    Authorizations:
    path Parameters
    record-id
    required
    string
    attachment-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/project-work-orders/%7Brecord-id%7D/attachments/%7Battachment-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Project Work order - Lookup

    Overview

    Lookup single Project Work order with related information

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    Update release v1.0.0

    Work order operation actualPercentageComplete now represents progress reported through technical feedback. If the Work order operation is completed, the value of actualPercentageComplete will always be 100.

    Update release v1.1.0

    If work-order-id exist, but is not a projectWorkOrder, the response is a HTTP 301 Moved Permanently with the url to the resource in the HTTP header Location.

    Update release v1.3.0

    Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

    Update release v1.4.0

    Introduced property calculationKey for operations.

    Update release v1.5.0

    Added createdDateTime for attachments.

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    query Parameters
    include-operations
    boolean
    Default: true

    Include Work order operations

    include-materials
    boolean
    Default: true

    Include materials for Work order operations

    include-maintenance-records
    boolean
    Default: false

    Include related maintenance records (from object list)

    include-attachments
    boolean
    Default: false

    Include Work order attachments (on header and for operation)

    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    include-tag-details
    boolean
    Default: false

    Include detailed for the main tag of the Work order

    include-related-tags
    boolean
    Default: false

    Include related tags (from object list)

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/project-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "operations": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "tagsRelated": [
      • {
        }
      ],
    • "maintenanceRecords": [
      • {
        }
      ],
    • "tagDetails": {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      },
    • "attachments": [
      • {
        }
      ],
    • "text": "Beskrivelse av prosjekt modifikasjon\n",
    • "workOrderTypeId": "projectWorkOrder",
    • "costWBS": "Conc.: Well A10 GL hook-up FL",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24684145",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "tag": "A10 OIL PRODUCTION WELL",
    • "title": "1416/Installerer Flowlinw A10",
    • "isTimeOnlyWorkOrder": false,
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "systemId": "11",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "015",
    • "maintenanceType": "Project work",
    • "revisionId": "PS02_21",
    • "revision": "FV 26A/RIA",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "costWBSId": "M.O037C.20.A.0002.A2",
    • "projectId": "M.O037C.20.A.0002",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "sortField": "PRS10239.WP12"
    }

    Project Work order - Update

    Overview

    Update project work order.

    Supports:

    • Append to text
    • Update workCenterId and workCenterPlantId
    • Update tagId and tagPlantId
    • Update basicStartDateTime and basicEndDateTime
    • Update sortField
    • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)

    Important information

    Append to text follows requirement I-103209 - Notation in long text field - Upstream offshore.

    Newest information in text is added above existing information and is automatically signed with date and full name of logged on user.

    Update release v1.0.0

    Added additional properties to update

    Update release v1.4.0

    Adjusted logic for append text to work order. Newest information in text is now added above existing information.

    Update release v1.6.0

    Added possibility for update of sortField and revisionId.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    Request Body schema: application/json

    The information to be updated

    Array ()
    op
    string
    Enum: "append" "replace"

    JSON Patch operation according to RFC6902.

    Operation replace is suitable for the following properties: /workCenterId,/workCenterPlantId,tagId,/tagPlantId,/basicStartDateTime,/basicEndDateTime

    Operation append is suitable for the following properties: /text

    path
    string
    Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField"

    The property to be updated by the non-trivial patch operation. /workCenterId and /workCenterPlantId must be provided in same request. tagId,/tagPlantId must be provided in same request.

    value
    string

    Value to be assigned to a resource property based on the operation and path.

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "append",
      • "path": "/text",
      • "value": "Text to append\nMulti-line"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Project Work order - Update status

    Activate or deactivate status for Work order

    Important information

    Currently, not all statuses are supported.

    The status supported are:

    1. RDEX - Ready for execution
    2. CLSD - Business close

    Update version 1.6.0

    Support for ActivatedDateTime for TECO status. It is an optional parameter which allows to overwrite the default reference date for TECO. If no value is provided, the value will be set to current timestamp.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    status-id
    required
    string
    Request Body schema: application/json

    Work order status to update

    isActive
    required
    boolean
    activatedDateTime
    string <date-time> Nullable

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "isActive": true
    }

    Response samples

    Content type
    application/json
    {}

    Project Work order - Search

    Overview

    Search for project Work orders through predefined filters. Each filter has a defined action and a set of parameters as described below.

    Response

    The response does not include all details for each project work order. This can be found by subsequent call to lookup project-work-order

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    Filter: open-by-plant

    Find open Project Work orders by plant Parameters:

    • plant-id
    • location-id (optional)
    • system-id (optional)

    Filter: recent-status-activations

    Project work orders based on recent status activations for the work orders. Parameters:

    • status-id
    • plant-id
    • max-days-since-activation

    Update release 1.4.0

    Added location-id and system-id to filter open-by-plant.

    Update release v1.5.0

    Added revisionId to work order response (represents shutdown or campaign work).

    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "open-by-plant" "recent-status-activations"

    Filter to limit the Project work order by

    status-id
    string

    Status

    plant-id
    string

    Plant

    location-id
    string

    Structured location within the plant. Use /plants/{plant-id}/locations for possible values

    system-id
    string

    System id to filter by

    max-days-since-activation
    integer <int32> [ 0 .. 255 ]

    Define how many days from the current day to include results for. 0 if only include for today

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/project-work-orders?filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&location-id=SOME_STRING_VALUE&system-id=SOME_STRING_VALUE&max-days-since-activation=SOME_INTEGER_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "workOrderId": "24684145",
      • "tagId": "LZ1012",
      • "tagPlantId": "1100",
      • "tag": "A10 OIL PRODUCTION WELL",
      • "title": "1416/Installerer Flowlinw A10",
      • "isTimeOnlyWorkOrder": false,
      • "workCenterId": "PPMAUT",
      • "workCenterPlantId": "1100",
      • "locationId": "CD17OU",
      • "areaId": "Deprecated - Use locationId",
      • "systemId": "11",
      • "plantId": "1100",
      • "planningPlantId": "1100",
      • "plannerGroupId": "PPM",
      • "activeStatusIds": "OSNO CRTE",
      • "maintenanceTypeId": "015",
      • "maintenanceType": "Project work",
      • "revisionId": "PS02_21",
      • "revision": "FV 26A/RIA",
      • "basicStartDateTime": "2019-08-24T14:15:22Z",
      • "basicEndDateTime": "2019-08-24T14:15:22Z",
      • "createdDateTime": "2019-08-24T14:15:22Z",
      • "changedDateTime": "2019-08-24T14:15:22Z",
      • "costWBSId": "M.O037C.20.A.0002.A2",
      • "projectId": "M.O037C.20.A.0002",
      • "costNetworkId": "9045173",
      • "costNetworkOperationId": "0010",
      • "sortField": "PRS10239.WP12"
      }
    ]

    Project Work order - Create

    Overview

    Create new Project Work order

    Important information

    Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.

    Update release v1.4.0

    Fixed bug related to costNetworkId.

    Update release v1.5.0

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Update release v1.6.0

    Added sortField and revisionId to create request. Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values for revisionId.

    Authorizations:
    Request Body schema: application/json

    Project Work order to create

    planningPlantId
    required
    string
    workCenterId
    required
    string
    workCenterPlantId
    required
    string
    title
    required
    string
    plantId
    required
    string
    locationId
    required
    string

    Structured location within the plant where the tag is located

    costNetworkId
    required
    string
    costNetworkOperationId
    required
    string
    required
    Array of objects (WorkOrderOperationCreate)
    isTimeOnlyWorkOrder
    boolean

    If true, this project work order can only be used for time cost and is represented by a different work order type (PM20) in SAP

    tagId
    string
    tagPlantId
    string
    plannerGroupId
    string
    maintenanceTypeId
    string
    basicStartDateTime
    string <date-time>
    basicEndDateTime
    string <date-time>
    revisionId
    string

    An identifier to the revision (shutdown or campaign work) this work order is related to. Read possible values from /plants/{plant-id}

    sortField
    string

    Field used to assist in grouping/sorting Work orders. Unstructured field used non-consistently between plants

    areaId
    string
    Deprecated

    Deprecated 01.2021 - Use locationId instead

    text
    string

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "title": "14xx/Installere flowline CD2",
    • "isTimeOnlyWorkOrder": false,
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "plantId": "1100",
    • "locationId": "CD2",
    • "sortField": "PRS10239.WP12",
    • "revisionId": "PV04_21",
    • "maintenanceTypeId": "015",
    • "basicStartDateTime": "2020-11-01T00:00:00Z",
    • "basicEndDateTime": "2021-03-01T00:00:00Z",
    • "text": "Project for replacing flowing on CD2\n",
    • "operations": [
      • {
        },
      • {
        }
      ]
    }

    Response samples

    Content type
    application/json
    {
    • "text": "Beskrivelse av prosjekt modifikasjon\n",
    • "workOrderTypeId": "projectWorkOrder",
    • "costWBS": "Conc.: Well A10 GL hook-up FL",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24684145",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "tag": "A10 OIL PRODUCTION WELL",
    • "title": "1416/Installerer Flowlinw A10",
    • "isTimeOnlyWorkOrder": false,
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "systemId": "11",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "015",
    • "maintenanceType": "Project work",
    • "revisionId": "PS02_21",
    • "revision": "FV 26A/RIA",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "costWBSId": "M.O037C.20.A.0002.A2",
    • "projectId": "M.O037C.20.A.0002",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "sortField": "PRS10239.WP12"
    }

    Project Work order - Add operation(s)

    Add operations

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    Request Body schema: application/json

    Operations to add to existing Work order

    Array ()
    title
    required
    string [ 0 .. 40 ] characters
    operation
    required
    string

    Id of operation user is familiar with

    workCenterId
    string
    workCenterPlantId
    string
    text
    string
    plannedWorkDuration
    string

    Duration as defined in ISO8601

    plannedWorkHours
    string

    Duration as defined in ISO8601

    capacityCount
    integer <int32>
    schedulingStartConstraintId
    string
    Enum: "MSO" "SNET" "SNLT"

    Constraint: * MSO - Must start on * SNET - Start no earlier than * SNLT - Start no later than

    schedulingStartConstraintDateTime
    string <date-time>
    schedulingFinishConstraintId
    string
    Enum: "MFO" "FNET" "FNLT"

    Constraint: * MFO - Must finish on date * FNET - Finish no earlier than * FNLT - Finish no later than

    schedulingFinishConstraintDateTime
    string <date-time>
    isScheduledExternally
    boolean
    earliestStartDateTime
    string <date-time>
    earliestFinishDateTime
    string <date-time>

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "operation": "0010",
      • "title": "Bygge stillas",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkHours": "P0Y0M0DT4H0M0S",
      • "capacityCount": 2,
      • "text": "Bygge stillas\n3 x 3 x 5 meter",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      },
    • {
      • "operation": "0020",
      • "title": "Bytte del",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkHours": "P0Y0M0DT3H30M0S",
      • "capacityCount": 1,
      • "text": "",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Modification Work orders

    Used for simple modification of installation.

    Modification Work order - Lookup

    Overview

    Lookup single Modification Work order with related information.

    Update release v1.1.0

    If work-order-id exist, but is not a modificationWorkOrder, the response is a HTTP 301 Moved Permanently with the url to the resource in the HTTP header Location.

    Update release v1.3.0

    Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

    Update release v1.4.0

    Introduced property calculationKey for operations.

    Update release v1.5.0

    Added createdDateTime for attachments.

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    query Parameters
    include-operations
    boolean
    Default: true

    Include Work order operations

    include-materials
    boolean
    Default: true

    Include materials for Work order operations

    include-maintenance-records
    boolean
    Default: false

    Include related maintenance records (from object list)

    include-attachments
    boolean
    Default: false

    Include Work order attachments (on header and for operation)

    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    include-tag-details
    boolean
    Default: false

    Include detailed for the main tag of the Work order

    include-related-tags
    boolean
    Default: false

    Include related tags (from object list)

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/modification-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "operations": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "tagsRelated": [
      • {
        }
      ],
    • "maintenanceRecords": [
      • {
        }
      ],
    • "tagDetails": {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      },
    • "attachments": [
      • {
        }
      ],
    • "text": "Beskrivelse av prosjekt modifikasjon\n",
    • "workOrderTypeId": "modificationWorkOrder",
    • "costWBS": "Conc.: Well A10 GL hook-up FL",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24684145",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "tag": "A10 OIL PRODUCTION WELL",
    • "title": "1416/Installerer Flowlinw A10",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "modificationProposalId": "46415269",
    • "locationId": "CD17OU",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "006",
    • "maintenanceType": "Improvement / minor modificat.",
    • "revisionId": "PS02_21",
    • "revision": "FV 26A/RIA",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "costWBSId": "M.O037C.20.A.0002.A2",
    • "projectId": "M.O037C.20.A.0002",
    • "sortField": "PRS10239.WP12"
    }

    Modification Work order - Update

    Overview

    Update modification work order.

    Supports:

    • Append to text
    • Update workCenterId and workCenterPlantId
    • Update tagId and tagPlantId
    • Update basicStartDateTime and basicEndDateTime
    • Update sortField
    • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)

    Important information

    Append to text follows requirement I-103209 - Notation in long text field - Upstream offshore.

    Newest information in text is added above existing information and is automatically signed with date and full name of logged on user.

    Update release v1.0.0

    Added additional properties to update

    Update release v1.4.0

    Adjusted logic for append text to work order. Newest information in text is now added above existing information.

    Update release v1.6.0

    Added possibility for update of sortField and revisionId.

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    Request Body schema: application/json

    The information to be updated

    Array ()
    op
    string
    Enum: "append" "replace"

    JSON Patch operation according to RFC6902.

    Operation replace is suitable for the following properties: /workCenterId,/workCenterPlantId,tagId,/tagPlantId,/basicStartDateTime,/basicEndDateTime

    Operation append is suitable for the following properties: /text

    path
    string
    Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField"

    The property to be updated by the non-trivial patch operation. /workCenterId and /workCenterPlantId must be provided in same request. tagId,/tagPlantId must be provided in same request.

    value
    string

    Value to be assigned to a resource property based on the operation and path.

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "append",
      • "path": "/text",
      • "value": "Text to append\nMulti-line"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Subsea Work orders

    Used for Subsea projects.

    Subsea Work order - Lookup

    Overview

    Lookup single Subsea Work order with related information.

    Important information

    By default include-person-responsible is false and then the fields personResponsibleId and personResponsibleEmail will always have null value.

    Update release v1.4.0

    Introduced property calculationKey for operations.

    Update release v1.5.0

    Added createdDateTime for attachments.

    Added revisionId and revision to work order response (represents shutdown or campaign work).

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    query Parameters
    include-operations
    boolean
    Default: true

    Include Work order operations

    include-materials
    boolean
    Default: true

    Include materials for Work order operations

    include-attachments
    boolean
    Default: false

    Include Work order attachments (on header and for operation)

    include-person-responsible
    boolean
    Default: false

    Include person responsible information in response. If user does not have sufficient rights, this will return a 403 response

    include-status-details
    boolean
    Default: false

    Include detailed information for statuses (both active and non-active)

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/subsea-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-person-responsible=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "personResponsibleId": "433937",
    • "personResponsibleEmail": "shortname@equinor.com",
    • "operations": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "attachments": [
      • {
        }
      ],
    • "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n\nHvordan påvirker feilen utstyrets funksjon? ...\n",
    • "workOrderTypeId": "subseaWorkOrder",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "hasPersonResponsible": true,
    • "costWBSId": "T.O089E.WI.00007",
    • "projectId": "T.O089E",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "workOrderId": "24983466",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "isObsoleteSubseaWorkOrderType": false,
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "failureReportId": "45836077",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "002",
    • "maintenanceType": "Periodic maintenance",
    • "requiredEndDate": "2019-08-24",
    • "revisionId": "PS02_21",
    • "revision": "FV 26A/RIA",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "sortField": "PRS10239.WP12",
    • "priorityId": "L"
    }

    Subsea Work order - Attachment download

    Download single attachment for subsea work order

    Authorizations:
    path Parameters
    record-id
    required
    string
    attachment-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/subsea-work-orders/%7Brecord-id%7D/attachments/%7Battachment-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Measuring points

    A measuring point represents the physical or virtual location at which process values, events or conditions are described. For instance a temperature reader, pressure sensor, or a spot on a pipe where thickness is measured.

    Measuring points indicate where measurements (or derived/calculated values) occur.

    A measuring point is normally connected to a tag or equipment, facilitating the monitoring of its state and perfomance.

    Measuring point - Lookup

    Overview

    Lookup a single measuring point.

    A measuring point represents the physical or virtual location at which process values, events or conditions are described. For instance a temperature reader, pressure sensor, or a spot on a pipe where thickness is measured.

    Measuring points indicate where measurements (or derived/calculated values) occur.

    A measuring point is normally connected to a tag or equipment, facilitating the monitoring of its state and perfomance.

    Important information

    Measuring points support quantitative (example 3mm), qualitative (example YES) or combination of the two when creating measurements for the measuring point.

    Quantitative measurements are defined by quantitativeCharacteristicId and have a unit of measure.

    Qualitative measurement codes are defined by qualitativeCodeGroupId.

    Authorizations:
    path Parameters
    point-id
    required
    string
    Example: 14626974
    query Parameters
    include-last-measurement
    boolean
    Default: false

    Include the last measurement of the measuring point

    include-measurements
    boolean
    Default: false

    Include measurements of the measuring point

    include-qualitative-code-group
    boolean
    Default: false

    Include possible codes for qualitative measurements if qualitativeCodeGroupId is set

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/measuring-points/%7Bpoint-id%7D?include-last-measurement=SOME_BOOLEAN_VALUE&include-measurements=SOME_BOOLEAN_VALUE&include-qualitative-code-group=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "lastMeasurement": {
      • "measurementId": "10017608811",
      • "measuringPointId": "14626974",
      • "measurementDateTime": "2019-08-24T14:15:22Z",
      • "measurementTitle": "string",
      • "quantitativeReading": 19.2,
      • "quantitativeReadingUnitId": "MM",
      • "qualitativeCodeGroupId": "OBSMETH",
      • "qualitativeCodeId": "UT-I",
      • "processingStatusId": "1"
      },
    • "measurements": [
      • {
        }
      ],
    • "qualitativeCodes": [
      • {
        }
      ],
    • "tagId": "1A1-A16A",
    • "tagPlantId": "1111",
    • "equipmentId": "12410072",
    • "measuringPosition": "P:M03 2\" SV 301",
    • "supportsQuantitativeMeasurement": true,
    • "quantitativeCharacteristicId": "SM_COATING_CONDITION_ITEM",
    • "quantitativeCharacteristicUnit": "mbar",
    • "quantitativeCharacteristicUnitId": "MBAR",
    • "categoryId": "B",
    • "qualitativeCodeGroupId": "OBSMETH",
    • "supportsQualitativeMeasurement": true,
    • "measuringPointId": "14626974",
    • "measuringPoint": "Surface coating condition"
    }

    Measuring point - Search

    Overview

    Search measuring point.

    Filter: by-plant

    Search measuring points based on plant and one other property of the measuring point. Parameters:

    • plant-id
    • tag-prefix (optional)
    • measuring-position (optional)
    • quantitative-characteristic (optional)
    • qualitative-code-group (optional)
    • measuring-point-name (optional)

    Examples

    /measuring-points?filter=by-plant&plant-id=1180&tag-prefix=18HV10&api-version=v1 /measuring-points?filter=by-plant&plant-id=1102&quantitative-characteristic=SURFACE_MAINTEANC&api-version=v1

    /measuring-points?filter=by-plant&plant-id=1180&tag-prefix=18HV10&position=VALVE%20STATUS&include-last-measurement=true&api-version=v1

    Authorizations:
    query Parameters
    filter
    required
    string
    Value: "by-plant"

    Filter to limit the measuring points by

    plant-id
    string

    Plant the tag-prefix belongs to

    tag-prefix
    string >= 2 characters
    Example: tag-prefix=02%22-EC-%202525-M

    The first few characters of the tag

    measuring-position
    string
    Example: measuring-position=VALVE%20STATUS

    Limit result based on a specific measuring position value

    quantitative-characteristic
    string
    Example: quantitative-characteristic=SM_COATING_CONDITION_ITEM

    Limit result based on a specific quantitative characteristic value

    qualitative-code-group
    string
    Example: qualitative-code-group=OBSMETH

    Limit result based on a specific qualitative code group value

    measuring-point-name
    string
    Example: measuring-point-name=Breakout%20torque

    Limit result based on a specific measuring point name value

    include-last-measurement
    boolean
    Default: false

    Include the last measurement of the measuring points

    include-measurements
    boolean
    Default: false

    Include measurements of the measuring points

    include-qualitative-code-group
    boolean
    Default: false

    Include possible codes for qualitative measurements if qualitativeCodeGroupId is set

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/measuring-points?filter=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&tag-prefix=02%2522-EC-%25202525-M&measuring-position=VALVE%2520STATUS&quantitative-characteristic=SM_COATING_CONDITION_ITEM&qualitative-code-group=OBSMETH&measuring-point-name=Breakout%2520torque&include-last-measurement=SOME_BOOLEAN_VALUE&include-measurements=SOME_BOOLEAN_VALUE&include-qualitative-code-group=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "lastMeasurement": {
        },
      • "measurements": [
        ],
      • "qualitativeCodes": [
        ],
      • "tagId": "1A1-A16A",
      • "tagPlantId": "1111",
      • "equipmentId": "12410072",
      • "measuringPosition": "P:M03 2\" SV 301",
      • "supportsQuantitativeMeasurement": true,
      • "quantitativeCharacteristicId": "SM_COATING_CONDITION_ITEM",
      • "quantitativeCharacteristicUnit": "mbar",
      • "quantitativeCharacteristicUnitId": "MBAR",
      • "categoryId": "B",
      • "qualitativeCodeGroupId": "OBSMETH",
      • "supportsQualitativeMeasurement": true,
      • "measuringPointId": "14626974",
      • "measuringPoint": "Surface coating condition"
      }
    ]

    Measurement - Create

    Create new measurement for measuring point.

    Important information

    Measuring points support quantitative (example 3mm), qualitative (example YES) or combination of the two when creating measurements for the measuring point.

    Quantitative measurements are defined by quantitativeCharacteristicId property of the measuring point. Make sure the quantitativeReading is in the reading unit of the measuring point.

    Qualitative measurement codes are defined by qualitativeCodeGroupId property of the measuring point.

    Authorizations:
    path Parameters
    point-id
    required
    string
    Example: 14626974
    Request Body schema: application/json

    Measurement of measuring point to create

    measurementDateTime
    string <date-time>

    When the measurement was performed. If not provided, the current datetime will be used.

    quantitativeReading
    number
    qualitativeCodeGroupId
    string
    qualitativeCodeId
    string
    measurementTitle
    string <= 40 characters
    processingStatusId
    string <= 1 characters

    '1' - MeasReading processed: activities need to be carried out '2' - MeasReading processed: activities covered by planned task '7'- MeasReading processed: no activities need to be carried out

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "quantitativeReading": 19.2
    }

    Response samples

    Content type
    application/json
    {
    • "measurementId": "10017608811",
    • "measuringPointId": "14626974",
    • "measurementDateTime": "2019-08-24T14:15:22Z",
    • "measurementTitle": "string",
    • "quantitativeReading": 19.2,
    • "quantitativeReadingUnitId": "MM",
    • "qualitativeCodeGroupId": "OBSMETH",
    • "qualitativeCodeId": "UT-I",
    • "processingStatusId": "1"
    }

    Maintenance plans

    The function of the maintenance programme is to systematize the maintenance effort so that the maintenance resources are used in a controlled, cost-effective manner to ensure a safe workplace with stable production and high production efficiency.

    Maintenance is defined in accordance with international standards and is about activities intended to prevent loss of or restore an item's ability to provide a required function. In practice, this involves activities to check condition, test functions, prolong life or repair.

    Overview of maintenance programme structure can be found in Equinor's internal governing document GL1624 Guidelines for the establishment of a preventive maintenance programme in SAP

    The maintenance programme consists of maintenance plans.

    Maintenance Plan - Lookup

    Lookup single Maintenance Plan

    Authorizations:
    path Parameters
    plan-id
    required
    string
    query Parameters
    include-items
    boolean
    Default: true

    Include items of the maintenance plan

    include-item-calls
    boolean
    Default: true

    Include calls for items of the maintenance plan

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-plans/%7Bplan-id%7D?include-items=SOME_BOOLEAN_VALUE&include-item-calls=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "maintenancePlanId": "1056916",
    • "maintenancePlan": "1100-AKCD2 MODULPROGRAM TELE CD2",
    • "items": [
      • {
        }
      ]
    }

    Maintenance Plan Item- Lookup

    Overview

    Lookup single maintenance plan item

    Maintenance Item contains the object list, task list and previous calls for preventive work orders.

    The object list describes the tag/equipment covered in the maintenance plan item.

    The task list describes the maintenance activities with the necessary support activities to be performed in the maintenance programme. These are divided into operations that are listed in an order that is natural for the practical implementation of the maintenance. The task List also sets the interval of operations through maintenance packages.

    Update release v1.2.0

    Added calculationKey for operations in the task list.

    Update release v1.5.0

    Bugfix related to text for operation.

    Authorizations:
    path Parameters
    plan-id
    required
    string

    The id of the maintenance plan

    item-id
    required
    string

    The id of the maintenance plan item

    query Parameters
    include-item-calls
    boolean
    Default: true

    Include calls to maintenance plan item

    include-item-object-list
    boolean
    Default: false

    Include list of objects for the maintenance plan item

    include-item-task-list
    boolean
    Default: false

    Include task list, operations (w/related objects and material needs) for the maintenance plan item

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-plans/%7Bplan-id%7D/items/%7Bitem-id%7D?include-item-calls=SOME_BOOLEAN_VALUE&include-item-object-list=SOME_BOOLEAN_VALUE&include-item-task-list=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "maintenanceStrategyId": "1100-1",
    • "maintenanceStrategy": "Statfjord A Platform (Month)",
    • "status": "RDEX PLAN",
    • "objectList": [
      • {
        }
      ],
    • "calls": [
      • {
        }
      ],
    • "taskList": {
      • "taskListId": "T-10012713-02",
      • "taskList": "24/48M FV-MULTI TRAIN1 GLYCOL REBOILER",
      • "taskListTypeId": "T",
      • "planningPlantId": "1100",
      • "statusId": "4",
      • "operations": [
        ]
      },
    • "maintenancePlanItemId": "10072940",
    • "maintenancePlanItem": "24M FV-TELE MODULPROGRAM CD2",
    • "maintenancePlanId": "1056916",
    • "planningPlantId": "1100",
    • "mainTagId": "AE5566",
    • "mainTagPlantId": "1100",
    • "maintenanceActivityTypeId": "002",
    • "maintenanceActivityType": "Periodic maintenance"
    }

    Maintenance Plan Item- Update

    Overview

    Update maintenance plan item.

    Important information

    This endpoint updates the direct properties of the maintenance plan item. Other endpoints allow update of other parts of the maintenance plan item such as:

    HTTP PATCH maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}?api-version=v1

    HTTP POST maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}?api-version=v1

    HTTP PATCH maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}?api-version=v1

    HTTP PUT maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}/maintenance-packages?api-version=v1

    HTTP POST maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}/material-needs?api-version=v1

    HTTP PATCH maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}/material-needs/{material-id}?api-version=v1

    HTTP DEL maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}/material-needs/{material-id}?api-version=v1

    Authorizations:
    path Parameters
    plan-id
    required
    string

    The id of the maintenance plan

    item-id
    required
    string

    The id of the maintenance plan item

    Request Body schema: application/json

    Update maintenance plan item body

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Value: "/maintenancePlanItem"

    Path indicating the property to be impacted by the operation

    value
    required
    string

    Value to be assigned to a resource property based on the operation and path.

    Path specific information:

    • /maintenancePlanItem - Title of the maintenance plan item with max-length 40 characters

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "op": "replace",
      • "path": "/maintenancePlanItem",
      • "value": "12M FV-TELE MODULPROGRAM CD2"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Maintenance Plan Item task list - Update

    Overview

    Update task lit of maintenance plan item.

    Important information

    This endpoint updates the direct properties of the task list of maintenance plan item. Other maintenance plan item may use the same task list and will be affected by this change.

    Authorizations:
    path Parameters
    plan-id
    required
    string

    The id of the maintenance plan

    item-id
    required
    string

    The id of the maintenance plan item

    task-id
    required
    string
    Example: T-10012713-02

    The id of the task within the maintenance plant item

    Request Body schema: application/json

    Update task list of maintenance plan item body

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Value: "/taskList"

    Path indicating the property to be impacted by the operation

    value
    required
    string

    Value to be assigned to a resource property based on the operation and path.

    Path specific information:

    • /taskList - Title of the task list of maintenance plan item with max-length 40 characters

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "op": "replace",
      • "path": "/taskList",
      • "value": "36M FV-MULTI TRAIN1 GLYCOL REBOILER"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Maintenance Plans - Search

    Overview

    Search for maintenance plans and maintenance plan items which are connected to a specific task list.

    This endpoint can be used to identify affected maintenance plans and maintenance plan items if an operation or a material in a task list will be updated or deleted.

    Filter: by-task-id

    Find maintenance plans and maintenance plan items which are affected by changes in a task list operation.

    Examples

    /maintenance-plans?filter=by-task-id&task-id=T-10012713-02&api-version=v1.

    Authorizations:
    query Parameters
    filter
    required
    string
    Value: "by-task-id"

    Filter to limit maintenance plans by

    task-id
    required
    string
    Example: task-id=T-10012713-02

    The id of the task within the maintenance plant item

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-plans?filter=SOME_STRING_VALUE&task-id=T-10012713-02' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "maintenancePlanId": "1056916",
      • "maintenancePlan": "1100-AKCD2 MODULPROGRAM TELE CD2",
      • "items": [
        ]
      }
    ]

    Maintenance Plan Item- Set maintenance packages for operation

    Overview

    Sets the maintenance packages for a single operation. As the endpoint is of type HTTP PUT, this replaces existing maintenance packages set for the operation. Therefore, the client must pass all maintenance packages to be used for for the operation regardless if they have been modified.

    Use the HTTP GET endpoint /maintenance-plans/{plan-id}/items/{item-id}?include-task-list=true for retrieving current data and necesary ids.

    Use the HTTP GET endpoint /maintenance-strategies/{strategy-id} for retrieving possible maintenance package for a maintenance strategy.

    Important information

    Most end-users will not have authorizations to perform this update. Clients must take precautions when changing the maintenance packages. The change will effect all maintenance plans which the maintenance plan item is assigned to.

    Authorizations:
    path Parameters
    plan-id
    required
    string
    Example: 1056916

    The id of the maintenance plan

    item-id
    required
    string
    Example: 10072940

    The id of the maintenance plan item

    task-id
    required
    string
    Example: T-10012713-02

    The id of the task within the maintenance plant item

    operation-id
    required
    string
    Example: 0020

    The id of the operation within the task list

    Request Body schema: application/json

    Operations to add to existing Work order

    Array ()
    packageId
    string <= 2 characters

    The SAP internal id for the package (not the cycleId)

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "packageId": "12"
      },
    • {
      • "packageId": "26"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Maintenance Plan Item - Update operation

    Overview

    Update operation for a maintenance plan item.

    Important information

    Note: The operation belongs to a task list which may be shared with multiple maintenance plan items. Therefore, multiple maintenance plan items may be affected by the change.

    Use the HTTP GET endpoint /maintenance-plans?filter=by-task-id&task-id={task-id}&api-version=v1 to view maintenance plans and maintenance plan items affected by this change.

    Use the HTTP GET endpoint /maintenance-plans/{plan-id}/items/{item-id}?include-task-list=true for retrieving current data and necesary ids.

    Update for release v1.2.0

    Added calculationKey as updatable field.

    Update release v1.5.0

    Bugfix related to text for operation.

    Authorizations:
    path Parameters
    plan-id
    required
    string
    Example: 1056916

    The id of the maintenance plan

    item-id
    required
    string
    Example: 10072940

    The id of the maintenance plan item

    task-id
    required
    string
    Example: 10012713-1

    The id of the task within the maintenance plant item

    operation-id
    required
    string
    Example: 0020

    The id of the operation within the task list

    Request Body schema: application/json

    Operations to add to existing Work order

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Enum: "/operationId" "/workCenterId" "/workCenterPlantId" "/title" "/text" "/capacityCount" "/standardTextTemplate" "/plannedDuration" "/plannedWorkHours" "/calculationKey"

    Path indicating the property to be impacted by the operation

    value
    required
    string

    Value to be assigned to a resource property based on the operation and path.

    Calculation key defines which of the fields plannedWorkHours,capacityCount and plannedDuration are derived based on the values of the two others.

    /calculationKey allowed values:

    • CALC_KEY_MANUAL - all fields are filled in manually
    • CALC_KEY_DURATION - plannedDuration is calculated
    • CALC_KEY_PLANNED_HOURS - plannedWorkHours is calculated
    • CALC_KEY_CAPACITY - capacityCount is calculated

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "op": "replace",
      • "path": "/operationId",
      • "value": "PX"
      },
    • {
      • "op": "replace",
      • "path": "/workCenterId",
      • "value": "SPIAUT"
      },
    • {
      • "op": "replace",
      • "path": "/workCenterPlantId",
      • "value": "1100"
      },
    • {
      • "op": "replace",
      • "path": "/title",
      • "value": "Endre skalering på PDT"
      },
    • {
      • "op": "replace",
      • "path": "/text",
      • "value": "Multi-line text for operation\nLine nr 2"
      },
    • {
      • "op": "replace",
      • "path": "/capacityCount",
      • "value": "2"
      },
    • {
      • "op": "replace",
      • "path": "/standardTextTemplate",
      • "value": "1100-GS"
      },
    • {
      • "op": "replace",
      • "path": "/plannedDuration",
      • "value": "PT2H45M"
      },
    • {
      • "op": "replace",
      • "path": "/plannedWorkHours",
      • "value": "PT3H"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Maintenance Plan Item - Remove operation from a task list

    Overview

    Remove an operation in a task list of a maintenance plan item.

    Important information

    Note: This action is allowed only for operations that are considered support activities and not operations that constitute concept activities. The operation belongs to a task list which may be shared with multiple maintenance plan items. Therefore, multiple maintenance plan items may be affected by the change. Use the HTTP GET endpoint /maintenance-plans?filter=by-task-id&task-id={task-id}&api-version=v1 to view maintenance plans and maintenance plan items affected by this change. Use the HTTP GET endpoint /maintenance-plans/{plan-id}/items/{item-id}?include-task-list=true for retrieving current data and necesary ids.

    Examples

    /maintenance-plans/1056916/items/10072940/tasks/T-10012713-1/operations/0010?api-version=v1

    Authorizations:
    path Parameters
    plan-id
    required
    string
    Example: 1056916

    The id of the maintenance plan

    item-id
    required
    string
    Example: 10072940

    The id of the maintenance plan item

    task-id
    required
    string
    Example: T-10012713-1

    The id of the task within the maintenance plant item

    operation-id
    required
    string
    Example: 0020

    The id of the operation within the task list

    Responses

    Request samples

    curl --request DELETE \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-plans/%7Bplan-id%7D/items/%7Bitem-id%7D/tasks/%7Btask-id%7D/operations/%7Boperation-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Maintenance Plan Item - Create operation

    Overview

    Create an operation for a maintenance plan item.

    In order for the operation to be part of the next maintenance plan call, the client must also assign a maintenance package to the newly created operation. This can be done via endpoint /maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}/maintenance-packages.

    Important information

    The operation belongs to a task list which may be shared with multiple maintenance plan items. Therefore, multiple maintenance plan items may be affected by the change.

    Use the HTTP GET endpoint /maintenance-plans?filter=by-task-id&task-id={task-id}&api-version=v1 to view maintenance plans and maintenance plan items affected by this change.

    Use the HTTP GET endpoint /maintenance-plans/{plan-id}/items/{item-id}?include-task-list=true for retrieving current data and necesary ids.

    activityTypeId is related to cost center and fisical year, and there is currently no endpoint to get possible values.

    Update release v1.5.0

    Bugfix related to text for operation.

    Authorizations:
    path Parameters
    plan-id
    required
    string
    Example: 1056916

    The id of the maintenance plan

    item-id
    required
    string
    Example: 10072940

    The id of the maintenance plan item

    task-id
    required
    string
    Example: 10012713-1

    The id of the task within the maintenance plan item

    Request Body schema: application/json

    Operation to add to existing maintenance plan item

    title
    required
    string
    operationId
    string

    Operation

    subOperationId
    string

    Sub operation numbering (often empty)

    workCenterId
    string
    workCenterPlantId
    string
    text
    string
    calculationKey
    string Nullable
    Enum: "CALC_KEY_MANUAL" "CALC_KEY_DURATION" "CALC_KEY_PLANNED_HOURS" "CALC_KEY_CAPACITY"

    Calculation key defines which of the fields plannedWorkHours,capacityCount and plannedDuration are derived based on the values of the two others. If calculation key is CALC_KEY_MANUAL, all fields are filled in manually.

    plannedWorkHours
    string Nullable

    Duration as defined in ISO8601

    capacityCount
    integer <int32> [ 0 .. 255 ]

    Number of capacity from work center required for the operation

    plannedDuration
    string Nullable

    Planned duration for operation is based on plannedManHours and capacityCount. Property format is as defined in ISO8601

    executionFactor
    integer <int32>

    Number of times the processing of operation is repeated during order processing

    standardTextTemplate
    string
    activityTypeId
    string

    Used to the describe the activity type produced by the related cost center

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "title": "24M AUTOMASJON BR2151 - GLYCOL STILL REB"
    }

    Response samples

    Content type
    application/json
    {
    • "operationId": "0020",
    • "subOperationId": "",
    • "title": "24M AUTOMASJON BR2151 - GLYCOL STILL REB",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
    • "calculationKey": "CALC_KEY_MANUAL",
    • "plannedWorkHours": "PT3H",
    • "capacityCount": 1,
    • "plannedDuration": "PT2H45M",
    • "executionFactor": 1,
    • "standardTextTemplate": "1100-GS",
    • "activityTypeId": "X4"
    }

    Maintenance Plan Item - Create operation material needs

    Overview

    Create material needs of operation for a maintenance plan item.

    Important information

    Note: The operation belongs to a task list which may be shared with multiple maintenance plan items. Therefore, multiple maintenance plan items may be affected by the change.

    Use the HTTP GET endpoint /maintenance-plans/{plan-id}/items/{item-id}?include-task-list=true for retrieving current data and necesary ids.

    Authorizations:
    path Parameters
    plan-id
    required
    string
    Example: 1056916

    The id of the maintenance plan

    item-id
    required
    string
    Example: 10072940

    The id of the maintenance plan item

    task-id
    required
    string
    Example: 10012713-1

    The id of the task within the maintenance plant item

    operation-id
    required
    string
    Example: 0020

    The id of the operation within the task list

    Request Body schema: application/json

    Operations to add to existing Work order

    materialId
    required
    string

    The material number there is a need for

    quantity
    required
    number <double> [ 0 .. 1000 ]

    Responses

    Request samples

    Content type
    application/json
    {
    • "materialId": "741466",
    • "quantity": 2
    }

    Response samples

    Content type
    application/json
    {}

    Maintenance Plan Item - Update operation material needs

    Overview

    Update material needs of operation for a maintenance plan item.

    Important information

    Note: The operation belongs to a task list which may be shared with multiple maintenance plan items. Therefore, multiple maintenance plan items may be affected by the change.

    Use the HTTP GET endpoint /maintenance-plans/{plan-id}/items/{item-id}?include-task-list=true for retrieving current data and necesary ids.

    Authorizations:
    path Parameters
    plan-id
    required
    string
    Example: 1056916

    The id of the maintenance plan

    item-id
    required
    string
    Example: 10072940

    The id of the maintenance plan item

    task-id
    required
    string
    Example: 10012713-1

    The id of the task within the maintenance plant item

    operation-id
    required
    string
    Example: 0020

    The id of the operation within the task list

    material-id
    required
    string
    Example: 411285

    The id of the material to modify

    Request Body schema: application/json

    Operations to add to existing Work order

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

    path
    required
    string
    Value: "/quantity"

    Path indicating the property to be impacted by the operation

    value
    required
    number

    Value to be assigned to a resource property based on the operation and path.

    Path specific information:

    • /quantity - maximum value: 1000

    Responses

    Request samples

    Content type
    application/json
    [
    • {
      • "op": "replace",
      • "path": "/quantity",
      • "value": 2
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Maintenance Plan Item - Remove material need of operation

    Overview

    Remove specific material need of operation for a maintenance plan item.

    Important information

    Note: The operation belongs to a task list which may be shared with multiple maintenance plan items. Therefore, multiple maintenance plan items may be affected by the change.

    Use the HTTP GET endpoint /maintenance-plans/{plan-id}/items/{item-id}?include-task-list=true for retrieving current data and necesary ids.

    Authorizations:
    path Parameters
    plan-id
    required
    string
    Example: 1056916

    The id of the maintenance plan

    item-id
    required
    string
    Example: 10072940

    The id of the maintenance plan item

    task-id
    required
    string
    Example: 10012713-1

    The id of the task within the maintenance plant item

    operation-id
    required
    string
    Example: 0020

    The id of the operation within the task list

    material-id
    required
    string
    Example: 552382

    The id of the material to remove

    Responses

    Request samples

    curl --request DELETE \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-plans/%7Bplan-id%7D/items/%7Bitem-id%7D/tasks/%7Btask-id%7D/operations/%7Boperation-id%7D/material-needs/%7Bmaterial-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Maintenance concepts

    The company's collection of standardised preventive maintenance activities to facilitate safe, reliable and efficient operation.

    Maintenance Concept - Lookup

    Overview

    Lookup single maintenance concept

    Authorizations:
    path Parameters
    concept-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-concepts/%7Bconcept-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "concept": "Valve-act-Efunc",
    • "conceptDescription": "Valve - on/off actuated - PSD function- cryo with SCE code 28",
    • "catalogProfile": "SC-Valves",
    • "responsibleDiscipline": "Valves",
    • "maintenanceActivities": [
      • {
        }
      ],
    • "conceptId": "VA1571",
    • "catalogProfileId": "PM-170",
    • "responsibleDisciplineId": "00000160"
    }

    Maintenance strategies

    Maintenance strategies define a set of maintenance packages which are used in the maintenance plans.

    Maintenance Strategies - Lookup

    Overview

    Lookup single maintenance strategy.

    Maintenance strategies define a set of maintenance packages which are used in the maintenance plans. The maintenance packages determine the cycle duration for preventive maintenance and can be organised as calendar-based with e.g. 3-, 6-, 12- or 24-monthly intervals, or as hourly with e.g. 1000-, 2000- or 5000-hour interval.

    Authorizations:
    path Parameters
    strategy-id
    required
    string
    Example: 1100-1

    The id of the strategy. Example values: 1100-1,1100-3,1100-5,1100-9

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-strategies/1100-1 \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "maintenanceStrategyId": "1100-1",
    • "maintenanceStrategy": "Statfjord A Platform (Month)",
    • "maintenancePackages": [
      • {
        }
      ]
    }