Create applications
Create one or more new applications owned by an organization.
Each application can be connected to any number of CDF projects, including zero, one, or multiple, identified by their CDF project names. All projects must belong to the target organization.
Up to 10 applications can be created per request.
POST
/
api
/
v1
/
orgs
/
{org}
/
applications
Create applications
curl --request POST \
--url https://auth.cognite.com/api/v1/orgs/{org}/applications \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"name": "My Data Portal",
"projectNames": [
"publicdata"
],
"description": "Customer-facing data portal for project ACME-PROD.",
"allowedOrigins": [
"https://*.example.com"
]
}
]
}
'import requests
url = "https://auth.cognite.com/api/v1/orgs/{org}/applications"
payload = { "items": [
{
"name": "My Data Portal",
"projectNames": ["publicdata"],
"description": "Customer-facing data portal for project ACME-PROD.",
"allowedOrigins": ["https://*.example.com"]
}
] }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
name: 'My Data Portal',
projectNames: ['publicdata'],
description: 'Customer-facing data portal for project ACME-PROD.',
allowedOrigins: ['https://*.example.com']
}
]
})
};
fetch('https://auth.cognite.com/api/v1/orgs/{org}/applications', 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://auth.cognite.com/api/v1/orgs/{org}/applications",
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' => [
[
'name' => 'My Data Portal',
'projectNames' => [
'publicdata'
],
'description' => 'Customer-facing data portal for project ACME-PROD.',
'allowedOrigins' => [
'https://*.example.com'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"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://auth.cognite.com/api/v1/orgs/{org}/applications"
payload := strings.NewReader("{\n \"items\": [\n {\n \"name\": \"My Data Portal\",\n \"projectNames\": [\n \"publicdata\"\n ],\n \"description\": \"Customer-facing data portal for project ACME-PROD.\",\n \"allowedOrigins\": [\n \"https://*.example.com\"\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
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://auth.cognite.com/api/v1/orgs/{org}/applications")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"name\": \"My Data Portal\",\n \"projectNames\": [\n \"publicdata\"\n ],\n \"description\": \"Customer-facing data portal for project ACME-PROD.\",\n \"allowedOrigins\": [\n \"https://*.example.com\"\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://auth.cognite.com/api/v1/orgs/{org}/applications")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"items\": [\n {\n \"name\": \"My Data Portal\",\n \"projectNames\": [\n \"publicdata\"\n ],\n \"description\": \"Customer-facing data portal for project ACME-PROD.\",\n \"allowedOrigins\": [\n \"https://*.example.com\"\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "f4a3e291-7682-4148-89c0-be3a8f17eb23",
"name": "My Data Portal",
"allowedOrigins": [
"https://*.example.com"
],
"projectNames": [
"publicdata"
],
"createdTime": 1730204346000,
"lastUpdatedTime": 1730204346000,
"description": "Customer-facing data portal for project ACME-PROD."
}
],
"nextCursor": "<string>"
}{
"error": {
"code": 401,
"message": "Could not authenticate.",
"missing": [
{}
],
"duplicated": [
{}
]
}
}{
"error": {
"code": 401,
"message": "Could not authenticate.",
"missing": [
{}
],
"duplicated": [
{}
]
}
}{
"error": {
"code": 401,
"message": "Could not authenticate.",
"missing": [
{}
],
"duplicated": [
{}
]
}
}Path Parameters
ID of an organization The ID of an organization
Required string length:
3 - 64Pattern:
^([a-z][a-z0-9-]{1,62}[a-z0-9])$Example:
"my-org"
Body
application/json
Request body for creating one or more applications.
Applications to create. Maximum 10 items.
Required array length:
1 - 10 elementsShow child attributes
Show child attributes
Last modified on October 7, 2026
⌘I
Create applications
curl --request POST \
--url https://auth.cognite.com/api/v1/orgs/{org}/applications \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"name": "My Data Portal",
"projectNames": [
"publicdata"
],
"description": "Customer-facing data portal for project ACME-PROD.",
"allowedOrigins": [
"https://*.example.com"
]
}
]
}
'import requests
url = "https://auth.cognite.com/api/v1/orgs/{org}/applications"
payload = { "items": [
{
"name": "My Data Portal",
"projectNames": ["publicdata"],
"description": "Customer-facing data portal for project ACME-PROD.",
"allowedOrigins": ["https://*.example.com"]
}
] }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
name: 'My Data Portal',
projectNames: ['publicdata'],
description: 'Customer-facing data portal for project ACME-PROD.',
allowedOrigins: ['https://*.example.com']
}
]
})
};
fetch('https://auth.cognite.com/api/v1/orgs/{org}/applications', 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://auth.cognite.com/api/v1/orgs/{org}/applications",
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' => [
[
'name' => 'My Data Portal',
'projectNames' => [
'publicdata'
],
'description' => 'Customer-facing data portal for project ACME-PROD.',
'allowedOrigins' => [
'https://*.example.com'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"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://auth.cognite.com/api/v1/orgs/{org}/applications"
payload := strings.NewReader("{\n \"items\": [\n {\n \"name\": \"My Data Portal\",\n \"projectNames\": [\n \"publicdata\"\n ],\n \"description\": \"Customer-facing data portal for project ACME-PROD.\",\n \"allowedOrigins\": [\n \"https://*.example.com\"\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
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://auth.cognite.com/api/v1/orgs/{org}/applications")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"name\": \"My Data Portal\",\n \"projectNames\": [\n \"publicdata\"\n ],\n \"description\": \"Customer-facing data portal for project ACME-PROD.\",\n \"allowedOrigins\": [\n \"https://*.example.com\"\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://auth.cognite.com/api/v1/orgs/{org}/applications")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"items\": [\n {\n \"name\": \"My Data Portal\",\n \"projectNames\": [\n \"publicdata\"\n ],\n \"description\": \"Customer-facing data portal for project ACME-PROD.\",\n \"allowedOrigins\": [\n \"https://*.example.com\"\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "f4a3e291-7682-4148-89c0-be3a8f17eb23",
"name": "My Data Portal",
"allowedOrigins": [
"https://*.example.com"
],
"projectNames": [
"publicdata"
],
"createdTime": 1730204346000,
"lastUpdatedTime": 1730204346000,
"description": "Customer-facing data portal for project ACME-PROD."
}
],
"nextCursor": "<string>"
}{
"error": {
"code": 401,
"message": "Could not authenticate.",
"missing": [
{}
],
"duplicated": [
{}
]
}
}{
"error": {
"code": 401,
"message": "Could not authenticate.",
"missing": [
{}
],
"duplicated": [
{}
]
}
}{
"error": {
"code": 401,
"message": "Could not authenticate.",
"missing": [
{}
],
"duplicated": [
{}
]
}
}