Analytics

Mentions grouped by one dimension

One table of matched, relevant and sentiment counts grouped by `by`: platform, keyword, sentiment, intent, status, hour (weekday and hour of day) or person. The window is `range` (7d, 30d, 90d, 365d, ending today) or `from` and `to`, cut into days in `timezone` (UTC by default); `keywordIds` and `platforms` narrow it; `compare=true` adds the period of the same length right before it. Time axis is the publish date.

GET
/v1/analytics/breakdown
AuthorizationBearer <token>

API key minted via POST /v1/api-keys (format mk_live_...)

In: header

Query Parameters

range?string

Preset window ending today. Ignored when from or to is given. Default 30d.

Value in"7d" | "30d" | "90d" | "365d"
from?string

First day, YYYY-MM-DD, inclusive, in timezone.

Match^\d{4}-\d{2}-\d{2}$
to?string

Last day, YYYY-MM-DD, inclusive, in timezone. Default today.

Match^\d{4}-\d{2}-\d{2}$
keywordIds?|null

Only these keyword ids. Repeatable, or comma-separated; omit for every keyword.

Itemsitems <= 50
platforms?array<string>

Only these platforms. Repeatable, or comma-separated; omit for every platform.

Itemsitems <= 20
compare?boolean

true adds the period of the same length right before the window as previous.

timezone?string

IANA zone the days are cut in (Europe/Madrid). Default UTC. One offset, the zone's at the end of the window, applies to the whole window.

Lengthlength <= 64
bystring

The dimension to group by: platform, keyword, sentiment (unclassified included), intent (a mention can carry several), status (open, ignored, done), hour (weekday and hour of day in timezone), person (who posted; anonymous posts are left out), language (ISO 639-1; "unknown" for posts without one).

Value in"platform" | "keyword" | "sentiment" | "intent" | "status" | "hour" | "person" | "language"

Response Body

application/json

application/json

application/json

curl -X GET "https://api.mentio.dev/v1/analytics/breakdown?by=platform"
{
  "window": {
    "from": "string",
    "to": "string",
    "days": 0,
    "timezone": "string"
  },
  "by": "platform",
  "data": [
    {
      "key": "string",
      "label": "string",
      "keyword": {
        "id": "string",
        "term": "string",
        "kind": "brand"
      },
      "person": {
        "id": "string",
        "name": "string",
        "platform": "bluesky",
        "url": "string",
        "avatarUrl": "string",
        "followers": 0
      },
      "slot": {
        "weekday": 6,
        "hour": 23
      },
      "matched": 0,
      "relevant": 0,
      "share": 0,
      "sentiment": {
        "positive": 0,
        "neutral": 0,
        "negative": 0,
        "unclassified": 0
      },
      "previous": {
        "matched": 0,
        "relevant": 0
      }
    }
  ]
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "retryAfterSeconds": 0
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "retryAfterSeconds": 0
  }
}