curl --request POST \
--url https://api.anchorbrowser.io/v1/task \
--header 'Content-Type: application/json' \
--header 'anchor-api-key: <api-key>' \
--data '
{
"name": "web-scraper",
"language": "typescript"
}
'import requests
url = "https://api.anchorbrowser.io/v1/task"
payload = {
"name": "web-scraper",
"language": "typescript"
}
headers = {
"anchor-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'anchor-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'web-scraper', language: 'typescript'})
};
fetch('https://api.anchorbrowser.io/v1/task', 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.anchorbrowser.io/v1/task",
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([
'name' => 'web-scraper',
'language' => 'typescript'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"anchor-api-key: <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://api.anchorbrowser.io/v1/task"
payload := strings.NewReader("{\n \"name\": \"web-scraper\",\n \"language\": \"typescript\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("anchor-api-key", "<api-key>")
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.anchorbrowser.io/v1/task")
.header("anchor-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"web-scraper\",\n \"language\": \"typescript\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anchorbrowser.io/v1/task")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["anchor-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"web-scraper\",\n \"language\": \"typescript\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"teamId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"latestVersion": "<string>",
"code": "<string>",
"language": "typescript",
"deleted": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"browserConfiguration": {
"initial_url": "<string>",
"tags": [
"production",
"scraping",
"customer-123"
],
"recording": {
"active": true
},
"proxy": {
"active": true,
"type": "anchor_proxy",
"country_code": "us",
"region": "<string>",
"city": "<string>"
},
"timeout": {
"max_duration": 123,
"idle_timeout": 123
},
"live_view": {
"read_only": true,
"one_time_url": true
},
"x402": false
}
}
}{
"error": {
"code": 123,
"message": "<string>"
}
}{
"error": {
"code": 123,
"message": "<string>"
}
}{
"error": {
"code": 123,
"message": "<string>"
}
}Create Task (Legacy)
Creates a new task or updates an existing task with the same name. Tasks are reusable code snippets that can be executed in browser sessions. Tasks support versioning with draft and published versions.
If you are using the new Task Builder, see the non-deprecated Tasks endpoints in this API reference.
curl --request POST \
--url https://api.anchorbrowser.io/v1/task \
--header 'Content-Type: application/json' \
--header 'anchor-api-key: <api-key>' \
--data '
{
"name": "web-scraper",
"language": "typescript"
}
'import requests
url = "https://api.anchorbrowser.io/v1/task"
payload = {
"name": "web-scraper",
"language": "typescript"
}
headers = {
"anchor-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'anchor-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'web-scraper', language: 'typescript'})
};
fetch('https://api.anchorbrowser.io/v1/task', 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.anchorbrowser.io/v1/task",
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([
'name' => 'web-scraper',
'language' => 'typescript'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"anchor-api-key: <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://api.anchorbrowser.io/v1/task"
payload := strings.NewReader("{\n \"name\": \"web-scraper\",\n \"language\": \"typescript\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("anchor-api-key", "<api-key>")
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.anchorbrowser.io/v1/task")
.header("anchor-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"web-scraper\",\n \"language\": \"typescript\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anchorbrowser.io/v1/task")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["anchor-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"web-scraper\",\n \"language\": \"typescript\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"teamId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"latestVersion": "<string>",
"code": "<string>",
"language": "typescript",
"deleted": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"browserConfiguration": {
"initial_url": "<string>",
"tags": [
"production",
"scraping",
"customer-123"
],
"recording": {
"active": true
},
"proxy": {
"active": true,
"type": "anchor_proxy",
"country_code": "us",
"region": "<string>",
"city": "<string>"
},
"timeout": {
"max_duration": 123,
"idle_timeout": 123
},
"live_view": {
"read_only": true,
"one_time_url": true
},
"x402": false
}
}
}{
"error": {
"code": 123,
"message": "<string>"
}
}{
"error": {
"code": 123,
"message": "<string>"
}
}{
"error": {
"code": 123,
"message": "<string>"
}
}Authorizations
API key for your Anchor Browser account, sent as the anchor-api-key header on every
request. Create one at app.anchorbrowser.io (API Access),
or obtain one programmatically via the unauthenticated agent-access flow
(POST /v1/agent-access).
Body
Task name (letters, numbers, hyphens, and underscores only)
1 - 255^[a-zA-Z0-9_-]+$Programming language for the task
typescript Base64 encoded task code (optional)
^[A-Za-z0-9+/]*={0,2}$Optional description of the task
1000Browser configuration for task execution
Show child attributes
Show child attributes
Response
Task created or updated successfully
Show child attributes
Show child attributes
Was this page helpful?

