---
title: "List attention items"
method: GET
path: "/v1/attention"
tags: ["Attention"]
---

# List attention items

`GET /v1/attention`

## Request

- Base URL: `https://api.rumoro.dev`
- URL: `https://api.rumoro.dev/v1/attention`
- Auth: HTTP bearer

Lists items that need a person, latest first. Kinds are mention.spike (a keyword's mentions jumped in the last hour), sentiment.negative_spike (its 24-hour negative share jumped), keyword.noisy (it turned noisy) and channel.failing (a channel's recent sends all failed). Checks run hourly. Items open when the condition starts and resolve when it ends. Open items are the default, and `status=all` adds the history. Opening an item also sends an account event of the same name to subscribed webhook, Slack, email and Telegram channels.

## Query parameters

- `status` 'open' | 'resolved' | 'dismissed' | 'all': Which items to list. Defaults to open.
- `kind` string: Filters by kind. Send a comma-separated list such as mention.spike,keyword.noisy.
- `limit` integer: How many items to return, latest first. 50 by default and 100 at most.
- `cursor` string: Pass the previous page's nextCursor.

## Response `200`

The attention items

- object
  - `data` AttentionItem[], required
    - `id` string, required: The attention item's id (att_...).
    - `kind` 'mention.spike' | 'sentiment.negative_spike' | 'keyword.noisy' | 'channel.failing', required: mention.spike flags an hour with far more mentions than usual, and sentiment.negative_spike a jump in the negative share over 24 hours. keyword.noisy flags a keyword whose scored matches are mostly noise, and channel.failing a channel whose recent sends all failed.
    - `status` 'open' | 'resolved' | 'dismissed', required: open means the condition is still true. resolved means it is not anymore. dismissed means someone dismissed it, and it will not reopen for the same episode.
    - `subject` object, required: The keyword or channel the item concerns.
      - `type` 'keyword' | 'channel', required: Either keyword or channel.
      - `id` string, required: The keyword's id (kw_...) or the channel's id (dest_...).
    - `title` string, required: A one-line summary of what happened.
    - `openedAt` string, required: First time the condition was seen.
    - `resolvedAt` string, nullable, required: When the condition ended. Null while it lasts.
    - `dismissedAt` string, nullable, required: When someone dismissed it. Null if no one did.
    - `data` union, required: The numbers at the time it opened. This is the same object the account event with the same name sends as `data`.
      - MentionSpikeEventData
        - `attentionId` string, required: Related attention item (att_...). See GET /v1/attention, dismiss with POST /v1/attention/{id}/dismiss.
        - `url` string, required: The dashboard page to open.
        - `keyword` object, required: The keyword this item concerns.
          - `id` string, required: The keyword's id (kw_...).
          - `term` string, required: The term being tracked.
          - `kind` 'brand' | 'competitor' | 'topic', required: The keyword's kind, brand, competitor or topic.
          - `name` string, required: The keyword's display name. It is the term, or "term (Group)" when the keyword is not in the default group.
          - `groupId` string, required: The keyword's group id (grp_...).
        - `window` object, required: Match-time range of the counts.
          - `from` string, required: Start time, included.
          - `to` string, required: End time, not included.
        - `matches` integer, required: New matches during the hour, meaning posts that matched within 6 hours of being published. Look-backs and free reviews are not counted.
        - `relevant` integer, required: How many of them have been scored relevant so far.
        - `baseline` object, required: The keyword's normal volume.
          - `meanPerHour` number, required: Average new matches per hour during the baseline.
          - `stddevPerHour` number, required: The standard deviation of that average.
          - `hours` integer, required: How many hours the baseline covers. It is the week before the window, or the time since the keyword was created if that is shorter.
      - NegativeSpikeEventData
        - `attentionId` string, required: Related attention item (att_...). See GET /v1/attention, dismiss with POST /v1/attention/{id}/dismiss.
        - `url` string, required: The dashboard page to open.
        - `keyword` object, required: The keyword this item concerns.
          - `id` string, required: The keyword's id (kw_...).
          - `term` string, required: The term being tracked.
          - `kind` 'brand' | 'competitor' | 'topic', required: The keyword's kind, brand, competitor or topic.
          - `name` string, required: The keyword's display name. It is the term, or "term (Group)" when the keyword is not in the default group.
          - `groupId` string, required: The keyword's group id (grp_...).
        - `window` object, required: Match-time range of the counts.
          - `from` string, required: Start time, included.
          - `to` string, required: End time, not included.
        - `negative` integer, required: Relevant matches in the window with negative sentiment.
        - `relevant` integer, required: Relevant match count for the window.
        - `share` number, required: negative divided by relevant.
        - `baseline` object, required: The keyword's normal sentiment.
          - `negative` integer, required: How many relevant matches were negative in the prior week.
          - `relevant` integer, required: Relevant match count for those 7 days.
          - `share` number, required: The normal share of negative matches, smoothed so that a quiet week still gives a value.
      - KeywordNoisyEventData
        - `attentionId` string, required: Related attention item (att_...). See GET /v1/attention, dismiss with POST /v1/attention/{id}/dismiss.
        - `url` string, required: The dashboard page to open.
        - `keyword` object, required: The keyword this item concerns.
          - `id` string, required: The keyword's id (kw_...).
          - `term` string, required: The term being tracked.
          - `kind` 'brand' | 'competitor' | 'topic', required: The keyword's kind, brand, competitor or topic.
          - `name` string, required: The keyword's display name. It is the term, or "term (Group)" when the keyword is not in the default group.
          - `groupId` string, required: The keyword's group id (grp_...).
        - `windowDays` integer, required: How many days the noise is measured over. If the keyword changed within that time, it starts at the change.
        - `scored` integer, required: Matches scored by the classifier during that time.
        - `relevant` integer, required: How many of them were relevant.
        - `noiseShare` number, required: The part that scored below 40. Every match is billed, relevant or not.
      - ChannelFailingEventData
        - `attentionId` string, required: Related attention item (att_...). See GET /v1/attention, dismiss with POST /v1/attention/{id}/dismiss.
        - `url` string, required: The dashboard page to open.
        - `channel` object, required: The channel that keeps failing.
          - `id` string, required: The channel's id (dest_...).
          - `kind` 'slack' | 'email' | 'webhook' | 'telegram', required: Type of channel.
          - `label` string, required: The name you gave the channel.
        - `failures` integer, required: Consecutive failed sends in the past 24 hours.
        - `lastError` string, nullable, required: The latest error, as Slack, email, the webhook or Telegram returned it.
        - `since` string, required: Time of the first of those failures.
  - `nextCursor` string, nullable, required: Cursor for the next page, or null when there are no more pages.

## Other responses

- `400`: The kind is unknown, or the cursor did not come from this list
- `401`: The API key is missing or not valid

---

[API](https://skmtc.dev/rumoro/apis/rumoro-api.md) · [All operations](https://skmtc.dev/rumoro/apis/rumoro-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rumoro/apis/rumoro-api/revisions/9ef63ea894d1?raw)
