Pause a Scraper Studio job
curl --request POST \
--url https://api.brightdata.com/dca/jobs/{job_id}/pause \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.brightdata.com/dca/jobs/{job_id}/pause"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.brightdata.com/dca/jobs/{job_id}/pause', 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/jobs/{job_id}/pause",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.brightdata.com/dca/jobs/{job_id}/pause"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/jobs/{job_id}/pause")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/dca/jobs/{job_id}/pause")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body"OK"Manage jobs
Pause a Scraper Studio job
POST /dca/jobs//pause temporarily stops a running Bright Data Scraper Studio job. The job moves to paused and returns the plain text response OK.
POST
/
dca
/
jobs
/
{job_id}
/
pause
Pause a Scraper Studio job
curl --request POST \
--url https://api.brightdata.com/dca/jobs/{job_id}/pause \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.brightdata.com/dca/jobs/{job_id}/pause"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.brightdata.com/dca/jobs/{job_id}/pause', 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/jobs/{job_id}/pause",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.brightdata.com/dca/jobs/{job_id}/pause"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/jobs/{job_id}/pause")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/dca/jobs/{job_id}/pause")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body"OK"Temporarily stop a running Bright Data Scraper Studio job. The job stops processing new inputs and moves to
Completed jobs cannot be paused, resumed or canceled.
Use the returned
paused, and you can restart it later with Resume a Scraper Studio job.
This endpoint takes no request body and returns the plain text body OK on success, not JSON. Read the response as text rather than calling a JSON parser on it.
Job state behavior
| Action | Use when | Result |
|---|---|---|
| Pause | You want to temporarily stop a running job | Job moves to paused |
| Resume | You want to continue a paused job | Job moves back to running |
| Cancel | You want to stop a job permanently | Job moves to canceled |
How to find a job ID
Use the jobs list endpoint to find the ID of the job you want to pause:curl "https://api.brightdata.com/dca/collector/jobs?from_date=2026-06-01&to_date=2026-07-13" \
-H "Authorization: Bearer $BRIGHT_DATA_API_TOKEN"
id value as the job_id path parameter. See List Scraper Studio jobs for the full parameter list.
When to use this endpoint
- Hold a large batch during a target site incident, then resume once the site recovers
- Free concurrency for higher-priority work during a maintenance window
- Stop a job that is returning a high rate of
blockedordetect_blockerrors while you adjust country, session or rate settings
Related
- Resume a Scraper Studio job: restart a job paused with this endpoint
- Cancel a Scraper Studio job: stop a job permanently instead of temporarily
- List Scraper Studio jobs: find the
job_idto pass to this endpoint - Get job metadata: confirm the job status after pausing
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
ID of the job to pause
Response
Job paused successfully
The response is of type string.
Was this page helpful?