{"service":"@nocold-email/api","version":"0.2.0","endpoints":[{"method":"GET","path":"/health","description":"liveness + version + store"},{"method":"GET","path":"/v1/rules","description":"rule table and default thresholds"},{"method":"POST","path":"/v1/classify","description":"classify one message (JSON or message/rfc822)"},{"method":"POST","path":"/v1/classify/batch","description":"classify up to BATCH_MAX messages"},{"method":"POST","path":"/v1/learn","description":"teach this account: mark a message cold / not cold"},{"method":"POST","path":"/v1/eval","description":"precision/recall over labelled messages"},{"method":"GET","path":"/v1/context","description":"the stored context for this API key"},{"method":"PUT","path":"/v1/context","description":"replace the stored context"},{"method":"PATCH","path":"/v1/context","description":"add to / remove from the stored context"},{"method":"DELETE","path":"/v1/context","description":"forget the stored context"},{"method":"POST","path":"/v1/report","description":"file forwarded message(s) as cold / not cold training examples"},{"method":"GET","path":"/v1/report","description":"list stored reports (own; admin: all, raw=1 for the bytes)"},{"method":"POST","path":"/v1/report/addresses","description":"this account's personal report addresses (rotate: true mints new ones)"},{"method":"GET","path":"/v1/report/:id/raw","description":"one stored message as message/rfc822"},{"method":"DELETE","path":"/v1/report/:id","description":"delete one stored report"}],"docs":"docs/monorepo/01-api-spec.md"}