Trigger AI Flow
curl --request POST \
--url https://api.brightdata.com/dca/collectors/{collector_id}/automate_template \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "Extract product data from this page",
"urls": [
"https://example.com"
]
}
'import requests
url = "https://api.brightdata.com/dca/collectors/{collector_id}/automate_template"
payload = {
"description": "Extract product data from this page",
"urls": ["https://example.com"]
}
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({
description: 'Extract product data from this page',
urls: ['https://example.com']
})
};
fetch('https://api.brightdata.com/dca/collectors/{collector_id}/automate_template', 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.brightdata.com/dca/collectors/{collector_id}/automate_template",
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([
'description' => 'Extract product data from this page',
'urls' => [
'https://example.com'
]
]),
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.brightdata.com/dca/collectors/{collector_id}/automate_template"
payload := strings.NewReader("{\n \"description\": \"Extract product data from this page\",\n \"urls\": [\n \"https://example.com\"\n ]\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.brightdata.com/dca/collectors/{collector_id}/automate_template")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"Extract product data from this page\",\n \"urls\": [\n \"https://example.com\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/dca/collectors/{collector_id}/automate_template")
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 \"description\": \"Extract product data from this page\",\n \"urls\": [\n \"https://example.com\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "ia_mnvfxano29hv58t24o",
"queued": false
}AI flow APIs
Trigger AI Flow
Use the Bright Data Scraper Studio AI Flow API to trigger AI Flow. Returns 200 OK with AI scraper template or job progress data as JSON.
POST
/
dca
/
collectors
/
{collector_id}
/
automate_template
Trigger AI Flow
curl --request POST \
--url https://api.brightdata.com/dca/collectors/{collector_id}/automate_template \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "Extract product data from this page",
"urls": [
"https://example.com"
]
}
'import requests
url = "https://api.brightdata.com/dca/collectors/{collector_id}/automate_template"
payload = {
"description": "Extract product data from this page",
"urls": ["https://example.com"]
}
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({
description: 'Extract product data from this page',
urls: ['https://example.com']
})
};
fetch('https://api.brightdata.com/dca/collectors/{collector_id}/automate_template', 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.brightdata.com/dca/collectors/{collector_id}/automate_template",
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([
'description' => 'Extract product data from this page',
'urls' => [
'https://example.com'
]
]),
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.brightdata.com/dca/collectors/{collector_id}/automate_template"
payload := strings.NewReader("{\n \"description\": \"Extract product data from this page\",\n \"urls\": [\n \"https://example.com\"\n ]\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.brightdata.com/dca/collectors/{collector_id}/automate_template")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"Extract product data from this page\",\n \"urls\": [\n \"https://example.com\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/dca/collectors/{collector_id}/automate_template")
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 \"description\": \"Extract product data from this page\",\n \"urls\": [\n \"https://example.com\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "ia_mnvfxano29hv58t24o",
"queued": false
}Authorizations
Use your Bright Data API Key as a Bearer token in the Authorization header.
How to authenticate:
- Obtain your API Key from the Bright Data account settings at https://brightdata.com/cp/setting/users
- Include the API Key in the Authorization header of your requests
- Format:
Authorization: Bearer YOUR_API_KEY
Example:
Authorization: Bearer b5648e1096c6442f60a6c4bbbe73f8d2234d3d8324554bd6a7ec8f3f251f07df
Learn how to get your Bright Data API key: https://docs.brightdata.com/api-reference/authentication
Path Parameters
Collector ID returned by the Create Scraper Template API endpoint.
Body
application/json
Was this page helpful?
⌘I