curl --request POST \
--url https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"schedule_state": "paused"
}
'import requests
url = "https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state"
payload = { "schedule_state": "paused" }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({schedule_state: 'paused'})
};
fetch('https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state';
const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({schedule_state: 'paused'})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state"
payload := strings.NewReader("{\n \"schedule_state\": \"paused\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state",
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([
'schedule_state' => 'paused'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"schedule_state\": \"paused\"\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"schedule_state\": \"paused\"\n}")
.asString();{
"job_id": "01M4E06YS7BDRECVN5QRHJA6HR",
"type": "scheduled",
"status": "closed",
"format": "markdown",
"zenrows_params": {
"response_type": "markdown"
},
"created_at": "2026-10-08T14:55:52Z",
"updated_at": "2026-10-08T14:55:52Z",
"latest_run": {
"run_id": "01M4E06YS7VZPY4G25DV6FR3B8",
"job_id": "01M4E06YS7BDRECVN5QRHJA6HR",
"run_sequence": 1,
"status": "completed",
"trigger": "manual",
"last_batch_received": false,
"stats": {
"total": 3,
"completed": 3,
"successful": 3,
"failed": 0,
"spend": {
"credits": 3,
"cost": 0.00027
}
},
"created_at": "2026-10-08T14:55:52Z",
"updated_at": "2026-10-08T14:56:06Z"
},
"schedule": {
"calendar": {
"times_of_day": [
"09:00",
"18:00"
],
"cadence": {
"weekly": {
"days": [
"mon",
"wed",
"fri"
]
}
}
},
"timezone": "Europe/Berlin"
},
"schedule_state": "paused",
"next_scheduled_run": "2026-10-16T07:00:00Z"
}{
"code": "invalid_argument",
"detail": "Validation failed.",
"instance": "/v1",
"status": 400,
"title": "Validation failed (invalid_argument)",
"type": "https://docs.zenrows.com/api-error-codes#invalid_argument"
}{
"code": "unauthenticated",
"detail": "Invalid API key.",
"instance": "/v1",
"status": 401,
"title": "Unauthenticated (unauthenticated)",
"type": "https://docs.zenrows.com/api-error-codes#unauthenticated"
}{
"code": "payment_required",
"detail": "No credits available.",
"instance": "/v1",
"status": 402,
"title": "No credits available (payment_required)",
"type": "https://docs.zenrows.com/api-error-codes#payment_required"
}{
"code": "quota_exceeded",
"detail": "Too many active jobs.",
"instance": "/v1",
"status": 429,
"title": "Too many active jobs (quota_exceeded)",
"type": "https://docs.zenrows.com/api-error-codes#quota_exceeded"
}{
"code": "internal",
"detail": "Temporary failure, retry with backoff.",
"instance": "/v1",
"status": 503,
"title": "Temporary failure, retry with backoff (internal)",
"type": "https://docs.zenrows.com/api-error-codes#internal"
}Pause or resume a schedule
Turn a scheduled job’s future runs off or on without deleting its schedule. Separate from pausing a run (pauseBatchRun).
curl --request POST \
--url https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"schedule_state": "paused"
}
'import requests
url = "https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state"
payload = { "schedule_state": "paused" }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({schedule_state: 'paused'})
};
fetch('https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state';
const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({schedule_state: 'paused'})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state"
payload := strings.NewReader("{\n \"schedule_state\": \"paused\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state",
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([
'schedule_state' => 'paused'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"schedule_state\": \"paused\"\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("https://async.api.zenrows.com/v1/jobs/{job_id}/schedule/state")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"schedule_state\": \"paused\"\n}")
.asString();{
"job_id": "01M4E06YS7BDRECVN5QRHJA6HR",
"type": "scheduled",
"status": "closed",
"format": "markdown",
"zenrows_params": {
"response_type": "markdown"
},
"created_at": "2026-10-08T14:55:52Z",
"updated_at": "2026-10-08T14:55:52Z",
"latest_run": {
"run_id": "01M4E06YS7VZPY4G25DV6FR3B8",
"job_id": "01M4E06YS7BDRECVN5QRHJA6HR",
"run_sequence": 1,
"status": "completed",
"trigger": "manual",
"last_batch_received": false,
"stats": {
"total": 3,
"completed": 3,
"successful": 3,
"failed": 0,
"spend": {
"credits": 3,
"cost": 0.00027
}
},
"created_at": "2026-10-08T14:55:52Z",
"updated_at": "2026-10-08T14:56:06Z"
},
"schedule": {
"calendar": {
"times_of_day": [
"09:00",
"18:00"
],
"cadence": {
"weekly": {
"days": [
"mon",
"wed",
"fri"
]
}
}
},
"timezone": "Europe/Berlin"
},
"schedule_state": "paused",
"next_scheduled_run": "2026-10-16T07:00:00Z"
}{
"code": "invalid_argument",
"detail": "Validation failed.",
"instance": "/v1",
"status": 400,
"title": "Validation failed (invalid_argument)",
"type": "https://docs.zenrows.com/api-error-codes#invalid_argument"
}{
"code": "unauthenticated",
"detail": "Invalid API key.",
"instance": "/v1",
"status": 401,
"title": "Unauthenticated (unauthenticated)",
"type": "https://docs.zenrows.com/api-error-codes#unauthenticated"
}{
"code": "payment_required",
"detail": "No credits available.",
"instance": "/v1",
"status": 402,
"title": "No credits available (payment_required)",
"type": "https://docs.zenrows.com/api-error-codes#payment_required"
}{
"code": "quota_exceeded",
"detail": "Too many active jobs.",
"instance": "/v1",
"status": 429,
"title": "Too many active jobs (quota_exceeded)",
"type": "https://docs.zenrows.com/api-error-codes#quota_exceeded"
}{
"code": "internal",
"detail": "Temporary failure, retry with backoff.",
"instance": "/v1",
"status": 503,
"title": "Temporary failure, retry with backoff (internal)",
"type": "https://docs.zenrows.com/api-error-codes#internal"
}Authorizations
Batch, Crawl, the Extract endpoints and the account endpoint read the same key from the X-API-Key header.
Path Parameters
Identifier returned when the job was created.
Body
active, paused Response
The job with its new schedule_state.
A batch job and the state of its most recent run.
Identifier to poll and to collect results with.
regular, scheduled Whether the job still accepts new tasks; deleted while a deletion completes.
open, closed, deleted The content format the tasks return, from zenrows_params.
"html"
"markdown"
"plaintext"
"json"
"pdf"
The Fetch parameters applied to every task.
Exactly one of at, rate or calendar, plus timezone for at and calendar. Times of day are full hours; runs are at least 60 minutes apart.
Show child attributes
Show child attributes
Scheduled jobs only.
active, paused Scheduled jobs only.
Where run notifications (run.completed, run.failed) are delivered.
Show child attributes
Show child attributes
One run of a job.
Show child attributes
Show child attributes
Was this page helpful?