Maintenance API (1.38.0)

Download OpenAPI specification:Download

Maintenance API provides live access to read and update data within the Operation and Maintenance ERP area in Equinor.

If you require read-only access for analytical purposes with limited freshness, please use Maintenance Data API. This API is operated and maintained by a different team. Documentation for the Maintenance Data API can be found here

This document describes the release version 1.38.0 for April 2024. We recommend using the documentation published at https://equinor.github.io/maintenance-api-docs as it provides the best developer experience. Information on the next release 1.39.0 planned for May 2025 is available at this page.

Introduction

Our product vision is to make maintenance data available outside of the ERP system, to keep it relevant and updated, while also inspiring and enabling for innovation.

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.

The APIphany team also do conceptual development together with the consumer. Event Driven architecture is one example. Another example is for Condition Based Maintenance (CBM).

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

deprecated 2022-08 The subscription key is as of release 1.11.0 phased out and therefore HTTP header ocp-apim-subscription-key is no longer required for requests. This is a non-breaking change and clients are unaffected if the subscription key is still sent.

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.

API Request Limits

A safeguard has been put in place in order to not overload the backend systems. It is set up so that each consumer has a fixed number of concurrent requests that they can execute at the same time. If the amount of requests exceeds the limit, requests may be put into a queue, awaiting execution. If the queue is also filled up, the API will start to respond with 429 - Too Many Requests responses. The consumer will have to back off and reduce the amount of concurrent requests (by waiting for the active requests to finish) before issuing more. The current limits per consumer is:

  • Concurrent Requests: 50
  • Queue Limit: 0

Using Version Line

In our QA environment (https://api-test.gateway.equinor.com/maintenance-api) you can route your request towards the version line client instead of the default production line. This is helpful in role building scenarios which is typically done in the version line (Q83) or if the production line (Q93) is down due to maintenance or updates.

To route a request towards the version line, include the query parameter use-version-line=true in your request. This parameter will default to false if it is not included.

Using Field Selection as a query parameter

In our API, you can customize the response by specifying which fields to include using the selectFields query parameter on all Lookup endpoints. This allows you to tailor the data returned based on your needs, improving efficiency and reducing unnecessary data transfer.

To include specific fields in your response, add the query parameter select-fields to your request, followed by a comma-separated list of the desired fields. This allows you to limit the data returned to only the fields you need, which can improve performance by reducing the payload size. For example, if a resource has properties id, name, and description, a request with selectFields=id,name will return only those two properties.

If the select-fields parameter is not included, all available fields will be returned by default.

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 exist 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 YO001 - Display role O&M or YO017 - Display role O&M External, they need the YT105 - 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).

SAP ARM

The Access Request Management (ARM) system is used to apply for roles in SAP non production environments. The ARM system is available at the following link

Lotus Notes (deprecated)

The KB0036937 defines the procedure for applying for roles in the SAP QA environment.

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 parameter 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 preferred 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 per 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 QA (ad711600-154b-4ab0-8945-06cba7f10c4b) and Maintenance API Prod (1aee2186-b5f4-445a-bbf2-d28589ccb59a)

  4. Trigger an authentication request through a http client (such as postman, or in a browser) in order to trigger the consent process of the API permission https://login.microsoftonline.com/3aa4a235-b6e2-48d5-9195-7fcf05b459b0/oauth2/v2.0/authorize?client_id=YourClientIdGuid&redirect_uri=RedirectUriOnYourAppReg&response_mode=form_post&response_type=code&scope=MaintenanceAPIGuid/.default

  5. 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

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 oauth2 client credentials flow with certificates and the client application must be registered in Equinor Azure AD as an app registration. The client must generate a self-signed certificate and upload the public key to their app registration in Equinor Azure AD.

The self-signed certificate with private key will be used to generate the client_assertion property of the request to Equinor Azure AD as described Microsoft identity platform application authentication certificate credentials. We recommend using Microsoft MSAL to assist in the integration.

The APIphany team will assist in the system to system setup when necessary for integration. Contact us at the #maintenance-api channel on slack or create a Github issue for maintenance-api-docs.

Reading user information with system to system setup

It is possible to read user information with system to system setup but the functionality is disabled by default. To enable this functionality, the application must have a Legal Risk Assesment in place, showing that the application is allowed to read limited user information. Contact us for verification and enabling of this functionality for your application.

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 Citizen Development site, Microsoft Power Platform group at Yammer or the Equinor Slack channel #powerplatform.

In order to use Maintenance API within Equinor Power Apps, the relevant DigiTeam should establish a custom connector for the API in their Power platform environment. It is important to keep the custom connector up to date in order the get access to the latest functionality in the API.

The Power Platform enablement team provides some utilities for creating custom connectors in their Github repository.

The latest OpenAPI specification for Maintenance API will always be available at maintenance-api-docs and it adheres to the OpenAPI 3.0.1 standard.

Note: Be aware the OpenAPI support in custom connectors is limited and outdated. For example elements such as allOf or oneOf used in Maintenance API are not directly supported. We have an unsupported generated file which attempts to fix this at maintenance-api-flattened.yaml.

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.

ERP Advanced multi-line text

For all Maintenance record- and Work Order-related endpoints, we now expose multi-line text, that gives the consumer greater control of the input and formatting of the text towards the ERP system when creating and updating. In the corresponding lookup request, the formatting can be viewed as it is stored in the source system. A dummy example is provided below:

"text" : "Commands should generally not be inputted, just kept where they are from the lookup \n{{COMMAND INCLUDE Z_110_FLX_BEREDSKAPSGASSMAAL_0001 OBJECT TEXT ID IPRT}}, 
but after that we can do whatever.\n{{LEFT_ALIGNED}}Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.\n{{CENTERED}}Duis aute irure dolor in reprehenderit in voluptate velit 
esse cillum dolore eu fugiat nulla pariatur.\nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui 
officia deserunt mollit anim id est laborum."

With the help of Control Characters, styling such as centering, left-alignment and linefeed can be controlled. These are always surrounded by double curly braces{{ }}. These are the available keys:

ControlCharacter FormatKey Description
\n * Makes the line into a paragraph
{{CENTERED}} C Centers the paragraph
{{JUSTIFIED}} B Justifies the paragraph
{{LEFT_ALIGNED}} L Aligns the paragraph to the left
{{RAW_LINE}} ( This text will not be processed for format and styling, rarely used
{{LINEFEED}} / New line without a /n, same as "shift+enter"
{{LINEFEED_EXTENDED}} /= Linefeed from extended line, rarely used
{{LINEFEED_RAW}} /( Linefeed without format and styling, rarely used
{{COMMENT}} /* Comments the paragraph
{{COMMAND ...}} /: The command shall be included within the braces.

Constraints

Any line that is longer than 132 characters will be split up and inserted as extended lines automatically. The exception to this is COMMAND, which will only accept one 132 characters long line, per command.

Display text without control characters

If you want to display text without the control characters, you can remove them with a Regex expression for example. The pattern (\{\{.*?\}\}) can be used to match all control characters for easy removal. Make sure that you test your patterns for your use case before setting them into production. There are online tools that are helpful with both creating and testing, which should be easy to find with a web search.

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 discrepancy 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 https://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 definition 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
  • 429 Too many requests - A client has exceeded the rate limit for the API. The client should back off and reduce the amount of requests
  • 500 Internal Server Error - Sorry, an unexpected error ocurred 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

  • 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, deprecated 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.

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}

Rename plannerGroupPlantId to planningPlantId

planningPlantId is replacing plannerGroupPlantId This deprecates properties of the response in the following endpoints:

  1. GET /maintenance-records
  2. GET /maintenance-records/modification-proposals/{record-id}

This deprecates HTTP POST request properties for the following endpoints:

  1. /maintenance-records/modification-proposals/{record-id}

Updating FailureImpactId on Failure Report

failureImpactId should only be updated through a new dedicated endpoint in order to properly maintain priorityId on the related Corrective WorkOrder.

This deprecates the updating of failureImpactId on the following endpoint.

  1. /maintenance-records/failure-reports/{record-id}

For updating failureImpactId, see new endpoint: /maintenance-records/failure-reports/{record-id}/failure-impact-change

Remove cmrIndicator from work orders.

cmrIndicator is removed from the response for all work order types. Please see the STRY0261073 for more information.

The intention of the CMR-indicator is to reflect work orders that will hit different KPI's. However, the KPI definitions have changed over the last decade without the CMR-indicator being updated. This has resulted in a current situation where the CMR-indicator on work orders is misleading. Going forward we will use the priority field on work orders to reflect their criticality. The CMR-indicator is therefore no longer needed and should be removed.

Deprecating filter in specific search endpoints

filter is a parameter used in Search endpoints to define which search criteria are necessary given the backend search query. This has been more restrictive than it needs to be to, so in order to support more query parameters for Search endpoints, better results can be achieved by removing the filter parameter. Additionally this will result in smaller and faster responses with only relevant data.

Please see each given endpoint on which parameters will be required in the future and which can be combined.

This deprecates filter in the following endpoints:

  1. GET /work-order-plan/{planning-plant-id}

Contact

The API is operated and maintained by the APIphany team, who can be contacted in Equinor slack channels #maintenance-api and #maintenance-api-support

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

FAQ

A list of frequently asked questions (FAQs) along with their answers.

  • Q: I got the error status 403 - Forbidden, how may I resolve this?

    • A: 403 Forbidden is related to permissions. Users are advised to verify that the appropriate roles are active. Read more about HTTP Response codes here

New endpoints

Endpoints have been introduced in the current version

Modified endpoints

Endpoints which have been modified in the current version

Revisions - Search

Overview

Search revisions for a single plant with related information.

Filter: by-revision-id

Search by revision ids for a single plant

Parameters:

  • revision-id-any-of
  • include-work-order-operations (default: false)
  • include-work-order-operation-text (default: false)
  • include-only-work-order-operations-with-materials (default: false)

Examples

/plants/1310/revisions?filter=by-revision-id&revision-id-any-of=OFP,OFP%202022,&include-work-order-operations=true&include-only-work-order-operations-with-materials=true&include-work-order-operation-text=true&api-version=v1

Update release 1.19.0

Added parameter include-text-item-materials.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.33.0

Added new properties goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup to materials.

Update release 1.35.0

Added new properties requisitionerId and deliveryComplete to materials in operations.

Update release 1.36.0

Added superiorRoutingCounterId to operations.

Update release 1.38.0

Added property text to materials in workOrderOperations.

Authorizations:
bearerAuth
path Parameters
plant-id
required
string
query Parameters
filter
required
string (SearchRevisionsFilter)
Value: "by-revision-id"

Filter to limit revisions

revision-id-any-of
string
Example: revision-id-any-of=OFP,OFP%202022

Comma-separated list of revision-id

include-work-order-operations
boolean
Default: false

Include the work order operations

include-only-work-order-operations-with-materials
boolean
Default: false

Limit the work order operations to only those which have material

include-text-item-materials
boolean
Default: false

Include text item materials

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/revisions?filter=SOME_STRING_VALUE&revision-id-any-of=OFP%2COFP%25202022&include-work-order-operations=SOME_BOOLEAN_VALUE&include-only-work-order-operations-with-materials=SOME_BOOLEAN_VALUE&include-text-item-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-materials=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "workOrderOperations": [
      ],
    • "revisionId": "PS02_21",
    • "revision": "Planlagt stans februar 2021",
    • "revisionStartDateTime": "2019-08-24T14:15:22Z",
    • "revisionEndDateTime": "2019-08-24T14:15:22Z",
    • "revisionStartDate": "2019-08-24T14:15:22Z",
    • "revisionEndDate": "2019-08-24T14:15:22Z",
    • "isCompleted": false
    }
]

Revisions Work Order Operations - Search

Overview

Search revision work order operations on a plant.

Parameters:

  • include-work-order-operation-text (default: false)
  • include-only-work-order-operations-with-materials (default: false)

Examples

/plants/1310/revisions/PS01-23?include-only-work-order-operations-with-materials=true&include-work-order-operation-text=true&page=1&per-page=10&api-version=v1

Update release 1.28.0

Added changedDateTime,changedById, changedBy, changedByEmail.

Update release 1.29.0

Added progressChangedDateTime, progressChangedBy, progressChangedById and progressChangedByEmail to response. These values represent the last update datetime for technical feedback. Altered changedDateTime, changedBy, changedById and changedByEmail to only represent last update to the operation.

Update release 1.30.1

Added fields confirmationDateTime, confirmationBy, confirmationByEmail and confirmationById.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Split parts of location on materials into finalLocation and temporaryLocation in the response.

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.33.0

Added new properties goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup to materials.

Update release 1.35.0

Added new properties requisitionerId and deliveryComplete to materials in operations.

Update release 1.36.0

Added superiorRoutingCounterId to response.

Update release 1.38.0

Added property text in materials.

Authorizations:
bearerAuth
path Parameters
plant-id
required
string
revision-id
required
string
query Parameters
include-only-work-order-operations-with-materials
boolean
Default: false

Limit the work order operations to only those which have material

include-text-item-materials
boolean
Default: false

Include text item materials

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

per-page
integer [ 1 .. 100 ]

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/plants/%7Bplant-id%7D/revisions/%7Brevision-id%7D/work-order-operations?include-only-work-order-operations-with-materials=SOME_BOOLEAN_VALUE&include-text-item-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-materials=SOME_BOOLEAN_VALUE&per-page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "operationId": "1005419798-00000001",
    • "operation": "0020",
    • "workOrderId": "24983466",
    • "title": "Bygge stillas",
    • "superiorRoutingCounterId": "00000009",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "standardTextTemplate": "1100-GS",
    • "isCompleted": false,
    • "plannedWorkHours": "PT3H",
    • "actualWorkHours": "PT2H30M",
    • "actualPercentageComplete": 75,
    • "capacityCount": 1,
    • "plannedDuration": "PT2H45M",
    • "isScheduledExternally": true,
    • "earliestStartDateTime": "2019-08-24T14:15:22Z",
    • "earliestFinishDateTime": "2019-08-24T14:15:22Z",
    • "schedulingStartConstraintId": "MSO",
    • "schedulingStartConstraintDateTime": "2019-08-24T14:15:22Z",
    • "schedulingFinishConstraintId": "MFO",
    • "schedulingFinishConstraintDateTime": "2019-08-24T14:15:22Z",
    • "calculationKey": "CALC_KEY_MANUAL",
    • "activeStatusIds": "REL CNF",
    • "hasMaterial": false,
    • "changedDateTime": "2023-11-28T06:06:14Z",
    • "changedById": "433937",
    • "changedBy": "Dagfinn Parnas",
    • "changedByEmail": "dapa@equinor.com",
    • "progressChangedDateTime": "2023-11-28T06:06:14Z",
    • "progressChangedById": "932131",
    • "progressChangedBy": "David Ramsay",
    • "progressChangedByEmail": "dar@equinor.com",
    • "confirmationDateTime": "2019-08-24T14:15:22Z",
    • "confirmationBy": "Harald Hårfagre",
    • "confirmationById": "932131",
    • "confirmationByEmail": "example@equinor.com",
    • "materials": [
      ]
    }
]

Work order plan - Get

Overview

Get work order activities planned to be performed for a single planning plant. The response is normally based on the planned scheduling of work order operations through the properties earliestStartDateTime and earliestFinishDateTime. It does not use assignment to baseline plan as a source as this does not cover all work.

It is possible to use the defined periods from the baseline plans as basis for the query parameters planPeriodStartDate and planPeriodDuration. Use /plants/{plant-id}?include-baseline-plan=true&api-version=v1 for this purpose.

personResponsibleId will normally not be populated as planning is performed on the work center as a whole.

This endpoint returns only Work Order with status 'PLAN'. The field requiredEndDate is dependent on workOrderType.

Using plan-period-start and plan-period-duration

Provide the plan for a specific planning plant based on a defined plan period. This is the main usage of this endpoint.

Example of usage:

  • /work-order-plan/{planning-plant-id}?plan-period-start=2023-03-02&plan-period-duration=P21D&location-id-any-of=CD00&include-completed-work-order-operations=false&work-order-types-any-of=preventiveWorkOrders,correctiveWorkOrders&api-version=v1
  • /work-order-plan/{planning-plant-id}?plan-period-start=2023-03-02&plan-period-duration=P21D&work-center-id-any-of=C31*&include-completed-work-order-operations=false&api-version=v1

Using person-responsible-*

Get the work order plan for a specific planning plant, but only for work orders assigned to a specific user. Normally, work orders will not be assigned directly to a user, but in some work processes (such as inspection), this occurs.

Example of usage:

  • /work-order-plan/{planning-plant-id}?person-responsible-email=shortname@equinor.com&include-completed-work-order-operations=false&work-order-types-any-of=preventiveWorkOrders,correctiveWorkOrders&api-version=v1

Combining all parameters

It is possible to get all work order plans for a period which are assigned to user by combining all parameters.

Example of usage:

  • /work-order-plan/{planning-plant-id}?person-responsible-email=shortname@equinor.com&plan-period-start=2023-03-02&plan-period-duration=P21D&include-completed-work-order-operations=false&work-order-types-any-of=preventiveWorkOrders,correctiveWorkOrders&api-version=v1

Update release 1.26.0

Added query parameter work-center-id-any-of.

Update release 1.29.0

Added properties cmrIndicator and maintenanceRecordId.

Update release 1.34.0

Added following filter options:

  • main-work-center-id-any-of
  • status-any-of
  • status-not
  • operation-notes-any-of

Added following fields to the response:

  • personResponsible
  • mainWorkCenterId

Update release 1.36.0

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details. Added overheadMaintenanceWorkOrders to work-order-types-any-of query parameter.

Update release 1.38.0

Deprecated the filter parameter. The endpoint will accept the parameter but ignore it. It is now possible to combine almost all query parameters. person-responsible-email and person-responsible-id will still be mutually exclusive. It is required to supply either plan-period-start or person-responsible-* in order to not cause issues in the underlying system.

Authorizations:
bearerAuth
path Parameters
planning-plant-id
required
string
Example: 1901

Planning plant to retrieve work order plan for

query Parameters
filter
required
string (GetWorkOrderPlanFilter)
Deprecated
Enum: "by-plan-period" "by-person-responsible"

Deprecated parameter that is ignored but accepted. Has no effect.

plan-period-start
string <date>

Start of plan period (/plants/{plant-id}?include-baseline-plans=true can be used as a reference). Required for filter=by-plan-period.

plan-period-duration
string
Example: plan-period-duration=P21D

Duration of plan period

person-responsible-email
string
Example: person-responsible-email=shortname@equinor.com

Email address for responsible person. Should not be used in combination with person-responsible-id.

person-responsible-id
string
Example: person-responsible-id=123456

Id for responsible person. Should not be used in combination with person-responsible-email.

include-completed-work-order-operations
boolean
Default: false

Include Work Order Plans with completed work order operations

include-person-responsible
boolean
Default: false

Include person responsible information in response, for example the email or name of the person responsible. May have a slight performance impact.

work-order-types-any-of
Array of strings (GetWorkOrderPlanWorkOrderTypes)
Items Enum: "correctiveWorkOrders" "preventiveWorkOrders" "modificationWorkOrders" "sasChangeWorkOrders" "projectWorkOrders" "subseaWorkOrders" "overheadMaintenanceWorkOrders"

Limit to specific work order types (any-of). Default includes all types

work-center-id-any-of
string
Example: work-center-id-any-of=POMAUT,POMELE,C31*

Comma-separated list of work-center-id

main-work-center-id-any-of
string
Example: main-work-center-id-any-of=POMAUT,POMELE,C31*

Comma-separated list of main-work-center-id

revision-id-any-of
string
Example: revision-id-any-of=OFP,OFP%202022

Comma-separated list of revision-id

location-id-any-of
string
Example: location-id-any-of=CD00,CD01

Comma-separated list of location-id

status-any-of
Array of strings
Items Enum: "STRT" "RDOP" "TECO" "REL" "CRTD"
Example: status-any-of=STRT,RDOP,TECO

Query based on statusIds (not all statuses are supported)

status-not
Array of strings
Items Enum: "STRT" "RDOP" "TECO" "REL" "CRTD"
Example: status-not=STRT,RDOP,TECO

Query based on statusIds (not all statuses are supported)

operation-notes-any-of
string

Query based on planNotes in operations

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/work-order-plan/%7Bplanning-plant-id%7D?filter=SOME_STRING_VALUE&plan-period-start=SOME_STRING_VALUE&plan-period-duration=P21D&person-responsible-email=shortname%40equinor.com&person-responsible-id=123456&include-completed-work-order-operations=SOME_BOOLEAN_VALUE&include-person-responsible=SOME_BOOLEAN_VALUE&work-order-types-any-of=SOME_ARRAY_VALUE&work-center-id-any-of=POMAUT%2CPOMELE%2CC31*&main-work-center-id-any-of=POMAUT%2CPOMELE%2CC31*&revision-id-any-of=OFP%2COFP%25202022&location-id-any-of=CD00%2CCD01&status-any-of=STRT%2CRDOP%2CTECO&status-not=STRT%2CRDOP%2CTECO&operation-notes-any-of=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "workOrderId": "24983466",
    • "workOrderTypeId": "correctiveWorkOrder",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "maintenanceRecordId": "45939208",
    • "productionCritical": "M",
    • "hseCritical": "H",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "mainWorkCenterId": "PPMAUT",
    • "locationId": "CD17OU",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE MLTI NMAT",
    • "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",
    • "sortField": "PRS10239.WP12",
    • "personResponsibleId": "433937",
    • "personResponsible": "Short Name",
    • "personResponsibleEmail": "shortname@equinor.com",
    • "operations": [
      ]
    }
]

Preventive Work order - Lookup

Overview

Lookup single Preventive Work order with related information.

Technical feedback

Technical feedback ensures a common and best practice maintenance based on the type of tag/equipment. It's mostly used by preventive work orders, but can in some cases be used in corrective work orders. As part of work order execution, the technical feedback items will need to be completed.

The endpoint /work-orders/technical-feedback-master-data describes the business rules for when it's necessary to create a maintenance record based on the status(feedbackStatusId) and reason(feedbackReasonId) found for the technical feedback.

The include-technical-feedback query parameter for preventive and corrective work order lookup endpoints will return the technical feedback for each operation of the provided work order.

If a technical feedback has isDetailedFeedback: true, it requires a very specific feedback type currently not supported by the Maintenance API.

When executing a technical feedback item, the end-user will complete the steps described in maintenanceActivityText and end up with a result in the form of a status(feedbackStatusId) and a reason(feedbackReasonId). Compare the result with the business rules defined by /work-orders/technical-feedback-master-data:

  • hasRequiredMaintenanceRecord: true: Create a new maintenance record for technical feedback using the POST /maintenance-records/failure-reports or POST /maintenance-records/activity-reports endpoints with the relatedWorkOrder properties in the request to specify the work order and technical feedback

  • hasRequiredMaintenanceRecord: true As no maintenance record is required, the technical feedback is completed using the endpoint PATCH /work-order-operations/{operation-id}/technical-feedback/{feedback-id}

If you want to include the maintenance records of a technical feedback, one needs to apply both include-technical-feedback=True, and include-maintenance-records=True.

Production Resources/Tool (PRT)

Production resources/tools (PRT) are used for materials, tools and equipment that are needed to carry out the task and are to be returned after use.

In Equinor, this is normally added as part of maintenance program. Maintenance API supports the following PRT resources:

  • Attachments (through query parameter include-attachments=true)
  • Measuring points (through query parameter include-measuring-points=true)
  • URL references (through query parameter include-url-references=true)

For more information see governing document GL1624 Guidelines for the establishment of a preventive maintenance programme in SAP.

Update release 1.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 1.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 1.3.0

Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

Update release 1.4.0

Introduced property calculationKey for operations.

Update release 1.5.0

Added createdDateTime for attachments.

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

Update release 1.7.0

Added equipmentId and equipment to the response of tagsRelated.

Added sourceId to related maintenance records.

Added isActive property for maintenance plan details.

Update release 1.8.0

Introduced property activeStatusIds for operations.

Update release 1.11.0

Added the following properties:

  • personResponsibleId and personResponsibleEmail
  • isProductionCritical and isHSECritical
  • workCenter
  • plannerGroup

Update release 1.12.0

Added new query parameter include-technical-feedback. It returns related technical feedback required to be completed as part of work order execution.

Introduced property detectionMethodGroupId and detectionMethodId for technical feedback.

Update release 1.15.0

Added new query parameter include-measurements

Update release 1.16.0

Added new query parameters include-measuring-points, include-last-measurement and include-url-references. include-attachments extended to also return PRT attachments of an operation. attachments now include properties documentType, documentNumber and documentTitle.

Update release 1.19.0

Added properties systemCondition and isExcludedFromWorkOrderPlan for operations.

Update release 1.21.0

Added property area to tag details.

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.22.0

Added new query parameter include-service-operations. Operations of type Service - PM03 previously available in the operations have been moved to serviceOperations.

Added activeStatusIds to related maintenance records.

Update release 1.24.0

attachments now include the property documentCreatedDate

Removed urlReferences field from response object, and removed include-url-references query parameter. URLReferences are only supported for Notifications.

Added property cmrIndicator in the response.

Update release 1.26.0

Added property isEquipmentRental to services in serviceOperations. Added materials to serviceOperations.

tagDetails object now includes the new field maintenanceConceptId

Update release 1.27.0

Work orders now include the property 'isOpen'

Added tag and title to maintenanceRecords expand.

Update release 1.28.0

Added new query parameter include-safety-measures.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Split parts of location on operations.materials into finalLocation and temporaryLocation in the response.

Added agreement & agreementItem on serviceOperations and grossPrice, netValue & currency on services.

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.33.0

Added new properties goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup to materials.

Update release 1.34.0

Added new properties callNumber, previousCall, and completionDate to maintenancePlan.

Added new property relatedOperations to maintenanceRecords and tagsRelated. Also added query parameter include-related-operations to include the property relatedOperations.

Added properties additionalCostWBSId, additionalCostWBS, costWBS, costWBSId and requiredEndDate to the response.

Update release 1.35.0

Added new property dueDate to the response. Removed the property requiredEndDate.

Added new properties requisitionerId and deliveryComplete to materials in operations.

Added new properties personResponsible, personResponsibleId and personResponsibleEmail to operations.

Added new property requisitionerId to serviceOperations.

Added new query parameter include-estimated-costs. Set to true to include estimatedCosts array in the response.

Update release 1.36.0

Added properties costs and costsCurrency.

Added new property planNotes to operations.

Added new properties location and locationId to tagsRelated and maintenanceRecords.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Added new properties plannedWorkHours, actualWorkHours, capacityCount, plannedDuration, calculationKey, earliestStartDateTime, earliestFinishDateTime and safetyMeasures to serviceOperations.

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Update release 1.38.0

Added new property text to materials in operations and serviceOperations.

Upcoming future release

Added new property hasCommunication

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
query Parameters
include-operations
boolean
Default: true

Include Work order operations

include-service-operations
boolean
Default: true

Include Work order service operations

include-technical-feedback
boolean
Default: false

Include technical feedback required to be completed as part of work order execution.

include-materials
boolean
Default: false

Include materials for Work order operations

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

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 (including PRT attachments)

include-status-details
boolean
Default: false

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

include-tag-details
boolean
Default: false

Include detailed information for the main tag of the Work order

include-related-tags
boolean
Default: false

Include related tags (from object list)

include-measuring-points
boolean
Default: false

Include related measuring points from PRT

include-last-measurement
boolean
Default: false

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

include-measurements
boolean
Default: false

Include related measurements

include-safety-measures
boolean
Default: false

Include safety-measures in work order operations

include-related-operations
boolean
Default: false

Includes the property relatedOperations in the response to expose operations that are related to an object in the objectlist (only relevant for related tags and related maintenance records).

include-estimated-costs
boolean
Default: false

Include estimated costs

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-service-operations=SOME_BOOLEAN_VALUE&include-technical-feedback=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-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&include-measuring-points=SOME_BOOLEAN_VALUE&include-last-measurement=SOME_BOOLEAN_VALUE&include-measurements=SOME_BOOLEAN_VALUE&include-safety-measures=SOME_BOOLEAN_VALUE&include-related-operations=SOME_BOOLEAN_VALUE&include-estimated-costs=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "operations": [
    • {
      }
    ],
  • "serviceOperations": [
    • {
      }
    ],
  • "statuses": [
    • {
      }
    ],
  • "tagsRelated": [
    • {
      }
    ],
  • "maintenanceRecords": [
    • {
      }
    ],
  • "maintenancePlan": {
    • "maintenancePlanId": "1108244",
    • "maintenancePlanItemId": "10149640",
    • "planDate": "2019-08-24",
    • "isActive": true,
    • "callNumber": 33,
    • "previousCall": "12451245",
    • "completionDate": "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",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    },
  • "attachments": [
    • {
      }
    ],
  • "measurements": [
    • {
      }
    ],
  • "estimatedCosts": [
    • {
      }
    ],
  • "additionalCostWBSId": "T.O790C.GA.20007",
  • "additionalCostWBS": "Minor modifications 2020",
  • "costWBSId": "T.O265C.GA.00007",
  • "costWBS": "Conc.: Well A10 GL hook-up FL",
  • "dueDate": "2019-08-24",
  • "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",
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "workOrderId": "24597659",
  • "tagId": "BF",
  • "tagPlantId": "1100",
  • "tag": "CT5023/24 - POT.WATER PH PROBE.",
  • "title": "Modifikasjon av brannmur",
  • "workCenterId": "PPMAUT",
  • "workCenterPlantId": "1100",
  • "locationId": "CD17OU",
  • "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": "2023-11-28T06:06:14Z",
  • "sortField": "PRS10239.WP12",
  • "personResponsibleId": "433937",
  • "personResponsibleEmail": "shortname@equinor.com",
  • "costs": 10000,
  • "costsCurrency": "NOK",
  • "hasCommunication": true,
  • "isOpen": true
}

Corrective Work order - Lookup

Overview

Lookup single Corrective Work order with related information

Technical feedback

Technical feedback ensures a common and best practice maintenance based on the type of tag/equipment. It's mostly used by preventive work orders, but can in some cases be used in corrective work orders. As part of work order execution, the technical feedback will need to be completed.

The endpoint /work-orders/technical-feedback-master-data describes the business rules for when it's necessary to create a maintenance record based on the status (feedbackStatusId) and reason (feedbackReasonId) found for the technical feedback.

The include-technical-feedback query parameter for preventive and corrective work order lookup endpoints will return the technical feedback for each operation of the provided work order.

If a technical feedback has isDetailedFeedback: true, it requires a very specific feedback type currently not supported by the Maintenance API.

When executing a technical feedback item, the end-user will complete the steps described in maintenanceActivityText and end up with a result in the form of a status (feedbackStatusId) and a reason (feedbackReasonId). Compare the result with the business rules defined by /work-orders/technical-feedback-master-data and base the next step based on the value of hasRequiredMaintenanceRecord:

  • hasRequiredMaintenanceRecord: true: Create a new maintenance record for technical feedback using the POST /maintenance-records/failure-reports or POST /maintenance-records/activity-reports endpoints with the relatedWorkOrder properties in the request to specify the work order and technical feedback

  • hasRequiredMaintenanceRecord: false As no maintenance record is required, the technical feedback is completed using the endpoint PATCH /work-order-operations/{operation-id}/technical-feedback/{feedback-id}

If you want to include the maintenance records of a technical feedback, one needs to apply both include-technical-feedback=True, and include-maintenance-records=True.

Production Resources/Tool (PRT)

Production resources/tools (PRT) are used for materials, tools and equipment that are needed to carry out the task and are to be returned after use.

In Equinor, this is normally added as part of maintenance program. Maintenance API supports the following PRT resources:

  • Attachments (through query parameter include-attachments=true)
  • Measuring points (through query parameter include-measuring-points=true)
  • URL references (through query parameter include-url-references=true)

For more information see governing document GL1624 Guidelines for the establishment of a preventive maintenance programme in SAP.

Update release 1.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 1.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 1.3.0

Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

Update release 1.4.0

Introduced property calculationKey for operations.

Update release 1.5.0

Added createdDateTime for attachments.

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

Update release 1.7.0

Added equipmentId and equipment to the response of tagsRelated.

Adding sourceId to related maintenance records.

Update release 1.8.0

Introduced property activeStatusIds for operations.

Update release 1.12.0

Added new query parameter include-technical-feedback. It returns related technical feedback required to be completed as part of work order execution. Technical feedback is mostly used for preventive work orders, but can also be used for corrective work orders.

Introduced property detectionMethodGroupId and detectionMethodId for technical feedback.

Update release 1.15.0

Added new query parameter include-measurements.

Update release 1.16.0

Added new query parameters include-measuring-points, include-last-measurement and include-url-references. include-attachments extended to also return PRT attachments of an operation. attachments now include properties documentType, documentNumber and documentTitle.

Update release 1.19.0

Added properties systemCondition and isExcludedFromWorkOrderPlan for operations.

Update release 1.21.0

Added properties costs and costsCurrency. Added property area to tag details.

Added ability to read text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.22.0

Added new query parameter include-service-operations. Operations of type Service - PM03 previously available in the operations have been moved to serviceOperations.

Added activeStatusIds to related maintenance records.

Update release 1.24.0

attachments now include the property documentCreatedDate

Removed 'urlReferences' field from response object, and removed 'include-url-references' query parameter. URLReferences are only supported for Notifications.

Added property cmrIndicator in the response.

Update release 1.26.0

Added property isEquipmentRental to services in serviceOperations. Added materials to serviceOperations.

'tagDetails' object now includes the new field 'maintenanceConceptId'

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.28.0

Added new query parameter include-safety-measure

Added new query parameter include-estimated-costs

Added tag and title to maintenanceRecords expand.

Update release 1.29.0

Added new properties for additionalCostWBSId and costWBSId.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Split parts of location on operations.materials into finalLocation and temporaryLocation in the response.

Added agreement & agreementItem on serviceOperations and grossPrice, netValue & currency on services

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.33.0

Added new properties goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup to materials

Update release 1.34.0

Added new property relatedOperations to maintenanceRecords and tagsRelated. Also added query parameter include-related-operations to include the property relatedOperations.

Added new properties isHSECritical and isProductionCritical to the response.

Update release 1.35.0

Added new properties requisitionerId and deliveryComplete to materials in operations.

Added new properties personResponsible, personResponsibleId and personResponsibleEmail to operations.

Added new property requisitionerId to serviceOperations.

Update release 1.36.0

Added new property planNotes to operations.

Added new properties location and locationId to tagsRelated and maintenanceRecords.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Added new properties plannedWorkHours, actualWorkHours, capacityCount, plannedDuration, calculationKey, earliestStartDateTime, earliestFinishDateTime and safetyMeasures to serviceOperations.

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Update release 1.38.0

Added new property text to materials in operations and serviceOperations.

Upcoming future release

Added new property hasCommunication

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
query Parameters
include-operations
boolean
Default: true

Include Work order operations

include-service-operations
boolean
Default: true

Include Work order service operations

include-technical-feedback
boolean
Default: false

Include technical feedback required to be completed as part of work order execution.

include-materials
boolean
Default: true

Include materials for Work order operations

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

include-maintenance-records
boolean
Default: false

Include related maintenance records (from object list)

include-attachments
boolean
Default: false

Include Work order attachments (including PRT attachments)

include-status-details
boolean
Default: false

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

include-tag-details
boolean
Default: false

Include detailed information for the main tag of the Work order

include-related-tags
boolean
Default: false

Include related tags (from object list)

include-measuring-points
boolean
Default: false

Include related measuring points from PRT

include-last-measurement
boolean
Default: false

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

include-measurements
boolean
Default: false

Include related measurements

include-safety-measures
boolean
Default: false

Include safety-measures in work order operations

include-estimated-costs
boolean
Default: false

Include estimated costs

include-related-operations
boolean
Default: false

Includes the property relatedOperations in the response to expose operations that are related to an object in the objectlist (only relevant for related tags and related maintenance records).

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-service-operations=SOME_BOOLEAN_VALUE&include-technical-feedback=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-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&include-measuring-points=SOME_BOOLEAN_VALUE&include-last-measurement=SOME_BOOLEAN_VALUE&include-measurements=SOME_BOOLEAN_VALUE&include-safety-measures=SOME_BOOLEAN_VALUE&include-estimated-costs=SOME_BOOLEAN_VALUE&include-related-operations=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "operations": [
    • {
      }
    ],
  • "serviceOperations": [
    • {
      }
    ],
  • "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",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    },
  • "attachments": [
    • {
      }
    ],
  • "measurements": [
    • {
      }
    ],
  • "estimatedCosts": [
    • {
      }
    ],
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "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": "PPMAUT",
  • "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": "2023-11-28T06:06:14Z",
  • "sortField": "PRS10239.WP12",
  • "priorityId": "L",
  • "costs": 10000,
  • "costsCurrency": "NOK",
  • "isOpen": true,
  • "costWBSId": "T.O265C.GA.00007",
  • "costWBS": "Conc.: Well A10 GL hook-up FL",
  • "additionalCostWBSId": "T.O790C.GA.20007",
  • "additionalCostWBS": "Minor modifications 2020",
  • "hasCommunication": true
}

Project Work order - Lookup

Overview

Lookup single Project Work order with related information

Update release 1.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 1.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 1.3.0

Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

Update release 1.4.0

Introduced property calculationKey for operations.

Update release 1.5.0

Added createdDateTime for attachments.

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

Update release 1.7.0

Added equipmentId and equipment to the response of tagsRelated.

Adding sourceId to related maintenance records.

Update release 1.8.0

Introduced property activeStatusIds for operations.

Update release 1.19.0

Added properties systemCondition and isExcludedFromWorkOrderPlan for operations.

Update release 1.21.0

Added property area to tag details.

Added ability to read text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.22.0

Added new query parameter include-service-operations. Operations of type Service - PM03 previously available in the operations have been moved to serviceOperations.

Update release 1.24.0

Added property cmrIndicator in the response.

Update release 1.26.0

Added property isEquipmentRental to services in serviceOperations. Added materials to serviceOperations.

tagDetails object now includes the new field maintenanceConceptId

Update release 1.27.0

Work orders now include the property isOpen

Added tag and title to maintenanceRecords expand.

Update release 1.28.0

Added new query parameter include-safety-measures.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Split parts of location on operations.materials into finalLocation and temporaryLocation in the response.

Added agreement & agreementItem on serviceOperations and grossPrice, netValue & currency on services.

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.33.0

Added new properties goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup to materials.

Update release 1.34.0

Added new property relatedOperations to maintenanceRecords and tagsRelated. Also added query parameter include-related-operations to include the property relatedOperations.

Added properties additionalCostWBSId, additionalCostWBS, requiredEndDate, isHSECritical and isProductionCritical to the response.

Update release 1.35.0

Added new properties requisitionerId and deliveryComplete to materials in operations.

Added new properties personResponsible, personResponsibleId and personResponsibleEmail to operations.

Added new property requisitionerId to serviceOperations.

Update release 1.36.0

Added new property planNotes to operations.

Added new properties location and locationId to tagsRelated and maintenanceRecords.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Added new properties plannedWorkHours, actualWorkHours, capacityCount, plannedDuration, calculationKey, earliestStartDateTime, earliestFinishDateTime and safetyMeasures to serviceOperations.

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Update release 1.38.0

Added new property text to materials in operations and serviceOperations.

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
query Parameters
include-operations
boolean
Default: true

Include Work order operations

include-service-operations
boolean
Default: true

Include Work order service operations

include-materials
boolean
Default: true

Include materials for Work order operations

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

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 information for the main tag of the Work order

include-related-tags
boolean
Default: false

Include related tags (from object list)

include-safety-measures
boolean
Default: false

Include safety-measures in work order operations

include-related-operations
boolean
Default: false

Includes the property relatedOperations in the response to expose operations that are related to an object in the objectlist (only relevant for related tags and related maintenance records).

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-service-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-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&include-safety-measures=SOME_BOOLEAN_VALUE&include-related-operations=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "operations": [
    • {
      }
    ],
  • "serviceOperations": [
    • {
      }
    ],
  • "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",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    },
  • "attachments": [
    • {
      }
    ],
  • "requiredEndDate": "2019-08-24",
  • "additionalCostWBSId": "T.O790C.GA.20007",
  • "additionalCostWBS": "Minor modifications 2020",
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "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",
  • "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": "2023-11-28T06:06:14Z",
  • "costWBSId": "M.O037C.20.A.0002.A2",
  • "projectId": "M.O037C.20.A.0002",
  • "costNetworkId": "9045173",
  • "costNetworkOperationId": "0010",
  • "sortField": "PRS10239.WP12",
  • "isOpen": true
}

Modification Work order - Lookup

Overview

Lookup single Modification Work order with related information.

Update release 1.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 1.3.0

Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

Update release 1.4.0

Introduced property calculationKey for operations.

Update release 1.5.0

Added createdDateTime for attachments.

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

Update release 1.7.0

Added equipmentId and equipment to the response of tagsRelated.

Adding sourceId to related maintenance records.

Update release 1.11.0

Added properties additionalCostWBSId and additionalCostWBS.

Update release 1.19.0

Added properties systemCondition and isExcludedFromWorkOrderPlan for operations.

Update release 1.21.0

Added property area to tag details.

Added ability to read text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.22.0

Added new query parameter include-service-operations. Operations of type Service - PM03 previously available in the operations have been moved to serviceOperations.

Update release 1.24.0

Added property cmrIndicator in the response.

Update release 1.26.0

Added property isEquipmentRental to services in serviceOperations. Added materials to serviceOperations.

tagDetails object now includes the new field maintenanceConceptId

Update release 1.27.0

Work orders now include the property isOpen

Added tag and title to maintenanceRecords expand.

Update release 1.28.0

Added new query parameter include-safety-measures.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Split parts of location on operations.materials into finalLocation and temporaryLocation in the response.

Added agreement & agreementItem on serviceOperations and grossPrice, netValue & currency on services.

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.34.0

Added new property relatedOperations to maintenanceRecords and tagsRelated. Also added query parameter include-related-operations to include the property relatedOperations.

Added property requiredEndDate, isHSECritical and isProductionCritical to the response.

Update release 1.35.0

Added new properties requisitionerId and deliveryComplete to materials in operations.

Added new properties personResponsible, personResponsibleId and personResponsibleEmail to operations.

Added new property requisitionerId to serviceOperations.

Update release 1.36.0

Added new property planNotes to operations.

Added new properties location and locationId to tagsRelated and maintenanceRecords.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Added new properties plannedWorkHours, actualWorkHours, capacityCount, plannedDuration, calculationKey, earliestStartDateTime, earliestFinishDateTime and safetyMeasures to serviceOperations.

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Update release 1.38.0

Added new property text to materials in operations and serviceOperations.

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
query Parameters
include-operations
boolean
Default: true

Include Work order operations

include-service-operations
boolean
Default: true

Include Work order service operations

include-materials
boolean
Default: true

Include materials for Work order operations

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

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 information for the main tag of the Work order

include-related-tags
boolean
Default: false

Include related tags (from object list)

include-safety-measures
boolean
Default: false

Include safety-measures in work order operations

include-related-operations
boolean
Default: false

Includes the property relatedOperations in the response to expose operations that are related to an object in the objectlist (only relevant for related tags and related maintenance records).

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-service-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-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&include-safety-measures=SOME_BOOLEAN_VALUE&include-related-operations=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "operations": [
    • {
      }
    ],
  • "serviceOperations": [
    • {
      }
    ],
  • "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",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    },
  • "attachments": [
    • {
      }
    ],
  • "requiredEndDate": "2019-08-24",
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "text": "Beskrivelse av prosjekt modifikasjon\n",
  • "workOrderTypeId": "modificationWorkOrder",
  • "costWBS": "Conc.: Well A10 GL hook-up FL",
  • "additionalCostWBS": "Minor modifications 2020",
  • "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": "2023-11-28T06:06:14Z",
  • "costWBSId": "M.O037C.20.A.0002.A2",
  • "additionalCostWBSId": "M.T17DA.20.M.0001",
  • "projectId": "M.O037C.20.A.0002",
  • "sortField": "PRS10239.WP12",
  • "isOpen": true
}

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 1.4.0

Introduced property calculationKey for operations.

Update release 1.5.0

Added createdDateTime for attachments.

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

Update release 1.7.0

Added tagsRelated to the response.

Adding sourceId to related maintenance records.

Update release 1.8.0

Introduced property activeStatusIds for operations.

Update release 1.19.0

Added properties systemCondition and isExcludedFromWorkOrderPlan for operations.

Update release 1.21.0

Added ability to read text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.22.0

Added new query parameter include-service-operations. Operations of type Service - PM03 previously available in the operations have been moved to serviceOperations.

Update release 1.24.0

Added property cmrIndicator in the response.

Update release 1.26.0

Added property isEquipmentRental to services in serviceOperations. Added materials to serviceOperations.

Update release 1.27.0

Work orders now include the property isOpen

Update release 1.28.0

Added new query parameter include-safety-measures.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Split parts of location on operations.materials into finalLocation and temporaryLocation in the response.

Added agreement & agreementItem on serviceOperations and grossPrice, netValue & currency on services.

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.34.0

Added properties additionalCostWBSId, additionalCostWBS, costWBS, isHSECritical and isProductionCritical to the response.

Update release 1.35.0

Added new properties requisitionerId and deliveryComplete to materials in operations.

Added new properties personResponsible, personResponsibleId and personResponsibleEmail to operations.

Added new property requisitionerId to serviceOperations.

Update release 1.36.0

Added new property planNotes to operations.

Added new properties location and locationId to tagsRelated and maintenanceRecords.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Added new properties plannedWorkHours, actualWorkHours, capacityCount, plannedDuration, calculationKey, earliestStartDateTime, earliestFinishDateTime and safetyMeasures to serviceOperations.

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Update release 1.38.0

Added new property text to materials in operations and serviceOperations.

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
query Parameters
include-operations
boolean
Default: true

Include Work order operations

include-service-operations
boolean
Default: true

Include Work order service operations

include-materials
boolean
Default: true

Include materials for Work order operations

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

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, for example the email or name of the person responsible. May have a slight performance impact.

include-status-details
boolean
Default: false

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

include-related-tags
boolean
Default: false

Include related tags (from object list)

include-safety-measures
boolean
Default: false

Include safety-measures in work order operations

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-service-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-materials=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-person-responsible=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE&include-safety-measures=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "personResponsibleId": "433937",
  • "personResponsibleEmail": "shortname@equinor.com",
  • "operations": [
    • {
      }
    ],
  • "serviceOperations": [
    • {
      }
    ],
  • "statuses": [
    • {
      }
    ],
  • "attachments": [
    • {
      }
    ],
  • "tagsRelated": [
    • {
      }
    ],
  • "additionalCostWBSId": "T.O790C.GA.20007",
  • "additionalCostWBS": "Minor modifications 2020",
  • "costWBS": "Conc.: Well A10 GL hook-up FL",
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "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": "PPMAUT",
  • "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": "2023-11-28T06:06:14Z",
  • "sortField": "PRS10239.WP12",
  • "priorityId": "L",
  • "isOpen": true
}

Overhead Maintenance Work order - Lookup Deprecated

Deprecated

This endpoint is marked as deprecated due to currently being unavailable. This endpoint is only a draft. Calling the endpoint until available will result in a 404- Not Found. Deprecation will be removed when the endpoint is available.

Overview

Lookup single Overhead Maintenance Work order 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 1.38.0

Added new property text to materials in operations and serviceOperations.

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
query Parameters
include-operations
boolean
Default: true

Include Work order operations

include-service-operations
boolean
Default: true

Include Work order service operations

include-materials
boolean
Default: true

Include materials for Work order operations

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

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, for example the email or name of the person responsible. May have a slight performance impact.

include-status-details
boolean
Default: false

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

include-related-tags
boolean
Default: false

Include related tags (from object list)

include-safety-measures
boolean
Default: false

Include safety-measures in work order operations

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/overhead-maintenance-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-service-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-materials=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-person-responsible=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE&include-safety-measures=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "operations": [
    • {
      }
    ],
  • "serviceOperations": [
    • {
      }
    ],
  • "statuses": [
    • {
      }
    ],
  • "attachments": [
    • {
      }
    ],
  • "tagsRelated": [
    • {
      }
    ],
  • "additionalCostWBSId": "T.O790C.GA.20007",
  • "additionalCostWBS": "Minor modifications 2020",
  • "costWBS": "Conc.: Well A10 GL hook-up FL",
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "personResponsibleId": "433937",
  • "personResponsibleEmail": "shortname@equinor.com",
  • "text": "BESTILLING FYLLES UT AV INNMELDER:\nBeskriv bestillingen 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": "overheadMaintenanceWorkOrder",
  • "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",
  • "workCenterId": "PPMAUT",
  • "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": "2023-11-28T06:06:14Z",
  • "sortField": "PRS10239.WP12",
  • "priorityId": "L",
  • "isOpen": true
}

SAS Change Work order - Lookup

Overview

Lookup single SAS Change Work order with related information

Update release 1.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 1.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 1.3.0

Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

Update release 1.4.0

Introduced property calculationKey for operations.

Update release 1.5.0

Added createdDateTime for attachments.

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

Update release 1.7.0

Added equipmentId and equipment to the response of tagsRelated.

Adding sourceId to related maintenance records.

Update release 1.8.0

Introduced property activeStatusIds for operations.

Update release 1.19.0

Added properties systemCondition and isExcludedFromWorkOrderPlan for operations.

Update release 1.21.0

Added property area to tag details.

Added ability to read text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.22.0

Added new query parameter include-service-operations. Operations of type Service - PM03 previously available in the operations have been moved to serviceOperations.

Update release 1.24.0

Added property cmrIndicator in the response.

Update release 1.26.0

Added property isEquipmentRental to services in serviceOperations. Added materials to serviceOperations.

tagDetails object now includes the new field maintenanceConceptId

Update release 1.27.0

Work orders now include the property isOpen

Added tag and title to maintenanceRecords expand.

Update release 1.28.0

Added new query parameter include-safety-measures.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Split parts of location on operations.materials into finalLocation and temporaryLocation in the response.

Added agreement & agreementItem on serviceOperations and grossPrice, netValue & currency on services.

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.34.0

Added new property relatedOperations to maintenanceRecords and tagsRelated. Also added query parameter include-related-operations to include the property relatedOperations.

Added properties additionalCostWBSId, additionalCostWBS, requiredEndDate, isHSECritical and isProductionCritical to the response.

Update release 1.35.0

Added new properties requisitionerId and deliveryComplete to materials in operations.

Added new properties personResponsible, personResponsibleId and personResponsibleEmail to operations.

Added new property requisitionerId to serviceOperations.

Update release 1.36.0

Added new property planNotes to operations.

Added new properties location and locationId to tagsRelated and maintenanceRecords.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Added new properties plannedWorkHours, actualWorkHours, capacityCount, plannedDuration, calculationKey, earliestStartDateTime, earliestFinishDateTime and safetyMeasures to serviceOperations.

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Update release 1.38.0

Added new property text to materials in operations and serviceOperations.

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
query Parameters
include-operations
boolean
Default: true

Include Work order operations

include-service-operations
boolean
Default: true

Include Work order service operations

include-materials
boolean
Default: true

Include materials for Work order operations

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

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 information for the main tag of the Work order

include-related-tags
boolean
Default: false

Include related tags (from object list)

include-safety-measures
boolean
Default: false

Include safety-measures in work order operations

include-related-operations
boolean
Default: false

Includes the property relatedOperations in the response to expose operations that are related to an object in the objectlist (only relevant for related tags and related maintenance records).

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-service-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-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&include-safety-measures=SOME_BOOLEAN_VALUE&include-related-operations=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "operations": [
    • {
      }
    ],
  • "serviceOperations": [
    • {
      }
    ],
  • "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",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    },
  • "attachments": [
    • {
      }
    ],
  • "requiredEndDate": "2019-08-24",
  • "additionalCostWBSId": "T.O790C.GA.20007",
  • "additionalCostWBS": "Minor modifications 2020",
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "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",
  • "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": "2023-11-28T06:06:14Z",
  • "costWBSId": "M.O037C.20.A.0002.A2",
  • "projectId": "M.O037C.20.A.0002",
  • "costNetworkId": "9045173",
  • "costNetworkOperationId": "0010",
  • "sortField": "PRS10239.WP12",
  • "isOpen": true
}

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.

Pagination is supported for this endpoint by setting values for page and per-page. If these parameteres are omitted, the result will be returned without pagination.

Response

The response schema has been optimized for speed, enabling the retrieval of work orders only from the past three years.

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&keywords-all-of=heli,male - Return work orders where the title 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 1.5.0

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

Update release 1.12.0

Added query parameter include-maintenance-record.

Update release 1.16.0

Added property workCenterId to maintenanceRecords.failureReports

Update release 1.29.0

Added properties revision and changedDatetime.

Allow searching by changedOnDay when is-open is set. Search by using the new query parameters changed-after-date and changed-before-date.

Update release 1.31.0

Added list of supported statuses for status-all-of, status-any-of and status-not query parameters. Status REL is now supported.

Added property hasStatusREL to the response.

Update release 1.35.0

Added support for optional pagination.

Update release 1.37.0

Added query parameter work-order-ids-any-of Deprecated query parameter max-results as the same functionality can be achieved with `per-page``.

Update release 1.37.0

Added query parameter work-order-ids-any-of & add support for SWNG in status-all-of, status-any-of and status-not query parameters.

Deprecated query parameter max-results as the same functionality can be achieved with per-page.

Added properties tag, requiredEndDate, hseCritical & productionCritical.

Added query parameter include-status-details and the object statuses

Update release 1.38.0

Added overheadMaintenanceWorkOrders to work-order-types query parameter.

Authorizations:
bearerAuth
query Parameters
planning-plants
required
Array of strings (QueryWorkOrdersOptimizedPlanningPlantAnyOf)
Example: planning-plants=1100

Query based on planningPlantIds (any-of)

keywords-all-of
Array of strings (QueryWorkOrdersOptimizedKeywordAllOf)
Example: keywords-all-of=stillas

Query based on keywords in title (case insensitive)

keywords-any-of
Array of strings (QueryWorkOrdersOptimizedKeywordAnyOf)
Example: keywords-any-of=sand

Query based on keywords in title (case insensitive)

keywords-not
Array of strings (QueryWorkOrdersOptimizedKeywordNot)
Example: keywords-not=12M

Query based on keywords in title (case insensitive)

tags-all-of
Array of strings (QueryWorkOrdersOptimizedTagAllOf)
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 (QueryWorkOrdersOptimizedTagAnyOf)
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 (QueryWorkOrdersOptimizedTagNot)
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 (QueryWorkOrdersOptimizedWorkCenterAnyOf)
Example: work-centers-any-of=PPMMEC

Query based on workCenterIds

work-centers-not
Array of strings (QueryWorkOrdersOptimizedWorkCenterNot)
Example: work-centers-not=PPMAUT

Query based on workCenterIds

systems-any-of
Array of strings (QueryWorkOrdersOptimizedSystemAnyOf)
Example: systems-any-of=73

Query based on systemIds

systems-not
Array of strings (QueryWorkOrdersOptimizedSystemNot)
Example: systems-not=99

Query based on systemIds

locations-any-of
Array of strings (QueryWorkOrdersOptimizedLocationAnyOf)
Example: locations-any-of=MG29

Query based on locationIds

locations-not
Array of strings (QueryWorkOrdersOptimizedLocationNot)
Example: locations-not=W14

Query based on locationIds

sort-field-any-of
Array of strings (QueryWorkOrdersOptimizedSortFieldAnyOf)
Example: sort-field-any-of=RS1_11_S

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

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

Query based on sortField (used for grouping work orders)

revision-code-any-of
Array of strings (QueryWorkOrdersOptimizedRevisionCodeAnyOf)
Example: revision-code-any-of=FACILITY

Query based on revisionCode

revision-code-not
Array of strings (QueryWorkOrdersOptimizedRevisionCodeNot)
Example: revision-code-not=WELL

Query based on sortField (often used for revision codes)

status-all-of
Array of strings
Items Enum: "PREP" "PRCO" "RDEX" "STRT" "CANC" "RDOP" "CRTD" "TECO" "REL" "SWNG"
Example: status-all-of=PREP,CANC,TECO

Query based on statusIds (not all statuses are supported)

status-any-of
Array of strings
Items Enum: "PREP" "PRCO" "RDEX" "STRT" "CANC" "RDOP" "CRTD" "TECO" "REL" "SWNG"
Example: status-any-of=PREP,CANC,TECO

Query based on statusIds (not all statuses are supported)

status-not
Array of strings
Items Enum: "PREP" "PRCO" "RDEX" "STRT" "CANC" "RDOP" "CRTD" "TECO" "REL" "SWNG"
Example: status-not=PREP,CANC,TECO

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

changed-after-date
string <date>

Earliest changedOnDay date to include. Query parameter is-open must be set to true or false to use this parameter.

changed-before-date
string <date>

Latest changedOnDay date to include. Query parameter is-open must be set to true or false to use this parameter.

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

Limit to specific work order types (one-of)

work-order-ids-any-of
string
Example: work-order-ids-any-of=13624169,12345678

Comma-separated list of work-order-id.

sort-by
Array of strings (QueryWorkOrdersOptimizedSortBy)
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)

include-maintenance-record
boolean
Default: false

Include the main maintenance record linked to the work order (if any)

include-status-details
boolean
Default: false

Include status details for the work orders

max-results
number
Deprecated
Example: max-results=100

Maximum number of results to include. Default is 1000.

per-page
integer
Example: per-page=100

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/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=PREP%2CCANC%2CTECO&status-any-of=PREP%2CCANC%2CTECO&status-not=PREP%2CCANC%2CTECO&is-open=true&created-after-date=SOME_STRING_VALUE&created-before-date=SOME_STRING_VALUE&changed-after-date=SOME_STRING_VALUE&changed-before-date=SOME_STRING_VALUE&work-order-types=SOME_ARRAY_VALUE&work-order-ids-any-of=13624169%2C12345678&sort-by=SOME_ARRAY_VALUE&include-text=SOME_BOOLEAN_VALUE&include-maintenance-record=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&max-results=100&per-page=100&page=SOME_INTEGER_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "workOrderId": "24597659",
    • "workOrderTypeId": "correctiveWorkOrder",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "systemId": "11",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "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": "2023-11-28T06:06:14Z",
    • "sortField": "PRS10239.WP12",
    • "revisionCodeId": "PS02_21",
    • "requiredEndDate": "2023-11-28",
    • "hseCritical": "M",
    • "productionCritical": "H",
    • "isOpen": true,
    • "hasStatusPREP": true,
    • "hasStatusPRCO": true,
    • "hasStatusRDEX": true,
    • "hasStatusSTRT": true,
    • "hasStatusRDOP": true,
    • "hasStatusCANC": true,
    • "hasStatusTECO": true,
    • "hasStatusREL": true,
    • "hasStatusSWNG": true,
    • "maintenanceRecord": {
      },
    • "statuses": [
      ],
    • "_links": {
      }
    }
]

Report for EqHub and SEMI usage - Get

Overview

Get the list of EqHub and SEMI usage. T-code in backend system ZOMPM_SEMI_USAGE.

Update release 1.38.0

Added filter changed-since-datetime and changed-before-datetime.

Authorizations:
bearerAuth
query Parameters
eqhub-id-any-of
string
Example: eqhub-id-any-of=100000000,100000001

Comma-separated List of eqhub id's

SEMI-id-any-of
string
Example: SEMI-id-any-of=100000000,100000001

Comma-separated List of SEMI id's

filter
string
Enum: "eqhub" "SEMI"

Filter between eqhub or SEMI

include-status
boolean
Default: false

Include status in response

changed-since-datetime
string <date-time>

Earliest datetime to return EqHub and SEMI usage for.

changed-before-datetime
string <date-time>

Latest datetime to return EqHub and SEMI usage for.

per-page
integer [ 1 .. 100 ]
Default: 100

Results to return per page

page
integer
Default: 1

Page to fetch

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/reports/eqhub-and-semi-usage?eqhub-id-any-of=100000000%2C100000001&SEMI-id-any-of=100000000%2C100000001&filter=SOME_STRING_VALUE&include-status=SOME_BOOLEAN_VALUE&changed-since-datetime=SOME_STRING_VALUE&changed-before-datetime=SOME_STRING_VALUE&per-page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "semiId": "123456",
    • "documentType": "A01",
    • "documentNumber": "123456",
    • "objectNumber": "123456",
    • "category": "EQHUB",
    • "status": "APPROVED",
    • "documentTitle": "EQHUB ID 123456",
    • "documentCreatedDate": "2024-02-23",
    • "objectType": "EQUI",
    • "objectTypeText": "Equipment",
    • "objectDescription": "Equipment description",
    • "objectBom": true,
    • "createdOnDateTime": "2024-02-23T12:00:00",
    • "createdById": "123456",
    • "changedOnDateTime": "2024-02-23T12:00:00",
    • "changedById": "123456",
    • "manufacturer": "ABB",
    • "model": "QWM000991134",
    • "manufacturerPartNumber": "QWM000991134++12309",
    • "serialNumber": "12312730456",
    • "constructionType": "123451273609128736",
    • "constructionTypeText": "Construction type",
    • "equipmentFunctionalLocationId": "1100-TESTAB",
    • "equipmentFunctionalLocationABCid": "6",
    • "equipmentFunctionalLocationPlantId": "1100",
    • "equipmentFunctionalLocationPlant": "TEST",
    • "equipmentStatuses": {
      },
    • "functionalLocationStatuses": {
      }
    }
]

Upcoming new endpoints

Endpoints that are planned to be be introduced in a future iteration (likely to change)

Work order operations - Search Deprecated

Deprecated

This endpoint is marked as deprecated due to currently being unavailable. This endpoint is only a draft. Calling the endpoint until available will result in a 404- Not Found. Deprecation will be removed when the endpoint is available.

Overview

Search for work order operations from any work order type.

Query parameter filters

The following query parameters are supported for filtering the work order operations. All the query parameters are optional, but at least one must be provided to get a response.

Parameters:

  • work-center-id-any-of
  • plant-id
  • changed-since-datetime
  • changed-before-datetime
  • operation-id-any-of
  • work-order-ids-any-of
Authorizations:
bearerAuth
query Parameters
plant-id
string = 4 characters
Example: plant-id=1200

Plant identifier

changed-since-datetime
string <date-time>

Earliest changedOnDate to return work order operations for

changed-before-datetime
string <date-time>

Limit the response to only work order operations changed after changed-since-datetime but before this datetime

work-center-id-any-of
string
Example: work-center-id-any-of=POMAUT,POMELE,C31*

Comma-separated list of work-center-id. Wildcard endings are supported

work-order-ids-any-of
string
Example: work-order-ids-any-of=13624169,12345678

Comma-separated list of work-order-id.

operation-id-any-of
string
Example: operation-id-any-of=1005419798-00000001

Comma-separated list of operation-id.

include-materials
boolean
Default: false

Include materials for Work order operations

include-attachments
boolean
Default: false

Include attachments for Work order operations

include-safety-measures
boolean
Default: false

Include safety measures for Work order operations

per-page
integer [ 1 .. 100 ]
Default: 100

Results to return per page

page
integer
Default: 1

Page to fetch

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/work-order-operations?plant-id=SOME_STRING_VALUE&changed-since-datetime=SOME_STRING_VALUE&changed-before-datetime=SOME_STRING_VALUE&work-center-id-any-of=POMAUT%2CPOMELE%2CC31*&work-order-ids-any-of=13624169%2C12345678&operation-id-any-of=1005419798-00000001&include-materials=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-safety-measures=SOME_BOOLEAN_VALUE&per-page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "isServiceOperation": false,
    • "activeStatusIds": "REL CNF",
    • "materials": [
      ],
    • "attachments": [
      ],
    • "safetyMeasures": [
      ],
    • "personResponsibleId": "433937",
    • "personResponsible": "John Doe",
    • "personResponsibleEmail": "shortname@equinor.com",
    • "planNotes": "LAG1",
    • "operationId": "1005419798-00000001",
    • "operation": "0020",
    • "title": "Bygge stillas",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
    • "standardTextTemplate": "1100-GS",
    • "isCompleted": false,
    • "isExcludedFromWorkOrderPlan": false,
    • "systemCondition": "3",
    • "plannedWorkHours": "PT3H",
    • "actualWorkHours": "PT2H30M",
    • "actualPercentageComplete": 75,
    • "capacityCount": 1,
    • "plannedDuration": "PT2H45M",
    • "isScheduledExternally": true,
    • "earliestStartDateTime": "2019-08-24T14:15:22Z",
    • "earliestFinishDateTime": "2019-08-24T14:15:22Z",
    • "schedulingStartConstraintId": "MSO",
    • "schedulingStartConstraintDateTime": "2019-08-24T14:15:22Z",
    • "schedulingFinishConstraintId": "MFO",
    • "schedulingFinishConstraintDateTime": "2019-08-24T14:15:22Z",
    • "calculationKey": "CALC_KEY_MANUAL"
    }
]

Certification report - Create PSV Certification Report Deprecated

Deprecated

This endpoint is marked as deprecated due to currently being unavailable. This endpoint is only a draft. Calling the endpoint until available will result in a 404- Not Found. Deprecation will be removed when the endpoint is available.

Overview

Create new Certification report through Technical Feedback, also known as a PSV Certification.

Important information

This endpoint is only applicable if you have a valid work order. Using this endpoint will also set the status of a technical feedback to Done.

Authorizations:
bearerAuth
Request Body schema: application/json

PSV certification report to create

operation-id
required
string

Operation ID for the certification report.

coldDesignSetPoint
required
number <decimal>

Cold design set point in Bar. From measuring point.

detectionMethodGroupId
required
string
failureMechanismGroupId
required
string
corrosion
required
boolean

Corrosion detected.

mechanicalDamage
required
boolean

Mechanical damage detected.

pollution
required
boolean

Pollution detected.

pretestLeakageRate
required
number <decimal>

Pretest leakage rate in Bubbles per minute.

pretestValveChanged
required
boolean

Pretest valve changed. If set to True Valve changed has been set to ‘Yes’. Note that pre-test values are recorded against the existing equipment and final test values will be recorded against the new equipment.

finalTestLeakageRate
required
number <decimal>

Final test leakage rate in Bubbles per minute.

detectionMethodId
string
failureMechanismId
string
calibrationDate
string <date>

Calibration date.

calibrationTime
string <time>

Calibration time.

corrosionDescription
string

Corrosion description, only required if corrosion is set to True.

mechanicalDamageDescription
string

Mechanical damage description, only required if mechanicalDamage is set to True.

pollutionDescription
string

Pollution description, only required if pollution is set to True.

manufacturerSerialNumber
string

Manufacturer serial number for pretest.

pretestOpeningPressure
number <decimal>

Pretest opening pressure in Bar.

pretestClosingPressure
number <decimal>

Pretest closing pressure in Bar.

pretestPressureTestMethod
string
Enum: "Pop" "Simmer"

Pretest pressure test method.

newValveEquipmentNumber
string

New valve equipment number. Only required if pretestValveChanged equals True

newValveSerialNumber
string

New valve serial number. Only required if pretestValveChanged equals True

newValvePartNumber
string

New valve part number. Only required if pretestValveChanged equals True

pretest2ndOpeningPressure
number <decimal>

Pretest 2nd opening pressure in Bar. Only required if pretestValveChanged equals False

pretest2ndClosingPressure
number <decimal>

Pretest 2nd closing pressure in Bar. Only required if pretestValveChanged equals False

pretest2ndPressureTestMethod
string
Enum: "Pop" "Simmer"

Pretest 2nd pressure test method. Only required if pretestValveChanged equals False

pretestAdditionalInformation
string

Additional information for pretest.

overhaulWorkScope
string
Enum: "Functional Test" "Full overhaul"

Overhaul work scope. Only required if pretestValveChanged equals False

overhaulPartsCondition
string
Enum: "Ok" "Not ok"

Overhaul parts condition. Only required if pretestValveChanged equals False & overhaulWorkScope equals Full overhaul

overhaulPartsConditionDescription
string

Overhaul parts condition description. Only required if pretestValveChanged equals False & overhaulWorkScope equals Full overhaul & overhaulPartsCondition equals Not ok

overhaulInternalPollution
string
Enum: "Ok" "Not ok"

Overhaul internal pollution. Only required if pretestValveChanged equals False & overhaulWorkScope equals Full overhaul

overhaulInternalPollutionDescription
string

Overhaul internal pollution description. Only required if pretestValveChanged equals False & overhaulWorkScope equals Full overhaul & overhaulInternalPollution equals Not ok

finalTestOpeningPressure
number <decimal>

Final test opening pressure in Bar.

finalTestClosingPressure
number <decimal>

Final test closing pressure in Bar.

finalTestPressureTestMethod
string
Enum: "Pop" "Simmer"

Final test pressure test method.

finalTestBlowdownAdjust
number <integer>

Final test blowdown adjust in Teeths.

finalTestBackpressure
number <integer>

Final test backpressure in Bar.

Responses

Request samples

Content type
application/json
{
  • "operationId": "0034",
  • "coldDesignSetPoint": "10",
  • "detectionMethodGroupId": "PMDM-005",
  • "detectionMethodId": "3",
  • "failureMechanismGroupId": "PMMC-010",
  • "failureMechanismId": "2.9",
  • "corrosion": false,
  • "mechanicalDamage": false,
  • "pollution": false,
  • "pretestLeakageRate": "5",
  • "pretestValveChanged": false,
  • "finalTestLeakageRate": "1"
}

Response samples

Content type
application/json
{
  • "text": "Multi-line text based on template",
  • "failureStartDateTime": "2021-01-30T12:00:00Z",
  • "failureEndDateTime": "2022-01-30T14:00:00Z",
  • "recordId": "45894100",
  • "tagId": "PX",
  • "tagPlantId": "1100",
  • "equipmentId": "12410072",
  • "title": "Endre skalering på PDT",
  • "workCenterId": "PPMAUT",
  • "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"
}

Upcoming modified endpoints

Endpoints that are planned to be modified in a future iteration (likely to change)

Measuring points - Search

Overview

Search measuring points.

Filter: by-plant

Search measuring points based on plant and one other property of the measuring point. Parameters:

  • plant-id

At least one of the following parameters is required:

  • tag-prefix
  • measuring-position
  • quantitative-characteristic
  • qualitative-code-group
  • measuring-point-name
  • characteristic-value-any-of

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

When using the characteristic-value-any-of it is important to URI Encode the input data especially when there are special characters as part of the input:

/measuring-points?characteristic-value-any-of=%3D17445%2F9818,%3D17433/6333&class-id=L_PART&characteristic-id=L_E3DREF&plant-id=1201&api-version=v1

Update release 1.10.0

Added property maintenanceRecordId to measurements.

Added include-characteristics and include-characteristics-without-value query parameter.

Update release 1.15.0

Added workOrderId to response.

Update release 1.20.0

Edited the response structure to support pagination. Use the parameters page and per-page in the parameters to edit wanted response.

Update release 1.21.0

Measuring points for equipment are now included in searches based on plant-id. Measuring points for equipment now include the tagId and tagPlantId of the tag the equipment is installed on.

Update release 1.22.0

To limit the response data for filter by-plant, at least one of the additional parameters must be provided.

Update release 1.30.0

Added characteristic-value-any-of, class-id and characteristic-id query parameters. Can be used to search for measuring points based on values of a characteristic.

Update future release

Added include-measurement-text query parameter to include measurement text in the response.

Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchMeasuringPointsFilter)
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

include-characteristics
boolean
Default: false

Include characteristics with defined value for the measuring points. Use include-characteristics-without-value to retrieve all characteristics available for the measuring points.

include-characteristics-without-value
boolean
Default: false

Include all characteristics available for the measuring points regardless if they have a defined value or not. Use include-characteristics to only include characteristics with defined value for the measuring points.

per-page
integer [ 1 .. 100 ]
Default: 50

Results to return pr page

page
integer
Default: 1

Page to fetch

characteristic-id
string or null
Example: characteristic-id=L_E3DREF

Required field if characteristic-value-any-of is supplied. Endpoint /characteristics/{class-id} can be used to find characteristic ids.

class-id
string or null
Example: class-id=L_PART

Required field if characteristic-value-any-of is supplied.

characteristic-value-any-of
string
Example: characteristic-value-any-of=%3D33814%2F12073

Search based on characteristic values. Must be used in combination with class-id and characteristic-id. Wildcards are not supported. Make sure to encode the parameters if they contain special characters.

include-measurement-text
boolean
Default: false

Include measurement text in the response

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&include-characteristics=SOME_BOOLEAN_VALUE&include-characteristics-without-value=SOME_BOOLEAN_VALUE&per-page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE&characteristic-id=SOME_STRING_VALUE&class-id=SOME_STRING_VALUE&characteristic-value-any-of=SOME_STRING_VALUE&include-measurement-text=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "lastMeasurement": {
      },
    • "measurements": [
      ],
    • "qualitativeCodes": [
      ],
    • "characteristics": [
      ],
    • "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"
    }
]

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 1.5.0

Added createdDateTime for attachments.

Update release 1.6.0

Added 301 response.

Update release 1.10.0

Added query parameter include-url-references.

Update release 1.11.0

Added quantity for tasks.

Added properties createdById,createdBy and createdByEmail. createdById will always be have value in response. createdBy and createdByEmail will only have value in response if the include-created-by-details query parameter is true.

Update release 1.15.0

Added property documentTitle to urlReferences.

Update release 1.16.0

urlReferences and attachments now include properties documentType, documentNumber and documentTitle.

Update release 1.17.0

Added query parameter include-measurements.

Update release 1.19.0

Added query parameter include-additional-data-characteristics.

Update release 1.21.0

Added property area to tag details.

Update release 1.24.0

urlReferences and attachments now include the property documentCreatedDate

Update release 1.26.0

tagDetails object now includes the new field maintenanceConceptId

Update release 1.27.0

Added maintenanceRecordTypeId to the response.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Added properties codingGroupId and codingId.

Update release 1.31.0

Added isReadonlyText property to activities in the response.

Update release 1.32.0

Added changedDateTime for attachments.

Added a query parameter include-task-list and taskList in the response. When a work order is created based on this notification, operations from the taskList will be automatically copied into the work order.

Update release 1.33.0

Added taskResponsible and taskResponsibleEmail for tasks in response when the new query parameter include-task-responsible-details is set to true.

Update release 1.35.0

Added workOrderTypeId and workOrderId to the response. workOrderId includes the id of work orders, not constrained to only showing corrective work orders. correctiveWorkOrderId has been corrected to only show the work order id if it is a corrective work order.

Update release 1.37.0

Added support for new work order type overheadMaintenanceWorkOrders to workOrderTypeId enum of allowed types.

Authorizations:
bearerAuth
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

include-additional-data-characteristics
boolean
Default: false

Include characteristics for additional metadata

include-created-by-details
boolean
Default: false

Include name and email of user represented in createdById. If not supplied, createdBy and createdByEmail will have null value.

include-url-references
boolean
Default: false

Include URL references for failure report. See POST /maintenance-record-relationships/{record-id}/url-references

include-measurements
boolean
Default: false

Include related measurements

include-task-list
boolean
Default: false

Include task list with task list operations

include-task-responsible-details
boolean
Default: false

Include task responsible details. Can have a slight performance impact.

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&include-additional-data-characteristics=SOME_BOOLEAN_VALUE&include-created-by-details=SOME_BOOLEAN_VALUE&include-url-references=SOME_BOOLEAN_VALUE&include-measurements=SOME_BOOLEAN_VALUE&include-task-list=SOME_BOOLEAN_VALUE&include-task-responsible-details=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "maintenanceRecordTypeId": "failureReport",
  • "createdById": "433937",
  • "createdBy": "Dagfinn Parnas",
  • "createdByEmail": "dapa@equinor.com",
  • "statuses": [
    • {
      }
    ],
  • "activities": [
    • {
      }
    ],
  • "tasks": [
    • {
      }
    ],
  • "attachments": [
    • {
      }
    ],
  • "urlReferences": [
    • {
      }
    ],
  • "tagDetails": {
    • "isInactive": false,
    • "parentTagId": "AT5566",
    • "systemId": "BS",
    • "system": "PM-PROG.SYST.",
    • "ABCId": "5",
    • "ABC": "Crit.=M & Red.=B",
    • "locationId": "W14",
    • "location": "METERING DECK",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    },
  • "additionalMetadata": [
    • {
      }
    ],
  • "measurements": [
    • {
      }
    ],
  • "taskList": [
    • {
      }
    ],
  • "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": "PPMAUT",
  • "workCenter": "AI Automasjon",
  • "workCenterPlantId": "1100",
  • "planningPlantId": "1100",
  • "plannerGroupId": "PPM",
  • "plannerGroup": "Plattform PV",
  • "locationId": "CD2",
  • "location": "METERING DECK",
  • "systemId": "11",
  • "failureImpactId": "D",
  • "failureImpact": "Unwell (InF)",
  • "priorityId": "D",
  • "isBreakdown": false,
  • "hasUnsafeFailureMode": true,
  • "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",
  • "codingId": "NC",
  • "codingGroupId": "PMMK",
  • "correctiveWorkOrderExist": false,
  • "correctiveWorkOrderId": "24871954",
  • "workOrderTypeId": "correctiveWorkOrder",
  • "workOrderId": "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"
}

Tag

Endpoints related to tag master data.

Tag - Lookup

Overview

Lookup a single tag with related information

Update release 0.9.0

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

Update release 1.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 properties for maintenance records if include-maintenance-records is true.

Fixed bug for include-installed-equipment.

Update release 1.3.0

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

Added include-bill-of-materials query parameter.

Update release 1.5.0

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

Update release 1.8.0

Added properties hasUnsafeFailureMode and unsafeFailureModeStatus for failure reports.

Update release 1.10.0

Added property maintenanceRecordId to measurements of measuring points.

Update release 1.11.0

Added property costWBSId.

Update release 1.15.0

Added workOrderId to response.

Added include-linear-data and include-status-details query parameters.

Added properties tagCategoryId, activeStatusIds, startUpDate and endOfUseDate.

Added modification-proposal as a maintenance record type to include with include-maintenance-record-types parameter.

Update release 1.16.0

Added property classId to characteristics.

Added query parameters include-attachments and include-url-references.

Added property workCenterId

Update release 1.21.0

Added property area.

Update release 1.24.0

urlReferences and attachments now include the property documentCreatedDate

Added property cmrIndicator for WorkOrders

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.28.0

billOfMaterials now include the property parentMaterialId

Added materialId and material to the response

Update release 1.32.0

Added changedDateTime for attachments.

Update release 1.35.0

Added new fields maintenancePlantId, createdOnDate and changedOnDate.

Update release 1.36.0

Added properties costs and costsCurrency to preventive work orders.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Removed deprecated property cmrIndicator from work orders. See STRY0261073 in ServiceNow for more details.

Update future release

Added new property hasCommunication

Authorizations:
bearerAuth
path Parameters
plant-id
required
string

Plants or maintenance plants to include tags from.

tag-id
required
string
Example: AB
query Parameters
include-maintenance-records
boolean
Default: false

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

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

Include which types of maintenance records

include-work-orders
boolean
Default: true

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

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

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-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 or if looking up measuring point)

include-characteristics
boolean
Default: false

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

include-bill-of-materials
boolean
Default: false

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

include-attachments
boolean
Default: false

Include equipment or tag attachments

include-url-references
boolean
Default: false

Include URL references for object

include-status-details
boolean
Default: false

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

include-linear-data
boolean
Default: false

Include linear data

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-maintenance-plan-items=SOME_BOOLEAN_VALUE&include-measuring-points=SOME_BOOLEAN_VALUE&include-last-measurement=SOME_BOOLEAN_VALUE&include-characteristics=SOME_BOOLEAN_VALUE&include-bill-of-materials=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-url-references=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-linear-data=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "tagCategoryId": "I",
  • "classId": "DG0105",
  • "workCenterId": "PPMELE",
  • "workCenter": "PV Elektro",
  • "workCenterPlantId": "1100",
  • "planningPlantId": "1100",
  • "plannerGroupId": "PPM",
  • "plannerGroup": "Plattform PV",
  • "activeStatusIds": "CRTE INSV MTAG",
  • "startUpDate": "2019-08-24",
  • "endOfUseDate": "2019-08-24",
  • "costWBSId": "T.O037C.GA.10004",
  • "materialId": "763589",
  • "material": "LIGHT,FIXTURE,26w,SZ 4155.100,RITTAL",
  • "maintenancePlantId": "1100",
  • "createdOnDate": "2024-10-24",
  • "changedOnDate": "2024-10-25",
  • "characteristics": [
    • {
      }
    ],
  • "maintenanceRecords": {
    • "modificationProposals": [
      ],
    • "failureReports": [
      ],
    • "activityReports": [
      ],
    • "certificationReports": [
      ],
    • "technicalInformationUpdateRequests": [
      ],
    • "technicalClarifications": [
      ]
    },
  • "workOrders": {
    • "correctiveWorkOrders": [
      ],
    • "preventiveWorkOrders": [
      ],
    • "modificationWorkOrders": [
      ],
    • "sasChangeWorkOrders": [
      ],
    • "projectWorkOrders": [
      ],
    • "subseaWorkOrders": [
      ]
    },
  • "installedEquipment": [
    • {
      }
    ],
  • "maintenancePlanItems": [
    • {
      }
    ],
  • "catalogProfileDetails": {
    • "detectionMethods": [
      ],
    • "failureModes": [
      ],
    • "failureMechanisms": [
      ]
    },
  • "measuringPoints": [
    • {
      }
    ],
  • "billOfMaterials": [
    • {
      }
    ],
  • "linearData": {
    • "startPoint": 4.527,
    • "endPoint": 4.527,
    • "linearUnitOfMeasure": "KP"
    },
  • "statuses": [
    • {
      }
    ],
  • "urlReferences": [
    • {
      }
    ],
  • "attachments": [
    • {
      }
    ],
  • "isInactive": false,
  • "parentTagId": "AT5566",
  • "systemId": "BS",
  • "system": "PM-PROG.SYST.",
  • "ABCId": "5",
  • "ABC": "Crit.=M & Red.=B",
  • "locationId": "W14",
  • "location": "METERING DECK",
  • "catalogProfileId": "PM-160",
  • "area": "W14",
  • "maintenanceConceptId": "VA1631",
  • "tagId": "AE5566",
  • "tagPlantId": "1100",
  • "tag": "CT5023/24 - POT.WATER PH PROBE."
}

Tag - Update

Overview

Update a single tag

Important information

There is a plant-specific configuration called "data origin" which determines which properties should be inherited from the parent tag. Please be aware that updating of the field parentTagId might lead to overwriting of those properties to the default values of the new tag.

If a tag is a parent tag, changing of an already existing property will be cascaded to all its children. This is valid if according to the "data origin" this property should be inherited.

The endpoint supports most status activation such as:

  • INAC - Object deactivated
  • INSV - In service
  • ENGN - Engineering

Deactivation is supported 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 once another status is activated.

Update release 1.19.0

Added support for activation and deactivation of tag statuses. The property activeStatusIds should provide all the the old and new statuses a tag should have, and any statuses not provided will be deactivated.

Update release 1.21.0

Added support for property area

Authorizations:
bearerAuth
path Parameters
plant-id
required
string
tag-id
required
string
Example: AB
Request Body schema: application/json

The information to be updated

Array
op
required
string
Value: "replace"

JSON Patch operation according to RFC6902

path
required
string
Enum: "/parentTagId" "/tag" "/systemId" "/locationId" "/workCenterId" "/workCenterPlantId" "/planningPlantId" "/plannerGroupId" "/costWBSId" "/startUpDate" "/area" "/endOfUseDate" "/catalogProfileId" "/maintenanceConceptId" "/activeStatusId" "/linearData/startPoint" "/linearData/endPoint" "/linearData/linearUnitOfMeasure"

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: The following is only valid for pipeline tags (tagCategoryId = U)

  • /linearData/startPoint
  • /linearData/endPoint
  • /linearData/linearUnitOfMeasure

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "op": "replace",
    • "path": "/activeStatusIds",
    • "value": "INAC INSV MTAG"
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Tag - Add characteristics

Add new characteristics to an existing tag.

Characteristics are grouped into a class such as FL_MAINT_STRATEGY. Classes can be assigned to a tag and specific characteristics such as CRIT_PRODUCTION will then be available for that specific tag.

With this endpoint, the consumer can assign classes to a tag and define initial values for some of the characteristics in the classes.

Note that if a given characteristic has already been added to this tag, repeated adding will result in overwriting of the characteristic value. If you want to update a characteristic the PATCH endpoint can be used.

Important information

Use /plants/{plant-id}/tags/{tag-id}?include-characteristics=true&api-version=v1 to view characteristics with value after using this endpoint.

Authorizations:
bearerAuth
path Parameters
plant-id
required
string
tag-id
required
string
Example: AB
Request Body schema: application/json

Characteristics to add to tag.

Array
classId
required
string

The class which contains the characteristics

Array of objects (TagCharacteristicAdd)

Specific characteristics in the class to define a value for

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "classId": "FL_CRITICALITY"
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Tag - Update characteristic

Update existing values of characteristics on a tag. If the characteristics does not exist, a 404 - Not Found is returned.

Authorizations:
bearerAuth
path Parameters
plant-id
required
string
tag-id
required
string
Example: AB
Request Body schema: application/json

Characteristics to be updated, based on JsonPatch standard

Array
required
Array of objects (CharacteristicsJsonPatch)
characteristicId
required
string
classId
required
string

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "characteristicId": "CRIT_CRITICALITY",
    • "classId": "FL_MAINT_STRATEGY",
    • "patchDocument": [
      ]
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Tag hierachy - Get Deprecated

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 0.9.0

Added filter-by-root-tags filter.

Important information

Endpoint is deprecated as of 11.2022 in order to improve consistency in API. Use /plants/{plant-id}/tag-hierarchy instead.

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

Filter to limit the tag hierarchy by

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

Comma-separated list of tags (without tagPlantId prefix)

sub-hierarchy-limit
integer [ 1 .. 4 ]
Default: 4
Example: sub-hierarchy-limit=2

Limit the response to a certain number of levels below the root tag If this parameter is omitted, a maximum of 4 sub levels will be included.

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&sub-hierarchy-limit=2' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

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

Tag hierarchy - Get

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

Filter: by-root-tags

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

  • root-tag-id-any-of

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 1.30.0

Added property tag to the response.

Added query parameter sub-hierarchy-limit which controls how many levels below the root the response will contain.

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

Filter to limit the tag hierachy by

root-tag-id-any-of
string
Example: root-tag-id-any-of=10A1,10A10,10A11,10A12,10A13

Comma-separated list of tags (without tagPlantId prefix)

sub-hierarchy-limit
integer [ 1 .. 4 ]
Default: 4
Example: sub-hierarchy-limit=2

Limit the response to a certain number of levels below the root tag If this parameter is omitted, a maximum of 4 sub levels will be included.

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/tag-hierarchy?filter=SOME_STRING_VALUE&root-tag-id-any-of=10A1%2C10A10%2C10A11%2C10A12%2C10A13&sub-hierarchy-limit=2' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "tagId": "1100-AE5566",
    • "parentTagId": "1100-AT5566",
    • "catalogProfileId": "PM-160",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    }
]

Tag hierarchy tree - Get

Get the entire tag hierarchy for a plant in a tree structure. For each tag you will be provided with catalog profile and the parent tag.

Important information

The optional query parameter root-tag-id specifies the root tag for the hierarchy. If omitted, the root tag of the plant will be used. Use the optional query parameter sub-hierarchy-limit to control how many levels below the root the response will contain. This is limited to values between 1 and 4.

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

The property subTagHierarchy is an array of TagHierarchyTree objects, meaning that this is a recursive property. When the array is empty, either the sub-limit has restricted further levels to serialize, or the hierarchy has reached the bottom. The property isEndNode indicates if there are further tags in the hierarchy which can be looked up with a subsequent request.

Authorizations:
bearerAuth
path Parameters
plant-id
required
string
query Parameters
root-tag-id
string
Example: root-tag-id=10A1

The root tag for the hierarchy

sub-hierarchy-limit
integer >= 1
Default: 4
Example: sub-hierarchy-limit=2

Limit the response to a certain number of levels below the root tag. If this parameter is omitted, a maximum of 4 sub levels will be included.

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/tag-hierarchy-tree?root-tag-id=10A1&sub-hierarchy-limit=2' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "tagId": "1100-AB",
  • "parentTagId": "1100",
  • "tag": "Actual Boiler",
  • "catalogProfileId": "PM-160",
  • "isEndNode": false,
  • "subTagHierarchy": [
    • {
      },
    • {
      }
    ]
}

Tag - Create

Overview

Create tag with option to create linear data. Linear data can be created only for the tagCategoryId U (Pipeline).

Locations and systems available for this plant can be found by querying /plants/{plant-id}?include-systems=true&include-locations=true&api-version=v1

To find a valid parentTagId, use the tag search endpoint /plants/{plant-id}/tag-hierarchy

Important information

There is a plant-specific configuration called "data origin" which determines which properties should be inherited from the parent tag, and which should be maintained by user directly, e.g. via the API. Properties provided in the request will overwrite the inherited default values. Nevertheless, the inheritance rules of the "data origin" configuration remain the same even if default values were overwritten during the creation.

Please note that to execute this request, elevated roles are required in Equinor's ERP system.

Update release 1.21.0

Added support for property area.

Update release 1.26.0

Added property maintenanceConceptId to response.

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

Tag to create

tagId
required
string or null
parentTagId
required
string
tag
required
string
tagCategoryId
required
string <= 1 characters
Enum: "A" "C" "D" "E" "F" "H" "I" "J" "K" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Z"

The category the tag belongs to. Values: A = Hose Assembly,C = Cable,D = Circuit and Starter,E = Electric Field-equipment,F = Fire & Gas,H = Heat tracing,I = Instrument,J = Junction Box,K = Vehicle,M = Main equipment,N = Penetration,O = Surface Protection,P = Piping,Q = Pipe Support,R = Civil engineering facility,S = Special Item,T = Telecommunication,U = Pipeline,V = Manual Valve,W = Software Tag,X = Package and Z = Dummy Functional Location

systemId
string
ABCId
string
area
string

Specific room for the asset

locationId
string

Structured location within the plant where the tag is located

workCenterId
string
workCenterPlantId
string
planningPlantId
string
plannerGroupId
string
activeStatusIds
string

Active statuses for the tag with space as separating character

costWBSId
string
startUpDate
string or null <date>
endOfUseDate
string or null <date>
catalogProfileId
string or null
maintenanceConceptId
string

The maintenance concept for the tag. More details planned to be available through endpoint /maintenance-concepts/{concept-id}

object (LinearData)

Responses

Request samples

Content type
application/json
Example
{
  • "tagCategoryId": "U",
  • "tagId": "AT5566-25",
  • "parentTagId": "AT5566",
  • "systemId": "BS",
  • "locationId": "W14",
  • "area": "FA-CAE1",
  • "tag": "CT5023/24 - POT.WATER PH PROBE.",
  • "ABCId": "5",
  • "workCenterId": "PPMELE",
  • "workCenterPlantId": "1100",
  • "planningPlantId": "1100",
  • "plannerGroupId": "PPM",
  • "activeStatusIds": "CRTE INSV",
  • "costWBSId": "T.O037C.GA.10004",
  • "startUpDate": "2022-12-20",
  • "endOfUseDate": "2023-10-20",
  • "catalogProfileId": "PM-160",
  • "maintenanceConceptId": "VA1631",
  • "linearData": {
    • "startPoint": 4.527,
    • "endPoint": 4.547,
    • "linearUnitOfMeasure": "KP"
    }
}

Response samples

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

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

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

Update 1.14.0

Added support for filter by-tag-ids with accompanying parameter tag-ids-any-of Filter is not required and defaults to by-tag-prefix to keep backwards compatibility.

Added options to include more data using the same data model as on Tag - Lookup, but all includes are defaulted to false.

by-tag-prefix filter now supports wildcards (*) in the tag prefix

Edited the response structure to support pagination if filter by-tag-prefix is set. Use the parameters page and per-page in the parameters to edit wanted response.

Update release 1.15.0

Added include-linear-data and include-status-details query parameters.

Added properties tagCategoryId, activeStatusIds, startUpDate and endOfUseDate.

Update release 1.16.0

Added property classId to characteristics

Update release 1.18.0

Added new filter by-external-system-reference. Added new property semiModelId.

Update release 1.21.0

Added property area.

Update release 1.24.0

Added query parameters include-attachments and include-url-references. urlReferences and attachments now include the property documentCreatedDate

Added property cmrIndicator for WorkOrders

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.28.0

billOfMaterials now include the property parentMaterialId

Added materialId and material to the response

Update release 1.32.0

Added changedDateTime for attachments.

Update release 1.35.0

Added new fields maintenancePlantId, createdOnDate and changedOnDate.

Added new filters for use in combination with the by-tag-prefix and by-tag-ids filters:

  • tag-category-id-any-of
  • maintenance-concept-id-any-of
  • created-before-date
  • created-after-date
  • changed-before-date
  • changed-after-date

Update release 1.36.0

Added properties costs and costsCurrency to preventive work orders.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Removed deprecated property cmrIndicator from work orders. See STRY0261073 in ServiceNow for more details.

Authorizations:
bearerAuth
path Parameters
plant-id
required
string

Plant to include tags from.

query Parameters
filter
string or null
Default: "by-tag-prefix"
Enum: "by-tag-ids" "by-tag-prefix" "by-external-system-reference"
tag-prefix
string or null >= 2 characters

The first few characters of the tag, required if filter is empty or by-tag-prefix

tag-ids-any-of
Array of strings[ items non-empty ]

The tagIds as a comma separated list, required if filter is by-tag-ids

external-system-reference
string or null non-empty

Required if filter is by-external-system-reference

tag-category-id-any-of
Array of strings or null

Optional comma separated string array of tag category ids to filter your result to one or more tag categories (tagCategoryId). Wildcards are not supported. May only be used in combination with the by-tag-prefix and by-tag-ids filters.

maintenance-concept-id-any-of
Array of strings[ items [ 1 .. 10 ] characters ]

Optional comma separated string array of Maintenance Concept Ids (maintenanceConceptId in response model). Wildcards are not supported. May only be used in combination with the by-tag-prefix and by-tag-ids filters.

created-before-date
string or null <date> = 10 characters

Latest createdOnDate date to include. Use together with created-after-date to get Tags created in the given time period. May only be used in combination with the by-tag-prefix and by-tag-ids filters.

created-after-date
string or null <date> = 10 characters

Earliest createdOnDate date to include. Use together with created-before-date to get Tags created in the given time period. May only be used in combination with the by-tag-prefix and by-tag-ids filters.

changed-before-date
string or null <date> = 10 characters

Latest changedOnDate date to include. Use together with changed-after-date to get Tags changed in the given time period. May only be used in combination with the by-tag-prefix and by-tag-ids filters.

changed-after-date
string or null <date> = 10 characters

Earliest changedOnDate date to include. Use together with changed-before-date to get Tags changed in the given time period. May only be used in combination with the by-tag-prefix and by-tag-ids filters.

include-maintenance-records
boolean
Default: false

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

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

Include which types of maintenance records

include-work-orders
boolean
Default: true

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

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

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-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 or if looking up measuring point)

include-characteristics
boolean
Default: false

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

include-bill-of-materials
boolean
Default: false

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

include-attachments
boolean
Default: false

Include equipment or tag attachments

include-url-references
boolean
Default: false

Include URL references for object

include-status-details
boolean
Default: false

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

include-linear-data
boolean
Default: false

Include linear data

per-page
integer [ 1 .. 100 ]
Default: 100

Results to return per page

page
integer
Default: 1

Page to fetch

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/tags?filter=SOME_STRING_VALUE&tag-prefix=SOME_STRING_VALUE&tag-ids-any-of=SOME_ARRAY_VALUE&external-system-reference=SOME_STRING_VALUE&tag-category-id-any-of=SOME_ARRAY_VALUE&maintenance-concept-id-any-of=SOME_ARRAY_VALUE&created-before-date=SOME_STRING_VALUE&created-after-date=SOME_STRING_VALUE&changed-before-date=SOME_STRING_VALUE&changed-after-date=SOME_STRING_VALUE&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-maintenance-plan-items=SOME_BOOLEAN_VALUE&include-measuring-points=SOME_BOOLEAN_VALUE&include-last-measurement=SOME_BOOLEAN_VALUE&include-characteristics=SOME_BOOLEAN_VALUE&include-bill-of-materials=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-url-references=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-linear-data=SOME_BOOLEAN_VALUE&per-page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "semiModelId": "SMI-000-001-234",
    • "tagCategoryId": "I",
    • "classId": "DG0105",
    • "workCenterId": "PPMELE",
    • "workCenter": "PV Elektro",
    • "workCenterPlantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "plannerGroup": "Plattform PV",
    • "activeStatusIds": "CRTE INSV MTAG",
    • "startUpDate": "2019-08-24",
    • "endOfUseDate": "2019-08-24",
    • "costWBSId": "T.O037C.GA.10004",
    • "materialId": "763589",
    • "material": "LIGHT,FIXTURE,26w,SZ 4155.100,RITTAL",
    • "maintenancePlantId": "1100",
    • "createdOnDate": "2024-10-24",
    • "changedOnDate": "2024-10-25",
    • "characteristics": [
      ],
    • "maintenanceRecords": {
      },
    • "workOrders": {
      },
    • "installedEquipment": [
      ],
    • "maintenancePlanItems": [
      ],
    • "catalogProfileDetails": {
      },
    • "measuringPoints": [
      ],
    • "billOfMaterials": [
      ],
    • "linearData": {
      },
    • "statuses": [
      ],
    • "urlReferences": [
      ],
    • "attachments": [
      ],
    • "isInactive": false,
    • "parentTagId": "AT5566",
    • "systemId": "BS",
    • "system": "PM-PROG.SYST.",
    • "ABCId": "5",
    • "ABC": "Crit.=M & Red.=B",
    • "locationId": "W14",
    • "location": "METERING DECK",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    }
]

Equipment

Endpoints related to equipment master data.

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-characteristics=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 1.4.0

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

Update release 1.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 1.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)

Update release 1.7.0

Added property parentEquipmentId.

Update release 1.8.0

Added properties hasUnsafeFailureMode and unsafeFailureModeStatus for failure reports.

Update release 1.10.0

Added property maintenanceRecordId to measurements of measuring points.

Update release 1.12.0

Added properties equipmentCategoryId and quantityUnitId.

Update release 1.15.0

Added workOrderId to the lastMeasurement.

Added query parameter include-url-references.

modification-proposal in include-maintenance-record-types now includes modification proposals in the response.

Update release 1.16.0

Added property classId to characteristics.

Added properties manufacturer and modelNumber.

urlReferences and attachments now include properties documentType, documentNumber and documentTitle.

Added property workCenterId to maintenanceRecords.failureReports

Update release 1.17.0

Add property characteristics to urlReferences in response

Add query parameter include-url-characteristics

Update release 1.21.0

Added query parameter include-person-responsible, that expands work order response with person responsible.

Update release 1.24.0

urlReferences and attachments now include the property documentCreatedDate

Added property cmrIndicator for WorkOrders

Update release 1.25.0

Added query parameter include-sub-equipment

Update release 1.26.0

Added properties tagId and tagPlantId

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.31.0

Added properties manufacturerPartNumber, technicalIdentificationNumber, objectWeight and unitOfWeightto response body.

Update release 1.32.0

Added changedDateTime for attachments.

Update release 1.34.0

Added property linkedEquipment, which can be included in the response by using the new query parameter include-linked-equipment.

Added boolean property hasLinkageToEquipment that will be true if the equipment has any linked equipment.

Update release 1.35.0

Added new fields maintenancePlantId, createdOnDate and changedOnDate.

Update release 1.36.0

Added properties costs and costsCurrency to preventive work orders.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Removed deprecated property cmrIndicator from work orders. See STRY0261073 in ServiceNow for more details. Added new work order type overHeadMaintenanceWorkOrders to response.

Authorizations:
bearerAuth
path Parameters
equipment-id
required
string

The unique equipmentId in Equinor's system

query Parameters
include-maintenance-records
boolean
Default: false

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

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

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 supported types are returned.

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

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-attachments
boolean
Default: false

Include equipment or tag attachments

include-url-references
boolean
Default: false

Include URL references for object

include-url-characteristics
boolean
Default: false

Include characteristics for URL References

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 or if looking up measuring point)

include-person-responsible
boolean
Default: false

Include person responsible information in response, for example the email or name of the person responsible. May have a slight performance impact.

include-sub-equipment
boolean
Default: false

Include child equipment for an equipment. Limit to only the first level childs of the hierarchy.

include-status-details
boolean
Default: false

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

include-linked-equipment
boolean
Default: false

Include list of equipment that are physically linked to this equipment.

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-attachments=SOME_BOOLEAN_VALUE&include-url-references=SOME_BOOLEAN_VALUE&include-url-characteristics=SOME_BOOLEAN_VALUE&include-measuring-points=SOME_BOOLEAN_VALUE&include-last-measurement=SOME_BOOLEAN_VALUE&include-person-responsible=SOME_BOOLEAN_VALUE&include-sub-equipment=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-linked-equipment=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "equipmentCategoryId": "M",
  • "activeStatusIds": "OSNO CRTE",
  • "maintenanceConceptId": "TI0740",
  • "classId": "SUBSEA_POOL",
  • "workCenterId": "AKSO",
  • "workCenter": "Aker",
  • "workCenterPlantId": "1012",
  • "planningPlantId": "1012",
  • "hasLinkageToEquipment": true,
  • "characteristics": [
    • {
      }
    ],
  • "attachments": [
    • {
      }
    ],
  • "urlReferences": [
    • {
      }
    ],
  • "statuses": [
    • {
      }
    ],
  • "maintenanceRecords": {
    • "modificationProposals": [
      ],
    • "failureReports": [
      ],
    • "activityReports": [
      ],
    • "certificationReports": [
      ],
    • "technicalInformationUpdateRequests": [
      ],
    • "technicalClarifications": [
      ]
    },
  • "workOrders": {
    • "correctiveWorkOrders": [
      ],
    • "preventiveWorkOrders": [
      ],
    • "modificationWorkOrders": [
      ],
    • "sasChangeWorkOrders": [
      ],
    • "projectWorkOrders": [
      ],
    • "subseaWorkOrders": [
      ]
    },
  • "catalogProfileDetails": {
    • "detectionMethods": [
      ],
    • "failureModes": [
      ],
    • "failureMechanisms": [
      ]
    },
  • "measuringPoints": [
    • {
      }
    ],
  • "subEquipment": [
    • {
      }
    ],
  • "linkedEquipment": [
    • {
      }
    ],
  • "manufacturer": "Siemens",
  • "modelNumber": "7397568",
  • "serialNumber": "4500695422-20-003",
  • "partNumber": "10219863",
  • "parentEquipmentId": "11963913",
  • "quantityUnitId": "PC",
  • "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",
  • "tagId": "1A1-A16A",
  • "tagPlantId": "1111",
  • "plannerGroupId": "PL4",
  • "plannerGroup": "WOS support Equip",
  • "manufacturerPartNumber": "PART-123-345",
  • "technicalIdentificationNumber": "D3-0001560",
  • "objectWeight": "100.00",
  • "unitOfWeight": "KG",
  • "maintenancePlantId": "1100",
  • "createdOnDate": "24-10-2024",
  • "changedOnDate": "25-10-2024",
  • "equipmentId": "11948620",
  • "equipment": "PEDESTAL,TH ISOLAT.SLEEVE,ASSY,10219863",
  • "materialId": "854586"
}

Equipment - Update

Overview

Update a single equipment

Supports:

  • Update warrantyStartDate and warrantyEndDate

Update release 1.27.0

Allow for update of materialId

Authorizations:
bearerAuth
path Parameters
equipment-id
required
string
Example: 11948620
Request Body schema: application/json

The information to be updated

Array
op
required
string
Value: "replace"

JSON Patch operation according to RFC6902

path
required
string
Enum: "/warrantyStartDate" "/warrantyEndDate" "/materialId"

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:

  • /warrantyStartDate - Date
  • /warrantyEndDate - Date

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "op": "replace",
    • "path": "/warrantyStartDate",
    • "value": "2022-08-26"
    },
  • {
    • "op": "replace",
    • "path": "/warrantyEndDate",
    • "value": "2027-08-26"
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Equipment - Install

Overview

Install Equipment on a tag hierarchy.

An equipment can be either installed on a Tag, or an Equipment.

If equipmentId is provided in the body, the equipmentId from the path will be installed here. If tagPlantId-tagId is provided in the body, the equipmentId from the path will be installed here.

Important information

Both of these cases cannot be supported at the same time. An equipment can not be installed at more than one place at a time.

Authorizations:
bearerAuth
path Parameters
equipment-id
required
string
Example: 14626974

The unique equipmentId in Equinor's system

Request Body schema: application/json

Install Equipment in a hierarchy.

tagId
string or null
tagPlantId
string or null
equipmentId
string or null

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "tagId": "TEST"
    },
  • {
    • "tagPlantId": "1100"
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Equipment - Dismantle

Overview

Dismantle Equipment on a tag hierarchy.

An equipment can be dismantled from a tag, or an equipment. The correct installation needs to be provided in the body to be successful.

If equipmentId is provided in the body, the equipmentId from the path will be dismantled here. If tagPlantId-tagId is provided in the body, the equipmentId from the path will be dismantled here.

Important information

Both of these cases cannot be supported at the same time. An equipment can not be installed at more than one place at a time.

Authorizations:
bearerAuth
path Parameters
equipment-id
required
string
Example: 14626974

The unique equipmentId in Equinor's system

query Parameters
delete-equipment
boolean
Default: false

Delete the equipment after dismantling

Request Body schema: application/json

Dismantle equipment in a hierarchy.

tagId
string or null
tagPlantId
string or null
equipmentId
string or null

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "tagId": "TEST"
    },
  • {
    • "tagPlantId": "1100"
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Equipment - Add characteristics

Add characteristics to equipment.

Characteristics are grouped into a class such as R_PIPE_DETAILS. Classes can be assigned to an equipment and specific characteristics such as R_DIAMETER_MM will then be available for that specific equipment.

With this endpoint, the consumer can assign classes to an equipment and define initial values for some of the characteristics in the classes.

There is currently no endpoint for looking up existing classes and their characteristics, but this may be added in the future.

Important information

Use /equipment/{equipment-id}?include-characteristics=true&api-version=v1 to view characteristics with value after using this endpoint.

Authorizations:
bearerAuth
path Parameters
equipment-id
required
string
Example: 14626974

The unique equipmentId in Equinor's system

Request Body schema: application/json

Characteristics to add to equipment.

Array
classId
required
string

The class which contains the characteristics

Array of objects (CharacteristicAdd)

Specific characteristics in the class to define a value for

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "classId": "R_PIPE_DETAILS",
    • "characteristics": [
      ]
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Equipment - Update characteristic

Update existing values of characteristics on an equipment. If the characteristics does not exist, a 404 - Not Found is returned.

Authorizations:
bearerAuth
path Parameters
equipment-id
required
string
Example: 14626974

The unique equipmentId in Equinor's system

Request Body schema: application/json

Characteristics to be updated, based on JsonPatch standard

Array
required
Array of objects (CharacteristicsJsonPatch)
characteristicId
required
string
classId
required
string

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "characteristicId": "CRIT_CRITICALITY",
    • "classId": "FL_MAINT_STRATEGY",
    • "patchDocument": [
      ]
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Equipment list - Get

Get list of all equipment for the specified plant.

The response will include equipmentCategoryId and catalogProfileId for each equipment.

Filter: filter-by-equipment-category (optional)

Limits the response to the provided equipmentCategoryId(s). Parameters:

  • equipment-category-id-any-of

Important information

The endpoint returns a significant amount of data as it returns all equipment for the specified plant. The data will be cached in the API and renewed on a daily basis.

Authorizations:
bearerAuth
path Parameters
plant-id
required
string
query Parameters
filter
string (GetEquipmentListFilter)
Value: "filter-by-equipment-category"

Filter to limit the equipment list by

equipment-category-id-any-of
string
Example: equipment-category-id-any-of=R,U

Comma-separated list of equipment categories. G = Tank Customer equipment, L = Pipe & Process Equipment Parts, M = Machines/Equipment, P = Production resources/tools, Q = Test/measurement equipment, R = Process Equipment, S = Customer equipment, T = IT Equipment, U = Subsea Equipment, W = Wind Operation Certified Equip, Y = Tool Crib

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/equipment-list?filter=SOME_STRING_VALUE&equipment-category-id-any-of=R%2CU' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "equipmentId": "12218664",
    • "equipmentCategoryId": "R",
    • "catalogProfileId": "PM-160"
    }
]

Equipment - Attachment download

Overview

Download single attachment for equipment.

The applicable document types are: B10, B30, A01, A02.

Authorizations:
bearerAuth
path Parameters
equipment-id
required
string
attachment-id
required
string

Responses

Request samples

curl --request GET \
  --url https://api-test.gateway.equinor.com/maintenance-api/equipment/%7Bequipment-id%7D/attachments/%7Battachment-id%7D \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{}

Equipment - Create

Overview

Create equipment and possibly install at tag.

Important information

In the current version of the endpoint, it's only possible to create equipment with equipmentCategoryId R = Process Equipment.

If the request includes installedAtTag, the equipment will inherit properties such as planningPlantId, plannerGroupId, workCenterId, ABCId, systemId and locationIdfrom the tag.

Access to the role YO059 - Static Process Equipment Data Establisher (SAPP03) is required.

Update release 1.26.0

Added properties tagId and tagPlantId to response body.

Update release 1.31.0

Added properties manufacturerPartNumber, technicalIdentificationNumber, objectWeight and unitOfWeight to response body.

Update release 1.35.0

Added new fields maintenancePlantId, equipmentCategoryId, maintenanceConceptId, createdOnDate and changedOnDate to response body.

Authorizations:
bearerAuth
Request Body schema: application/json

Equipment to create

equipment
required
string
equipmentCategoryId
required
string <= 1 characters

The category the equipment belongs to. Only R is supported for create. G = Tank Customer equipment, M = Machines/Equipment, P = Production resources/tools, Q = Test/measurement equipment, R = Process Equipment, S = Customer equipment, T = IT Equipment, U = Subsea Equipment, W = Wind Operation Certified Equip, Y = Tool Crib

maintenanceConceptId
string

The maintenance concept for the tag. More details available through endpoint /maintenance-concepts/{concept-id}

object (EquipmentCreateInstalledAtTag)

Responses

Request samples

Content type
application/json
Example
{
  • "equipment": "P:000 000 ** Main FL:.63\"-OH-19137-TS31A",
  • "equipmentCategoryId": "R",
  • "maintenanceConceptId": "VE1301",
  • "installedAtTag": {
    • "tagId": "1A1-A16A",
    • "tagPlantId": "1111"
    }
}

Response samples

Content type
application/json
{
  • "manufacturer": "Siemens",
  • "modelNumber": "7397568",
  • "serialNumber": "4500695422-20-003",
  • "partNumber": "10219863",
  • "parentEquipmentId": "11963913",
  • "quantityUnitId": "PC",
  • "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",
  • "tagId": "1A1-A16A",
  • "tagPlantId": "1111",
  • "plannerGroupId": "PL4",
  • "plannerGroup": "WOS support Equip",
  • "manufacturerPartNumber": "PART-123-345",
  • "technicalIdentificationNumber": "D3-0001560",
  • "objectWeight": "100.00",
  • "unitOfWeight": "KG",
  • "maintenancePlantId": "1100",
  • "equipmentCategoryId": "M",
  • "maintenanceConceptId": "TI0740",
  • "createdOnDate": "24-10-2024",
  • "changedOnDate": "25-10-2024",
  • "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
  • characteristic-value-any-of
  • equipment-any-of
  • technical-identification-number-any-of
  • maintenance-concept-id-any-of
  • equipment-category-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 (the 'AND' operator will be used between the parameters).

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).

When using the characteristic-value-any-of it is important to URI Encode the input data especially when there are special characters as part of the input:

/equipment?characteristic-value-any-of=%3D17445%2F9818,%3D17433/6333&class-id=L_PART&characteristic-id=L_E3DREF&plant-id=1201&api-version=v1

Update release 1.4.0

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

Update release 1.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 1.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)

Update release 1.7.0

Added property parentEquipmentId.

Update release 1.8.0

Added properties hasUnsafeFailureMode and unsafeFailureModeStatus for failure reports.

Update release 1.12.0

Added property quantityUnitId

Update release 1.15.0

modification-proposal in include-maintenance-record-types now includes modification proposals in the response.

Update release 1.16.0

Added property classId to characteristics.

Added properties manufacturer and modelNumber.

Update release 1.21.0

Added query parameter include-person-responsible, that expands work order response with person responsible.

Update release 1.22.0

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

Update release 1.24.0

Added characteristic-value-any-of, class-id, characteristic-id and plant-id-any-of query parameters. Can be used to search for equipment based on values of a characteristic. In addition, an optional filter on a plant can be supplied.

Added property cmrIndicator for WorkOrders.

Added query parameter equipment-any-of, a wildcard search based on equipment

Update release 1.25.0

Added query parameter include-sub-equipment

Update release 1.26.0

Added query parameter include-status-details. Added properties tagId and tagPlantId

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.31.0

Added properties manufacturerPartNumber, technicalIdentificationNumber, objectWeight and unitOfWeightto response body.

Added query parameter technical-identification-number-any-of to allow searching based on technicalIdentificationNumber.

Update release 1.34.0

Added property linkedEquipment, which can be included in each equipment in the response by using the new query parameter include-linked-equipment.

Added boolean property hasLinkageToEquipment that will be true if the equipment has any linked equipment.

Update release 1.35.0

Added support for including attachments on equipments in the response by setting the new query parameter include-attachments to true.

Added new fields maintenancePlantId, equipmentCategoryId, maintenanceConceptId, createdOnDate and changedOnDate to response body.

Added new filters based on the new fields - maintenancePlantId, equipmentCategoryId, maintenanceConceptId, createdOnDate and changedOnDate.

Update release 1.36.0

Added new properies costs and costsCurrency to preventive work orders.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Removed deprecated property cmrIndicator from work orders. See STRY0261073 in ServiceNow for more details. Added new work order type overHeadMaintenanceWorkOrders to response.

Authorizations:
bearerAuth
query Parameters
equipment-id-any-of
Array of strings (SearchEquipmentEquipmentIdAnyOf)
Example: equipment-id-any-of=11948620

Search based on equipmentIds. Wildcards are supported

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

Search based on serialNumber. Wildcards are supported

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

Search based on partNumber. Wildcards are supported

material-id-any-of
Array of strings (SearchEquipmentMaterialIdAnyOf)
Example: material-id-any-of=854586

Search based on materialId. Wildcards are supported

characteristic-value-any-of
string
Example: characteristic-value-any-of=%3D33814%2F12073

Search based on characteristic values. Must be used in combination with class-id and characteristic-id Wildcards are not supported. Make sure to encode the parameters if they contain special characters.

plant-id-any-of
string
Example: plant-id-any-of=1900,1901,1902

Optional comma separated string array of plant-ids to filter your result to one or more plants (plantId) or maintenance plants (maintenancePlantId). Wildcards are not supported. This query parameter can not be used on its own.

equipment-any-of
string or null >= 3 characters

Optional comma separated string array of equipment descriptions/titles (equipment in response model). Wildcards are supported.

technical-identification-number-any-of
string
Example: technical-identification-number-any-of=D3-0001560

Optional comma separated string array of technical identification numbers (technicalIdentificationNumber in response model). Wildcards are not supported.

characteristic-id
string or null
Example: characteristic-id=L_E3DREF

Required field if characteristic-value-any-of is supplied. Endpoint /characteristics/{class-id} can be used to find characteristic ids

class-id
string or null
Example: class-id=L_PART

Required field if characteristic-value-any-of is supplied.

equipment-category-id-any-of
Array of strings[ items = 1 characters ]

Optional comma separated string array of equipment category Id (equipmentCategoryId in response model). Wildcards are not supported.

maintenance-concept-id-any-of
Array of strings[ items [ 1 .. 10 ] characters ]

Optional comma separated string array of Maintenance Concept Ids (maintenanceConceptId in response model). Wildcards are not supported.

created-before-date
string or null <date> = 10 characters

Latest createdOnDate date to include. Use together with created-after-date to get Equipment created in the given time period.

created-after-date
string or null <date> = 10 characters

Earliest createdOnDate date to include. Use together with created-before-date to get Equipment created in the given time period.

changed-before-date
string or null <date> = 10 characters

Latest changedOnDate date to include. Use together with changed-after-date to get Equipment changed in the given time period.

changed-after-date
string or null <date> = 10 characters

Earliest changedOnDate date to include. Use together with changed-before-date to get Equipment changed in the given time period.

include-maintenance-records
boolean
Default: false

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

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

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 supported types are returned.

include-person-responsible
boolean
Default: false

Include person responsible information in response, for example the email or name of the person responsible. May have a slight performance impact.

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 or if looking up measuring point)

include-sub-equipment
boolean
Default: false

Include child equipment for an equipment. Limit to only the first level childs of the hierarchy.

include-status-details
boolean
Default: false

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

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

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-characteristics
boolean
Default: false

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

include-linked-equipment
boolean
Default: false

Include list of equipment that are physically linked to this equipment.

include-attachments
boolean
Default: false

Include equipment or tag attachments

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&characteristic-value-any-of=SOME_STRING_VALUE&plant-id-any-of=1900%2C1901%2C1902&equipment-any-of=SOME_STRING_VALUE&technical-identification-number-any-of=D3-0001560&characteristic-id=SOME_STRING_VALUE&class-id=SOME_STRING_VALUE&equipment-category-id-any-of=SOME_ARRAY_VALUE&maintenance-concept-id-any-of=SOME_ARRAY_VALUE&created-before-date=SOME_STRING_VALUE&created-after-date=SOME_STRING_VALUE&changed-before-date=SOME_STRING_VALUE&changed-after-date=SOME_STRING_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-person-responsible=SOME_BOOLEAN_VALUE&include-measuring-points=SOME_BOOLEAN_VALUE&include-last-measurement=SOME_BOOLEAN_VALUE&include-sub-equipment=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-work-order-types=SOME_ARRAY_VALUE&include-only-open-work-orders=SOME_BOOLEAN_VALUE&include-characteristics=SOME_BOOLEAN_VALUE&include-linked-equipment=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&per-page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "hasLinkageToEquipment": true,
    • "characteristics": [
      ],
    • "maintenanceRecords": {
      },
    • "measuringPoints": [
      ],
    • "workOrders": {
      },
    • "subEquipment": [
      ],
    • "statuses": [
      ],
    • "linkedEquipment": [
      ],
    • "attachments": [
      ],
    • "manufacturer": "Siemens",
    • "modelNumber": "7397568",
    • "serialNumber": "4500695422-20-003",
    • "partNumber": "10219863",
    • "parentEquipmentId": "11963913",
    • "quantityUnitId": "PC",
    • "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",
    • "tagId": "1A1-A16A",
    • "tagPlantId": "1111",
    • "plannerGroupId": "PL4",
    • "plannerGroup": "WOS support Equip",
    • "manufacturerPartNumber": "PART-123-345",
    • "technicalIdentificationNumber": "D3-0001560",
    • "objectWeight": "100.00",
    • "unitOfWeight": "KG",
    • "maintenancePlantId": "1100",
    • "equipmentCategoryId": "M",
    • "maintenanceConceptId": "TI0740",
    • "createdOnDate": "24-10-2024",
    • "changedOnDate": "25-10-2024",
    • "equipmentId": "11948620",
    • "equipment": "PEDESTAL,TH ISOLAT.SLEEVE,ASSY,10219863",
    • "materialId": "854586"
    }
]

Equipment change log - Search

Overview

Search for equipment changes done recently.

Response

The response contains only minimum information about the change made to the equipment. For more information about each equipment, perform a lookup request using /equipment/{equipment-id}.

Important information

It's not possible to capture all possible recent changes to an equipment. For example, changes to characteristics values are not captured.

Filter: recently-changed-reserved-equipment

With the basis of a subsea work order, check if any of the currently reserved equipment has been changed recently. Only the currently reserved equipment which have been recently changed are returned in the response. Parameters:

  • subsea-work-order-id
  • changed-since-date (includes the provided date in the check)

Filter: recently-changed-equipment

Check if the equipment provided in the request has been changed recently. Only the equipment which have been recently changed are returned in the response. Parameters:

  • equipment-ids (supports comma-separated list)
  • changed-since-date (includes the provided date in the check)
Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchEquipmentChangeLogFilter)
Enum: "recently-changed-reserved-equipment" "recently-changed-equipment"

Filter to limit the work order by

subsea-work-order-id
string

The subsea work order to check if any reserved equipment has been changed recently

equipment-ids
Array of strings

Comma-separated list of equipment to check

changed-since-date
string <date>

Earliest datetime to return changed equipment for

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/equipment-change-log?filter=SOME_STRING_VALUE&subsea-work-order-id=SOME_STRING_VALUE&equipment-ids=SOME_ARRAY_VALUE&changed-since-date=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "equipmentId": "11948620",
    • "hasStatusChanged": false,
    • "hasHeaderDataChanged": false,
    • "hasMaintenanceRecordChanged": false,
    • "hasWorkOrdersChanged": false,
    • "hasEquipmentReservationChanged": true
    }
]

Equipment - Create (raw)

Overview

Create equipment - special intended usage for machine-to-machine integration. Fields are kept in their raw form, and mirror the data model in SAP.

Authorizations:
bearerAuth
Request Body schema: application/json

Create equipment - raw SAP BAPI data input.

valid_time
string
valid_date
string
object (data_general)
object (data_fleet)
object (data_custom)
object (data_specific)

Responses

Request samples

Content type
application/json
{
  • "data_custom": {
    • "manuf_partno": "",
    • "warranty": {
      }
    },
  • "data_fleet": {
    • "fleet_num": "",
    • "fleet_vin": "",
    • "chassis_num": "",
    • "license_num": "",
    • "expiry_date": "2024-01-01",
    • "fleet_hgt": "0.000",
    • "fleet_wid": "0.000",
    • "fleet_len": "0.000",
    • "dim_unit": "",
    • "dim_unit_iso": "",
    • "pri_calc": "",
    • "repla_date": "2024-01-01",
    • "repla_odom": "",
    • "repla_oph": "",
    • "num_axle": "00",
    • "max_occupants": "0000",
    • "card_num": "",
    • "key_num": "",
    • "fleet_use": "",
    • "engine_type": "",
    • "engine_power": "0.000",
    • "unit_power": "",
    • "unit_power_iso": "",
    • "revolutions": "0000000",
    • "engine_cyl": "00",
    • "engine_cap": "0.000",
    • "unit_cap": "",
    • "unit_cap_iso": "",
    • "engine_snr": "",
    • "fuel_pri": "",
    • "fuel_sec": "",
    • "oil_type": "",
    • "gross_wgt": "0.000",
    • "load_wgt": "0.000",
    • "wgt_unit": "",
    • "wgt_unit_iso": "",
    • "load_hgt": "0.000",
    • "load_wid": "0.000",
    • "load_len": "0.000",
    • "load_dim_unit": "",
    • "load_dim_unit_iso": "",
    • "load_vol": "0.000",
    • "vol_unit": "",
    • "vol_unit_iso": "",
    • "no_compart": "00",
    • "speed_max": "0.000",
    • "speed_unit": "",
    • "speed_unit_iso": "",
    • "consump_tol": "",
    • "consump_move": ""
    },
  • "data_specific": {
    • "configmat": "",
    • "material": "",
    • "serialno": "",
    • "equicatgry": "",
    • "batch": "",
    • "mandrawno": "",
    • "delivdate": "2024-01-01",
    • "free_date1": "2024-01-01",
    • "free_note1": "",
    • "free_num1": "000000000",
    • "techid": "",
    • "license": "",
    • "free_date2": "2024-01-01",
    • "free_note2": "",
    • "free_num2": "000000000",
    • "read_cuobj": "000000000000000000",
    • "read_curef": false,
    • "read_supeq": "",
    • "read_floc": "",
    • "inst_pos": "",
    • "configmat_external": "",
    • "configmat_guid": "",
    • "configmat_version": "",
    • "material_external": "",
    • "material_guid": "",
    • "material_version": "",
    • "config_controlInd": "",
    • "ippe_guid": "00000000-0000-0000-0000-000000000000",
    • "techs": "",
    • "func_id": "",
    • "uii": "",
    • "iuid_type": "",
    • "uii_plant": "",
    • "read_maintenance_plan": "",
    • "read_measuring_point": "",
    • "read_valid_from": "2024-01-01",
    • "configmat_long": "",
    • "material_long": ""
    },
  • "data_general": {
    • "authgrp": "",
    • "objecttype": "",
    • "inventory": "",
    • "obj_size": "",
    • "obj_weight": "0.000",
    • "unit_of_wt": "",
    • "unit_iso": "",
    • "acqdate": "2024-01-01",
    • "acquisval": "0.00",
    • "currency": "",
    • "curr_iso": "",
    • "manfacture": "",
    • "mancountry": "",
    • "countr_iso": "",
    • "manserno": "",
    • "manmodel": "",
    • "constyear": "",
    • "constmonth": "",
    • "start_from": "2024-01-01",
    • "planplant": "",
    • "consttype": "",
    • "manparno": "",
    • "plangroup": "",
    • "catprofile": "",
    • "work_ctr": "00000000",
    • "descript": "",
    • "abcindic": "",
    • "sortfield": "",
    • "maintplant": "",
    • "maintloc": "",
    • "maintroom": "",
    • "plsectn": "",
    • "pp_wkctr": "00000000",
    • "bus_area": "",
    • "costcenter": "",
    • "wbs_elem": "000000000000000000000000",
    • "comp_code": "",
    • "asset_no": "",
    • "sub_number": "",
    • "standorder": "",
    • "settlorder": "",
    • "sales_org": "",
    • "distr_chan": "",
    • "division": "",
    • "sales_off": "",
    • "sales_grp": "",
    • "read_crdat": "2024-01-01",
    • "read_crnam": "",
    • "read_chdat": "2024-01-01",
    • "read_chnam": "",
    • "read_adrnr": "",
    • "consttype_external": "",
    • "consttype_guid": "",
    • "consttype_version": "",
    • "read_objnr": "",
    • "shift_report_type": "",
    • "shift_note_notification_type": "",
    • "start_point": "",
    • "end_point": "",
    • "linear_length": "",
    • "linear_unit": "",
    • "first_offset_type_code": "",
    • "first_offset_value": "",
    • "first_offset_unit": "",
    • "second_offset_type_code": "",
    • "second_offset_value": "",
    • "second_offset_unit": "",
    • "second_offset_unit_iso": "",
    • "linear_unit_iso": "",
    • "first_offset_unit_iso": "",
    • "linear_reference_pattern": "",
    • "marker_start_point": "",
    • "marker_distance_start_point": "",
    • "marker_end_point": "",
    • "marker_distance_end_point": "",
    • "marker_distance_unit": "",
    • "marker_distance_unit_iso": "",
    • "consttype_long": "",
    • "end_to": "2024-01-01"
    },
  • "valid_date": null,
  • "valid_time": "PT00H00M00S"
}

Response samples

Content type
application/json
{
  • "equipment": "string",
  • "return_text": "string",
  • "return_commit": {
    • "type": "string",
    • "id": "string",
    • "number": 0,
    • "message": "string",
    • "log_no": "string",
    • "log_msg_no": 0,
    • "message_v1": "string",
    • "message_v2": "string",
    • "message_v3": "string",
    • "message_v4": "string",
    • "parameter": "string",
    • "row": 0,
    • "field": "string",
    • "system": "string"
    },
  • "return_warranty": {
    • "msgty": "string",
    • "msgid": "string",
    • "msgno": "string",
    • "msgv1": "string",
    • "msgv2": "string",
    • "msgv3": "string",
    • "msgv4": "string",
    • "msg_index": 0,
    • "fieldname": "string"
    },
  • "return": {
    • "type": "string",
    • "id": "string",
    • "number": 0,
    • "message": "string",
    • "log_no": "string",
    • "log_msg_no": 0,
    • "message_v1": "string",
    • "message_v2": "string",
    • "message_v3": "string",
    • "message_v4": "string",
    • "parameter": "string",
    • "row": 0,
    • "field": "string",
    • "system": "string"
    },
  • "data_general": {
    • "authgrp": "string",
    • "objecttype": "string",
    • "inventory": "string",
    • "obj_size": "string",
    • "obj_weight": "string",
    • "unit_of_wt": "string",
    • "unit_iso": "string",
    • "acqdate": "string",
    • "acquisval": "string",
    • "currency": "string",
    • "currIso": "string",
    • "manfacture": "string",
    • "mancountry": "string",
    • "countr_iso": "string",
    • "manserno": "string",
    • "manmodel": "string",
    • "constyear": "string",
    • "constmonth": "string",
    • "start_from": "string",
    • "planplant": "string",
    • "consttype": "string",
    • "manparno": "string",
    • "plangroup": "string",
    • "catprofile": "string",
    • "work_ctr": "string",
    • "descript": "string",
    • "abcindic": "string",
    • "sortfield": "string",
    • "maintplant": "string",
    • "maintloc": "string",
    • "maintroom": "string",
    • "plsectn": "string",
    • "pp_wkctr": "string",
    • "bus_area": "string",
    • "costcenter": "string",
    • "wbs_elem": "string",
    • "comp_code": "string",
    • "asset_no": "string",
    • "sub_number": "string",
    • "standorder": "string",
    • "settlorder": "string",
    • "sales_org": "string",
    • "distr_chan": "string",
    • "division": "string",
    • "sales_off": "string",
    • "sales_grp": "string",
    • "read_crdat": "string",
    • "read_crnam": "string",
    • "read_chdat": "string",
    • "read_chnam": "string",
    • "read_adrnr": "string",
    • "consttype_external": "string",
    • "consttype_guid": "string",
    • "consttype_version": "string",
    • "read_objnr": "string",
    • "shift_report_type": "string",
    • "shift_note_notification_type": "string",
    • "start_point": "string",
    • "end_point": "string",
    • "linear_length": "string",
    • "linear_unit": "string",
    • "first_offset_type_code": "string",
    • "first_offset_value": "string",
    • "first_offset_unit": "string",
    • "second_offset_type_code": "string",
    • "second_offset_value": "string",
    • "second_offset_unit": "string",
    • "second_offset_unit_iso": "string",
    • "linear_unit_iso": "string",
    • "first_offset_unit_iso": "string",
    • "linear_reference_pattern": "string",
    • "marker_start_point": "string",
    • "marker_distance_start_point": "string",
    • "marker_end_point": "string",
    • "marker_distance_end_point": "string",
    • "marker_distance_unit": "string",
    • "marker_distance_unit_iso": "string",
    • "consttype_long": "string",
    • "end_to": "string"
    },
  • "data_fleet": {
    • "fleet_num": "string",
    • "fleet_vin": "string",
    • "chassis_num": "string",
    • "license_num": "string",
    • "expiry_date": "string",
    • "fleet_hgt": "string",
    • "fleet_wid": "string",
    • "fleet_len": "string",
    • "dim_unit": "string",
    • "dim_unit_iso": "string",
    • "pri_calc": "string",
    • "repla_date": "string",
    • "repla_odom": "string",
    • "repla_oph": "string",
    • "num_axle": "string",
    • "max_occupants": "string",
    • "card_num": "string",
    • "key_num": "string",
    • "fleet_use": "string",
    • "engine_type": "string",
    • "engine_power": "string",
    • "unit_power": "string",
    • "unit_power_iso": "string",
    • "revolutions": "string",
    • "engine_cyl": "string",
    • "engine_cap": "string",
    • "unit_cap": "string",
    • "unit_cap_iso": "string",
    • "engine_snr": "string",
    • "fuel_pri": "string",
    • "fuel_sec": "string",
    • "oil_type": "string",
    • "gross_wgt": "string",
    • "load_wgt": "string",
    • "wgt_unit": "string",
    • "wgt_unit_iso": "string",
    • "load_hgt": "string",
    • "load_wid": "string",
    • "load_len": "string",
    • "load_dim_unit": "string",
    • "load_dim_unit_iso": "string",
    • "load_vol": "string",
    • "vol_unit": "string",
    • "vol_unit_iso": "string",
    • "no_compart": "string",
    • "speed_max": "string",
    • "speed_unit": "string",
    • "speed_unit_iso": "string",
    • "consump_tol": "string",
    • "consump_move": "string"
    },
  • "data_specific": {
    • "configmat": "string",
    • "material": "string",
    • "serialno": "string",
    • "equicatgry": "string",
    • "batch": "string",
    • "mandrawno": "string",
    • "delivdate": "string",
    • "free_date1": "string",
    • "free_note1": "string",
    • "free_num1": "string",
    • "techid": "string",
    • "license": "string",
    • "free_date2": "string",
    • "free_note2": "string",
    • "free_num2": "string",
    • "read_cuobj": "string",
    • "read_curef": true,
    • "read_supeq": "string",
    • "read_floc": "string",
    • "inst_pos": "string",
    • "configmat_external": "string",
    • "configmat_guid": "string",
    • "configmat_version": "string",
    • "material_external": "string",
    • "material_guid": "string",
    • "material_version": "string",
    • "config_controlInd": "string",
    • "ippe_guid": "string",
    • "techs": "string",
    • "func_id": "string",
    • "uii": "string",
    • "iuid_type": "string",
    • "uii_plant": "string",
    • "read_maintenance_plan": "string",
    • "read_measuring_point": "string",
    • "read_valid_from": "string",
    • "configmat_long": "string",
    • "material_long": "string"
    }
}

Equipment - Change (raw)

Overview

Change equipment - special intended usage for machine-to-machine integration. Fields are kept in their raw form, and mirror the data model in SAP.

Authorizations:
bearerAuth
path Parameters
equipment-id
required
string <= 18 characters

Equipment number

Request Body schema: application/json

Change equipment - raw SAP BAPI data input.

valid_time
string
valid_date
string
object (data_general)
object (data_generalx)
object (data_specificx)
object (data_fleetx)
object (data_fleet)
object (data_custom)
object (data_specific)
object (data_customx)

Responses

Request samples

Content type
application/json
{
  • "data_specificx": {
    • "equipment": "",
    • "configmat": "",
    • "material": "",
    • "serialno": "",
    • "equicatgry": "",
    • "batch": "",
    • "mandrawno": "",
    • "delivdate": "",
    • "free_date1": "",
    • "free_note1": "",
    • "free_num1": "",
    • "techid": "",
    • "license": "",
    • "free_date2": "",
    • "free_note2": "",
    • "free_num2": "",
    • "read_cuobj": "",
    • "read_curef": "",
    • "read_supeq": "",
    • "read_floc": "",
    • "inst_pos": "",
    • "configmat_external": "",
    • "configmat_guid": "",
    • "configmat_version": "",
    • "material_external": "",
    • "material_guid": "",
    • "material_version": "",
    • "ippe_guid": "",
    • "techs": "",
    • "func_id": "",
    • "uii": "",
    • "iuid_type": "",
    • "uii_plant": "",
    • "read_maintenance_plan": "",
    • "read_measuring_point": "",
    • "read_valid_from": "",
    • "configmat_long": "",
    • "material_long": ""
    },
  • "data_fleetx": {
    • "fleet_num": "",
    • "fleet_vin": "",
    • "chassis_num": "",
    • "license_num": "",
    • "expiry_date": "",
    • "fleet_hgt": "",
    • "fleet_wid": "",
    • "fleet_len": "",
    • "dim_unit": "",
    • "dim_unit_iso": "",
    • "pri_calc": "",
    • "repla_date": "",
    • "repla_odom": "",
    • "repla_oph": "",
    • "num_axle": "",
    • "max_occupants": "",
    • "card_num": "",
    • "key_num": "",
    • "fleet_use": "",
    • "engine_type": "",
    • "engine_power": "",
    • "unit_power": "",
    • "unit_power_iso": "",
    • "revolutions": "",
    • "engine_cyl": "",
    • "engine_cap": "",
    • "unit_cap": "",
    • "unit_cap_iso": "",
    • "engine_snr": "",
    • "fuel_pri": "",
    • "fuel_sec": "",
    • "oil_type": "",
    • "gross_wgt": "",
    • "load_wgt": "",
    • "wgt_unit": "",
    • "wgt_unit_iso": "",
    • "load_hgt": "",
    • "load_wid": "",
    • "load_len": "",
    • "load_dim_unit": "",
    • "load_dim_unit_iso": "",
    • "load_vol": "",
    • "vol_unit": "",
    • "vol_unit_iso": "",
    • "no_compart": "",
    • "speed_max": "",
    • "speed_unit": "",
    • "speed_unit_iso": "",
    • "consump_tol": "",
    • "consump_move": ""
    },
  • "data_fleet": {
    • "fleet_num": "",
    • "fleet_vin": "",
    • "chassis_num": "",
    • "license_num": "",
    • "expiry_date": "2024-01-01",
    • "fleet_hgt": "0.000",
    • "fleet_wid": "0.000",
    • "fleet_len": "0.000",
    • "dim_unit": "",
    • "dim_unit_iso": "",
    • "pri_calc": "",
    • "repla_date": "2024-01-01",
    • "repla_odom": "",
    • "repla_oph": "",
    • "num_axle": "00",
    • "max_occupants": "0000",
    • "card_num": "",
    • "key_num": "",
    • "fleet_use": "",
    • "engine_type": "",
    • "engine_power": "0.000",
    • "unit_power": "",
    • "unit_power_iso": "",
    • "revolutions": "0000000",
    • "engine_cyl": "00",
    • "engine_cap": "0.000",
    • "unit_cap": "",
    • "unit_cap_iso": "",
    • "engine_snr": "",
    • "fuel_pri": "",
    • "fuel_sec": "",
    • "oil_type": "",
    • "gross_wgt": "0.000",
    • "load_wgt": "0.000",
    • "wgt_unit": "",
    • "wgt_unit_iso": "",
    • "load_hgt": "0.000",
    • "load_wid": "0.000",
    • "load_len": "0.000",
    • "load_dim_unit": "",
    • "load_dim_unit_iso": "",
    • "load_vol": "0.000",
    • "vol_unit": "",
    • "vol_unit_iso": "",
    • "no_compart": "00",
    • "speed_max": "0.000",
    • "speed_unit": "",
    • "speed_unit_iso": "",
    • "consump_tol": "",
    • "consump_move": ""
    },
  • "data_custom": {
    • "manuf_partno": "",
    • "warranty": {
      }
    },
  • "data_specific": {
    • "configmat": "",
    • "material": "",
    • "serialno": "",
    • "equicatgry": "",
    • "batch": "",
    • "mandrawno": "",
    • "delivdate": "2024-01-01",
    • "free_date1": "2024-01-01",
    • "free_note1": "",
    • "free_num1": "000000000",
    • "techid": "",
    • "license": "",
    • "free_date2": "2024-01-01",
    • "free_note2": "",
    • "free_num2": "000000000",
    • "read_cuobj": "000000000000000000",
    • "read_curef": false,
    • "read_supeq": "",
    • "read_floc": "",
    • "inst_pos": "",
    • "configmat_external": "",
    • "configmat_guid": "",
    • "configmat_version": "",
    • "material_external": "",
    • "material_guid": "",
    • "material_version": "",
    • "config_controlInd": "",
    • "ippe_guid": "00000000-0000-0000-0000-000000000000",
    • "techs": "",
    • "func_id": "",
    • "uii": "",
    • "iuid_type": "",
    • "uii_plant": "",
    • "read_maintenance_plan": "",
    • "read_measuring_point": "",
    • "read_valid_from": "2024-01-01",
    • "configmat_long": "",
    • "material_long": ""
    },
  • "data_customx": {
    • "manuf_partno": "",
    • "warranty": ""
    },
  • "data_general": {
    • "authgrp": "",
    • "objecttype": "",
    • "inventory": "",
    • "obj_size": "",
    • "obj_weight": "0.000",
    • "unit_of_wt": "",
    • "unit_iso": "",
    • "acqdate": "2024-01-01",
    • "acquisval": "0.00",
    • "currency": "",
    • "curr_iso": "",
    • "manfacture": "",
    • "mancountry": "",
    • "countr_iso": "",
    • "manserno": "",
    • "manmodel": "",
    • "constyear": "",
    • "constmonth": "",
    • "start_from": "2024-01-01",
    • "planplant": "",
    • "consttype": "",
    • "manparno": "",
    • "plangroup": "",
    • "catprofile": "",
    • "work_ctr": "00000000",
    • "descript": "",
    • "abcindic": "",
    • "sortfield": "",
    • "maintplant": "",
    • "maintloc": "",
    • "maintroom": "",
    • "plsectn": "",
    • "pp_wkctr": "00000000",
    • "bus_area": "",
    • "costcenter": "",
    • "wbs_elem": "000000000000000000000000",
    • "comp_code": "",
    • "asset_no": "",
    • "sub_number": "",
    • "standorder": "",
    • "settlorder": "",
    • "sales_org": "",
    • "distr_chan": "",
    • "division": "",
    • "sales_off": "",
    • "sales_grp": "",
    • "read_crdat": "2024-01-01",
    • "read_crnam": "",
    • "read_chdat": "2024-01-01",
    • "read_chnam": "",
    • "read_adrnr": "",
    • "consttype_external": "",
    • "consttype_guid": "",
    • "consttype_version": "",
    • "read_objnr": "",
    • "shift_report_type": "",
    • "shift_note_notification_type": "",
    • "start_point": "",
    • "end_point": "",
    • "linear_length": "",
    • "linear_unit": "",
    • "first_offset_type_code": "",
    • "first_offset_value": "",
    • "first_offset_unit": "",
    • "second_offset_type_code": "",
    • "second_offset_value": "",
    • "second_offset_unit": "",
    • "second_offset_unit_iso": "",
    • "linear_unit_iso": "",
    • "first_offset_unit_iso": "",
    • "linear_reference_pattern": "",
    • "marker_start_point": "",
    • "marker_distance_start_point": "",
    • "marker_end_point": "",
    • "marker_distance_end_point": "",
    • "marker_distance_unit": "",
    • "marker_distance_unit_iso": "",
    • "consttype_long": "",
    • "end_to": "2024-01-01"
    },
  • "valid_date": "2024-01-01",
  • "valid_time": "PT00H00M00S"
}

Response samples

Content type
application/json
{
  • "return_text": "string",
  • "return_commit": {
    • "type": "string",
    • "id": "string",
    • "number": 0,
    • "message": "string",
    • "log_no": "string",
    • "log_msg_no": 0,
    • "message_v1": "string",
    • "message_v2": "string",
    • "message_v3": "string",
    • "message_v4": "string",
    • "parameter": "string",
    • "row": 0,
    • "field": "string",
    • "system": "string"
    },
  • "return_warranty": {
    • "msgty": "string",
    • "msgid": "string",
    • "msgno": "string",
    • "msgv1": "string",
    • "msgv2": "string",
    • "msgv3": "string",
    • "msgv4": "string",
    • "msg_index": 0,
    • "fieldname": "string"
    },
  • "return": {
    • "type": "string",
    • "id": "string",
    • "number": 0,
    • "message": "string",
    • "log_no": "string",
    • "log_msg_no": 0,
    • "message_v1": "string",
    • "message_v2": "string",
    • "message_v3": "string",
    • "message_v4": "string",
    • "parameter": "string",
    • "row": 0,
    • "field": "string",
    • "system": "string"
    },
  • "data_general": {
    • "authgrp": "string",
    • "objecttype": "string",
    • "inventory": "string",
    • "obj_size": "string",
    • "obj_weight": "string",
    • "unit_of_wt": "string",
    • "unit_iso": "string",
    • "acqdate": "string",
    • "acquisval": "string",
    • "currency": "string",
    • "currIso": "string",
    • "manfacture": "string",
    • "mancountry": "string",
    • "countr_iso": "string",
    • "manserno": "string",
    • "manmodel": "string",
    • "constyear": "string",
    • "constmonth": "string",
    • "start_from": "string",
    • "planplant": "string",
    • "consttype": "string",
    • "manparno": "string",
    • "plangroup": "string",
    • "catprofile": "string",
    • "work_ctr": "string",
    • "descript": "string",
    • "abcindic": "string",
    • "sortfield": "string",
    • "maintplant": "string",
    • "maintloc": "string",
    • "maintroom": "string",
    • "plsectn": "string",
    • "pp_wkctr": "string",
    • "bus_area": "string",
    • "costcenter": "string",
    • "wbs_elem": "string",
    • "comp_code": "string",
    • "asset_no": "string",
    • "sub_number": "string",
    • "standorder": "string",
    • "settlorder": "string",
    • "sales_org": "string",
    • "distr_chan": "string",
    • "division": "string",
    • "sales_off": "string",
    • "sales_grp": "string",
    • "read_crdat": "string",
    • "read_crnam": "string",
    • "read_chdat": "string",
    • "read_chnam": "string",
    • "read_adrnr": "string",
    • "consttype_external": "string",
    • "consttype_guid": "string",
    • "consttype_version": "string",
    • "read_objnr": "string",
    • "shift_report_type": "string",
    • "shift_note_notification_type": "string",
    • "start_point": "string",
    • "end_point": "string",
    • "linear_length": "string",
    • "linear_unit": "string",
    • "first_offset_type_code": "string",
    • "first_offset_value": "string",
    • "first_offset_unit": "string",
    • "second_offset_type_code": "string",
    • "second_offset_value": "string",
    • "second_offset_unit": "string",
    • "second_offset_unit_iso": "string",
    • "linear_unit_iso": "string",
    • "first_offset_unit_iso": "string",
    • "linear_reference_pattern": "string",
    • "marker_start_point": "string",
    • "marker_distance_start_point": "string",
    • "marker_end_point": "string",
    • "marker_distance_end_point": "string",
    • "marker_distance_unit": "string",
    • "marker_distance_unit_iso": "string",
    • "consttype_long": "string",
    • "end_to": "string"
    },
  • "data_fleet": {
    • "fleet_num": "string",
    • "fleet_vin": "string",
    • "chassis_num": "string",
    • "license_num": "string",
    • "expiry_date": "string",
    • "fleet_hgt": "string",
    • "fleet_wid": "string",
    • "fleet_len": "string",
    • "dim_unit": "string",
    • "dim_unit_iso": "string",
    • "pri_calc": "string",
    • "repla_date": "string",
    • "repla_odom": "string",
    • "repla_oph": "string",
    • "num_axle": "string",
    • "max_occupants": "string",
    • "card_num": "string",
    • "key_num": "string",
    • "fleet_use": "string",
    • "engine_type": "string",
    • "engine_power": "string",
    • "unit_power": "string",
    • "unit_power_iso": "string",
    • "revolutions": "string",
    • "engine_cyl": "string",
    • "engine_cap": "string",
    • "unit_cap": "string",
    • "unit_cap_iso": "string",
    • "engine_snr": "string",
    • "fuel_pri": "string",
    • "fuel_sec": "string",
    • "oil_type": "string",
    • "gross_wgt": "string",
    • "load_wgt": "string",
    • "wgt_unit": "string",
    • "wgt_unit_iso": "string",
    • "load_hgt": "string",
    • "load_wid": "string",
    • "load_len": "string",
    • "load_dim_unit": "string",
    • "load_dim_unit_iso": "string",
    • "load_vol": "string",
    • "vol_unit": "string",
    • "vol_unit_iso": "string",
    • "no_compart": "string",
    • "speed_max": "string",
    • "speed_unit": "string",
    • "speed_unit_iso": "string",
    • "consump_tol": "string",
    • "consump_move": "string"
    },
  • "data_specific": {
    • "configmat": "string",
    • "material": "string",
    • "serialno": "string",
    • "equicatgry": "string",
    • "batch": "string",
    • "mandrawno": "string",
    • "delivdate": "string",
    • "free_date1": "string",
    • "free_note1": "string",
    • "free_num1": "string",
    • "techid": "string",
    • "license": "string",
    • "free_date2": "string",
    • "free_note2": "string",
    • "free_num2": "string",
    • "read_cuobj": "string",
    • "read_curef": true,
    • "read_supeq": "string",
    • "read_floc": "string",
    • "inst_pos": "string",
    • "configmat_external": "string",
    • "configmat_guid": "string",
    • "configmat_version": "string",
    • "material_external": "string",
    • "material_guid": "string",
    • "material_version": "string",
    • "config_controlInd": "string",
    • "ippe_guid": "string",
    • "techs": "string",
    • "func_id": "string",
    • "uii": "string",
    • "iuid_type": "string",
    • "uii_plant": "string",
    • "read_maintenance_plan": "string",
    • "read_measuring_point": "string",
    • "read_valid_from": "string",
    • "configmat_long": "string",
    • "material_long": "string"
    }
}

Documents

Documents are an important part of the operation & maintenance process. They may be connected to master data such as Tag and Equipment or to transactional data such as maintenance records.

Document - Search

Overview

Search documents and include related information such as characteristics, materials, equipment and attachments.

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

  • document-type-any-of
  • document-number-any-of
  • characteristic-value-any-of

N.B The link in the attachment object is in the first iteration always routed via the equipment attachment endpoint. In a future release we will implement a general endpoint documents/attachment/{attachment-id} for downloading attachments which will be displayed here.

Update release 1.31.0

Added include-inventory-count query parameter to include equipmentInventoryCount and materialInventoryCount property in the response.

Added support for including more business objects: include-tags, include-measuring-points and include-maintenance-records.

Update release 1.32.0

Added include-url-references query parameter to include URL references in the response.

Added properties statusId and statusText to the response.

Added properties partNumber & manufacturer to material in the response.

Update release 1.35.0

Added new fields maintenancePlantId, equipmentCategoryId, maintenanceConceptId, createdOnDate and changedOnDate for equipment.

Authorizations:
bearerAuth
query Parameters
document-type-any-of
Array of strings
Example: document-type-any-of=A01

Search based on documentType.

document-number-any-of
Array of strings
Example: document-number-any-of=10004099768

Search based on documentNumber.

characteristic-value-any-of
string
Example: characteristic-value-any-of=%3D33814%2F12073

Search based on characteristic values. Must be used in combination with class-id and characteristic-id Wildcards are not supported. Make sure to encode the parameters if they contain special characters.

characteristic-id
string or null
Example: characteristic-id=L_E3DREF

Required field if characteristic-value-any-of is supplied. Endpoint /characteristics/{class-id} can be used to find characteristic ids

class-id
string or null
Example: class-id=L_PART

Required field if characteristic-value-any-of is supplied.

include-characteristics
boolean
Default: false

Include characteristics'

include-material
boolean
Default: false

Include material related to the object

include-equipment
boolean
Default: false

Include equipment related to the object

include-tags
boolean
Default: false

Include tags.

include-maintenance-records
boolean
Default: false

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

include-measuring-points
boolean
Default: false

Include measuring points for this tag

include-attachments
boolean
Default: false

Include equipment or tag attachments

include-inventory-count
boolean
Default: false

Include inventory count for the document to include equipmentInventoryCount and materialInventoryCount property in the response.

include-url-references
boolean
Default: false

Include URL references for object

per-page
integer
Default: 50

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/documents?document-type-any-of=SOME_ARRAY_VALUE&document-number-any-of=SOME_ARRAY_VALUE&characteristic-value-any-of=SOME_STRING_VALUE&characteristic-id=SOME_STRING_VALUE&class-id=SOME_STRING_VALUE&include-characteristics=SOME_BOOLEAN_VALUE&include-material=SOME_BOOLEAN_VALUE&include-equipment=SOME_BOOLEAN_VALUE&include-tags=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-measuring-points=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-inventory-count=SOME_BOOLEAN_VALUE&include-url-references=SOME_BOOLEAN_VALUE&per-page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "characteristics": [
      ],
    • "equipment": [
      ],
    • "material": [
      ],
    • "tags": [
      ],
    • "measuringPoints": [
      ],
    • "maintenanceRecords": [
      ],
    • "attachments": [
      ],
    • "equipmentInventoryCount": 1,
    • "materialInventoryCount": 1,
    • "urlReferences": [
      ],
    • "documentId": "10004099768-A01-000-00",
    • "documentTitle": "This is a Title",
    • "documentNumber": "10004099768",
    • "documentType": "A01",
    • "documentPart": "000",
    • "documentVersion": "00",
    • "documentCreatedDate": "2024-02-23",
    • "statusId": "CA",
    • "statusText": "Cancelled"
    }
]

Document - Create

Overview

Create a new document. This document will not be linked to any business object, but can be linked afterwards by calling POST /document-relationships/{relationship-type}/{source-id}.

Note: Documents of type 'B30' may only be created with one of the following statusIds:

  • CV (Current Version)
  • WO (Working)
  • CA (Cancelled)

Update release 1.32.0

Added property statusId to the request body schema to allow setting the status of a document during its creation.

Added properties statusId and statusText to the response.

Authorizations:
bearerAuth
Request Body schema: application/json

Document to create

documentTitle
required
string

Document title providing additional information

documentType
required
string <= 3 characters

Internal type id of the document

documentPart
string <= 3 characters

Section of a document which is maintained as an independent document

documentVersion
string <= 3 characters

Identifies the version of the document

documentNumber
string <= 25 characters

Internal document number

statusId
string = 2 characters

Id of the Document status

Responses

Request samples

Content type
application/json
Example
{
  • "documentTitle": "This is a document",
  • "documentType": "B30"
}

Response samples

Content type
application/json
{
  • "documentId": "10004099768-A01-000-00",
  • "documentTitle": "This is a Title",
  • "documentNumber": "10004099768",
  • "documentType": "A01",
  • "documentPart": "000",
  • "documentVersion": "00",
  • "documentCreatedDate": "2024-02-23",
  • "statusId": "CA",
  • "statusText": "Cancelled"
}

Document - Lookup

Overview

Lookup document by id. Use the different include parameters to include additional information about the document. POST document-relationships/{relationship-type}/{source-id} can be used to link the document to a business object.

N.B The link in the attachment object is in the first iteration always routed via the equipment attachment endpoint. In a future release we will implement a general endpoint documents/attachment/{attachment-id} for downloading attachments which will be displayed here.

Update release 1.31.0

Added include-inventory-count query parameter to include equipmentInventoryCount and materialInventoryCount property in the response.

Added support for including more business objects: include-tags, include-measuring-points and include-maintenance-records.

Update release 1.32.0

Added include-url-references query parameter to include URL references in the response.

Added changedDateTime for attachments.

Added properties statusId and statusText to the response.

Added properties partNumber & manufacturer to material in the response.

Update release 1.35.0

Added new fields maintenancePlantId, equipmentCategoryId, maintenanceConceptId, createdOnDate and changedOnDate for equipment.

Authorizations:
bearerAuth
path Parameters
document-id
required
string
Example: 10004099768-A01-000-00

Unique id for the document to be used against endpoints for the /documents resource

query Parameters
include-characteristics
boolean
Default: false

Include characteristics'

include-material
boolean
Default: false

Include material related to the object

include-equipment
boolean
Default: false

Include equipment related to the object

include-tags
boolean
Default: false

Include tags.

include-maintenance-records
boolean
Default: false

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

include-measuring-points
boolean
Default: false

Include measuring points for this tag

include-attachments
boolean
Default: false

Include equipment or tag attachments

include-inventory-count
boolean
Default: false

Include inventory count for the document to include equipmentInventoryCount and materialInventoryCount property in the response.

include-url-references
boolean
Default: false

Include URL references for object

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/documents/10004099768-A01-000-00?include-characteristics=SOME_BOOLEAN_VALUE&include-material=SOME_BOOLEAN_VALUE&include-equipment=SOME_BOOLEAN_VALUE&include-tags=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-measuring-points=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-inventory-count=SOME_BOOLEAN_VALUE&include-url-references=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "characteristics": [
    • {
      }
    ],
  • "equipment": [
    • {
      }
    ],
  • "material": [
    • {
      }
    ],
  • "tags": [
    • {
      }
    ],
  • "measuringPoints": [
    • {
      }
    ],
  • "maintenanceRecords": [
    • {
      }
    ],
  • "attachments": [
    • {
      }
    ],
  • "equipmentInventoryCount": 1,
  • "materialInventoryCount": 1,
  • "urlReferences": [
    • {
      }
    ],
  • "documentId": "10004099768-A01-000-00",
  • "documentTitle": "This is a Title",
  • "documentNumber": "10004099768",
  • "documentType": "A01",
  • "documentPart": "000",
  • "documentVersion": "00",
  • "documentCreatedDate": "2024-02-23",
  • "statusId": "CA",
  • "statusText": "Cancelled"
}

Document - Update

Overview

Update a Document.

Supports updating the following properties:

  • statusId
Authorizations:
bearerAuth
path Parameters
document-id
required
string
Example: 10004099768-A01-000-00

Unique id of the document that will be updated

Request Body schema: application/json

The information to be updated

Array
op
required
string
Value: "replace"

JSON Patch operation according to RFC6902

path
required
string
Value: "/statusId"

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:

  • /statusId - The status of the document. Possible values: CA = Canceled, CV = Current Version, WO = Working.

Responses

Request samples

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

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Documents - Add new relationships to a document

Overview

Add new relationships between a single document and one or more business objects.

Example url: /documents/10004099768-A01-000-00?api-version=v1

This endpoint returns no response data.

Authorizations:
bearerAuth
path Parameters
document-id
required
string
Example: 10004099768-A01-000-00

Can be found by sending a GET request to: /document-relationships/{relationship-type}/{source-id}

Request Body schema: application/json

Business objects to add a relationship to from the specified documentId

Array
sourceId
required
string

Reference to the specific element the relationship will be defined for. The specific format for this value will depend on the relationshipType type.

  • For tags, combine tagPlantId, -, and tagId. Ex. 1100-AE5566.
  • For equipment, use equipmentId. Ex. 11948620.
  • For measuring points, use measuringPointId. Ex. 14626974.
  • For maintenance records, use maintenanceRecordId. Ex. 45939208.
  • For materials, use materialId. Ex. 741466
relationshipType
required
string
Enum: "tags" "equipment" "measuring-points" "maintenance-records" "materials"

The type of business object for the specified sourceId.

Responses

Request samples

Content type
application/json
[
  • {
    • "sourceId": "1100-AE5566",
    • "relationshipType": "tags"
    },
  • {
    • "sourceId": "11948620",
    • "relationshipType": "equipment"
    },
  • {
    • "sourceId": "14626974",
    • "relationshipType": "measuring-points"
    },
  • {
    • "sourceId": "45939208",
    • "relationshipType": "maintenance-records"
    },
  • {
    • "sourceId": "741466",
    • "relationshipType": "materials"
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Document - Add URL reference

Overview

Add a URL reference to a document.

URL references are stored in the Document Management System (DMS).

The following characteristicId can be used:

  • DISCIPLINE_B30
  • ADDITIONAL_REFERENCE_B30
  • DATE_OF_DOCUMENT_B30 (Date of photo/report)

Existing URL references are available through the lookup endpoints for documents. Examples: GET /documents/{document-id}?include-url-references=true&api-version=v1

Authorizations:
bearerAuth
path Parameters
document-id
required
string
Example: 10004099768-A01-000-00

Can be found by sending a GET request to: /document-relationships/{relationship-type}/{source-id}

Request Body schema: application/json

Define URL reference to add

url
required
string <= 255 characters

URL for the reference

title
string <= 40 characters
Default: "IOC annotations"

Title describing the URL reference

Array of objects (CharacteristicsItem)

Characteristics containing additional metadata

Responses

Request samples

Content type
application/json
Example
{}

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Document - Remove URL reference

Overview

Remove a URL reference from an existing Document.

Existing URL references can be found through the lookup endpoints for documents. Example: GET /documents/{document-id}?include-url-references=true&api-version=v1

Authorizations:
bearerAuth
path Parameters
document-id
required
string
Example: 10004099768-A01-000-00

Can be found by sending a GET request to: /document-relationships/{relationship-type}/{source-id}

url-reference-id
required
string

Id of the URL reference

Responses

Request samples

curl --request DELETE \
  --url https://api-test.gateway.equinor.com/maintenance-api/documents/%7Bdocument-id%7D/url-references/%7Burl-reference-id%7D \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Document relationships - Get relationships

Overview

Get relationship between a business object and documents.

Example urls:

  • Tags: /document-relationships/tags/1100-AE5566?api-version=v1
  • Equipment: /document-relationships/equipment/11948620?api-version=v1
  • Measuring points: /document-relationships/measuring-points/14626974?api-version=v1
  • Maintenance records: /document-relationships/maintenance-records/45939208?api-version=v1
  • Materials: /document-relationships/materials/741466?api-version=v1

Update release 1.27.0

Added support for business objects: Equipment, Measuring points and Maintenance records.

Added include-characteristics and include-attachments.

Added property documentTitle to the response.

Update release 1.28.0

Added property documentCreatedDate to the response.

Update release 1.30.0

Added possibility to search by document relationship to material.

Update release 1.32.0

Added changedDateTime for attachments.

Authorizations:
bearerAuth
path Parameters
relationship-type
required
string
Enum: "tags" "equipment" "measuring-points" "maintenance-records" "materials"

Type of business object to replace relationships to documents for

source-id
required
string
Example: 1100-AE5566

Reference to the specific element the relationship will be defined for. The specific format for this value will depend on the relationship-type type.

  • For tags, combine tagPlantId, -, and tagId. Ex. 1100-AE5566.
  • For equipment, use equipmentId. Ex. 11948620.
  • For measuring points, use measuringPointId. Ex. 14626974.
  • For maintenance records, use maintenanceRecordId. Ex. 45939208.
  • For materials, use materialId. Ex. 741466
query Parameters
include-characteristics
boolean
Default: false

Include characteristics'

include-attachments
boolean
Default: false

Include equipment or tag attachments

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/document-relationships/%7Brelationship-type%7D/%7Bsource-id%7D?include-characteristics=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "documentId": "10004099768-A01-000-00",
    • "documentNumber": "10004099768",
    • "documentType": "A01",
    • "documentPart": "000",
    • "documentVersion": "00",
    • "attachments": [
      ],
    • "characteristics": [
      ],
    • "documentTitle": "Tag location,XA+XBRT+CM+Test M",
    • "documentCreatedDate": "2024-02-23"
    }
]

Document relationships - Add new document relationships to a business object

Overview

Add new relationships between a single business object and one or more documents.

The documents specified in the the request must contain one of:

  • documentId
  • documentNumber, documentType, documentPart, documentVersion
  • documentNumber, documentType

Example urls:

  • Tags: /document-relationships/tags/1100-AE5566?api-version=v1
  • Equipment: /document-relationships/equipment/11948620?api-version=v1
  • Measuring points: /document-relationships/measuring-points/14626974?api-version=v1
  • Maintenance records: /document-relationships/maintenance-records/45939208?api-version=v1
  • Materials: /document-relationships/materials/741466?api-version=v1

This endpoint returns no response data.

Update release 1.27.0

Added support for business objects: Equipment, Measuring points and Maintenance records.

Update release 1.30.0

Added possibility to create document relationship to material.

Authorizations:
bearerAuth
path Parameters
relationship-type
required
string
Enum: "tags" "equipment" "measuring-points" "maintenance-records" "materials"

Type of business object to replace relationships to documents for

source-id
required
string
Example: 1100-AE5566

Reference to the specific element the relationship will be defined for. The specific format for this value will depend on the relationship-type type.

  • For tags, combine tagPlantId, -, and tagId. Ex. 1100-AE5566.
  • For equipment, use equipmentId. Ex. 11948620.
  • For measuring points, use measuringPointId. Ex. 14626974.
  • For maintenance records, use maintenanceRecordId. Ex. 45939208.
  • For materials, use materialId. Ex. 741466
Request Body schema: application/json

Documents to add a relationship to from the sourceId

Array
documentId
string

Unique id for the document to be used against endpoints for the /documents resource

documentNumber
string <= 25 characters

Internal document number

documentType
string <= 3 characters

Internal type id of the document

documentPart
string or null <= 3 characters

Section of a document which is maintained as an independent document

documentVersion
string or null <= 3 characters

Identifies the version of the document

Responses

Request samples

Content type
application/json
[
  • {
    • "documentNumber": "10004099768",
    • "documentType": "A01",
    • "documentPart": "000",
    • "documentVersion": "00"
    },
  • {
    • "documentNumber": "10003430212",
    • "documentType": "A01"
    },
  • {
    • "documentId": "10004099768-A01-000-00"
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Document relationships - Replace relationships

Overview

Replace existing relationship between a business object and documents.

The documents specified in the the request must contain one of:

  • documentId
  • documentNumber, documentType, documentPart, documentVersion
  • documentNumber, documentType

Example urls:

  • Tags: /document-relationships/tags/1100-AE5566?api-version=v1
  • Equipment: /document-relationships/equipment/11948620?api-version=v1
  • Measuring points: /document-relationships/measuring-points/14626974?api-version=v1
  • Maintenance records: /document-relationships/maintenance-records/45939208?api-version=v1
  • Materials: /document-relationships/materials/741466?api-version=v1

This endpoint returns no response data.

Important information

NOTE: Take special care when using this endpoint. The PUT operation will remove any document relationships from the source-id(for example tags) which are not present in the request body. Normally, the corresponding POST operation should be used as it only adds new relationships and never removes existing ones.

Update release 1.27.0

Added support for business objects: Equipment, Measuring points and Maintenance records.

Update release 1.30.0

Added possibility to replace document relationship to material.

Authorizations:
bearerAuth
path Parameters
relationship-type
required
string
Enum: "tags" "equipment" "measuring-points" "maintenance-records" "materials"

Type of business object to replace relationships to documents for

source-id
required
string
Example: 1100-AE5566

Reference to the specific element the relationship will be defined for. The specific format for this value will depend on the relationship-type type.

  • For tags, combine tagPlantId, -, and tagId. Ex. 1100-AE5566.
  • For equipment, use equipmentId. Ex. 11948620.
  • For measuring points, use measuringPointId. Ex. 14626974.
  • For maintenance records, use maintenanceRecordId. Ex. 45939208.
  • For materials, use materialId. Ex. 741466
Request Body schema: application/json

Documents to replace a relationship to from the sourceId

Array
documentId
string

Unique id for the document to be used against endpoints for the /documents resource

documentNumber
string <= 25 characters

Internal document number

documentType
string <= 3 characters

Internal type id of the document

documentPart
string or null <= 3 characters

Section of a document which is maintained as an independent document

documentVersion
string or null <= 3 characters

Identifies the version of the document

Responses

Request samples

Content type
application/json
[
  • {
    • "documentNumber": "10004099768",
    • "documentType": "A01",
    • "documentPart": "000",
    • "documentVersion": "00"
    },
  • {
    • "documentNumber": "10003430212",
    • "documentType": "A01"
    },
  • {
    • "documentId": "10004099768-A01-000-00"
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Document relationships - Remove relationships

Overview

Remove one or more relationships between a business object and documents.

The documents specified in the the request must contain one of:

  • documentId
  • documentNumber, documentType, documentPart, documentVersion
  • documentNumber, documentType

Example urls:

  • Tags: /document-relationships/tags/1100-AE5566?api-version=v1
  • Equipment: /document-relationships/equipment/11948620?api-version=v1
  • Measuring points: /document-relationships/measuring-points/14626974?api-version=v1
  • Maintenance records: /document-relationships/maintenance-records/45939208?api-version=v1
  • Materials: /document-relationships/materials/741466?api-version=v1

This endpoint returns no response data.

Update release 1.27.0

Added support for business objects: Equipment, Measuring points and Maintenance records.

Update release 1.30.0

Added possibility to delete document relationship to material.

Authorizations:
bearerAuth
path Parameters
relationship-type
required
string
Enum: "tags" "equipment" "measuring-points" "maintenance-records" "materials"

Type of business object to replace relationships to documents for

source-id
required
string
Example: 1100-AE5566

Reference to the specific element the relationship will be defined for. The specific format for this value will depend on the relationship-type type.

  • For tags, combine tagPlantId, -, and tagId. Ex. 1100-AE5566.
  • For equipment, use equipmentId. Ex. 11948620.
  • For measuring points, use measuringPointId. Ex. 14626974.
  • For maintenance records, use maintenanceRecordId. Ex. 45939208.
  • For materials, use materialId. Ex. 741466
Request Body schema: application/json

Documents to remove a relationship to from the sourceId

Array
documentId
string

Unique id for the document to be used against endpoints for the /documents resource

documentNumber
string <= 25 characters

Internal document number

documentType
string <= 3 characters

Internal type id of the document

documentPart
string or null <= 3 characters

Section of a document which is maintained as an independent document

documentVersion
string or null <= 3 characters

Identifies the version of the document

Responses

Request samples

Content type
application/json
[
  • {
    • "documentNumber": "10004099768",
    • "documentType": "A01",
    • "documentPart": "000",
    • "documentVersion": "00"
    },
  • {
    • "documentNumber": "10003430212",
    • "documentType": "A01"
    },
  • {
    • "documentId": "10004099768-A01-000-00"
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Document - Add characteristics

Add new characteristics to an existing document.

Characteristics are grouped into a class such as FL_MAINT_STRATEGY. Classes can be assigned to a document and specific characteristics such as CRIT_PRODUCTION will then be available for that specific document.

With this endpoint, the consumer can assign classes to a document and define initial values for some of the characteristics in the classes.

Note that if a given characteristic has already been added to this document, repeated adding will result in overwriting of the characteristic value. If you want to update a characteristic the PATCH endpoint can be used.

Important information

Use GET document-relationships/{relationship-type}/{source-id} to view characteristics with value after using this endpoint.

Authorizations:
bearerAuth
path Parameters
document-id
required
string
Example: 10004099768-A01-000-00

Can be found by sending a GET request to: /document-relationships/{relationship-type}/{source-id}

Request Body schema: application/json

Characteristics to add to the document.

Array
classId
required
string

The class which contains the characteristics

Array of objects (DocumentCharacteristicAdd)

Specific characteristics in the class to define a value for

Responses

Request samples

Content type
application/json
[
  • {
    • "classId": "DETAILS_B30",
    • "characteristics": [
      ]
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Document - Update characteristic

Update existing values of characteristics on a document. If the characteristics does not exist, a 404 - Not Found is returned.

Important information

Use GET document-relationships/{relationship-type}/{source-id} to view characteristics with value after using this endpoint.

Authorizations:
bearerAuth
path Parameters
document-id
required
string
Example: 10004099768-A01-000-00

Can be found by sending a GET request to: /document-relationships/{relationship-type}/{source-id}

Request Body schema: application/json

Characteristics to be updated, based on JsonPatch standard

Array
required
Array of objects (CharacteristicsJsonPatch)
characteristicId
required
string
classId
required
string

Responses

Request samples

Content type
application/json
[
  • {
    • "characteristicId": "CRIT_COST",
    • "classId": "FL_MAINT_STRATEGY",
    • "patchDocument": [
      ]
    },
  • {
    • "characteristicId": "CRIT_CRITICALITY",
    • "classId": "FL_MAINT_CONC",
    • "patchDocument": [
      ]
    },
  • {
    • "characteristicId": "M_DATE_LAST_MAINTENANCE",
    • "classId": "SURFACE_MAINTENANC",
    • "patchDocument": [
      ]
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Document - Attachment upload

Upload attachment to a B30 document.

Limitations of Attachment upload endpoints:

  • No support for parallel calls (uploading multiple attachments at once).
  • Maximum file size is 60 MB. Files between 60.0MB - 99.9MB will give a 400 error. Files larger than 100MB will result in a `413 Request Entity Too Large' Error in HTML. This is due to constraints in the underlying system and is outside of our control.
Authorizations:
bearerAuth
path Parameters
document-id
required
string
Example: 10004099768-A01-000-00

Can be found by sending a GET request to: /document-relationships/{relationship-type}/{source-id}

Request Body schema: multipart/form-data
files
Array of strings <binary> [ 1 .. 5 ] items

Responses

Request samples

curl --request POST \
  --url https://api-test.gateway.equinor.com/maintenance-api/documents/%7Bdocument-id%7D/attachments \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
  --header 'content-type: multipart/form-data'

Response samples

Content type
application/json
{}

Document - Attachment download

Overview

Download a single attachment from a specific document.

Authorizations:
bearerAuth
path Parameters
document-id
required
string
Example: 10004099768-A01-000-00

Can be found by sending a GET request to: /document-relationships/{relationship-type}/{source-id}

attachment-id
required
string

Responses

Request samples

curl --request GET \
  --url https://api-test.gateway.equinor.com/maintenance-api/documents/%7Bdocument-id%7D/attachments/%7Battachment-id%7D \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{}

Document - Remove attachment

Overview

Remove an attachment from an existing DMS document linked to a maintenance record.

This endpoint returns no response data. Perform a lookup on the linked maintenance record to get updated information.

Currently, this endpoint only supports removing attachments from documents of type 'B30' & 'C05'.

Update release 1.36.0

Added support for removing attachments from documents of type 'C05'.

Authorizations:
bearerAuth
path Parameters
document-id
required
string
Example: 10004099768-A01-000-00

Can be found by sending a GET request to: /document-relationships/{relationship-type}/{source-id}

attachment-id
required
string

Responses

Request samples

curl --request DELETE \
  --url https://api-test.gateway.equinor.com/maintenance-api/documents/%7Bdocument-id%7D/attachments/%7Battachment-id%7D \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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 1.5.0

Added createdDateTime for attachments.

Update release v.1.6.0

Added 301 response.

Added isOpen to lookup response.

Update release 1.10.0

Added query parameter include-url-references.

Update release 1.11.0

Added properties createdById,createdBy and createdByEmail. createdById will always be have value in response. createdBy and createdByEmail will only have value in response if the include-created-by-details query parameter is true.

Update release 1.15.0

Added property documentTitle to urlReferences.

Update release 1.16.0

urlReferences and attachments now include properties documentType, documentNumber and documentTitle.

Update release 1.17.0

Added query parameter include-measurements.

Update release 1.24.0

urlReferences and attachments now include the property documentCreatedDate

Update release 1.26.0

Added query parameters include-additional-metadata and include-additional-data-characteristics Added additionalMetadata to response

Update release 1.27.0

Added maintenanceRecordTypeId to the response.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.31.0

Added isReadonlyText property to activities in the response.

Update release 1.32.0

Added changedDateTime for attachments.

Authorizations:
bearerAuth
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

include-created-by-details
boolean
Default: false

Include name and email of user represented in createdById. If not supplied, createdBy and createdByEmail will have null value.

include-url-references
boolean
Default: false

Include URL references for activity report. See POST /maintenance-record-relationships/{record-id}/url-references

include-measurements
boolean
Default: false

Include related measurements

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&include-created-by-details=SOME_BOOLEAN_VALUE&include-url-references=SOME_BOOLEAN_VALUE&include-measurements=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "maintenanceRecordTypeId": "activityReport",
  • "createdById": "433937",
  • "createdBy": "Dagfinn Parnas",
  • "createdByEmail": "dapa@equinor.com",
  • "activities": [
    • {
      }
    ],
  • "attachments": [
    • {
      }
    ],
  • "urlReferences": [
    • {
      }
    ],
  • "statuses": [
    • {
      }
    ],
  • "measurements": [
    • {
      }
    ],
  • "recordId": "45894100",
  • "tagId": "PX",
  • "tagPlantId": "1100",
  • "equipmentId": "12410072",
  • "title": "Endre skalering på PDT",
  • "text": "Multi-line text based on template",
  • "isOpen": true,
  • "workCenterId": "PPMAUT",
  • "workCenterPlantId": "1100",
  • "activeStatusIds": "OSNO CRTE",
  • "createdDateTime": "2023-11-28T06:06:14Z"
}

Activity report - Update

Overview

Update key fields of an activity report.

Important information

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

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.32.0

Added ability to append text with advanced formatting. See the heading Resource text in the description for more info.

Update release 1.33.0

Added possibility to prepend text. Use the operation prepend in the request body to prepend text to the current text.

Authorizations:
bearerAuth
path Parameters
record-id
required
string

The recordId of the activity report.

Request Body schema: application/json

Details on how to update the Activity Report

Array
op
required
string
Enum: "replace" "append" "prepend"

JSON Patch operation according to RFC6902

Operation replace is suitable for the following properties:

  • /title
  • /text

Operation append is suitable for the following properties:

  • /text

Operation prepend is suitable for the following properties:

  • /text
path
required
string
Enum: "/title" "/text"

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

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "op": "replace",
    • "path": "/title",
    • "value": "Material failure"
    }
]

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": "PPMAUT",
  • "workCenterPlantId": "1100",
  • "activeStatusIds": "OSNO CRTE",
  • "createdDateTime": "2023-11-28T06:06:14Z"
}

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.

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.

Update release 1.26.0

Added createdDateTime to create endpoint.

Update release 1.27.0

Added support for creating activity report for technical feedback with PSD.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.31.0

Removed requirement for providing reasonId as part of the technicalFeedbackParameters when source is TechnicalFeedback.

Authorizations:
bearerAuth
Request Body schema: application/json

Activity report to create

title
required
string
text
required
string or null
tagId
string or null

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

createdDateTime
string or null <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

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

object

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": "PPMAUT",
  • "workCenterPlantId": "1100",
  • "activeStatusIds": "OSNO CRTE",
  • "createdDateTime": "2023-11-28T06:06:14Z"
}

Activity report - Add additional metadata

Overview

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

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

Authorizations:
bearerAuth
path Parameters
record-id
required
string

The recordId of the activity 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
{}

Activity report - Update status

Update status of activity report.

The statuses available for the activity 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

The endpoints supports status deactivation such as:

  • NOPR - Notification in process
  • 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 activity 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:
bearerAuth
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
Example
[
  • {
    • "op": "replace",
    • "path": "/isActive",
    • "value": true
    }
]

Response samples

Content type
application/json
{}

Activity report metadata - Add characteristics

Add new characteristics to an existing activity report metadata.

Characteristics are grouped into a class such as FL_MAINT_STRATEGY.

With this endpoint, the consumer can assign classes metadata and define initial values for some of the characteristics in the classes.

Note that if a given characteristic has already been added to this metadata, repeated adding will result in overwriting of the characteristic value. If you want to update a characteristic the PATCH endpoint can be used.

Important information

Use /maintenance-records/activity-reports/{record-id}?include-additional-metadata=true&include-additional-data-characteristics=true&api-version=v1 to view characteristics with value after using this endpoint.

Authorizations:
bearerAuth
path Parameters
record-id
required
string
metadata-id
required
string
Request Body schema: application/json

Characteristics to add to metadata.

Array
classId
required
string

The class which contains the characteristics

Array of objects (CharacteristicAdd)

Specific characteristics in the class to define a value for

Responses

Request samples

Content type
application/json
[
  • {
    • "classId": "SURFACE",
    • "characteristics": [
      ]
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Activity report metadata - Update characteristic

Update existing values of characteristics on a activity report metadata. If the characteristics does not exist, a 404 - Not Found is returned.

Authorizations:
bearerAuth
path Parameters
record-id
required
string
metadata-id
required
string
Request Body schema: application/json

Characteristics to be updated, based on JsonPatch standard

Array
required
Array of objects (CharacteristicsJsonPatch)
characteristicId
required
string
classId
required
string

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "characteristicId": "CRIT_CRITICALITY",
    • "classId": "FL_MAINT_STRATEGY",
    • "patchDocument": [
      ]
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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=....

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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=....

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
path Parameters
record-id
required
string

id of the activity 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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Activity report - Attachment download

Overview

Download single attachment for activity report

Known limitations

It's not possible to download attachments of type .txt which are stored in the GOS container of the ERP system. Such requests will result in a HTTP 404 Not found response.

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{}

Activity report - Attachment upload

Overview

Upload attachment for activity report

Limitations of Attachment upload endpoints:

  • No support for parallel calls (uploading multiple attachments at once).
  • Maximum file size is 60 MB. Files between 60.0MB - 99.9MB will give a 400 error. Files larger than 100MB will result in a `413 Request Entity Too Large' Error in HTML. This is due to constraints in the underlying system and is outside of our control.

Update release 1.28.0

Added the optional parameter document-id as a query parameter. If document-id is supplied, the attachment will be uploaded specifically to this document.

Authorizations:
bearerAuth
path Parameters
record-id
required
string
query Parameters
document-id
string or null
Default: null
Example: document-id=10004099768-A01-000-00

Can be found by sending a GET request to: /document-relationships/{relationship-type}/{source-id}

Request Body schema: multipart/form-data
files
Array of strings <binary> [ 1 .. 5 ] items

Responses

Request samples

curl --request POST \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/activity-reports/%7Brecord-id%7D/attachments?document-id=10004099768-A01-000-00' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
  --header 'content-type: multipart/form-data'

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 1.5.0

Added createdDateTime for attachments.

Update release 1.6.0

Added 301 response.

Update release 1.10.0

Added query parameter include-url-references.

Update release 1.11.0

Added quantity for tasks.

Added properties createdById,createdBy and createdByEmail. createdById will always be have value in response. createdBy and createdByEmail will only have value in response if the include-created-by-details query parameter is true.

Update release 1.15.0

Added property documentTitle to urlReferences.

Update release 1.16.0

urlReferences and attachments now include properties documentType, documentNumber and documentTitle.

Update release 1.17.0

Added query parameter include-measurements.

Update release 1.19.0

Added query parameter include-additional-data-characteristics.

Update release 1.21.0

Added property area to tag details.

Update release 1.24.0

urlReferences and attachments now include the property documentCreatedDate

Update release 1.26.0

tagDetails object now includes the new field maintenanceConceptId

Update release 1.27.0

Added maintenanceRecordTypeId to the response.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Added properties codingGroupId and codingId.

Update release 1.31.0

Added isReadonlyText property to activities in the response.

Update release 1.32.0

Added changedDateTime for attachments.

Added a query parameter include-task-list and taskList in the response. When a work order is created based on this notification, operations from the taskList will be automatically copied into the work order.

Update release 1.33.0

Added taskResponsible and taskResponsibleEmail for tasks in response when the new query parameter include-task-responsible-details is set to true.

Update release 1.35.0

Added workOrderTypeId and workOrderId to the response. workOrderId includes the id of work orders, not constrained to only showing corrective work orders. correctiveWorkOrderId has been corrected to only show the work order id if it is a corrective work order.

Update release 1.37.0

Added support for new work order type overheadMaintenanceWorkOrders to workOrderTypeId enum of allowed types.

Authorizations:
bearerAuth
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

include-additional-data-characteristics
boolean
Default: false

Include characteristics for additional metadata

include-created-by-details
boolean
Default: false

Include name and email of user represented in createdById. If not supplied, createdBy and createdByEmail will have null value.

include-url-references
boolean
Default: false

Include URL references for failure report. See POST /maintenance-record-relationships/{record-id}/url-references

include-measurements
boolean
Default: false

Include related measurements

include-task-list
boolean
Default: false

Include task list with task list operations

include-task-responsible-details
boolean
Default: false

Include task responsible details. Can have a slight performance impact.

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&include-additional-data-characteristics=SOME_BOOLEAN_VALUE&include-created-by-details=SOME_BOOLEAN_VALUE&include-url-references=SOME_BOOLEAN_VALUE&include-measurements=SOME_BOOLEAN_VALUE&include-task-list=SOME_BOOLEAN_VALUE&include-task-responsible-details=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "maintenanceRecordTypeId": "failureReport",
  • "createdById": "433937",
  • "createdBy": "Dagfinn Parnas",
  • "createdByEmail": "dapa@equinor.com",
  • "statuses": [
    • {
      }
    ],
  • "activities": [
    • {
      }
    ],
  • "tasks": [
    • {
      }
    ],
  • "attachments": [
    • {
      }
    ],
  • "urlReferences": [
    • {
      }
    ],
  • "tagDetails": {
    • "isInactive": false,
    • "parentTagId": "AT5566",
    • "systemId": "BS",
    • "system": "PM-PROG.SYST.",
    • "ABCId": "5",
    • "ABC": "Crit.=M & Red.=B",
    • "locationId": "W14",
    • "location": "METERING DECK",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    },
  • "additionalMetadata": [
    • {
      }
    ],
  • "measurements": [
    • {
      }
    ],
  • "taskList": [
    • {
      }
    ],
  • "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": "PPMAUT",
  • "workCenter": "AI Automasjon",
  • "workCenterPlantId": "1100",
  • "planningPlantId": "1100",
  • "plannerGroupId": "PPM",
  • "plannerGroup": "Plattform PV",
  • "locationId": "CD2",
  • "location": "METERING DECK",
  • "systemId": "11",
  • "failureImpactId": "D",
  • "failureImpact": "Unwell (InF)",
  • "priorityId": "D",
  • "isBreakdown": false,
  • "hasUnsafeFailureMode": true,
  • "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",
  • "codingId": "NC",
  • "codingGroupId": "PMMK",
  • "correctiveWorkOrderExist": false,
  • "correctiveWorkOrderId": "24871954",
  • "workOrderTypeId": "correctiveWorkOrder",
  • "workOrderId": "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.

The following endpoints can be used to find possible values for input:

  1. workCenterId - /plants/{plant-id}?include-work-centers
  2. plannerGroupId - /plants/{plant-id}?include-planner-groups=true
  3. locationId - /plants/{plant-id}?include-locations=true
  4. detectionMethodId, failureMechanismId, failureModeId - /plants/{plant-id}/tags/{tag-id}?include-catalog-profile-details=true or /equipment/{equipment-id}?include-catalog-profile-details=true
  5. codingId - /catalogs/{catalog-id}/code-groups

Important information

To avoid accidentally 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

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Added properties codingGroupId and codingId.

Update release 1.29.0

Deprecated update of the property failureImpactId. See Deprecation for more information.

Update release 1.32.0

Added ability to append text with advanced formatting. See the heading Resource text in the description for more info.

Update release 1.33.0

Added possibility to prepend text. Use the operation prepend in the request body to prepend text to the current text.

Update release 1.35.0

Added workOrderTypeId and workOrderId to the response. workOrderId includes the id of work orders, not constrained to only showing corrective work orders. correctiveWorkOrderId has been corrected to only show the work order id if it is a corrective work order.

Update release 1.37.0

Added support for new work order type overheadMaintenanceWorkOrders to workOrderTypeId enum of allowed types.

Authorizations:
bearerAuth
path Parameters
record-id
required
string

The recordId of the failure report.

Request Body schema: application/json

Details on how to update the Failure Report

Array
op
required
string
Enum: "replace" "append" "prepend"

JSON Patch operation according to RFC6902

Operation replace is suitable for the following properties:

  • /tagId
  • /tagPlantId
  • /equipmentId
  • /failureImpactId
  • /failureModeId
  • /failureModeGroupId
  • /detectionMethodId
  • /detectionMethodGroupId
  • /failureMechanismId
  • /failureMechanismGroupId
  • /codingId
  • /codingGroupId
  • /workCenterId
  • /workCenterPlantId
  • /locationId
  • /title
  • /text
  • /failureStartDateTime
  • /failureEndDateTime
  • /plannerGroupId

Operation append is suitable for the following properties:

  • /text

Operation prepend is suitable for the following properties:

  • /text
path
required
string
Enum: "/tagId" "/tagPlantId" "/equipmentId" "/failureImpactId" "/failureModeId" "/failureModeGroupId" "/detectionMethodId" "/detectionMethodGroupId" "/failureMechanismId" "/failureMechanismGroupId" "/codingId" "/codingGroupId" "/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": "PPMAUT",
  • "workCenter": "AI Automasjon",
  • "workCenterPlantId": "1100",
  • "planningPlantId": "1100",
  • "plannerGroupId": "PPM",
  • "plannerGroup": "Plattform PV",
  • "locationId": "CD2",
  • "location": "METERING DECK",
  • "systemId": "11",
  • "failureImpactId": "D",
  • "failureImpact": "Unwell (InF)",
  • "priorityId": "D",
  • "isBreakdown": false,
  • "hasUnsafeFailureMode": true,
  • "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",
  • "codingId": "NC",
  • "codingGroupId": "PMMK",
  • "correctiveWorkOrderExist": false,
  • "correctiveWorkOrderId": "24871954",
  • "workOrderTypeId": "correctiveWorkOrder",
  • "workOrderId": "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 Assessment 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:
bearerAuth
path Parameters
record-id
required
string

The recordId of the failure report.

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

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
application/json-patch+json
Example
[
  • {
    • "op": "replace",
    • "path": "/isActive",
    • "value": true
    }
]

Response samples

Content type
application/json
{}

Failure report - Attachment download

Overview

Download single attachment for failure report

Known limitations

It's not possible to download attachments of type .txt which are stored in the GOS container of the ERP system. Such requests will result in a HTTP 404 Not found response.

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{}

Failure report - Attachment upload

Upload attachment for failure report

Limitations of Attachment upload endpoints:

  • No support for parallel calls (uploading multiple attachments at once).
  • Maximum file size is 60 MB. Files between 60.0MB - 99.9MB will give a 400 error. Files larger than 100MB will result in a `413 Request Entity Too Large' Error in HTML. This is due to constraints in the underlying system and is outside of our control.

Update release 1.17.0

Added documentTitle as input. If supplied, the title is added to all files that are sent in the current request. If different titles are wanted for different files, they have to be sent in separately (one file, one document title per request). When supplying a document-title, a new document will always be created for the attachment

Update release 1.19.0

Added ability to supply document-title as a query parameter. If documentTitle is supplied both as form-data and query parameter, the query parameter will take precedence. document-title should be Uri encoded.

Update release 1.28.0

Added the optional parameter document-id as a query parameter. If document-id is supplied, the attachment will be uploaded specifically to this document. document-title and document-id cannot be supplied together.

Authorizations:
bearerAuth
path Parameters
record-id
required
string
query Parameters
document-title
string or null
Default: null
Example: document-title=Document%20Title
document-id
string or null
Default: null
Example: document-id=10004099768-A01-000-00

Can be found by sending a GET request to: /document-relationships/{relationship-type}/{source-id}

Request Body schema: multipart/form-data
files
required
Array of strings <binary> [ 1 .. 5 ] items
document-title
string or null
Default: null

Responses

Request samples

curl --request POST \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/failure-reports/%7Brecord-id%7D/attachments?document-title=Document%2520Title&document-id=10004099768-A01-000-00' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
  --header 'content-type: multipart/form-data'

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 performing a subsequent request 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
  • work-center-ids (optional)

Filter: open-by-plant

Find open Failure reports by plant Parameters:

  • plant-id
  • location-id (optional)
  • system-id (optional)
  • work-center-ids (optional)

Update release 1.1.0

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

Update release 1.8.0

Added properties hasUnsafeFailureMode and unsafeFailureModeStatus.

Update release 1.16.0

Added property work-center-ids to filters recent-status-activations and open-by-plant

Added property workCenterId

Update release 1.35.0

Added workOrderTypeId and workOrderId to the response. workOrderId includes the id of work orders, not constrained to only showing corrective work orders. correctiveWorkOrderId has been corrected to only show the work order id if it is a corrective work order.

Update release 1.37.0

Added support for new work order type overheadMaintenanceWorkOrders to workOrderTypeId enum of allowed types.

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

Filter to limit the failure reports by

status-id
string

Status

plant-id
string = 4 characters
Example: plant-id=1200

Plant identifier

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

work-center-ids
Array of strings

Comma separated list of work center IDs to filter by

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&work-center-ids=SOME_ARRAY_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

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,
    • "hasUnsafeFailureMode": true,
    • "unsafeFailureModeStatus": "OUTSTANDING",
    • "locationId": "W14",
    • "systemId": "11",
    • "failureModeId": "STC",
    • "failureModeGroupId": "PMMO-080",
    • "detectionMethodId": "3",
    • "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",
    • "workCenterId": "POMMEC",
    • "workOrderTypeId": "correctiveWorkOrder",
    • "workOrderId": "24871954"
    }
]

Failure report - Create

Create new failure report.

The following endpoints can be used to find possible values for input:

  1. workCenterId - /plants/{plant-id}?include-work-centers
  2. plannerGroupId - /plants/{plant-id}?include-planner-groups=true
  3. locationId - /plants/{plant-id}?include-locations=true
  4. detectionMethodId, failureMechanismId, failureModeId - /plants/{plant-id}/tags/{tag-id}?include-catalog-profile-details=true or /equipment/{equipment-id}?include-catalog-profile-details=true
  5. codingId - /catalogs/{catalog-id}/code-groups

Important information

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

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

Added 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

Update release 1.7.0

Implemented create with property equipmentId.

Update release 1.15.0

Fixed issue with relatedWorkOrder source ObjectList.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Added properties codingGroupId and codingId.

Update release 1.31.0

Removed requirement for providing reasonId as part of the technicalFeedbackParameters when source is TechnicalFeedback.

Update release 1.35.0

Added workOrderTypeId and workOrderId to the response. workOrderId includes the id of work orders, not constrained to only showing corrective work orders. correctiveWorkOrderId has been corrected to only show the work order id if it is a corrective work order.

Update release 1.37.0

Added support for overheadMaintenanceWorkOrders.

Authorizations:
bearerAuth
Request Body schema: application/json

Failure report to create

title
required
string
text
required
string
failureImpactId
required
string or null (failureImpactId)
Enum: "D" "S" "U" "X"

FailureImpactId:

  • D - Dead
  • S - Seriously ill
  • U - Unwell
  • X - No failure - Other needs
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

equipmentId
string

Required to input either tag or equipment

isBreakdown
boolean
failureMechanismId
string
failureMechanismGroupId
string
codingId
string or null

General classification of failure reports, for example used for lifting equipment control

codingGroupId
string or null

Group for general classification of failure reports

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 when the failure started

failureEndDateTime
string <date-time>

The point in time when the failure was 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": "PPMAUT",
  • "workCenter": "AI Automasjon",
  • "workCenterPlantId": "1100",
  • "planningPlantId": "1100",
  • "plannerGroupId": "PPM",
  • "plannerGroup": "Plattform PV",
  • "locationId": "CD2",
  • "location": "METERING DECK",
  • "systemId": "11",
  • "failureImpactId": "D",
  • "failureImpact": "Unwell (InF)",
  • "priorityId": "D",
  • "isBreakdown": false,
  • "hasUnsafeFailureMode": true,
  • "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",
  • "codingId": "NC",
  • "codingGroupId": "PMMK",
  • "correctiveWorkOrderExist": false,
  • "correctiveWorkOrderId": "24871954",
  • "workOrderTypeId": "correctiveWorkOrder",
  • "workOrderId": "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 0.8.0

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

Update release 1.15.0

Added response body for 201 response

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.31.0

Added isReadonlyText property to the response.

Authorizations:
bearerAuth
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
[
  • {
    • "activityId": "12",
    • "title": "Lubricated parts",
    • "text": "Smørt deler\nStrammet bolter\n",
    • "isReadonlyText": true,
    • "activityCodeId": "A50",
    • "activityCode": "Lubrication",
    • "activityCodeGroupId": "PM-GENE1",
    • "activityCodeGroup": "PM: General Actions (E)",
    • "startDateTime": "2019-08-24T14:15:22Z",
    • "endDateTime": "2019-08-24T14:15:22Z"
    }
]

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=....

Update release 1.8.0

Response type change to return the created tasks.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
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

Max-length of 40 characters

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 or null <date-time>
plannedEndDateTime
string or null <date-time>

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
[
  • {
    • "taskId": "12",
    • "sortField": "01",
    • "title": "Teknisk avklaringsbehov",
    • "text": "Behov for å identifisere historikk ifra AO\n",
    • "activeStatusIds": "TSRL CRTE",
    • "isCompleted": false,
    • "taskCodeId": "1020",
    • "taskCode": "Technical clarification needed",
    • "taskCodeGroupId": "PM-M2",
    • "taskCodeGroup": "M2 Notification Tasks",
    • "taskResponsibleType": "",
    • "taskResponsibleId": "433937",
    • "plannedStartDateTime": "2019-08-24T14:15:22Z",
    • "plannedEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "completedDateTime": "2019-08-24T14:15:22Z",
    • "quantity": 5
    }
]

Failure report - Update task

Overview

Update fields of an existing task for failure report.

To find tasks available on a failure report, use /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.

To change status of a task, use endpoint /maintenance-records/failure-reports/{record-id}/tasks/{task-id}/statuses/{status-id}

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
path Parameters
record-id
required
string

id of the failure report

task-id
required
string

id of the task

Request Body schema: application/json

Task to update

Array
op
required
string
Value: "replace"

JSON Patch operation according to RFC6902

path
required
string
Enum: "/title" "/text" "/taskCodeId" "/taskCodeGroupId" "/taskResponsibleEmail" "/plannedStartDateTime" "/plannedEndDateTime" "/sortField"

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

Responses

Request samples

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

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Failure report - Update task status

Overview

Update status of an existing task for failure report.

To find tasks available 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.

Now it is possible to activate following statuses:

  • TSRL Task Released
  • TSCO Task Completed
  • TSSC Task successful

It is possible to activate and deactivate following statuses:

  • TCMP WF when task completed
  • RTND Returned - Wait for info
  • CANC Cancelled

Update release 1.36.0

Enabled activation and deactivation of user statuses like TCMP - WF when task completed, RTND - Returned - Wait for info and CANC - Cancelled

Authorizations:
bearerAuth
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=....

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Failure report - Extend required end date

Overview

Extend the required end date of the failure report. This endpoint should only be executed by people with 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 when using 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.

Update release 1.12.0

Bugfix - Created activity text and activity code must be read-only.

Update release 1.15.0

Added response schema for 201 success

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.31.0

Added isReadonlyText property to the response.

Authorizations:
bearerAuth
path Parameters
record-id
required
string

id of the failure report

Request Body schema: application/json

Extended end date-activity to be created on the 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
{
  • "activityId": "12",
  • "title": "Lubricated parts",
  • "text": "Smørt deler\nStrammet bolter\n",
  • "isReadonlyText": true,
  • "activityCodeId": "A50",
  • "activityCode": "Lubrication",
  • "activityCodeGroupId": "PM-GENE1",
  • "activityCodeGroup": "PM: General Actions (E)",
  • "startDateTime": "2019-08-24T14:15:22Z",
  • "endDateTime": "2019-08-24T14:15:22Z"
}

Failure report - Change failure impact

Overview

Change failure impact of the failure report. This endpoint should only be executed by people with 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 when using this endpoint.

An activity for the failure report will be created by this call and the priorityId, requiredStartDate, and requiredEndDate will be recalculated.

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.

Update release 1.31.0

Added isReadonlyText property to the response.

Authorizations:
bearerAuth
path Parameters
record-id
required
string

id of the failure report

Request Body schema: application/json

New failure impact - activity to be created on the failure report.

failureImpactId
required
string or null (failureImpactId)
Enum: "D" "S" "U" "X"

FailureImpactId:

  • D - Dead
  • S - Seriously ill
  • U - Unwell
  • X - No failure - Other needs
riskAssessmentTitle
required
string

Title of the activity

riskAssessmentText
required
string

The text should describe the risk assessment done

Responses

Request samples

Content type
application/json
{
  • "failureImpactId": "S",
  • "riskAssessmentTitle": "Risk vurdering for utsettelse",
  • "riskAssessmentText": "Risk vurdert nøye\nVedlikehold kan utsettes"
}

Response samples

Content type
application/json
{
  • "activityId": "12",
  • "title": "Lubricated parts",
  • "text": "Smørt deler\nStrammet bolter\n",
  • "isReadonlyText": true,
  • "activityCodeId": "A50",
  • "activityCode": "Lubrication",
  • "activityCodeGroupId": "PM-GENE1",
  • "activityCodeGroup": "PM: General Actions (E)",
  • "startDateTime": "2019-08-24T14:15:22Z",
  • "endDateTime": "2019-08-24T14:15:22Z"
}

Failure report - Override priority

Overview

Override the priorityId value of a failure report. The priorityId was initially calculated based on failureImpactId and the ABCId of the tag/equipment when the failure report was created. See GL1561 - Work orders and notifications types for more details.

This endpoint should only be executed by people with 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 when using this endpoint.

The activityCodeId defines the reason for overriding the priority

  • A111 = Incorrect ABC
  • A112 = Abnormal situation
  • A113 = Dummy FL/Missing FL

An activity for the failure report will be created by this call.

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:
bearerAuth
path Parameters
record-id
required
string

id of the failure report

Request Body schema: application/json

Extended end date-activity to be created on the failure report.

priorityId
required
string
Enum: "L" "M" "H" "U" "D"

Priority

  • L - Low priority
  • M - Medi. priority
  • H - High priority
  • U - Unprioritized
  • D - Done
riskAssessmentTitle
required
string

Title of the risk assessment done for the priority override

riskAssessmentText
required
string

The text should describe the risk assessment done

activityCodeId
required
string
Enum: "A111" "A112" "A113"

The activity code defines the reason for the override. A111 = Incorrect ABC, A112 = Abnormal situation and A113 = Dummy FL/Missing FL

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
{
  • "priorityId": "M",
  • "riskAssessmentTitle": "Risk vurdering for endring av prioritet",
  • "riskAssessmentText": "Risk vurdert nøye\nVedlikehold kan utsettes",
  • "activityCodeId": "A111",
  • "activityCodeGroupId": "PM-ACB-1"
}

Response samples

Content type
application/json
{
  • "activityId": "12",
  • "title": "Lubricated parts",
  • "text": "Smørt deler\nStrammet bolter\n",
  • "isReadonlyText": true,
  • "activityCodeId": "A50",
  • "activityCode": "Lubrication",
  • "activityCodeGroupId": "PM-GENE1",
  • "activityCodeGroup": "PM: General Actions (E)",
  • "startDateTime": "2019-08-24T14:15:22Z",
  • "endDateTime": "2019-08-24T14:15:22Z"
}

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:
bearerAuth
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:
bearerAuth
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
{}

Failure report metadata - Add characteristics

Add new characteristics to an existing failure report metadata.

Characteristics are grouped into a class such as FL_MAINT_STRATEGY.

With this endpoint, the consumer can assign classes metadata and define initial values for some of the characteristics in the classes.

Note that if a given characteristic has already been added to this metadata, repeated adding will result in overwriting of the characteristic value. If you want to update a characteristic the PATCH endpoint can be used.

Important information

Use /maintenance-records/failure-reports/{record-id}?include-additional-metadata=true&include-additional-data-characteristics=true&api-version=v1 to view characteristics with value after using this endpoint.

Authorizations:
bearerAuth
path Parameters
record-id
required
string
metadata-id
required
string
Request Body schema: application/json

Characteristics to add to metadata.

Array
classId
required
string

The class which contains the characteristics

Array of objects (CharacteristicAdd)

Specific characteristics in the class to define a value for

Responses

Request samples

Content type
application/json
[
  • {
    • "classId": "SURFACE",
    • "characteristics": [
      ]
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Failure report metadata - Update characteristic

Update existing values of characteristics on a failure report metadata. If the characteristics does not exist, a 404 - Not Found is returned.

Authorizations:
bearerAuth
path Parameters
record-id
required
string
metadata-id
required
string
Request Body schema: application/json

Characteristics to be updated, based on JsonPatch standard

Array
required
Array of objects (CharacteristicsJsonPatch)
characteristicId
required
string
classId
required
string

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "characteristicId": "CRIT_CRITICALITY",
    • "classId": "FL_MAINT_STRATEGY",
    • "patchDocument": [
      ]
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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 automation systems'. This request looks up a single Modification proposal.

Update release 1.5.0

Added createdDateTime for attachments.

Update release 1.6.0

Added 301 response.

Update release 1.9.0

Renamed property plannerGroupPlantId to planningPlantId.

Update release 1.11.0

Added quantity for tasks.

Added properties createdById,createdBy and createdByEmail. createdById will always be have value in response. createdBy and createdByEmail will only have value in response if the include-created-by-details query parameter is true.

Update release 1.16.0

attachments now include properties documentType, documentNumber and documentTitle.

Update release 1.24.0

attachments now include the property documentCreatedDate

Update release 1.27.0

Added maintenanceRecordTypeId to the response.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.32.0

Added changedDateTime for attachments.

Update release 1.33.0

Added taskResponsible and taskResponsibleEmail for tasks in response when the new query parameter include-task-responsible-details is set to true.

Authorizations:
bearerAuth
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

include-created-by-details
boolean
Default: false

Include name and email of user represented in createdById. If not supplied, createdBy and createdByEmail will have null value.

include-task-responsible-details
boolean
Default: false

Include task responsible details. Can have a slight performance impact.

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&include-created-by-details=SOME_BOOLEAN_VALUE&include-task-responsible-details=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "createdById": "433937",
  • "createdBy": "Dagfinn Parnas",
  • "createdByEmail": "dapa@equinor.com",
  • "attachments": [
    • {
      }
    ],
  • "tasks": [
    • {
      }
    ],
  • "statuses": [
    • {
      }
    ],
  • "maintenanceRecordTypeId": "modificationProposal",
  • "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",
  • "planningPlantId": "1100",
  • "plannerGroupPlantId": "1100",
  • "workCenterId": "PPMAUT",
  • "workCenterPlantId": "1100",
  • "requiredStartDate": "2019-08-24",
  • "requiredEndDate": "2019-08-24",
  • "createdDateTime": "2019-08-24T14:15:22Z",
  • "completedDateTime": "2019-08-24T14:15:22Z"
}

Modification proposal - Update

Overview

Update key fields of a modification proposal.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

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

Details on how to update modification proposal

Array
op
required
string
Value: "replace"

JSON Patch operation according to RFC6902

path
required
string
Enum: "/tagId" "/tagPlantId" "/equipmentId" "/workCenterId" "/workCenterPlantId" "/locationId" "/title" "/text" "/planningPlantId" "/plannerGroupId" "/reasonId" "/priorityId" "/reasonGroupId"

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": "Enkel endring skalering på PDT"
    },
  • {
    • "op": "replace",
    • "path": "/text",
    • "value": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nMaterial tretthet..\n"
    },
  • {
    • "op": "replace",
    • "path": "/priorityId",
    • "value": "L"
    }
]

Response samples

Content type
application/json
{}

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 automation systems'.

Important information

The following attributes rely on master data:

  • reasonGroupId and reasonId - Use values from endpoint /maintenance-records/reason-codes
  • plannerGroupId and planningPlantId - 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.

Update release 1.9.0

Renamed property plannerGroupPlantId to planningPlantId.

Update release 1.21.0

Add property isExcludedFromWorkOrderPlan to operations model.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
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 - Low priority
tagId
string or null

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
planningPlantId
string
plannerGroupPlantId
string
Deprecated
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",
  • "planningPlantId": "1100",
  • "plannerGroupPlantId": "1100",
  • "workCenterId": "PPMAUT",
  • "workCenterPlantId": "1100",
  • "requiredStartDate": "2019-08-24",
  • "requiredEndDate": "2019-08-24",
  • "createdDateTime": "2019-08-24T14:15:22Z",
  • "completedDateTime": "2019-08-24T14:15:22Z"
}

Modification proposal - Update status

Update status of modification proposal.

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

Important information

The endpoints supports status activation such as:

  • RQAS - Ready Quality Assurance
  • RPRI - Ready Prioritization
  • APRI - Approved Prioritization
  • EXWO - Execution by Work Order
  • FPPR - Finished Project Proposal
  • RFDM - Ready for Decision Meeting
  • NOPO - Notification postponed
  • CANC - Cancelled
  • PROJ - Project Consideration
  • RISK - Risk Matrix assigned

The endpoints supports status deactivation such as:

  • CANC - Cancelled
  • PROJ - Project Consideration
  • RISK - Risk Matrix assigned

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

When the modification proposal 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:
bearerAuth
path Parameters
record-id
required
string

The recordId of the activity report.

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

Modification proposal 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
Example
[
  • {
    • "op": "replace",
    • "path": "/isActive",
    • "value": true
    }
]

Response samples

Content type
application/json
{}

Modification Proposal - Attachment upload

Overview

Upload attachment for modification proposal

Limitations of Attachment upload endpoints:

  • No support for parallel calls (uploading multiple attachments at once).
  • Maximum file size is 60 MB. Files between 60.0MB - 99.9MB will give a 400 error. Files larger than 100MB will result in a `413 Request Entity Too Large' Error in HTML. This is due to constraints in the underlying system and is outside of our control.

Update release 1.28.0

Added the optional parameter document-id as a query parameter. If document-id is supplied, the attachment will be uploaded specifically to this document.

Authorizations:
bearerAuth
path Parameters
record-id
required
string
query Parameters
document-id
string or null
Default: null
Example: document-id=10004099768-A01-000-00

Can be found by sending a GET request to: /document-relationships/{relationship-type}/{source-id}

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/modification-proposals/%7Brecord-id%7D/attachments?document-id=10004099768-A01-000-00' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
  --header 'content-type: multipart/form-data'

Response samples

Content type
application/json
{}

Modification Proposal - Attachment download

Overview

Download single attachment for a modification proposal maintenance record.

Known limitations

It's not possible to download attachments of type .txt which are stored in the GOS container of the ERP system. Such requests will result in a HTTP 404 Not found response.

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/problem+json
{
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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 1.5.0

Added createdDateTime for attachments.

Update release 1.6.0

Added 301 response.

Update release 1.11.0

Added properties createdById,createdBy and createdByEmail. createdById will always be have value in response. createdBy and createdByEmail will only have value in response if the include-created-by-details query parameter is true.

Update release 1.16.0

attachments now include properties documentType, documentNumber and documentTitle.

Update release 1.21.0

Added property area to tag details.

Update release 1.24.0

attachments now include the property documentCreatedDate

Update release 1.26.0

tagDetails object now includes the new field maintenanceConceptId

Update release 1.27.0

Added maintenanceRecordTypeId to the response.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.32.0

Added changedDateTime for attachments.

Added properties failureStartDateTime and failureEndDateTime to response.

Authorizations:
bearerAuth
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

include-created-by-details
boolean
Default: false

Include name and email of user represented in createdById. If not supplied, createdBy and createdByEmail will have null value.

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&include-created-by-details=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "maintenanceRecordTypeId": "certificationReport",
  • "createdById": "433937",
  • "createdBy": "Dagfinn Parnas",
  • "createdByEmail": "dapa@equinor.com",
  • "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",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    },
  • "measuringPoints": [
    • {
      }
    ],
  • "text": "Multi-line text based on template",
  • "failureStartDateTime": "2021-01-30T12:00:00Z",
  • "failureEndDateTime": "2022-01-30T14:00:00Z",
  • "recordId": "45894100",
  • "tagId": "PX",
  • "tagPlantId": "1100",
  • "equipmentId": "12410072",
  • "title": "Endre skalering på PDT",
  • "workCenterId": "PPMAUT",
  • "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 - Attachment upload

Upload attachment for certification report

Limitations of Attachment upload endpoints:

  • No support for parallel calls (uploading multiple attachments at once).
  • Maximum file size is 60 MB. Files between 60.0MB - 99.9MB will give a 400 error. Files larger than 100MB will result in a `413 Request Entity Too Large' Error in HTML. This is due to constraints in the underlying system and is outside of our control.

Important information

If documentTitle is supplied, the title is added to all files that are sent in the current request. If different titles are wanted for different files, they have to be sent in separately (one file, one document title per request). When supplying a document-title, a new document will always be created for the attachment

If documentTitle is supplied both as form-data and query parameter, the query parameter will take precedence.

If document-id is supplied, the attachment will be uploaded specifically to this document. document-title and document-id cannot be supplied together.

Authorizations:
bearerAuth
path Parameters
record-id
required
string
query Parameters
document-title
string or null
Default: null
Example: document-title=Document%20Title
document-id
string or null
Default: null
Example: document-id=10004099768-A01-000-00

Can be found by sending a GET request to: /document-relationships/{relationship-type}/{source-id}

Request Body schema: multipart/form-data
files
required
Array of strings <binary> [ 1 .. 5 ] items
document-title
string or null
Default: null

Responses

Request samples

curl --request POST \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/certification-reports/%7Brecord-id%7D/attachments?document-title=Document%2520Title&document-id=10004099768-A01-000-00' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
  --header 'content-type: multipart/form-data'

Response samples

Content type
application/json
{}

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:
bearerAuth
query Parameters
filter
required
string (SearchCertificationReportsFilter)
Enum: "recent-status-activations" "by-tag" "by-equipment"

Filter to limit the certification reports by

status-id
string

Status

plant-id
string = 4 characters
Example: plant-id=1200

Plant identifier

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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "recordId": "45894100",
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "equipmentId": "12410072",
    • "title": "Endre skalering på PDT",
    • "workCenterId": "PPMAUT",
    • "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 - Create

Create new certification report.

The following endpoints can be used to find possible values for input:

  1. workCenterId - /plants/{plant-id}?include-work-centers
  2. plannerGroupId - /plants/{plant-id}?include-planner-groups=true
  3. locationId - /plants/{plant-id}?include-locations=true
  4. detectionMethodId, failureMechanismId, failureModeId - /plants/{plant-id}/tags/{tag-id}?include-catalog-profile-details=true or /equipment/{equipment-id}?include-catalog-profile-details=true

Important information

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

Authorizations:
bearerAuth
Request Body schema: application/json

Certification report to create

title
required
string
text
required
string
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

equipmentId
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

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 when the failure started

failureEndDateTime
string <date-time>

The point in time when the failure was resolved

Responses

Request samples

Content type
application/json
Example
{
  • "tagId": "PX",
  • "tagPlantId": "1100",
  • "title": "Skiftet ventiler på bulk system",
  • "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
{
  • "text": "Multi-line text based on template",
  • "failureStartDateTime": "2021-01-30T12:00:00Z",
  • "failureEndDateTime": "2022-01-30T14:00:00Z",
  • "recordId": "45894100",
  • "tagId": "PX",
  • "tagPlantId": "1100",
  • "equipmentId": "12410072",
  • "title": "Endre skalering på PDT",
  • "workCenterId": "PPMAUT",
  • "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 1.5.0

Added createdDateTime for attachments.

Update release 1.6.0

Added 301 response.

Update release 1.11.0

Added quantity for tasks.

Added properties createdById,createdBy and createdByEmail. createdById will always be have value in response. createdBy and createdByEmail will only have value in response if the include-created-by-details query parameter is true.

Update release 1.16.0

attachments now include properties documentType, documentNumber and documentTitle.

Update release 1.21.0

Added property area to tag details.

Update release 1.26.0

tagDetails object now includes the new field maintenanceConceptId

Update release 1.27.0

Added maintenanceRecordTypeId to the response.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.32.0

Added changedDateTime for attachments.

Update release 1.33.0

Added changedDateTime to the response.

Added taskResponsible and taskResponsibleEmail for tasks in response when the new query parameter include-task-responsible-details is set to true.

Authorizations:
bearerAuth
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, for example the email or name of the person responsible. May have a slight performance impact.

include-created-by-details
boolean
Default: false

Include name and email of user represented in createdById. If not supplied, createdBy and createdByEmail will have null value.

include-task-responsible-details
boolean
Default: false

Include task responsible details. Can have a slight performance impact.

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&include-created-by-details=SOME_BOOLEAN_VALUE&include-task-responsible-details=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "maintenanceRecordTypeId": "technicalInformationUpdateRequest",
  • "createdById": "433937",
  • "createdBy": "Dagfinn Parnas",
  • "createdByEmail": "dapa@equinor.com",
  • "changedDateTime": "2024-08-28T06:06:14Z",
  • "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",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "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": "PPMAUT",
  • "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 accidentally overwriting the multi-line text property, the endpoint will reject any requests with an empty text property.

Update release 1.21.0

Added support for property sortField.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
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" "/sortField"

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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Technical information update request - Update status

Update status of technical information update request.

The statuses available for the technical information update requests can be found by querying /maintenance-records/technical-information-update-requests/{record-id}?include-status-details=true.

Important information

Possible statuses to set are:

System Stat:

  • NOPR - Notification in process
  • NOCO - Notification completed

User statuses (without status number, all of them can be activated and deactivated):

  • CANC Cancelled
  • CRTE Created
  • DRFT Draft
  • RTND Returned - Wait for info.
  • PROJ Project related - M5
  • MMPC Material Management Pre Coding
  • IWOS Included in Work Order Scope

Deactivation works for all statuses, except system statuses OSTS, NOPR, NOCO

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

Authorizations:
bearerAuth
path Parameters
record-id
required
string

The recordId of the technical information update.

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

Technical information update 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
Example
[
  • {
    • "op": "replace",
    • "path": "/isActive",
    • "value": true
    }
]

Response samples

Content type
application/json
{}

Technical information update request - Attachment download

Overview

Download single attachment for technical information update request

Known limitations

It's not possible to download attachments of type .txt which are stored in the GOS container of the ERP system. Such requests will result in a HTTP 404 Not found response.

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{}

Technical Information Update Request - Attachment upload

Overview

Upload attachment for technical information update request

Limitations of Attachment upload endpoints:

  • No support for parallel calls (uploading multiple attachments at once).
  • Maximum file size is 60 MB. Files between 60.0MB - 99.9MB will give a 400 error. Files larger than 100MB will result in a `413 Request Entity Too Large' Error in HTML. This is due to constraints in the underlying system and is outside of our control.

Update release 1.28.0

Added the optional parameter document-id as a query parameter. If document-id is supplied, the attachment will be uploaded specifically to this document.

Authorizations:
bearerAuth
path Parameters
record-id
required
string
query Parameters
document-id
string or null
Default: null
Example: document-id=10004099768-A01-000-00

Can be found by sending a GET request to: /document-relationships/{relationship-type}/{source-id}

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?document-id=10004099768-A01-000-00' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
  --header 'content-type: multipart/form-data'

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).

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchTechnicalInformationUpdateRequestsFilter)
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, for example the email or name of the person responsible. May have a slight performance impact.

status-id
string

Status

plant-id
string = 4 characters
Example: plant-id=1200

Plant identifier

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 to only include results from 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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

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": "PPMAUT",
    • "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 - Create

Create new technical information update requests

Important information

It is possible to create technical information update request for either tagId or equipmentId.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
Request Body schema: application/json

Technical information update request to create

title
required
string
tagId
string or null

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
priorityId
string
Enum: "H" "N"

Priority:

  • H - High priority
  • N - Normal priority
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

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

planningPlantId
string

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

personResponsibleEmail
string

The email of the person responsible for the processing of the technical information update request. This is the preferred way of identifying the person as it's consistent across systems.

Responses

Request samples

Content type
application/json
Example
{
  • "tagId": "PX",
  • "tagPlantId": "1100",
  • "title": "Skiftet ventiler på bulk system"
}

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": "PPMAUT",
  • "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=....

Update release 1.8.0

Response type change to return the created tasks.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
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

Max-length of 40 characters

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 or null <date-time>
plannedEndDateTime
string or null <date-time>

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
[
  • {
    • "taskId": "12",
    • "sortField": "01",
    • "title": "Teknisk avklaringsbehov",
    • "text": "Behov for å identifisere historikk ifra AO\n",
    • "activeStatusIds": "TSRL CRTE",
    • "isCompleted": false,
    • "taskCodeId": "1020",
    • "taskCode": "Technical clarification needed",
    • "taskCodeGroupId": "PM-M2",
    • "taskCodeGroup": "M2 Notification Tasks",
    • "taskResponsibleType": "",
    • "taskResponsibleId": "433937",
    • "plannedStartDateTime": "2019-08-24T14:15:22Z",
    • "plannedEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "completedDateTime": "2019-08-24T14:15:22Z",
    • "quantity": 5
    }
]

Technical information update request - Update task

Overview

Update fields of an existing task for failure report.

To find tasks available on a failure report, use /maintenance-records/technical-information-update-request/{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.

To change status of a task, use endpoint /maintenance-records/technical-information-update-request/{record-id}/tasks/{task-id}/statuses/{status-id}

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
path Parameters
record-id
required
string

id of the technical information update request

task-id
required
string

id of the task

Request Body schema: application/json

Task to update

Array
op
required
string
Value: "replace"

JSON Patch operation according to RFC6902

path
required
string
Enum: "/title" "/text" "/taskCodeId" "/taskCodeGroupId" "/taskResponsibleEmail" "/plannedStartDateTime" "/plannedEndDateTime" "/sortField"

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

Responses

Request samples

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

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Technical information update request - Update task status

Overview

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

To find tasks available 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.

Now it is possible to set following statuses:

  • TSRL Task Released
  • TSCO Task Completed
  • TSSC Task successful

It is possible to activate and deactivate following statuses:

  • TCMP WF when task completed
  • RTND Returned - Wait for info
  • CANC Cancelled
  • PRCR - Product Created

Update release 1.36.0

Enabled activation and deactivation of user statuses like TCMP - WF when task completed, RTND - Returned - Wait for info, CANC - Cancelled and PRCR - Product Created.

Authorizations:
bearerAuth
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 clarification - 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 1.5.0

Added createdDateTime for attachments.

Update release 1.6.0

Added 301 response.

Update release 1.11.0

Added quantity for tasks.

Added properties createdById,createdBy and createdByEmail. createdById will always be have value in response. createdBy and createdByEmail will only have value in response if the include-created-by-details query parameter is true.

Update release 1.16.0

attachments now include properties documentType, documentNumber and documentTitle.

Update release 1.21.0

Added property area to tag details.

Update release 1.24.0

attachments now include the property documentCreatedDate

Update release 1.26.0

tagDetails object now includes the new field maintenanceConceptId

Update release 1.27.0

Added maintenanceRecordTypeId to the response.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.32.0

Added changedDateTime for attachments.

update release 1.33.0

Added taskResponsible and taskResponsibleEmail for tasks in response when the new query parameter include-task-responsible-details is set to true.

Authorizations:
bearerAuth
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, for example the email or name of the person responsible. May have a slight performance impact.

include-created-by-details
boolean
Default: false

Include name and email of user represented in createdById. If not supplied, createdBy and createdByEmail will have null value.

include-task-responsible-details
boolean
Default: false

Include task responsible details. Can have a slight performance impact.

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&include-created-by-details=SOME_BOOLEAN_VALUE&include-task-responsible-details=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "maintenanceRecordTypeId": "technicalClarification",
  • "createdById": "433937",
  • "createdBy": "Dagfinn Parnas",
  • "createdByEmail": "dapa@equinor.com",
  • "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",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "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": "PPMAUT",
  • "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 accidentally overwriting the multi-line text property, the endpoint will reject any requests with an empty text property.

Update release 1.21.0

Added support for property sortField.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
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" "/sortField"

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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Technical clarification - Attachment download

Overview

Download single attachment for technical clarification

Known limitations

It's not possible to download attachments of type .txt which are stored in the GOS container of the ERP system. Such requests will result in a HTTP 404 Not found response.

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

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 clarifications 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).

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchTechnicalClarificationsFilter)
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, for example the email or name of the person responsible. May have a slight performance impact.

status-id
string

Status

plant-id
string = 4 characters
Example: plant-id=1200

Plant identifier

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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

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": "PPMAUT",
    • "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 clarifications - Create

Create new technical information update requests

Important information

It is possible to create technical clarification for either tagId or equipmentId.

Update release 1.28.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
Request Body schema: application/json

Technical clarifications to create

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

Priority:

  • H - High priority
  • M - Medium priority
  • L - Low priority
planningPlantId
required
string
plannerGroupId
required
string
tagId
string or null

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
personResponsibleEmail
string

The email of the person responsible for the processing of the technical information update request. This is the preferred way of identifying the person as it's consistent across systems.

Responses

Request samples

Content type
application/json
Example
{
  • "tagId": "PX",
  • "tagPlantId": "1100",
  • "title": "Skiftet ventiler på bulk system",
  • "workCenterId": "PPMAUT",
  • "workCenterPlantId": "1100",
  • "plannerGroupId": "POM",
  • "planningPlantId": "1100",
  • "priorityId": "L"
}

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": "PPMAUT",
  • "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, prioritization, 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 interested 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 1.2.0

Added filter my-recent-maintenance-records.

Update release 1.5.0

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

Update release 1.8.0

Added properties hasUnsafeFailureMode and unsafeFailureModeStatus for failure reports.

Update release 1.9.0

Renamed property plannerGroupPlantId to planningPlantId.

Update release 1.12.0

Added property maintenanceRecordTypeId.

Update release 1.16.0

Added property workCenterId to maintenanceRecords.failureReports

Update release 1.35.0

Added workOrderTypeId and workOrderId to the response for failure reports. workOrderId includes the id of work orders, not constrained to only showing corrective work orders.

Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchMaintenanceRecordsFilter)
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 = 4 characters
Example: plant-id=1200

Plant identifier

changed-since-datetime
string <date-time>

Earliest datetime to return 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 (MaintenanceRecordTypes)
Items Enum: "failure-report" "activity-report" "certification-report" "technical-information-update-request" "technical-clarification" "modification-proposal"

Include which types of maintenance records

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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

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

Maintenance record - Types

Overview

Get type of a maintenance record based on the maintenance record id.

Authorizations:
bearerAuth
query Parameters
maintenance-record-ids-any-of
required
string
Example: maintenance-record-ids-any-of=13624169,12345678

The maintenance record ids as a comma separated list.

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-record-types?maintenance-record-ids-any-of=13624169%2C12345678' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "maintenanceRecordId": "24597659",
    • "maintenanceRecordTypeId": "activityReport",
    • "_links": {
      }
    }
]

Maintenance records change log - Search

Overview

Search for recent Maintenance records changes.

Response

The response contains only minimum information about the change made to the maintenance records For more information about each individual maintenance record, use the lookup end-point referenced in _links.related.

Filter: recently-changed-property

Find Work orders which have recently had a change in a specific property. Parameters:

  • plant-id-any-of
  • property-name-any-of - Values supported statuses and tasks/statuses
  • changed-since-duration - For example PT10M for changes the last ten minutes

include-maintenance-record-types is an optional parameter to define which maintenance records to return changes for.

Important information

The response contains list of changes to maintenance records (not list of maintenance records changed). Therefore, an individual maintenance record may be represented multiple times. Consumers can use changeDateTime to identify the last change.

Avoid using this endpoint for retrieving a large amount of changes for a longer time period. changed-since-duration should typically not be more than 1 day from today's date. Response will be 400 Bad request if changed-since-duration is more than 7 days (P7D).

Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchMaintenanceRecordChangeLogFilter)
Value: "recently-changed-property"

Filter to limit the maintenance record change log by

plant-id-any-of
string
Example: plant-id-any-of=1900,1901,1902,1903

Comma-separated string array of plant-ids to filter your result to one or more plants. Wildcards are not supported.

changed-since-duration
string
Example: changed-since-duration=PT10M

Duration from the current datetime to fetch changes for. Maximum value is 7 days

property-name-any-of
string (SearchWorkOrderPropertyNames)
Enum: "statuses" "tasks/statuses"

Comma-separated string of the properties which were recently changed

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

Include which types of maintenance records

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records-change-log?filter=SOME_STRING_VALUE&plant-id-any-of=1900%2C1901%2C1902%2C1903&changed-since-duration=PT10M&property-name-any-of=SOME_STRING_VALUE&include-maintenance-record-types=SOME_ARRAY_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "modificationProposalsChanged": [
    • {
      }
    ],
  • "failureReportsChanged": [
    • {
      }
    ],
  • "activityReportsChanged": [
    • {
      }
    ],
  • "certificationReportsChanged": [
    • {
      }
    ],
  • "technicalInformationUpdateRequestsChanged": [
    • {
      }
    ],
  • "technicalClarificationsChanged": [
    • {
      }
    ]
}

Maintenance record relationships

Covers updating relationships between maintenance records and other resources such as URL based references

Maintenance record relationships - Add URL reference

Overview

Add a URL reference to a maintenance record.

Supported maintenance record types:

  • Activity reports
  • Failure reports

URL references are stored in the Document Management System (DMS). If there exist a DMS document for the provided characteristics it will be reused, otherwise a new DMS document will be created.

The following characteristicId can be used:

  • DISCIPLINE_B30
  • ADDITIONAL_REFERENCE_B30
  • DATE_OF_DOCUMENT_B30 (Date of photo / report)

Existing URL references are available through the lookup endpoints for maintenance records. Examples: GET /maintenance-records/failure-reports/{record-id}?include-url-references=true&api-version=v1

Update release 1.28.0

Added optional input field documentId. If documentId is supplied, the attachment will be uploaded specifically to this document.

Authorizations:
bearerAuth
path Parameters
record-id
required
string

Id of the maintenance record (can be any type)

Request Body schema: application/json

Define URL reference to add relationship

url
required
string <= 255 characters

URL for the reference

title
string <= 40 characters
Default: "IOC annotations"

Title describing the URL reference

documentId
string or null

Id of the document to relate the url reference to

Array of objects (CharacteristicsItem)

Characteristics are

Responses

Request samples

Content type
application/json
Example
{
  • "title": "IOC annotation",
  • "characteristics": [
    • {
      },
    • {
      }
    ]
}

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Maintenance record relationships - Remove URL reference

Overview

Remove a URL reference from an existing maintenance record.

Existing URL references can be found through the lookup endpoints for maintenance records. Example: GET /maintenance-records/failure-reports/{record-id}?include-url-references=true&api-version=v1

Authorizations:
bearerAuth
path Parameters
record-id
required
string

Id of the maintenance record (can be any type)

url-reference-id
required
string

Id of the URL reference

Responses

Request samples

curl --request DELETE \
  --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-record-relationships/%7Brecord-id%7D/url-references/%7Burl-reference-id%7D \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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 order plan - Get

Overview

Get work order activities planned to be performed for a single planning plant. The response is normally based on the planned scheduling of work order operations through the properties earliestStartDateTime and earliestFinishDateTime. It does not use assignment to baseline plan as a source as this does not cover all work.

It is possible to use the defined periods from the baseline plans as basis for the query parameters planPeriodStartDate and planPeriodDuration. Use /plants/{plant-id}?include-baseline-plan=true&api-version=v1 for this purpose.

personResponsibleId will normally not be populated as planning is performed on the work center as a whole.

This endpoint returns only Work Order with status 'PLAN'. The field requiredEndDate is dependent on workOrderType.

Using plan-period-start and plan-period-duration

Provide the plan for a specific planning plant based on a defined plan period. This is the main usage of this endpoint.

Example of usage:

  • /work-order-plan/{planning-plant-id}?plan-period-start=2023-03-02&plan-period-duration=P21D&location-id-any-of=CD00&include-completed-work-order-operations=false&work-order-types-any-of=preventiveWorkOrders,correctiveWorkOrders&api-version=v1
  • /work-order-plan/{planning-plant-id}?plan-period-start=2023-03-02&plan-period-duration=P21D&work-center-id-any-of=C31*&include-completed-work-order-operations=false&api-version=v1

Using person-responsible-*

Get the work order plan for a specific planning plant, but only for work orders assigned to a specific user. Normally, work orders will not be assigned directly to a user, but in some work processes (such as inspection), this occurs.

Example of usage:

  • /work-order-plan/{planning-plant-id}?person-responsible-email=shortname@equinor.com&include-completed-work-order-operations=false&work-order-types-any-of=preventiveWorkOrders,correctiveWorkOrders&api-version=v1

Combining all parameters

It is possible to get all work order plans for a period which are assigned to user by combining all parameters.

Example of usage:

  • /work-order-plan/{planning-plant-id}?person-responsible-email=shortname@equinor.com&plan-period-start=2023-03-02&plan-period-duration=P21D&include-completed-work-order-operations=false&work-order-types-any-of=preventiveWorkOrders,correctiveWorkOrders&api-version=v1

Update release 1.26.0

Added query parameter work-center-id-any-of.

Update release 1.29.0

Added properties cmrIndicator and maintenanceRecordId.

Update release 1.34.0

Added following filter options:

  • main-work-center-id-any-of
  • status-any-of
  • status-not
  • operation-notes-any-of

Added following fields to the response:

  • personResponsible
  • mainWorkCenterId

Update release 1.36.0

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details. Added overheadMaintenanceWorkOrders to work-order-types-any-of query parameter.

Update release 1.38.0

Deprecated the filter parameter. The endpoint will accept the parameter but ignore it. It is now possible to combine almost all query parameters. person-responsible-email and person-responsible-id will still be mutually exclusive. It is required to supply either plan-period-start or person-responsible-* in order to not cause issues in the underlying system.

Authorizations:
bearerAuth
path Parameters
planning-plant-id
required
string
Example: 1901

Planning plant to retrieve work order plan for

query Parameters
filter
required
string (GetWorkOrderPlanFilter)
Deprecated
Enum: "by-plan-period" "by-person-responsible"

Deprecated parameter that is ignored but accepted. Has no effect.

plan-period-start
string <date>

Start of plan period (/plants/{plant-id}?include-baseline-plans=true can be used as a reference). Required for filter=by-plan-period.

plan-period-duration
string
Example: plan-period-duration=P21D

Duration of plan period

person-responsible-email
string
Example: person-responsible-email=shortname@equinor.com

Email address for responsible person. Should not be used in combination with person-responsible-id.

person-responsible-id
string
Example: person-responsible-id=123456

Id for responsible person. Should not be used in combination with person-responsible-email.

include-completed-work-order-operations
boolean
Default: false

Include Work Order Plans with completed work order operations

include-person-responsible
boolean
Default: false

Include person responsible information in response, for example the email or name of the person responsible. May have a slight performance impact.

work-order-types-any-of
Array of strings (GetWorkOrderPlanWorkOrderTypes)
Items Enum: "correctiveWorkOrders" "preventiveWorkOrders" "modificationWorkOrders" "sasChangeWorkOrders" "projectWorkOrders" "subseaWorkOrders" "overheadMaintenanceWorkOrders"

Limit to specific work order types (any-of). Default includes all types

work-center-id-any-of
string
Example: work-center-id-any-of=POMAUT,POMELE,C31*

Comma-separated list of work-center-id

main-work-center-id-any-of
string
Example: main-work-center-id-any-of=POMAUT,POMELE,C31*

Comma-separated list of main-work-center-id

revision-id-any-of
string
Example: revision-id-any-of=OFP,OFP%202022

Comma-separated list of revision-id

location-id-any-of
string
Example: location-id-any-of=CD00,CD01

Comma-separated list of location-id

status-any-of
Array of strings
Items Enum: "STRT" "RDOP" "TECO" "REL" "CRTD"
Example: status-any-of=STRT,RDOP,TECO

Query based on statusIds (not all statuses are supported)

status-not
Array of strings
Items Enum: "STRT" "RDOP" "TECO" "REL" "CRTD"
Example: status-not=STRT,RDOP,TECO

Query based on statusIds (not all statuses are supported)

operation-notes-any-of
string

Query based on planNotes in operations

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/work-order-plan/%7Bplanning-plant-id%7D?filter=SOME_STRING_VALUE&plan-period-start=SOME_STRING_VALUE&plan-period-duration=P21D&person-responsible-email=shortname%40equinor.com&person-responsible-id=123456&include-completed-work-order-operations=SOME_BOOLEAN_VALUE&include-person-responsible=SOME_BOOLEAN_VALUE&work-order-types-any-of=SOME_ARRAY_VALUE&work-center-id-any-of=POMAUT%2CPOMELE%2CC31*&main-work-center-id-any-of=POMAUT%2CPOMELE%2CC31*&revision-id-any-of=OFP%2COFP%25202022&location-id-any-of=CD00%2CCD01&status-any-of=STRT%2CRDOP%2CTECO&status-not=STRT%2CRDOP%2CTECO&operation-notes-any-of=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "workOrderId": "24983466",
    • "workOrderTypeId": "correctiveWorkOrder",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "maintenanceRecordId": "45939208",
    • "productionCritical": "M",
    • "hseCritical": "H",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "mainWorkCenterId": "PPMAUT",
    • "locationId": "CD17OU",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE MLTI NMAT",
    • "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",
    • "sortField": "PRS10239.WP12",
    • "personResponsibleId": "433937",
    • "personResponsible": "Short Name",
    • "personResponsibleEmail": "shortname@equinor.com",
    • "operations": [
      ]
    }
]

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.

Filter: recently-changed

Find Work orders which have been recently changed (created or updated) for a given plant. Normally, clients will provide the parameters changed-since-datetime and plant-id to return any changed Work order from changed-since-datetime to now. It is also possible to add before-datetime query parameter - the endpoint will then return any work order changed 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. basic-end-date should be a date in the future so that already finished work orders will not be presented.

Parameters:

  • plant-id
  • basic-end-date
  • location-id (optional)

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

Find Work orders for a 'work-order-id' in an external partner system. Note: In theory, different external systems could have the same external-partner-id but this is very unlikely. Clients are recommended to filter the response based on the plants they are interested in to avoid any issues.

Parameters:

  • external-partner-work-order-id

Filter: by-cost-network

Find Work orders based on Cost Network Id.

Parameters:

  • cost-network-id
  • plant-id (optional)

Filter: by-cost-wbs

Find Work orders based on Cost WBS Id.

Parameters:

  • cost-wbs-id
  • plant-id (optional)

Filter: by-work-center-id

Find Work orders based on their workCenterId.

Parameters:

  • work-center-id-any-of
  • plant-id (optional)

Filter: by-work-order-id

Find Work orders based on their workOrderId.

Parameters:

  • work-order-ids-any-of
  • plant-id (optional)

Update release 0.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 1.3.0

Bugfix related to plantId source.

Update release 1.4.0

Introduced property calculationKey for operations.

Update release 1.5.0

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

Update release 1.12.0

Improved performance of endpoint.

Update release 1.19.0

Added properties systemCondition and isExcludedFromWorkOrderPlan for operations.

Update release 1.21.0

Added ability to update text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.24.0

Added filter by-cost-wbs, with required parameter cost-wbs-id. Can be used in combination with the optional parameter plant-id This filter only includes work orders where the WBS is represented on the work order level. It does not include work orders where WBS is only represented in the settlement rules.

Added filter by-cost-network, with required parameter cost-network-id. Can be used in combination with the optional parameter plant-id

Added property cmrIndicator to the top level objects in the response.

Update release 1.27.0

Work orders now include the property isOpen

Update release 1.30.0

Modified GET work order to fetch data from Maintenance plant from the sap field swerk.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Update release 1.35.0

Added filter by-work-center-id with the required parameter work-center-id-any-of. Can optionally be combined with the parameter plant-id

Added filter by-work-order-id with the required parameter work-order-ids-any-of. Can optionally be combined with the parameter plant-id

Added option to not include operations for the Work Orders by setting the optional parameter include-operations to false (default is true). This can improve performance for the endpoint.

Added property requiredEndDate to the top level objects in the response (Not including preventive work orders).

Added property confirmationId, RemainingWork and RemainingWorkUnit to operations

Update release 1.36.0

Added properties costs and costsCurrency to preventive work orders.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Removed deprecated property cmrIndicator from work orders. See STRY0261073 in ServiceNow for more details. Added overheadMaintenanceWorkOrders to include-work-order-types filter in Parameters and to the response.

Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchWorkOrdersFilter)
Enum: "recently-changed" "before-basic-end-date" "by-external-partner-work-order-id" "by-cost-network" "by-cost-wbs" "by-work-center-id" "by-work-order-id"

Filter to limit the work order by

plant-id
string = 4 characters
Example: plant-id=1200

Plant identifier

changed-since-datetime
string <date-time>

Earliest datetime to return 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 (SearchWorkOrdersWorkOrderTypes)
Items Enum: "correctiveWorkOrders" "preventiveWorkOrders" "modificationWorkOrders" "sasChangeWorkOrders" "projectWorkOrders" "subseaWorkOrders" "overheadMaintenanceWorkOrders"

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

include-operations
boolean
Default: true

Include operations for the Work orders in the response.

basic-end-date
string <date-time>

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

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

cost-wbs-id
string

Required parameter if filter=by-cost-wbs

cost-network-id
string

Required parameter if filter=by-cost-network

work-center-id-any-of
string
Example: work-center-id-any-of=POMAUT,POMELE,C31

Comma-separated list of work-center-id.

work-order-ids-any-of
string
Example: work-order-ids-any-of=13624169,12345678

Comma-separated list of work-order-id.

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&include-operations=SOME_BOOLEAN_VALUE&basic-end-date=SOME_STRING_VALUE&location-id=SOME_STRING_VALUE&external-partner-work-order-id=SOME_STRING_VALUE&cost-wbs-id=SOME_STRING_VALUE&cost-network-id=SOME_STRING_VALUE&work-center-id-any-of=POMAUT%2CPOMELE%2CC31&work-order-ids-any-of=13624169%2C12345678' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

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

Work orders - Types

Overview

Get type of a work order based on the work order id.

Update release 1.37.0

Added support for new work order type overheadMaintenanceWorkOrder.

Authorizations:
bearerAuth
query Parameters
work-order-ids-any-of
required
string
Example: work-order-ids-any-of=13624169,12345678

The work orders as a comma separated list.

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/work-order-types?work-order-ids-any-of=13624169%2C12345678' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "workOrderId": "24597659",
    • "workOrderTypeId": "correctiveWorkOrder",
    • "_links": {
      }
    }
]

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.

Pagination is supported for this endpoint by setting values for page and per-page. If these parameteres are omitted, the result will be returned without pagination.

Response

The response schema has been optimized for speed, enabling the retrieval of work orders only from the past three years.

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&keywords-all-of=heli,male - Return work orders where the title 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 1.5.0

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

Update release 1.12.0

Added query parameter include-maintenance-record.

Update release 1.16.0

Added property workCenterId to maintenanceRecords.failureReports

Update release 1.29.0

Added properties revision and changedDatetime.

Allow searching by changedOnDay when is-open is set. Search by using the new query parameters changed-after-date and changed-before-date.

Update release 1.31.0

Added list of supported statuses for status-all-of, status-any-of and status-not query parameters. Status REL is now supported.

Added property hasStatusREL to the response.

Update release 1.35.0

Added support for optional pagination.

Update release 1.37.0

Added query parameter work-order-ids-any-of Deprecated query parameter max-results as the same functionality can be achieved with `per-page``.

Update release 1.37.0

Added query parameter work-order-ids-any-of & add support for SWNG in status-all-of, status-any-of and status-not query parameters.

Deprecated query parameter max-results as the same functionality can be achieved with per-page.

Added properties tag, requiredEndDate, hseCritical & productionCritical.

Added query parameter include-status-details and the object statuses

Update release 1.38.0

Added overheadMaintenanceWorkOrders to work-order-types query parameter.

Authorizations:
bearerAuth
query Parameters
planning-plants
required
Array of strings (QueryWorkOrdersOptimizedPlanningPlantAnyOf)
Example: planning-plants=1100

Query based on planningPlantIds (any-of)

keywords-all-of
Array of strings (QueryWorkOrdersOptimizedKeywordAllOf)
Example: keywords-all-of=stillas

Query based on keywords in title (case insensitive)

keywords-any-of
Array of strings (QueryWorkOrdersOptimizedKeywordAnyOf)
Example: keywords-any-of=sand

Query based on keywords in title (case insensitive)

keywords-not
Array of strings (QueryWorkOrdersOptimizedKeywordNot)
Example: keywords-not=12M

Query based on keywords in title (case insensitive)

tags-all-of
Array of strings (QueryWorkOrdersOptimizedTagAllOf)
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 (QueryWorkOrdersOptimizedTagAnyOf)
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 (QueryWorkOrdersOptimizedTagNot)
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 (QueryWorkOrdersOptimizedWorkCenterAnyOf)
Example: work-centers-any-of=PPMMEC

Query based on workCenterIds

work-centers-not
Array of strings (QueryWorkOrdersOptimizedWorkCenterNot)
Example: work-centers-not=PPMAUT

Query based on workCenterIds

systems-any-of
Array of strings (QueryWorkOrdersOptimizedSystemAnyOf)
Example: systems-any-of=73

Query based on systemIds

systems-not
Array of strings (QueryWorkOrdersOptimizedSystemNot)
Example: systems-not=99

Query based on systemIds

locations-any-of
Array of strings (QueryWorkOrdersOptimizedLocationAnyOf)
Example: locations-any-of=MG29

Query based on locationIds

locations-not
Array of strings (QueryWorkOrdersOptimizedLocationNot)
Example: locations-not=W14

Query based on locationIds

sort-field-any-of
Array of strings (QueryWorkOrdersOptimizedSortFieldAnyOf)
Example: sort-field-any-of=RS1_11_S

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

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

Query based on sortField (used for grouping work orders)

revision-code-any-of
Array of strings (QueryWorkOrdersOptimizedRevisionCodeAnyOf)
Example: revision-code-any-of=FACILITY

Query based on revisionCode

revision-code-not
Array of strings (QueryWorkOrdersOptimizedRevisionCodeNot)
Example: revision-code-not=WELL

Query based on sortField (often used for revision codes)

status-all-of
Array of strings
Items Enum: "PREP" "PRCO" "RDEX" "STRT" "CANC" "RDOP" "CRTD" "TECO" "REL" "SWNG"
Example: status-all-of=PREP,CANC,TECO

Query based on statusIds (not all statuses are supported)

status-any-of
Array of strings
Items Enum: "PREP" "PRCO" "RDEX" "STRT" "CANC" "RDOP" "CRTD" "TECO" "REL" "SWNG"
Example: status-any-of=PREP,CANC,TECO

Query based on statusIds (not all statuses are supported)

status-not
Array of strings
Items Enum: "PREP" "PRCO" "RDEX" "STRT" "CANC" "RDOP" "CRTD" "TECO" "REL" "SWNG"
Example: status-not=PREP,CANC,TECO

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

changed-after-date
string <date>

Earliest changedOnDay date to include. Query parameter is-open must be set to true or false to use this parameter.

changed-before-date
string <date>

Latest changedOnDay date to include. Query parameter is-open must be set to true or false to use this parameter.

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

Limit to specific work order types (one-of)

work-order-ids-any-of
string
Example: work-order-ids-any-of=13624169,12345678

Comma-separated list of work-order-id.

sort-by
Array of strings (QueryWorkOrdersOptimizedSortBy)
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)

include-maintenance-record
boolean
Default: false

Include the main maintenance record linked to the work order (if any)

include-status-details
boolean
Default: false

Include status details for the work orders

max-results
number
Deprecated
Example: max-results=100

Maximum number of results to include. Default is 1000.

per-page
integer
Example: per-page=100

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/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=PREP%2CCANC%2CTECO&status-any-of=PREP%2CCANC%2CTECO&status-not=PREP%2CCANC%2CTECO&is-open=true&created-after-date=SOME_STRING_VALUE&created-before-date=SOME_STRING_VALUE&changed-after-date=SOME_STRING_VALUE&changed-before-date=SOME_STRING_VALUE&work-order-types=SOME_ARRAY_VALUE&work-order-ids-any-of=13624169%2C12345678&sort-by=SOME_ARRAY_VALUE&include-text=SOME_BOOLEAN_VALUE&include-maintenance-record=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&max-results=100&per-page=100&page=SOME_INTEGER_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "workOrderId": "24597659",
    • "workOrderTypeId": "correctiveWorkOrder",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "systemId": "11",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "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": "2023-11-28T06:06:14Z",
    • "sortField": "PRS10239.WP12",
    • "revisionCodeId": "PS02_21",
    • "requiredEndDate": "2023-11-28",
    • "hseCritical": "M",
    • "productionCritical": "H",
    • "isOpen": true,
    • "hasStatusPREP": true,
    • "hasStatusPRCO": true,
    • "hasStatusRDEX": true,
    • "hasStatusSTRT": true,
    • "hasStatusRDOP": true,
    • "hasStatusCANC": true,
    • "hasStatusTECO": true,
    • "hasStatusREL": true,
    • "hasStatusSWNG": true,
    • "maintenanceRecord": {
      },
    • "statuses": [
      ],
    • "_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.

Update release 1.37.0

Added overheadMaintenanceWorkOrders to include-work-order-types filter in Parameters and overheadMaintenanceWorkOrdersChanged to response.

Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchWorkOrderChangeLogFilter)
Value: "recently-changed-property"

Filter to limit the work order by

plant-id
string = 4 characters
Example: plant-id=1200

Plant identifier

changed-since-datetime
string <date-time>

Earliest datetime to return changed work orders for

property-name
string (SearchWorkOrderPropertyNames)
Enum: "basicStartDateTime" "basicEndDateTime"

The property which was recently changed

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

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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "correctiveWorkOrdersChanged": [
    • {
      }
    ],
  • "preventiveWorkOrdersChanged": [
    • {
      }
    ],
  • "modificationWorkOrdersChanged": [
    • {
      }
    ],
  • "sasChangeWorkOrdersChanged": [
    • {
      }
    ],
  • "projectWorkOrdersChanged": [
    • {
      }
    ],
  • "subseaWorkOrdersChanged": [
    • {
      }
    ],
  • "overheadMaintenanceWorkOrdersChanged": [
    • {
      }
    ]
}

Work order operations

Work orders operations are part of a work order and describe the planned activated.

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 consists 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
  • systemCondition
  • operationId
  • title
  • text
  • workCenterId
  • workCenterPlantId
  • standardTextTemplate
  • plannedWorkHours
  • plannedWorkDuration
  • capacityCount
  • calculationKey

Individual operations can be updated with relevant codes for systemCondition to describe required process conditions for each operation. Possible values for the systemCondition:

  • 0 - Unit shutdown
  • 1 – In operation
  • 2 – System shutdown
  • 3 – Partial production shutdown
  • 4 – Full production shutdown
  • 5 - Reset condition value

Update release 1.19.0

Added support for operationId, title, text, workCenterId, workCenterPlantId, standardTextTemplate, plannedWorkHours, plannedWorkDuration, capacityCount, calculationKey, systemCondition, and isExcludedFromWorkOrderPlan.

Update release 1.21.0

Added ability to update text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.22.0

Added support to reset systemCondition by passing in the value 5.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Update release 1.35.0

Added support for updating the person responsible for the operation by using the path personResponsibleEmail. The value used for this path should be the equinor email of an employee with a SAP user.

Update release 1.36.0

Added support for updating property isExcludedFromWorkOrderPlan.

Authorizations:
bearerAuth
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" "/systemCondition" "/operationId" "/title" "/text" "/workCenterId" "/workCenterPlantId" "/standardTextTemplate" "/plannedWorkHours" "/plannedWorkDuration" "/capacityCount" "/calculationKey" "/isExcludedFromWorkOrderPlan" "/personResponsibleEmail"

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

/plannedWorkHours && /plannedWorkDuration:

Duration as defined in ISO8601

Duration can exclusively be either in days or hours and minutes. A combination of these will return an error.

The unit field in the ERP-system, will be set based on the input provided.

Some accepted examples: PT3H30M, P1D, PT1H30M Some rejected examples: P1DT3H30M, PT1H30M30S

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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Work order operation - Remove operation

Overview

Remove an operation from a work order (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 consists of two internal ids from the ERP system called routing number and counter separated by the - character.

It is not allowed to delete an already confirmed or partly confirmed operation, as well as the last open operation within a work order. Once a work order is completed, it is not possible to remove operations.

Authorizations:
bearerAuth
path Parameters
operation-id
required
string

Responses

Request samples

curl --request DELETE \
  --url https://api-test.gateway.equinor.com/maintenance-api/work-order-operations/%7Boperation-id%7D \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Work order - Update service operation

Overview

Convert an operation to a service operation. This will change the type of operation to PM03 - service and subsequently remove it from the operations list. Required fields must be supplied: materialGroup, purchasingGroup, purchasingOrganization. One service has to be created with the following data: lineId, quantity, unit, materialGroup, costElement, and either a title (for a text item service) or serviceId.

Note: There is a known bug on the SAP side that prevents updating standardTextTemplate for service operations.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Update release 1.36.0

Added support for updating property isExcludedFromWorkOrderPlan.

Update release 1.37.0

Added new properties plannedWorkHours, actualWorkHours, capacityCount, plannedDuration, calculationKey, earliestStartDateTime, earliestFinishDateTime and safetyMeasures to serviceOperations.

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

Update of Work order service operation details

Array
op
required
string
Value: "replace"

JSON Patch operation according to RFC6902

path
required
string
Enum: "/isServiceOperation" "/isCompleted" "/isExcludedFromWorkOrderPlan" "/schedulingStartConstraintId" "/schedulingStartConstraintDateTime" "/schedulingFinishConstraintId" "/schedulingFinishConstraintDateTime" "/systemCondition" "/operationId" "/title" "/text" "/workCenterId" "/workCenterPlantId" "/standardTextTemplate" "/scopeOfWork" "/quantity" "/unit" "/materialGroup" "/purchasingGroup" "/purchasingOrganization" "/purchaseOrderId" "/purchaseOrderItemId" "/service" "/plannedWorkHours" "/plannedWorkDuration" "/capacityCount" "/calculationKey"

Path indicating the property to be impacted by the operation

required
string or boolean or number or (ServiceJsonPatch (ServiceJsonPatch (object) or ServiceJsonPatch (object)))

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

To update either schedulingStartConstraintId or schedulingStartConstraintDateTime, both fields must be updated in the same request. /schedulingStartConstraintId allowed values:

  • MSO - Must start on
  • SNET - Start no earlier than
  • SNLT - Start no later than

To update either schedulingFinishConstraintId or schedulingFinishConstraintDateTime, both fields must be updated in the same request. /schedulingFinishConstraintId allowed values:

  • MFO - Must finish on
  • FNET - Finish no earlier than
  • FNLT - Finish no later than

/service path only allows for the replace operation, but it serves as either an add or a replace operation, depending upon if a service with the given lineId exists or not.

  • If a service with the given lineId is not found, it will be added.
  • If a service with the given lineId is found, it will be replaced with the service object.

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "op": "replace",
    • "path": "/isServiceOperation",
    • "value": true
    },
  • {
    • "op": "replace",
    • "path": "/materialGroup",
    • "value": "3.06.0"
    },
  • {
    • "op": "replace",
    • "path": "/purchasingGroup",
    • "value": "003"
    },
  • {
    • "op": "replace",
    • "path": "/purchasingOrganization",
    • "value": "1001"
    },
  • {
    • "op": "replace",
    • "path": "/service",
    • "value": {
      }
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Technical Feedback - Update

Overview

Update the results of technical feedback.

When executing a technical feedback , the end-user will complete the steps described in maintenanceActivityText and end up with a result in the form of a status (feedbackStatusId) and a reason (feedbackReasonId). Compare the result with the business rules defined by /work-orders/technical-feedback-master-data:

  • hasRequiredMaintenanceRecord: false Use this endpoint

  • hasRequiredMaintenanceRecord: true: Create a new maintenance record for technical feedback using the POST /maintenance-records/failure-reports or POST /maintenance-records/activity-reports endpoints with the relatedWorkOrder properties in the request to specify the work order and technical feedback

Authorizations:
bearerAuth
path Parameters
operation-id
required
string
technical-feedback-id
required
string

The id of the technical feedback as found in the work order lookup endpoint

Request Body schema: application/json

Update technical feedback

Array
op
required
string
Value: "replace"

JSON Patch operation according to RFC6902

path
required
string
Enum: "/feedbackStatusId" "/feedbackReasonId"

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.

Use values from endpoint /work-orders/technical-feedback-master-data.

Responses

Request samples

Content type
application/json
[
  • {
    • "op": "replace",
    • "path": "/feedbackStatusId",
    • "value": "0"
    },
  • {
    • "op": "replace",
    • "path": "/feedbackReasonId",
    • "value": "01"
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Work order - Add materials

Overview

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´ consists of two internal ids from the ERP system called routing number and counter separated by the - character.

There are three 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)
  3. Material identified only by the material field (also known as text items).

Each item in the request must include one of materialId, equipmentId or material.

Update release 1.22.0

Added possibility of adding materials without a materialId (also known as text items).
In this case, the purchasing fields mentioned below need to be provided as input:

  • material
  • price
  • priceUnitId
  • purchasingGroup
  • goodsRecipient
  • unloadingPoint
  • materialGroup

Update release 1.31.0

Split parts of location into finalLocation and temporaryLocation in the response.

Update release 1.33.0

Added support for new properties supplierId, vendorsMaterialNumber, deliveryTimeInDays, requisitionerId, holdDeliveryOnshore, text.

Update release 1.35.0

Added new property requisitionerId to the response.

Update release 1.37.0

Added property unloadingPoint to the response.

Authorizations:
bearerAuth
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
material
string
requiredDatetime
string or null <date-time>

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

price
number <double> >= 1
priceUnitId
string
purchasingGroup
string

Specifies the key which is responsible for procurement of material

goodsRecipient
string
materialGroup
string

Specifies the group of materials which have similar attributes

supplierId
string

Account Number of Supplier

vendorsMaterialNumber
string

Material Number Used by Vendor

requisitionerId
string

Indicates for whom the material is to be ordered

unloadingPoint
string

Specifies the point at which the material is to be unloaded

deliveryTimeInDays
integer

time in days it takes for the vendor to deliver the material

holdDeliveryOnshore
boolean

Flag to indicate the delivery should be held at supplying base instead of immediately being delivered to its destination

text
string

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 Temporary:Inne på lager Laydown areas/shelfs:LaydownAreasOrShelfs CCU(s):Containers",
    • "finalLocation": "P10N utenfor lager",
    • "temporaryLocation": "Inne på lager",
    • "holdDeliveryOnshore": true,
    • "requiredDatetime": "2019-08-24T14:15:22Z",
    • "requisitionerId": "821209",
    • "unloadingPoint": "ramp 1"
    }
]

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´ consists 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:
bearerAuth
path Parameters
operation-id
required
string
Example: -0001

Id of the operation that the material is related to. Consists of two internal ids from the ERP system called routing number and counter, separated by the - character. Get this id from looking up operations typically included on work orders.

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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Work order operation - Update material

Overview

Update a material in 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´ consists 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.

Update release 1.33.0

Added support for the same properties which can be used for material creation.

Authorizations:
bearerAuth
path Parameters
operation-id
required
string
Example: -0001

Id of the operation that the material is related to. Consists of two internal ids from the ERP system called routing number and counter, separated by the - character. Get this id from looking up operations typically included on work orders.

reservation-id
required
string

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

Request Body schema: application/json

Update material details

Array
op
required
string
Value: "replace"

JSON Patch operation according to RFC6902

path
required
string
Enum: "/finalLocation" "/temporaryLocation" "/price" "/priceUnitId" "/purchasingGroup" "/goodsRecipient" "/unloadingPoint" "/materialGroup" "/supplierId" "/vendorsMaterialNumber" "/deliveryTimeInDays" "/requisitionerId" "/holdDeliveryOnshore" "/text" "/operationId" "/quantity" "/requiredDatetime"

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.

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "op": "replace",
    • "path": "/finalLocation",
    • "value": "On Ramp"
    },
  • {
    • "op": "replace",
    • "path": "/temporaryLocation",
    • "value": "In the truck"
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Work order operation - Add safety measure

Add safety measure to work order operation. Safety measures are needed when a work order operation requires special safety practices or risk management.

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

Safety measure to add

documentId
string

Unique id for the document to be used against endpoints for the /documents resource

Responses

Request samples

Content type
application/json
{
  • "documentId": "WORK AT HEIGHT-A80-000-00"
}

Response samples

Content type
application/json
{
  • "documentId": "WORK AT HEIGHT-A80-000-00",
  • "documentTitle": "Work at height"
}

Work order operation - Remove safety measure

Remove a safety measure from a work order operation.

The operation-id and document-id parameters to use in the request URL can be found using the various Lookup and Search endpoints for Work orders, typically by using the include-operations query parameter.

  • operation-id consists of two internal ids from the ERP system called routing number and counter separated by the - character.
  • document-id consists of four parts separated by the - character: A document number of up to 25 characters (e.g. WORK AT HEIGHT), the document type (e.g. B30, A01), a 3-digit document part (e.g. 000), and a 2-digit document version part (e.g. 01).
Authorizations:
bearerAuth
path Parameters
operation-id
required
string
Example: 1005419798-00000001

The operation-id of the Work order operation that has the safety measure document to remove.

document-id
required
string
Example: WORK AT HEIGHT-A80-000-00

Unique id for the safety measure document to remove.

Responses

Request samples

curl --request DELETE \
  --url https://api-test.gateway.equinor.com/maintenance-api/work-order-operations/1005419798-00000001/safety-measures/%7Bdocument-id%7D \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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 1.5.0

Added relationship of type TechnicalFeedback.

Update release 1.15.0

Fixed issue with relatedWorkOrder source ObjectList.

Update release 1.31.0

Removed requirement for providing reasonId as part of the technicalFeedbackParameters when source is TechnicalFeedback.

Authorizations:
bearerAuth
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.

SourceId comes in the format 'XX-1234567-1'. XX denotes whether the object comes from the Object List directly ("OL"), or from Technical Feedback ("TL").

The 7 digits are an internal SAP id of this object list, uniquely identifying the Object List of your work order.

The last digit is the counter of the object list, identifying the line in the Object List.

object

For source TechnicalFeedback, statusId must be supplied.

Responses

Request samples

Content type
application/json
Example
{
  • "recordId": "45894100",
  • "source": "ObjectList"
}

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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 referred to as the header notification of the work order).

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Work order relationships - Add related tag

Overview

Add new relationship between a work order and a tag.

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.

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string

Id of the work order (can be any type)

Request Body schema: application/json

Define tag to add relationship to

tagId
required
string

Id of the tag

tagPlantId
required
string

Id of the plant

Responses

Request samples

Content type
application/json
{
  • "tagId": "PX",
  • "tagPlantId": "1100"
}

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Work order relationships - Remove related tag

Overview

Remove an existing relationship between a work order and a tag/functional location.

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.

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string

Id of the work order (can be any type)

tag-plant-id
required
string
Example: 1100

Id of the plant

tag-id
required
string
Example: AB

Responses

Request samples

curl --request DELETE \
  --url https://api-test.gateway.equinor.com/maintenance-api/work-order-relationships/%7Bwork-order-id%7D/related-tags/%7Btag-plant-id%7D-%7Btag-id%7D \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Work order relationships - Add related equipment

Overview

Add new relationship between a work order and an equipment.

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.

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string

Id of the work order (can be any type)

Request Body schema: application/json

Define equipment to add relationship to

equipmentId
required
string

Responses

Request samples

Content type
application/json
{
  • "equipmentId": "11948620"
}

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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 prioritization and scheduling.

Corrective Work order - Lookup

Overview

Lookup single Corrective Work order with related information

Technical feedback

Technical feedback ensures a common and best practice maintenance based on the type of tag/equipment. It's mostly used by preventive work orders, but can in some cases be used in corrective work orders. As part of work order execution, the technical feedback will need to be completed.

The endpoint /work-orders/technical-feedback-master-data describes the business rules for when it's necessary to create a maintenance record based on the status (feedbackStatusId) and reason (feedbackReasonId) found for the technical feedback.

The include-technical-feedback query parameter for preventive and corrective work order lookup endpoints will return the technical feedback for each operation of the provided work order.

If a technical feedback has isDetailedFeedback: true, it requires a very specific feedback type currently not supported by the Maintenance API.

When executing a technical feedback item, the end-user will complete the steps described in maintenanceActivityText and end up with a result in the form of a status (feedbackStatusId) and a reason (feedbackReasonId). Compare the result with the business rules defined by /work-orders/technical-feedback-master-data and base the next step based on the value of hasRequiredMaintenanceRecord:

  • hasRequiredMaintenanceRecord: true: Create a new maintenance record for technical feedback using the POST /maintenance-records/failure-reports or POST /maintenance-records/activity-reports endpoints with the relatedWorkOrder properties in the request to specify the work order and technical feedback

  • hasRequiredMaintenanceRecord: false As no maintenance record is required, the technical feedback is completed using the endpoint PATCH /work-order-operations/{operation-id}/technical-feedback/{feedback-id}

If you want to include the maintenance records of a technical feedback, one needs to apply both include-technical-feedback=True, and include-maintenance-records=True.

Production Resources/Tool (PRT)

Production resources/tools (PRT) are used for materials, tools and equipment that are needed to carry out the task and are to be returned after use.

In Equinor, this is normally added as part of maintenance program. Maintenance API supports the following PRT resources:

  • Attachments (through query parameter include-attachments=true)
  • Measuring points (through query parameter include-measuring-points=true)
  • URL references (through query parameter include-url-references=true)

For more information see governing document GL1624 Guidelines for the establishment of a preventive maintenance programme in SAP.

Update release 1.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 1.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 1.3.0

Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

Update release 1.4.0

Introduced property calculationKey for operations.

Update release 1.5.0

Added createdDateTime for attachments.

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

Update release 1.7.0

Added equipmentId and equipment to the response of tagsRelated.

Adding sourceId to related maintenance records.

Update release 1.8.0

Introduced property activeStatusIds for operations.

Update release 1.12.0

Added new query parameter include-technical-feedback. It returns related technical feedback required to be completed as part of work order execution. Technical feedback is mostly used for preventive work orders, but can also be used for corrective work orders.

Introduced property detectionMethodGroupId and detectionMethodId for technical feedback.

Update release 1.15.0

Added new query parameter include-measurements.

Update release 1.16.0

Added new query parameters include-measuring-points, include-last-measurement and include-url-references. include-attachments extended to also return PRT attachments of an operation. attachments now include properties documentType, documentNumber and documentTitle.

Update release 1.19.0

Added properties systemCondition and isExcludedFromWorkOrderPlan for operations.

Update release 1.21.0

Added properties costs and costsCurrency. Added property area to tag details.

Added ability to read text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.22.0

Added new query parameter include-service-operations. Operations of type Service - PM03 previously available in the operations have been moved to serviceOperations.

Added activeStatusIds to related maintenance records.

Update release 1.24.0

attachments now include the property documentCreatedDate

Removed 'urlReferences' field from response object, and removed 'include-url-references' query parameter. URLReferences are only supported for Notifications.

Added property cmrIndicator in the response.

Update release 1.26.0

Added property isEquipmentRental to services in serviceOperations. Added materials to serviceOperations.

'tagDetails' object now includes the new field 'maintenanceConceptId'

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.28.0

Added new query parameter include-safety-measure

Added new query parameter include-estimated-costs

Added tag and title to maintenanceRecords expand.

Update release 1.29.0

Added new properties for additionalCostWBSId and costWBSId.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Split parts of location on operations.materials into finalLocation and temporaryLocation in the response.

Added agreement & agreementItem on serviceOperations and grossPrice, netValue & currency on services

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.33.0

Added new properties goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup to materials

Update release 1.34.0

Added new property relatedOperations to maintenanceRecords and tagsRelated. Also added query parameter include-related-operations to include the property relatedOperations.

Added new properties isHSECritical and isProductionCritical to the response.

Update release 1.35.0

Added new properties requisitionerId and deliveryComplete to materials in operations.

Added new properties personResponsible, personResponsibleId and personResponsibleEmail to operations.

Added new property requisitionerId to serviceOperations.

Update release 1.36.0

Added new property planNotes to operations.

Added new properties location and locationId to tagsRelated and maintenanceRecords.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Added new properties plannedWorkHours, actualWorkHours, capacityCount, plannedDuration, calculationKey, earliestStartDateTime, earliestFinishDateTime and safetyMeasures to serviceOperations.

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Update release 1.38.0

Added new property text to materials in operations and serviceOperations.

Upcoming future release

Added new property hasCommunication

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
query Parameters
include-operations
boolean
Default: true

Include Work order operations

include-service-operations
boolean
Default: true

Include Work order service operations

include-technical-feedback
boolean
Default: false

Include technical feedback required to be completed as part of work order execution.

include-materials
boolean
Default: true

Include materials for Work order operations

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

include-maintenance-records
boolean
Default: false

Include related maintenance records (from object list)

include-attachments
boolean
Default: false

Include Work order attachments (including PRT attachments)

include-status-details
boolean
Default: false

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

include-tag-details
boolean
Default: false

Include detailed information for the main tag of the Work order

include-related-tags
boolean
Default: false

Include related tags (from object list)

include-measuring-points
boolean
Default: false

Include related measuring points from PRT

include-last-measurement
boolean
Default: false

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

include-measurements
boolean
Default: false

Include related measurements

include-safety-measures
boolean
Default: false

Include safety-measures in work order operations

include-estimated-costs
boolean
Default: false

Include estimated costs

include-related-operations
boolean
Default: false

Includes the property relatedOperations in the response to expose operations that are related to an object in the objectlist (only relevant for related tags and related maintenance records).

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-service-operations=SOME_BOOLEAN_VALUE&include-technical-feedback=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-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&include-measuring-points=SOME_BOOLEAN_VALUE&include-last-measurement=SOME_BOOLEAN_VALUE&include-measurements=SOME_BOOLEAN_VALUE&include-safety-measures=SOME_BOOLEAN_VALUE&include-estimated-costs=SOME_BOOLEAN_VALUE&include-related-operations=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "operations": [
    • {
      }
    ],
  • "serviceOperations": [
    • {
      }
    ],
  • "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",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    },
  • "attachments": [
    • {
      }
    ],
  • "measurements": [
    • {
      }
    ],
  • "estimatedCosts": [
    • {
      }
    ],
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "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": "PPMAUT",
  • "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": "2023-11-28T06:06:14Z",
  • "sortField": "PRS10239.WP12",
  • "priorityId": "L",
  • "costs": 10000,
  • "costsCurrency": "NOK",
  • "isOpen": true,
  • "costWBSId": "T.O265C.GA.00007",
  • "costWBS": "Conc.: Well A10 GL hook-up FL",
  • "additionalCostWBSId": "T.O790C.GA.20007",
  • "additionalCostWBS": "Minor modifications 2020",
  • "hasCommunication": true
}

Corrective Work order - Update

Overview

Update a Corrective Work Order.

Supports:

  • Append and replace text
  • Update workCenterId and workCenterPlantId
  • Update tagId and tagPlantId
  • Update basicStartDateTime and basicEndDateTime
  • Update sortField
  • Update title
  • Update plannerGroupId
  • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)
  • Update locationId (Use /plants/{plant-id}?include-locations=true&api-version=v1 to get a list of possible values)
  • Update systemId (Use /plants/{plant-id}?include-systems=true&api-version=v1 to get a list of possible values)
  • Update costs
  • Update costWBSId and additionalCostWBSId
  • Update priorityId

Important information - costWBSId and additionalCostWBSId

It's generally recommended that the values of costWBSId and additionalCostWBSId match. When the work order is released (by setting status REL), there is Equinor business logic check to see if they match. If the work order is released through Maintenance API, different values for costWBSId and additionalCostWBSId will result in an error. If the work order is released directly in the ERP system, the user will receive a warning and can choose to continue.

Updating of costWBSId will trigger a new determination of the settlement rule in the ERP system. If a settlement rule already exists, the updating of costWBSId will automatically update the settlement rule. Hence the costWBSId and settlement rule are allways aligned.

Important information - Text

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.

When Advanced ERP text is enabled, information is not automatically signed and has to be sent with the input when using append

Important information - priorityId

priorityId can only be updated if the Corrective Work Order has a different priority than the FailureReport connected to this workorder.

Update release 1.0.0

Added additional properties to update

Update release 1.4.0

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

Update release 1.6.0

Added possibility for update of sortField and revisionId.

Update release 1.7.0

Added possibility for update of locationId and systemId.

Update release 1.18.0

Added possibility for update of title and plannerGroupId.

Update release 1.21.0

Added possibility for update of costs.

Added ability to update text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.29.0

Added possibility for update of costWBSId and additionalCostWBSId.

Update release 1.31.0

Added possibility for update of priorityId.

Update release 1.32.0

Updating of costWBSId from now on triggers the determination/updating of the settlement rule.

Update release 1.33.0

Added possibility to prepend text. Use the operation prepend in the request body to prepend text to the current work order text.

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

The information to be updated

Array
op
string
Enum: "append" "replace" "prepend"

JSON Patch operation according to RFC6902.

Operation replace is suitable for the following properties:

  • /workCenterId
  • /workCenterPlantId
  • /tagId
  • /tagPlantId
  • /basicStartDateTime
  • /basicEndDateTime
  • /revisionId
  • /sortField
  • /locationId
  • /systemId
  • /title
  • /plannerGroupId
  • /costs
  • /additionalCostWBSId
  • /costWBSId
  • /priorityId
  • /text

Operation append is suitable for the following properties:

  • /text

Operation prepend is suitable for the following properties:

  • /text
path
string
Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField" "/locationId" "/systemId" "/title" "/plannerGroupId" "/costs" "/additionalCostWBSId" "/costWBSId" "/priorityId"

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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Corrective Work order - Add operation(s)

Add operations

Update release 1.8.0

Added support for calculation key, which determines the relationship between plannedWorkDuration plannedWorkHours, and capacityCount.

Update release 1.19.0

Added support for standardTextTemplate (standard text template identifier), systemCondition (describes required process condition for each operation) and isExcludedFromWorkOrderPlan (based on operation status).

Update release 1.21.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Authorizations:
bearerAuth
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
calculationKey
string or null
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.

plannedWorkDuration
string

Duration as defined in ISO8601 Duration can exclusively be either in days or hours and minutes. A combination of these will return an error. The unit field in the ERP-system, will be set based on the input provided. Some accepted examples: PT3H30M, P1D, PT1H30M Some rejected examples: P1DT3H30M, PT1H30M30S

plannedWorkHours
string

Duration as defined in ISO8601 Duration can exclusively be either in days or hours and minutes. A combination of these will return an error. The unit field in the ERP-system, will be set based on the input provided. Some accepted examples: PT3H30M, P1D, PT1H30M Some rejected examples: P1DT3H30M, PT1H30M30S

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>
standardTextTemplate
string

Standard text template identifier

isExcludedFromWorkOrderPlan
boolean
Default: false
systemCondition
string

Required process conditions for each operation

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "operation": "0010",
    • "title": "Bygge stillas",
    • "workCenterId": "PPMAUT",
    • "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": "PPMAUT",
    • "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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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 0.11.0

Deprecated endpoint

Authorizations:
bearerAuth
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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Corrective Work order - Update estimated costs

Overview

Update estimated costs for corrective work order. Cost needs to be provided in the currency of the work order. The Cost Category ID needs to be:

  • COST_CUTBACK
  • COST_EXTERNAL_SERVICES
  • COST_INTERNAL_SERVICES
  • COST_INTERNAL_PERSONELL
  • COST_MATERIALS_OF_CONSUMPTION
  • COST_OTHER_EXPENCES
  • COST_REPAIR_AND_MAINTENANCE
Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
cost-category-id
required
string
Example: COST_EXTERNAL_SERVICES
Request Body schema: application/json

Estimated cost for cost category

Array
op
required
string
Value: "replace"

JSON Patch operation according to RFC6902

path
required
string
Value: "/estimatedCosts"

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.

Responses

Request samples

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

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Corrective Work order - Add time ticket

Overview

Add time ticket for work performed

Update release 0.8.0

Text multi-line property now is persisted as expected in ERP system.

Authorizations:
bearerAuth
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 or null <date-time>
workEndDateTime
string or null <date-time>
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": "PPMAUT",
  • "workCenterPlantId": "1100",
  • "title": "Prep jobb",
  • "text": "Multi-line text\nDescribing the work done"
}

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Corrective Work order - Attachment upload

Upload attachment for Corrective Work Order

Limitations of Attachment upload endpoints:

  • No support for parallel calls (uploading multiple attachments at once).
  • Maximum file size is 60 MB. Files between 60.0MB - 99.9MB will give a 400 error. Files larger than 100MB will result in a `413 Request Entity Too Large' Error in HTML. This is due to constraints in the underlying system and is outside of our control.
Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
Request Body schema: multipart/form-data
files
Array of strings <binary> [ 1 .. 5 ] items

Responses

Request samples

curl --request POST \
  --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/corrective-work-orders/%7Bwork-order-id%7D/attachments \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
  --header 'content-type: multipart/form-data'

Response samples

Content type
application/json
{}

Corrective Work order - Attachment download

Download single attachment for corrective Work order

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

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 activation 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 release 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 release 1.1.0

Support for deactivating TECO status

Update release 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:
bearerAuth
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 or null <date-time>

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 performing a subsequent request to Lookup corrective-work-order.

Filter: recent-status-activations

Find 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)
  • system-id (optional)

Filter: by-maintenance-type-id

Find open Corrective work orders by maintenance-type-id. Parameters:

  • plant-id
  • maintenance-type-id

Update release 0.9.0

Added filter by-maintenance-type-id.

Update release 0.11.0

Added system-id as optional parameter for filter before-required-end-date.

Update release 1.5.0

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

Update release 1.21.0

Added properties costs and costsCurrency.

Added ability to read text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.24.0

Added property cmrIndicator in the response.

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.36.0

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchCorrectiveWorkOrderFilter)
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 = 4 characters
Example: plant-id=1200

Plant identifier

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)

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&location-id=SOME_STRING_VALUE&required-end-date=SOME_STRING_VALUE&system-id=SOME_STRING_VALUE&maintenance-type-id=017' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "workOrderId": "24983466",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "workCenterId": "PPMAUT",
    • "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": "2023-11-28T06:06:14Z",
    • "sortField": "PRS10239.WP12",
    • "priorityId": "L",
    • "costs": 10000,
    • "costsCurrency": "NOK",
    • "isOpen": true,
    • "costWBSId": "T.O265C.GA.00007",
    • "costWBS": "Conc.: Well A10 GL hook-up FL",
    • "additionalCostWBSId": "T.O790C.GA.20007",
    • "additionalCostWBS": "Minor modifications 2020",
    • "hasCommunication": true
    }
]

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}

Important information

Up until release 1.32.0, we have enabled creating operations with operationId 0010 through the API, allowing the user to customize this operation during creation.

Starting from release 1.32.0, the API logic for creating operations has been aligned with the new logic enforced by the SAP backend system. The new logic adds operations from the task list of any failure report that the work order is created from.

As a result, creating an operation with a reserved operationId is no longer allowed. This always affects operations with operationId equal to 0010, but can also apply to other operations.

To see which operations are already reserved, use /maintenance-api/maintenance-records/failure-reports/{record-id}&include-task-list=true

Update release 1.1.0

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

Update release 1.5.0

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

Update release 1.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.

Update release 1.8.0

Added support for calculation key on operation level. It determines the relationship between plannedWorkDuration, plannedWorkHours, and capacityCount.

Update release 1.21.0

Add property IsExcludedFromWorkOrderPlan to operations model.

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.24.0

Added property cmrIndicator in the response.

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Update release 1.32.0

Restriction to create a work order with operationId 0010 and other reserved operationIds.

To see which operationIds are already reserved, use /maintenance-api/maintenance-records/failure-reports/{record-id}&include-task-list=true

Update release 1.36.0

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Removed deprecated property cmrIndicator from the response. See STRY0261073 in ServiceNow for more details.

Authorizations:
bearerAuth
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 (WorkOrderOperationCreate)
tagId
string or null
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

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": "PPMAUT",
  • "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": "2023-11-28T06:06:14Z",
  • "sortField": "PRS10239.WP12",
  • "priorityId": "L",
  • "costs": 10000,
  • "costsCurrency": "NOK",
  • "isOpen": true,
  • "costWBSId": "T.O265C.GA.00007",
  • "costWBS": "Conc.: Well A10 GL hook-up FL",
  • "additionalCostWBSId": "T.O790C.GA.20007",
  • "additionalCostWBS": "Minor modifications 2020",
  • "hasCommunication": true
}

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.

Technical feedback

Technical feedback ensures a common and best practice maintenance based on the type of tag/equipment. It's mostly used by preventive work orders, but can in some cases be used in corrective work orders. As part of work order execution, the technical feedback items will need to be completed.

The endpoint /work-orders/technical-feedback-master-data describes the business rules for when it's necessary to create a maintenance record based on the status(feedbackStatusId) and reason(feedbackReasonId) found for the technical feedback.

The include-technical-feedback query parameter for preventive and corrective work order lookup endpoints will return the technical feedback for each operation of the provided work order.

If a technical feedback has isDetailedFeedback: true, it requires a very specific feedback type currently not supported by the Maintenance API.

When executing a technical feedback item, the end-user will complete the steps described in maintenanceActivityText and end up with a result in the form of a status(feedbackStatusId) and a reason(feedbackReasonId). Compare the result with the business rules defined by /work-orders/technical-feedback-master-data:

  • hasRequiredMaintenanceRecord: true: Create a new maintenance record for technical feedback using the POST /maintenance-records/failure-reports or POST /maintenance-records/activity-reports endpoints with the relatedWorkOrder properties in the request to specify the work order and technical feedback

  • hasRequiredMaintenanceRecord: true As no maintenance record is required, the technical feedback is completed using the endpoint PATCH /work-order-operations/{operation-id}/technical-feedback/{feedback-id}

If you want to include the maintenance records of a technical feedback, one needs to apply both include-technical-feedback=True, and include-maintenance-records=True.

Production Resources/Tool (PRT)

Production resources/tools (PRT) are used for materials, tools and equipment that are needed to carry out the task and are to be returned after use.

In Equinor, this is normally added as part of maintenance program. Maintenance API supports the following PRT resources:

  • Attachments (through query parameter include-attachments=true)
  • Measuring points (through query parameter include-measuring-points=true)
  • URL references (through query parameter include-url-references=true)

For more information see governing document GL1624 Guidelines for the establishment of a preventive maintenance programme in SAP.

Update release 1.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 1.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 1.3.0

Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

Update release 1.4.0

Introduced property calculationKey for operations.

Update release 1.5.0

Added createdDateTime for attachments.

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

Update release 1.7.0

Added equipmentId and equipment to the response of tagsRelated.

Added sourceId to related maintenance records.

Added isActive property for maintenance plan details.

Update release 1.8.0

Introduced property activeStatusIds for operations.

Update release 1.11.0

Added the following properties:

  • personResponsibleId and personResponsibleEmail
  • isProductionCritical and isHSECritical
  • workCenter
  • plannerGroup

Update release 1.12.0

Added new query parameter include-technical-feedback. It returns related technical feedback required to be completed as part of work order execution.

Introduced property detectionMethodGroupId and detectionMethodId for technical feedback.

Update release 1.15.0

Added new query parameter include-measurements

Update release 1.16.0

Added new query parameters include-measuring-points, include-last-measurement and include-url-references. include-attachments extended to also return PRT attachments of an operation. attachments now include properties documentType, documentNumber and documentTitle.

Update release 1.19.0

Added properties systemCondition and isExcludedFromWorkOrderPlan for operations.

Update release 1.21.0

Added property area to tag details.

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.22.0

Added new query parameter include-service-operations. Operations of type Service - PM03 previously available in the operations have been moved to serviceOperations.

Added activeStatusIds to related maintenance records.

Update release 1.24.0

attachments now include the property documentCreatedDate

Removed urlReferences field from response object, and removed include-url-references query parameter. URLReferences are only supported for Notifications.

Added property cmrIndicator in the response.

Update release 1.26.0

Added property isEquipmentRental to services in serviceOperations. Added materials to serviceOperations.

tagDetails object now includes the new field maintenanceConceptId

Update release 1.27.0

Work orders now include the property 'isOpen'

Added tag and title to maintenanceRecords expand.

Update release 1.28.0

Added new query parameter include-safety-measures.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Split parts of location on operations.materials into finalLocation and temporaryLocation in the response.

Added agreement & agreementItem on serviceOperations and grossPrice, netValue & currency on services.

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.33.0

Added new properties goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup to materials.

Update release 1.34.0

Added new properties callNumber, previousCall, and completionDate to maintenancePlan.

Added new property relatedOperations to maintenanceRecords and tagsRelated. Also added query parameter include-related-operations to include the property relatedOperations.

Added properties additionalCostWBSId, additionalCostWBS, costWBS, costWBSId and requiredEndDate to the response.

Update release 1.35.0

Added new property dueDate to the response. Removed the property requiredEndDate.

Added new properties requisitionerId and deliveryComplete to materials in operations.

Added new properties personResponsible, personResponsibleId and personResponsibleEmail to operations.

Added new property requisitionerId to serviceOperations.

Added new query parameter include-estimated-costs. Set to true to include estimatedCosts array in the response.

Update release 1.36.0

Added properties costs and costsCurrency.

Added new property planNotes to operations.

Added new properties location and locationId to tagsRelated and maintenanceRecords.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Added new properties plannedWorkHours, actualWorkHours, capacityCount, plannedDuration, calculationKey, earliestStartDateTime, earliestFinishDateTime and safetyMeasures to serviceOperations.

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Update release 1.38.0

Added new property text to materials in operations and serviceOperations.

Upcoming future release

Added new property hasCommunication

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
query Parameters
include-operations
boolean
Default: true

Include Work order operations

include-service-operations
boolean
Default: true

Include Work order service operations

include-technical-feedback
boolean
Default: false

Include technical feedback required to be completed as part of work order execution.

include-materials
boolean
Default: false

Include materials for Work order operations

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

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 (including PRT attachments)

include-status-details
boolean
Default: false

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

include-tag-details
boolean
Default: false

Include detailed information for the main tag of the Work order

include-related-tags
boolean
Default: false

Include related tags (from object list)

include-measuring-points
boolean
Default: false

Include related measuring points from PRT

include-last-measurement
boolean
Default: false

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

include-measurements
boolean
Default: false

Include related measurements

include-safety-measures
boolean
Default: false

Include safety-measures in work order operations

include-related-operations
boolean
Default: false

Includes the property relatedOperations in the response to expose operations that are related to an object in the objectlist (only relevant for related tags and related maintenance records).

include-estimated-costs
boolean
Default: false

Include estimated costs

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-service-operations=SOME_BOOLEAN_VALUE&include-technical-feedback=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-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&include-measuring-points=SOME_BOOLEAN_VALUE&include-last-measurement=SOME_BOOLEAN_VALUE&include-measurements=SOME_BOOLEAN_VALUE&include-safety-measures=SOME_BOOLEAN_VALUE&include-related-operations=SOME_BOOLEAN_VALUE&include-estimated-costs=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "operations": [
    • {
      }
    ],
  • "serviceOperations": [
    • {
      }
    ],
  • "statuses": [
    • {
      }
    ],
  • "tagsRelated": [
    • {
      }
    ],
  • "maintenanceRecords": [
    • {
      }
    ],
  • "maintenancePlan": {
    • "maintenancePlanId": "1108244",
    • "maintenancePlanItemId": "10149640",
    • "planDate": "2019-08-24",
    • "isActive": true,
    • "callNumber": 33,
    • "previousCall": "12451245",
    • "completionDate": "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",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    },
  • "attachments": [
    • {
      }
    ],
  • "measurements": [
    • {
      }
    ],
  • "estimatedCosts": [
    • {
      }
    ],
  • "additionalCostWBSId": "T.O790C.GA.20007",
  • "additionalCostWBS": "Minor modifications 2020",
  • "costWBSId": "T.O265C.GA.00007",
  • "costWBS": "Conc.: Well A10 GL hook-up FL",
  • "dueDate": "2019-08-24",
  • "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",
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "workOrderId": "24597659",
  • "tagId": "BF",
  • "tagPlantId": "1100",
  • "tag": "CT5023/24 - POT.WATER PH PROBE.",
  • "title": "Modifikasjon av brannmur",
  • "workCenterId": "PPMAUT",
  • "workCenterPlantId": "1100",
  • "locationId": "CD17OU",
  • "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": "2023-11-28T06:06:14Z",
  • "sortField": "PRS10239.WP12",
  • "personResponsibleId": "433937",
  • "personResponsibleEmail": "shortname@equinor.com",
  • "costs": 10000,
  • "costsCurrency": "NOK",
  • "hasCommunication": true,
  • "isOpen": true
}

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 externalPartnerWorkOrderId
  • Update title
  • Update plannerGroupId
  • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)
  • Update locationId (Use /plants/{plant-id}?include-locations=true&api-version=v1 to get a list of possible values)
  • Update systemId (Use /plants/{plant-id}?include-systems=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.

When Advanced ERP text is enabled, information is not automatically signed and has to be sent with the input when using append

Update release 1.0.0

Added additional properties to update

Update release 1.4.0

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

Update release 1.6.0

Added possibility for update of sortField and revisionId.

Update release 1.7.0

Added possibility for update of locationId and systemId.

Update release 1.18.0

Added possibility for update of externalPartnerWorkOrderId, title and plannerGroupId.

Update release 1.21.0

Added ability to update text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.33.0

Added possibility to prepend text. Use the operation prepend in the request body to prepend text to the current work order text.

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

The information to be updated

Array
op
string
Enum: "append" "replace" "prepend"

JSON Patch operation according to RFC6902.

Operation replace is suitable for the following properties:

  • /workCenterId
  • /workCenterPlantId
  • tagId
  • /tagPlantId
  • /basicStartDateTime
  • /basicEndDateTime
  • /locationId
  • /systemId
  • /externalPartnerWorkOrderId
  • /title
  • /plannerGroupId

Operation append is suitable for the following properties:

  • /text

Operation prepend is suitable for the following properties:

  • /text
path
string
Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField" "/locationId" "/systemId" "/externalPartnerWorkOrderId" "/title" "/plannerGroupId"

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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Preventive Work order - Update estimated costs

Overview

Update estimated costs for preventive work order. Cost needs to be provided in the currency of the work order. The Cost Category ID needs to be:

  • COST_CUTBACK
  • COST_EXTERNAL_SERVICES
  • COST_INTERNAL_SERVICES
  • COST_INTERNAL_PERSONELL
  • COST_MATERIALS_OF_CONSUMPTION
  • COST_OTHER_EXPENCES
  • COST_REPAIR_AND_MAINTENANCE
Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
cost-category-id
required
string
Example: COST_EXTERNAL_SERVICES
Request Body schema: application/json

Estimated cost for cost category

Array
op
required
string
Value: "replace"

JSON Patch operation according to RFC6902

path
required
string
Value: "/estimatedCosts"

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.

Responses

Request samples

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

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Preventive Work order - Add operation(s)

Add operations

Update release 1.8.0

Added support for calculation key, which determines the relationship between plannedWorkDuration, plannedWorkHours, and capacityCount.

Update release 1.19.0

Added support for standardTextTemplate (standard text template identifier), systemCondition (describes required process condition for each operation) and isExcludedFromWorkOrderPlan (based on operation status).

Update release 1.21.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Authorizations:
bearerAuth
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
calculationKey
string or null
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.

plannedWorkDuration
string

Duration as defined in ISO8601 Duration can exclusively be either in days or hours and minutes. A combination of these will return an error. The unit field in the ERP-system, will be set based on the input provided. Some accepted examples: PT3H30M, P1D, PT1H30M Some rejected examples: P1DT3H30M, PT1H30M30S

plannedWorkHours
string

Duration as defined in ISO8601 Duration can exclusively be either in days or hours and minutes. A combination of these will return an error. The unit field in the ERP-system, will be set based on the input provided. Some accepted examples: PT3H30M, P1D, PT1H30M Some rejected examples: P1DT3H30M, PT1H30M30S

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>
standardTextTemplate
string

Standard text template identifier

isExcludedFromWorkOrderPlan
boolean
Default: false
systemCondition
string

Required process conditions for each operation

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "operation": "0010",
    • "title": "Bygge stillas",
    • "workCenterId": "PPMAUT",
    • "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": "PPMAUT",
    • "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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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 0.11.0

Deprecated endpoint.

Authorizations:
bearerAuth
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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Preventive Work order - Add time ticket

Overview

Add time ticket for work performed

Update release 0.8.0

Text multi-line property now is persisted as expected in ERP system.

Authorizations:
bearerAuth
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 or null <date-time>
workEndDateTime
string or null <date-time>
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": "PPMAUT",
  • "workCenterPlantId": "1100",
  • "title": "Prep jobb",
  • "text": "Multi-line text\nDescribing the work done"
}

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Preventive Work order - Attachment upload

Upload attachment for Preventive Work Order

Limitations of Attachment upload endpoints:

  • No support for parallel calls (uploading multiple attachments at once).
  • Maximum file size is 60 MB. Files between 60.0MB - 99.9MB will give a 400 error. Files larger than 100MB will result in a `413 Request Entity Too Large' Error in HTML. This is due to constraints in the underlying system and is outside of our control.
Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
Request Body schema: multipart/form-data
files
Array of strings <binary> [ 1 .. 5 ] items

Responses

Request samples

curl --request POST \
  --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/preventive-work-orders/%7Bwork-order-id%7D/attachments \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
  --header 'content-type: multipart/form-data'

Response samples

Content type
application/json
{}

Preventive Work order - Attachment download

Download single attachment for preventive Work order

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

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 activation 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 release 0.9.0

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

Update release 1.1.0

Support for deactivating TECO status

Update release 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:
bearerAuth
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 or null <date-time>

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 defined 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 performing a subsequent request to lookup preventive-work-order.

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

Find 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)
  • system-id (optional)

Filter: by-maintenance-type-id

Find open Preventive work orders by maintenance-type-id. Parameters:

  • plant-id
  • maintenance-type-id

Update release 0.9.0

Added filter by-maintenance-type-id.

Update release 0.11.0

Added system-id as optional parameter for filter before-planned-date.

Update release 1.5.0

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

Update release 1.21.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.24.0

Added property cmrIndicator in the response.

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.36.0

Added properties costs and costsCurrency.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchPreventiveWorkOrdersFilter)
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 = 4 characters
Example: plant-id=1200

Plant identifier

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

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&planned-date=SOME_STRING_VALUE&system-id=SOME_STRING_VALUE&maintenance-type-id=005' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "workOrderId": "24597659",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "workCenter": "AI Automasjon",
    • "locationId": "CD17OU",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "plannerGroup": "Plattform PV",
    • "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": "2023-11-28T06:06:14Z",
    • "sortField": "PRS10239.WP12",
    • "personResponsibleId": "433937",
    • "personResponsibleEmail": "shortname@equinor.com",
    • "costs": 10000,
    • "costsCurrency": "NOK",
    • "hasCommunication": true,
    • "isOpen": true
    }
]

Preventive Work order - Create Deprecated

Overview

Create new Preventive Work order.

In addition to the required fields, one also needs to supply either equipmentId or a Tag (tagPlantId-tagId)

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

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

Important information

There is an on-going initiative to prevent the possibility to create PM02 work orders in SAP (with the exception of MaintenancePlans). As of Release 1.36.0 on 21.01.2025, the usage of this endpoint is limited to applications with dispensation for usage, documented in disp.equinor.com.

To use this endpoint, your business process must be approved by O&M owners. To raise this request, please create a disp on disp.equinor.com, and raise this in O&M Stryo board.

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.36.0

Added properties costs and costsCurrency to the response.

Endpoint is now limited.

Update release 1.37.0

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Authorizations:
bearerAuth
Request Body schema: application/json

Preventive Work order to create

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

Work order id as represented in external partner system

additionalCostWBSId
string
costNetworkId
string
costNetworkOperationId
string
Array of objects (WorkOrderOperationCreate)
tagId
string or null
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

text
string

Responses

Request samples

Content type
application/json
Example
{
  • "planningPlantId": "1100",
  • "workCenterId": "CO2PIP",
  • "workCenterPlantId": "1100",
  • "tagId": "LZ1012",
  • "tagPlantId": "1100",
  • "title": "14xx/Installere flowline CD2",
  • "plantId": "1100"
}

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": "preventiveWorkOrder",
  • "plannerGroup": "Plattform PV",
  • "workCenter": "AI Automasjon",
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "workOrderId": "24597659",
  • "tagId": "BF",
  • "tagPlantId": "1100",
  • "tag": "CT5023/24 - POT.WATER PH PROBE.",
  • "title": "Modifikasjon av brannmur",
  • "workCenterId": "PPMAUT",
  • "workCenterPlantId": "1100",
  • "locationId": "CD17OU",
  • "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": "2023-11-28T06:06:14Z",
  • "sortField": "PRS10239.WP12",
  • "personResponsibleId": "433937",
  • "personResponsibleEmail": "shortname@equinor.com",
  • "costs": 10000,
  • "costsCurrency": "NOK",
  • "hasCommunication": true,
  • "isOpen": true
}

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:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{}

SAS Change Work order - Lookup

Overview

Lookup single SAS Change Work order with related information

Update release 1.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 1.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 1.3.0

Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

Update release 1.4.0

Introduced property calculationKey for operations.

Update release 1.5.0

Added createdDateTime for attachments.

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

Update release 1.7.0

Added equipmentId and equipment to the response of tagsRelated.

Adding sourceId to related maintenance records.

Update release 1.8.0

Introduced property activeStatusIds for operations.

Update release 1.19.0

Added properties systemCondition and isExcludedFromWorkOrderPlan for operations.

Update release 1.21.0

Added property area to tag details.

Added ability to read text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.22.0

Added new query parameter include-service-operations. Operations of type Service - PM03 previously available in the operations have been moved to serviceOperations.

Update release 1.24.0

Added property cmrIndicator in the response.

Update release 1.26.0

Added property isEquipmentRental to services in serviceOperations. Added materials to serviceOperations.

tagDetails object now includes the new field maintenanceConceptId

Update release 1.27.0

Work orders now include the property isOpen

Added tag and title to maintenanceRecords expand.

Update release 1.28.0

Added new query parameter include-safety-measures.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Split parts of location on operations.materials into finalLocation and temporaryLocation in the response.

Added agreement & agreementItem on serviceOperations and grossPrice, netValue & currency on services.

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.34.0

Added new property relatedOperations to maintenanceRecords and tagsRelated. Also added query parameter include-related-operations to include the property relatedOperations.

Added properties additionalCostWBSId, additionalCostWBS, requiredEndDate, isHSECritical and isProductionCritical to the response.

Update release 1.35.0

Added new properties requisitionerId and deliveryComplete to materials in operations.

Added new properties personResponsible, personResponsibleId and personResponsibleEmail to operations.

Added new property requisitionerId to serviceOperations.

Update release 1.36.0

Added new property planNotes to operations.

Added new properties location and locationId to tagsRelated and maintenanceRecords.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Added new properties plannedWorkHours, actualWorkHours, capacityCount, plannedDuration, calculationKey, earliestStartDateTime, earliestFinishDateTime and safetyMeasures to serviceOperations.

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Update release 1.38.0

Added new property text to materials in operations and serviceOperations.

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
query Parameters
include-operations
boolean
Default: true

Include Work order operations

include-service-operations
boolean
Default: true

Include Work order service operations

include-materials
boolean
Default: true

Include materials for Work order operations

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

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 information for the main tag of the Work order

include-related-tags
boolean
Default: false

Include related tags (from object list)

include-safety-measures
boolean
Default: false

Include safety-measures in work order operations

include-related-operations
boolean
Default: false

Includes the property relatedOperations in the response to expose operations that are related to an object in the objectlist (only relevant for related tags and related maintenance records).

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-service-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-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&include-safety-measures=SOME_BOOLEAN_VALUE&include-related-operations=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "operations": [
    • {
      }
    ],
  • "serviceOperations": [
    • {
      }
    ],
  • "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",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    },
  • "attachments": [
    • {
      }
    ],
  • "requiredEndDate": "2019-08-24",
  • "additionalCostWBSId": "T.O790C.GA.20007",
  • "additionalCostWBS": "Minor modifications 2020",
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "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",
  • "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": "2023-11-28T06:06:14Z",
  • "costWBSId": "M.O037C.20.A.0002.A2",
  • "projectId": "M.O037C.20.A.0002",
  • "costNetworkId": "9045173",
  • "costNetworkOperationId": "0010",
  • "sortField": "PRS10239.WP12",
  • "isOpen": true
}

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 title
  • Update plannerGroupId
  • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)
  • Update locationId (Use /plants/{plant-id}?include-locations=true&api-version=v1 to get a list of possible values)
  • Update systemId (Use /plants/{plant-id}?include-systems=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.

When Advanced ERP text is enabled, information is not automatically signed and has to be sent with the input when using append

Update release 1.0.0

Added additional properties to update

Update release 1.4.0

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

Update release 1.6.0

Added possibility for update of sortField and revisionId.

Update release 1.7.0

Added possibility for update of locationId and systemId.

Update release 1.18.0

Added possibility for update of title and plannerGroupId.

Update release 1.21.0

Added ability to update text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.33.0

Added possibility to prepend text. Use the operation prepend in the request body to prepend text to the current work order text.

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

The information to be updated

Array
op
string
Enum: "append" "replace" "prepend"

JSON Patch operation according to RFC6902.

Operation replace is suitable for the following properties:

  • /workCenterId
  • /workCenterPlantId
  • /tagId
  • /tagPlantId
  • /basicStartDateTime
  • /basicEndDateTime
  • /locationId
  • /systemId
  • /title
  • /plannerGroupId
  • /text

Operation append is suitable for the following properties:

  • /text

Operation prepend is suitable for the following properties:

  • /text
path
string
Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField" "/locationId" "/systemId" "/title" "/plannerGroupId"

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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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 release 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:
bearerAuth
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 or null <date-time>

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 performing a subsequent request to Lookup sas-change-work-orders.

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

Filter: by-cost-network

Find SAS Change work orders based on Cost Network Id. Parameters:

  • cost-network-id
  • plant-id (optional)

Filter: by-cost-wbs

Find SAS Change Work orders based on Cost WBS Id. Parameters:

  • cost-wbs-id
  • plant-id (optional)

Update release 1.4.0

Added location-id and system-id to filter open-by-plant.

Update release 1.5.0

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

Update release 1.19.0

Added ability to read text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.24.0

Added filter by-cost-wbs, with required parameter cost-wbs-id. Can be used in combination with optional parameterplant-id. This filter only includes work orders where the WBS is represented on the work order level. It does not include work orders where WBS is only represented in the settlement rules.

Added filter by-cost-network, with required parameter cost-network-id and optional parameter plant-id.

Added property cmrIndicator in the response.

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.36.0

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchSASChangeWorkOrdersFilter)
Enum: "open-by-plant" "recent-status-activations" "by-cost-wbs" "by-cost-network"

Filter to limit the SAS Change work order by

status-id
string

Status

plant-id
string = 4 characters
Example: plant-id=1200

Plant identifier

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

cost-wbs-id
string

Required parameter if filter=by-cost-wbs

cost-network-id
string

Required parameter if filter=by-cost-network

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&cost-wbs-id=SOME_STRING_VALUE&cost-network-id=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

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",
    • "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": "2023-11-28T06:06:14Z",
    • "costWBSId": "M.O037C.20.A.0002.A2",
    • "projectId": "M.O037C.20.A.0002",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "sortField": "PRS10239.WP12",
    • "isOpen": true
    }
]

SAS Change Work order - Create

Overview

Create new SAS Change Work order

Update release 1.5.0

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

Update release 1.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.

Update release 1.8.0

Added support for calculation key on operation level. It determines the relationship between plannedWorkDuration, plannedWorkHours, and capacityCount.

Update release 1.19.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Update release 1.37.0

Removed deprecated property cmrIndicator from the response. See STRY0261073 in ServiceNow for more details.

Authorizations:
bearerAuth
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 or null
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

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",
  • "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": "2023-11-28T06:06:14Z",
  • "costWBSId": "M.O037C.20.A.0002.A2",
  • "projectId": "M.O037C.20.A.0002",
  • "costNetworkId": "9045173",
  • "costNetworkOperationId": "0010",
  • "sortField": "PRS10239.WP12",
  • "isOpen": true
}

SAS Change Work order - Add operation(s)

Add operations

Update release 1.8.0

Added support for calculation key, which determines the relationship between plannedWorkDuration plannedWorkHours, and capacityCount.

Update release 1.19.0

Added support for standardTextTemplate (standard text template identifier), systemCondition (describes required process condition for each operation) and isExcludedFromWorkOrderPlan (based on operation status).

Update release 1.21.0

Added ability to update text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Authorizations:
bearerAuth
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
calculationKey
string or null
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.

plannedWorkDuration
string

Duration as defined in ISO8601 Duration can exclusively be either in days or hours and minutes. A combination of these will return an error. The unit field in the ERP-system, will be set based on the input provided. Some accepted examples: PT3H30M, P1D, PT1H30M Some rejected examples: P1DT3H30M, PT1H30M30S

plannedWorkHours
string

Duration as defined in ISO8601 Duration can exclusively be either in days or hours and minutes. A combination of these will return an error. The unit field in the ERP-system, will be set based on the input provided. Some accepted examples: PT3H30M, P1D, PT1H30M Some rejected examples: P1DT3H30M, PT1H30M30S

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>
standardTextTemplate
string

Standard text template identifier

isExcludedFromWorkOrderPlan
boolean
Default: false
systemCondition
string

Required process conditions for each operation

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "operation": "0010",
    • "title": "Bygge stillas",
    • "workCenterId": "PPMAUT",
    • "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": "PPMAUT",
    • "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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{}

Project Work order - Lookup

Overview

Lookup single Project Work order with related information

Update release 1.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 1.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 1.3.0

Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

Update release 1.4.0

Introduced property calculationKey for operations.

Update release 1.5.0

Added createdDateTime for attachments.

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

Update release 1.7.0

Added equipmentId and equipment to the response of tagsRelated.

Adding sourceId to related maintenance records.

Update release 1.8.0

Introduced property activeStatusIds for operations.

Update release 1.19.0

Added properties systemCondition and isExcludedFromWorkOrderPlan for operations.

Update release 1.21.0

Added property area to tag details.

Added ability to read text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.22.0

Added new query parameter include-service-operations. Operations of type Service - PM03 previously available in the operations have been moved to serviceOperations.

Update release 1.24.0

Added property cmrIndicator in the response.

Update release 1.26.0

Added property isEquipmentRental to services in serviceOperations. Added materials to serviceOperations.

tagDetails object now includes the new field maintenanceConceptId

Update release 1.27.0

Work orders now include the property isOpen

Added tag and title to maintenanceRecords expand.

Update release 1.28.0

Added new query parameter include-safety-measures.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Split parts of location on operations.materials into finalLocation and temporaryLocation in the response.

Added agreement & agreementItem on serviceOperations and grossPrice, netValue & currency on services.

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.33.0

Added new properties goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup to materials.

Update release 1.34.0

Added new property relatedOperations to maintenanceRecords and tagsRelated. Also added query parameter include-related-operations to include the property relatedOperations.

Added properties additionalCostWBSId, additionalCostWBS, requiredEndDate, isHSECritical and isProductionCritical to the response.

Update release 1.35.0

Added new properties requisitionerId and deliveryComplete to materials in operations.

Added new properties personResponsible, personResponsibleId and personResponsibleEmail to operations.

Added new property requisitionerId to serviceOperations.

Update release 1.36.0

Added new property planNotes to operations.

Added new properties location and locationId to tagsRelated and maintenanceRecords.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Added new properties plannedWorkHours, actualWorkHours, capacityCount, plannedDuration, calculationKey, earliestStartDateTime, earliestFinishDateTime and safetyMeasures to serviceOperations.

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Update release 1.38.0

Added new property text to materials in operations and serviceOperations.

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
query Parameters
include-operations
boolean
Default: true

Include Work order operations

include-service-operations
boolean
Default: true

Include Work order service operations

include-materials
boolean
Default: true

Include materials for Work order operations

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

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 information for the main tag of the Work order

include-related-tags
boolean
Default: false

Include related tags (from object list)

include-safety-measures
boolean
Default: false

Include safety-measures in work order operations

include-related-operations
boolean
Default: false

Includes the property relatedOperations in the response to expose operations that are related to an object in the objectlist (only relevant for related tags and related maintenance records).

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-service-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-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&include-safety-measures=SOME_BOOLEAN_VALUE&include-related-operations=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "operations": [
    • {
      }
    ],
  • "serviceOperations": [
    • {
      }
    ],
  • "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",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    },
  • "attachments": [
    • {
      }
    ],
  • "requiredEndDate": "2019-08-24",
  • "additionalCostWBSId": "T.O790C.GA.20007",
  • "additionalCostWBS": "Minor modifications 2020",
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "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",
  • "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": "2023-11-28T06:06:14Z",
  • "costWBSId": "M.O037C.20.A.0002.A2",
  • "projectId": "M.O037C.20.A.0002",
  • "costNetworkId": "9045173",
  • "costNetworkOperationId": "0010",
  • "sortField": "PRS10239.WP12",
  • "isOpen": true
}

Project Work order - Update

Overview

Update project work order.

Supports:

  • Append and replace text
  • Update workCenterId and workCenterPlantId
  • Update tagId and tagPlantId
  • Update basicStartDateTime and basicEndDateTime
  • Update sortField
  • Update title
  • Update plannerGroupId
  • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)
  • Update locationId (Use /plants/{plant-id}?include-locations=true&api-version=v1 to get a list of possible values)
  • Update systemId (Use /plants/{plant-id}?include-systems=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.

When Advanced ERP text is enabled, information is not automatically signed and has to be sent with the input when using append

Update release 1.0.0

Added additional properties to update

Update release 1.4.0

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

Update release 1.6.0

Added possibility for update of sortField and revisionId.

Update release 1.7.0

Added possibility for update of locationId and systemId.

Update release 1.18.0

Added possibility for update of title and plannerGroupId.

Update release 1.21.0

Added ability to update text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.33.0

Added possibility to prepend text. Use the operation prepend in the request body to prepend text to the current work order text.

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

The information to be updated

Array
op
string
Enum: "append" "replace" "prepend"

JSON Patch operation according to RFC6902.

Operation replace is suitable for the following properties:

  • /workCenterId
  • /workCenterPlantId
  • /tagId
  • /tagPlantId
  • /basicStartDateTime
  • /basicEndDateTime
  • /locationId
  • /systemId
  • /title
  • /plannerGroupId
  • /text

Operation append is suitable for the following properties:

  • /text

Operation prepend is suitable for the following properties:

  • /text
path
string
Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField" "/locationId" "/systemId" "/title" "/plannerGroupId"

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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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 release 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:
bearerAuth
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 or null <date-time>

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 performing a subsequent request to Lookup project-work-order.

Filter: open-by-plant

Find open Project Work orders by plant-id. Parameters:

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

Filter: recent-status-activations

Find Project work orders based on recent status activations for the work orders. Parameters:

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

Filter: by-cost-network

Find Project work orders based on Cost Network Id. Parameters:

  • cost-network-id
  • plant-id (optional)

Filter: by-cost-wbs

Project work orders based on Cost WBS Id. Parameters:

  • cost-wbs-id
  • plant-id (optional)

Update release 1.4.0

Added location-id and system-id to filter open-by-plant.

Update release 1.5.0

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

Update release 1.21.0

Added filter by-cost-network, with required parameter cost-network-id and optional parameter plant-id.

Update release 1.24.0

Added filter by-cost-wbs, with required parameter cost-wbs-id. Can be used in combination with optional parameter plant-id. This filter only includes work orders where the WBS is represented on the work order level. It does not include work orders where WBS is only represented in the settlement rules.

Added property cmrIndicator in the response.

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.36.0

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchProjectWorkOrdersFilter)
Enum: "open-by-plant" "recent-status-activations" "by-cost-network" "by-cost-wbs"

Filter to limit the Project work order by

status-id
string

Status

plant-id
string = 4 characters
Example: plant-id=1200

Plant identifier

cost-network-id
string

Required parameter if filter=by-cost-network

cost-wbs-id
string

Required parameter if filter=by-cost-wbs

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&cost-network-id=SOME_STRING_VALUE&cost-wbs-id=SOME_STRING_VALUE&location-id=SOME_STRING_VALUE&system-id=SOME_STRING_VALUE&max-days-since-activation=SOME_INTEGER_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

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",
    • "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": "2023-11-28T06:06:14Z",
    • "costWBSId": "M.O037C.20.A.0002.A2",
    • "projectId": "M.O037C.20.A.0002",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "sortField": "PRS10239.WP12",
    • "isOpen": true
    }
]

Project Work order - Create

Overview

Create new Project Work order

Update release 1.4.0

Fixed bug related to costNetworkId.

Update release 1.5.0

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

Update release 1.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.

Update release 1.8.0

Added support for calculation key on operation level. It determines the relationship between plannedWorkDuration, plannedWorkHours, and capacityCount.

Update release 1.19.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Update release 1.37.0

Removed deprecated property cmrIndicator to the response. See STRY0261073 in ServiceNow for more details.

Authorizations:
bearerAuth
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 or null
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

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",
  • "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": "2023-11-28T06:06:14Z",
  • "costWBSId": "M.O037C.20.A.0002.A2",
  • "projectId": "M.O037C.20.A.0002",
  • "costNetworkId": "9045173",
  • "costNetworkOperationId": "0010",
  • "sortField": "PRS10239.WP12",
  • "isOpen": true
}

Project Work order - Add operation(s)

Add operations

Update release 1.8.0

Added support for calculation key, which determines the relationship between plannedWorkDuration plannedWorkHours, and capacityCount.

Update release 1.19.0

Added support for standardTextTemplate (standard text template identifier), systemCondition (describes required process condition for each operation) and isExcludedFromWorkOrderPlan (based on operation status).

Update release 1.21.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Authorizations:
bearerAuth
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
calculationKey
string or null
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.

plannedWorkDuration
string

Duration as defined in ISO8601 Duration can exclusively be either in days or hours and minutes. A combination of these will return an error. The unit field in the ERP-system, will be set based on the input provided. Some accepted examples: PT3H30M, P1D, PT1H30M Some rejected examples: P1DT3H30M, PT1H30M30S

plannedWorkHours
string

Duration as defined in ISO8601 Duration can exclusively be either in days or hours and minutes. A combination of these will return an error. The unit field in the ERP-system, will be set based on the input provided. Some accepted examples: PT3H30M, P1D, PT1H30M Some rejected examples: P1DT3H30M, PT1H30M30S

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>
standardTextTemplate
string

Standard text template identifier

isExcludedFromWorkOrderPlan
boolean
Default: false
systemCondition
string

Required process conditions for each operation

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "operation": "0010",
    • "title": "Bygge stillas",
    • "workCenterId": "PPMAUT",
    • "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": "PPMAUT",
    • "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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Modification Work orders

Used for simple modification of installation.

Modification Work order - Create

Overview

Create new Modification 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/modification-work-orders/{work-order-id}.

Important information

The primary cost wbs of a modification work order is typically resolved automatically from the provided tag. However, in order to later set the modification work order to status REL - Release, you need to provide an additional cost wbs (property additionalCostWBSId) on creation.

Update release 1.19.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.27.0

Work orders now include the property 'isOpen'

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Update release 1.37.0

Removed deprecated property cmrIndicator from the response. See STRY0261073 in ServiceNow for more details.

Authorizations:
bearerAuth
Request Body schema: application/json

Modification Work order to create

planningPlantId
required
string
workCenterId
required
string
workCenterPlantId
required
string
title
required
string
plantId
required
string
modificationProposalId
required
string

Maintenance record to link to the modification work order (usually the maintenance record is of type modification-proposal)

externalPartnerWorkOrderId
string

Work order id as represented in external partner system

additionalCostWBSId
string

The primary cost wbs is typically resolved from the provided tag, but for modification work orders it is required to have an additional cost wbs in place before the work order can be set to status REL - Released

Array of objects (WorkOrderOperationCreate)
tagId
string or null
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

text
string

Responses

Request samples

Content type
application/json
Example
{
  • "modificationProposalId": "45836077",
  • "planningPlantId": "1100",
  • "plannerGroupId": "PPM",
  • "workCenterId": "CO2PIP",
  • "workCenterPlantId": "1100",
  • "title": "14xx/Installere flowline CD2",
  • "tagId": "LZ1012",
  • "tagPlantId": "1100",
  • "additionalCostWBSId": "T.O037C.GA.10002",
  • "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": "Beskrivelse av prosjekt modifikasjon\n",
  • "workOrderTypeId": "modificationWorkOrder",
  • "costWBS": "Conc.: Well A10 GL hook-up FL",
  • "additionalCostWBS": "Minor modifications 2020",
  • "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": "2023-11-28T06:06:14Z",
  • "costWBSId": "M.O037C.20.A.0002.A2",
  • "additionalCostWBSId": "M.T17DA.20.M.0001",
  • "projectId": "M.O037C.20.A.0002",
  • "sortField": "PRS10239.WP12",
  • "isOpen": true
}

Modification Work order - Add time ticket

Overview

Add time ticket for work performed.

Authorizations:
bearerAuth
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 or null <date-time>
workEndDateTime
string or null <date-time>
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": "PPMAUT",
  • "workCenterPlantId": "1100",
  • "title": "Prep jobb",
  • "text": "Multi-line text\nDescribing the work done"
}

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Modification Work order - Lookup

Overview

Lookup single Modification Work order with related information.

Update release 1.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 1.3.0

Introduced holdDeliveryOnshore and requiredDatetime properties for materials.

Update release 1.4.0

Introduced property calculationKey for operations.

Update release 1.5.0

Added createdDateTime for attachments.

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

Update release 1.7.0

Added equipmentId and equipment to the response of tagsRelated.

Adding sourceId to related maintenance records.

Update release 1.11.0

Added properties additionalCostWBSId and additionalCostWBS.

Update release 1.19.0

Added properties systemCondition and isExcludedFromWorkOrderPlan for operations.

Update release 1.21.0

Added property area to tag details.

Added ability to read text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.22.0

Added new query parameter include-service-operations. Operations of type Service - PM03 previously available in the operations have been moved to serviceOperations.

Update release 1.24.0

Added property cmrIndicator in the response.

Update release 1.26.0

Added property isEquipmentRental to services in serviceOperations. Added materials to serviceOperations.

tagDetails object now includes the new field maintenanceConceptId

Update release 1.27.0

Work orders now include the property isOpen

Added tag and title to maintenanceRecords expand.

Update release 1.28.0

Added new query parameter include-safety-measures.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Split parts of location on operations.materials into finalLocation and temporaryLocation in the response.

Added agreement & agreementItem on serviceOperations and grossPrice, netValue & currency on services.

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.34.0

Added new property relatedOperations to maintenanceRecords and tagsRelated. Also added query parameter include-related-operations to include the property relatedOperations.

Added property requiredEndDate, isHSECritical and isProductionCritical to the response.

Update release 1.35.0

Added new properties requisitionerId and deliveryComplete to materials in operations.

Added new properties personResponsible, personResponsibleId and personResponsibleEmail to operations.

Added new property requisitionerId to serviceOperations.

Update release 1.36.0

Added new property planNotes to operations.

Added new properties location and locationId to tagsRelated and maintenanceRecords.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Added new properties plannedWorkHours, actualWorkHours, capacityCount, plannedDuration, calculationKey, earliestStartDateTime, earliestFinishDateTime and safetyMeasures to serviceOperations.

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Update release 1.38.0

Added new property text to materials in operations and serviceOperations.

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
query Parameters
include-operations
boolean
Default: true

Include Work order operations

include-service-operations
boolean
Default: true

Include Work order service operations

include-materials
boolean
Default: true

Include materials for Work order operations

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

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 information for the main tag of the Work order

include-related-tags
boolean
Default: false

Include related tags (from object list)

include-safety-measures
boolean
Default: false

Include safety-measures in work order operations

include-related-operations
boolean
Default: false

Includes the property relatedOperations in the response to expose operations that are related to an object in the objectlist (only relevant for related tags and related maintenance records).

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-service-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-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&include-safety-measures=SOME_BOOLEAN_VALUE&include-related-operations=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "operations": [
    • {
      }
    ],
  • "serviceOperations": [
    • {
      }
    ],
  • "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",
    • "catalogProfileId": "PM-160",
    • "area": "W14",
    • "maintenanceConceptId": "VA1631",
    • "tagId": "AE5566",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE."
    },
  • "attachments": [
    • {
      }
    ],
  • "requiredEndDate": "2019-08-24",
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "text": "Beskrivelse av prosjekt modifikasjon\n",
  • "workOrderTypeId": "modificationWorkOrder",
  • "costWBS": "Conc.: Well A10 GL hook-up FL",
  • "additionalCostWBS": "Minor modifications 2020",
  • "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": "2023-11-28T06:06:14Z",
  • "costWBSId": "M.O037C.20.A.0002.A2",
  • "additionalCostWBSId": "M.T17DA.20.M.0001",
  • "projectId": "M.O037C.20.A.0002",
  • "sortField": "PRS10239.WP12",
  • "isOpen": true
}

Modification Work order - Update

Overview

Update modification work order.

Supports:

  • Append and replace text
  • Update workCenterId and workCenterPlantId
  • Update tagId and tagPlantId
  • Update basicStartDateTime and basicEndDateTime
  • Update sortField
  • Update title
  • Update plannerGroupId
  • Update revisionId (Use /plants/{plant-id}?include-revisions=true&api-version=v1 to get a list of possible values)
  • Update locationId (Use /plants/{plant-id}?include-locations=true&api-version=v1 to get a list of possible values)
  • Update systemId (Use /plants/{plant-id}?include-systems=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.

When Advanced ERP text is enabled, information is not automatically signed and has to be sent with the input when using append

Update release 1.0.0

Added additional properties to update

Update release 1.4.0

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

Update release 1.6.0

Added possibility for update of sortField and revisionId.

Update release 1.7.0

Added possibility for update of locationId and systemId.

Update release 1.18.0

Added possibility for update of title and plannerGroupId.

Update release 1.21.0

Added ability to update text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.33.0

Added possibility to prepend text. Use the operation prepend in the request body to prepend text to the current work order text.

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

The information to be updated

Array
op
string
Enum: "append" "replace" "prepend"

JSON Patch operation according to RFC6902.

Operation replace is suitable for the following properties:

  • /workCenterId
  • /workCenterPlantId
  • /tagId
  • /tagPlantId
  • /basicStartDateTime
  • /basicEndDateTime
  • /locationId
  • /systemId
  • /title
  • /plannerGroupId
  • /text

Operation append is suitable for the following properties:

  • /text

Operation prepend is suitable for the following properties:

  • /text
path
string
Enum: "/text" "/workCenterId" "/workCenterPlantId" "/tagId" "/tagPlantId" "/basicStartDateTime" "/basicEndDateTime" "/revisionId" "/sortField" "/locationId" "/systemId" "/title" "/plannerGroupId"

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/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Modification 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/modification-work-orders/{{work-order-id}}?include-status-details=true

Supported statuses

The endpoint supports most status activation such as:

  • PREP - Job preparation
  • PRCO - Prep compl. waiting goods/service
  • RDEX - Ready for execution
  • STRT - Job started
  • RDOP - Ready for operation
  • REL - Released
  • TECO - Technical complete
  • CLSD - Business close
  • WRNT - Warranty case
  • PLAN - Planning/Scheduling
  • FREZ - Freeze of work scope

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.

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.

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
Authorizations:
bearerAuth
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 or null <date-time>

Responses

Request samples

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

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 1.4.0

Introduced property calculationKey for operations.

Update release 1.5.0

Added createdDateTime for attachments.

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

Update release 1.7.0

Added tagsRelated to the response.

Adding sourceId to related maintenance records.

Update release 1.8.0

Introduced property activeStatusIds for operations.

Update release 1.19.0

Added properties systemCondition and isExcludedFromWorkOrderPlan for operations.

Update release 1.21.0

Added ability to read text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.22.0

Added new query parameter include-service-operations. Operations of type Service - PM03 previously available in the operations have been moved to serviceOperations.

Update release 1.24.0

Added property cmrIndicator in the response.

Update release 1.26.0

Added property isEquipmentRental to services in serviceOperations. Added materials to serviceOperations.

Update release 1.27.0

Work orders now include the property isOpen

Update release 1.28.0

Added new query parameter include-safety-measures.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Split parts of location on operations.materials into finalLocation and temporaryLocation in the response.

Added agreement & agreementItem on serviceOperations and grossPrice, netValue & currency on services.

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.34.0

Added properties additionalCostWBSId, additionalCostWBS, costWBS, isHSECritical and isProductionCritical to the response.

Update release 1.35.0

Added new properties requisitionerId and deliveryComplete to materials in operations.

Added new properties personResponsible, personResponsibleId and personResponsibleEmail to operations.

Added new property requisitionerId to serviceOperations.

Update release 1.36.0

Added new property planNotes to operations.

Added new properties location and locationId to tagsRelated and maintenanceRecords.

Marked cmrIndicator as deprecated. See Deprecation for more information.

Update release 1.37.0

Added new properties plannedWorkHours, actualWorkHours, capacityCount, plannedDuration, calculationKey, earliestStartDateTime, earliestFinishDateTime and safetyMeasures to serviceOperations.

Removed deprecated property cmrIndicator. See STRY0261073 in ServiceNow for more details.

Update release 1.38.0

Added new property text to materials in operations and serviceOperations.

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
query Parameters
include-operations
boolean
Default: true

Include Work order operations

include-service-operations
boolean
Default: true

Include Work order service operations

include-materials
boolean
Default: true

Include materials for Work order operations

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

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, for example the email or name of the person responsible. May have a slight performance impact.

include-status-details
boolean
Default: false

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

include-related-tags
boolean
Default: false

Include related tags (from object list)

include-safety-measures
boolean
Default: false

Include safety-measures in work order operations

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-service-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-materials=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-person-responsible=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE&include-safety-measures=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "personResponsibleId": "433937",
  • "personResponsibleEmail": "shortname@equinor.com",
  • "operations": [
    • {
      }
    ],
  • "serviceOperations": [
    • {
      }
    ],
  • "statuses": [
    • {
      }
    ],
  • "attachments": [
    • {
      }
    ],
  • "tagsRelated": [
    • {
      }
    ],
  • "additionalCostWBSId": "T.O790C.GA.20007",
  • "additionalCostWBS": "Minor modifications 2020",
  • "costWBS": "Conc.: Well A10 GL hook-up FL",
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "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": "PPMAUT",
  • "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": "2023-11-28T06:06:14Z",
  • "sortField": "PRS10239.WP12",
  • "priorityId": "L",
  • "isOpen": true
}

Subsea Work order - Attachment download

Download single attachment for subsea work order

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{}

Overhead Maintenance Work orders

Overhead maintenance orders are used for operational and maintenance tasks, as well as for procurement of bulk goods, and it is recommended to create them annually with weekly operations and a template for multiple orders.

Overhead Maintenance Work order - Lookup Deprecated

Deprecated

This endpoint is marked as deprecated due to currently being unavailable. This endpoint is only a draft. Calling the endpoint until available will result in a 404- Not Found. Deprecation will be removed when the endpoint is available.

Overview

Lookup single Overhead Maintenance Work order 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 1.38.0

Added new property text to materials in operations and serviceOperations.

Authorizations:
bearerAuth
path Parameters
work-order-id
required
string
query Parameters
include-operations
boolean
Default: true

Include Work order operations

include-service-operations
boolean
Default: true

Include Work order service operations

include-materials
boolean
Default: true

Include materials for Work order operations

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

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, for example the email or name of the person responsible. May have a slight performance impact.

include-status-details
boolean
Default: false

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

include-related-tags
boolean
Default: false

Include related tags (from object list)

include-safety-measures
boolean
Default: false

Include safety-measures in work order operations

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/overhead-maintenance-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-service-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-materials=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-person-responsible=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE&include-safety-measures=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "operations": [
    • {
      }
    ],
  • "serviceOperations": [
    • {
      }
    ],
  • "statuses": [
    • {
      }
    ],
  • "attachments": [
    • {
      }
    ],
  • "tagsRelated": [
    • {
      }
    ],
  • "additionalCostWBSId": "T.O790C.GA.20007",
  • "additionalCostWBS": "Minor modifications 2020",
  • "costWBS": "Conc.: Well A10 GL hook-up FL",
  • "isProductionCritical": "H",
  • "isHSECritical": "M",
  • "personResponsibleId": "433937",
  • "personResponsibleEmail": "shortname@equinor.com",
  • "text": "BESTILLING FYLLES UT AV INNMELDER:\nBeskriv bestillingen 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": "overheadMaintenanceWorkOrder",
  • "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",
  • "workCenterId": "PPMAUT",
  • "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": "2023-11-28T06:06:14Z",
  • "sortField": "PRS10239.WP12",
  • "priorityId": "L",
  • "isOpen": true
}

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 performance.

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 performance.

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.

Update release 1.10.0

Added property maintenanceRecordId to measurements.

Added include-characteristics and include-characteristics-without-value query parameter.

Update release 1.15.0

Added workOrderId to response.

Update release 1.21.0

Measuring points for equipment now include the tagId and tagPlantId of the tag the equipment is installed on.

Update release 1.37.0

Added include-measurement-text query parameter to include measurement text in the response.

Authorizations:
bearerAuth
path Parameters
point-id
required
string
Example: 14626974

Measuring point id

query Parameters
include-last-measurement
boolean
Default: false

Include last measurement for the measuring points (only relevant if include-measuring-points is true or if looking up 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

include-characteristics
boolean
Default: false

Include characteristics with defined value for the measuring point. Use include-characteristics-without-value to retrieve all characteristics available for the measuring point.

include-characteristics-without-value
boolean
Default: false

Include all characteristics available for the measuring point regardless if they have a defined value or not. Use include-characteristics to only include characteristics with defined value for the measuring point.

include-measurement-text
boolean
Default: false

Include measurement text in the response

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&include-characteristics=SOME_BOOLEAN_VALUE&include-characteristics-without-value=SOME_BOOLEAN_VALUE&include-measurement-text=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "lastMeasurement": {
    • "text": "Surface coating condition description longtext",
    • "measurementId": "10017608811",
    • "maintenanceRecordId": "45939208",
    • "measuringPointId": "14626974",
    • "measurementDateTime": "2019-08-24T14:15:22Z",
    • "measurementTitle": "string",
    • "quantitativeReading": 19.2,
    • "quantitativeReadingUnitId": "MM",
    • "qualitativeCodeGroupId": "OBSMETH",
    • "qualitativeCodeId": "UT-I",
    • "processingStatusId": "1",
    • "workOrderId": "26033013"
    },
  • "measurements": [
    • {
      }
    ],
  • "qualitativeCodes": [
    • {
      }
    ],
  • "characteristics": [
    • {
      }
    ],
  • "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 - Update

Overview

Update a single measuring point.

Supports:

  • Update measuringPoint and measuringPosition
Authorizations:
bearerAuth
path Parameters
point-id
required
string
Example: 14626974

Measuring point id

Request Body schema: application/json

The information to be updated

Array
op
required
string
Value: "replace"

JSON Patch operation according to RFC6902

path
required
string
Enum: "/measuringPoint" "/measuringPosition"

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:

  • /measuringPoint - max-length 40 characters
  • /measuringPosition - max-length 20 characters

Responses

Request samples

Content type
application/json
[
  • {
    • "op": "replace",
    • "path": "/measuringPoint",
    • "value": "K03: kl3,S4 +125mm ing utvik"
    },
  • {
    • "op": "replace",
    • "path": "/measuringPosition",
    • "value": "P:M03 2\" SV 301"
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Measuring points - Search

Overview

Search measuring points.

Filter: by-plant

Search measuring points based on plant and one other property of the measuring point. Parameters:

  • plant-id

At least one of the following parameters is required:

  • tag-prefix
  • measuring-position
  • quantitative-characteristic
  • qualitative-code-group
  • measuring-point-name
  • characteristic-value-any-of

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

When using the characteristic-value-any-of it is important to URI Encode the input data especially when there are special characters as part of the input:

/measuring-points?characteristic-value-any-of=%3D17445%2F9818,%3D17433/6333&class-id=L_PART&characteristic-id=L_E3DREF&plant-id=1201&api-version=v1

Update release 1.10.0

Added property maintenanceRecordId to measurements.

Added include-characteristics and include-characteristics-without-value query parameter.

Update release 1.15.0

Added workOrderId to response.

Update release 1.20.0

Edited the response structure to support pagination. Use the parameters page and per-page in the parameters to edit wanted response.

Update release 1.21.0

Measuring points for equipment are now included in searches based on plant-id. Measuring points for equipment now include the tagId and tagPlantId of the tag the equipment is installed on.

Update release 1.22.0

To limit the response data for filter by-plant, at least one of the additional parameters must be provided.

Update release 1.30.0

Added characteristic-value-any-of, class-id and characteristic-id query parameters. Can be used to search for measuring points based on values of a characteristic.

Update future release

Added include-measurement-text query parameter to include measurement text in the response.

Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchMeasuringPointsFilter)
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

include-characteristics
boolean
Default: false

Include characteristics with defined value for the measuring points. Use include-characteristics-without-value to retrieve all characteristics available for the measuring points.

include-characteristics-without-value
boolean
Default: false

Include all characteristics available for the measuring points regardless if they have a defined value or not. Use include-characteristics to only include characteristics with defined value for the measuring points.

per-page
integer [ 1 .. 100 ]
Default: 50

Results to return pr page

page
integer
Default: 1

Page to fetch

characteristic-id
string or null
Example: characteristic-id=L_E3DREF

Required field if characteristic-value-any-of is supplied. Endpoint /characteristics/{class-id} can be used to find characteristic ids.

class-id
string or null
Example: class-id=L_PART

Required field if characteristic-value-any-of is supplied.

characteristic-value-any-of
string
Example: characteristic-value-any-of=%3D33814%2F12073

Search based on characteristic values. Must be used in combination with class-id and characteristic-id. Wildcards are not supported. Make sure to encode the parameters if they contain special characters.

include-measurement-text
boolean
Default: false

Include measurement text in the response

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&include-characteristics=SOME_BOOLEAN_VALUE&include-characteristics-without-value=SOME_BOOLEAN_VALUE&per-page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE&characteristic-id=SOME_STRING_VALUE&class-id=SOME_STRING_VALUE&characteristic-value-any-of=SOME_STRING_VALUE&include-measurement-text=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "lastMeasurement": {
      },
    • "measurements": [
      ],
    • "qualitativeCodes": [
      ],
    • "characteristics": [
      ],
    • "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 - Create

Create a new measuring point.

Important information

Mandatory fields for the creation of a measuring point are either tagId and tagPlantId, or equipmentId.

As well the request must contain either quantitativeCharacteristicId, qualitativeCodeGroupId or combination of the two.

Setting characteristics class and initial characteristics values (for example for class R_PIPE_DETAILS and characteristicId R_E3D_REF_NO) must be done through a separate endpoint POST /measuring-points/{point-id}/characteristics.

Authorizations:
bearerAuth
Request Body schema: application/json

Measuring point to create

measuringPoint
string

Description of the measuring point

tagId
string or null

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

measuringPosition
string <= 20 characters

Describes the position of the measuring point in relation to the technical object

quantitativeCharacteristicId
string

Required to input either quantitativeCharacteristicId or qualitativeCodeGroupId

categoryId
string

Key used to identify a measuring point category R - Process Inspection Meas. Point M - MeasPoint (general) B - PM General M&C (Warning)

qualitativeCodeGroupId
string

Required to input either quantitativeCharacteristicId or qualitativeCodeGroupId

Responses

Request samples

Content type
application/json
Example
{
  • "tagId": "1A1-A16A",
  • "tagPlantId": "1100",
  • "quantitativeCharacteristicId": "SM_COATING_CONDITION_ITEM",
  • "measuringPoint": "K03: kl3,S4 +125mm ing utvik"
}

Response samples

Content type
application/json
{
  • "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.

Update release 1.10.0

Added maintenanceRecordId to request.

Update release 1.15.0

Added workOrderId to request and response.

Update release 1.37.0

Add support for text in the request body and response.

Authorizations:
bearerAuth
path Parameters
point-id
required
string
Example: 14626974

Measuring point id

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.

maintenanceRecordId
string

The recordId of related maintenance record (typically activity-report or failure-report)

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

workOrderId
string

The workOrderId of the related work order

text
string

Long text for the measurement document

Responses

Request samples

Content type
application/json
Example
{
  • "quantitativeReading": 19.2,
  • "text": "K03: kl3,S4 +125mm ing utvikling er under operasjoner"
}

Response samples

Content type
application/json
{
  • "measurementId": "10017608811",
  • "maintenanceRecordId": "45939208",
  • "measuringPointId": "14626974",
  • "measurementDateTime": "2019-08-24T14:15:22Z",
  • "measurementTitle": "string",
  • "quantitativeReading": 19.2,
  • "quantitativeReadingUnitId": "MM",
  • "qualitativeCodeGroupId": "OBSMETH",
  • "qualitativeCodeId": "UT-I",
  • "processingStatusId": "1",
  • "workOrderId": "26033013"
}

Measurement - Update

Update a measurement for measuring point. The supported fields are: measurementTitle and processingStatusId.

Update release 1.37.0

Add support for text in the request body.

Authorizations:
bearerAuth
path Parameters
point-id
required
string
Example: 14626974

Measuring point id

measurement-id
required
string
Example: 14626974

Measurement id

Request Body schema: application/json

Fields in measuring point to update

Array
op
required
string
Enum: "replace" "append" "prepend"

JSON Patch operation according to RFC6902

Operation replace is suitable for the following properties:

  • /measurementTitle
  • /processingStatusId
  • /text

Operation append is suitable for the following properties:

  • /text

Operation prepend is suitable for the following properties:

  • /text
path
required
string
Enum: "/measurementTitle" "/processingStatusId" "/text"

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.

"replace" supports following fields: Path specific information:

  • /measurementTitle - max-length 40 characters
  • /processingStatusId
    • 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
[
  • {
    • "op": "replace",
    • "path": "/processingStatusId",
    • "value": "1"
    },
  • {
    • "op": "replace",
    • "path": "/measurementTitle",
    • "value": "K03: kl3,S4 +125mm ing utvik"
    },
  • {
    • "op": "replace",
    • "path": "/text",
    • "value": "K03: kl3,S4 +125mm ing utvikling er under operasjoner"
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Measuring point - Add characteristics

Add characteristics to existing measuring point.

Characteristics are grouped into a class such as R_PIPE_DETAILS or POSITION_DETAILS. Classes can be assigned to a measuring point and specific characteristics such as R_DIAMETER_MM and E3D_REF_NO will then be available for that specific measuring point.

With this endpoint, the consumer can assign classes to a measuring point and define initial values for some of the characteristics in the classes.

There is currently no endpoint for looking up existing classes and their characteristics, but this may be added in the future.

Important information

Use /measuring-points/{point-id}?include-characteristics=true&api-version=v1 to view characteristics with value after using this endpoint.

Authorizations:
bearerAuth
path Parameters
point-id
required
string
Example: 14626974

Measuring point id

Request Body schema: application/json

Characteristics to add to measuring point.

Array
classId
required
string

The class which contains the characteristics

Array of objects (CharacteristicAdd)

Specific characteristics in the class to define a value for

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "classId": "R_PIPE_DETAILS"
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

Measuring Point - Update characteristics

Update existing values of characteristics on a tag. If the characteristics does not exist, a 404 - Not Found is returned.

Authorizations:
bearerAuth
path Parameters
point-id
required
string
Example: 14626974

Measuring point id

Request Body schema: application/json

Characteristics to be updated, based on JsonPatch standard

Array
required
Array of objects (CharacteristicsJsonPatch)
characteristicId
required
string
classId
required
string

Responses

Request samples

Content type
application/json
Example
[
  • {
    • "characteristicId": "CRIT_CRITICALITY",
    • "classId": "FL_MAINT_STRATEGY",
    • "patchDocument": [
      ]
    }
]

Response samples

Content type
application/problem+json
Example
{
  • "errorDetails": [
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters.",
    • "The length of 'title' must be 40 characters or fewer. You entered 53 characters."
    ],
  • "detail": "Validation errors for property: title",
  • "title": "One or more validation errors occurred.",
  • "status": 400,
  • "extensions": {
    • "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00",
    • "property1": { },
    • "property2": { }
    },
  • "errors": {
    • "property1": [
      ],
    • "property2": [
      ]
    }
}

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

Update release 1.8.0

Added isActive property.

Update release 1.13.0

Added uniqueKey in TaskListOperations.

Update release 1.14.0

Removed taskList and objectList properties from the response schema. They were never included in the actual response, so this change has no implication on the data received from the API.

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "maintenancePlanId": "1056916",
  • "maintenancePlan": "1100-AKCD2 MODULPROGRAM TELE CD2",
  • "isActive": true,
  • "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 1.2.0

Added calculationKey for operations in the task list.

Update release 1.5.0

Bugfix related to text for operation.

Update release 1.8.0

New properties were added to the calls expand: duePackages, schedulingType, callDate, completionDate

Update release 1.9.0

Added property objectId for objectList.

Update release 1.13.0

Added parameter include-item-object-list-linkage with default value true. Added uniqueKey in TaskListOperations.

Update release 1.14.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.20.0

Added the property changedDateTime on maintenanceItem and on taskList. The value of the field on the task list level represents the latest date at which the taskList or any of its operations has been changed, added, or deleted.

Update release 1.31.0

Added the property systemCondition

Authorizations:
bearerAuth
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-object-list-linkage
boolean
Default: true

Include object list linkage for 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-object-list-linkage=SOME_BOOLEAN_VALUE&include-item-task-list=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "taskList": {
    • "operations": [
      ],
    • "taskListId": "T-10012713-02",
    • "taskList": "24/48M FV-MULTI TRAIN1 GLYCOL REBOILER",
    • "taskListTypeId": "T",
    • "planningPlantId": "1100",
    • "statusId": "4",
    • "changedDateTime": "2023-11-28T06:06:14Z"
    },
  • "objectList": [
    • {
      }
    ],
  • "maintenanceStrategyId": "1100-1",
  • "maintenanceStrategy": "Statfjord A Platform (Month)",
  • "status": "RDEX PLAN",
  • "calls": [
    • {
      }
    ],
  • "maintenanceActivityTypeId": "002",
  • "maintenanceActivityType": "Periodic maintenance",
  • "maintenancePlanItemId": "10072940",
  • "maintenancePlanItem": "24M FV-TELE MODULPROGRAM CD2",
  • "maintenancePlanId": "1056916",
  • "planningPlantId": "1100",
  • "mainTagId": "AE5566",
  • "mainTagPlantId": "1100",
  • "changedDateTime": "2023-11-28T06:06:14Z"
}

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:
bearerAuth
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 status - Update

Overview

Update status 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.

To find affected maintenance plans, use HTTP GET request /maintenance-plans?filter=by-task-id&task-id={task-id}

Authorizations:
bearerAuth
path Parameters
plan-id
required
string

The id of the maintenance plan

item-id
required
string

The id of the maintenance plan item

status-id
required
string
Example: RDEX

The id of the status

Request Body schema: application/json

Update maintenance item status

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
Example
[
  • {
    • "op": "replace",
    • "path": "/isActive",
    • "value": true
    }
]

Response samples

Content type
application/json
{}

Maintenance Plan Item task list - Update

Overview

Update task list 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:
bearerAuth
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 Plan Item - Delete object list linkage

Overview

Delete maintenance item object linkage Deleting maintenance item object linkage of operations with suboperationId is not supported.

Authorizations:
bearerAuth
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

operation-id
required
string
Example: 0010

The id of the operation within the task

object-list-linkage-id
required
string
Example: 2

The id of the object linkage item

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/object-list-linkage/%7Bobject-list-linkage-id%7D \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{}

Maintenance Plan Item - Create object list linkage

Overview

Create maintenance item object linkage
Creating maintenance item object linkage of operations with suboperationId is not supported.

Authorizations:
bearerAuth
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

operation-id
required
string
Example: 0010

The id of the operation within the task

Request Body schema: application/json

Technical information update request to create

tagId
string or null

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

Responses

Request samples

Content type
application/json
Example
{
  • "tagId": "PX",
  • "tagPlantId": "1100"
}

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.

Update release 1.8.0

Added isActive property.

Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchMaintenancePlanFilter)
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "maintenancePlanId": "1056916",
    • "maintenancePlan": "1100-AKCD2 MODULPROGRAM TELE CD2",
    • "isActive": true,
    • "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 necessary 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:
bearerAuth
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.

Updating operations with suboperationId is not supported.

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 necessary ids.

Update for release 1.2.0

Added calculationKey as updatable field.

Update release 1.5.0 + 1.11.0

Bugfix related to text for operation.

Update release 1.14.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.31.0

Added property systemCondition

Authorizations:
bearerAuth
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" "/systemCondition" "/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": "PPMAUT"
    },
  • {
    • "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": "/systemCondition",
    • "value": "3"
    },
  • {
    • "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 necessary ids.

Examples

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

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

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 necessary ids.

activityTypeId is related to cost center and fiscal year, and there is currently no endpoint to get possible values. Creating operation with suboperationId is not supported.

Update release 1.5.0

Bugfix related to text for operation.

Update release 1.14.0

Added ability to create text with advanced formatting. See the heading Resource text in the description for more info. This feature is controlled by a configuration switch, which will initially be disabled, and when appropriate, enabled.

Update release 1.31.0

Added property systemCondition

Authorizations:
bearerAuth
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

workCenterId
string
workCenterPlantId
string
text
string
calculationKey
string or null
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 or null

Duration as defined in ISO8601

capacityCount
integer <int32> [ 0 .. 255 ]

Number of capacity from work center required for the operation

plannedDuration
string or null

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
systemCondition
string

Required process conditions for each operation

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": "",
  • "uniqueIndex": "505T100370070000000200000002",
  • "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",
  • "systemCondition": "3",
  • "activityTypeId": "X4"
}

Maintenance Plan Item - Create operation material needs

Overview

Create material needs of operation for a maintenance plan item. Adding material to operations with suboperationId is not supported.

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 necessary ids.

Authorizations:
bearerAuth
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

quantity
required
number <double> [ 0 .. 1000 ]
materialId
required
string

The material number there is a need for

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. Updating material needs of operations with suboperationId is not supported.

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 necessary ids.

Authorizations:
bearerAuth
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 necessary ids.

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{}

Maintenance concepts

The company's collection of standardized preventive maintenance activities to facilitate safe, reliable and efficient operation.

Maintenance Concept - Lookup

Overview

Lookup single maintenance concept

Update release 1.7.0

Added property conceptInstructions to maintenance concept and property text for maintenance activity.

Update release 1.9.0

Extended support for durations, now displaying durations for all formats in SAP. This change is implemented on all the duration fields; recommendedInterval, maxInterval and initialInterval.

Weeks (WCH) will be represented as days, e.g WCH=5 will be converted to P35D

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "concept": "Valve-act-Efunc",
  • "conceptDescription": "Valve - on/off actuated - PSD function- cryo with SCE code 28",
  • "conceptInstructions": "<H>This maintenance concept applies to:</>\n- Valve on/off-actuated, PSD function with SCE code 28, cryogenic\nservice\n",
  • "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:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "maintenanceStrategyId": "1100-1",
  • "maintenanceStrategy": "Statfjord A Platform (Month)",
  • "maintenancePackages": [
    • {
      }
    ]
}

Master data for work orders

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

Work orders - Get standard text templates

Overview

Get a list of standard text templates which can be used for work order operations.

For preventive maintenance, the standard text template can be assigned to work order operations in the maintenance programme (see Maintenance Plan Item - Update operation)

Filter: by-plant

Find standard text templates by plant.
Parameters:

  • plant-id

Filter: all

Find all standard text templates.
Parameters:

  • None

Examples

/work-orders/standard-text-templates?filter=by-plant&plantId=1100&api-version=v1 - Get all standard text templates specific for plant 1100.

/work-orders/standard-text-templates?filter=all&api-version=v1 - Get all standard text templates

Authorizations:
bearerAuth
query Parameters
filter
required
string
Enum: "by-plant" "all"

Filter to limit the failure reports by

plant-id
string = 4 characters
Example: plant-id=1200

Plant identifier

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/standard-text-templates?filter=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "standardTextTemplateId": "1100-VA",
    • "standardTextTemplate": "Varmtarbeid"
    }
]

Work orders - Get safety measures

Overview

Get a list of safety measures. They can be added to a work order operation when it requires special safety practices or risk management

Authorizations:
bearerAuth

Responses

Request samples

curl --request GET \
  --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/safety-measures \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "documentId": "WORK AT HEIGHT-A80-000-00",
    • "documentTitle": "Work at height"
    }
]

Work orders - Get cost categories

Overview

Get a list of cost categories. They can be added to a work order when it requires special cost tracking.

Authorizations:
bearerAuth

Responses

Request samples

curl --request GET \
  --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/cost-categories \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "costCategoryId": "COST_CUTBK",
    • "costCategory": "Cutback Costs"
    }
]

Technical feedback - Master data

Overview

Get a list of all statuses and reasons which can be used in updating technical feedback.

POST /work-order-operations/{operation-id}/technical-feedback/{technical-feedback-id}

Authorizations:
bearerAuth

Responses

Request samples

curl --request GET \
  --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/technical-feedback-master-data \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "feedbackStatusId": "0",
    • "feedbackStatus": "Not reported",
    • "reasons": null
    },
  • {
    • "feedbackStatusId": "1",
    • "feedbackStatus": "Done",
    • "reasons": [
      ]
    },
  • {
    • "feedbackStatusId": "2",
    • "feedbackStatus": "Not done",
    • "reasons": [
      ]
    }
]

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 0.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 0.10.0

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

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

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

There are two ways to filter for task codes.

  • by maintenance-record-id
  • by maintenance-record-type and catalog-profile-id

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.

Required to provide parameter maintenance-record-id or catalog-profile-id and maintenance-record-type

Update release 1.11.0

Added support for technical information update request

Authorizations:
bearerAuth
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" "technical-information-update-request"

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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

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:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

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

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 Deprecated

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.

Important information

Endpoint is deprecated as of 11.2022 in order to simplify API design. Use /plants/{plant-id}?include-tag-catalog-profiles=true instead.

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

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

Locations - Get Deprecated

Overview

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

Important information

Endpoint is deprecated as of 11.2022 in order to simplify API design. Use /plants/{plant-id}?include-locations=true instead.

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

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

Planner groups - Get Deprecated

Get planner groups

Important information

Endpoint is deprecated as of 11.2022 in order to simplify API design. Use /plants/{plant-id}?include-planner-groups=true instead.

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

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

Work centers - Get Deprecated

Overview

Get Work centers for plant.

Important information

Endpoint is deprecated as of 11.2022 in order to simplify API design. Use /plants/{plant-id}?include-work-centers=true instead.

Authorizations:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

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

Plants - Lookup

Overview

Lookup a single plant with related information.

Update release 1.6.0

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

Update release 1.7.0

Added include-systems query parameter.

Update release 1.13.0

Added include-equipment-catalog-profiles query parameter.

Update release 1.14.0

Added include-only-default-tag-catalog-profiles query parameter to limit the response from include-tag-catalog-profiles and/or include-equipment-catalog-profiles

Update release 1.17.0

Added the allowSimplifiedTimeAndProgress flag to represent is the plant is valid for Non-CATS time recording.

Updated PlanningPlantRevision-model.

Update release 1.20.0

Added query parameter include-baseline-plans related to OM104.01.06 - Prepare Work order plan and work-order-plan/.

Update release 1.34.0

Added include-responsible-persons to the response. Added responsiblePersons to the response.

Authorizations:
bearerAuth
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-equipment-catalog-profiles
boolean
Default: false

Include equipment catalog profiles in use for plant

include-only-default-catalog-profiles
boolean
Default: false

Use this in combination with include-tag-catalog-profiles=true and/or include-equipment-catalog-profiles=true to improve performance.

include-surface-degradation-factors
boolean
Default: false

Include surface degradations for plant

include-revisions
boolean
Default: false

Include revisions for plant

include-systems
boolean
Default: false

Include systems for plant

include-baseline-plans
boolean
Default: false

Include open baseline plans for the planning plant of this plant

include-responsible-persons
boolean
Default: false

Include persons that are already responsible for objects on this 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-equipment-catalog-profiles=SOME_BOOLEAN_VALUE&include-only-default-catalog-profiles=SOME_BOOLEAN_VALUE&include-surface-degradation-factors=SOME_BOOLEAN_VALUE&include-revisions=SOME_BOOLEAN_VALUE&include-systems=SOME_BOOLEAN_VALUE&include-baseline-plans=SOME_BOOLEAN_VALUE&include-responsible-persons=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

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

Revisions - Search

Overview

Search revisions for a single plant with related information.

Filter: by-revision-id

Search by revision ids for a single plant

Parameters:

  • revision-id-any-of
  • include-work-order-operations (default: false)
  • include-work-order-operation-text (default: false)
  • include-only-work-order-operations-with-materials (default: false)

Examples

/plants/1310/revisions?filter=by-revision-id&revision-id-any-of=OFP,OFP%202022,&include-work-order-operations=true&include-only-work-order-operations-with-materials=true&include-work-order-operation-text=true&api-version=v1

Update release 1.19.0

Added parameter include-text-item-materials.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.33.0

Added new properties goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup to materials.

Update release 1.35.0

Added new properties requisitionerId and deliveryComplete to materials in operations.

Update release 1.36.0

Added superiorRoutingCounterId to operations.

Update release 1.38.0

Added property text to materials in workOrderOperations.

Authorizations:
bearerAuth
path Parameters
plant-id
required
string
query Parameters
filter
required
string (SearchRevisionsFilter)
Value: "by-revision-id"

Filter to limit revisions

revision-id-any-of
string
Example: revision-id-any-of=OFP,OFP%202022

Comma-separated list of revision-id

include-work-order-operations
boolean
Default: false

Include the work order operations

include-only-work-order-operations-with-materials
boolean
Default: false

Limit the work order operations to only those which have material

include-text-item-materials
boolean
Default: false

Include text item materials

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/revisions?filter=SOME_STRING_VALUE&revision-id-any-of=OFP%2COFP%25202022&include-work-order-operations=SOME_BOOLEAN_VALUE&include-only-work-order-operations-with-materials=SOME_BOOLEAN_VALUE&include-text-item-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-materials=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "workOrderOperations": [
      ],
    • "revisionId": "PS02_21",
    • "revision": "Planlagt stans februar 2021",
    • "revisionStartDateTime": "2019-08-24T14:15:22Z",
    • "revisionEndDateTime": "2019-08-24T14:15:22Z",
    • "revisionStartDate": "2019-08-24T14:15:22Z",
    • "revisionEndDate": "2019-08-24T14:15:22Z",
    • "isCompleted": false
    }
]

Revisions Work Order Operations - Search

Overview

Search revision work order operations on a plant.

Parameters:

  • include-work-order-operation-text (default: false)
  • include-only-work-order-operations-with-materials (default: false)

Examples

/plants/1310/revisions/PS01-23?include-only-work-order-operations-with-materials=true&include-work-order-operation-text=true&page=1&per-page=10&api-version=v1

Update release 1.28.0

Added changedDateTime,changedById, changedBy, changedByEmail.

Update release 1.29.0

Added progressChangedDateTime, progressChangedBy, progressChangedById and progressChangedByEmail to response. These values represent the last update datetime for technical feedback. Altered changedDateTime, changedBy, changedById and changedByEmail to only represent last update to the operation.

Update release 1.30.1

Added fields confirmationDateTime, confirmationBy, confirmationByEmail and confirmationById.

Update release 1.31.0

Fixed enum values for schedulingStartConstraintId and schedulingFinishConstraintId

Split parts of location on materials into finalLocation and temporaryLocation in the response.

Update release 1.32.0

Added include-cost-data-for-materials query parameter. When this parameter is set to true, the following properties will be included in materials expand: goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup.

Update release 1.33.0

Added new properties goodsRecipientId, price, priceCurrency, unloadingPoint, and purchasingGroup to materials.

Update release 1.35.0

Added new properties requisitionerId and deliveryComplete to materials in operations.

Update release 1.36.0

Added superiorRoutingCounterId to response.

Update release 1.38.0

Added property text in materials.

Authorizations:
bearerAuth
path Parameters
plant-id
required
string
revision-id
required
string
query Parameters
include-only-work-order-operations-with-materials
boolean
Default: false

Limit the work order operations to only those which have material

include-text-item-materials
boolean
Default: false

Include text item materials

include-cost-data-for-materials
boolean
Default: false

Include cost data for materials. Additional authorization will be required to retrieve these fields.

per-page
integer [ 1 .. 100 ]

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/plants/%7Bplant-id%7D/revisions/%7Brevision-id%7D/work-order-operations?include-only-work-order-operations-with-materials=SOME_BOOLEAN_VALUE&include-text-item-materials=SOME_BOOLEAN_VALUE&include-cost-data-for-materials=SOME_BOOLEAN_VALUE&per-page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "operationId": "1005419798-00000001",
    • "operation": "0020",
    • "workOrderId": "24983466",
    • "title": "Bygge stillas",
    • "superiorRoutingCounterId": "00000009",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "standardTextTemplate": "1100-GS",
    • "isCompleted": false,
    • "plannedWorkHours": "PT3H",
    • "actualWorkHours": "PT2H30M",
    • "actualPercentageComplete": 75,
    • "capacityCount": 1,
    • "plannedDuration": "PT2H45M",
    • "isScheduledExternally": true,
    • "earliestStartDateTime": "2019-08-24T14:15:22Z",
    • "earliestFinishDateTime": "2019-08-24T14:15:22Z",
    • "schedulingStartConstraintId": "MSO",
    • "schedulingStartConstraintDateTime": "2019-08-24T14:15:22Z",
    • "schedulingFinishConstraintId": "MFO",
    • "schedulingFinishConstraintDateTime": "2019-08-24T14:15:22Z",
    • "calculationKey": "CALC_KEY_MANUAL",
    • "activeStatusIds": "REL CNF",
    • "hasMaterial": false,
    • "changedDateTime": "2023-11-28T06:06:14Z",
    • "changedById": "433937",
    • "changedBy": "Dagfinn Parnas",
    • "changedByEmail": "dapa@equinor.com",
    • "progressChangedDateTime": "2023-11-28T06:06:14Z",
    • "progressChangedById": "932131",
    • "progressChangedBy": "David Ramsay",
    • "progressChangedByEmail": "dar@equinor.com",
    • "confirmationDateTime": "2019-08-24T14:15:22Z",
    • "confirmationBy": "Harald Hårfagre",
    • "confirmationById": "932131",
    • "confirmationByEmail": "example@equinor.com",
    • "materials": [
      ]
    }
]

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)

Update release 1.13.0

Added include-equipment-catalog-profiles query parameter.

Update release 1.17.0

Added the allowSimplifiedTimeAndProgress flag to represent is the plant is valid for Non-CATS time recording.

Update release 1.20.0

Added query parameter include-baseline-plans related to OM104.01.06 - Prepare Work order plan and work-order-plan/.

Update release 1.34.0

Added include-responsible-persons to the response. Added responsiblePersons to the response.

Authorizations:
bearerAuth
query Parameters
filter
required
string (SearchPlantFilter)
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-equipment-catalog-profiles
boolean
Default: false

Include equipment catalog profiles in use for plant

include-surface-degradation-factors
boolean
Default: false

Include surface degradations for plant

include-baseline-plans
boolean
Default: false

Include open baseline plans for the planning plant of this plant

include-responsible-persons
boolean
Default: false

Include persons that are already responsible for objects on this 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-equipment-catalog-profiles=SOME_BOOLEAN_VALUE&include-surface-degradation-factors=SOME_BOOLEAN_VALUE&include-baseline-plans=SOME_BOOLEAN_VALUE&include-responsible-persons=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

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

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:
bearerAuth
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 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

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

Logged in user - Lookup

Overview

Get information for the currently logged in user.

If query parameter include-authorization is true, the request will check if the user has the necessary basic accesses required for the API. Consumer applications could use the response to display general instructions for applying to access if authorization.hasAccessToAPI is false.

Update release 1.26.0

Add query parameter include-is-discipline-responsible with default value false. Add parameter isDisciplineResponsible to response.

Authorizations:
bearerAuth
query Parameters
include-authorizations
boolean
Default: true

Include information on authorization user has for API

include-is-discipline-responsible
boolean
Default: false

Include information if user is discipline responsible

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/user?include-authorizations=SOME_BOOLEAN_VALUE&include-is-discipline-responsible=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "userId": "string",
  • "userType": "EQUINOR",
  • "isUserTypeSupported": true,
  • "authorization": {
    • "hasAccessToAPI": true,
    • "details": {
      }
    },
  • "isDisciplineResponsible": true
}

Text templates - Search

Overview

Get one or more text templates to be used in maintenance records, work orders or maintenance program.

There is an allowlist for which templates are available through this endpoint and it includes:

  • Failure report templates: Pattern <plant>-M2-<X> such as 1100-M2 and 1100-M2-X
  • Failure report task templates: M2_TASK_EXTR, M2_TASK_TICO and M2_TASK_TICO_ENG

The text of the template follows the advanced formatting as described in Resource text.

Update release 1.32.0

Added support for the following templates:

  • M1_SIMPLIFIED_SAS
  • M1_ENKEL_SAS
  • M5N
  • M1N
Authorizations:
bearerAuth
query Parameters
template-name-any-of
string
Default: "M2_Task,-M2-X"
Example: template-name-any-of=1100-M2,1100-M2-X,M2_TASK_EXTR

Comma-separated list of text templates to return

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/text-templates?template-name-any-of=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "templateName": "1100-M2",
    • "text": "FYLLES UT AV INNMELDER OG VERIFISERES AV ANSVARLIG FAG (Se ARIS/WI00019/OPL00048)\n\nBESKRIV FEILEN SÅ GODT SOM MULIG (LEGG GJERNE MED BILDER):\n{{COMMAND INCLUDE Z_110_FLX_BEREDSKAPSGASSMAAL_0001 OBJECT TEXT ID IPRT}}\n{{LEFT_ALIGNED}}Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation\nullamco laboris nisi ut aliquip ex ea commodo consequat.\n{{CENTERED}}Duis aute irure dolor in reprehenderit in voluptate velit \nesse cillum dolore eu fugiat nulla pariatur.\\nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui \nofficia deserunt mollit anim id est laborum.\n",
    • "title": "Standard M2 Longtext - Norwegian",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2023-11-28T06:06:14Z"
    }
]

Master data for catalogs

Provide master data for a catalog e.g for code groups. This information is often required as parameters to other endpoints for example POST /measuring-points

Code Group - Search

Overview

Returns a list of codeGroups that belong in the catalog.

The catalog-id can be any of the following:

catalogId Description
1 Characteristic attribute
2 Tasks
5 Failure mechanism
C Failure mode
V Measuring points
D Coding

Update release 1.28.0

Added catalog for coding to be used for general classification of maintenance records.

Authorizations:
bearerAuth
path Parameters
catalog-id
required
string
Enum: "1" "2" "5" "C" "D" "V"

Responses

Request samples

curl --request GET \
  --url https://api-test.gateway.equinor.com/maintenance-api/catalogs/%7Bcatalog-id%7D/code-groups \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "codeGroupId": "string",
    • "codeGroup": "string",
    • "codes": [
      ]
    }
]

Catalog Profiles - Search

Overview

Returns a list of Catalog Profiles for the given catalog-profile-ids. This endpoint allows for including the following multi-line helpText properties if include-text=true is set in the request:

  • failureModeHelpText for failureModes
  • detectionMethodHelpText for detectionMethods
  • failureMechanismHelpText for failureMechanisms

These are not included by default due to their detrimental effect on the performance of this endpoint.

Authorizations:
bearerAuth
query Parameters
catalog-profile-id
required
string
Example: catalog-profile-id=PM-M2,PM-254,PM-999

List of catalog-profile-ids to search for

include-text
boolean
Default: false

Include helpText properties for failureModes, detectionMethods and failureMechanisms in the response. Affects performance.

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/catalogs/profiles?catalog-profile-id=PM-M2%2CPM-254%2CPM-999&include-text=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

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

Master data for characteristics

Provide master data for characteristics and class. This information is often required as parameters to other endpoints for example POST /measuring-points/{point-id}/characteristics

Class - Lookup

Overview

Returns a list of characteristics for a Class.

The class-type can be any of the following:

class-type Description
002 Equipment
003 Tags
015 Notification Item
037 Measuring Point
Authorizations:
bearerAuth
path Parameters
class-id
required
string
Example: SAFE_CRIT_EQ_INSP
query Parameters
class-type
required
string
Enum: "002" "003" "015" "037"

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/characteristics/%7Bclass-id%7D?class-type=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "classId": "SAFE_CRIT_EQ_INSP",
  • "classType": "003",
  • "characteristics": [
    • {
      }
    ]
}

Reports

Custom reports from Equinor's ERP-system.

Concept activities - Get

Overview

Get the list of Maintenance Items implemented to a tag.

Authorizations:
bearerAuth
query Parameters
plant-id
required
string = 4 characters
Example: plant-id=1200

Plant identifier

tag-id
required
string
Example: tag-id=AB
include-item-calls
boolean
Default: true

Include calls to maintenance plan item

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/reports/concept-activities?plant-id=SOME_STRING_VALUE&tag-id=AB&include-item-calls=SOME_BOOLEAN_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "activityCode": "VA1733-0006",
    • "activityGroupText": "Functional test",
    • "plannedDate": "2025-12-31",
    • "cycleId": "24",
    • "cycle": " 24 Monthly-2Y (GROUP A)",
    • "cycleIntervalId": "0",
    • "complianceStatus": "OK",
    • "calls": [
      ],
    • "maintenancePlanItemId": "10072940",
    • "maintenancePlanItem": "24M FV-TELE MODULPROGRAM CD2",
    • "maintenancePlanId": "1056916",
    • "planningPlantId": "1100",
    • "mainTagId": "AE5566",
    • "mainTagPlantId": "1100",
    • "changedDateTime": "2023-11-28T06:06:14Z"
    }
]

Report for EqHub and SEMI usage - Get

Overview

Get the list of EqHub and SEMI usage. T-code in backend system ZOMPM_SEMI_USAGE.

Update release 1.38.0

Added filter changed-since-datetime and changed-before-datetime.

Authorizations:
bearerAuth
query Parameters
eqhub-id-any-of
string
Example: eqhub-id-any-of=100000000,100000001

Comma-separated List of eqhub id's

SEMI-id-any-of
string
Example: SEMI-id-any-of=100000000,100000001

Comma-separated List of SEMI id's

filter
string
Enum: "eqhub" "SEMI"

Filter between eqhub or SEMI

include-status
boolean
Default: false

Include status in response

changed-since-datetime
string <date-time>

Earliest datetime to return EqHub and SEMI usage for.

changed-before-datetime
string <date-time>

Latest datetime to return EqHub and SEMI usage for.

per-page
integer [ 1 .. 100 ]
Default: 100

Results to return per page

page
integer
Default: 1

Page to fetch

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/reports/eqhub-and-semi-usage?eqhub-id-any-of=100000000%2C100000001&SEMI-id-any-of=100000000%2C100000001&filter=SOME_STRING_VALUE&include-status=SOME_BOOLEAN_VALUE&changed-since-datetime=SOME_STRING_VALUE&changed-before-datetime=SOME_STRING_VALUE&per-page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "semiId": "123456",
    • "documentType": "A01",
    • "documentNumber": "123456",
    • "objectNumber": "123456",
    • "category": "EQHUB",
    • "status": "APPROVED",
    • "documentTitle": "EQHUB ID 123456",
    • "documentCreatedDate": "2024-02-23",
    • "objectType": "EQUI",
    • "objectTypeText": "Equipment",
    • "objectDescription": "Equipment description",
    • "objectBom": true,
    • "createdOnDateTime": "2024-02-23T12:00:00",
    • "createdById": "123456",
    • "changedOnDateTime": "2024-02-23T12:00:00",
    • "changedById": "123456",
    • "manufacturer": "ABB",
    • "model": "QWM000991134",
    • "manufacturerPartNumber": "QWM000991134++12309",
    • "serialNumber": "12312730456",
    • "constructionType": "123451273609128736",
    • "constructionTypeText": "Construction type",
    • "equipmentFunctionalLocationId": "1100-TESTAB",
    • "equipmentFunctionalLocationABCid": "6",
    • "equipmentFunctionalLocationPlantId": "1100",
    • "equipmentFunctionalLocationPlant": "TEST",
    • "equipmentStatuses": {
      },
    • "functionalLocationStatuses": {
      }
    }
]

Characteristics

Characteristics are part of the classification system and used to describe properties of different objects such as Tags, Equipment and others.

Search characteristics

Overview

Search for characteristics by class type and class id.

The class-type can be any of the following:

class-type Description
002 Equipment
003 Tags
015 Notification Item
017 Document
037 Measuring Point
Authorizations:
bearerAuth
query Parameters
filter
required
string
Value: "by-characteristic-ids-any-of"
class-type
required
string
Enum: "002" "003" "015" "037"
characteristic-ids-any-of
string
Example: characteristic-ids-any-of=CRIT_PRODUCTION,CRIT_SAFETY

Required if filter is by-characteristic-id-any-of

class-type-key-prefix
string
Example: class-type-key-prefix=1100

Pre-fix of the object key, if searching for class type "003" (Tags) this may be set to "1100" to fetch all characteristics from Tags starting with 1100, which would mean all tags for this plant.

per-page
integer [ 1 .. 100 ]
Default: 100

Results to return per page

page
integer
Default: 1

Page to fetch

Responses

Request samples

curl --request GET \
  --url 'https://api-test.gateway.equinor.com/maintenance-api/characteristics?filter=SOME_STRING_VALUE&characteristic-ids-any-of=SOME_STRING_VALUE&class-type-key-prefix=SOME_STRING_VALUE&class-type=SOME_STRING_VALUE&per-page=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    • "classTypeKey": "1100-TTR32",
    • "characteristicId": "HIDDEN_FAILURE",
    • "characteristic": "Safety Critical Element (SCE)",
    • "valueId": "01",
    • "value": "Pressure Safety Valve (PSV)",
    • "classId": "SAFE_CRIT_EQ_INSP"
    }
]