Report Extractor Info
Required capabilities:
integrationsAcl:USE
Report changes to general information about the extractor, and indicates to the API that the extractor has started. This will close any currently running tasks with an error.
curl --request POST \
--url https://{cluster}.cognitedata.com/api/v1/projects/{project}/integrations/startup \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"externalId": "my.integrations.id",
"extractor": {
"externalId": "cognite-opcua",
"version": "1.2.3"
},
"tasks": [
{
"name": "<string>",
"action": false,
"description": "<string>",
"sources": [
"<string>"
],
"targets": [
"<string>"
]
}
],
"activeConfigRevision": 123,
"timestamp": 123,
"availableActions": [
{
"name": "<string>",
"description": "<string>",
"task": "<string>"
}
]
}
'import requests
url = "https://{cluster}.cognitedata.com/api/v1/projects/{project}/integrations/startup"
payload = {
"externalId": "my.integrations.id",
"extractor": {
"externalId": "cognite-opcua",
"version": "1.2.3"
},
"tasks": [
{
"name": "<string>",
"action": False,
"description": "<string>",
"sources": ["<string>"],
"targets": ["<string>"]
}
],
"activeConfigRevision": 123,
"timestamp": 123,
"availableActions": [
{
"name": "<string>",
"description": "<string>",
"task": "<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({
externalId: 'my.integrations.id',
extractor: {externalId: 'cognite-opcua', version: '1.2.3'},
tasks: [
{
name: '<string>',
action: false,
description: '<string>',
sources: ['<string>'],
targets: ['<string>']
}
],
activeConfigRevision: 123,
timestamp: 123,
availableActions: [{name: '<string>', description: '<string>', task: '<string>'}]
})
};
fetch('https://{cluster}.cognitedata.com/api/v1/projects/{project}/integrations/startup', 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}/integrations/startup",
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([
'externalId' => 'my.integrations.id',
'extractor' => [
'externalId' => 'cognite-opcua',
'version' => '1.2.3'
],
'tasks' => [
[
'name' => '<string>',
'action' => false,
'description' => '<string>',
'sources' => [
'<string>'
],
'targets' => [
'<string>'
]
]
],
'activeConfigRevision' => 123,
'timestamp' => 123,
'availableActions' => [
[
'name' => '<string>',
'description' => '<string>',
'task' => '<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}/integrations/startup"
payload := strings.NewReader("{\n \"externalId\": \"my.integrations.id\",\n \"extractor\": {\n \"externalId\": \"cognite-opcua\",\n \"version\": \"1.2.3\"\n },\n \"tasks\": [\n {\n \"name\": \"<string>\",\n \"action\": false,\n \"description\": \"<string>\",\n \"sources\": [\n \"<string>\"\n ],\n \"targets\": [\n \"<string>\"\n ]\n }\n ],\n \"activeConfigRevision\": 123,\n \"timestamp\": 123,\n \"availableActions\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"task\": \"<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}/integrations/startup")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"externalId\": \"my.integrations.id\",\n \"extractor\": {\n \"externalId\": \"cognite-opcua\",\n \"version\": \"1.2.3\"\n },\n \"tasks\": [\n {\n \"name\": \"<string>\",\n \"action\": false,\n \"description\": \"<string>\",\n \"sources\": [\n \"<string>\"\n ],\n \"targets\": [\n \"<string>\"\n ]\n }\n ],\n \"activeConfigRevision\": 123,\n \"timestamp\": 123,\n \"availableActions\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"task\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{cluster}.cognitedata.com/api/v1/projects/{project}/integrations/startup")
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 \"externalId\": \"my.integrations.id\",\n \"extractor\": {\n \"externalId\": \"cognite-opcua\",\n \"version\": \"1.2.3\"\n },\n \"tasks\": [\n {\n \"name\": \"<string>\",\n \"action\": false,\n \"description\": \"<string>\",\n \"sources\": [\n \"<string>\"\n ],\n \"targets\": [\n \"<string>\"\n ]\n }\n ],\n \"activeConfigRevision\": 123,\n \"timestamp\": 123,\n \"availableActions\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"task\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"externalId": "my.integrations.id",
"lastConfigRevision": 123,
"pendingActions": [
{
"externalId": "my.integrations.id",
"actionName": "<string>",
"status": "pending",
"createdTime": 1730204346000,
"lastUpdatedTime": 1730204346000,
"callMetadata": {},
"resultMessage": "<string>",
"resultMetadata": {}
}
]
}{
"error": {
"code": 400,
"message": "`null` values aren't allowed."
}
}{
"error": {
"code": 422,
"message": "Extra inputs are not permitted: type"
}
}Authorizations
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
Update to extractor information.
Request sent on extractor startup containing information about the extractor.
The external ID provided by the client. Must be unique for the resource type.
1 - 255"my.integrations.id"
Identifier for an extractor. Note that if the extractor externalId starts with cognite, it must correspond to a cognite extractor.
Show child attributes
Show child attributes
A list of tasks configured for this extractor.
Show child attributes
Show child attributes
The currently active config revision, or "local" if a local config file is in use.
Timestamp of the startup event in milliseconds since 01/01/1970.
List of actions the extractor supports. CDF uses this to know what remote operations can be requested for this integration.
100Show child attributes
Show child attributes
Response
Response with updates for the extractor.
Response sent on extractor check-in.
The external ID provided by the client. Must be unique for the resource type.
1 - 255"my.integrations.id"
Last stored extractor configuration revision.
Actions the extractor should pick up and perform, reporting their outcome back via actionUpdates on a subsequent checkin.
Show child attributes
Show child attributes
curl --request POST \
--url https://{cluster}.cognitedata.com/api/v1/projects/{project}/integrations/startup \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"externalId": "my.integrations.id",
"extractor": {
"externalId": "cognite-opcua",
"version": "1.2.3"
},
"tasks": [
{
"name": "<string>",
"action": false,
"description": "<string>",
"sources": [
"<string>"
],
"targets": [
"<string>"
]
}
],
"activeConfigRevision": 123,
"timestamp": 123,
"availableActions": [
{
"name": "<string>",
"description": "<string>",
"task": "<string>"
}
]
}
'import requests
url = "https://{cluster}.cognitedata.com/api/v1/projects/{project}/integrations/startup"
payload = {
"externalId": "my.integrations.id",
"extractor": {
"externalId": "cognite-opcua",
"version": "1.2.3"
},
"tasks": [
{
"name": "<string>",
"action": False,
"description": "<string>",
"sources": ["<string>"],
"targets": ["<string>"]
}
],
"activeConfigRevision": 123,
"timestamp": 123,
"availableActions": [
{
"name": "<string>",
"description": "<string>",
"task": "<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({
externalId: 'my.integrations.id',
extractor: {externalId: 'cognite-opcua', version: '1.2.3'},
tasks: [
{
name: '<string>',
action: false,
description: '<string>',
sources: ['<string>'],
targets: ['<string>']
}
],
activeConfigRevision: 123,
timestamp: 123,
availableActions: [{name: '<string>', description: '<string>', task: '<string>'}]
})
};
fetch('https://{cluster}.cognitedata.com/api/v1/projects/{project}/integrations/startup', 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}/integrations/startup",
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([
'externalId' => 'my.integrations.id',
'extractor' => [
'externalId' => 'cognite-opcua',
'version' => '1.2.3'
],
'tasks' => [
[
'name' => '<string>',
'action' => false,
'description' => '<string>',
'sources' => [
'<string>'
],
'targets' => [
'<string>'
]
]
],
'activeConfigRevision' => 123,
'timestamp' => 123,
'availableActions' => [
[
'name' => '<string>',
'description' => '<string>',
'task' => '<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}/integrations/startup"
payload := strings.NewReader("{\n \"externalId\": \"my.integrations.id\",\n \"extractor\": {\n \"externalId\": \"cognite-opcua\",\n \"version\": \"1.2.3\"\n },\n \"tasks\": [\n {\n \"name\": \"<string>\",\n \"action\": false,\n \"description\": \"<string>\",\n \"sources\": [\n \"<string>\"\n ],\n \"targets\": [\n \"<string>\"\n ]\n }\n ],\n \"activeConfigRevision\": 123,\n \"timestamp\": 123,\n \"availableActions\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"task\": \"<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}/integrations/startup")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"externalId\": \"my.integrations.id\",\n \"extractor\": {\n \"externalId\": \"cognite-opcua\",\n \"version\": \"1.2.3\"\n },\n \"tasks\": [\n {\n \"name\": \"<string>\",\n \"action\": false,\n \"description\": \"<string>\",\n \"sources\": [\n \"<string>\"\n ],\n \"targets\": [\n \"<string>\"\n ]\n }\n ],\n \"activeConfigRevision\": 123,\n \"timestamp\": 123,\n \"availableActions\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"task\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{cluster}.cognitedata.com/api/v1/projects/{project}/integrations/startup")
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 \"externalId\": \"my.integrations.id\",\n \"extractor\": {\n \"externalId\": \"cognite-opcua\",\n \"version\": \"1.2.3\"\n },\n \"tasks\": [\n {\n \"name\": \"<string>\",\n \"action\": false,\n \"description\": \"<string>\",\n \"sources\": [\n \"<string>\"\n ],\n \"targets\": [\n \"<string>\"\n ]\n }\n ],\n \"activeConfigRevision\": 123,\n \"timestamp\": 123,\n \"availableActions\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"task\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"externalId": "my.integrations.id",
"lastConfigRevision": 123,
"pendingActions": [
{
"externalId": "my.integrations.id",
"actionName": "<string>",
"status": "pending",
"createdTime": 1730204346000,
"lastUpdatedTime": 1730204346000,
"callMetadata": {},
"resultMessage": "<string>",
"resultMetadata": {}
}
]
}{
"error": {
"code": 400,
"message": "`null` values aren't allowed."
}
}{
"error": {
"code": 422,
"message": "Extra inputs are not permitted: type"
}
}