Execute a command synchronously
curl --request POST \
--url https://api.onkernel.com/browsers/{id}/process/exec \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"command": "<string>",
"args": [],
"as_root": false,
"as_user": "<string>",
"cwd": "<string>",
"env": {},
"timeout_sec": 123
}
'import requests
url = "https://api.onkernel.com/browsers/{id}/process/exec"
payload = {
"command": "<string>",
"args": [],
"as_root": False,
"as_user": "<string>",
"cwd": "<string>",
"env": {},
"timeout_sec": 123
}
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({
command: '<string>',
args: [],
as_root: false,
as_user: '<string>',
cwd: '<string>',
env: {},
timeout_sec: 123
})
};
fetch('https://api.onkernel.com/browsers/{id}/process/exec', 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://api.onkernel.com/browsers/{id}/process/exec",
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([
'command' => '<string>',
'args' => [
],
'as_root' => false,
'as_user' => '<string>',
'cwd' => '<string>',
'env' => [
],
'timeout_sec' => 123
]),
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://api.onkernel.com/browsers/{id}/process/exec"
payload := strings.NewReader("{\n \"command\": \"<string>\",\n \"args\": [],\n \"as_root\": false,\n \"as_user\": \"<string>\",\n \"cwd\": \"<string>\",\n \"env\": {},\n \"timeout_sec\": 123\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://api.onkernel.com/browsers/{id}/process/exec")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"command\": \"<string>\",\n \"args\": [],\n \"as_root\": false,\n \"as_user\": \"<string>\",\n \"cwd\": \"<string>\",\n \"env\": {},\n \"timeout_sec\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onkernel.com/browsers/{id}/process/exec")
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 \"command\": \"<string>\",\n \"args\": [],\n \"as_root\": false,\n \"as_user\": \"<string>\",\n \"cwd\": \"<string>\",\n \"env\": {},\n \"timeout_sec\": 123\n}"
response = http.request(request)
puts response.read_body{
"duration_ms": 123,
"exit_code": 123,
"stderr_b64": "<string>",
"stdout_b64": "<string>"
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}Browser Processes
Execute a command synchronously
POST
/
browsers
/
{id}
/
process
/
exec
Execute a command synchronously
curl --request POST \
--url https://api.onkernel.com/browsers/{id}/process/exec \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"command": "<string>",
"args": [],
"as_root": false,
"as_user": "<string>",
"cwd": "<string>",
"env": {},
"timeout_sec": 123
}
'import requests
url = "https://api.onkernel.com/browsers/{id}/process/exec"
payload = {
"command": "<string>",
"args": [],
"as_root": False,
"as_user": "<string>",
"cwd": "<string>",
"env": {},
"timeout_sec": 123
}
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({
command: '<string>',
args: [],
as_root: false,
as_user: '<string>',
cwd: '<string>',
env: {},
timeout_sec: 123
})
};
fetch('https://api.onkernel.com/browsers/{id}/process/exec', 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://api.onkernel.com/browsers/{id}/process/exec",
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([
'command' => '<string>',
'args' => [
],
'as_root' => false,
'as_user' => '<string>',
'cwd' => '<string>',
'env' => [
],
'timeout_sec' => 123
]),
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://api.onkernel.com/browsers/{id}/process/exec"
payload := strings.NewReader("{\n \"command\": \"<string>\",\n \"args\": [],\n \"as_root\": false,\n \"as_user\": \"<string>\",\n \"cwd\": \"<string>\",\n \"env\": {},\n \"timeout_sec\": 123\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://api.onkernel.com/browsers/{id}/process/exec")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"command\": \"<string>\",\n \"args\": [],\n \"as_root\": false,\n \"as_user\": \"<string>\",\n \"cwd\": \"<string>\",\n \"env\": {},\n \"timeout_sec\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onkernel.com/browsers/{id}/process/exec")
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 \"command\": \"<string>\",\n \"args\": [],\n \"as_root\": false,\n \"as_user\": \"<string>\",\n \"cwd\": \"<string>\",\n \"env\": {},\n \"timeout_sec\": 123\n}"
response = http.request(request)
puts response.read_body{
"duration_ms": 123,
"exit_code": 123,
"stderr_b64": "<string>",
"stdout_b64": "<string>"
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Browser session ID
Body
application/json
Request to execute a command synchronously.
Executable or shell command to run.
Command arguments.
Run the process with root privileges.
Run the process as this user.
Working directory (absolute path) to run the command in.
Pattern:
^/.*Environment variables to set for the process.
Show child attributes
Show child attributes
Maximum execution time in seconds.
⌘I