Documentation Index
Fetch the complete documentation index at: https://docs.olostep.com/llms.txt
Use this file to discover all available pages before exploring further.
Über den Olostep /v1/monitors Endpunkt kannst du persistente Monitore erstellen, die nach einem festen Zeitplan laufen, Seitenänderungen erkennen und dich per E-Mail oder Webhook benachrichtigen.
- Erstelle einen Monitor aus einer
query, einer url oder beidem
- Führe Überprüfungen stündlich, täglich oder wöchentlich durch
- Sende Benachrichtigungen entweder an
email oder webhook_url
- Liste, inspiziere, aktualisiere und lösche Monitore
- Lies Monitor-Snapshot-Ereignisse aus privaten Snapshots
Installation
# pip install requests
import requests
Erstelle einen Monitor
Erstelle einen Monitor mit POST /v1/monitors. Der Endpunkt validiert deine Eingaben, stellt den Monitor bereit, erstellt seinen internen Zeitplan und gibt ein aktives Monitorobjekt zurück.
Mindestens eine von query oder url ist erforderlich. Genau ein Benachrichtigungsziel ist erforderlich: entweder email oder webhook_url.
Beispielanfrage
import requests
import json
API_KEY = "<YOUR_API_KEY>"
API_URL = "https://api.olostep.com/v1"
payload = {
"query": "Verfolge Änderungen in der Produktpreisgestaltung und Lagerinformationen",
"url": "https://example.com/products/widget-pro",
"frequency": "daily",
"email": "alerts@example.com",
"metadata": {
"product_id": "widget-pro",
"team": "growth"
}
}
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
response = requests.post(f"{API_URL}/monitors", headers=headers, json=payload)
print(response.status_code)
print(json.dumps(response.json(), indent=2))
Antwort
Erfolgreiche Monitorkreation gibt HTTP 202 mit einem Monitorobjekt zurück:
{
"id": "monitor_n8q2x4m1ak",
"object": "monitor",
"status": "active",
"schedule_id": "schedule_r4h9n2j7",
"query": "Verfolge Änderungen in der Produktpreisgestaltung und Lagerinformationen",
"url": "https://example.com/products/widget-pro",
"frequency": "daily",
"cron_expression": "0 0 * * ? *",
"notification_channel": "email",
"notification_target": "alerts@example.com",
"metadata": {
"product_id": "widget-pro",
"team": "growth"
},
"created": 1745673871,
"updated": 1745673871
}
Benachrichtigungskanäle
Monitore unterstützen einen Kanal pro Monitor:
email: setze ein email Feld
webhook: setze ein webhook_url Feld
Du kannst nicht beide in einer Anfrage setzen.
Webhook-Beispiel
{
"query": "Beobachte Änderungen in den rechtlichen Bedingungen",
"url": "https://example.com/terms",
"frequency": "weekly",
"webhook_url": "https://hooks.example.com/olostep-monitor"
}
Frequenzen
Unterstützte Monitorfrequenzen sind:
Die API leitet den Zeitplan-Cron-Ausdruck automatisch aus der gewählten Frequenz ab.
Liste Monitore
Rufe alle Monitore für dein Team mit GET /v1/monitors ab.
Standardmäßig werden gelöschte Monitore herausgefiltert. Verwende ?include_deleted=true, um sie einzuschließen.
import requests
import json
API_KEY = "<YOUR_API_KEY>"
API_URL = "https://api.olostep.com/v1"
headers = {
"Authorization": f"Bearer {API_KEY}"
}
response = requests.get(f"{API_URL}/monitors", headers=headers)
result = response.json()
print(f"Gesamtanzahl Monitore: {result['count']}")
print(json.dumps(result, indent=2))
Hole einen Monitor
Rufe einen einzelnen Monitor mit GET /v1/monitors/:monitor_id ab.
import requests
import json
API_KEY = "<YOUR_API_KEY>"
API_URL = "https://api.olostep.com/v1"
MONITOR_ID = "monitor_n8q2x4m1ak"
headers = {
"Authorization": f"Bearer {API_KEY}"
}
response = requests.get(f"{API_URL}/monitors/{MONITOR_ID}", headers=headers)
print(json.dumps(response.json(), indent=2))
Liste Monitor-Ereignisse
Verwende GET /v1/monitors/:monitor_id/events, um Snapshot-Ereignisse für einen Monitor aufzulisten.
Dieser Endpunkt unterstützt Paginierung:
limit (Standard 25, max 100)
cursor (undurchsichtiger Paginierungstoken aus einer vorherigen Antwort)
Ereignisse werden neueste zuerst zurückgegeben. Jedes Element enthält eine kurzlebige, vorab signierte snapshot_url, damit du private Snapshot-Inhalte sicher abrufen kannst.
Beispiel
import requests
import json
API_KEY = "<YOUR_API_KEY>"
API_URL = "https://api.olostep.com/v1"
MONITOR_ID = "monitor_n8q2x4m1ak"
headers = {
"Authorization": f"Bearer {API_KEY}"
}
response = requests.get(
f"{API_URL}/monitors/{MONITOR_ID}/events?limit=10",
headers=headers
)
print(json.dumps(response.json(), indent=2))
{
"data": [
{
"id": "run_v7k2p9m3",
"run_id": "run_v7k2p9m3",
"created": 1777960800,
"changed": true,
"summary": "Preis änderte sich von $49 auf $45 und Lagerbestand ging auf niedrige Verfügbarkeit.",
"snapshot_url": "https://olostep-monitor-snapshot.s3.amazonaws.com/private/key?...signature..."
}
],
"has_more": false,
"next_cursor": null
}
Wenn cursor fehlerhaft ist, gibt der Endpunkt zurück:
{
"error": "Ungültiger Cursor."
}
Aktualisiere einen Monitor
Aktualisiere einen Monitor mit POST /v1/monitors/:monitor_id.
Unterstützte Aktualisierungen:
metadata (wird mit vorhandenen Metadaten zusammengeführt; leere Zeichenfolgenwerte übergeben, um Schlüssel zu löschen)
frequency (hourly, daily, weekly)
Wenn du frequency aktualisierst, erstellt die API den Monitor-Zeitplan intern neu.
Beispielanfrage
import requests
import json
API_KEY = "<YOUR_API_KEY>"
API_URL = "https://api.olostep.com/v1"
MONITOR_ID = "monitor_n8q2x4m1ak"
payload = {
"frequency": "hourly",
"metadata": {
"owner": "ops-team",
"deprecated_field": ""
}
}
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
response = requests.post(
f"{API_URL}/monitors/{MONITOR_ID}",
headers=headers,
json=payload
)
print(json.dumps(response.json(), indent=2))
Lösche einen Monitor
Lösche einen Monitor mit DELETE /v1/monitors/:monitor_id.
Das Löschen ist weich für die Monitorzeile (status wird deleted) und entfernt auch interne Planungs-/Schattenagenten-Ressourcen, die mit diesem Monitor verbunden sind.
import requests
import json
API_KEY = "<YOUR_API_KEY>"
API_URL = "https://api.olostep.com/v1"
MONITOR_ID = "monitor_n8q2x4m1ak"
headers = {
"Authorization": f"Bearer {API_KEY}"
}
response = requests.delete(f"{API_URL}/monitors/{MONITOR_ID}", headers=headers)
print(json.dumps(response.json(), indent=2))
Häufige Validierungsfehler
Die Monitor-Endpunkte geben klare Validierungsfehler für häufige ungültige Anfragen zurück:
- Fehlen von sowohl
query als auch url
- Fehlen von
frequency oder nicht unterstützter Frequenzwert
- Fehlen von sowohl
email als auch webhook_url
- Bereitstellung von sowohl
email als auch webhook_url
- Ungültiges E-Mail-Format
- Ungültige Webhook-URL (muss
http oder https sein)
- Ungültiges
monitor_id Format
Beispiel Fehler:
{
"error": "'frequency' muss eine der folgenden sein: hourly, daily, weekly."
}