NAV Navbar
Logo
JavaScript C#

API Reference

The Intelex API is organized around REST. Our API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. We use built-in HTTP features, like HTTP authentication and HTTP verbs, which are understood by off-the-shelf HTTP clients. JSON is returned by all API responses, including errors.

Getting Started

API Endpoint - replace intelex_url with the full URL path to your Intelex system

https://intelex_url/api/v2/

To begin using the Intelex API you will need:

Authentication

Example Requests:

// Basic Authentication
var request = require("request");

var options = {
  headers: { Authorization: "Basic [insert credentials here]" }
  };


//ApiKey Authentication
var request = require("request");

var options = {
  headers: { Authorization: "ApiKey [insert key here]" }
  };


// Secure Access Token Authentication
var request = require("request");

var options = {
  headers: { Authorization: "Bearer [insert Access token here]" }
  };

// Basic Authentication
var request = new RestRequest(Method.GET);

request.AddHeader("Authorization", "Basic [insert credentials here]");


// ApiKey Authentication
var request = new RestRequest(Method.GET);

request.AddHeader("Authorization", "ApiKey [insert key here]");


// Secure Access Token Authentication
var request = new RestRequest(Method.GET);

request.AddHeader("Authorization", "Bearer [insert Access token here]");

The Intelex API supports three methods for authentication: Basic, ApiKey, and Secure. All API requests must be made over HTTPS and API requests without authentication will fail. Only Admin and Full Access users can use ApiKey and Secure authentication.

Security on data for all types of authentication is managed by the platform security configuration. API requests will maintain the security settings configured for the user on the Intelex platform.

Basic authentication is performed via HTTP Basic Auth with your Intelex user credentials (Username:Password). The credentials are verified by Intelex and access granted or denied accordingly.

ApiKey authentication can be performed by generating API access key(s) from the Intelex User Profile menu (note that this page is only accessible to full-access and admin users). The unique generated key can then be used to authenticate with the Intelex REST API.

Starting at Platform Version 6.6.7, secure token based authentication is supported by the V6 API. This form of authentication needs to be enabled by Intelex. During the authentication process, the client provides the ‘client id’ and ‘client secret’ to the authentication endpoint, along with the audience and grant type, as shown in the example. In response, the API furnishes an access token that comes with a specified expiration. After successful authentication, clients gain access to V6 API endpoints.

Example Requests:

Body for Authentication Endpoint
{"client_id":"Client ID Data",
"client_secret":"Client Secret Data",
"audience":"https://api.intelex.com/v6/",
"grant_type":"client_credentials"}

Example Response:

{
    "access_token": "Generated Bearer Access Token Used For Validation",
    "expires_in": "Token Expiry Time In Seconds",
    "token_type": "Bearer"
}

Get endpoint, secured client id and client secret

Login to the V6 application. Navigate to System Administration, User Administration, and then Navigate to API Access. Select the secured API from the API Access page; the endpoint, client id and client secret will be displayed on the details page. Use these to obtain an access token via API end point.

Data Format

The Intelex API only supports JSON as the data format for requests and responses.

Response Codes

Example error response

{
  "error": {
    "code": "string",
    "message": "string"
  }
}

The Intelex REST API will respond with the following HTTP status codes:

Response Code Meaning
200 Success – Enjoy your data!
201 Created – We created the record!
204 No Content – Your request was successful, but we don’t have anything more to tell you
400 Bad Request – Something is wrong with your request
401 Unauthorized – Your credentials are wrong
403 Forbidden – You do not have permission to access the resource
404 Not Found – The object or navigation property you are trying to access doesn’t exist
405 Method Not Allowed – We won’t let you do that
429 Too Many Requests – You have sent too many requests and have to wait till you can send more
500 Internal Server Error – We had a problem with our server. Try again later
501 Not Implemented – What you are trying to do doesn’t work…yet.

Versioning

When we make backwards-incompatible changes to the API, we release new versions. The current version is v2 and can be determined with our API base path /api/v2/. Read our Intelex platform release notes to see our API changelog.

API Rate Limiting / Quotas

To ensure Intelex Platform is reliable and has the expected performance for all users, we limit the number of API calls an API user (or application) can make within a given time period. If the limit is exceeded, the API user may be throttled and subsequent requests within the same period will fail (status code 429).

Limit

The Intelex Platform API Rate limit is 2 requests per second.

Quota headers

Quota details may be passed back to the API user/application via response headers.

Header Description Sample value
X-RateLimit-Limit The request limit per specified unit of time. 100
X-RateLimit-Remaining The remaining number of requests that API consumers can send in the current time window. 75
X-RateLimit-Reset The UTC epoch timestamp indicating the time of the next quota reset. Sent only when quota remains. 1521214822
X-RateLimit-Next The UTC epoch timestamp indicating the time of the next quota reset. Sent only when quota is full. 1521215291

Object Data API

Object Data API Endpoint - replace intelex_object with the system name of your object

https://intelex_url/api/v2/object/intelex_object

The Object Data API gives you the ability to create, retrieve, update, and delete data in your Intelex application objects. Each Object Data API resource is an Intelex application object. Access each resource by using the system name of the object in the API endpoint URL. The data sent and returned with your API requests are the fields that exist on the object you are accessing. The system name of fields is used in every request and response.

Your instance of Intelex may include system and custom objects. System objects include general platform objects and standard application objects. Custom objects are any objects created from scratch for your organization. All of these objects have unique system names. You’ll find the system name on the object detail page, in the System Name field.

Record Metadata

Example response with record metadata

{
    "value": {
        "@odata.type": "#Intelex.IncidentsObject",
        "@odata.id": "https://intelex_url/api/v2/object/IncidentsObject(UID)",
        "@odata.editLink": "https://intelex_url/api/v2/object/IncidentsObject(UID)"
    }
}

Some records returned from the API will contain a few properties that provide some useful information.

Property Description
@odata.type The entity type of the record. Useful when requesting records from parent objects
@odata.id A URL that can be used to access the record. To remove this property from your requests, append the query string key/value of: noIdLink=1 to your request URI
@odata.editLink Denotes if the record can be modified by the user making the request. Same as @odata.id link. To remove this property from your requests, append the query string key/value of: noEditLink=1 to your request URI

Record Limits

Example response with pagination link

{
    "@odata.nextLink": "https://intelex_url/api/v2/object/IncidentsObject?$skip=500"
}

We’ve provided a convenient way to access more data in any request for sequential data where the number of records exceeds 500. Simply call the url in the nextLink parameter and we’ll respond with the next set of data.

Object Relational Data

Many Intelex objects have relations to other objects. These relations are configured as relation type or lookup type fields. These fields are accessible via the API as navigation properties. Every object will have navigation properties that can be used to access its related data in another object. You’ll need to use the system name of the field configured with the related object in order to access related data.

You can access related data by using the $expand query option or you can navigate to related data using a URL path. You can traverse multiple levels of relational data by navigating through the URL path or with nested $expand queries.

Please note: Trying to access or modify relation fields that are self-referencing will not work (i.e. A relation type field on an object that is a relation to itself)

System Objects

Sometimes you might need to access data from system objects that contain data such as Employees or Locations. Here are some of the system objects for your reference:

System Object Description System Name
Employees Intelex Employees SysEmployeeEntity
Locations Intelex locations SysLocationEntity
Groups Intelex Employee groups SysGroupEntity
EDIS Staging Table Staging table used to process EDIS EmployeeStagingEntity

Requesting Object Data

Requesting records

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "Id": "string",
        "ActionsTaken": "string",
        "Date": "2017-02-13T22:15:30.203Z",
        "Description": "string",
        "IncidentNo": 0,
        "ReportedDate": "2017-02-13T22:15:30.203Z",
        "SuspectedCause": "string"
      }
    ]
}

Returns all records from an Intelex object that the user is authorized to view

GET /api/v2/object/{intelex_object}

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject

Requesting a specific record

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.type": "string",
    "@odata.id": "string",
    "@odata.editLink": "string",
    "Id": "string",
    "ActionsTaken": "string",
    "Date": "2017-02-13T22:15:30.203Z",
    "Description": "string",
    "IncidentNo": 0,
    "ReportedDate": "2017-02-13T22:15:30.203Z",
    "SuspectedCause": "string"
}

Returns an individual record from the Incidents object by referencing the UID of the record

GET /object/{intelex_object}({id})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
id The Intelex UID of the record being requested

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "Id": "string",
        "ActionsTaken": "string",
        "Date": "2017-02-13T22:15:30.203Z",
        "Description": "string",
        "IncidentNo": 0,
        "ReportedDate": "2017-02-13T22:15:30.203Z",
        "SuspectedCause": "string"
      }
    ]
}

Navigating to related records allows clients to request only the relational data belonging to a parent record. This includes relation type fields, lookup type fields, private document attachments, and workflow.

GET /object/{intelex_object}({id})/{navigation_property}

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
id The Intelex UID of the record being requested
navigation_property The Intelex system name of the relation type or lookup type field

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents(UID)' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents(UID)");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.type": "string",
    "@odata.id": "string",
    "@odata.editLink": "string",
    "Id": "string",
    "ActionsTaken": "string",
    "Date": "2017-02-13T22:15:30.203Z",
    "Description": "string",
    "IncidentNo": 0,
    "ReportedDate": "2017-02-13T22:15:30.203Z",
    "SuspectedCause": "string"
}

Navigating to related records allows clients to request only the relational data belonging to a parent record. This includes relation type fields, lookup type fields, private document attachments, and workflow.

GET /object/{intelex_object}({id})/{navigation_property}({id})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
id The Intelex UID of the record or related record being requested
navigation_property The Intelex system name of the relation type or lookup type field

Querying Object Data

Selecting record fields

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject',
  qs: { '$select': 'IncidentNo' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject?$select=IncidentNo");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "IncidentNo": 0
      }
    ]
}

The $select system query option allows clients to request a limited set of fields for each record.

GET /object/{intelex_object}?$select={field_name}

Option Example Values
Select a single field $select=IncidentNo
Select mutliple fields $select=IncidentNo, Description
URL Parameters
Parameter Description
field_name Field name(s) to include in response

Counting records

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject',
  qs: { '$count': 'true' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject?$count=true");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.count": 1,
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "Id": "string",
        "ActionsTaken": "string",
        "Date": "2017-02-13T22:15:30.203Z",
        "Description": "string",
        "IncidentNo": 0,
        "ReportedDate": "2017-02-13T22:15:30.203Z",
        "SuspectedCause": "string"
      }
    ]
}

The $count system query option with a value of true specifies that the total count of items within a collection matching the request be returned along with the result.

GET /object/{intelex_object}?$count=true

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject

Paginating records

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject',
  qs: { '$skip': '10', '$top': '5' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject?$skip=10&$top=5");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "Id": "string",
        "ActionsTaken": "string",
        "Date": "2017-02-13T22:15:30.203Z",
        "Description": "string",
        "IncidentNo": 0,
        "ReportedDate": "2017-02-13T22:15:30.203Z",
        "SuspectedCause": "string"
      }
    ]
}

The $top system query option requests the number of items in the queried collection to be included in the result. The $skip query option requests the number of items in the queried collection that are to be skipped and not included in the result.

GET /object/{intelex_object}?$top={top_n}&$skip={skip_n}

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
Query Parameters
Parameter Description
top_n Number of items to be included in the response
skip_n Number of items to be skipped

Sorting records

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject',
  qs: { '$orderby': 'DateCreated desc' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject?$orderby=DateCreateddesc");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "Id": "string",
        "ActionsTaken": "string",
        "Date": "2017-02-13T22:15:30.203Z",
        "Description": "string",
        "IncidentNo": 0,
        "ReportedDate": "2017-02-13T22:15:30.203Z",
        "SuspectedCause": "string"
      }
    ]
}

The $orderby system query option allows clients to request records in either ascending order using ‘asc’ or descending order using ‘desc’. Default is ascending. The request below sorts the collection by date in descending order.

GET /object/{intelex_object}?$orderby={field_name}

Option Example Values
Sort by descending $orderby=DateCreated desc
Sort by ascending $orderby=DateCreated asc
Sort by drop-down value $orderby=Severity/Caption
Sort by multiple fields $orderby=DateCreated, Severity/Caption
Sort by workflow person responsible $orderby=Workflow/PersonResponsible/Name
URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
Query Parameters
Parameter Description
field_name Fields that you want to sort by

Filtering records

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject',
  qs: { '$filter': 'IncidentNo eq 1000' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject?$filter=IncidentNo eq 10");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "Id": "string",
        "ActionsTaken": "string",
        "Date": "2017-02-13T22:15:30.203Z",
        "Description": "string",
        "IncidentNo": 0,
        "ReportedDate": "2017-02-13T22:15:30.203Z",
        "SuspectedCause": "string"
      }
    ]
}

The $filter system query option allows clients to filter a collection of records. The expression specified with $filter is evaluated for each record in the collection, and only items where the expression evaluates to true are included in the response. There are built-in filter operators that can be used in order to retrieve the data you need

GET /object/{intelex_object}?$filter={filter_expression}

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
Query Parameters
Parameter Description
filter_expression Filter expression used to query data
Comparison Operators:
Name Description Example Values
eq Equal Severity/Value eq ‘Moderate’
ne Not equal Description ne null
gt Greater than IncidentNo gt 1000
ge Greater than or equal DateCreated ge 2017-01-01
lt Less than IncidentNo lt 1000
le Less than or equal DateCreated le 2014-11-24T12:55:05.35-05:00
Logical Operators:
Name Description Example Values
and Logical and Description ne null and Workflow/PersonResponsible/Name eq ‘AC Slater’
or Logical or Cause eq true or IncidentNo gt 1000
not Logical not not(contains(Description, ‘accident’))
Grouping Operators:
Name Description Example Values
( ) Precedence grouping IncidentNo gt 1000 and (Severity/Value eq ‘Moderate’ or contains(Description, ‘fall’))
Functions:
Name Description Example Values
contains(Field, Value) Sub-string search contains(Description, ‘accident’))
Filtering using Relation Fields:
Description Example Values
Filtering by drop-down value Severity/Value eq ‘Moderate’
Filtering by sub-record values SubIncidents/any(x:x/SubIncidentId gt 1000)
Filtering using Workflow:
Description Example Values
Filter based on person responsible Workflow/PersonResponsible/Name eq ‘AC Slater’
Filter based on workflow status (enum) Workflow/WorkflowStatus eq Enum.WorkflowStatusType'Completed’
Filtering tasks assigned to you

assignedToMe() is a function that can be used in expressions to easily filter tasks assigned to you as an individual, as a member of a location role, or member of a group. Requires Web Platform Release 6.5.131 or higher.

Description Example Values
Filter my tasks on current object $filter=assignedToMe()
Filter others’ tasks on current object $filter=not assignedToMe()
Filter tasks on a M:1 field on the current object $filter=assignedToMe(Audit/Workflow/PersonResponsible/Id)
Filter others’ tasks on a M:1 field on the current object $filter=not assignedToMe(Audit/Workflow/PersonResponsible/Id)

When filtering for a field, you have to specify the full path up to the Id of the Person Responsible, as in the examples above.

You can only access the records you have permission to view.

Filter alias

@me is an alias that can be used in expressions to filter based on your identity’

Description Example Values
Filter where you are the person responsible $filter=Workflow/PersonResponsible eq @me

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject',
  qs: { '$expand': 'Location' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject?$expand=Location");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "Id": "string",
        "ActionsTaken": "string",
        "Date": "2017-02-13T22:15:30.203Z",
        "Description": "string",
        "IncidentNo": 0,
        "ReportedDate": "2017-02-13T22:15:30.203Z",
        "SuspectedCause": "string",
        "Location": {
            "@odata.type": "string",
            "@odata.id": "string",
            "@odata.editLink": "string",
            "Id": "string",
            "DateCreated": "2015-01-28T16:24:19.63-05:00",
            "DateModified": "2016-04-21T15:02:38.723-04:00",
            "Address1": null,
            "Address2": null,
            "Area": null,
            "BusinessUnits": null,
            "City": null
        }
      }
    ]
}

The $expand system query option specifies the related object records and lookup object records to be included in-line with requested records. The parameter accepts a comma-separated list of relation field names. Use the system name of the relation type field or lookup type field in your query.

GET /object/{intelex_object}?$expand={relation_field}

Option Example Values
Expand a single relation field $expand=Severity
Expand multiple relation fields $expand=Severity, Workflow
Expand all relations $expand=*
Nested expand $expand=Workflow($expand=PersonResponsible)
Select expanded fields $expand=Severity($select=Name)
Sort expanded collection $expand=SubIncidents($orderby=DateCreated)
Filter expanded collection $expand=SubIncidents($filter=Description ne null)
Filter and select expanded collection $expand=SubIncidents($filter=Description ne null;$select=Description)
Expand child locations on SysLocationEntity system object - 1 level /object/SysLocationEntity?$expand=ChildLocations
Expand child locations on SysLocationEntity system object - multi-level /object/SysLocationEntity?$expand=ChildLocations($expand=ChildLocations)
Expand parent location on SysLocationEntity system object /object/SysLocationEntity?$expand=ParentLocation
URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
Query Parameters
Parameter Description
relation_field Relation field used to request related object data

Modifying Object Data

Create a record

Example Request

var request = require("request");

var options = { method: 'POST',
  url: 'https://intelex_url/api/v2/object/IncidentsObject',
  headers: { 'content-type': 'application/json' },
  body:
   { ActionsTaken: 'string',
     Date: '2017-02-13T22:15:30.203Z',
     Description: 'string',
     IncidentNo: 0,
     ReportedDate: '2017-02-13T22:15:30.203Z',
     SuspectedCause: 'string' },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"ActionsTaken\": \"string\",\r\n    \"Date\": \"2017-02-13T22:15:30.203Z\",\r\n    \"Description\": \"string\",\r\n    \"IncidentNo\": 0,\r\n    \"ReportedDate\": \"2017-02-13T22:15:30.203Z\",\r\n    \"SuspectedCause\": \"string\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.type": "string",
    "@odata.id": "string",
    "@odata.editLink": "string",
    "Id": "string",
    "ActionsTaken": "string",
    "Date": "2017-02-13T22:15:30.203Z",
    "Description": "string",
    "IncidentNo": 0,
    "ReportedDate": "2017-02-13T22:15:30.203Z",
    "SuspectedCause": "string"
}

Example request of creating a record and setting a location value:

{
    "Location@odata.bind": "https://intelex_url/api/v2/object/LocationObject(Id)"
}

Example request of creating a record and setting a lookup type value:

{
    "Severity@odata.bind": "https://intelex_url/api/v2/object/SeverityLookupObject(Id)"
}

Example request of creating a record and set workflow recurrence or person responsible:

{
    "Workflow": {
        "PersonResponsible@odata.bind": "https://intelex_url/api/v2/object/EmployeeObject(UID)",
        "RecurringSeries": {
            "Frequency": "RRULE:FREQ=HOURLY",
            "StartDate": "2017-06-06T02:30:00-05:00",
            "EndDate": "2017-07-07T02:30:00-05:00"
        }
    }
}

Example request of creating a record and attaching related records:

{
    "RelatedIncidents@odata.bind": [
        "https://intelex_url/api/v2/object/RelatedIncidentObject(Id)",
        "https://intelex_url/api/v2/object/RelatedIncidentObject(Id)"
    ]
}

Creates a record with values in the object specified in the path. A client generated GUID can be used when creating records. Creating a record also supports setting a value for related fields, lookup types, or workflow person responsible. You can do this by binding the @odata.id property of the related record to the field.

POST /object/{intelex_object}

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
Body Parameters
Parameter Description
field_name The value you want to set for your object field. Replace field_name with the system name of the object field
relation_field@odata.bind The @odata.id of the related record you want to associate to a relational field. Replace relation_field with the system name of the relation type field you want to set
Header Parameters

When you create a record you also have the opportunity to execute an available workflow action within the same request. This is useful if you’d like a record to move to stage when it is created. In order to execute a workflow stage action within a create request, you’ll need to provide a header parameter.

Parameter Description Required Example Value
ActionToExecute UID of the workflow stage action No Id=797bbb3b-b485-4e73-a21c-2b9d5454f8ab

Create a sub-record

Example Request

var request = require("request");

var options = { method: 'POST',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents',
  headers: { 'content-type': 'application/json' },
  body: 
   { ActionsTaken: 'string',
     Date: '2017-02-13T22:15:30.203Z',
     Description: 'string',
     IncidentNo: 0,
     ReportedDate: '2017-02-13T22:15:30.203Z',
     SuspectedCause: 'string' },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"ActionsTaken\": \"string\",\r\n    \"Date\": \"2017-02-13T22:15:30.203Z\",\r\n    \"Description\": \"string\",\r\n    \"IncidentNo\": 0,\r\n    \"ReportedDate\": \"2017-02-13T22:15:30.203Z\",\r\n    \"SuspectedCause\": \"string\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.type": "string",
    "@odata.id": "string",
    "@odata.editLink": "string",
    "Id": "string",
    "ActionsTaken": "string",
    "Date": "2017-02-13T22:15:30.203Z",
    "Description": "string",
    "IncidentNo": 0,
    "ReportedDate": "2017-02-13T22:15:30.203Z",
    "SuspectedCause": "string"
}

You can also create related records by sending POST requests to navigation properties. This request will create the record in the related object referenced by the navigation_property. Setting location,person responsible, and attaching related records is also supported when creating related records.

POST /object/{intelex_object}({id})/{navigation_property}

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the parent record
navigation_property The Intelex system name of the relation type field that supports sub-records i.e. “Has a list of attached”
Body Parameters
Parameter Description
field_name The value you want to set for your related object field. Replace field_name with the system name of the object field
Header Parameters

When you create related records you also have the opportunity to execute an available workflow action within the same request. This is useful if you’d like a record to move to stage when it is created. In order to execute a workflow stage action within a create request, you’ll need to provide a header parameter.

Parameter Description Required Example Value
ActionToExecute UID of the workflow stage action No Id=797bbb3b-b485-4e73-a21c-2b9d5454f8ab

Update a record

Example Request

var request = require("request");

var options = { method: 'PATCH',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)',
  headers: { 'content-type': 'application/json' },
  body: { Description: 'string' },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)");
var request = new RestRequest(Method.PATCH);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"Description\": \"string\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Example of updating a location value:

{
    "Location@odata.bind": "https://intelex_url/api/v2/object/LocationObject(UID)"
}

Example of updating a lookup type value:

{
    "Severity@odata.bind": "https://intelex_url/api/v2/object/SeverityLookupObject(UID)"
}

Example of attaching related records:

{
    "RelatedIncidents@odata.bind": [
        "https://intelex_url/api/v2/object/RelatedIncidentObject(UID)",
        "https://intelex_url/api/v2/object/RelatedIncidentObject(UID)"
    ]
}

Updates a record in the object specified in the path. You can update values for related fields, lookup types by binding the @odata.id property of the related record to the field.

PATCH /object/{intelex_object}({id})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being updated
Body Parameters
Parameter Description
field_name The value you want to set for your object field. Replace field_name with the system name of the object field
relation_field@odata.bind The @odata.id of the related record you want to associate to a relational field. Replace relation_field with the system name of the relation type field you want to set
Header Parameters

When you update a record you also have the opportunity to execute an available workflow action within the same request. This is useful if you’d like a record to move to stage when it is updated. In order to execute a workflow stage action within an update request, you’ll need to provide a header parameter.

Parameter Description Required Example Value
ActionToExecute UID of the workflow stage action No Id=797bbb3b-b485-4e73-a21c-2b9d5454f8ab

Delete a record

Example Request

var request = require("request");

var options = { method: 'DELETE',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)");
var request = new RestRequest(Method.DELETE);
IRestResponse response = client.Execute(request);

Deletes an individual record in the Intelex object specified in the path. If SoftDelete is enabled for the object then the record will be archived instead.

DELETE /object/{intelex_object}({id})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
id The Intelex UID of the record being updated

Delete a sub-record

Example Request

var request = require("request");

var options = { method: 'DELETE',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents(UID)' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents(UID)");
var request = new RestRequest(Method.DELETE);
IRestResponse response = client.Execute(request);

Deletes an individual sub-record in the Intelex object specified in the path. If SoftDelete is enabled for the object then the record will be archived instead.

DELETE /object/{intelex_object}({id})/{navigation_property}({id})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
id The Intelex UID of the record or related record being accessed
navigation_property The Intelex system name of the relation type field

Removing a single value reference

Example Request

var request = require("request");

var options = { method: 'DELETE',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Severity/$ref' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Severity/$ref");
var request = new RestRequest(Method.DELETE);
IRestResponse response = client.Execute(request);

Sets the value in a drop-down to null. This call is useful if you need to remove a value that’s been set for a record.

DELETE /object/{intelex_object}({id})/{navigation_property}/$ref

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record
navigation_property The Intelex system name of the relation type field - must be a drop-down relation type field

Removing a multi-value reference

Example Request

var request = require("request");

var options = { method: 'DELETE',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/RelatedIncidents(UID)/$ref' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/RelatedIncidents(UID)/$ref");
var request = new RestRequest(Method.DELETE);
IRestResponse response = client.Execute(request);

This request detaches a related records. It deletes the relationship, but does not delete the related record itself.

DELETE /object/{intelex_object}({id})/{navigation_property}({id})/$ref

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record or related record
navigation_property The Intelex system name of the relation type field - must be references associated relation type field

Object Workflow Data

Requesting Workflow Data

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.context": "string",
    "@odata.type": "string",
    "@odata.id": "string",
    "Id": "string",
    "DateModified": "2016-07-14T14:32:05.44-04:00",
    "DateCreated": "2016-04-25T12:54:18.563-04:00",
    "DateNotRequired": null,
    "DueDate": null,
    "DueDateType": "string",
    "EntityId": "string",
    "EntityName": "",
    "IsVirtual": false,
    "LocationId": "string",
    "ObjectId": "string",
    "WorkflowStatus": "string"
}

This request allows you to retrieve the workflow information for a given record.

GET /object/{intelex_object}({id})/Workflow

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed

Requesting Status

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/Status' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/Status");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.context": "string",
    "@odata.type": "string"
    "@odata.id": "string",
    "Id": "string",
    "DateCreated": "2017-03-08T11:52:49.723-05:00",
    "DateModified": "2017-03-08T11:52:49.723-05:00",
    "Description": "Draft",
    "DueDateExpression": null,
    "DueDateLengthType": null,
    "DueDateLengthValue": null,
    "InheritedPermission": true,
    "IsFirstStage": true,
    "IsStandardPermission": true,
    "Name": "Draft",
    "RecipientExpression": null,
    "RecipientType": "string",
    "StageAction": null,
    "StayInEditMode": false,
    "SystemName": "Draft",
    "TaskType": "Action"
}

This request allows you to retrieve the information about the workflow status that the record is currently in.

GET /object/{intelex_object}({id})/Workflow/Status

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed

Requesting Current Stage

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/CurrentStage' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/CurrentStage");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.context": "string",
    "@odata.type": "string",
    "@odata.id": "string",
    "Id": "string",
    "DateCreated": "2017-03-08T11:52:49.723-05:00",
    "DateModified": "2017-03-08T11:52:49.723-05:00",
    "Description": "Draft",
    "DueDateExpression": null,
    "DueDateLengthType": null,
    "DueDateLengthValue": null,
    "InheritedPermission": true,
    "IsFirstStage": true,
    "IsStandardPermission": true,
    "Name": "Draft",
    "RecipientExpression": null,
    "RecipientType": "string",
    "StageAction": null,
    "StayInEditMode": false,
    "SystemName": "Draft",
    "TaskType": "Action"
}

This request allows you to retrieve the information about the workflow stage that the record is currently in.

GET /object/{intelex_object}({id})/Workflow/CurrentStage

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed

Requesting Stage Actions

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/CurrentStage/Actions' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/CurrentStage/Actions");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
  "@odata.context": "string",
  "value": [
    {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "DateModified": "2017-03-08T11:52:49.927-05:00",
        "DateCreated": "2017-03-08T11:52:49.927-05:00",
        "Confirmation": "string",
        "FlowDefinition": "string",
        "IsHidden": false,
        "MobileCaption": null,
        "Name": "string",
        "NavigateBackEnabled": true,
        "Order": 1,
        "RequireSignature": true,
        "SystemName": "string",
        "Tooltip": null,
        "TriggerCondition": "",
        "UrlIcon": "",
        "UserActionsRequired": true
    }
  ]
}

This request allows you to retrieve the information about the workflow stage actions available for a record in the current stage. Note: When a workflow is published, the action IDs are created. If someone updates a workflow, they have to re-publish it for the changes to take effect, and all the action IDs change. Typically, you don’t need to worry about this, but if your action IDs stop working, you should check them by running a dummy record through the workflow.

GET /object/{intelex_object}({id})/Workflow/CurrentStage/Actions

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed

Requesting Person Responsible

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/PersonResponsible' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/PersonResponsible");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.context": "string",
    "@odata.type": "string"
    "@odata.id": "string",
    "Id": "string",
    "DateCreated": "2010-06-20T20:00:00-04:00",
    "DateModified": "2015-06-17T15:21:51.813-04:00",
    "CustomField": null,
    "IsSystem": false,
    "Name": "string"
}

This request allows you to retrieve the individual assigned to the workflow stage of the record. Workflow and PersonResponsible are navigation properties that can be accessed using the $expand system query option as well.

GET /object/{intelex_object}({id})/Workflow/PersonResponsible

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed

Requesting Frequency

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/RecurringSeries' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/RecurringSeries");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.context": "string",
    "@odata.type": "string"
    "@odata.id": "string",
    "Id": "string",
    "DateCompleted": null,
    "EndDate": "2017-07-07T03:30:00-04:00",
    "EntityId": "string",
    "Frequency": "RRULE:FREQ=HOURLY",
    "GracePeriod": 0,
    "IsActive": true,
    "NextScheduledDate": "2017-06-06T04:30:00-04:00",
    "OriginalStartDate": "2017-06-06T03:30:00-04:00",
    "StartDate": "2017-06-06T03:30:00-04:00"
}

This request allows you to retrieve the workflow frequency applied to the record. The frequency property value is in iCal format.

GET /object/{intelex_object}({id})/Workflow/RecurringSeries

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed

Executing a Stage Action

Example Request

var request = require("request");

var options = { method: 'POST',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/CurrentStage/Actions(UID)/Action.ExecuteStageAction' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/CurrentStage/Actions(UID)/Action.ExecuteStageAction");
var request = new RestRequest(Method.POST);
IRestResponse response = client.Execute(request);

This request allows you to push a record through its workflow stages. Note: When a workflow is published, the action IDs are created. If someone updates a workflow, they have to re-publish it for the changes to take effect, and all the action IDs change. Typically, you don’t need to worry about this, but if your action IDs stop working, you should check them by running a dummy record through the workflow.

POST /object/{intelex_object}({id})/Workflow/CurrentStage/Actions(id)/Action.ExecuteStageAction

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record or action being accessed

Updating Frequency

Example Request

var request = require("request");

var options = { method: 'PATCH',
  url: 'https://intelex_url/api/v2/object/IncidentsObject%28UID%29/Workflow/RecurringSeries',
  headers: { 'content-type': 'application/json' },
  body: 
   { Frequency: 'RRULE:FREQ=HOURLY',
     StartDate: '2017-06-06T03:30:00-04:00' },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject%28UID%29/Workflow/RecurringSeries");
var request = new RestRequest(Method.PATCH);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\n  \"Frequency\": \"RRULE:FREQ=HOURLY\",\n  \"StartDate\": \"2017-06-06T03:30:00-04:00\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

This request allows you to modify the workflow frequency for a given record. The Frequency property will only accept iCal formatted strings.

PATCH /object/{intelex_object}({id})/Workflow/RecurringSeries

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record or action being accessed
Body Parameters
Parameter Description
Frequency iCal formatted string representing the calendar frequency
StarDate Date you want the frequency to begin
EndDate Date you want the frequency to end

Updating Person Responsible

Example Request

var request = require("request");

var options = { method: 'PATCH',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow',
  headers: { 'content-type': 'application/json' },
  body: { 'PersonResponsible@odata.bind': 'https://intelex_url/api/v2/object/EmployeeObject(UID)' },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow");
var request = new RestRequest(Method.PATCH);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\n\t\"PersonResponsible@odata.bind\": \"https://intelex_url/api/v2/object/EmployeeObject(UID)\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

This request allows you to modify the workflow person responsible for a given record. This is the method used to re-assign tasks for a given record.

PATCH /object/{intelex_object}({id})/Workflow

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record or action being accessed
Body Parameters
Parameter Description
PersonResponsible@odata.bind the @odata.id of the employee you want to assign as person responsible

Object Attachments

There are two types of file attachments on records. Files can be attached to the Private Document Attachment grid on a record or to the File type field of an object. To access files in the Private Document Attachment grid use the system reserved property: ILX.Attachments. To access files in the File type field use the system name of the field. Document Control uses this file type field and an example is added below showing how to access the released and effective version of document control files.

Requesting Private Documents

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject%28UID%29/ILX.Attachments' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject%28UID%29/ILX.Attachments");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
          "@odata.id": "string",
          "@odata.mediaContentType": "string",
          "Id": "string",
          "AttachmentName": "string",
          "Bytes": 0,
          "IsDraft": true,
          "ObjectRecordId": "string",
          "Uri": "string",
          "Attachment@odata.mediaReadLink": "string"
      }
    ]
}

This request returns a list of all private document attachments belonging to a given record. ILX.Attachments is a system reserved property for working with private document attachments. Any object that has private document attachments enabled will be able to access this property and request the private documents that belong to a record.

GET /object/{intelex_object}({id})/ILX.Attachments

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed

Downloading Private Documents

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.Attachments(UID)',
  headers: 
   { prefer: 'attachment=thumbnail',
     accept: 'application/octet-stream' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject%28UID%29/ILX.Attachments(UID)");
var request = new RestRequest(Method.GET);
request.AddHeader("prefer", "attachment=thumbnail");
request.AddHeader("accept", "application/octet-stream");
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.id": "string",
    "@odata.mediaContentType": "string",
    "Id": "string",
    "AttachmentName": "string",
    "Bytes": 0,
    "IsDraft": true,
    "ObjectRecordId": "string",
    "Uri": "string",
    "Attachment@odata.mediaReadLink": "string"
}

By default, this request returns the metadata of a specific private document attachment. When you provide the Accept header value of octet-stream, then the file will be downloaded instead. If it is an image, you also have the ability to request it in a thumbnail size.

GET /object/{intelex_object}({id})/ILX.Attachments({id})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record or document being accessed
Header Parameters
Parameter Description Example Value
Accept Provide the content type in order to download the file application/octet-stream
Prefer Used to request a thumbnail version of an image file attachment=thumbnail

Downloading Document Control Files

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/DocDocumentEntity(UID)/CurrentRevision/File',
  headers: 
   { accept: 'application/octet-stream' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/DocDocumentEntity%28UID%29/CurrentRevision/File");
var request = new RestRequest(Method.GET);
request.AddHeader("accept", "application/octet-stream");
IRestResponse response = client.Execute(request);

Example Response

{
    "Id": "string",
    "DateModified": "string",
    "DateCreated": "string",
    "Content@odata.mediaReadLink": "string",
    "FileExtension": "string",
    "Name": "string",
    "Size": 0
}

By default, this request returns the metadata of a released and effective document of a document control record. When you provide the Accept header value of octet-stream, then the file will be downloaded instead. Document Control files use the File field type. This field type is available on any object and can be accessed like any other navigation property to download files. The example below is specific to Document Control.

GET /object/DocDocumentEntity({id})/CurrentRevision/File

URL Parameters
Parameter Description
id The Intelex UID of the record being accessed
PdfSecurity The level of security for pdf. Values: None = 1 or Default = 0
Header Parameters
Parameter Description Example Value
Accept Provide the content type in order to download the file application/octet-stream

Attaching Private Documents

Example Request

var fs = require("fs");
var request = require("request");

var options = { method: 'POST',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.Attachments',
  headers: { 'content-type': 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' },
  formData: 
   { '': 
      { value: 'fs.createReadStream("C:\\Document.docx")',
        options: 
         { filename: 'C:\\Document.docx',
           contentType: null } } } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.Attachments");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
request.AddParameter("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW", "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"\"; filename=\"C:\\Document.docx\"\r\nContent-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document\r\n\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.id": "string",
    "@odata.mediaContentType": "string",
    "Id": "string",
    "AttachmentName": "string",
    "Bytes": 0,
    "IsDraft": true,
    "ObjectRecordId": "string",
    "Uri": "string",
    "Attachment@odata.mediaReadLink": "string"
}

This request attaches a private document to a record. The file must be attached to the request as form-data. Files that exceed 10MB will not be attached. If the UID of the record does not exist, the file will be attached in draft mode. Once a record is created with the same record UID in the attach request, then the attachment will be associated to the record and will no longer be in draft mode.

POST /object/{intelex_object}({id})/ILX.Attachments

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed
Body Parameters
Parameter Type Description
multipart/formData file The file you want to attach to the record. Cannot exceed 10MB.

Detaching Documents

Example Request

var request = require("request");

var options = { method: 'DELETE',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.Attachments(UID)' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.Attachments(UID)");
var request = new RestRequest(Method.DELETE);
IRestResponse response = client.Execute(request);

This request deletes the specified document attached to a given record. ILX.Attachments is a system reserved property for working with private document attachments. Any object that has private document attachments enabled will be able to access this property and request the private documents that belong to a record.

DELETE /object/{intelex_object}({id})/ILX.Attachments({id})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record or document being accessed

Uploading Document Control Files

The first step for File type is to upload document. The file must be attached to the request as form-data. File size is configurable via web.config setting AttachmentMaxFileSize. There are two endpoints to upload file, difference is in the responses.

Example Request

var fs = require("fs");
var request = require("request");
var options = { method: 'POST',
  url: 'https://intelex_url/api/v2/FileUpload',
  headers: { 'content-type': 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' },
  formData: 
   { '': 
      { value: 'fs.createReadStream("C:\\Document.docx")',
        options: { filename: 'C:\\Document.docx', contentType: null } } 
    } 
};
request(options, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});

Example Response

[ "47df4cec-50ad-4da5-a820-7827985a77bb" ]

Endpoint 1

This will return UID for the newly created file. The UID then can be attached to a record.

POST /FileUpload
Header Parameters
Parameter Description Value
content-type The multipart/form-data content type is intended to allow information providers to express file upload requests uniformly, and to provide a MIME-compatible representation for file upload responses. multipart/form-data
Returns

201 Created with Array of File UID













Example Request

var fs = require("fs");
var request = require("request");
var options = { method: 'POST',
  url: 'https://intelex_url/api/v2/object/SysFileInfoEntity',
  headers: { 'content-type': 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' },
  formData: 
   { '': 
      { value: 'fs.createReadStream("C:\\Document.docx")',
        options: { filename: 'C:\\Document.docx', contentType: null } } 
    } 
};
request(options, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});

Example Response:

{
    "@odata.context": “string”,
    "@odata.type": "#Intelex.SysFileInfoEntity",
    "@odata.id": “string”,
    "@odata.editLink": "string",
    "Id": "string",
    "DateModified": "string",
    "DateCreated": "string",
    "Content@odata.mediaReadLink": "string",
    "FileExtension": "string",
    "Name": "string: filename",
    "Size": number
}

Endpoint 2

This will return Edm for the newly created file. The @data.id link then can be used to attached to a record.

POST /object/SysFileInfoEntity
Header Parameters
Parameter Description Value
content-type The multipart/form-data content type is intended to allow information providers to express file upload requests uniformly, and to provide a MIME-compatible representation for file upload responses. multipart/form-data
Returns

201 Created with newly created SysFileInfoEntity

Attaching Document Control Files

Once you have @odata.id of FileInfo, you can use that to attach to an object with File field. It is similar to Modifying Object Data

Example Request

{
  ....
  "FileInput@odata.bind": "http://torwdtahmed02.intelex.com/devlogin/inspections/api/v2/object/SysFileInfoEntity(47df4cec-50ad-4da5-a820-7827985a77bb)"
}
POST /object/{intelex_object}
Request Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
Request Body

If intelex object has field FileInput (of type File), then Post body should contain this to attach file

“FileInput@odata.bind”: @odata.id from file upload response"

Detaching Document Control File

It is same as detaching a reference field in Modifying Object Data. There is Intelex service that periodically cleans orphan files.

Object Merge Templates

Object merge templates allow you to extract data from any Intelex object and export it into a Microsoft Word® or PDF document, depending on the configuration of the merge template. By mapping ‘MergeFields’ in the Word document to data fields in a particular Intelex object, you are able to export dynamically generated files populated with object record data you need, such as employee names, hire dates, etc. You can use dot notations to drill down to child objects and populate their data.

Intelex objects with the merge template option enabled, and at least one uploaded Merge Template, can be queried in one of two ways.

To access Merge Template details use the system reserved property: ILX.MailMergeDocs.

Requesting Merge Templates

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.MailMergeDocs' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.MailMergeDocs");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
  "@odata.context": "string",
  "value": [
    {
      "@odata.type": "string",
      "@odata.id": "string",
      "@odata.editLink": "string",
      "Id": "string",
      "DateCreated": "2020-06-08T12:32:51.28-04:00",
      "DateModified": "2020-06-08T12:32:51.28-04:00",
      "Description": "string",
      "DownloadAs": "string",
      "ObjectRecordId": "string",
      "TemplateName": "string"
    }
  ]
}

This request returns a list of all merge templates belonging to a given object. ILX.MailMergeDocs is a system reserved property for working with merge templates. Any object that has merge templates enabled will be able to access this property and request the templates that belong to the object.

GET /object/{intelex_object}({id})/ILX.MailMergeDocs

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the object record being accessed

Downloading Merge Documents

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.MailMergeDocs(UID)',
  headers: 
   { accept: 'application/octet-stream' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.MailMergeDocs(UID)");
var request = new RestRequest(Method.GET);
request.AddHeader("accept", "application/octet-stream");
IRestResponse response = client.Execute(request);

Example Response - including the ‘accept’ header parameter, the response will be the binary contents of the dynamically generated document file.

By including the ‘accept’ header parameter, the response will be the binary contents of the dynamically generated document file.

PK �Y�P����.customXml/item1.xml�ZYo�8~_` ...

Example Response - without the ‘accept’ header, the response will be the metadata for the requested merge template record.

Without the ‘accept’ header, the response will be the metadata for the requested merge template record.

{
  "@odata.type": "string",
  "@odata.id": "string",
  "@odata.editLink": "string",
  "Id": "string",
  "DateCreated": "2020-06-08T12:32:51.28-04:00",
  "DateModified": "2020-06-15T11:02:24.28-04:00",
  "Description": "string",
  "DownloadAs": "string",
  "ObjectRecordId": "string",
  "TemplateName": "string"
}

By default, this request returns the metadata of a specific Merge Template document. When you provide the Accept header value of ‘application/octet-stream’, then the binary contents of merged file itself will be returned instead.

GET /object/{intelex_object}({id1})/ILX.MailMergeDocs({id2})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id1 The Intelex UID of the record being accessed
id2 The Intelex UID of the merge template to return
Header Parameters
Parameter Description Example Value
Accept Provide the content type in order to download the file application/octet-stream

Object Batch Requests

Example Batch Request Body: The following example includes a batch with a unique identifier of AAA123 and a change set with a unique identifier of BBB456. The request creates a record then updates the record that was just created

--batch_AAA123
Content-type: multipart/mixed; boundary=changeset_BBB456

--changeset_BBB456
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID:1

POST IncidentsObject HTTP/1.1
Content-Type: application/json

 { "ActionsTaken": "string", "Date": "string", "Description": "string", "IncidentNo": 0, "ReportedDate": "2017-02-13T22:15:30.203Z", "SuspectedCause": "string" }

--changeset_BBB456
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID:2

PATCH $1 HTTP/1.1
Content-Type: application/json

{"Description":"string"}

--changeset_BBB456--

--batch_AAA123--

The above batch request returns the following response with a 200 OK status:

--batchresponse_20a3a5a7-2df7-435e-9c62-ead3472499e7
Content-Type: multipart/mixed; boundary=changesetresponse_18666d72-dd34-46dc-8cae-2f0ff8208f7c

--changesetresponse_18666d72-dd34-46dc-8cae-2f0ff8208f7c
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 1

HTTP/1.1 201 Created
Location: https://intelex_url/api/v2/object/IncidentsObject(UID)
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0

{
    "@odata.type": "string", "@odata.id": "string", "@odata.editLink": "string", "Id": "string",  "ActionsTaken": "string", "Date": "2017-02-13T22:15:30.203Z", "Description": "string", "IncidentNo": 0,
    "ReportedDate": "2017-02-13T22:15:30.203Z", "SuspectedCause": "string"
}
--changesetresponse_18666d72-dd34-46dc-8cae-2f0ff8208f7c
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 2

HTTP/1.1 204 No Content


--changesetresponse_18666d72-dd34-46dc-8cae-2f0ff8208f7c--
--batchresponse_20a3a5a7-2df7-435e-9c62-ead3472499e7--

Use a POST request to submit a batch operation that contains multiple requests. A batch request can include GET, POST, PATCH, and DELETE requests as well as change sets. To use transactional capabilities of batch requests, only operations that will change data can be included within a change set. GET requests must not be included in the change set.

The POST request containing the batch must have a Content-Type header with a value set to multipart/mixed with a boundary set to include the identifier of the batch using this pattern:

--batch_<unique_identifier>

The unique identifier doesn’t need to be a GUID, but should be unique. Each item within the batch must be preceded by the batch identifier with a Content-Type and Content-Transfer-Encoding header:

--batch_AAA123

Content-Type: application/http

Content-Transfer-Encoding:binary

The end of the batch must contain a termination indicator:

--batch_AAA123--

By default, processing batch requests will stop on the first error unless the odata.continue-on-error preference is specified in the Prefer header. Also, the responses returned are essentially text documents rather than objects that can easily be parsed into JSON. You’ll need to parse the text in the response.

POST /object/$batch

Header Parameters
Parameter Description Required Example Value
Content-Type Content type for entire batch request Yes multipart/mixed;boundary=batch_AAA123
Prefer Preference to continue if error is encountered No odata.continue-on-error
Change Sets

When multiple operations are contained in a change set, all the operations are considered atomic, which means that if any one of the operations fail, any completed operations will be rolled back. Like a batch requests, change sets must have a Content-Type header with a value set to multipart/mixed with a boundary set to include the identifier of the change set using this pattern:

--changeset_<unique_identifier>

The unique identifier doesn’t need to be a GUID, but should be unique. Each item within the change set must be preceded by the change set identifier with a Content-Type and Content-Transfer-Encoding header like the following:

--changeset_BBB456

Content-Type: application/http

Content-Transfer-Encoding:binary

Change sets can also include a Content-ID header with a unique value. This value, when prefixed with $, represents a variable that contains the URI for any entity created in that operation. For example, when you set the value of 1, you can refer to that entity using $1 later in your change set.

The end of the change set must contain a termination indicator like the following:

--changeset_BBB456---

Batch Limits

The Batch service has its limits. The maximum number of operations or changesets that can be included in the body of a $batch request is 100. The maximum number of operations inside a changeset is 1000. The size of the payload for a $batch request cannot exceed 1MB.

Task API

The Task API gives you the ability to retrieve your Intelex tasks. These tasks can be found in the My Tasks Summary application in your Intelex platform. Tasks are object data records that are assigned to an employee in the Intelex system. You can create tasks by creating records and setting the workflow’s person responsible or re-assign tasks by updating a record’s person responsible

The Task API is currently in beta. This means that we might make changes to the data returned or how requests are made with future Intelex releases. Once the beta tag is removed, breaking changes to this API will be versioned.

Task Metadata

Example response with record metadata

{
    "value": {
        "@odata.type": "#Intelex.IncidentsObject",
        "@odata.id": "https://intelex_url/api/v2/object/IncidentsObject(UID)",
    }
}

Records returned from the API will contain a few properties that provide some useful information.

Property Description
@odata.type The the entity type of the record. Also contains the object system name the record belongs to
@odata.id A URL that can be used to access the record via the Object Data API

Task Record Limits

Example response with pagination link

{
    "@odata.nextLink": "https://intelex_url/api/v2/task/mytasks?$skip=500"
}

We’ve provided a convenient way to access more data in any request for sequential data where the number of records exceeds 500. Simply call the url in the nextLink parameter and we’ll respond with the next set of data.

Task Relational Data

Tasks resources have relations to Employees or Locations. These relations are accessible via the API as navigation properties.

Each task resource will have navigation properties that can be used to access its related data in either the Employee or Location objects:

Resource Available Navigation Properties
mytasks Employee
stafftasks Employee
locationtasks Employee, Location
alltasks Employee

You can use these navigation properties in $expand queries to return the related data in-line with your tasks.

Requesting Tasks

The following resources are similar to the application tabs you find in the My Tasks Summary application. You will only be able to access the following resources if you have the correct permissions set for the ‘Use Application Tab’ security setting on the associated application tab in Intelex.

Requesting Task Resources

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "name": "string",
        "kind": "string",
        "url": "string"
      }
    ]
}

Returns the task resource endpoints that you can access

GET /api/v2/task

Attribute Description
name The entity type of the record
kind Entity set or function
url Endpoint for resource

Requesting My Tasks

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/mytasks' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task/mytasks");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationId": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

Returns your tasks

GET /api/v2/task/mytasks

Attribute Description
Id Task ID
RespEmployeeName Person Responsible for Task
DueDateType Overdue, Upcoming, None
LocationId Location ID
LocationName Location Name
NetObjectId Object ID
NetObjectType System name of object
NetTaskId Object record ID
NextDate Next assigned due date for task
RecordDescription Task description
Stage Workflow stage name
TaskType Type of task
LegacyRecordId Intelex v5 task ID
LegacyRecordIdName Intelex v5 task name
LegacyRespEmployeeId Intelex v5 employee ID
LegacyTaskId Intelex v5 record ID
WebLink Web URL to access task view

Requesting My Staff’s Tasks

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/stafftasks' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task/stafftasks");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationId": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

Returns all tasks assigned to employees that the user is supervisor of

GET /api/v2/task/stafftasks

Attribute Description
Id Task ID
RespEmployeeName Person Responsible for Task
DueDateType Overdue, Upcoming, None
LocationId Location ID
LocationName Location Name
NetObjectId Object ID
NetObjectType System name of object
NetTaskId Object record ID
NextDate Next assigned due date for task
RecordDescription Task description
Stage Workflow stage name
TaskType Type of task
LegacyRecordId Intelex v5 task ID
LegacyRecordIdName Intelex v5 task name
LegacyRespEmployeeId Intelex v5 employee ID
LegacyTaskId Intelex v5 record ID
WebLink Web URL to access task view

Requesting Location Tasks

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/locationtasks' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task/locationtasks");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

Returns all tasks for a location. Default location is the user’s logon location set in their user profile. Tasks returned will belong to the default location and its child locations.

GET /api/v2/task/locationtasks

Attribute Description
Id Task ID
RespEmployeeName Person Responsible for Task
DueDateType Overdue, Upcoming, None
LocationName Location Name
NetObjectId Object ID
NetObjectType System name of object
NetTaskId Object record ID
NextDate Next assigned due date for task
RecordDescription Task description
Stage Workflow stage name
TaskType Type of task
LegacyRecordId Intelex v5 task ID
LegacyRecordIdName Intelex v5 task name
LegacyRespEmployeeId Intelex v5 employee ID
LegacyTaskId Intelex v5 record ID
WebLink Web URL to access task view
Header Parameters
Parameter Description
ActiveLocation Provide the ID of the location you want to use as the active location for your request. Records returned will belong to the active location and its child locations

Requesting All Tasks

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/alltasks' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task/alltasks");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationId": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

Returns all tasks in Intelex

GET /api/v2/task/alltasks

Attribute Description
Id Task ID
RespEmployeeName Person Responsible for Task
DueDateType Overdue, Upcoming, None
LocationId Location ID
LocationName Location Name
NetObjectId Object ID
NetObjectType System name of object
NetTaskId Object record ID
NextDate Next assigned due date for task
RecordDescription Task description
Stage Workflow stage name
TaskType Type of task
LegacyRecordId Intelex v5 task ID
LegacyRecordIdName Intelex v5 task name
LegacyRespEmployeeId Intelex v5 employee ID
LegacyTaskId Intelex v5 record ID
WebLink Web URL to access task view

Requesting Task Types

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/types' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task/types");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "Caption": "string",
        "Name": "string",
        "Description",
        "Module": {
            "@odata.type": "string",
            "@odata.id": "string",
            "Id": "string",
            "Caption": "string",
            "UrlCaption": "string",
            "Description": "string"
        }
      }
    ]
}

Returns types of tasks you can create. This data is used to determine which objects have ‘quick task creation’ enabled

GET /api/v2/task/types

Attribute Description
Id Task type ID
Caption System caption of object
Name System name of object
Description Description of object
Module.Captiom System caption of application
Module.UrlCaptions Navigation caption of application
Module.Description Description of application

Querying Tasks

You can use the following query options on any of the Task API resources

Selecting task fields

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/mytasks',
  qs: { '$select': 'RecordDescription' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/task/mytasks?$select=RecordDescription");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "RecordDescription": "string"
      }
    ]
}

The $select system query option allows clients to request a limited set of fields for each task.

GET /task/mytasks?$select={field_name}

Option Example Values
Select a single field $select=RecordDescription
Select mutliple fields $select=RecordDescription, RespEmployeeName
URL Parameters
Parameter Description
field_name Field name(s) to include in response

Counting task records

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/mytasks',
  qs: { '$count': 'true' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/task/mytasks?$count=true");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.count": 1,
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

The $count system query option with a value of true specifies that the total count of items within a collection matching the request be returned along with the result.

GET /task/mytasks?$count=true

Paginating tasks

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/mytasks',
  qs: { '$skip': '10', '$top': '5' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task/mytasks?$skip=10&$top=5");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

The $top system query option requests the number of items in the queried collection to be included in the result. The $skip query option requests the number of items in the queried collection that are to be skipped and not included in the result.

GET /task/mytasks?$top={top_n}&$skip={skip_n}

Query Parameters
Parameter Description
top_n Number of items to be included in the response
skip_n Number of items to be skipped

Sorting tasks

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/mytasks',
  qs: { '$orderby': 'NextDate desc' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/task/mytasks?$orderby=NextDate desc");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

The $orderby system query option allows clients to request tasks in either ascending order using ‘asc’ or descending order using ‘desc’. Default is ascending. The request below sorts the collection by date in descending order.

GET /task/mytasks?$orderby={field_name}

Option Example Values
Sort by descending $orderby=NextDate desc
Sort by ascending $orderby=NextDate asc
Sort by drop-down value $orderby=RespEmployeeName
Sort by multiple fields $orderby=NextDate, RecordDescription
Query Parameters
Parameter Description
field_name Fields that you want to sort by

Filtering tasks

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/mytasks',
  qs: { '$filter': 'RespEmployeeName eq \'Steve Rogers\'' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("http://cloud3.intelex.com/wabouchalha/api/v2/task/mytasks?%24filter=RespEmployeeName%20eq%20'Steve%20Rogers'");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

The $filter system query option allows clients to filter a collection of task. The expression specified with $filter is evaluated for each task in the collection, and only items where the expression evaluates to true are included in the response. There are built-in filter operators that can be used in order to retrieve the data you need

GET /task/mytasks?$filter={filter_expression}

Query Parameters
Parameter Description
filter_expression Filter expression used to query data
Comparison Operators:
Name Description Example Values
eq Equal DueDateType eq Enum.DueDateType'Overdue’
ne Not equal RecordDescription ne null
gt Greater than NextDate gt 2017-01-01
ge Greater than or equal NextDate ge 2017-01-01
lt Less than NextDate lt 2017-01-01
le Less than or equal NextDate le 2014-11-24T12:55:05.35-05:00
Logical Operators:
Name Description Example Values
and Logical and RecordDescription ne null and RespEmployeeName eq ‘Steve Rogers’
or Logical or RecordDescription eq null or NextDate gt 2017-01-01
not Logical not not(contains(RecordDescription, ‘accident’))
Grouping Operators:
Name Description Example Values
( ) Precedence grouping RespEmployeeName eq ‘Steve Rogers’ and (contains(TaskType, ‘Safety’) or contains(RecordDescription, ‘Safety’))
Functions:
Name Description Example Values
contains(Field, Value) Sub-string search contains(RecordDescription, ‘accident’))
Filtering using Relation Fields:
Description Example Values
Filtering by Employee name Employee/Name eq ‘Steve Rogers’
Filtering by Location name Location/Name eq ‘Toronto’

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/locationtasks',
  qs: { '$expand': 'Location' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task/locationtasks?$expand=Location");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string",
        "Location": {
            "@odata.type": "string",
            "@odata.id": "string",
            "@odata.editLink": "string",
            "Id": "string",
            "DateCreated": "2015-01-28T16:24:19.63-05:00",
            "DateModified": "2016-04-21T15:02:38.723-04:00",
            "Address1": null,
            "Address2": null,
            "Area": null,
            "BusinessUnits": null,
            "City": null
        }
      }
    ]
}

The $expand system query option specifies the related object records to be included in-line with requested tasks. The parameter accepts a comma-separated list of relation field names. Use the system name of the relation type field or lookup type field in your query.

GET /task/mytasks?$expand={relation_field}

Option Example Values
Expand Employee $expand=Employee
Expand Employee and Location $expand=Employee, Location
Expand all relations $expand=*
Select expanded fields $expand=Location($select=Name)
Sort expanded collection $expand=Location($orderby=Name)
Query Parameters
Parameter Description
relation_field Relation field used to request related object data

ACTS API

The ACTS API gives you the ability to retrieve or update data of selected database tables in ACTS product.

Reference

The Intelex ACTS API provides endpoints in ACTS, with it’s own URL for access. If you currently use the Intelex API, you will not be able to use the ACTS API unless you have Admin access to ACTS. At the same time, you can use the ACTS API without any permission for Intelex V6.

Our API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. We use built-in HTTP features, Token based authentication and HTTP verbs, which are understood by off-the-shelf HTTP clients. JSON is returned by all API responses, including errors.

Getting Started with ACTS API

API Endpoint - In the URL the tenant is the individual unique tenants based on the tenants they are specifying

https://[tenant].actsapi.intelex.com/v1/api/

To begin using the Intelex API you will need:

ACTS API Authentication

Example Requests:

Body for Authentication Endpoint
{"client_id":"Client ID Data",
"client_secret":"Client Secret Data",
"audience":"https://*.intelex.com/ACTSAPI",
"grant_type":"client_credentials"}

Example Response:

{
    "access_token": "Generated Bearer Access Token Used For Validation",
    "expires_in": "Token Expiry Time In Seconds",
    "token_type": "Bearer"
}

Intelex ACTS API uses tokens based authentication. Only ACTS Admin users can access the API.

During the authentication process, the client provides the ‘client id’ and ‘client secret’ to the authentication endpoint, along with the audience and grant type, as demonstrated above. In response, the API furnishes an access token that comes with a specified time limit. This authentication is exclusively applicable to admin users. After successful authentication, users gain unrestricted access to all ACTS API endpoints till the token expiration.

All interactions with the API are required to occur via HTTPS, and any API requests lacking proper authentication will result in failure. Data security is meticulously overseen by the ACTS platform, ensuring that API requests grant identical administrative access as enjoyed by authenticated ACTS admin users.

The user authentication endpoint uses a POST to generate the access token [bearer token].

ACTS API Versioning

When we make any new changes to the API, we release new versions. The current version of the ACTS API is v1 and can be determined with our API base path /api/v1/.

Example API endpoint : https://[tenant].actsapi.intelex.com/v1/[endpoint-name]

ACTS API Software & Certificate Version Details

The ACTS API SSL Certification is incompatible with following version of the python 3.10 + . If we use the python version < 3.10 the SSL handshake works for ACTS API.Currently this is considered as one of the limitation.

API’s and Associated Database Tables

This ACTS API release includes 13 GET enpoints and 5 POST endpoints, along with the authentication endpoint described earlier. The tables that can be queried and updated are as follows.

Database Tables supporting GET requests

  1. Attribute Type
  2. Compound
  3. Emission Type
  4. Emission Category
  5. Equipment
  6. Equipment Status
  7. Equipment Attribute
  8. Equipment Type
  9. Facility
  10. Facility Attribute
  11. Operation
  12. Operation Type
  13. Unit
  14. Workflow
  15. Workflow Answer
  16. Workflow Equipment
  17. Workflow Facility
  18. Workflow Person
  19. Workflow Question
  20. Workflow Type

Database Tables supporting POST requests

  1. Equipment
  2. Equipment Attribute
  3. Facility
  4. Facility Attribute
  5. Operation
  6. Workflow
  7. Workflow Answer
  8. Workflow Equipment
  9. Workflow Facility
  10. Workflow Person

Retrieve data from Database Table

This section outlines the various GET APIs available for fetching data from different tables. Each API provides the capability to retrieve specific data based on provided parameters. Pagination support is available for managing large datasets effectively.The user can pass the set of parameters of same or different filter options at once .

1. Attribute Type Table

This section outlines the process of retrieving data from the Attribute Type table using the dedicated API endpoint. The endpoint facilitates the retrieval of all data from the Attribute Type table or enables the selection of specific information by including Attribute Ids and Attribute Types. Additionally, the Attribute Type endpoint supports pagination to effectively manage larger datasets.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/attributetype' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/attributetype");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 3,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 1346,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "attribute_type_id": "number",
            "attribute_type": "string",
            "data_type_id": "number",
            "data_type_size": "number",
            "data_type_precision": "number",
            "data_type_filter": "string",
            "readonly_ind": "string",
            "searchable_ind": "string",
            "remote_ind": "string",
            "default_value": "string",
            "always_evaluate_default_ind": "string",
            "display_condition": "string",
            "disabled_condition": "string",
            "validation_condition": "string",
            "validation_error_text": "string",
            "view_column_name": "string",
            "activedate": "2011-07-04t17:42:43",
            "inactive_date": "2010-07-04t17:42:43",
            "lastmodifieddate": "2020-09-10t10:01:19",
            "externalidentifier": "string",
            "comments": "string",
            "refid": "string"
        }
    ]
}

API Endpoints

GET /api/v1/AttributeType

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
attributeTypeIds int Attribute ID is one of the filter parameter is a integer data type
attributeTypes string Attribute Types is for the project detail type

2. Compound API Table

This section guides you through the process of fetching data from the Compound table using the dedicated API endpoint. The endpoint offers the flexibility to retrieve all data from the Compound table or selectively acquire information by including Compound Ids, Compound Type Ids, Compound Status Ids, Compound Names, External Identifiers, or CAS Numbers. Additionally, the Compound endpoint is equipped with pagination capabilities to facilitate efficient management of substantial datasets.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/compound' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/compound");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 3,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 1346,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "compoundId": "number",
            "compound": "string",
            "compoundTypeId": "number",
            "compoundStatusId": "number",
            "activeDate": "2011-07-04T17:42:43",
            "description": "string",
            "alternateNames": "string",
            "cas": "string",
            "formula": "string",
            "molecularWeight": "number",
            "vpMolecularWeight": "number",
            "vp40": "number",
            "vp50": "number",
            "vp60": "number",
            "vp70": "number",
            "vp80": "number",
            "vp90": "number",
            "vp100": "number",
            "vpCoefA": "number",
            "vpCoefB": "number",
            "vpCoefC": "number",
            "vp2A": "number",
            "vp2B": "number",
            "reid": "number",
            "astmSlope": "number",
            "vpA": "number",
            "vpB": "number",
            "vpXMin": "number",
            "vpXMax": "number",
            "density": "number",
            "specificGravity": "number",
            "supplier": "string",
            "manufacturerId": "number",
            "epaTanksCategory": "string",
            "epaTanksId": "number",
            "inactiveDate": "string",
            "sortOrder": "number",
            "lastModifiedDate": "2020-09-10T10:01:19",
            "externalIdentifier": "string",
            "comments": "string",
            "refId": "string"
        }
    ]   
}

API Endpoints

GET /api/v1/compound

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
compoundIds int Compound ID is one of the unique identifier for this compound record
compoundTypeIds int Compound Type Ids is the associated compound type and is a second filter parameter option
compoundstatusIds int Compound Status Ids is associated with compound status
compoundNames string Compound Names The name of the compound which is a string type data and is one among the parameter for filter option
externalIdentifier int External Identifiers is a unique identifier for this record to an external data system
CAS string CAS Number is a Chemical Abstract Service number for the compound

3. Emission Category Table

This section elaborates on how to obtain data from the Emission Category table using the designated API endpoint. The endpoint allows you to retrieve all data from the Emission Category table or selectively acquire information by providing the Emission Category ID. Moreover, the Emission Category endpoint features pagination to facilitate efficient management of substantial datasets.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/emissioncategory' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/emissioncategory");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 3,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 1346,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "emission_category_id": "number",
            "emission_category": "string",
            "sort_order": "number",
            "last_modified_date": "2020-09-10t10:01:19",
            "external_identifier": "string",
            "comments": "string",
            "ref_id": "string"
            }
    ]
}

API Endpoints

GET /api/v1/emissioncategory

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
emissionCategoryIds int Emission Category ID is one of the unique identifier for this emission category record and is one of the filter option provided for Emission Category
emissionCategoryTypes string Emission Category Types is for the project to emission category detail types

4. Emission Type Table

This section guides you through the process of fetching data from the Emission Type table using the dedicated API endpoint. The endpoint enables you to retrieve data from the entire Emission Type table or selectively obtain information by including Emission Type Ids. Additionally, the Emission Type endpoint is equipped with pagination capabilities to facilitate the handling of extensive datasets.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/emissiontype' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/emissiontype");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 3,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 1346,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "emission_type_id": "number",
            "emission_type": "string",
            "sort_order": "number",
            "last_modified_date": "2020-09-10t10:01:19",
            "external_identifier": "string",
            "comments": "string",
            "ref_id": "string"
            }
    ]
}

API Endpoints

GET /api/v1/emissiontype

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
emissionTypeIds int Emission Type ID is one of the type of emissions and is the one of the filter option provided for Emission Type
emissionTypes string Emission Types is for the project to emission detail types

5. Equipment Table

This section provides guidance on retrieving data from the Equipment table using the designated API endpoint. The endpoint allows you to retrieve all data from the Equipment table or specify specific data based on equipment Ids. Additionally, the Equipment endpoint offers pagination support to facilitate the handling of substantial datasets.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/equipment' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/equipment");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 3,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 1346,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "equipment_id": "number",
            "area_id": "number",
            "facility_id": "number",
            "equipment_type_id": "number",
            "source_name": "string",
            "equipment_status_id": "number",
            "model_id": "number",
            "ownership_id": "number",
            "owner_id": "number",
            "serial_number": "string",
            "manufacture_date": "2019-09-10t10:01:19",
            "internal_name": "string",
            "alternate_name": "string",
            "design": "string",
            "original_survey_date": "2021-09-10t10:01:19",
            "active_date": "2022-09-10t10:01:19",
            "inactive_date": "2023-09-10t10:01:19",
            "data_lock_type_id": "number",
            "last_modified_date": "2023-09-11t10:01:19",
            "external_identifier": "string",
            "comments": "string"
        }
    ]
}

API Endpoints

GET /api/v1/equipment

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
equipmentIds int Equipment ID is one of the unique identifier for this equipment record
equipmentTypeIds int Equipment Type ID is one of the unique identifier for this equipment type record
equipmentStatusIds int Equipment Status ID is one of the unique identifier for this equipment status record
facilityIds int Facility ID is one of the unique identifier for this equipment status record
sourceNames string Source Names is one of the unique identifier for this equipment record
internalNames string Internal Names is one of the unique identifier for this equipment record
alternateNames string Alternate Names is one of the unique identifier for this equipment record
lastModifiedStartDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
lastModifiedEndDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”

6. Equipment Status Table

All data from the Equipment Status table will be returned from the endpoint below. You can optionally fetch specific data by including the equipment status ID and equipment status value. The Equipment Status endpoint supports pagination.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/equipmentstatus' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/equipmentstatus");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 3,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 1346,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "emission_status_id": "number",
            "emission_status": "string",
                  "color_id": "number",
            "sort_order": "number",
            "last_modified_date": "2020-09-10t10:01:19",
            "external_identifier": "string",
            "comments": "string"
        }
    ]
}

API Endpoints

GET /api/v1/equipmentstatus

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
equipmentStatusIds int Equipment Status ID is one of the unique identifier for this equipment status record
equipmentStatus string Equipment Status is one of the identifier for the status of the equipment

7. Equipment Attribute Table

All data from the Equipment Attribute table will be returned from the endpoint below. You can optionally fetch specific data by including the facility attribute Ids, facility names, emission type Ids, facility type Ids, unit Ids, equipment Ids, last modified start date and last modified end date. The facility attribute endpoint supports pagination.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/equipmentattribute' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/equipmentattribute");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 1,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 337,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "EquipmentAttributeId": "number",
            "EquipmentId": "number",
            "AttributeTypeId": "number",
            "EquipmentAttribute":"string",
            "DataLockTypeId": "number",
            "LastModifiedDate": "datetime",
            "ExternalIdentifier": "string",
            "Comments":"string"
        }
    ]
}

API Endpoints

GET /api/v1/equipmentattribute

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
equipmentAttributeIds int EquipmentAttributeId one of the unique identifier for this Equipment record.
equipmentIds int EquipmentId must be numeric.
attributetypeIds int AttributeTypeId must be numeric.
equipmentattributes string Equipment Attribute is one of the filter option and the parameter is for the Equipment Attribute Type
lastModifiedStartDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
lastModifiedEndDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”

8. Equipment Type Table

All data from the Equipment Type table will be returned from the endpoint below. You can optionally fetch specific data by including the equipment type ID and equipment types value. The Equipment type endpoint supports pagination.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/equipmenttype' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/equipmenttype");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 3,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 1346,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "equipment_type_id": "number",
            "equipment_type": "string",
            "visible_ind": "string",
            "equipment_attributes_ind": "string",
            "emission_calculations_ind": "string",
            "containment_ind": "string",
            "geometry_ind": "string",
            "emission_factors_ind": "string",
            "sample_locations_ind": "string",
            "equipment_associations_ind": "string",
            "facility_associations_ind": "string",
            "location_information_ind": "string",
            "fuel_use_ind": "string",
            "people_associations_ind": "string",
            "service_schedule_ind": "string",
            "service_history_ind": "string",
            "operational_data_collectn_ind": "string",
            "pte_operational_data_ind": "string",
            "schedule_ind": "string",
            "correspondence_ind": "string",
            "requirements_ind": "string",
            "file_attachments_ind": "string",
            "view_name": "string",
            "sort_order": "number", 
            "last_modified_date": "2020-09-10t10:01:19",
            "external_identifier": "string",
            "comments": "string",
            "ref_id": "string"
        }
    ]
}

API Endpoints

GET /api/v1/equipmenttype

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
equipmentTypeIds int Equipment Type ID is one of the unique identifier for this equipment type record
equipmentTypes string Equipment Types is one of the filter option and the parameter is for the type of the equipment

9. Facility Table

All data from the Facility table will be returned from the endpoint below. You can optionally fetch specific data by including the facility Ids, facility names, emission type Ids, facility type Ids, facility status Ids, county Ids, last modified start date and last modified end date. The facility endpoint supports pagination.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/facility' };
request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/facility");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 1,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 337,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "facilityId": "number",
            "facilityName": "string",
            "emissionTypeId": "number",
            "areaId": "number",
            "facilityTypeId": "number",
            "facilityStatusId": "number",
            "sortOrder": "number",
            "facilityOwnershipId": "number",
            "facilityOwnerId": "number",
            "landOwnerId": "number",
            "operatorId": "number",
            "countryId": "number",
            "countyId": "number",
            "offshoreBlockId": "number",
            "meteorologicalId": "number",
            "businessEntityId": "number",
            "businessUnitId": "number",
            "alternateName": "string",
            "purchaseDate": "2023-06-25T04:00:00Z",
            "previousOwnerId": "number",
            "soldDate": "2023-06-25T04:00:00Z",
            "soldToId": "number",
            "activeDate": "2023-06-25T04:00:00Z",
            "inactiveDate": "2023-06-25T04:00:00Z",
            "dataLockTypeId": "number",
            "lastModifiedDate": "2023-06-25T04:00:00Z",
            "externalIdentifier": "string",
            "comments": "string"
        }
    ]
}

API Endpoints

GET /api/v1/facility

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
facilityIds int Facility ID is one of the unique identifier for this Facility record
facilityTypeIds int Facility Type ID is one of the unique identifier for this Facility record
facilityStatusIds int Facility Status ID is one of the unique identifier for this Facility record
countyIds int County ID is one of the unique identifier for this Facility record
facilityNames string Facility Name is the unique identifier of the associated facility type
alternateNames string Alternate Name is the unique identifier of the associated facility
externalidentifier string External Identifier a unique identifier for this record to an external data system
areaIds int Area ID is one of the unique identifier for this Facility record to determine the region
lastModifiedStartDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
lastModifiedEndDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”

10. Facility Attribute Table

All data from the Facility Attribute table will be returned from the endpoint below. You can optionally fetch specific data by including the facility attribute Ids, facility names, emission type Ids, facility type Ids, facility attribute and last modified end date. The facility attribute endpoint supports pagination.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/facilityattribute' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/facilityattribute");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 1,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 337,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
          "FacilityAttributeId": "number",
          "FacilityId": "number",
          "AttributeTypeId": "number",
          "FacilityAttribute":"string",
          "DataLockTypeId": "number",
          "LastModifiedDate": "2023-03-30T07:27:06.295Z",
          "ExternalIdentifier": "string",
          "Comments":"string"
        }
    ]
}

API Endpoints

GET /api/v1/facilityattribute

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
facilityAttributeIds int Facility ID is one of the unique identifier for this Facility record
facilityIds int Facility Name is the unique identifier of the associated facility type
attributetypeIds int Attribute Type ID is the unique identifier of the associated attribute type
facilityattributes string Facility Attribute is one of the filter option and the parameter is for the Facility Attribute Type
datalocktypeIds int Data Lock Type ID the unique identifier of the associated data lock type
lastModifiedStartDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
lastModifiedEndDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
externalidentifier string External Identifier a unique identifier for this record to an external data system
comments string Comments any comments associated with this record

11. Operation Table

All data from the Operation table will be returned from the endpoint below. You can optionally fetch specific data by including the operation Ids, operation type Ids, emission type Ids, emission category Ids, unit Ids, equipment Ids, last modified start date and last modified end date. The Operation endpoint supports pagination.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/operation' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/operation");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
      "currentPage": 1,
    "totalPages": 1,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 337,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "operationId": "number",
            "equipmentId": "number",
            "emissionTypeId": "number",
            "emissionCategoryId": "number",
            "operationTypeId": "number",
            "activeDate": "2023-06-25T04:00:00Z",
            "unitId": "number",
            "controlledInd": "string 1 Byte Y or N",
            "estimatedInd": "string 1 Byte Y or N",
            "invalidInd": "string 1 Byte Y or N",
            "calculateEmissionsInd": "string 1 Byte Y or N",
            "collectionDate": "2023-06-25T04:00:00Z",
            "fieldEventId": "number",
            "inactiveDate": "2023-06-25T04:00:00Z",
            "dataLockTypeId": "number",
            "lastModifiedDate": "2023-06-25T04:00:00Z",
            "externalIdentifier": "string",
            "comments": "string",
            "badDataFlag": "number(0,1)",
            "operationAmount": "number"
        }
    ]
}

API Endpoints

GET /api/v1/operation

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
operationIds int Operation Ids are unique identifier for this operation type record
operationTypeIds string Operation Type Ids is one of the filter option and the parameter is for the type of the Operation Type
emissionTypeIds int The unique identifier of the associated emission type
emissionCategoryIds int The unique identifier of the associated emission category
unitIds int The unique identifier of the associated unit
equipmentIds int The unique identifier of the associated equipment
lastModifiedStartDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
lastModifiedEndDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”

12. Operation Type Table

All data from the Operation Type table will be returned from the endpoint below. You can optionally fetch specific data by including the operation type ids, operation types . The Operation Type endpoint supports pagination.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/operationtype' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/operationtype");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 1,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 337,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "operationTypeId": "number",
            "operationType": "string",
            "parentOperationTypeId": "number",
            "compoundId": "number",
            "applicabilityFormula": "string",
            "sortOrder": "number",
            "lastModifiedDate": "2020-09-01T15:55:25",
            "externalIdentifier": "number",
            "comments": "number",
            "refId": "number"
        }
    ]
}

API Endpoints

GET /api/v1/operationtype

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
operationTypeIDs int The unique identifier for this operation type record
operationTypes int The type of operational data

13. Unit Table

This section outlines how to retrieve data from the Unit table using the provided endpoint. You have the flexibility to fetch specific data by including unit Ids, unit type Ids, and units. The Unit type endpoint also supports pagination for managing large datasets effectively.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/unit' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/unit");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 1,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 337,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "unitId": "number",
            "unit": "string",
            "unitTypeId": 0,
            "description": "string",
            "alternateNames": "string",
            "sortOrder": "number",
            "lastModifiedDate": "2017-02-13T22:15:30.203Z",
            "externalIdentifier": "string",
            "comments": "string",
            "refId": "string"
        }
    ]
}

API Endpoints

GET /api/v1/unit

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
unitIds int Unit ID is one of the unique identifier for this Unit record
unitTypeIds int Unit Type Ids is the unique identifier of the associated unit type
units string Units is one of the filter option and the parameter is for the Name of the Unit

14. Workflow Table

This section outlines how to retrieve data from the Workflow table using the provided endpoint. You have the flexibility to fetch specific data by including workflow Ids, workflow type Ids, workflow date for both start date and end date along with the last modified date. The workflow endpoint also supports pagination for managing large datasets effectively.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/workflow' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/workflow");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 1,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 337,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "workflowId": "number",
            "workflowTypeId": "number",
            "workflowDate": "2017-02-13T22:15:30.203Z",
            "dataLockTypeId": "1",
            "lastModifiedDate": "2017-02-13T22:15:30.203Z",
            "externalIdentifier": "string",
            "comments": "string"
        }
    ]
}

API Endpoints

GET /api/v1/workflow

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
workflowIds int Workflow IDs are the unique identifier for workflows.
workflowTypeIds int Workflow Type IDs are the unique identifier for a workflow type.
workflowStartDate dateTime Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
workflowEndDate dateTime Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
lastModifiedStartDate dateTime Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
lastModifiedEndDate dateTime Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”

15. Workflow Answer Table

This section outlines how to retrieve data from the Workflow Answer table using the provided endpoint. You have the flexibility to fetch specific data by including workflow Answer Ids, workflow Ids, workflow question Ids, category Answer Index, category Revision Index, question Answer Index, question Revision Index, workflow Answer, lastModifiedStartDate and lastModifiedEndDate. The Workflow Answer endpoint also supports pagination for managing large datasets effectively.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/workflowanswer' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/workflowanswer");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 1,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 337,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "workflowAnswerId": "number",
            "workflowId": "number",
            "workflowQuestionId": "number",
            "categoryAnswerIndex": "number",
            "categoryRevisionIndex": "number",
            "questionAnswerIndex": "number",
            "questionRevisionIndex": "number",
            "workflowAnswer": "2016-03-23",
            "dataLockTypeId": "number",
            "personId": "number",
            "lastModifiedDate": "2017-02-13T22:15:30.203Z",
            "externalIdentifier": "string",
            "comments": "string"
        }
    ]
}

API Endpoints

GET /api/v1/workflowanswer

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
workflowAnswerIds int Workflow Answer IDs are the unique identifiers for the answers in the workflow. Answer IDs are associated with a unique Question ID.
workflowIds int Workflow IDs are the unique identifier for workflows (the named form or workflow type+date completed).
workflowQuestionIds int Workflow Question IDs are the unique identifiers for questions in the workflow. Question IDs are associated with a unique Workflow ID.
categoryAnswerIndex int Category Answer Index is the index for answers in the category.
categoryRevisionIndex int Category Revision Index is the list of category revisions. If the workflow itself is updated a new category revision ID is assigned.
questionAnswerIndex int Question Answer Index is the index for answers to a question. Answer IDs are associated with a unique Question ID.
questionRevisionIndex int Question Revision Index is the index for questions with revisions. If the question itself is updated a question revision ID is assigned.
workflowAnswer string Wokflow Answer is the answer to the question..
lastModifiedStartDate dateTime Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
lastModifiedEndDate dateTime Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”

16. Workflow Equipment Table

This section outlines how to retrieve data from the Workflow Equipment table using the provided endpoint. Equipment workflows are typically labeled Inspection. You have the flexibility to fetch specific data by including workflow Equipment Ids, workflow Ids, and Equipment Ids. The Workflow Equipment endpoint also supports pagination for managing large datasets effectively.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/workflowEquipment' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/workflowEquipment");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 1,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 337,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "workflowEquipmentId": "number",
            "workflowId": "number",
            "equipmentId": "number",
            "workflowQuestionId": "number",
            "lastModifiedDate": "2017-02-13T22:15:30.203Z",
            "externalIdentifier": "string",
            "comments": "string"
        }
    ]
}

API Endpoints

GET /api/v1/workflowEquipment

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
workflowEquipmentIds int Workflow Equipment ID is the unique identifier for the associated equipment within the workflow.
workflowIds int Workflow Ids is the unique identifier of the associated workflow.
equipmentIds string Equipment IDs are the unique identifier of the associated equipment.

17. Workflow Facility Table

This section outlines how to retrieve data from the Workflow Facility table using the provided endpoint. Facility workflows are typically labeled Inspection. You have the flexibility to fetch specific data by including workflow Facility Ids, workflow Ids and facility Ids. The Workflow Facility endpoint also supports pagination for managing large datasets effectively.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/workflowfacility' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/workflowfacility");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 1,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 337,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "workflowFacilityId": "number",
            "workflowId": "number",
            "facilityId": "number",
            "workflowQuestionId": "number",
            "lastModifiedDate": "2017-02-13T22:15:30.203Z",
            "externalIdentifier": "string",
            "comments": "string",
            "refId": "string"
        }
    ]
}

API Endpoints

GET /api/v1/workflowfacility

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
workflowFacilityIds int Workflow Facility IDs are the unique identifier for the associated facility within the workflow.
workflowIds int Workflow IDs are the unique identifier for workflows (the named form or workflow type+date completed).
facilityIds int Facility IDs are the unique identifier for the associated facility.

18. Workflow Person Table

This section outlines how to retrieve data from the Workflow Person table using the provided endpoint. You have the flexibility to fetch specific data by including workflow person Ids, workflow Ids and person Ids. The Unit type endpoint also supports pagination for managing large datasets effectively.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/workflowperson' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/workflowperson");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 1,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 337,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "workflowPersonId": "number",
            "workflowId": "number",
            "personId": "number",
            "workflowQuestionId": "number",
            "lastModifiedDate": "2017-02-13T22:15:30.203Z",
            "externalIdentifier": "string",
            "comments": "string"
        }
    ]
}

API Endpoints

GET /api/v1/workflowperson

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
workflowPersonIds int Workflow Person ID is the unique identifier for the associated person within the workflow.
workflowIds int Workflow IDs are the unique identifier for workflows (the named form or workflow type+date completed).
personIds int Person IDs are the assigned values for associated person(s) and can be used as a filter.

19. Workflow Question Table

This section outlines how to retrieve data from the Workflow Question table using the provided endpoint. You have the flexibility to fetch specific data by including workflow Question Ids, workflow question categoy Ids, data type Ids, required Inds and questions. The Workflow Question endpoint also supports pagination for managing large datasets effectively.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/workflowquestion' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/workflowquestion");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 1,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 337,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
            "workflowQuestionId": "number",
            "workflowQuestionCategoryId": "number",
            "question": "string",
            "dataTypeId": "number",
            "dataTypeSize": "number",
            "dataTypePrecision": "number",
            "dataTypeFilter": "string",
            "workflowAnswerListId": "number",
            "workflowAnswerList": "string",
            "defaultValue": "string",
            "alwaysEvaluateDefaultInd": "string",
            "displayInd": "string",
            "displayCondition": "string",
            "disabledInd": "string",
            "disabledCondition": "string",
            "requiredInd": "string",
            "validationCondition": "string",
            "validationErrorText": "string",
            "repeatInd": "string",
            "repeatDeleteInd": "string",
            "repeatDeleteConfirmInd": "string",
            "reviseInd": "string",
            "associateEntityInd": "string",
            "allowCopyInd": "string",
            "workflowTypeId": "number",
            "viewColumnName": "string",
            "sensitiveDataInd": "string",
            "xmlDescription": "string",
            "sortOrder": "number",
            "lastModifiedDate": "2017-02-13T22:15:30.203Z",
            "externalIdentifier": "string",
            "comments": "string"
        }
    ]
}

API Endpoints

GET /api/v1/workflowquestion

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
workflowQuestionIds int Workflow Question ID are the unique identifiers for the workflow question record.
workflowQuestionCategoryIds int Workflow Question Category Ids are the unique identifiers for the associated workflow question category.
dataTypeIds int Data Type IDs are the unique identifiers for the associated data type.
requiredInds string Required Inds is the value if an answer is required before saving the form.
questions string Questions are the question content values included on the form.

20. Workflow Type Table

This section outlines how to retrieve data from the Workflow Type table using the provided endpoint. You have the flexibility to fetch specific data by including workflow Ids, workflow type Ids, and workflows. The Unit type endpoint also supports pagination for managing large datasets effectively.

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://[tenant].actsapi.intelex.com/v1/workflowtype' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/workflowtype");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Response Schema

{
    "currentPage": 1,
    "totalPages": 1,
    "currentPageSize": 500,
    "maxAPIPageSize": 500,
    "totalCount": 337,
    "hasPrevious": false,
    "hasNext": true,
    "data": [
        {
           "workflowTypeId": "number",
            "workflowType": "string",
            "workflowCategoryId": "number",
            "remoteInd": "string",
            "addCondition": "string",
            "openCondition": "string",
            "workflowAssociationsInd": "string",
            "fileAttachmentsInd": "string",
            "allowCopyInd": "string",
            "viewName": "string",
            "xmlDescription": "string",
            "sortOrder": "number",
            "lastModifiedDate": "2017-02-13T22:15:30.203Z",
            "externalIdentifier": "string",
            "comments": "string",
            "refId": "string"
        }
    ]
}

API Endpoints

GET /api/v1/workflowtype

Query parameters

Attribute Type Description
PageNumber int Page number of the results to fetch.
PageSize int The number of results per page
workflowTypeIds int Workflow Type IDs are the unique identifier for a workflow type.
workflowCategoryIds int Workflow Category IDs are the unique identifier for the associated workflow category.
workflowTypes string Workflow Types are the assigned values for the type of workflow and can be used as a filter.

Add or Modify Database Table

This section outlines the available POST APIs designed for modifying ACTS data. These APIs offer options for updating existing records and inserting new ones.

In the current release, four POST APIs End points are provided to add or update following table

POST requests to these endpoints should be formatted in JSON.

1. Equipment Table

This section guides you through the process of modifying existing equipment records or adding new entries to the Equipment table using the designated API endpoint.

Equipment POST endpoint

POST api/v1/equipment

Example Request & JSON Input Body

var request = require("request");

var options = { method: 'POST',
  url: 'https://[tenant].actsapi.intelex.com/v1/equipment',
  headers: { 'content-type': 'application/json' },
  body:
    { EquipmentID: 'number',
      areaId: '2017-02-13T22:15:30.203Z',
      facilityId: 'number',
      equipmentTypeId: 0,
      sourceName: 'string',
      equipmentStatusId: 'number' ,
      modelId: 'number',
      ownershipId: 'number',
      ownerId: 'number',
      facilityTypeId: 'number',
      serialNumber: 'number',
      manufactureDate: '2023-06-25T04:00:00Z',
      internalName: 'string',
      alternateName: 'string',
      design: 'string',
      originalSurveyDate: '2023-06-25T04:00:00Z',
      activeDate: '2023-08-25T04:00:00Z',
      inactiveDate: '2023-08-25T04:00:00Z',
      dataLockTypeId: 'number',
      lastModifiedDate: '2023-06-25T04:00:00Z',
      externalIdentifier: 'string',
     comments: 'string'
     },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/equipment");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"EquipmentID\": \"number\",\r\n    \"Date\": \"2017-02-13T22:15:30.203Z\",\r\n    \"Description\": \"string\",\r\n    \"IncidentNo\": 0,\r\n    \"ReportedDate\": \"2017-02-13T22:15:30.203Z\",\r\n    \"SuspectedCause\": \"string\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Input JSON Body

[
  {
    "equipmentID": "number",
    "areaId": "number",
    "facilityId": "number",
    "equipmentTypeId": "number",
    "sourceName": "string ",
    "equipmentStatusId": "number",
    "modelId": "number",
    "ownershipId": "number",
    "ownerId": "number",
    "facilityTypeId": "number",
    "serialNumber": "number",
    "manufactureDate": "2023-06-25T04:00:00Z",
    "internalName": "string",
    "alternateName": "string",
    "design": "string",
    "originalSurveyDate": "2023-06-25T04:00:00Z",
    "activeDate": "2023-06-25T04:00:00Z",
    "inactiveDate": "2023-06-25T04:00:00Z",
      "dataLockTypeId": "number",
    "lastModifiedDate": "2023-06-25T04:00:00Z",
    "externalIdentifier": "string",
    "comments": "string"
    }
]

Example Response

{
    "insertedRowCount" : 2 , 
    "updatedRowCount" : 3 ,
    "failureCount" : 0 ,
    "errorMessage" : []

}

Example Output For When Data Get’s Failed To Insert or Update

{
    "insertedRowCount" : 0 , 
    "updatedRowCount" : 1 ,
    "failureCount" : 1 ,
    "errorMessage" : [
     "Equipment ID : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
    ]
}

2. Equipment Attribute Table

This section outlines the process of adding new entries or modifying existing records within the Equipment Attribute table using the dedicated API endpoint.

Equipment Attribute POST Endpoint

POST api/v1/equipmentattribute

Example Request & JSON Input Body

var request = require("request");

var options = { method: 'POST',
  url: 'https://[tenant].actsapi.intelex.com/v1/equipmentattribute',
  headers: { 'content-type': 'application/json' },
  body:
      { 
          EquipmentAttributeId: 'number',
          EquipmentId: 'number',
          AttributeTypeId: 'number',
          EquipmentAttribute:"string",
          DataLockTypeId: 'number',
          LastModifiedDate: '2023-03-30T07:27:06.295Z',
          ExternalIdentifier: 'string',
          Comments:'string'},
          json: true };


request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/equipmentattribute");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"EquipmentAttributeId\": \"number\",\r\n    \"EquipmentId\": \"number\",\r\n    \"AttributeTypeId\": \"number\",\r\n    \"EquipmentAttribute\": \"string\",\r\n    \"DataLockTypeId\": \"number\",\r\n    \"LastModifiedDate\": \"2023-03-30T07:27:06.295Z\",\r\n    \"ExternalIdentifier\": \"string\",\r\n    \"Comments\": \"string\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Input JSON Body

[
  { 
      "EquipmentAttributeId": "number",
    "EquipmentId": "number",
    "AttributeTypeId": "number",
    "EquipmentAttribute":"string",
    "DataLockTypeId": "number",
    "LastModifiedDate": "2023-03-30T07:27:06.295Z",
    "ExternalIdentifier": "string",
    "Comments":"string"
  }
]

Example Response

{
    "insertedRowCount" : 2 , 
    "updatedRowCount" : 3 ,
    "failureCount" : 0 ,
    "errorMessage" : []

}

Example Output For When Data Get’s Failed To Insert or Update

{
    "insertedRowCount" : 0 , 
    "updatedRowCount" : 1 ,
    "failureCount" : 1 ,
    "errorMessage" : [
     "EquipmentAttribute ID : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
    ]
}

3. Facility Table

This section outlines the process of adding new entries or modifying existing records within the Facility table using the dedicated API endpoint.

Facility POST Endpoint

POST api/v1/facility

Example Request & JSON Input Body

var request = require("request");

var options = { method: 'POST',
  url: 'https://[tenant].actsapi.intelex.com/v1/facility',
  headers: { 'content-type': 'application/json' },
  body:
   { ActionsTaken: 'string',
     Date: '2017-02-13T22:15:30.203Z',
     Description: 'string',
     IncidentNo: 0,
     ReportedDate: '2017-02-13T22:15:30.203Z',
     SuspectedCause: 'string' },
     json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/operation");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"ActionsTaken\": \"string\",\r\n    \"Date\": \"2017-02-13T22:15:30.203Z\",\r\n    \"Description\": \"string\",\r\n    \"IncidentNo\": 0,\r\n    \"ReportedDate\": \"2017-02-13T22:15:30.203Z\",\r\n    \"SuspectedCause\": \"string\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Input JSON Body

[
  {
      "facilityId": "number",
      "facilityName": "number",
      "emissionTypeId": "number",
      "areaId": "number",
      "facilityTypeId": "number",
      "facilityStatusId": "number",
      "sortOrder": "number",
      "facilityOwnershipId": "number",
      "facilityOwnerId": "number",
      "landOwnerId": "number",
      "operatorId": "number",
      "countryId": "number",
      "countyId": "number",
      "offshoreBlockId": "number",
      "meteorologicalId": "number",
      "businessEntityId": "number",
      "businessUnitId": "number",
      "alternateName": "string",
      "purchaseDate": "2023-06-25T04:00:00Z",
      "previousOwnerId": "number",
      "soldDate": "2023-06-25T04:00:00Z",
      "soldToId": "number",
      "activeDate": "2023-06-25T04:00:00Z",
      "inactiveDate": "2023-06-25T04:00:00Z",
      "dataLockTypeId": "number",
      "lastModifiedDate": "2023-06-25T04:00:00Z",
      "externalIdentifier": "string",
      "comments": "string"
  } 
]

Example Response

{
    "insertedRowCount" : 2 , 
    "updatedRowCount" : 3 ,
    "failureCount" : 0 ,
    "errorMessage" : []

}

Example Output For When Data Get’s Failed To Insert or Update

{
    "insertedRowCount" : 0 , 
    "updatedRowCount" : 1 ,
    "failureCount" : 1 ,
    "errorMessage" : [
     "Facility ID : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
    ]
}

4. Facility Attribute Table

This section outlines the process of adding new entries or modifying existing records within the Facility Attribute table using the dedicated API endpoint.

Facility Attribute POST Endpoint

POST api/v1/facilityattribute

Example Request & JSON Input Body

var request = require("request");

var options = { method: 'POST',
  url: 'https://[tenant].actsapi.intelex.com/v1/facilityattribute',
  headers: { 'content-type': 'application/json' },
  body:
   { 
      FacilityAttributeId: 'number',
      FacilityId: 'number',
      AttributeTypeId: 'number',
      FacilityAttribute:"string",
      DataLockTypeId: 'number',
      LastModifiedDate: '2023-03-30T07:27:06.295Z',
      ExternalIdentifier: 'string',
      Comments:'string'},
      json: true };


request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/facilityattribute");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"FacilityAttributeId\": \"number\",\r\n    \"FacilityId\": \"number\",\r\n    \"AttributeTypeId\": \"number\",\r\n    \"FacilityAttribute\": \"string\",\r\n    \"DataLockTypeId\": \"number\",\r\n    \"LastModifiedDate\": \"2023-03-30T07:27:06.295Z\",\r\n    \"ExternalIdentifier\": \"string\",\r\n    \"Comments\": \"string\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Input JSON Body

[
  { 
      "FacilityAttributeId": "number",
    "FacilityId": "number",
    "AttributeTypeId": "number",
    "FacilityAttribute":"string",
    "DataLockTypeId": "number",
    "LastModifiedDate": "2023-03-30T07:27:06.295Z",
    "ExternalIdentifier": "string",
    "Comments":"string"
  }
]

Example Response

{
    "insertedRowCount" : 2 , 
    "updatedRowCount" : 3 ,
    "failureCount" : 0 ,
    "errorMessage" : []

}

Example Output For When Data Get’s Failed To Insert or Update

{
    "insertedRowCount" : 0 , 
    "updatedRowCount" : 1 ,
    "failureCount" : 1 ,
    "errorMessage" : [
     "FacilityAttribute ID : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
    ]
}

5. Operation Table

This section outlines the process of adding new entries or modifying existing records within the Operation table using the dedicated API endpoint.

Operation POST Endpoint

POST api/v1/operation

Example Request & JSON Input Body

var request = require("request");

var options = { method: 'POST',
  url: 'https://[tenant].actsapi.intelex.com/v1/operation',
  headers: { 'content-type': 'application/json' },
  body:
   { operationId: 'number',
     equipmentId: 'number',
     emissionTypeId: 'number',
       emissionCategoryId: 'number',
     operationTypeId: 'number',
     activeDate: '2023-06-25T04:00:00Z',
     unitId: 'number',
     controlledInd: 'string',
     estimatedInd: 'string',
     invalidInd: 'string',
     calculateEmissionsInd: 'string',
     collectionDate: '2023-06-25T04:00:00Z',
     fieldEventId: 'number',
     inactiveDate: "2023-06-25T04:00:00Z",
     dataLockTypeId: 'number',
     lastModifiedDate: "2023-06-25T04:00:00Z",
     externalIdentifier: 'string',
     comments: 'string',
     badDataFlag: 'number(1,0)',
     operationAmount: 'number' },
     json: true };


request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/operation");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"ActionsTaken\": \"string\",\r\n    \"Date\": \"2017-02-13T22:15:30.203Z\",\r\n    \"Description\": \"string\",\r\n    \"IncidentNo\": 0,\r\n    \"ReportedDate\": \"2017-02-13T22:15:30.203Z\",\r\n    \"SuspectedCause\": \"string\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Input JSON Body

[
  {
    "operationId": "number",
    "equipmentId": "number",
    "emissionTypeId": "number",
    "emissionCategoryId": "number",
    "operationTypeId": "number",
    "activeDate": "2023-06-25T04:00:00Z",
    "unitId": "number",
    "controlledInd": "string",
    "estimatedInd": "string",
    "invalidInd": "string",
    "calculateEmissionsInd": "string",
    "collectionDate": "2023-06-25T04:00:00Z",
    "fieldEventId": "number",
    "inactiveDate": "2023-06-25T04:00:00Z",
    "dataLockTypeId": "number",
    "lastModifiedDate": "2023-06-25T04:00:00Z",
    "externalIdentifier": "string",
    "comments": "string",
    "badDataFlag": "number(1,0)",
    "operationAmount": "number"
  } 
]

Example Response

{
    "insertedRowCount" : 2 , 
    "updatedRowCount" : 3 ,
    "failureCount" : 0 ,
    "errorMessage" : []

}

Example Output For When Data Get’s Failed To Insert or Update

{
    "insertedRowCount" : 0 , 
    "updatedRowCount" : 1 ,
    "failureCount" : 1 ,
    "errorMessage" : [
     "Operation ID : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
    ]
}

6. Workflow Table

This section outlines the process of adding new entries or modifying existing records within the Workflow table using the dedicated API endpoint.

Workflow POST Endpoint

POST api/v1/workflow

Example Request & JSON Input Body

var request = require("request");

var options = { method: 'POST',
  url: 'https://[tenant].actsapi.intelex.com/v1/workflow',
  headers: { 'content-type': 'application/json' },
  body:
      {
        "workflowId": "number",
        "workflowTypeId": "number",
        "workflowDate": "2024-01-03T08:16:24.155Z",
        "dataLockTypeId": "number",
        "lastModifiedDate": "2024-01-03T08:16:24.155Z",
        "externalIdentifier": "string",
        "comments": "string"
      };


request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/workflow");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"WorkflowId\": \"number\",\r\n    \"WorkflowTypeId\": \"number\",\r\n    \"WorkflowDate\": \"2023-03-30T07:27:06.295Z\",\r\n    \"DataLockTypeId\": \"number\",\r\n    \"LastModifiedDate\": \"2023-03-30T07:27:06.295Z\",\r\n    \"ExternalIdentifier\": \"string\",\r\n    \"Comments\": \"string\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Input JSON Body

[
  {
        "WorkflowId": "number",
        "WorkflowTypeId": "number",
        "WorkflowDate": "2024-01-03T08:16:24.155Z",
        "DataLockTypeId": "number",
        "LastModifiedDate": "2024-01-03T08:16:24.155Z",
        "ExternalIdentifier": "string",
        "Comments": "string"
  }
]

Example Response

{
    "insertedRowCount" : 2 , 
    "updatedRowCount" : 3 ,
    "failureCount" : 0 ,
    "errorMessage" : []

}

Example Output For When Data Get’s Failed To Insert or Update

{
    "insertedRowCount" : 0 , 
    "updatedRowCount" : 1 ,
    "failureCount" : 1 ,
    "errorMessage" : [
     "Workflow Id : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
    ]
}

7. Workflow Answer Table

This section outlines the process of adding new entries or modifying existing records within the Workflow Answer table using the dedicated API endpoint.

Workflow Answer POST Endpoint

POST api/v1/workflowAnswer

Example Request & JSON Input Body

var request = require("request");

var options = { method: 'POST',
  url: 'https://[tenant].actsapi.intelex.com/v1/workflowAnswer',
  headers: { 'content-type': 'application/json' },
  body:
      {
       "workflowAnswerId": "number",
        "workflowId": "number",
        "workflowQuestionId": "number",
        "categoryAnswerIndex": "number",
        "categoryRevisionIndex": "number",
        "questionAnswerIndex": "number",
        "questionRevisionIndex": "number",
        "workflowAnswer": "string",
        "dataLockTypeId": "number",
        "personId": "number",
        "lastModifiedDate": "2024-01-03T08:16:24.155Z",
        "externalIdentifier": "string",
        "comments": "string"
      };


request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/workflowAnswer");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"WorkflowAnswerId\": \"number\",\r\n    \"WorkflowId\": \"number\",\r\n    \"WorkflowQuestionId\": \"number\",\r\n    \"CategoryAnswerIndex\": \"number\",\r\n    \"CategoryRevisionIndex\": \"number\",\r\n     \"QuestionAnswerIndex\": \"number\",\r\n     \"QuestionRevisionIndex\": \"number\",\r\n     \"WorkflowAnswer\": \"string\",\r\n    \"DataLockTypeId\": \"number\",\r\n    \"PersonId\": \"number\",\r\n    \"LastModifiedDate\": \"2023-03-30T07:27:06.295Z\",\r\n    \"ExternalIdentifier\": \"string\",\r\n    \"Comments\": \"string\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Input JSON Body

[
  {
        "WorkflowAnswerId": "number",
        "WorkflowId": "number",
        "WorkflowQuestionId": "number",
        "CategoryAnswerIndex": "number",
        "CategoryRevisionIndex": "number",
        "QuestionAnswerIndex": "number",
        "QuestionRevisionIndex": "number",
        "WorkflowAnswer": "string",
        "DataLockTypeId": "number",
        "PersonId": "number",
        "LastModifiedDate": "2024-01-03T08:16:24.155Z",
        "ExternalIdentifier": "string",
        "Comments": "string"
  }
]

Example Response

{
    "insertedRowCount" : 2 , 
    "updatedRowCount" : 3 ,
    "failureCount" : 0 ,
    "errorMessage" : []

}

Example Output For When Data Get’s Failed To Insert or Update

{
    "insertedRowCount" : 0 , 
    "updatedRowCount" : 1 ,
    "failureCount" : 1 ,
    "errorMessage" : [
     "Workflow Answer Id : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
    ]
}

8. Workflow Equipment Table

This section outlines the process of adding new entries or modifying existing records within the Workflow Equipment table using the dedicated API endpoint.

Workflow Equipment POST Endpoint

POST api/v1/workflowEquipment

Example Request & JSON Input Body

var request = require("request");

var options = { method: 'POST',
  url: 'https://[tenant].actsapi.intelex.com/v1/workflowEquipment',
  headers: { 'content-type': 'application/json' },
  body:
      {
        "workflowEquipmentId": "number",
        "workflowId": "number",
        "equipmentId": "number",
        "workflowQuestionId": "number",
        "lastModifiedDate": "2024-01-03T08:16:24.155Z",
        "externalIdentifier": "string",
        "comments": "string"
      };


request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/workflowEquipment");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"WorkflowEquipmentId\": \"number\",\r\n    \"WorkflowId\": \"number\",\r\n    \"EquipmentId\": \"number\",\r\n    \"WorkflowQuestionId\": \"number\",\r\n    \"LastModifiedDate\": \"2023-03-30T07:27:06.295Z\",\r\n    \"ExternalIdentifier\": \"string\",\r\n    \"Comments\": \"string\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Input JSON Body

[
  {
        "WorkflowEquipmentId": "number",
        "WorkflowId": "number",
        "EquipmentId": "number",
        "WorkflowQuestionId": "number",
        "LastModifiedDate": "2024-01-03T08:16:24.155Z",
        "ExternalIdentifier": "string",
        "Comments": "string"
  }
]

Example Response

{
    "insertedRowCount" : 2 , 
    "updatedRowCount" : 3 ,
    "failureCount" : 0 ,
    "errorMessage" : []

}

Example Output For When Data Get’s Failed To Insert or Update

{
    "insertedRowCount" : 0 , 
    "updatedRowCount" : 1 ,
    "failureCount" : 1 ,
    "errorMessage" : [
     "Workflow Equipment Id : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
    ]
}

9. Workflow Facility Table

This section outlines the process of adding new entries or modifying existing records within the Workflow Facility table using the dedicated API endpoint.

Workflow Facility POST Endpoint

POST api/v1/workflowFacility

Example Request & JSON Input Body

var request = require("request");

var options = { method: 'POST',
  url: 'https://[tenant].actsapi.intelex.com/v1/workflowFacility',
  headers: { 'content-type': 'application/json' },
  body:
      {
        "workflowFacilityId": "number",
        "workflowId": "number",
        "facilityId": "number",
        "workflowQuestionId": "number",
        "lastModifiedDate": "2024-01-03T08:16:24.155Z",
        "externalIdentifier": "string",
        "comments": "string"
      };


request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/workflowFacility");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"WorkflowFacilityId\": \"number\",\r\n    \"WorkflowId\": \"number\",\r\n    \"FacilityId\": \"number\",\r\n    \"WorkflowQuestionId\": \"number\",\r\n    \"LastModifiedDate\": \"2023-03-30T07:27:06.295Z\",\r\n    \"ExternalIdentifier\": \"string\",\r\n    \"Comments\": \"string\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Input JSON Body

[
  {
        "WorkflowFacilityId": "number",
        "WorkflowId": "number",
        "FacilityId": "number",
        "WorkflowQuestionId": "number",
        "LastModifiedDate": "2024-01-03T08:16:24.155Z",
        "ExternalIdentifier": "string",
        "Comments": "string"
  }
]

Example Response

{
    "insertedRowCount" : 2 , 
    "updatedRowCount" : 3 ,
    "failureCount" : 0 ,
    "errorMessage" : []

}

Example Output For When Data Get’s Failed To Insert or Update


{
    "insertedRowCount" : 0 , 
    "updatedRowCount" : 1 ,
    "failureCount" : 1 ,
    "errorMessage" : [
     "Workflow Facility Id : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
    ]
}

10. Workflow Person Table

This section outlines the process of adding new entries or modifying existing records within the Workflow Person table using the dedicated API endpoint.

Workflow Person POST Endpoint

POST api/v1/workflowPerson

Example Request & JSON Input Body

var request = require("request");

var options = { method: 'POST',
  url: 'https://[tenant].actsapi.intelex.com/v1/workflowPerson',
  headers: { 'content-type': 'application/json' },
  body:
      {
        "workflowPersonId": "number",
        "workflowId": "number",
        "personId": "number",
        "workflowQuestionId": "number",
        "lastModifiedDate": "2024-01-03T08:16:24.155Z",
        "externalIdentifier": "string",
        "comments": "string"
      };


request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/WorkflowPerson");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"WorkflowPersonId\": \"number\",\r\n    \"WorkflowId\": \"number\",\r\n    \"PersonId\": \"number\",\r\n    \"WorkflowQuestionId\": \"number\",\r\n    \"LastModifiedDate\": \"2023-03-30T07:27:06.295Z\",\r\n    \"ExternalIdentifier\": \"string\",\r\n    \"Comments\": \"string\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Input JSON Body

[
  {
        "WorkflowPersonId": "number",
        "WorkflowId": "number",
        "PersonId": "number",
        "WorkflowQuestionId": "number",
        "LastModifiedDate": "2024-01-03T08:16:24.155Z",
        "ExternalIdentifier": "string",
        "Comments": "string"
  }
]

Example Response

{
    "insertedRowCount" : 2 , 
    "updatedRowCount" : 3 ,
    "failureCount" : 0 ,
    "errorMessage" : []

}

Example Output For When Data Get’s Failed To Insert or Update


{
    "insertedRowCount" : 0 , 
    "updatedRowCount" : 1 ,
    "failureCount" : 1 ,
    "errorMessage" : [
     "Workflow Person Id : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
    ]
}

JSON body for both Insert & Update

JSON Input body for Insert

If the primary id is zero - “0” then the data we are passing is handled as an insert, shown in the example below, where “EquipmentAttributeId” is passed as “0”.

Parameter Description
EquipmentAttributeId EquipmentAttributeId for insert we do pass the input as zero “0”
EquipmentId EquipmentId accepts the numbers as input
AttributeTypeId AttributeTypeId accepts the numbers as input
EquipmentAttribute EquipmentAttribute accepts the string data as input
DataLockTypeId DataLockTypeId accepts the numbers as input
LastModifiedDate LastModifiedDate is given in a date and time format
ExternalIdentifier ExternalIdentifier accepts the string data as input
Comments Comments accepts the string data as input

Example Input JSON Body For Insert

[
    {
        "EquipmentAttributeId": 0,
        "EquipmentId": "number",
        "AttributeTypeId": "number",
            "EquipmentAttribute":"string",
        "DataLockTypeId": "number",
        "LastModifiedDate": "datetime",
        "ExternalIdentifier": "string",
            "Comments":"string"
    }
]

Example Input JSON Body For Update

JSON Input body for Update

If the primary id is an existing ID - “#####” then the data we are passing is handled as an update, shown in the example below, where “EquipmentAttributeId” is passed as “164”.

Parameter Description
EquipmentAttributeId EquipmentAttributeId for insert we do pass the input as integer like “164”
EquipmentId EquipmentId accepts the numbers as input
AttributeTypeId AttributeTypeId accepts the numbers as input
EquipmentAttribute EquipmentAttribute accepts the string data as input
DataLockTypeId DataLockTypeId accepts the numbers as input
LastModifiedDate LastModifiedDate is given in a date and time format
ExternalIdentifier ExternalIdentifier accepts the string data as input
Comments Comments accepts the string data as input
[
    {
        "EquipmentAttributeId": 164,
        "EquipmentId": "number",
        "AttributeTypeId": "number",
            "EquipmentAttribute":"string",
        "DataLockTypeId": "number",
        "LastModifiedDate": "datetime",
        "ExternalIdentifier": "string",
            "Comments":"string"
    }
]

Example Output For Both Update and Insert

{
    "insertedRowCount" : 2 , 
    "updatedRowCount" : 3 ,
    "failureCount" : 0 ,
    "errorMessage" : []

}

Example Output For When Data Get’s Failed To Insert or Update

{
    "insertedRowCount" : 0 , 
    "updatedRowCount" : 1 ,
    "failureCount" : 1 ,
    "errorMessage" : [
     "Operation ID : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
    ]
}

Remove or Delete data from Database Table

This section outlines the available Delete APIs designed for modifying ACTS data by deleteing or removing the data. These APIs offer options for removing existing records from the mentioned tables.

In the current release, one DELETE API End point is provided to remove or delete from the following table

DELETE requests to these endpoints should be formatted in JSON.

1. Operation Table

This section guides you through the process of removing/deleting the existing records from the Operation table using the designated API endpoint.

Operation DELETE endpoint

DELETE /api/v1/operation

Example Request & JSON Input Body

var request = require("request");

var options = { method: 'DELETE',
  url: 'https://[tenant].actsapi.intelex.com/v1/operation',
  headers: { 'content-type': 'application/json' },
  body:
   { operationId: 'number',
     equipmentId: 'number',
     emissionTypeId: 'number',
       emissionCategoryId: 'number',
     operationTypeId: 'number',
     activeDate: '2023-06-25T04:00:00Z',
     unitId: 'number',
     controlledInd: 'string',
     estimatedInd: 'string',
     invalidInd: 'string',
     calculateEmissionsInd: 'string',
     collectionDate: '2023-06-25T04:00:00Z',
     fieldEventId: 'number',
     inactiveDate: "2023-06-25T04:00:00Z",
     dataLockTypeId: 'number',
     lastModifiedDate: "2023-06-25T04:00:00Z",
     externalIdentifier: 'string',
     comments: 'string',
     badDataFlag: 'number(1,0)',
     operationAmount: 'number' },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://[tenant].actsapi.intelex.com/v1/operation");
var request = new RestRequest(Method.DELETE);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"ActionsTaken\": \"string\",\r\n    \"Date\": \"2017-02-13T22:15:30.203Z\",\r\n    \"Description\": \"string\",\r\n    \"IncidentNo\": 0,\r\n    \"ReportedDate\": \"2017-02-13T22:15:30.203Z\",\r\n    \"SuspectedCause\": \"string\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Developer Support

Join the Intelex Developer group on Community and: