CreateWatcher
Non-streaming versions of WatchDir
curl --request POST \
--url https://sandbox.{domain}/filesystem.Filesystem/CreateWatcher \
--header 'Authorization: Basic <encoded-value>' \
--header 'Connect-Protocol-Version: <connect-protocol-version>' \
--header 'Content-Type: application/json' \
--header 'E2b-Sandbox-Id: <e2b-sandbox-id>' \
--header 'E2b-Sandbox-Port: <e2b-sandbox-port>' \
--header 'X-Access-Token: <api-key>' \
--data '
{
"path": "<string>",
"recursive": true,
"includeEntry": true,
"allowNetworkMounts": true
}
'import requests
url = "https://sandbox.{domain}/filesystem.Filesystem/CreateWatcher"
payload = {
"path": "<string>",
"recursive": True,
"includeEntry": True,
"allowNetworkMounts": True
}
headers = {
"E2b-Sandbox-Id": "<e2b-sandbox-id>",
"E2b-Sandbox-Port": "<e2b-sandbox-port>",
"Connect-Protocol-Version": "<connect-protocol-version>",
"X-Access-Token": "<api-key>",
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'E2b-Sandbox-Id': '<e2b-sandbox-id>',
'E2b-Sandbox-Port': '<e2b-sandbox-port>',
'Connect-Protocol-Version': '<connect-protocol-version>',
'X-Access-Token': '<api-key>',
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
path: '<string>',
recursive: true,
includeEntry: true,
allowNetworkMounts: true
})
};
fetch('https://sandbox.{domain}/filesystem.Filesystem/CreateWatcher', 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://sandbox.{domain}/filesystem.Filesystem/CreateWatcher",
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([
'path' => '<string>',
'recursive' => true,
'includeEntry' => true,
'allowNetworkMounts' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Connect-Protocol-Version: <connect-protocol-version>",
"Content-Type: application/json",
"E2b-Sandbox-Id: <e2b-sandbox-id>",
"E2b-Sandbox-Port: <e2b-sandbox-port>",
"X-Access-Token: <api-key>"
],
]);
$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://sandbox.{domain}/filesystem.Filesystem/CreateWatcher"
payload := strings.NewReader("{\n \"path\": \"<string>\",\n \"recursive\": true,\n \"includeEntry\": true,\n \"allowNetworkMounts\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("E2b-Sandbox-Id", "<e2b-sandbox-id>")
req.Header.Add("E2b-Sandbox-Port", "<e2b-sandbox-port>")
req.Header.Add("Connect-Protocol-Version", "<connect-protocol-version>")
req.Header.Add("X-Access-Token", "<api-key>")
req.Header.Add("Authorization", "Basic <encoded-value>")
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://sandbox.{domain}/filesystem.Filesystem/CreateWatcher")
.header("E2b-Sandbox-Id", "<e2b-sandbox-id>")
.header("E2b-Sandbox-Port", "<e2b-sandbox-port>")
.header("Connect-Protocol-Version", "<connect-protocol-version>")
.header("X-Access-Token", "<api-key>")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"path\": \"<string>\",\n \"recursive\": true,\n \"includeEntry\": true,\n \"allowNetworkMounts\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.{domain}/filesystem.Filesystem/CreateWatcher")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["E2b-Sandbox-Id"] = '<e2b-sandbox-id>'
request["E2b-Sandbox-Port"] = '<e2b-sandbox-port>'
request["Connect-Protocol-Version"] = '<connect-protocol-version>'
request["X-Access-Token"] = '<api-key>'
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"path\": \"<string>\",\n \"recursive\": true,\n \"includeEntry\": true,\n \"allowNetworkMounts\": true\n}"
response = http.request(request)
puts response.read_body{
"watcherId": "<string>"
}{
"message": "<string>",
"code": 123,
"sandboxID": "<string>"
}Authorizations
Sandbox access token (envdAccessToken) for authenticating requests to a running sandbox. Returned by: POST /sandboxes (on create), POST /sandboxes/{sandboxID}/connect (on connect), POST /sandboxes/{sandboxID}/resume (on resume), and GET /sandboxes/{sandboxID} (for running or paused sandboxes).
Optional system user for the operation. Sets file ownership and resolves relative paths. Pass the desired username with no password. Defaults to the sandbox's default user when omitted.
Headers
Identifier of the target sandbox. Routes the request to that sandbox's envd over the shared sandbox host.
Port envd listens on inside the sandbox (default 49983).
Define the version of the Connect protocol
Define the timeout, in ms
Body
If true, each FilesystemEvent includes the EntryInfo of the affected entry, when available.
If true, allows watching paths on network filesystem mounts (NFS, CIFS, SMB, FUSE). Events on network mounts may be unreliable or not delivered at all.
Response
Success
Was this page helpful?
curl --request POST \
--url https://sandbox.{domain}/filesystem.Filesystem/CreateWatcher \
--header 'Authorization: Basic <encoded-value>' \
--header 'Connect-Protocol-Version: <connect-protocol-version>' \
--header 'Content-Type: application/json' \
--header 'E2b-Sandbox-Id: <e2b-sandbox-id>' \
--header 'E2b-Sandbox-Port: <e2b-sandbox-port>' \
--header 'X-Access-Token: <api-key>' \
--data '
{
"path": "<string>",
"recursive": true,
"includeEntry": true,
"allowNetworkMounts": true
}
'import requests
url = "https://sandbox.{domain}/filesystem.Filesystem/CreateWatcher"
payload = {
"path": "<string>",
"recursive": True,
"includeEntry": True,
"allowNetworkMounts": True
}
headers = {
"E2b-Sandbox-Id": "<e2b-sandbox-id>",
"E2b-Sandbox-Port": "<e2b-sandbox-port>",
"Connect-Protocol-Version": "<connect-protocol-version>",
"X-Access-Token": "<api-key>",
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'E2b-Sandbox-Id': '<e2b-sandbox-id>',
'E2b-Sandbox-Port': '<e2b-sandbox-port>',
'Connect-Protocol-Version': '<connect-protocol-version>',
'X-Access-Token': '<api-key>',
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
path: '<string>',
recursive: true,
includeEntry: true,
allowNetworkMounts: true
})
};
fetch('https://sandbox.{domain}/filesystem.Filesystem/CreateWatcher', 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://sandbox.{domain}/filesystem.Filesystem/CreateWatcher",
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([
'path' => '<string>',
'recursive' => true,
'includeEntry' => true,
'allowNetworkMounts' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Connect-Protocol-Version: <connect-protocol-version>",
"Content-Type: application/json",
"E2b-Sandbox-Id: <e2b-sandbox-id>",
"E2b-Sandbox-Port: <e2b-sandbox-port>",
"X-Access-Token: <api-key>"
],
]);
$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://sandbox.{domain}/filesystem.Filesystem/CreateWatcher"
payload := strings.NewReader("{\n \"path\": \"<string>\",\n \"recursive\": true,\n \"includeEntry\": true,\n \"allowNetworkMounts\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("E2b-Sandbox-Id", "<e2b-sandbox-id>")
req.Header.Add("E2b-Sandbox-Port", "<e2b-sandbox-port>")
req.Header.Add("Connect-Protocol-Version", "<connect-protocol-version>")
req.Header.Add("X-Access-Token", "<api-key>")
req.Header.Add("Authorization", "Basic <encoded-value>")
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://sandbox.{domain}/filesystem.Filesystem/CreateWatcher")
.header("E2b-Sandbox-Id", "<e2b-sandbox-id>")
.header("E2b-Sandbox-Port", "<e2b-sandbox-port>")
.header("Connect-Protocol-Version", "<connect-protocol-version>")
.header("X-Access-Token", "<api-key>")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"path\": \"<string>\",\n \"recursive\": true,\n \"includeEntry\": true,\n \"allowNetworkMounts\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.{domain}/filesystem.Filesystem/CreateWatcher")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["E2b-Sandbox-Id"] = '<e2b-sandbox-id>'
request["E2b-Sandbox-Port"] = '<e2b-sandbox-port>'
request["Connect-Protocol-Version"] = '<connect-protocol-version>'
request["X-Access-Token"] = '<api-key>'
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"path\": \"<string>\",\n \"recursive\": true,\n \"includeEntry\": true,\n \"allowNetworkMounts\": true\n}"
response = http.request(request)
puts response.read_body{
"watcherId": "<string>"
}{
"message": "<string>",
"code": 123,
"sandboxID": "<string>"
}