{"openapi":"3.1.0","info":{"title":"Epiphani Alerts API","version":"0.1.0","description":"Create and manage web alerts. Authenticate with Authorization: Bearer <api token> from Settings."},"servers":[{"url":"https://alerts.belstone.com/api/v1"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"security":[{"bearer":[]}],"paths":{"/alerts":{"get":{"summary":"List alerts (filters: status, type, tag, q)","responses":{"200":{"description":"OK"}}},"post":{"summary":"Create an alert {type,title,url,selector,condition,frequency_min,channels,tags}","responses":{"200":{"description":"OK"}}}},"/alerts/{id}":{"get":{"summary":"Alert with snapshots and events","responses":{"200":{"description":"OK"}}},"patch":{"summary":"Edit an alert","responses":{"200":{"description":"OK"}}},"delete":{"summary":"Purge from Trash permanently","responses":{"200":{"description":"OK"}}}},"/alerts/{id}/{action}":{"post":{"summary":"pause | resume | archive | restore | delete | snooze | share | unshare | duplicate | check","responses":{"200":{"description":"OK"}}}},"/alerts/bulk":{"post":{"summary":"Bulk action {ids, action}","responses":{"200":{"description":"OK"}}}},"/parse":{"post":{"summary":"Turn a sentence into an alert spec {text}","responses":{"200":{"description":"OK"}}}},"/preview":{"post":{"summary":"Run a check without saving {type,url,selector,condition}","responses":{"200":{"description":"OK"}}}},"/events":{"get":{"summary":"Recent events (since=ms, unseen=1)","responses":{"200":{"description":"OK"}}}},"/export":{"get":{"summary":"Export every alert as JSON","responses":{"200":{"description":"OK"}}}},"/import":{"post":{"summary":"Import alerts from JSON or a camelcamelcamel CSV","responses":{"200":{"description":"OK"}}}},"/health":{"get":{"summary":"Service health","security":[],"responses":{"200":{"description":"OK"}}}}}}