Create Simulator Routine Revision
The total size of the request body can be a maximum of 50.00 KB.
When creating a simulator routine revision, be mindful of the following:
- The amount and size of the inputs you provide to the simulator routine.
- The size of the outputs you expect from the simulator routine.
The total size of the data sent by a simulator connector cannot exceed 100.00 KB per simulation run.
POST
/
simulators
/
routines
/
revisions
Create Simulator Routine Revision
curl --request POST \
--url https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines/revisions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"externalId": "<string>",
"routineExternalId": "fluid_sloshing",
"configuration": {
"schedule": {
"enabled": false
},
"dataSampling": {
"enabled": false
},
"logicalCheck": [
{
"enabled": true,
"timeseriesExternalId": "<string>",
"value": 123
}
],
"steadyStateDetection": [
{
"enabled": true,
"minSectionSize": 123,
"varThreshold": 123,
"slopeThreshold": 123,
"timeseriesExternalId": "<string>"
}
],
"inputs": [],
"outputs": []
},
"script": [
{
"order": 5,
"steps": [
{
"order": 5000,
"stepType": "Get",
"arguments": {
"objectName": "WELL.A2",
"objectProperty": "Tempretature",
"referenceId": "CWTC"
},
"description": "<string>"
}
],
"description": "<string>"
}
]
}
]
}
'import requests
url = "https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines/revisions"
payload = { "items": [
{
"externalId": "<string>",
"routineExternalId": "fluid_sloshing",
"configuration": {
"schedule": { "enabled": False },
"dataSampling": { "enabled": False },
"logicalCheck": [
{
"enabled": True,
"timeseriesExternalId": "<string>",
"value": 123
}
],
"steadyStateDetection": [
{
"enabled": True,
"minSectionSize": 123,
"varThreshold": 123,
"slopeThreshold": 123,
"timeseriesExternalId": "<string>"
}
],
"inputs": [],
"outputs": []
},
"script": [
{
"order": 5,
"steps": [
{
"order": 5000,
"stepType": "Get",
"arguments": {
"objectName": "WELL.A2",
"objectProperty": "Tempretature",
"referenceId": "CWTC"
},
"description": "<string>"
}
],
"description": "<string>"
}
]
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
externalId: '<string>',
routineExternalId: 'fluid_sloshing',
configuration: {
schedule: {enabled: false},
dataSampling: {enabled: false},
logicalCheck: [{enabled: true, timeseriesExternalId: '<string>', value: 123}],
steadyStateDetection: [
{
enabled: true,
minSectionSize: 123,
varThreshold: 123,
slopeThreshold: 123,
timeseriesExternalId: '<string>'
}
],
inputs: [],
outputs: []
},
script: [
{
order: 5,
steps: [
{
order: 5000,
stepType: 'Get',
arguments: {objectName: 'WELL.A2', objectProperty: 'Tempretature', referenceId: 'CWTC'},
description: '<string>'
}
],
description: '<string>'
}
]
}
]
})
};
fetch('https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines/revisions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines/revisions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'items' => [
[
'externalId' => '<string>',
'routineExternalId' => 'fluid_sloshing',
'configuration' => [
'schedule' => [
'enabled' => false
],
'dataSampling' => [
'enabled' => false
],
'logicalCheck' => [
[
'enabled' => true,
'timeseriesExternalId' => '<string>',
'value' => 123
]
],
'steadyStateDetection' => [
[
'enabled' => true,
'minSectionSize' => 123,
'varThreshold' => 123,
'slopeThreshold' => 123,
'timeseriesExternalId' => '<string>'
]
],
'inputs' => [
],
'outputs' => [
]
],
'script' => [
[
'order' => 5,
'steps' => [
[
'order' => 5000,
'stepType' => 'Get',
'arguments' => [
'objectName' => 'WELL.A2',
'objectProperty' => 'Tempretature',
'referenceId' => 'CWTC'
],
'description' => '<string>'
]
],
'description' => '<string>'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines/revisions"
payload := strings.NewReader("{\n \"items\": [\n {\n \"externalId\": \"<string>\",\n \"routineExternalId\": \"fluid_sloshing\",\n \"configuration\": {\n \"schedule\": {\n \"enabled\": false\n },\n \"dataSampling\": {\n \"enabled\": false\n },\n \"logicalCheck\": [\n {\n \"enabled\": true,\n \"timeseriesExternalId\": \"<string>\",\n \"value\": 123\n }\n ],\n \"steadyStateDetection\": [\n {\n \"enabled\": true,\n \"minSectionSize\": 123,\n \"varThreshold\": 123,\n \"slopeThreshold\": 123,\n \"timeseriesExternalId\": \"<string>\"\n }\n ],\n \"inputs\": [],\n \"outputs\": []\n },\n \"script\": [\n {\n \"order\": 5,\n \"steps\": [\n {\n \"order\": 5000,\n \"stepType\": \"Get\",\n \"arguments\": {\n \"objectName\": \"WELL.A2\",\n \"objectProperty\": \"Tempretature\",\n \"referenceId\": \"CWTC\"\n },\n \"description\": \"<string>\"\n }\n ],\n \"description\": \"<string>\"\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines/revisions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"externalId\": \"<string>\",\n \"routineExternalId\": \"fluid_sloshing\",\n \"configuration\": {\n \"schedule\": {\n \"enabled\": false\n },\n \"dataSampling\": {\n \"enabled\": false\n },\n \"logicalCheck\": [\n {\n \"enabled\": true,\n \"timeseriesExternalId\": \"<string>\",\n \"value\": 123\n }\n ],\n \"steadyStateDetection\": [\n {\n \"enabled\": true,\n \"minSectionSize\": 123,\n \"varThreshold\": 123,\n \"slopeThreshold\": 123,\n \"timeseriesExternalId\": \"<string>\"\n }\n ],\n \"inputs\": [],\n \"outputs\": []\n },\n \"script\": [\n {\n \"order\": 5,\n \"steps\": [\n {\n \"order\": 5000,\n \"stepType\": \"Get\",\n \"arguments\": {\n \"objectName\": \"WELL.A2\",\n \"objectProperty\": \"Tempretature\",\n \"referenceId\": \"CWTC\"\n },\n \"description\": \"<string>\"\n }\n ],\n \"description\": \"<string>\"\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines/revisions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"items\": [\n {\n \"externalId\": \"<string>\",\n \"routineExternalId\": \"fluid_sloshing\",\n \"configuration\": {\n \"schedule\": {\n \"enabled\": false\n },\n \"dataSampling\": {\n \"enabled\": false\n },\n \"logicalCheck\": [\n {\n \"enabled\": true,\n \"timeseriesExternalId\": \"<string>\",\n \"value\": 123\n }\n ],\n \"steadyStateDetection\": [\n {\n \"enabled\": true,\n \"minSectionSize\": 123,\n \"varThreshold\": 123,\n \"slopeThreshold\": 123,\n \"timeseriesExternalId\": \"<string>\"\n }\n ],\n \"inputs\": [],\n \"outputs\": []\n },\n \"script\": [\n {\n \"order\": 5,\n \"steps\": [\n {\n \"order\": 5000,\n \"stepType\": \"Get\",\n \"arguments\": {\n \"objectName\": \"WELL.A2\",\n \"objectProperty\": \"Tempretature\",\n \"referenceId\": \"CWTC\"\n },\n \"description\": \"<string>\"\n }\n ],\n \"description\": \"<string>\"\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"items": [
{
"dataSetId": 5559452808603919,
"id": 123,
"externalId": "fluid_sloshing",
"simulatorExternalId": "<string>",
"routineExternalId": "<string>",
"modelExternalId": "<string>",
"createdByUserId": "<string>",
"versionNumber": 123,
"createdTime": 123,
"configuration": {
"schedule": {
"enabled": false
},
"dataSampling": {
"enabled": false
},
"logicalCheck": [
{
"enabled": true,
"timeseriesExternalId": "<string>",
"aggregate": "average",
"operator": "eq",
"value": 123
}
],
"steadyStateDetection": [
{
"enabled": true,
"aggregate": "average",
"minSectionSize": 123,
"varThreshold": 123,
"slopeThreshold": 123,
"timeseriesExternalId": "<string>"
}
],
"inputs": [],
"outputs": []
},
"script": [
{
"order": 5,
"steps": [
{
"order": 5000,
"stepType": "Get",
"arguments": {
"objectName": "WELL.A2",
"objectProperty": "Tempretature",
"referenceId": "CWTC"
},
"description": "<string>"
}
],
"description": "<string>"
}
],
"simulatorIntegrationExternalId": "<string>",
"kind": "long"
}
]
}{
"error": {
"message": "<string>",
"code": 123
}
}{
"error": {
"message": "<string>",
"code": 123
}
}{
"error": {
"message": "<string>",
"code": 123
}
}{
"error": {
"message": "<string>",
"code": 123
}
}Authorizations
oidc-tokenoauth2-client-credentialsoauth2-open-industrial-dataoauth2-auth-code
Access token issued by the CDF project's configured identity provider. Access token must be an OpenID Connect token, and the project must be configured to accept OpenID Connect tokens. Use a header key of 'Authorization' with a value of 'Bearer $accesstoken'. The token can be obtained through any flow supported by the identity provider.
Body
application/json
A list with a single item
Show child attributes
Show child attributes
Response
Successful Response
Show child attributes
Show child attributes
Last modified on October 7, 2026
⌘I
Create Simulator Routine Revision
curl --request POST \
--url https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines/revisions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"externalId": "<string>",
"routineExternalId": "fluid_sloshing",
"configuration": {
"schedule": {
"enabled": false
},
"dataSampling": {
"enabled": false
},
"logicalCheck": [
{
"enabled": true,
"timeseriesExternalId": "<string>",
"value": 123
}
],
"steadyStateDetection": [
{
"enabled": true,
"minSectionSize": 123,
"varThreshold": 123,
"slopeThreshold": 123,
"timeseriesExternalId": "<string>"
}
],
"inputs": [],
"outputs": []
},
"script": [
{
"order": 5,
"steps": [
{
"order": 5000,
"stepType": "Get",
"arguments": {
"objectName": "WELL.A2",
"objectProperty": "Tempretature",
"referenceId": "CWTC"
},
"description": "<string>"
}
],
"description": "<string>"
}
]
}
]
}
'import requests
url = "https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines/revisions"
payload = { "items": [
{
"externalId": "<string>",
"routineExternalId": "fluid_sloshing",
"configuration": {
"schedule": { "enabled": False },
"dataSampling": { "enabled": False },
"logicalCheck": [
{
"enabled": True,
"timeseriesExternalId": "<string>",
"value": 123
}
],
"steadyStateDetection": [
{
"enabled": True,
"minSectionSize": 123,
"varThreshold": 123,
"slopeThreshold": 123,
"timeseriesExternalId": "<string>"
}
],
"inputs": [],
"outputs": []
},
"script": [
{
"order": 5,
"steps": [
{
"order": 5000,
"stepType": "Get",
"arguments": {
"objectName": "WELL.A2",
"objectProperty": "Tempretature",
"referenceId": "CWTC"
},
"description": "<string>"
}
],
"description": "<string>"
}
]
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
externalId: '<string>',
routineExternalId: 'fluid_sloshing',
configuration: {
schedule: {enabled: false},
dataSampling: {enabled: false},
logicalCheck: [{enabled: true, timeseriesExternalId: '<string>', value: 123}],
steadyStateDetection: [
{
enabled: true,
minSectionSize: 123,
varThreshold: 123,
slopeThreshold: 123,
timeseriesExternalId: '<string>'
}
],
inputs: [],
outputs: []
},
script: [
{
order: 5,
steps: [
{
order: 5000,
stepType: 'Get',
arguments: {objectName: 'WELL.A2', objectProperty: 'Tempretature', referenceId: 'CWTC'},
description: '<string>'
}
],
description: '<string>'
}
]
}
]
})
};
fetch('https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines/revisions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines/revisions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'items' => [
[
'externalId' => '<string>',
'routineExternalId' => 'fluid_sloshing',
'configuration' => [
'schedule' => [
'enabled' => false
],
'dataSampling' => [
'enabled' => false
],
'logicalCheck' => [
[
'enabled' => true,
'timeseriesExternalId' => '<string>',
'value' => 123
]
],
'steadyStateDetection' => [
[
'enabled' => true,
'minSectionSize' => 123,
'varThreshold' => 123,
'slopeThreshold' => 123,
'timeseriesExternalId' => '<string>'
]
],
'inputs' => [
],
'outputs' => [
]
],
'script' => [
[
'order' => 5,
'steps' => [
[
'order' => 5000,
'stepType' => 'Get',
'arguments' => [
'objectName' => 'WELL.A2',
'objectProperty' => 'Tempretature',
'referenceId' => 'CWTC'
],
'description' => '<string>'
]
],
'description' => '<string>'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines/revisions"
payload := strings.NewReader("{\n \"items\": [\n {\n \"externalId\": \"<string>\",\n \"routineExternalId\": \"fluid_sloshing\",\n \"configuration\": {\n \"schedule\": {\n \"enabled\": false\n },\n \"dataSampling\": {\n \"enabled\": false\n },\n \"logicalCheck\": [\n {\n \"enabled\": true,\n \"timeseriesExternalId\": \"<string>\",\n \"value\": 123\n }\n ],\n \"steadyStateDetection\": [\n {\n \"enabled\": true,\n \"minSectionSize\": 123,\n \"varThreshold\": 123,\n \"slopeThreshold\": 123,\n \"timeseriesExternalId\": \"<string>\"\n }\n ],\n \"inputs\": [],\n \"outputs\": []\n },\n \"script\": [\n {\n \"order\": 5,\n \"steps\": [\n {\n \"order\": 5000,\n \"stepType\": \"Get\",\n \"arguments\": {\n \"objectName\": \"WELL.A2\",\n \"objectProperty\": \"Tempretature\",\n \"referenceId\": \"CWTC\"\n },\n \"description\": \"<string>\"\n }\n ],\n \"description\": \"<string>\"\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines/revisions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"externalId\": \"<string>\",\n \"routineExternalId\": \"fluid_sloshing\",\n \"configuration\": {\n \"schedule\": {\n \"enabled\": false\n },\n \"dataSampling\": {\n \"enabled\": false\n },\n \"logicalCheck\": [\n {\n \"enabled\": true,\n \"timeseriesExternalId\": \"<string>\",\n \"value\": 123\n }\n ],\n \"steadyStateDetection\": [\n {\n \"enabled\": true,\n \"minSectionSize\": 123,\n \"varThreshold\": 123,\n \"slopeThreshold\": 123,\n \"timeseriesExternalId\": \"<string>\"\n }\n ],\n \"inputs\": [],\n \"outputs\": []\n },\n \"script\": [\n {\n \"order\": 5,\n \"steps\": [\n {\n \"order\": 5000,\n \"stepType\": \"Get\",\n \"arguments\": {\n \"objectName\": \"WELL.A2\",\n \"objectProperty\": \"Tempretature\",\n \"referenceId\": \"CWTC\"\n },\n \"description\": \"<string>\"\n }\n ],\n \"description\": \"<string>\"\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines/revisions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"items\": [\n {\n \"externalId\": \"<string>\",\n \"routineExternalId\": \"fluid_sloshing\",\n \"configuration\": {\n \"schedule\": {\n \"enabled\": false\n },\n \"dataSampling\": {\n \"enabled\": false\n },\n \"logicalCheck\": [\n {\n \"enabled\": true,\n \"timeseriesExternalId\": \"<string>\",\n \"value\": 123\n }\n ],\n \"steadyStateDetection\": [\n {\n \"enabled\": true,\n \"minSectionSize\": 123,\n \"varThreshold\": 123,\n \"slopeThreshold\": 123,\n \"timeseriesExternalId\": \"<string>\"\n }\n ],\n \"inputs\": [],\n \"outputs\": []\n },\n \"script\": [\n {\n \"order\": 5,\n \"steps\": [\n {\n \"order\": 5000,\n \"stepType\": \"Get\",\n \"arguments\": {\n \"objectName\": \"WELL.A2\",\n \"objectProperty\": \"Tempretature\",\n \"referenceId\": \"CWTC\"\n },\n \"description\": \"<string>\"\n }\n ],\n \"description\": \"<string>\"\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"items": [
{
"dataSetId": 5559452808603919,
"id": 123,
"externalId": "fluid_sloshing",
"simulatorExternalId": "<string>",
"routineExternalId": "<string>",
"modelExternalId": "<string>",
"createdByUserId": "<string>",
"versionNumber": 123,
"createdTime": 123,
"configuration": {
"schedule": {
"enabled": false
},
"dataSampling": {
"enabled": false
},
"logicalCheck": [
{
"enabled": true,
"timeseriesExternalId": "<string>",
"aggregate": "average",
"operator": "eq",
"value": 123
}
],
"steadyStateDetection": [
{
"enabled": true,
"aggregate": "average",
"minSectionSize": 123,
"varThreshold": 123,
"slopeThreshold": 123,
"timeseriesExternalId": "<string>"
}
],
"inputs": [],
"outputs": []
},
"script": [
{
"order": 5,
"steps": [
{
"order": 5000,
"stepType": "Get",
"arguments": {
"objectName": "WELL.A2",
"objectProperty": "Tempretature",
"referenceId": "CWTC"
},
"description": "<string>"
}
],
"description": "<string>"
}
],
"simulatorIntegrationExternalId": "<string>",
"kind": "long"
}
]
}{
"error": {
"message": "<string>",
"code": 123
}
}{
"error": {
"message": "<string>",
"code": 123
}
}{
"error": {
"message": "<string>",
"code": 123
}
}{
"error": {
"message": "<string>",
"code": 123
}
}