patch · mentions:write

Update mention status

Move a mention through triage. Status is the only mutable field — everything else is a fact about the post.

WriteIdempotent

REST

patch/api/v1/mentions/{id}
curl "https://herculradar.com/api/v1/mentions/:id" \
  --request PATCH \
  --header "Authorization: Bearer hr_live_…" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: $(uuidgen)" \
  --data '{"status":"new"}'

MCP

Tool name update_mention_status. It takes the same input and returns the same { data, meta } envelope as REST, because both call the same function.

Move a mention through triage. Use done once it has been handled and ignored when it is not really about the brand.

Parameters

idrequiredstringMention id

Request body

{
  "type": "object",
  "required": [
    "status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "new",
        "reviewed",
        "done",
        "ignored"
      ]
    }
  }
}

Response

{
  "data": {
    "id": "7b0f1e3a-1c4d-4a0a-9f2b-2f4a8c1d0e11",
    "source": "reddit",
    "url": "https://reddit.com/r/SaaS/comments/abc123",
    "author_handle": "ops_kate",
    "text": "Our analytics bill tripled. Anyone know a cheaper alternative?",
    "published_at": "2026-09-01T09:14:00.000Z",
    "engagement": {
      "upvotes": 128,
      "comments": 41
    },
    "is_relevant": true,
    "category": "complaint",
    "sentiment": "negative",
    "urgency": 72,
    "ai_summary": "User is priced out of a competitor and asking for alternatives.",
    "status": "reviewed"
  },
  "meta": {
    "capability": "update_mention_status",
    "requestId": "req_9f2b4a8c1d0e",
    "idempotencyReplayed": false,
    "docs": "https://herculradar.com/docs/reference/update_mention_status"
  }
}

Authorization

Requires the mentions:write scope. A credential without it gets 403 FORBIDDEN. Resources in projects the credential cannot reach answer 404 NOT_FOUND rather than 403, so ids cannot be probed across tenants.

Send an Idempotency-Key header. A completed response is replayed for 24 hours, so a retry after a timeout cannot create a duplicate.