Maintenance API (0.7.0)

Download OpenAPI specification:Download

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

This document describes the current active version of the API. We recommend using the version published at https://equinor.github.io/maintenance-api-docs as it provides the best developer experience.

This document describes the current active version of the API. We recommend using documentation published at https://equinor.github.io/maintenance-api-docs as it provides the best developer experience.

Information on the next release v0.8.0 planned for March 2021 is available at https://equinor.github.io/maintenance-api-docs/0.8.0/

Introduction

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

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

A simple way to test the API is through Postman. Click button below to import the Maintenance API collection for Postman.

Maintenance terminology

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

API versioning

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

Subscription key

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

Data sources

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

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

Authentication and authorization overview

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

The user needs authorization in Equinor's ERP system. This is handled by the following roles which can be applied to from the internal AccessIT solution:

  • YT105 - OM Mobile Apps & API (SAPP03)
  • YT105 - OM Mobile Apps & API (SAPP05)
  • General Operation & Maintenance roles based on the business role of the user

Mock response

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

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

Client setup

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

Standard setup

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

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

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

  2. Create client secrets for your client app registrations

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

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

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

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

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

System to system setup

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

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

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

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

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

Power Apps setup

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

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

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

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

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

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

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

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

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

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

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

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

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

Modelling of resources

Resources

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

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

Resource keys

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

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

Resource text

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

Dates

All date and time information are based on UTC (Universal Time Coordinated) and formatted according to RFC3339

This also applies to durations, such as 1 day or 2 hours, which are encoded as P0Y0M1DT0H0M0S and P0Y0M0DT2H0M0S.

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

Modelling of endpoints

Operation - Lookup

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

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

Operation - Search/Filter

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

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

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

Operation - Update

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

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

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

Using JSON Patch is straightforward.

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

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

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

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

HTTP response codes

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

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

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

Read - HTTP GET:

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

Create - HTTP POST:

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

Create - HTTP PUT

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

Update - HTTP PATCH:

  • 200 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:

  • Currently, no endpoints using HTTP DELETE

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, endoints, query parameters and resource properties can become deprecated and will be marked so in the OpenAPI specification.

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

Clients must monitor these messages and take corrective actions.

Endpoints with deprecation

Rename area to location

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

This deprecates the following endpoints:

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

This deprecates query parameters for the following endpoints:

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

This deprecates HTTP POST request properties for the following endpoints:

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

This deprecates properties of the response in the following endpoints:

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

Feature requests

Feature requests are welcomed and can be submitted through:

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

Authentication

bearerAuth

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

    apiKey

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

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

    New endpoints

    Endpoints which are introduces in the current version

    Failure report - Extend required end date

    Overview

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

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

    The activityCodeId defines the reason for the extension

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

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

    Important information

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

    Authorizations:
    path Parameters
    record-id
    required
    string

    id of the failure report

    Request Body schema: application/json

    Activities to add to existing failure report

    requiredEndDate
    required
    string <date>

    The extended required end date of the failure report

    riskAssessmentTitle
    required
    string

    Title of the risk assessment done for the extension

    riskAssessmentText
    required
    string

    The text should describe the risk assessment done

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

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

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

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

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Failure report - Update additional metadata

    Overview

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

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

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the failure report.

    metadata-id
    required
    string

    The id of the metadata record

    Request Body schema: application/json

    Update to make for metadata

    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

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

    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

    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"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Modified endpoints

    Endpoints which have been modified in the current version

    Preventive Work order - Lookup

    Overview

    Lookup single Preventive Work order with related information.

    Important information

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

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

    Include Work order operations

    include-materials
    boolean
    Default: false

    Include materials for Work order operations

    include-maintenance-records
    boolean
    Default: false

    Include related maintenance records (from object list and technical feedback)

    include-maintenance-plan-details
    boolean
    Default: false

    Include details for maintenance plan

    include-attachments
    boolean
    Default: false

    Include Work order attachments (on header and for operation)

    include-status-details
    boolean
    Default: false

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

    include-tag-details
    boolean
    Default: false

    Include detailed for the main tag of the Work order

    include-related-tags
    boolean
    Default: false

    Include related tags (from object list)

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/preventive-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-maintenance-plan-details=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "operations": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "tagsRelated": [
      • {
        }
      ],
    • "maintenanceRecords": [
      • {
        }
      ],
    • "maintenancePlan": {
      • "maintenancePlanId": "1108244",
      • "maintenancePlanItemId": "10149640",
      • "planDate": "2019-08-24"
      },
    • "tagDetails": {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      },
    • "attachments": [
      • {
        }
      ],
    • "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n\nHvordan påvirker feilen utstyrets funksjon? ...\n",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24597659",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "002",
    • "maintenanceType": "Periodic maintenance",
    • "plannedDate": "2019-08-24",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "sortField": "PRS10239.WP12"
    }

    Preventive Work order - Add time ticket

    Overview

    Add time ticket for work performed

    Important information

    Text multi-line property does not always get persisted in SAP. This is expected to be fixed in release 0.8.0.

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

    Time ticket to add to operation

    workHours
    required
    string

    The work performed for the operation. Duration as defined in ISO8601

    remainingWorkHours
    string

    New estimate of remaining work for the operation. In Duration format as defined in ISO8601

    workStartDateTime
    string <date-time> Nullable
    workEndDateTime
    string <date-time> Nullable
    workCenterId
    string

    Resource which performed the work. Default is based on Work order operation.

    workCenterPlantId
    string

    Resource which performed the work. Default is based on Work order operation.

    title
    string <= 40 characters

    Title for time ticket

    text
    string

    Multi-line description for the time ticket

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "workHours": "P0Y0M0DT2H0M0S",
    • "remainingWorkHours": "P0Y0M0DT2H0M0S",
    • "workStartDateTime": "2020-11-01T00:00:00Z",
    • "workEndDateTime": "2020-11-05T00:00:00Z",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "title": "Prep jobb",
    • "text": "Multi-line text\nDescribing the work done"
    }

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Add time ticket

    Overview

    Add time ticket for work performed

    Important information

    Text multi-line property does not always get persisted in SAP. This is expected to be fixed in release 0.8.0.

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

    Time ticket to add to operation

    workHours
    required
    string

    The work performed for the operation. Duration as defined in ISO8601

    remainingWorkHours
    string

    New estimate of remaining work for the operation. In Duration format as defined in ISO8601

    workStartDateTime
    string <date-time> Nullable
    workEndDateTime
    string <date-time> Nullable
    workCenterId
    string

    Resource which performed the work. Default is based on Work order operation.

    workCenterPlantId
    string

    Resource which performed the work. Default is based on Work order operation.

    title
    string <= 40 characters

    Title for time ticket

    text
    string

    Multi-line description for the time ticket

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "workHours": "P0Y0M0DT2H0M0S",
    • "remainingWorkHours": "P0Y0M0DT2H0M0S",
    • "workStartDateTime": "2020-11-01T00:00:00Z",
    • "workEndDateTime": "2020-11-05T00:00:00Z",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "title": "Prep jobb",
    • "text": "Multi-line text\nDescribing the work done"
    }

    Response samples

    Content type
    application/json
    {}

    Failure report - Update status

    Update status of failure report.

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

    Important information

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

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

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

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

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

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

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

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

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

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

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the failure report.

    status-id
    required
    string
    Request Body schema:

    Work order 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

    value
    required
    string

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

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Maintenance Plan - Lookup

    Lookup single Maintenance Plan

    Authorizations:
    path Parameters
    plan-id
    required
    string
    query Parameters
    include-items
    boolean
    Default: true

    Include items of the maintenance plan

    include-item-calls
    boolean
    Default: true

    Include calls for items of the maintenance plan

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-plans/%7Bplan-id%7D?include-items=SOME_BOOLEAN_VALUE&include-item-calls=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "maintenancePlanId": "1056916",
    • "maintenancePlan": "1100-AKCD2 MODULPROGRAM TELE CD2",
    • "items": [
      • {
        }
      ]
    }

    Maintenance Plan Item- Lookup

    Overview

    Lookup single maintenance plan item

    Maintenance Item contains the object list, task list and previous calls for preventive work orders.

    The object list describes the tag/equipment covered in the maintenance plan item.

    The task list describes the maintenance activities with the necessary support activities to be performed in the maintenance programme. These are divided into operations that are listed in an order that is natural for the practical implementation of the maintenance. The task List also sets the interval of operations through maintenance packages.

    Authorizations:
    path Parameters
    plan-id
    required
    string

    The id of the maintenance plan

    item-id
    required
    string

    The id of the maintenance plan item

    query Parameters
    include-item-calls
    boolean
    Default: true

    Include calls to maintenance plan item

    include-item-object-list
    boolean
    Default: false

    Include list of objects for the maintenance plan item

    include-item-task-list
    boolean
    Default: false

    Include task list, operations (w/related objects and material needs) for the maintenance plan item

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-plans/%7Bplan-id%7D/items/%7Bitem-id%7D?include-item-calls=SOME_BOOLEAN_VALUE&include-item-object-list=SOME_BOOLEAN_VALUE&include-item-task-list=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "calls": [
      • {
        }
      ],
    • "taskList": {
      • "taskListId": "T-10012713-02",
      • "taskList": "24/48M FV-MULTI TRAIN1 GLYCOL REBOILER",
      • "taskListTypeId": "T",
      • "planningPlantId": "1100",
      • "statusId": "4",
      • "operations": [
        ]
      },
    • "maintenancePlanItemId": "10072940",
    • "maintenancePlanItem": "24M FV-TELE MODULPROGRAM CD2",
    • "maintenancePlanId": "1056916",
    • "planningPlantId": "1100",
    • "mainTagId": "AE5566",
    • "mainTagPlantId": "1100",
    • "maintenanceActivityTypeId": "002",
    • "maintenanceActivityType": "Periodic maintenance"
    }

    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 - Lookup

    Overview

    Lookup a single tag with related information

    Important information

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

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

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

    include-maintenance-record-types
    string

    Include which types of notifications

    include-installed-equipment
    boolean
    Default: false

    Include installed equipment

    include-catalog-profile-details
    boolean
    Default: false

    Include possible detection methods, failure modes and failure mechanisms

    include-characteristics
    boolean
    Default: false

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

    include-maintenance-plan-items
    boolean
    Default: false

    Include Maintenance Plan items this functional location is part of

    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_STRING_VALUE&include-installed-equipment=SOME_BOOLEAN_VALUE&include-catalog-profile-details=SOME_BOOLEAN_VALUE&include-characteristics=SOME_BOOLEAN_VALUE&include-maintenance-plan-items=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

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

    Tag hierachy - Get

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

    Notice

    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

    Authorizations:
    path Parameters
    plant-id
    required
    string

    Responses

    Request samples

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

    Response samples

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

    Locations - Get

    Overview

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

    Authorizations:
    path Parameters
    plant-id
    required
    string

    Responses

    Request samples

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

    Response samples

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

    Areas - Get Deprecated

    Overview

    Get areas

    Important information

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

    Authorizations:
    path Parameters
    plant-id
    required
    string

    Responses

    Request samples

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

    Response samples

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

    Planner groups - Get

    Get planner groups

    Authorizations:
    path Parameters
    plant-id
    required
    string

    Responses

    Request samples

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

    Response samples

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

    Work centers - Get

    Overview

    Get Work centers for plant.

    Authorizations:
    path Parameters
    plant-id
    required
    string

    Responses

    Request samples

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

    Response samples

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

    Tag - Search

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

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

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

    Important information

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

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

    Examples

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

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

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

    The first few characters of the tag

    Responses

    Request samples

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

    Response samples

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

    Master data for maintenance records

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

    Maintenance records - Get activity codes

    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

    Authorizations:

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/activity-codes \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

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

    Activity reports

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

    Activity report - Lookup

    Lookup a single activity report

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the activity report.

    query Parameters
    include-status-details
    boolean
    Default: false

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

    include-activities
    boolean
    Default: false

    Include detailed information for activities

    include-attachments
    boolean
    Default: false

    Include attachments

    Responses

    Request samples

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

    Response samples

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

    Activity report - Create

    Create new activity report

    Important information

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

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

    Authorizations:
    Request Body schema: application/json

    Activity report to create

    title
    required
    string
    text
    required
    string
    tagId
    string

    Required to input either tag or equipment

    tagPlantId
    string

    Required to input either tag or equipment

    equipmentId
    string

    Required to input either tag or equipment

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "tagId": "PX",
    • "tagPlantId": "1100",
    • "title": "Skiftet ventiler på bulk system",
    • "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",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "activeStatusIds": "OSNO CRTE",
    • "createdDateTime": "2019-08-24T14:15:22Z"
    }

    Activity report - Attachment download

    Download single attachment for activity report

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

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Activity report - Attachment upload

    Upload attachment for activity report

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

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Failure reports

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

    Failure report - Lookup

    Lookup a single failure report

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the failure report.

    query Parameters
    include-status-details
    boolean
    Default: false

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

    include-tag-details
    boolean
    Default: false

    Include details about tag for failure report

    include-activities
    boolean
    Default: false

    Include detailed information for activities

    include-attachments
    boolean
    Default: false

    Include attachments

    include-additional-metadata
    boolean
    Default: false

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

    Responses

    Request samples

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

    Response samples

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

    Failure report - Update

    Overview

    Update key fields of a failure report.

    Important information

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

    If work center is not defined for failure report, updating with a new tag results in setting workCenterId and workCenterPlantId to the corresponding values of the tag.

    If failure report has a depending corrective work order, tag update does not affect the work order.

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the failure report.

    Request Body schema: application/json-patch+json

    Failure report to create

    Array ()
    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

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

    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-patch+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",
    • "title": "Endre skalering på PDT",
    • "text": "Multi-line text based on template",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD2",
    • "location": "METERING DECK",
    • "areaId": "Deprecated - Use locationId",
    • "area": "Deprecated - Use location",
    • "failureImpactId": "D",
    • "failureImpact": "Unwell (InF)",
    • "isBreakdown": false,
    • "requiredEndDate": "2019-08-24",
    • "failureModeId": "STC",
    • "failureMode": "CST Struct. deficiency containment risk",
    • "failureModeGroupId": "PMMO-080",
    • "failureModeGroup": "ISO Piping",
    • "detectionMethodId": "3",
    • "detectionMethod": "ISO Inspection",
    • "detectionMethodGroupId": "PMDM-005",
    • "detectionMethodGroup": "ISO Scheduled activities",
    • "failureMechanismId": "2.9",
    • "failureMechanism": "CST Corrosion external",
    • "failureMechanismGroupId": "PMMC-010",
    • "failureMechanismGroup": "ISO Material failure",
    • "correctiveWorkOrderExist": false,
    • "correctiveWorkOrderId": "24871954",
    • "activeStatusIds": "OSNO CRTE",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "failureStartDateTime": "2019-08-24T14:15:22Z",
    • "failureEndDateTime": "2019-08-24T14:15:22Z"
    }

    Failure report - Update status

    Update status of failure report.

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

    Important information

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

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

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

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

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

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

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

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

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

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

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the failure report.

    status-id
    required
    string
    Request Body schema:

    Work order 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

    value
    required
    string

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

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Failure report - Attachment download

    Download single attachment for failure report

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

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Failure report - Attachment upload

    Upload attachment for failure report

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

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Failure report - List/Search

    Overview

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

    Response

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

    Filter: recent-status-activations

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

    • status-id
    • plant-id
    • max-days-since-activation
    Authorizations:
    query Parameters
    filter
    required
    string
    Value: "recent-status-activations"

    Filter to limit the failure reports by

    status-id
    string

    Status

    plant-id
    string

    Plant

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

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

    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&max-days-since-activation=SOME_INTEGER_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

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

    Failure report - Create

    Create new failure report

    Important information

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

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

    Authorizations:
    Request Body schema: application/json

    Failure report to create

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

    Required to input either tag or equipment

    tagPlantId
    string

    Required to input either tag or equipment

    equipmentId
    string

    Required to input either tag or equipment

    isBreakdown
    boolean
    failureMechanismId
    string Nullable
    failureMechanismGroupId
    string Nullable
    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

    createdDateTime
    string <date-time> Nullable

    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> Nullable

    The point in time where the failure started

    failureEndDateTime
    string <date-time> Nullable

    The point in time where the failure resolved

    Array of objects (MaintenanceRecordItemMetadata)

    Additional metadata to be used in special cases

    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",
    • "title": "Endre skalering på PDT",
    • "text": "Multi-line text based on template",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD2",
    • "location": "METERING DECK",
    • "areaId": "Deprecated - Use locationId",
    • "area": "Deprecated - Use location",
    • "failureImpactId": "D",
    • "failureImpact": "Unwell (InF)",
    • "isBreakdown": false,
    • "requiredEndDate": "2019-08-24",
    • "failureModeId": "STC",
    • "failureMode": "CST Struct. deficiency containment risk",
    • "failureModeGroupId": "PMMO-080",
    • "failureModeGroup": "ISO Piping",
    • "detectionMethodId": "3",
    • "detectionMethod": "ISO Inspection",
    • "detectionMethodGroupId": "PMDM-005",
    • "detectionMethodGroup": "ISO Scheduled activities",
    • "failureMechanismId": "2.9",
    • "failureMechanism": "CST Corrosion external",
    • "failureMechanismGroupId": "PMMC-010",
    • "failureMechanismGroup": "ISO Material failure",
    • "correctiveWorkOrderExist": false,
    • "correctiveWorkOrderId": "24871954",
    • "activeStatusIds": "OSNO CRTE",
    • "createdDateTime": "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 a failure report

    Authorizations:
    path Parameters
    record-id
    required
    string

    id of the failure report

    Request Body schema: application/json

    Activities to add to existing failure report

    title
    required
    string
    activityCodeId
    required
    string
    activityCodeGroupId
    required
    string
    text
    string
    startDateTime
    string <date-time> Nullable
    endDateTime
    string <date-time> Nullable

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Failure report - Extend required end date

    Overview

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

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

    The activityCodeId defines the reason for the extension

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

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

    Important information

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

    Authorizations:
    path Parameters
    record-id
    required
    string

    id of the failure report

    Request Body schema: application/json

    Activities to add to existing failure report

    requiredEndDate
    required
    string <date>

    The extended required end date of the failure report

    riskAssessmentTitle
    required
    string

    Title of the risk assessment done for the extension

    riskAssessmentText
    required
    string

    The text should describe the risk assessment done

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

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

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

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

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Failure report - Update additional metadata

    Overview

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

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

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the failure report.

    metadata-id
    required
    string

    The id of the metadata record

    Request Body schema: application/json

    Update to make for metadata

    op
    required
    string
    Value: "replace"

    JSON Patch operation according to RFC6902

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

    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

    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"
      }
    ]

    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

    Authorizations:
    path Parameters
    record-id
    required
    string

    The recordId of the failure report.

    Request Body schema: application/json

    Update to make for metadata

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

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Maintenance records

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

    Maintenance records - Search

    Overview

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

    Response

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

    Filter: by-external-partner-record-id

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

    Parameters:

    • external-partner-record-id
    Authorizations:
    query Parameters
    filter
    required
    string
    Value: "by-external-partner-record-id"

    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

    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' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "failureReports": [
      • {
        }
      ],
    • "activityReports": [
      • {
        }
      ]
    }

    Work orders

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

    Work orders - Search

    Overview

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

    Response

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

    Filter: recently-changed

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

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

    Filter: before-basic-end-date

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

    • plant-id
    • basic-end-date
    • location-id (optional)
    • area-id (optional) Deprecated - Use locationId instead
    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "recently-changed" "before-basic-end-date"

    Filter to limit the work order by

    plant-id
    string

    Plant

    changed-since-datetime
    string <date-time>

    Earliest datetime to returned changed work orders for

    before-datetime
    string <date-time>

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

    include-work-order-text
    string

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

    include-work-order-operation-text
    string

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

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

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

    basic-end-date
    string <date>

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

    area-id
    string
    Deprecated

    Deprecated. Use location-id instead

    location-id
    string

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

    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_STRING_VALUE&include-work-order-operation-text=SOME_STRING_VALUE&include-work-order-types=SOME_ARRAY_VALUE&basic-end-date=SOME_STRING_VALUE&area-id=SOME_STRING_VALUE&location-id=SOME_STRING_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

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

    Corrective Work orders

    Used for all corrective maintenance, i.e. all maintenance that is intended to restore the equipment's technical condition, so that it can perform its assigned function.

    Corrective work orders can also be used for activities not directly connected with equipment failure (corrective), but as follows same work process for prioritisation and scheduling.

    Corrective Work order - Lookup

    Overview

    Lookup single Corrective Work order with related information

    Important information

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

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

    Include Work order operations

    include-materials
    boolean
    Default: true

    Include materials for Work order operations

    include-maintenance-records
    boolean
    Default: false

    Include related maintenance records (from object list)

    include-attachments
    boolean
    Default: false

    Include Work order attachments (on header and for operation)

    include-status-details
    boolean
    Default: false

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

    include-tag-details
    boolean
    Default: false

    Include detailed for the main tag of the Work order

    include-related-tags
    boolean
    Default: false

    Include related tags (from object list)

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/corrective-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "operations": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "tagsRelated": [
      • {
        }
      ],
    • "maintenanceRecords": [
      • {
        }
      ],
    • "tagDetails": {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      },
    • "attachments": [
      • {
        }
      ],
    • "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n\nHvordan påvirker feilen utstyrets funksjon? ... \n",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24983466",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "failureReportId": "45836077",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "002",
    • "maintenanceType": "Periodic maintenance",
    • "requiredEndDate": "2019-08-24",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "sortField": "PRS10239.WP12",
    • "priorityId": "L"
    }

    Corrective Work order - Update

    Overview

    Update corrective work order.

    Currently, we support appending text to the Work order.

    Important information

    The append request body has a special syntax. See the provide example for more details.

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

    The information to be updated

    Array ()
    op
    string
    Value: "append"

    The type of non-trivial patch operation to perform. Currently, only append is supported

    path
    string
    Value: "/text"

    The property to be updated by the non-trivial patch operation. Currently, only /text is supported

    value
    string

    The value to update with non-trivial patch operation.

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Add operation(s)

    Add operations

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

    Operations to add to existing Work order

    title
    required
    string [ 0 .. 40 ] characters Nullable
    operation
    required
    string Nullable

    Id of operation user is familiar with

    workCenterId
    string Nullable
    workCenterPlantId
    string Nullable
    text
    string Nullable
    plannedWorkDuration
    string Nullable

    Duration as defined in ISO8601

    capacityCount
    integer <int32>
    schedulingStartConstraintId
    string Nullable
    Enum: "MSO" "SNET" "SNLT" null

    Constraint: * MSO - Must start on * SNET - Start no earlier than * SNLT - Start no later than

    schedulingStartConstraintDateTime
    string <date-time> Nullable
    schedulingFinishConstraintId
    string Nullable
    Enum: "MFO" "FNET" "FNLT" null

    Constraint: * MFO - Must finish on date * FNET - Finish no earlier than * FNLT - Finish no later than

    schedulingFinishConstraintDateTime
    string <date-time> Nullable
    isScheduledExternally
    boolean Nullable
    earliestStartDateTime
    string <date-time> Nullable
    earliestFinishDateTime
    string <date-time> Nullable

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "operation": "0010",
      • "title": "Bygge stillas",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkDuration": "P0Y0M0DT4H0M0S",
      • "capacityCount": 2,
      • "text": "Bygge stillas\n3 x 3 x 5 meter",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      },
    • {
      • "operation": "0020",
      • "title": "Bytte del",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkDuration": "P0Y0M0DT3H30M0S",
      • "capacityCount": 1,
      • "text": "",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Update operation

    Overview

    Update the work order operation. Currently, we support completing the operation but additional functionality will be added in future releases.

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

    Work order operation to update

    isCompleted
    required
    boolean
    Default: false

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Add time ticket

    Overview

    Add time ticket for work performed

    Important information

    Text multi-line property does not always get persisted in SAP. This is expected to be fixed in release 0.8.0.

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

    Time ticket to add to operation

    workHours
    required
    string

    The work performed for the operation. Duration as defined in ISO8601

    remainingWorkHours
    string

    New estimate of remaining work for the operation. In Duration format as defined in ISO8601

    workStartDateTime
    string <date-time> Nullable
    workEndDateTime
    string <date-time> Nullable
    workCenterId
    string

    Resource which performed the work. Default is based on Work order operation.

    workCenterPlantId
    string

    Resource which performed the work. Default is based on Work order operation.

    title
    string <= 40 characters

    Title for time ticket

    text
    string

    Multi-line description for the time ticket

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "workHours": "P0Y0M0DT2H0M0S",
    • "remainingWorkHours": "P0Y0M0DT2H0M0S",
    • "workStartDateTime": "2020-11-01T00:00:00Z",
    • "workEndDateTime": "2020-11-05T00:00:00Z",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "title": "Prep jobb",
    • "text": "Multi-line text\nDescribing the work done"
    }

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Attachment download

    Download single attachment for corrective Work order

    Authorizations:
    path Parameters
    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/corrective-work-orders/%7Brecord-id%7D/attachments/%7Battachment-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Update status

    Overview

    Activate or deactivate status for Work order.

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

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

    Supported statuses

    The endpoint supports most status activiation such as:

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

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

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

    • REL - Release
    • 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:
    path Parameters
    work-order-id
    required
    string
    status-id
    required
    string
    Request Body schema: application/json

    Work order status to update

    isActive
    required
    boolean

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Corrective Work order - Search

    Overview

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

    Response

    The response does not include all details for each corrective work order. This can be found by subsequent call to lookup corrective-work-order

    Important information

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

    Filter: recent-status-activations

    Corrective work orders based on recent status activations for the work orders. Parameters:

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

    Filter: before-required-end-date

    Find open Corrective work orders before the required-end-date Parameters:

    • plant-id
    • required-end-date
    • location-id (optional)
    • area-id (optional) Deprecated - Use locationId instead
    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "recent-status-activations" "same-maintenance-plan" "before-required-end-date"

    Filter to limit the Corrective work order by

    status-id
    string

    Status

    plant-id
    string

    Plant

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

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

    max-work-orders
    integer <int32> >= 0

    Maximal numbers of results returned (optional for filter)

    area-id
    string
    Deprecated

    Deprecated. Use location-id instead

    location-id
    string

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

    required-end-date
    string <date>

    placeholder

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/corrective-work-orders?filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&max-days-since-activation=SOME_INTEGER_VALUE&max-work-orders=SOME_INTEGER_VALUE&area-id=SOME_STRING_VALUE&location-id=SOME_STRING_VALUE&required-end-date=SOME_STRING_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "workOrderId": "24983466",
      • "tagId": "BF",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE.",
      • "title": "Modifikasjon av brannmur",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "locationId": "CD17OU",
      • "areaId": "Deprecated - Use locationId",
      • "failureReportId": "45836077",
      • "plantId": "1100",
      • "planningPlantId": "1100",
      • "plannerGroupId": "PPM",
      • "activeStatusIds": "OSNO CRTE",
      • "maintenanceTypeId": "002",
      • "maintenanceType": "Periodic maintenance",
      • "requiredEndDate": "2019-08-24",
      • "basicStartDateTime": "2019-08-24T14:15:22Z",
      • "basicEndDateTime": "2019-08-24T14:15:22Z",
      • "createdDateTime": "2019-08-24T14:15:22Z",
      • "changedDateTime": "2019-08-24T14:15:22Z",
      • "sortField": "PRS10239.WP12",
      • "priorityId": "L"
      }
    ]

    Corrective Work order - Create

    Overview

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

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

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

    Authorizations:
    Request Body schema: application/json

    Corrective Work order to create

    planningPlantId
    required
    string
    workCenterId
    required
    string
    workCenterPlantId
    required
    string
    title
    required
    string
    plantId
    required
    string
    failureReportId
    required
    string
    Array of objects (WorkOrderOperationListCreate)
    tagId
    string
    tagPlantId
    string
    plannerGroupId
    string
    maintenanceTypeId
    string
    basicStartDateTime
    string <date-time>
    basicEndDateTime
    string <date-time>
    locationId
    string

    Structured location within the plant where the tag is located

    areaId
    string
    Deprecated

    Deprecated 01.2021 - Use locationId instead

    text
    string

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "failureReportId": "45836077",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "workCenterId": "CO2PIP",
    • "workCenterPlantId": "1100",
    • "title": "14xx/Installere flowline CD2",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "plantId": "1100",
    • "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",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24983466",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "failureReportId": "45836077",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "002",
    • "maintenanceType": "Periodic maintenance",
    • "requiredEndDate": "2019-08-24",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "sortField": "PRS10239.WP12",
    • "priorityId": "L"
    }

    Preventive Work orders

    Used for work orders generated from pre-defined preventive maintenance programs.

    Preventive Work order - Lookup

    Overview

    Lookup single Preventive Work order with related information.

    Important information

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

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

    Include Work order operations

    include-materials
    boolean
    Default: false

    Include materials for Work order operations

    include-maintenance-records
    boolean
    Default: false

    Include related maintenance records (from object list and technical feedback)

    include-maintenance-plan-details
    boolean
    Default: false

    Include details for maintenance plan

    include-attachments
    boolean
    Default: false

    Include Work order attachments (on header and for operation)

    include-status-details
    boolean
    Default: false

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

    include-tag-details
    boolean
    Default: false

    Include detailed for the main tag of the Work order

    include-related-tags
    boolean
    Default: false

    Include related tags (from object list)

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/preventive-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-maintenance-plan-details=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "operations": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "tagsRelated": [
      • {
        }
      ],
    • "maintenanceRecords": [
      • {
        }
      ],
    • "maintenancePlan": {
      • "maintenancePlanId": "1108244",
      • "maintenancePlanItemId": "10149640",
      • "planDate": "2019-08-24"
      },
    • "tagDetails": {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      },
    • "attachments": [
      • {
        }
      ],
    • "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n\nHvordan påvirker feilen utstyrets funksjon? ...\n",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24597659",
    • "tagId": "BF",
    • "tagPlantId": "1100",
    • "tag": "CT5023/24 - POT.WATER PH PROBE.",
    • "title": "Modifikasjon av brannmur",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "002",
    • "maintenanceType": "Periodic maintenance",
    • "plannedDate": "2019-08-24",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "sortField": "PRS10239.WP12"
    }

    Preventive Work order - Update

    Overview

    Update preventive work order.

    Currently, we support appending text to the Work order.

    Important information

    The append request body has a special syntax. See the provide example for more details.

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

    The information to be updated

    Array ()
    op
    string
    Value: "append"

    The type of non-trivial patch operation to perform. Currently, only append is supported

    path
    string
    Value: "/text"

    The property to be updated by the non-trivial patch operation. Currently, only /text is supported

    value
    string

    The value to update with non-trivial patch operation.

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Preventive Work order - Add operation(s)

    Add operations

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

    Operations to add to existing Work order

    title
    required
    string [ 0 .. 40 ] characters Nullable
    operation
    required
    string Nullable

    Id of operation user is familiar with

    workCenterId
    string Nullable
    workCenterPlantId
    string Nullable
    text
    string Nullable
    plannedWorkDuration
    string Nullable

    Duration as defined in ISO8601

    capacityCount
    integer <int32>
    schedulingStartConstraintId
    string Nullable
    Enum: "MSO" "SNET" "SNLT" null

    Constraint: * MSO - Must start on * SNET - Start no earlier than * SNLT - Start no later than

    schedulingStartConstraintDateTime
    string <date-time> Nullable
    schedulingFinishConstraintId
    string Nullable
    Enum: "MFO" "FNET" "FNLT" null

    Constraint: * MFO - Must finish on date * FNET - Finish no earlier than * FNLT - Finish no later than

    schedulingFinishConstraintDateTime
    string <date-time> Nullable
    isScheduledExternally
    boolean Nullable
    earliestStartDateTime
    string <date-time> Nullable
    earliestFinishDateTime
    string <date-time> Nullable

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "operation": "0010",
      • "title": "Bygge stillas",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkDuration": "P0Y0M0DT4H0M0S",
      • "capacityCount": 2,
      • "text": "Bygge stillas\n3 x 3 x 5 meter",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      },
    • {
      • "operation": "0020",
      • "title": "Bytte del",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkDuration": "P0Y0M0DT3H30M0S",
      • "capacityCount": 1,
      • "text": "",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Preventive Work order - Update operation

    Overview

    Update the work order operation. Currently, we support completing the operation but additional functionality will be added in future releases.

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

    Work order operation to update

    isCompleted
    required
    boolean
    Default: false

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Preventive Work order - Add time ticket

    Overview

    Add time ticket for work performed

    Important information

    Text multi-line property does not always get persisted in SAP. This is expected to be fixed in release 0.8.0.

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

    Time ticket to add to operation

    workHours
    required
    string

    The work performed for the operation. Duration as defined in ISO8601

    remainingWorkHours
    string

    New estimate of remaining work for the operation. In Duration format as defined in ISO8601

    workStartDateTime
    string <date-time> Nullable
    workEndDateTime
    string <date-time> Nullable
    workCenterId
    string

    Resource which performed the work. Default is based on Work order operation.

    workCenterPlantId
    string

    Resource which performed the work. Default is based on Work order operation.

    title
    string <= 40 characters

    Title for time ticket

    text
    string

    Multi-line description for the time ticket

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "workHours": "P0Y0M0DT2H0M0S",
    • "remainingWorkHours": "P0Y0M0DT2H0M0S",
    • "workStartDateTime": "2020-11-01T00:00:00Z",
    • "workEndDateTime": "2020-11-05T00:00:00Z",
    • "workCenterId": "SPIAUT",
    • "workCenterPlantId": "1100",
    • "title": "Prep jobb",
    • "text": "Multi-line text\nDescribing the work done"
    }

    Response samples

    Content type
    application/json
    {}

    Preventive Work order - Attachment download

    Download single attachment for preventive Work order

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

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Preventive Work order - Update status

    Overview

    Activate or deactivate status for Work order.

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

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

    Supported statuses

    The endpoint supports most status activiation such as:

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

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

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

    • REL - Release
    • 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:
    path Parameters
    work-order-id
    required
    string
    status-id
    required
    string
    Request Body schema: application/json

    Work order status to update

    isActive
    required
    boolean

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Preventive Work order - Search

    Overview

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

    Response

    The response does not include all details for each preventive work order. This can be found by subsequent call to lookup preventive-work-order

    Important information

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

    Filter: maintenance-plan-history

    Based on the maintenance plan of the Preventive Work order provided, find other instances sorted by start date Parameters:

    • work-order-id
    • earliest-date (optional)
    • max-work-orders (optional)

    Filter: recent-status-activations

    Preventive work orders based on recent status activations for the work order. Parameters:

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

    Filter: before-planned-date

    Find open Preventive work orders before the before-planned-date Parameters:

    • plant-id
    • planned-date
    • location-id (optional)
    • area-id (optional) Deprecated - Use locationId instead
    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "recent-status-activations" "same-maintenance-plan" "before-planned-date"

    Filter to limit the failure reports by

    status-id
    string

    Status

    plant-id
    string

    Plant

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

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

    work-order-id
    string

    Preventive Work order id

    earliest-date
    string <date>

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

    max-work-orders
    integer <int32>

    Maximal numbers of results returned (optional for filter)

    location-id
    string

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

    area-id
    string <date>
    Deprecated

    Deprecated. Use locationId instead

    planned-date
    string <date>

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

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/preventive-work-orders?filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&max-days-since-activation=SOME_INTEGER_VALUE&work-order-id=SOME_STRING_VALUE&earliest-date=SOME_STRING_VALUE&max-work-orders=SOME_INTEGER_VALUE&location-id=SOME_STRING_VALUE&area-id=SOME_STRING_VALUE&planned-date=SOME_STRING_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "workOrderId": "24597659",
      • "tagId": "BF",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE.",
      • "title": "Modifikasjon av brannmur",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "locationId": "CD17OU",
      • "areaId": "Deprecated - Use locationId",
      • "plantId": "1100",
      • "planningPlantId": "1100",
      • "plannerGroupId": "PPM",
      • "activeStatusIds": "OSNO CRTE",
      • "maintenanceTypeId": "002",
      • "maintenanceType": "Periodic maintenance",
      • "plannedDate": "2019-08-24",
      • "basicStartDateTime": "2019-08-24T14:15:22Z",
      • "basicEndDateTime": "2019-08-24T14:15:22Z",
      • "createdDateTime": "2019-08-24T14:15:22Z",
      • "changedDateTime": "2019-08-24T14:15:22Z",
      • "sortField": "PRS10239.WP12"
      }
    ]

    SAS Change Work orders

    Used as a tool to ensure change control of software changes to Safety and Automation Systems.

    SAS Change Work order - Attachment download

    Download single attachment for SAS Change Work order

    Authorizations:
    path Parameters
    work-order-id
    required
    string
    attachment-id
    required
    string

    Responses

    Request samples

    curl --request GET \
      --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/sas-change-work-orders/%7Bwork-order-id%7D/attachments/%7Battachment-id%7D \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {}

    SAS Change Work order - Lookup

    Overview

    Lookup single SAS Change Work order with related information

    Important information

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

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

    Include Work order operations

    include-materials
    boolean
    Default: true

    Include materials for Work order operations

    include-maintenance-records
    boolean
    Default: false

    Include related maintenance records (from object list)

    include-attachments
    boolean
    Default: false

    Include Work order attachments (on header and for operation)

    include-status-details
    boolean
    Default: false

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

    include-tag-details
    boolean
    Default: false

    Include detailed for the main tag of the Work order

    include-related-tags
    boolean
    Default: false

    Include related tags (from object list)

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/sas-change-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "operations": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "tagsRelated": [
      • {
        }
      ],
    • "maintenanceRecords": [
      • {
        }
      ],
    • "tagDetails": {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      },
    • "attachments": [
      • {
        }
      ],
    • "text": "Beskrivelse av prosjekt modifikasjon\n",
    • "costWBS": "Conc.: Well A10 GL hook-up FL",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24684145",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "tag": "A10 OIL PRODUCTION WELL",
    • "title": "1416/Installerer Flowlinw A10",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "Z06",
    • "maintenanceType": "SAS Change Activity",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "costWBSId": "M.O037C.20.A.0002.A2",
    • "projectId": "M.O037C.20.A.0002",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "sortField": "PRS10239.WP12"
    }

    SAS Change Work order - Update 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
    Authorizations:
    path Parameters
    work-order-id
    required
    string
    status-id
    required
    string
    Request Body schema: application/json

    Work order status to update

    isActive
    required
    boolean

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    SAS Change Work order - Search

    Overview

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

    Response

    The response does not include all details for each SAS Change Work order. This can be found by subsequent call to lookup sas-change-work-orders

    Important information

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

    Filter: open-by-plant

    Find open SAS Change Work orders by plant Parameters:

    • plant-id

    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
    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "open-by-plant" "recent-status-activations"

    Filter to limit the SAS Change work order by

    status-id
    string

    Status

    plant-id
    string

    Plant

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

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

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    [
    • {
      • "workOrderId": "24684145",
      • "tagId": "LZ1012",
      • "tagPlantId": "1100",
      • "tag": "A10 OIL PRODUCTION WELL",
      • "title": "1416/Installerer Flowlinw A10",
      • "workCenterId": "PPMAUT",
      • "workCenterPlantId": "1100",
      • "locationId": "CD17OU",
      • "areaId": "Deprecated - Use locationId",
      • "plantId": "1100",
      • "planningPlantId": "1100",
      • "plannerGroupId": "PPM",
      • "activeStatusIds": "OSNO CRTE",
      • "maintenanceTypeId": "Z06",
      • "maintenanceType": "SAS Change Activity",
      • "basicStartDateTime": "2019-08-24T14:15:22Z",
      • "basicEndDateTime": "2019-08-24T14:15:22Z",
      • "createdDateTime": "2019-08-24T14:15:22Z",
      • "changedDateTime": "2019-08-24T14:15:22Z",
      • "costWBSId": "M.O037C.20.A.0002.A2",
      • "projectId": "M.O037C.20.A.0002",
      • "costNetworkId": "9045173",
      • "costNetworkOperationId": "0010",
      • "sortField": "PRS10239.WP12"
      }
    ]

    SAS Change Work order - Create

    Overview

    Create new SAS Change Work order

    Important information

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

    Authorizations:
    Request Body schema: application/json

    SAS Change Work order to create

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

    Structured location within the plant where the tag is located

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

    Deprecated 01.2021 - Use locationId instead

    text
    string

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "title": "14xx/Installere flowline CD2",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "plantId": "1100",
    • "locationId": "CD2",
    • "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",
    • "costWBS": "Conc.: Well A10 GL hook-up FL",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24684145",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "tag": "A10 OIL PRODUCTION WELL",
    • "title": "1416/Installerer Flowlinw A10",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "Z06",
    • "maintenanceType": "SAS Change Activity",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "costWBSId": "M.O037C.20.A.0002.A2",
    • "projectId": "M.O037C.20.A.0002",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "sortField": "PRS10239.WP12"
    }

    SAS Change Work order - Add operation(s)

    Add operations

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

    Operations to add to existing Work order

    title
    required
    string [ 0 .. 40 ] characters Nullable
    operation
    required
    string Nullable

    Id of operation user is familiar with

    workCenterId
    string Nullable
    workCenterPlantId
    string Nullable
    text
    string Nullable
    plannedWorkDuration
    string Nullable

    Duration as defined in ISO8601

    capacityCount
    integer <int32>
    schedulingStartConstraintId
    string Nullable
    Enum: "MSO" "SNET" "SNLT" null

    Constraint: * MSO - Must start on * SNET - Start no earlier than * SNLT - Start no later than

    schedulingStartConstraintDateTime
    string <date-time> Nullable
    schedulingFinishConstraintId
    string Nullable
    Enum: "MFO" "FNET" "FNLT" null

    Constraint: * MFO - Must finish on date * FNET - Finish no earlier than * FNLT - Finish no later than

    schedulingFinishConstraintDateTime
    string <date-time> Nullable
    isScheduledExternally
    boolean Nullable
    earliestStartDateTime
    string <date-time> Nullable
    earliestFinishDateTime
    string <date-time> Nullable

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "operation": "0010",
      • "title": "Bygge stillas",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkDuration": "P0Y0M0DT4H0M0S",
      • "capacityCount": 2,
      • "text": "Bygge stillas\n3 x 3 x 5 meter",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      },
    • {
      • "operation": "0020",
      • "title": "Bytte del",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkDuration": "P0Y0M0DT3H30M0S",
      • "capacityCount": 1,
      • "text": "",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Project Work orders

    Used for modification projects that are controlled and managed using standard modification project structures that include WBS, network orders and activities.

    Project Work order - Attachment download

    Download single attachment for Project Work order

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

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Project Work order - Lookup

    Overview

    Lookup single Project Work order with related information

    Important information

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

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

    Include Work order operations

    include-materials
    boolean
    Default: true

    Include materials for Work order operations

    include-maintenance-records
    boolean
    Default: false

    Include related maintenance records (from object list)

    include-attachments
    boolean
    Default: false

    Include Work order attachments (on header and for operation)

    include-status-details
    boolean
    Default: false

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

    include-tag-details
    boolean
    Default: false

    Include detailed for the main tag of the Work order

    include-related-tags
    boolean
    Default: false

    Include related tags (from object list)

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/project-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "operations": [
      • {
        }
      ],
    • "statuses": [
      • {
        }
      ],
    • "tagsRelated": [
      • {
        }
      ],
    • "maintenanceRecords": [
      • {
        }
      ],
    • "tagDetails": {
      • "isInactive": false,
      • "parentTagId": "AT5566",
      • "systemId": "BS",
      • "system": "PM-PROG.SYST.",
      • "ABCId": "5",
      • "ABC": "Crit.=M & Red.=B",
      • "locationId": "W14",
      • "location": "METERING DECK",
      • "areaId": "Deprecated - Use locationId",
      • "area": "Deprecated - Use location",
      • "catalogProfileId": "PM-160",
      • "tagId": "AE5566",
      • "tagPlantId": "1100",
      • "tag": "CT5023/24 - POT.WATER PH PROBE."
      },
    • "attachments": [
      • {
        }
      ],
    • "text": "Beskrivelse av prosjekt modifikasjon\n",
    • "costWBS": "Conc.: Well A10 GL hook-up FL",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24684145",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "tag": "A10 OIL PRODUCTION WELL",
    • "title": "1416/Installerer Flowlinw A10",
    • "isTimeOnlyWorkOrder": false,
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "015",
    • "maintenanceType": "Project work",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "costWBSId": "M.O037C.20.A.0002.A2",
    • "projectId": "M.O037C.20.A.0002",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "sortField": "PRS10239.WP12"
    }

    Project Work order - Update 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
    Authorizations:
    path Parameters
    work-order-id
    required
    string
    status-id
    required
    string
    Request Body schema: application/json

    Work order status to update

    isActive
    required
    boolean

    Responses

    Request samples

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

    Response samples

    Content type
    application/json
    {}

    Project Work order - Search

    Overview

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

    Response

    The response does not include all details for each project work order. This can be found by subsequent call to lookup project-work-order

    Important information

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

    Filter: open-by-plant

    Find open Project Work orders by plant Parameters:

    • plant-id

    Filter: recent-status-activations

    Project work orders based on recent status activations for the work orders. Parameters:

    • status-id
    • plant-id
    • max-days-since-activation
    Authorizations:
    query Parameters
    filter
    required
    string
    Enum: "open-by-plant" "recent-status-activations"

    Filter to limit the Project work order by

    status-id
    string

    Status

    plant-id
    string

    Plant

    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&max-days-since-activation=SOME_INTEGER_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    [
    • {
      • "workOrderId": "24684145",
      • "tagId": "LZ1012",
      • "tagPlantId": "1100",
      • "tag": "A10 OIL PRODUCTION WELL",
      • "title": "1416/Installerer Flowlinw A10",
      • "isTimeOnlyWorkOrder": false,
      • "workCenterId": "PPMAUT",
      • "workCenterPlantId": "1100",
      • "locationId": "CD17OU",
      • "areaId": "Deprecated - Use locationId",
      • "plantId": "1100",
      • "planningPlantId": "1100",
      • "plannerGroupId": "PPM",
      • "activeStatusIds": "OSNO CRTE",
      • "maintenanceTypeId": "015",
      • "maintenanceType": "Project work",
      • "basicStartDateTime": "2019-08-24T14:15:22Z",
      • "basicEndDateTime": "2019-08-24T14:15:22Z",
      • "createdDateTime": "2019-08-24T14:15:22Z",
      • "changedDateTime": "2019-08-24T14:15:22Z",
      • "costWBSId": "M.O037C.20.A.0002.A2",
      • "projectId": "M.O037C.20.A.0002",
      • "costNetworkId": "9045173",
      • "costNetworkOperationId": "0010",
      • "sortField": "PRS10239.WP12"
      }
    ]

    Project Work order - Create

    Overview

    Create new Project Work order

    Important information

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

    Authorizations:
    Request Body schema: application/json

    Project Work order to create

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

    Structured location within the plant where the tag is located

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

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

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

    Deprecated 01.2021 - Use locationId instead

    text
    string

    Responses

    Request samples

    Content type
    application/json
    Example
    {
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "title": "14xx/Installere flowline CD2",
    • "isTimeOnlyWorkOrder": false,
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "plantId": "1100",
    • "locationId": "CD2",
    • "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",
    • "costWBS": "Conc.: Well A10 GL hook-up FL",
    • "plannerGroup": "Plattform PV",
    • "workCenter": "AI Automasjon",
    • "workOrderId": "24684145",
    • "tagId": "LZ1012",
    • "tagPlantId": "1100",
    • "tag": "A10 OIL PRODUCTION WELL",
    • "title": "1416/Installerer Flowlinw A10",
    • "isTimeOnlyWorkOrder": false,
    • "workCenterId": "PPMAUT",
    • "workCenterPlantId": "1100",
    • "locationId": "CD17OU",
    • "areaId": "Deprecated - Use locationId",
    • "plantId": "1100",
    • "planningPlantId": "1100",
    • "plannerGroupId": "PPM",
    • "activeStatusIds": "OSNO CRTE",
    • "maintenanceTypeId": "015",
    • "maintenanceType": "Project work",
    • "basicStartDateTime": "2019-08-24T14:15:22Z",
    • "basicEndDateTime": "2019-08-24T14:15:22Z",
    • "createdDateTime": "2019-08-24T14:15:22Z",
    • "changedDateTime": "2019-08-24T14:15:22Z",
    • "costWBSId": "M.O037C.20.A.0002.A2",
    • "projectId": "M.O037C.20.A.0002",
    • "costNetworkId": "9045173",
    • "costNetworkOperationId": "0010",
    • "sortField": "PRS10239.WP12"
    }

    Project Work order - Add operation(s)

    Add operations

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

    Operations to add to existing Work order

    title
    required
    string [ 0 .. 40 ] characters Nullable
    operation
    required
    string Nullable

    Id of operation user is familiar with

    workCenterId
    string Nullable
    workCenterPlantId
    string Nullable
    text
    string Nullable
    plannedWorkDuration
    string Nullable

    Duration as defined in ISO8601

    capacityCount
    integer <int32>
    schedulingStartConstraintId
    string Nullable
    Enum: "MSO" "SNET" "SNLT" null

    Constraint: * MSO - Must start on * SNET - Start no earlier than * SNLT - Start no later than

    schedulingStartConstraintDateTime
    string <date-time> Nullable
    schedulingFinishConstraintId
    string Nullable
    Enum: "MFO" "FNET" "FNLT" null

    Constraint: * MFO - Must finish on date * FNET - Finish no earlier than * FNLT - Finish no later than

    schedulingFinishConstraintDateTime
    string <date-time> Nullable
    isScheduledExternally
    boolean Nullable
    earliestStartDateTime
    string <date-time> Nullable
    earliestFinishDateTime
    string <date-time> Nullable

    Responses

    Request samples

    Content type
    application/json
    Example
    [
    • {
      • "operation": "0010",
      • "title": "Bygge stillas",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkDuration": "P0Y0M0DT4H0M0S",
      • "capacityCount": 2,
      • "text": "Bygge stillas\n3 x 3 x 5 meter",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      },
    • {
      • "operation": "0020",
      • "title": "Bytte del",
      • "workCenterId": "SPIAUT",
      • "workCenterPlantId": "1100",
      • "plannedWorkDuration": "P0Y0M0DT3H30M0S",
      • "capacityCount": 1,
      • "text": "",
      • "schedulingStartConstraintId": "MSO",
      • "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
      • "schedulingFinishConstraintId": "MFO",
      • "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
      }
    ]

    Response samples

    Content type
    application/json
    {}

    Maintenance plans

    The function of the maintenance programme is to systematize the maintenance effort so that the maintenance resources are used in a controlled, cost-effective manner to ensure a safe workplace with stable production and high production efficiency.

    Maintenance is defined in accordance with international standards and is about activities intended to prevent loss of or restore an item's ability to provide a required function. In practice, this involves activities to check condition, test functions, prolong life or repair.

    Overview of maintenance programme structure can be found in Equinor's internal governing document GL1624 Guidelines for the establishment of a preventive maintenance programme in SAP

    The maintenance programme consists of maintenance plans.

    Maintenance Plan - Lookup

    Lookup single Maintenance Plan

    Authorizations:
    path Parameters
    plan-id
    required
    string
    query Parameters
    include-items
    boolean
    Default: true

    Include items of the maintenance plan

    include-item-calls
    boolean
    Default: true

    Include calls for items of the maintenance plan

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-plans/%7Bplan-id%7D?include-items=SOME_BOOLEAN_VALUE&include-item-calls=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "maintenancePlanId": "1056916",
    • "maintenancePlan": "1100-AKCD2 MODULPROGRAM TELE CD2",
    • "items": [
      • {
        }
      ]
    }

    Maintenance Plan Item- Lookup

    Overview

    Lookup single maintenance plan item

    Maintenance Item contains the object list, task list and previous calls for preventive work orders.

    The object list describes the tag/equipment covered in the maintenance plan item.

    The task list describes the maintenance activities with the necessary support activities to be performed in the maintenance programme. These are divided into operations that are listed in an order that is natural for the practical implementation of the maintenance. The task List also sets the interval of operations through maintenance packages.

    Authorizations:
    path Parameters
    plan-id
    required
    string

    The id of the maintenance plan

    item-id
    required
    string

    The id of the maintenance plan item

    query Parameters
    include-item-calls
    boolean
    Default: true

    Include calls to maintenance plan item

    include-item-object-list
    boolean
    Default: false

    Include list of objects for the maintenance plan item

    include-item-task-list
    boolean
    Default: false

    Include task list, operations (w/related objects and material needs) for the maintenance plan item

    Responses

    Request samples

    curl --request GET \
      --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-plans/%7Bplan-id%7D/items/%7Bitem-id%7D?include-item-calls=SOME_BOOLEAN_VALUE&include-item-object-list=SOME_BOOLEAN_VALUE&include-item-task-list=SOME_BOOLEAN_VALUE' \
      --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'

    Response samples

    Content type
    application/json
    {
    • "calls": [
      • {
        }
      ],
    • "taskList": {
      • "taskListId": "T-10012713-02",
      • "taskList": "24/48M FV-MULTI TRAIN1 GLYCOL REBOILER",
      • "taskListTypeId": "T",
      • "planningPlantId": "1100",
      • "statusId": "4",
      • "operations": [
        ]
      },
    • "maintenancePlanItemId": "10072940",
    • "maintenancePlanItem": "24M FV-TELE MODULPROGRAM CD2",
    • "maintenancePlanId": "1056916",
    • "planningPlantId": "1100",
    • "mainTagId": "AE5566",
    • "mainTagPlantId": "1100",
    • "maintenanceActivityTypeId": "002",
    • "maintenanceActivityType": "Periodic maintenance"
    }

    Maintenance concepts

    The company's collection of standardised preventive maintenance activities to facilitate safe, reliable and efficient operation.