Create Simulator Routine
curl --request POST \
--url https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"externalId": "<string>",
"modelExternalId": "<string>",
"name": "Fluid Sloshing in Tank",
"simulatorIntegrationExternalId": "<string>",
"kind": "long",
"description": "<string>"
}
]
}
'import requests
url = "https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines"
payload = { "items": [
{
"externalId": "<string>",
"modelExternalId": "<string>",
"name": "Fluid Sloshing in Tank",
"simulatorIntegrationExternalId": "<string>",
"kind": "long",
"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>',
modelExternalId: '<string>',
name: 'Fluid Sloshing in Tank',
simulatorIntegrationExternalId: '<string>',
kind: 'long',
description: '<string>'
}
]
})
};
fetch('https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines', 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",
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>',
'modelExternalId' => '<string>',
'name' => 'Fluid Sloshing in Tank',
'simulatorIntegrationExternalId' => '<string>',
'kind' => 'long',
'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"
payload := strings.NewReader("{\n \"items\": [\n {\n \"externalId\": \"<string>\",\n \"modelExternalId\": \"<string>\",\n \"name\": \"Fluid Sloshing in Tank\",\n \"simulatorIntegrationExternalId\": \"<string>\",\n \"kind\": \"long\",\n \"description\": \"<string>\"\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")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"externalId\": \"<string>\",\n \"modelExternalId\": \"<string>\",\n \"name\": \"Fluid Sloshing in Tank\",\n \"simulatorIntegrationExternalId\": \"<string>\",\n \"kind\": \"long\",\n \"description\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines")
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 \"modelExternalId\": \"<string>\",\n \"name\": \"Fluid Sloshing in Tank\",\n \"simulatorIntegrationExternalId\": \"<string>\",\n \"kind\": \"long\",\n \"description\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"items": [
{
"dataSetId": 5559452808603919,
"id": 123,
"externalId": "<string>",
"simulatorExternalId": "<string>",
"modelExternalId": "<string>",
"name": "<string>",
"createdTime": 123,
"lastUpdatedTime": 123,
"simulatorIntegrationExternalId": "<string>",
"description": "<string>",
"kind": "long"
}
]
}{
"error": {
"message": "<string>",
"code": 123
}
}{
"error": {
"message": "<string>",
"code": 123
}
}{
"error": {
"message": "<string>",
"code": 123
}
}Create Simulator Routine
Create a simulator routine.
POST
/
simulators
/
routines
Create Simulator Routine
curl --request POST \
--url https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"externalId": "<string>",
"modelExternalId": "<string>",
"name": "Fluid Sloshing in Tank",
"simulatorIntegrationExternalId": "<string>",
"kind": "long",
"description": "<string>"
}
]
}
'import requests
url = "https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines"
payload = { "items": [
{
"externalId": "<string>",
"modelExternalId": "<string>",
"name": "Fluid Sloshing in Tank",
"simulatorIntegrationExternalId": "<string>",
"kind": "long",
"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>',
modelExternalId: '<string>',
name: 'Fluid Sloshing in Tank',
simulatorIntegrationExternalId: '<string>',
kind: 'long',
description: '<string>'
}
]
})
};
fetch('https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines', 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",
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>',
'modelExternalId' => '<string>',
'name' => 'Fluid Sloshing in Tank',
'simulatorIntegrationExternalId' => '<string>',
'kind' => 'long',
'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"
payload := strings.NewReader("{\n \"items\": [\n {\n \"externalId\": \"<string>\",\n \"modelExternalId\": \"<string>\",\n \"name\": \"Fluid Sloshing in Tank\",\n \"simulatorIntegrationExternalId\": \"<string>\",\n \"kind\": \"long\",\n \"description\": \"<string>\"\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")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"externalId\": \"<string>\",\n \"modelExternalId\": \"<string>\",\n \"name\": \"Fluid Sloshing in Tank\",\n \"simulatorIntegrationExternalId\": \"<string>\",\n \"kind\": \"long\",\n \"description\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{cluster}.cognitedata.com/api/v1/projects/{project}/simulators/routines")
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 \"modelExternalId\": \"<string>\",\n \"name\": \"Fluid Sloshing in Tank\",\n \"simulatorIntegrationExternalId\": \"<string>\",\n \"kind\": \"long\",\n \"description\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"items": [
{
"dataSetId": 5559452808603919,
"id": 123,
"externalId": "<string>",
"simulatorExternalId": "<string>",
"modelExternalId": "<string>",
"name": "<string>",
"createdTime": 123,
"lastUpdatedTime": 123,
"simulatorIntegrationExternalId": "<string>",
"description": "<string>",
"kind": "long"
}
]
}{
"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 August 21, 2026
⌘I