curl --request POST \
--url https://catchall.newscatcherapi.com/catchAll/monitors/create \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"reference_job_id": "5f0c9087-85cb-4917-b3c7-e5a5eff73a0c",
"schedule": "every day at 12 PM",
"timezone": "UTC",
"backfill": true,
"limit": 10,
"webhook_ids": [
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
]
}
'import requests
url = "https://catchall.newscatcherapi.com/catchAll/monitors/create"
payload = {
"reference_job_id": "5f0c9087-85cb-4917-b3c7-e5a5eff73a0c",
"schedule": "every day at 12 PM",
"timezone": "UTC",
"backfill": True,
"limit": 10,
"webhook_ids": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"]
}
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({
reference_job_id: '5f0c9087-85cb-4917-b3c7-e5a5eff73a0c',
schedule: 'every day at 12 PM',
timezone: 'UTC',
backfill: true,
limit: 10,
webhook_ids: ['a1b2c3d4-e5f6-7890-abcd-ef1234567890']
})
};
fetch('https://catchall.newscatcherapi.com/catchAll/monitors/create', 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://catchall.newscatcherapi.com/catchAll/monitors/create",
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([
'reference_job_id' => '5f0c9087-85cb-4917-b3c7-e5a5eff73a0c',
'schedule' => 'every day at 12 PM',
'timezone' => 'UTC',
'backfill' => true,
'limit' => 10,
'webhook_ids' => [
'a1b2c3d4-e5f6-7890-abcd-ef1234567890'
]
]),
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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://catchall.newscatcherapi.com/catchAll/monitors/create"
payload := strings.NewReader("{\n \"reference_job_id\": \"5f0c9087-85cb-4917-b3c7-e5a5eff73a0c\",\n \"schedule\": \"every day at 12 PM\",\n \"timezone\": \"UTC\",\n \"backfill\": true,\n \"limit\": 10,\n \"webhook_ids\": [\n \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"\n ]\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))
}HttpResponse<String> response = Unirest.post("https://catchall.newscatcherapi.com/catchAll/monitors/create")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"reference_job_id\": \"5f0c9087-85cb-4917-b3c7-e5a5eff73a0c\",\n \"schedule\": \"every day at 12 PM\",\n \"timezone\": \"UTC\",\n \"backfill\": true,\n \"limit\": 10,\n \"webhook_ids\": [\n \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://catchall.newscatcherapi.com/catchAll/monitors/create")
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 \"reference_job_id\": \"5f0c9087-85cb-4917-b3c7-e5a5eff73a0c\",\n \"schedule\": \"every day at 12 PM\",\n \"timezone\": \"UTC\",\n \"backfill\": true,\n \"limit\": 10,\n \"webhook_ids\": [\n \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"monitor_id": "7f3a8b2c-1e4d-4a5b-9c8d-6e7f8a9b0c1d",
"status": "Monitor Created Successfully"
}{
"detail": "X-API-Key header is required for this endpoint"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Create event monitor
Create a scheduled event monitor based on a reference job.
curl --request POST \
--url https://catchall.newscatcherapi.com/catchAll/monitors/create \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"reference_job_id": "5f0c9087-85cb-4917-b3c7-e5a5eff73a0c",
"schedule": "every day at 12 PM",
"timezone": "UTC",
"backfill": true,
"limit": 10,
"webhook_ids": [
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
]
}
'import requests
url = "https://catchall.newscatcherapi.com/catchAll/monitors/create"
payload = {
"reference_job_id": "5f0c9087-85cb-4917-b3c7-e5a5eff73a0c",
"schedule": "every day at 12 PM",
"timezone": "UTC",
"backfill": True,
"limit": 10,
"webhook_ids": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"]
}
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({
reference_job_id: '5f0c9087-85cb-4917-b3c7-e5a5eff73a0c',
schedule: 'every day at 12 PM',
timezone: 'UTC',
backfill: true,
limit: 10,
webhook_ids: ['a1b2c3d4-e5f6-7890-abcd-ef1234567890']
})
};
fetch('https://catchall.newscatcherapi.com/catchAll/monitors/create', 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://catchall.newscatcherapi.com/catchAll/monitors/create",
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([
'reference_job_id' => '5f0c9087-85cb-4917-b3c7-e5a5eff73a0c',
'schedule' => 'every day at 12 PM',
'timezone' => 'UTC',
'backfill' => true,
'limit' => 10,
'webhook_ids' => [
'a1b2c3d4-e5f6-7890-abcd-ef1234567890'
]
]),
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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://catchall.newscatcherapi.com/catchAll/monitors/create"
payload := strings.NewReader("{\n \"reference_job_id\": \"5f0c9087-85cb-4917-b3c7-e5a5eff73a0c\",\n \"schedule\": \"every day at 12 PM\",\n \"timezone\": \"UTC\",\n \"backfill\": true,\n \"limit\": 10,\n \"webhook_ids\": [\n \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"\n ]\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))
}HttpResponse<String> response = Unirest.post("https://catchall.newscatcherapi.com/catchAll/monitors/create")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"reference_job_id\": \"5f0c9087-85cb-4917-b3c7-e5a5eff73a0c\",\n \"schedule\": \"every day at 12 PM\",\n \"timezone\": \"UTC\",\n \"backfill\": true,\n \"limit\": 10,\n \"webhook_ids\": [\n \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://catchall.newscatcherapi.com/catchAll/monitors/create")
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 \"reference_job_id\": \"5f0c9087-85cb-4917-b3c7-e5a5eff73a0c\",\n \"schedule\": \"every day at 12 PM\",\n \"timezone\": \"UTC\",\n \"backfill\": true,\n \"limit\": 10,\n \"webhook_ids\": [\n \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"monitor_id": "7f3a8b2c-1e4d-4a5b-9c8d-6e7f8a9b0c1d",
"status": "Monitor Created Successfully"
}{
"detail": "X-API-Key header is required for this endpoint"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
API key for authentication.
Body
Event monitor schedule in plain text format. Minimum frequency depends on your plan.
"every day at 12 PM UTC"
The IANA timezone identifier used as the fallback when the schedule string does not include an explicit timezone.
If the schedule includes a timezone abbreviation (for example, "every day at 9am EST"), the parsed timezone takes priority and this value is ignored.
"America/New_York"
IDs of centralized webhooks to notify on each run completion.
Passing IDs here is equivalent to calling
POST /catchAll/webhooks/{webhook_id}/resources for each ID after creation.
Maximum 5 per event monitor.
["a1b2c3d4-e5f6-7890-abcd-ef1234567890"]
Maximum number of records per event monitor run. If not provided, defaults to the plan limit.
x >= 10If true, fills the data gap between the reference job's end_date and the first scheduled run. The reference job's end_date must be within the last 7 days.
If false, no gap filling occurs and the first run uses the current cron window only — the reference job's age does not matter.
Project to assign this event monitor to. The event monitor appears in the project's resource list after creation.
"60a85db4-78ec-4b78-876a-bc7d9cdadd04"
Was this page helpful?

