Releases Index
List your semantic alerts
View .md

List your semantic alerts

GET
/me/semantic-alerts

Signed-in semantic alerts (#2304). Stores a freeform interest and email/webhook preferences. Matching runs after release.created for releases already on the caller's follow graph: one JEV decision per release, one question per enabled alert, notify when the matches-interest probability is at least the alert threshold (default 0.80, allowed 0.50–1.00). At most 5 alerts per account. Query text is user-private and is never written to Analytics Engine. Requires a Better Auth session or a user Bearer token (relu_ or OAuth JWT); machine relk_ tokens and anonymous callers are refused. Returns 404 when semantic-alerts-enabled is off.

Authorization

bearerAuth
headerAuthorizationBearer <relk_… | relu_… | OAuth JWT>

Machine/operator tokens use the relk_ prefix; self-serve read-only user keys use relu_; Sign in with Releases supplies an OAuth access token. Required scope depends on the endpoint.

Response Body

The caller's alerts, each with recent claimed-match activity. Empty when none are saved.

application/json
  1. response
alerts*array<>
candidatePool*"follows"
Value in"follows"
maxAlerts*integer
Example Request
curl -X GET 'https://api.releases.sh/v1/me/semantic-alerts'
Example Response
{  "alerts": [    {      "id": "string",      "query": "string",      "enabled": true,      "threshold": 0.5,      "deliverEmail": true,      "deliverWebhook": true,      "webhookSubscriptionId": "string",      "createdAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z",      "activity": {        "matches7d": 0,        "matches30d": 0,        "lastMatchedAt": "2019-08-24T14:15:22Z",        "lastMatch": {          "releaseId": "string",          "title": "string",          "path": "string"        }      }    }  ],  "candidatePool": "follows",  "maxAlerts": 0}