curl --request POST \
--url https://api.olostep.com/v1/monitors \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"source_policy": {
"include_urls": [
"<string>"
],
"exclude_urls": [
"<string>"
],
"include_domains": [
"<string>"
],
"exclude_domains": [
"<string>"
]
},
"frequency": "every hour",
"notification": {
"events": [],
"channels": [
{
"target": "<string>",
"events": []
}
]
},
"metadata": {},
"output_schema": {}
}
'import requests
url = "https://api.olostep.com/v1/monitors"
payload = {
"query": "<string>",
"source_policy": {
"include_urls": ["<string>"],
"exclude_urls": ["<string>"],
"include_domains": ["<string>"],
"exclude_domains": ["<string>"]
},
"frequency": "every hour",
"notification": {
"events": [],
"channels": [
{
"target": "<string>",
"events": []
}
]
},
"metadata": {},
"output_schema": {}
}
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({
query: '<string>',
source_policy: {
include_urls: ['<string>'],
exclude_urls: ['<string>'],
include_domains: ['<string>'],
exclude_domains: ['<string>']
},
frequency: 'every hour',
notification: {events: [], channels: [{target: '<string>', events: []}]},
metadata: {},
output_schema: {}
})
};
fetch('https://api.olostep.com/v1/monitors', 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",
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([
'query' => '<string>',
'source_policy' => [
'include_urls' => [
'<string>'
],
'exclude_urls' => [
'<string>'
],
'include_domains' => [
'<string>'
],
'exclude_domains' => [
'<string>'
]
],
'frequency' => 'every hour',
'notification' => [
'events' => [
],
'channels' => [
[
'target' => '<string>',
'events' => [
]
]
]
],
'metadata' => [
],
'output_schema' => [
]
]),
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"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"source_policy\": {\n \"include_urls\": [\n \"<string>\"\n ],\n \"exclude_urls\": [\n \"<string>\"\n ],\n \"include_domains\": [\n \"<string>\"\n ],\n \"exclude_domains\": [\n \"<string>\"\n ]\n },\n \"frequency\": \"every hour\",\n \"notification\": {\n \"events\": [],\n \"channels\": [\n {\n \"target\": \"<string>\",\n \"events\": []\n }\n ]\n },\n \"metadata\": {},\n \"output_schema\": {}\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")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"source_policy\": {\n \"include_urls\": [\n \"<string>\"\n ],\n \"exclude_urls\": [\n \"<string>\"\n ],\n \"include_domains\": [\n \"<string>\"\n ],\n \"exclude_domains\": [\n \"<string>\"\n ]\n },\n \"frequency\": \"every hour\",\n \"notification\": {\n \"events\": [],\n \"channels\": [\n {\n \"target\": \"<string>\",\n \"events\": []\n }\n ]\n },\n \"metadata\": {},\n \"output_schema\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.olostep.com/v1/monitors")
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 \"query\": \"<string>\",\n \"source_policy\": {\n \"include_urls\": [\n \"<string>\"\n ],\n \"exclude_urls\": [\n \"<string>\"\n ],\n \"include_domains\": [\n \"<string>\"\n ],\n \"exclude_domains\": [\n \"<string>\"\n ]\n },\n \"frequency\": \"every hour\",\n \"notification\": {\n \"events\": [],\n \"channels\": [\n {\n \"target\": \"<string>\",\n \"events\": []\n }\n ]\n },\n \"metadata\": {},\n \"output_schema\": {}\n}"
response = http.request(request)
puts response.read_body"<string>"{
"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>"
}Crear Monitor
Crea un monitor a partir de una consulta en lenguaje natural. Proporciona un agente sombra, genera una especificación de flujo de trabajo, pone en cola la planificación de DAG y programa ejecuciones recurrentes. Configura la entrega con notification.channels y/o webhook. Devuelve 202 con estado de aprovisionamiento, o transmite el progreso con ?stream=1.
curl --request POST \
--url https://api.olostep.com/v1/monitors \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"source_policy": {
"include_urls": [
"<string>"
],
"exclude_urls": [
"<string>"
],
"include_domains": [
"<string>"
],
"exclude_domains": [
"<string>"
]
},
"frequency": "every hour",
"notification": {
"events": [],
"channels": [
{
"target": "<string>",
"events": []
}
]
},
"metadata": {},
"output_schema": {}
}
'import requests
url = "https://api.olostep.com/v1/monitors"
payload = {
"query": "<string>",
"source_policy": {
"include_urls": ["<string>"],
"exclude_urls": ["<string>"],
"include_domains": ["<string>"],
"exclude_domains": ["<string>"]
},
"frequency": "every hour",
"notification": {
"events": [],
"channels": [
{
"target": "<string>",
"events": []
}
]
},
"metadata": {},
"output_schema": {}
}
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({
query: '<string>',
source_policy: {
include_urls: ['<string>'],
exclude_urls: ['<string>'],
include_domains: ['<string>'],
exclude_domains: ['<string>']
},
frequency: 'every hour',
notification: {events: [], channels: [{target: '<string>', events: []}]},
metadata: {},
output_schema: {}
})
};
fetch('https://api.olostep.com/v1/monitors', 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",
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([
'query' => '<string>',
'source_policy' => [
'include_urls' => [
'<string>'
],
'exclude_urls' => [
'<string>'
],
'include_domains' => [
'<string>'
],
'exclude_domains' => [
'<string>'
]
],
'frequency' => 'every hour',
'notification' => [
'events' => [
],
'channels' => [
[
'target' => '<string>',
'events' => [
]
]
]
],
'metadata' => [
],
'output_schema' => [
]
]),
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"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"source_policy\": {\n \"include_urls\": [\n \"<string>\"\n ],\n \"exclude_urls\": [\n \"<string>\"\n ],\n \"include_domains\": [\n \"<string>\"\n ],\n \"exclude_domains\": [\n \"<string>\"\n ]\n },\n \"frequency\": \"every hour\",\n \"notification\": {\n \"events\": [],\n \"channels\": [\n {\n \"target\": \"<string>\",\n \"events\": []\n }\n ]\n },\n \"metadata\": {},\n \"output_schema\": {}\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")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"source_policy\": {\n \"include_urls\": [\n \"<string>\"\n ],\n \"exclude_urls\": [\n \"<string>\"\n ],\n \"include_domains\": [\n \"<string>\"\n ],\n \"exclude_domains\": [\n \"<string>\"\n ]\n },\n \"frequency\": \"every hour\",\n \"notification\": {\n \"events\": [],\n \"channels\": [\n {\n \"target\": \"<string>\",\n \"events\": []\n }\n ]\n },\n \"metadata\": {},\n \"output_schema\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.olostep.com/v1/monitors")
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 \"query\": \"<string>\",\n \"source_policy\": {\n \"include_urls\": [\n \"<string>\"\n ],\n \"exclude_urls\": [\n \"<string>\"\n ],\n \"include_domains\": [\n \"<string>\"\n ],\n \"exclude_domains\": [\n \"<string>\"\n ]\n },\n \"frequency\": \"every hour\",\n \"notification\": {\n \"events\": [],\n \"channels\": [\n {\n \"target\": \"<string>\",\n \"events\": []\n }\n ]\n },\n \"metadata\": {},\n \"output_schema\": {}\n}"
response = http.request(request)
puts response.read_body"<string>"{
"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>"
}Autorizaciones
Encabezado de autenticación Bearer de la forma Bearer , donde es tu token de autenticación.
Parámetros de consulta
Cuando se establece, la respuesta es text/event-stream con eventos de phase, reasoning_token, complete y error.
1, true Cuerpo
Qué monitorear, en lenguaje natural.
Listas de permitidos y denegados de URL/dominio opcionales aplicadas durante la planificación y ejecución.
Show child attributes
Show child attributes
Horario en lenguaje natural (por ejemplo, every day at 9am). El intervalo mínimo es cada 10 minutos. Los horarios usan UTC.
50Show child attributes
Show child attributes
Show child attributes
Show child attributes
Esquema JSON para la salida de extracción estructurada.
Respuesta
Flujo de aprovisionamiento (text/event-stream) cuando stream=1. Termina con un evento complete que contiene el objeto del monitor.
The response is of type string.
¿Esta página le ayudó?