Instruct
curl --request POST \
--url https://api.example.com/browsers/{id}/instruct/ \
--header 'Content-Type: application/json' \
--data '
{
"instruction": "<string>"
}
'import requests
url = "https://api.example.com/browsers/{id}/instruct/"
payload = { "instruction": "<string>" }
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({instruction: '<string>'})
};
fetch('https://api.example.com/browsers/{id}/instruct/', 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.example.com/browsers/{id}/instruct/",
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([
'instruction' => '<string>'
]),
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://api.example.com/browsers/{id}/instruct/"
payload := strings.NewReader("{\n \"instruction\": \"<string>\"\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://api.example.com/browsers/{id}/instruct/")
.header("Content-Type", "application/json")
.body("{\n \"instruction\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/browsers/{id}/instruct/")
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 \"instruction\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {}
}Commands
Instruct
Drive the browser with a natural language instruction
POST
/
browsers
/
{id}
/
instruct
/
Instruct
curl --request POST \
--url https://api.example.com/browsers/{id}/instruct/ \
--header 'Content-Type: application/json' \
--data '
{
"instruction": "<string>"
}
'import requests
url = "https://api.example.com/browsers/{id}/instruct/"
payload = { "instruction": "<string>" }
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({instruction: '<string>'})
};
fetch('https://api.example.com/browsers/{id}/instruct/', 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.example.com/browsers/{id}/instruct/",
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([
'instruction' => '<string>'
]),
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://api.example.com/browsers/{id}/instruct/"
payload := strings.NewReader("{\n \"instruction\": \"<string>\"\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://api.example.com/browsers/{id}/instruct/")
.header("Content-Type", "application/json")
.body("{\n \"instruction\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/browsers/{id}/instruct/")
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 \"instruction\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {}
}Description
Issues a natural language instruction to the browser. AI interprets the instruction and performs the necessary interactions, such as clicking, typing, navigating, and extracting content.Authentication
Open-source deployments do not require authentication by default. If your server config enablesX-API-Key, include that header with the request.
Path Parameters
string
required
The browser ID returned from Create Session.
Request Body
string
required
A natural language description of what the browser should do.
Response
boolean
Whether the instruction was completed successfully.
object
Result of the instruction. Structure depends on the instruction and configured AI provider.
Example
curl -X POST http://localhost:8080/browsers/exc-b9534e98-c3ce-4d1b-9671-b563ac66adc3/instruct/ \
-H "Content-Type: application/json" \
-d '{ "instruction": "Find the main heading and summarize the page" }'

