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.
Via de Olostep /v1/monitors endpoint kun je persistente monitors creëren die op een vast schema draaien, paginawijzigingen detecteren en je via e-mail of webhook op de hoogte stellen.
- Creëer een monitor vanuit een
query, een url, of beide
- Voer controles uit per uur, dagelijks, of wekelijks
- Verstuur meldingen naar
email of webhook_url
- Lijst, inspecteer, update en verwijder monitors
- Lees monitor snapshot-gebeurtenissen van privé snapshots
Installatie
# pip install requests
import requests
Creëer een monitor
Creëer een monitor met POST /v1/monitors. De endpoint valideert je invoer, voorziet de monitor, creëert het interne schema en retourneert een actief monitorobject.
Minstens één van query of url is vereist. Exact één notificatiedoel is vereist: ofwel email of webhook_url.
Voorbeeld verzoek
import requests
import json
API_KEY = "<YOUR_API_KEY>"
API_URL = "https://api.olostep.com/v1"
payload = {
"query": "Volg wijzigingen in productprijzen en voorraadinformatie",
"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))
Reactie
Succesvolle monitorcreatie retourneert HTTP 202 met een monitorobject:
{
"id": "monitor_n8q2x4m1ak",
"object": "monitor",
"status": "active",
"schedule_id": "schedule_r4h9n2j7",
"query": "Volg wijzigingen in productprijzen en voorraadinformatie",
"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
}
Notificatiekanalen
Monitors ondersteunen één kanaal per monitor:
email: stel een email veld in
webhook: stel een webhook_url veld in
Je kunt niet beide in één verzoek instellen.
Webhook voorbeeld
{
"query": "Let op wijzigingen in juridische voorwaarden",
"url": "https://example.com/terms",
"frequency": "weekly",
"webhook_url": "https://hooks.example.com/olostep-monitor"
}
Frequenties
Ondersteunde monitorfrequenties zijn:
De API leidt automatisch de cron-expressie van het schema af uit de geselecteerde frequentie.
Lijst monitors
Haal alle monitors voor je team op met GET /v1/monitors.
Standaard worden verwijderde monitors eruit gefilterd. Gebruik ?include_deleted=true om ze op te nemen.
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"Totaal aantal monitors: {result['count']}")
print(json.dumps(result, indent=2))
Haal een monitor op
Haal een enkele monitor op met GET /v1/monitors/:monitor_id.
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))
Lijst monitorgebeurtenissen
Gebruik GET /v1/monitors/:monitor_id/events om snapshot-gebeurtenissen voor een monitor op te sommen.
Deze endpoint ondersteunt paginering:
limit (standaard 25, max 100)
cursor (ondoorzichtige pagineringstoken van een vorige reactie)
Gebeurtenissen worden van nieuw naar oud geretourneerd. Elk item bevat een kortlevende voorgetekende snapshot_url zodat je privé snapshot-inhoud veilig kunt ophalen.
Voorbeeld
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))
Reactievorm
{
"data": [
{
"id": "run_v7k2p9m3",
"run_id": "run_v7k2p9m3",
"created": 1777960800,
"changed": true,
"summary": "Prijs gewijzigd van $49 naar $45 en voorraad verplaatst naar lage beschikbaarheid.",
"snapshot_url": "https://olostep-monitor-snapshot.s3.amazonaws.com/private/key?...signature..."
}
],
"has_more": false,
"next_cursor": null
}
Als cursor verkeerd is, retourneert de endpoint:
{
"error": "Ongeldige cursor."
}
Update een monitor
Update een monitor met POST /v1/monitors/:monitor_id.
Ondersteunde updates:
metadata (samengevoegd met bestaande metadata; geef lege tekenreekswaarden door om sleutels te verwijderen)
frequency (hourly, daily, weekly)
Als je frequency bijwerkt, hercreëert de API intern het monitorschema.
Voorbeeld verzoek
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))
Verwijder een monitor
Verwijder een monitor met DELETE /v1/monitors/:monitor_id.
Verwijdering is zacht voor de monitorregel (status wordt deleted) en verwijdert ook interne plannings-/shadow-agent resources die aan die monitor zijn gekoppeld.
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))
Veelvoorkomende validatiefouten
De monitor endpoints geven duidelijke validatiefouten terug voor veelvoorkomende ongeldige verzoeken:
- Ontbreken van zowel
query als url
- Ontbreken van
frequency, of niet-ondersteunde frequentiewaarde
- Ontbreken van zowel
email als webhook_url
- Zowel
email als webhook_url opgeven
- Ongeldig e-mailformaat
- Ongeldige webhook URL (moet
http of https zijn)
- Ongeldig
monitor_id formaat
Voorbeeldfout:
{
"error": "'frequency' moet een van de volgende zijn: hourly, daily, weekly."
}