curl --request POST \
--url https://api.olostep.com/v1/monitors/{monitor_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"frequency": "<string>",
"metadata": {},
"notification": {
"events": [],
"channels": [
{
"target": "<string>",
"events": []
}
]
},
"webhook": {
"url": "<string>"
}
}
'import requests
url = "https://api.olostep.com/v1/monitors/{monitor_id}"
payload = {
"frequency": "<string>",
"metadata": {},
"notification": {
"events": [],
"channels": [
{
"target": "<string>",
"events": []
}
]
},
"webhook": { "url": "<string>" }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
frequency: '<string>',
metadata: {},
notification: {events: [], channels: [{target: '<string>', events: []}]},
webhook: {url: '<string>'}
})
};
fetch('https://api.olostep.com/v1/monitors/{monitor_id}', 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.olostep.com/v1/monitors/{monitor_id}",
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([
'frequency' => '<string>',
'metadata' => [
],
'notification' => [
'events' => [
],
'channels' => [
[
'target' => '<string>',
'events' => [
]
]
]
],
'webhook' => [
'url' => '<string>'
]
]),
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.olostep.com/v1/monitors/{monitor_id}"
payload := strings.NewReader("{\n \"frequency\": \"<string>\",\n \"metadata\": {},\n \"notification\": {\n \"events\": [],\n \"channels\": [\n {\n \"target\": \"<string>\",\n \"events\": []\n }\n ]\n },\n \"webhook\": {\n \"url\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.olostep.com/v1/monitors/{monitor_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"frequency\": \"<string>\",\n \"metadata\": {},\n \"notification\": {\n \"events\": [],\n \"channels\": [\n {\n \"target\": \"<string>\",\n \"events\": []\n }\n ]\n },\n \"webhook\": {\n \"url\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.olostep.com/v1/monitors/{monitor_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"frequency\": \"<string>\",\n \"metadata\": {},\n \"notification\": {\n \"events\": [],\n \"channels\": [\n {\n \"target\": \"<string>\",\n \"events\": []\n }\n ]\n },\n \"webhook\": {\n \"url\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"object": "monitor",
"query": "<string>",
"tracked": {
"type": "<string>",
"urls": [
"<string>"
],
"web_query": "<string>"
},
"source_policy": {
"include_urls": [
"<string>"
],
"exclude_urls": [
"<string>"
],
"include_domains": [
"<string>"
],
"exclude_domains": [
"<string>"
]
},
"schedule": {
"frequency": "<string>",
"cron": "<string>",
"timezone": "UTC",
"next_run_at": "2023-11-07T05:31:56Z"
},
"notification": {
"events": [],
"channels": [
{
"target": "<string>",
"events": []
}
]
},
"webhook": {
"url": "<string>"
},
"output_schema": {},
"error_message": "<string>",
"last_run": {
"id": "<string>",
"status": "completed",
"change_detected": true,
"ran_at": "2023-11-07T05:31:56Z"
},
"agent": {
"id": "<string>"
},
"metadata": {},
"created": 123,
"updated": 123,
"total_count": 123,
"mermaid_diagram": "<string>"
}{
"error": "<string>",
"monitor_id": "<string>"
}{
"error": "<string>",
"monitor_id": "<string>"
}Update Monitor
Updates frequency, metadata, notification, and/or webhook. Frequency changes recreate the schedule. Returns 409 while status is provisioning.
curl --request POST \
--url https://api.olostep.com/v1/monitors/{monitor_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"frequency": "<string>",
"metadata": {},
"notification": {
"events": [],
"channels": [
{
"target": "<string>",
"events": []
}
]
},
"webhook": {
"url": "<string>"
}
}
'import requests
url = "https://api.olostep.com/v1/monitors/{monitor_id}"
payload = {
"frequency": "<string>",
"metadata": {},
"notification": {
"events": [],
"channels": [
{
"target": "<string>",
"events": []
}
]
},
"webhook": { "url": "<string>" }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
frequency: '<string>',
metadata: {},
notification: {events: [], channels: [{target: '<string>', events: []}]},
webhook: {url: '<string>'}
})
};
fetch('https://api.olostep.com/v1/monitors/{monitor_id}', 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.olostep.com/v1/monitors/{monitor_id}",
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([
'frequency' => '<string>',
'metadata' => [
],
'notification' => [
'events' => [
],
'channels' => [
[
'target' => '<string>',
'events' => [
]
]
]
],
'webhook' => [
'url' => '<string>'
]
]),
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.olostep.com/v1/monitors/{monitor_id}"
payload := strings.NewReader("{\n \"frequency\": \"<string>\",\n \"metadata\": {},\n \"notification\": {\n \"events\": [],\n \"channels\": [\n {\n \"target\": \"<string>\",\n \"events\": []\n }\n ]\n },\n \"webhook\": {\n \"url\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.olostep.com/v1/monitors/{monitor_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"frequency\": \"<string>\",\n \"metadata\": {},\n \"notification\": {\n \"events\": [],\n \"channels\": [\n {\n \"target\": \"<string>\",\n \"events\": []\n }\n ]\n },\n \"webhook\": {\n \"url\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.olostep.com/v1/monitors/{monitor_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"frequency\": \"<string>\",\n \"metadata\": {},\n \"notification\": {\n \"events\": [],\n \"channels\": [\n {\n \"target\": \"<string>\",\n \"events\": []\n }\n ]\n },\n \"webhook\": {\n \"url\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"object": "monitor",
"query": "<string>",
"tracked": {
"type": "<string>",
"urls": [
"<string>"
],
"web_query": "<string>"
},
"source_policy": {
"include_urls": [
"<string>"
],
"exclude_urls": [
"<string>"
],
"include_domains": [
"<string>"
],
"exclude_domains": [
"<string>"
]
},
"schedule": {
"frequency": "<string>",
"cron": "<string>",
"timezone": "UTC",
"next_run_at": "2023-11-07T05:31:56Z"
},
"notification": {
"events": [],
"channels": [
{
"target": "<string>",
"events": []
}
]
},
"webhook": {
"url": "<string>"
},
"output_schema": {},
"error_message": "<string>",
"last_run": {
"id": "<string>",
"status": "completed",
"change_detected": true,
"ran_at": "2023-11-07T05:31:56Z"
},
"agent": {
"id": "<string>"
},
"metadata": {},
"created": 123,
"updated": 123,
"total_count": 123,
"mermaid_diagram": "<string>"
}{
"error": "<string>",
"monitor_id": "<string>"
}{
"error": "<string>",
"monitor_id": "<string>"
}"" are deleted.Authorizations
Bearer authentication header of the form Bearer , where is your auth token.
Path Parameters
^monitor_Body
Response
Monitor updated.
Unique monitor identifier (monitor_…).
"monitor"
Monitoring intent in natural language.
Resolved targets the monitor tracks after planning completes.
Show child attributes
Show child attributes
Optional URL/domain allow and deny lists applied during planning and execution.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Optional JSON Schema for structured extraction output.
Monitor lifecycle status.
provisioning, active, paused, failed, deleted Present when status is failed.
Latest snapshot summary. Included on GET /v1/monitors/{monitor_id}.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Unix timestamp (seconds).
Unix timestamp (seconds).
Total snapshot count. Included on GET /v1/monitors/{monitor_id} unless include_total_count=false.
Mermaid flowchart of the monitor DAG. Included when include-diagram=true on get.
Was this page helpful?