Resume a Scraper Studio job
curl --request POST \
--url https://api.brightdata.com/dca/jobs/{job_id}/resume \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.brightdata.com/dca/jobs/{job_id}/resume"
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}/resume', 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}/resume",
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}/resume"
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}/resume")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/dca/jobs/{job_id}/resume")
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
Resume a Scraper Studio job
POST /dca/jobs//resume restarts a paused Bright Data Scraper Studio job. The job moves back to running and returns the plain text response OK.
POST
/
dca
/
jobs
/
{job_id}
/
resume
Resume a Scraper Studio job
curl --request POST \
--url https://api.brightdata.com/dca/jobs/{job_id}/resume \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.brightdata.com/dca/jobs/{job_id}/resume"
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}/resume', 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}/resume",
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}/resume"
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}/resume")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/dca/jobs/{job_id}/resume")
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"Restart a paused Bright Data Scraper Studio job. The job continues processing its remaining inputs and moves back to
Completed jobs cannot be paused, resumed or canceled.
Use the returned
running.
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.
Resume works only on a job in the
paused state, which means a job stopped with Pause a Scraper Studio job. A canceled job cannot be resumed, and neither can a completed one.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 resume: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
- Continue a batch you paused during a target site incident, once the site is stable again
- Restart paused jobs at the end of a maintenance window
- Resume after adjusting country, session or concurrency settings in response to blocking
Related
- Pause a Scraper Studio job: the endpoint that puts a job into the
pausedstate - Cancel a Scraper Studio job: stop a paused job permanently instead of resuming it
- List Scraper Studio jobs: find the
job_idto pass to this endpoint - Get job metadata: confirm the job returned to
running
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 resume
Response
Job resumed successfully
The response is of type string.
Was this page helpful?