Update an environment
Update an environment by its unique identifier environmentId. You can modify the environment name, identifier, color, and other configuration settings.
import { Novu } from "@novu/api";
const novu = new Novu({
secretKey: "YOUR_SECRET_KEY_HERE",
});
async function run() {
const result = await novu.environments.update({}, "<id>");
console.log(result);
}
run();using Novu;
using Novu.Models.Components;
var sdk = new NovuSDK(secretKey: "YOUR_SECRET_KEY_HERE");
var res = await sdk.Environments.UpdateAsync(
environmentId: "<id>",
updateEnvironmentRequestDto: new UpdateEnvironmentRequestDto() {}
);
// handle responsedeclare(strict_types=1);
require 'vendor/autoload.php';
use novu;
use novu\Models\Components;
$sdk = novu\Novu::builder()
->setSecurity(
'YOUR_SECRET_KEY_HERE'
)
->build();
$updateEnvironmentRequestDto = new Components\UpdateEnvironmentRequestDto();
$response = $sdk->environments->update(
environmentId: '<id>',
updateEnvironmentRequestDto: $updateEnvironmentRequestDto
);
if ($response->environmentResponseDto !== null) {
// handle response
}from novu_py import Novu
with Novu(
secret_key="YOUR_SECRET_KEY_HERE",
) as novu:
res = novu.environments.update(environment_id="<id>", update_environment_request_dto={})
# Handle response
print(res)package main
import(
"context"
"github.com/novuhq/novu-go/v3"
"github.com/novuhq/novu-go/v3/models/components"
"log"
)
func main() {
ctx := context.Background()
s := v3.New(
v3.WithSecurity("YOUR_SECRET_KEY_HERE"),
)
res, err := s.Environments.Update(ctx, "<id>", components.UpdateEnvironmentRequestDto{}, nil)
if err != nil {
log.Fatal(err)
}
if res.EnvironmentResponseDto != nil {
// handle response
}
}curl --request PUT \
--url https://api.novu.co/v1/environments/{environmentId} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"identifier": "<string>",
"parentId": "<string>",
"color": "<string>",
"dns": {
"inboundParseDomain": "<string>"
},
"bridge": {
"url": "<string>"
}
}
'const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
identifier: '<string>',
parentId: '<string>',
color: '<string>',
dns: {inboundParseDomain: '<string>'},
bridge: {url: '<string>'}
})
};
fetch('https://api.novu.co/v1/environments/{environmentId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.put("https://api.novu.co/v1/environments/{environmentId}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"identifier\": \"<string>\",\n \"parentId\": \"<string>\",\n \"color\": \"<string>\",\n \"dns\": {\n \"inboundParseDomain\": \"<string>\"\n },\n \"bridge\": {\n \"url\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novu.co/v1/environments/{environmentId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"identifier\": \"<string>\",\n \"parentId\": \"<string>\",\n \"color\": \"<string>\",\n \"dns\": {\n \"inboundParseDomain\": \"<string>\"\n },\n \"bridge\": {\n \"url\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"_id": "60d5ecb8b3b3a30015f3e1a1",
"name": "Production Environment",
"_organizationId": "60d5ecb8b3b3a30015f3e1a2",
"identifier": "prod-env-01",
"type": "prod",
"apiKeys": [
{
"key": "sk_test_1234567890abcdef",
"_userId": "60d5ecb8b3b3a30015f3e1a4",
"hash": "hash_value_here"
}
],
"_parentId": "60d5ecb8b3b3a30015f3e1a3",
"slug": "production"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"errors": {
"fieldName1": {
"messages": [
"Field is required",
"Must be a valid email address"
],
"value": "invalidEmail"
},
"fieldName2": {
"messages": [
"Must be at least 18 years old"
],
"value": 17
},
"fieldName3": {
"messages": [
"Must be a boolean value"
],
"value": true
},
"fieldName4": {
"messages": [
"Must be a valid object"
],
"value": {
"key": "value"
}
},
"fieldName5": {
"messages": [
"Field is missing"
],
"value": null
},
"fieldName6": {
"messages": [
"Undefined value"
]
}
},
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}"API rate limit exceeded"{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}"Please wait some time, then try again."Authorizations
API key authentication. Allowed headers-- "Authorization: ApiKey <novu_secret_key>".
Headers
A header for idempotency purposes
Path Parameters
The unique identifier of the environment
Body
Response
OK
Unique identifier of the environment
"60d5ecb8b3b3a30015f3e1a1"
Name of the environment
"Production Environment"
Organization ID associated with the environment
"60d5ecb8b3b3a30015f3e1a2"
Unique identifier for the environment
"prod-env-01"
Type of the environment
dev, prod "prod"
List of API keys associated with the environment
Show child attributes
Show child attributes
Parent environment ID
"60d5ecb8b3b3a30015f3e1a3"
URL-friendly slug for the environment
"production"
Was this page helpful?
import { Novu } from "@novu/api";
const novu = new Novu({
secretKey: "YOUR_SECRET_KEY_HERE",
});
async function run() {
const result = await novu.environments.update({}, "<id>");
console.log(result);
}
run();using Novu;
using Novu.Models.Components;
var sdk = new NovuSDK(secretKey: "YOUR_SECRET_KEY_HERE");
var res = await sdk.Environments.UpdateAsync(
environmentId: "<id>",
updateEnvironmentRequestDto: new UpdateEnvironmentRequestDto() {}
);
// handle responsedeclare(strict_types=1);
require 'vendor/autoload.php';
use novu;
use novu\Models\Components;
$sdk = novu\Novu::builder()
->setSecurity(
'YOUR_SECRET_KEY_HERE'
)
->build();
$updateEnvironmentRequestDto = new Components\UpdateEnvironmentRequestDto();
$response = $sdk->environments->update(
environmentId: '<id>',
updateEnvironmentRequestDto: $updateEnvironmentRequestDto
);
if ($response->environmentResponseDto !== null) {
// handle response
}from novu_py import Novu
with Novu(
secret_key="YOUR_SECRET_KEY_HERE",
) as novu:
res = novu.environments.update(environment_id="<id>", update_environment_request_dto={})
# Handle response
print(res)package main
import(
"context"
"github.com/novuhq/novu-go/v3"
"github.com/novuhq/novu-go/v3/models/components"
"log"
)
func main() {
ctx := context.Background()
s := v3.New(
v3.WithSecurity("YOUR_SECRET_KEY_HERE"),
)
res, err := s.Environments.Update(ctx, "<id>", components.UpdateEnvironmentRequestDto{}, nil)
if err != nil {
log.Fatal(err)
}
if res.EnvironmentResponseDto != nil {
// handle response
}
}curl --request PUT \
--url https://api.novu.co/v1/environments/{environmentId} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"identifier": "<string>",
"parentId": "<string>",
"color": "<string>",
"dns": {
"inboundParseDomain": "<string>"
},
"bridge": {
"url": "<string>"
}
}
'const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
identifier: '<string>',
parentId: '<string>',
color: '<string>',
dns: {inboundParseDomain: '<string>'},
bridge: {url: '<string>'}
})
};
fetch('https://api.novu.co/v1/environments/{environmentId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.put("https://api.novu.co/v1/environments/{environmentId}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"identifier\": \"<string>\",\n \"parentId\": \"<string>\",\n \"color\": \"<string>\",\n \"dns\": {\n \"inboundParseDomain\": \"<string>\"\n },\n \"bridge\": {\n \"url\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novu.co/v1/environments/{environmentId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"identifier\": \"<string>\",\n \"parentId\": \"<string>\",\n \"color\": \"<string>\",\n \"dns\": {\n \"inboundParseDomain\": \"<string>\"\n },\n \"bridge\": {\n \"url\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"_id": "60d5ecb8b3b3a30015f3e1a1",
"name": "Production Environment",
"_organizationId": "60d5ecb8b3b3a30015f3e1a2",
"identifier": "prod-env-01",
"type": "prod",
"apiKeys": [
{
"key": "sk_test_1234567890abcdef",
"_userId": "60d5ecb8b3b3a30015f3e1a4",
"hash": "hash_value_here"
}
],
"_parentId": "60d5ecb8b3b3a30015f3e1a3",
"slug": "production"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"errors": {
"fieldName1": {
"messages": [
"Field is required",
"Must be a valid email address"
],
"value": "invalidEmail"
},
"fieldName2": {
"messages": [
"Must be at least 18 years old"
],
"value": 17
},
"fieldName3": {
"messages": [
"Must be a boolean value"
],
"value": true
},
"fieldName4": {
"messages": [
"Must be a valid object"
],
"value": {
"key": "value"
}
},
"fieldName5": {
"messages": [
"Field is missing"
],
"value": null
},
"fieldName6": {
"messages": [
"Undefined value"
]
}
},
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}"API rate limit exceeded"{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}"Please wait some time, then try again."