Update an environment
curl --request PUT \
--url https://agp.eu.hcompany.ai/api/v2/environments/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://agp.eu.hcompany.ai/api/v2/environments/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.put(url, headers=headers)
print(response.text)const options = {method: 'PUT', headers: {Authorization: 'Bearer <token>'}};
fetch('https://agp.eu.hcompany.ai/api/v2/environments/{id}', 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://agp.eu.hcompany.ai/api/v2/environments/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://agp.eu.hcompany.ai/api/v2/environments/{id}"
req, _ := http.NewRequest("PUT", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://agp.eu.hcompany.ai/api/v2/environments/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://agp.eu.hcompany.ai/api/v2/environments/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyEnvironments
Update an environment
Replace the configuration of an environment in your catalog.
PUT
/
api
/
v2
/
environments
/
{id}
Update an environment
curl --request PUT \
--url https://agp.eu.hcompany.ai/api/v2/environments/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://agp.eu.hcompany.ai/api/v2/environments/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.put(url, headers=headers)
print(response.text)const options = {method: 'PUT', headers: {Authorization: 'Bearer <token>'}};
fetch('https://agp.eu.hcompany.ai/api/v2/environments/{id}', 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://agp.eu.hcompany.ai/api/v2/environments/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://agp.eu.hcompany.ai/api/v2/environments/{id}"
req, _ := http.NewRequest("PUT", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://agp.eu.hcompany.ai/api/v2/environments/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://agp.eu.hcompany.ai/api/v2/environments/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyReplaces an environment’s whole configuration. Renames are not supported. To change a few fields, use Patch.
Returns the updated environment object.
Path parameters
string
required
The environment’s
id (e.g. wide-browser or myorg/wide-browser). Slash-containing identifiers are supported.Request body
The full environment, with the same fields as Create an environment. Theid must equal the URL identifier. Omitted fields reset to their defaults, not their stored values. That includes vault_id: omitting it unbinds any attached vault.
Examples
Bind a vault while keeping the rest of the spec:curl -X PUT https://agp.eu.hcompany.ai/api/v2/environments/wide-browser \
-H "Authorization: Bearer $HAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"id": "wide-browser",
"kind": "web",
"start_url": "https://example.com",
"mode": {"type": "visual", "width": 1920, "height": 1080, "markdown": true},
"vault_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}'
from hai_agents import Client, UpdateEnvironmentRequestBody_Web
client = Client()
environment = client.environments.update_environment(
"wide-browser",
request=UpdateEnvironmentRequestBody_Web(
id="wide-browser",
start_url="https://example.com",
mode={"type": "visual", "width": 1920, "height": 1080, "markdown": True},
vault_id="f47ac10b-58cc-4372-a567-0e02b2c3d479",
),
)
print(environment.mode)
import { HaiAgentsClient } from "hai-agents";
const client = new HaiAgentsClient();
const environment = await client.environments.updateEnvironment({
id: "wide-browser",
body: {
kind: "web",
id: "wide-browser",
startUrl: "https://example.com",
mode: { type: "visual", width: 1920, height: 1080, markdown: true },
vaultId: "f47ac10b-58cc-4372-a567-0e02b2c3d479",
},
});
if (environment.kind === "web") {
console.log(environment.mode);
}
Response
{
"id": "wide-browser",
"kind": "web",
"host": "cloud",
"start_url": "https://example.com",
"headless": false,
"session_id": null,
"mode": {"type": "visual", "width": 1920, "height": 1080, "markdown": true},
"lazy": false,
"settle_s": 1.0,
"vault_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"browser_profile_id": null,
"use_default_browser_profile": false,
"persist_browser_profile": false,
"network": null
}
Errors
| Status | Cause |
|---|---|
400 | The id in the body does not match the URL identifier (renames are not supported). |
403 | The environment is reserved (h/) and read-only. |
404 | Environment not found or you don’t have access. |
422 | Body failed validation. Common cases: invalid id shape, missing required field. |
Was this page helpful?