curl --request PUT \
--url https://api.brightdata.com/datasets/views/{view_id}/delivery_settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"filename": {
"extension": "json",
"template": "bd_{[datetime]}",
"tz_offset": "+00:00"
},
"flatten_csv": false,
"deliver": {
"type": "s3",
"bucket": "my-bucket",
"credentials": {
"aws-access-key": "AKIAIOSFODNN7",
"aws-secret-key": "wJalrXUtnFEMI"
},
"region": "us-east-1",
"directory": "my/directory"
},
"tar": true,
"compress": true,
"batch_size": 1000
}
'import requests
url = "https://api.brightdata.com/datasets/views/{view_id}/delivery_settings"
payload = {
"filename": {
"extension": "json",
"template": "bd_{[datetime]}",
"tz_offset": "+00:00"
},
"flatten_csv": False,
"deliver": {
"type": "s3",
"bucket": "my-bucket",
"credentials": {
"aws-access-key": "AKIAIOSFODNN7",
"aws-secret-key": "wJalrXUtnFEMI"
},
"region": "us-east-1",
"directory": "my/directory"
},
"tar": True,
"compress": True,
"batch_size": 1000
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
filename: {extension: 'json', template: 'bd_{[datetime]}', tz_offset: '+00:00'},
flatten_csv: false,
deliver: {
type: 's3',
bucket: 'my-bucket',
credentials: {'aws-access-key': 'AKIAIOSFODNN7', 'aws-secret-key': 'wJalrXUtnFEMI'},
region: 'us-east-1',
directory: 'my/directory'
},
tar: true,
compress: true,
batch_size: 1000
})
};
fetch('https://api.brightdata.com/datasets/views/{view_id}/delivery_settings', 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/datasets/views/{view_id}/delivery_settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'filename' => [
'extension' => 'json',
'template' => 'bd_{[datetime]}',
'tz_offset' => '+00:00'
],
'flatten_csv' => false,
'deliver' => [
'type' => 's3',
'bucket' => 'my-bucket',
'credentials' => [
'aws-access-key' => 'AKIAIOSFODNN7',
'aws-secret-key' => 'wJalrXUtnFEMI'
],
'region' => 'us-east-1',
'directory' => 'my/directory'
],
'tar' => true,
'compress' => true,
'batch_size' => 1000
]),
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/datasets/views/{view_id}/delivery_settings"
payload := strings.NewReader("{\n \"filename\": {\n \"extension\": \"json\",\n \"template\": \"bd_{[datetime]}\",\n \"tz_offset\": \"+00:00\"\n },\n \"flatten_csv\": false,\n \"deliver\": {\n \"type\": \"s3\",\n \"bucket\": \"my-bucket\",\n \"credentials\": {\n \"aws-access-key\": \"AKIAIOSFODNN7\",\n \"aws-secret-key\": \"wJalrXUtnFEMI\"\n },\n \"region\": \"us-east-1\",\n \"directory\": \"my/directory\"\n },\n \"tar\": true,\n \"compress\": true,\n \"batch_size\": 1000\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.brightdata.com/datasets/views/{view_id}/delivery_settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"filename\": {\n \"extension\": \"json\",\n \"template\": \"bd_{[datetime]}\",\n \"tz_offset\": \"+00:00\"\n },\n \"flatten_csv\": false,\n \"deliver\": {\n \"type\": \"s3\",\n \"bucket\": \"my-bucket\",\n \"credentials\": {\n \"aws-access-key\": \"AKIAIOSFODNN7\",\n \"aws-secret-key\": \"wJalrXUtnFEMI\"\n },\n \"region\": \"us-east-1\",\n \"directory\": \"my/directory\"\n },\n \"tar\": true,\n \"compress\": true,\n \"batch_size\": 1000\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/datasets/views/{view_id}/delivery_settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"filename\": {\n \"extension\": \"json\",\n \"template\": \"bd_{[datetime]}\",\n \"tz_offset\": \"+00:00\"\n },\n \"flatten_csv\": false,\n \"deliver\": {\n \"type\": \"s3\",\n \"bucket\": \"my-bucket\",\n \"credentials\": {\n \"aws-access-key\": \"AKIAIOSFODNN7\",\n \"aws-secret-key\": \"wJalrXUtnFEMI\"\n },\n \"region\": \"us-east-1\",\n \"directory\": \"my/directory\"\n },\n \"tar\": true,\n \"compress\": true,\n \"batch_size\": 1000\n}"
response = http.request(request)
puts response.read_body{
"view_id": "v_id1"
}{
"error": "Invalid delivery settings"
}{
"error": "View not found"
}Update view delivery settings
Set the delivery destination, credentials, filename template and batch options for a single dataset view. Returns the updated view id. Covers 250+ domains.
curl --request PUT \
--url https://api.brightdata.com/datasets/views/{view_id}/delivery_settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"filename": {
"extension": "json",
"template": "bd_{[datetime]}",
"tz_offset": "+00:00"
},
"flatten_csv": false,
"deliver": {
"type": "s3",
"bucket": "my-bucket",
"credentials": {
"aws-access-key": "AKIAIOSFODNN7",
"aws-secret-key": "wJalrXUtnFEMI"
},
"region": "us-east-1",
"directory": "my/directory"
},
"tar": true,
"compress": true,
"batch_size": 1000
}
'import requests
url = "https://api.brightdata.com/datasets/views/{view_id}/delivery_settings"
payload = {
"filename": {
"extension": "json",
"template": "bd_{[datetime]}",
"tz_offset": "+00:00"
},
"flatten_csv": False,
"deliver": {
"type": "s3",
"bucket": "my-bucket",
"credentials": {
"aws-access-key": "AKIAIOSFODNN7",
"aws-secret-key": "wJalrXUtnFEMI"
},
"region": "us-east-1",
"directory": "my/directory"
},
"tar": True,
"compress": True,
"batch_size": 1000
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
filename: {extension: 'json', template: 'bd_{[datetime]}', tz_offset: '+00:00'},
flatten_csv: false,
deliver: {
type: 's3',
bucket: 'my-bucket',
credentials: {'aws-access-key': 'AKIAIOSFODNN7', 'aws-secret-key': 'wJalrXUtnFEMI'},
region: 'us-east-1',
directory: 'my/directory'
},
tar: true,
compress: true,
batch_size: 1000
})
};
fetch('https://api.brightdata.com/datasets/views/{view_id}/delivery_settings', 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/datasets/views/{view_id}/delivery_settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'filename' => [
'extension' => 'json',
'template' => 'bd_{[datetime]}',
'tz_offset' => '+00:00'
],
'flatten_csv' => false,
'deliver' => [
'type' => 's3',
'bucket' => 'my-bucket',
'credentials' => [
'aws-access-key' => 'AKIAIOSFODNN7',
'aws-secret-key' => 'wJalrXUtnFEMI'
],
'region' => 'us-east-1',
'directory' => 'my/directory'
],
'tar' => true,
'compress' => true,
'batch_size' => 1000
]),
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/datasets/views/{view_id}/delivery_settings"
payload := strings.NewReader("{\n \"filename\": {\n \"extension\": \"json\",\n \"template\": \"bd_{[datetime]}\",\n \"tz_offset\": \"+00:00\"\n },\n \"flatten_csv\": false,\n \"deliver\": {\n \"type\": \"s3\",\n \"bucket\": \"my-bucket\",\n \"credentials\": {\n \"aws-access-key\": \"AKIAIOSFODNN7\",\n \"aws-secret-key\": \"wJalrXUtnFEMI\"\n },\n \"region\": \"us-east-1\",\n \"directory\": \"my/directory\"\n },\n \"tar\": true,\n \"compress\": true,\n \"batch_size\": 1000\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.brightdata.com/datasets/views/{view_id}/delivery_settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"filename\": {\n \"extension\": \"json\",\n \"template\": \"bd_{[datetime]}\",\n \"tz_offset\": \"+00:00\"\n },\n \"flatten_csv\": false,\n \"deliver\": {\n \"type\": \"s3\",\n \"bucket\": \"my-bucket\",\n \"credentials\": {\n \"aws-access-key\": \"AKIAIOSFODNN7\",\n \"aws-secret-key\": \"wJalrXUtnFEMI\"\n },\n \"region\": \"us-east-1\",\n \"directory\": \"my/directory\"\n },\n \"tar\": true,\n \"compress\": true,\n \"batch_size\": 1000\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/datasets/views/{view_id}/delivery_settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"filename\": {\n \"extension\": \"json\",\n \"template\": \"bd_{[datetime]}\",\n \"tz_offset\": \"+00:00\"\n },\n \"flatten_csv\": false,\n \"deliver\": {\n \"type\": \"s3\",\n \"bucket\": \"my-bucket\",\n \"credentials\": {\n \"aws-access-key\": \"AKIAIOSFODNN7\",\n \"aws-secret-key\": \"wJalrXUtnFEMI\"\n },\n \"region\": \"us-east-1\",\n \"directory\": \"my/directory\"\n },\n \"tar\": true,\n \"compress\": true,\n \"batch_size\": 1000\n}"
response = http.request(request)
puts response.read_body{
"view_id": "v_id1"
}{
"error": "Invalid delivery settings"
}{
"error": "View not found"
}deliver.type field selects the destination and the remaining fields inside deliver must match the schema returned by Get destination type schema for that destination.
How to update a view
- Call Get delivery options to confirm the destination type is supported.
- Call Get destination type schema with that destination type to get the required fields.
- Send the
PUTrequest documented on this page with thedeliverobject populated.
tar: true bundles all output files into a single TAR archive. Setting compress: true gzips each delivered file. Both can be combined.batch_size is the maximum number of records per output file. Use it to split large deliveries into smaller files. The maximum per-batch size is 5 GB.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 YOUR_API_KEY
Learn how to get your Bright Data API key: https://docs.brightdata.com/api-reference/authentication
Path Parameters
Unique identifier for the dataset view.
"v_id1"
Body
Delivery configuration for a dataset view. Used by the view delivery settings GET, PUT and bulk PUT endpoints.
Delivery destination configuration. The type field selects the destination (for example s3, sftp, webhook) and the remaining fields depend on the destination schema returned by /datasets/delivery_settings/{destination_type}/schema.
- Microsoft Azure
- Build
- Email
- Google Cloud
- Google Cloud PubSub
- Amazon S3
- SFTP
- Snowflake
- Webhook
- Aliyun Object Storage Service
Show child attributes
Show child attributes
Configuration for the output file name and format.
Show child attributes
Show child attributes
When true, nested fields are flattened for CSV output.
When true, delivered files are bundled into a TAR archive.
When true, delivered files are gzip compressed.
Maximum records per batch file. Use to split large deliveries into smaller files. Maximum batch size is 5GB.
1000
Response
View delivery settings updated
Was this page helpful?