---
title: "X"
description: "Posts and replies naming your keyword, with the full engagement counts and the author's profile."
canonical: https://docs.mentio.dev/platforms/x
markdown: https://docs.mentio.dev/platforms/x.mdx
---

# X

Posts and replies naming your keyword, with the full engagement counts and the author's profile.

Mentio searches X for the latest posts and replies containing your keyword, and reads each author's profile from the same answer.

| `platform`                    | `x`                              |
| ----------------------------- | -------------------------------- |
| What is found                 | Posts and replies (latest first) |
| Freshness                     | About every hour                 |
| Last 30 days on a new keyword | Yes, the newest 10               |

## Track it [#track-it]

Create a keyword limited to X. Leave `platforms` out to search every platform.

TypeScript:

```ts
const response = await fetch('https://api.mentio.dev/v1/keywords', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.MENTIO_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "term": "Acme",
    "kind": "brand",
    "platforms": [
      "x"
    ]
  }),
});

const data = await response.json();
console.log(data);
```

Python:

```python
import os
import requests

response = requests.post(
    "https://api.mentio.dev/v1/keywords",
    headers={"Authorization": f"Bearer {os.environ['MENTIO_API_KEY']}"},
    json={
      "term": "Acme",
      "kind": "brand",
      "platforms": [
        "x"
      ]
    },
)
print(response.json())
```

cURL:

```bash
curl -X POST "https://api.mentio.dev/v1/keywords" \
  -H "Authorization: Bearer $MENTIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "term": "Acme",
  "kind": "brand",
  "platforms": [
    "x"
  ]
}'
```

## Read its mentions [#read-its-mentions]

Filter the mentions list to X. `minLikes=10` keeps the posts with at least ten likes.

TypeScript:

```ts
const response = await fetch('https://api.mentio.dev/v1/mentions?platforms=x&relevant=true&minLikes=10', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${process.env.MENTIO_API_KEY}`,
  },
});

const data = await response.json();
console.log(data);
```

Python:

```python
import os
import requests

response = requests.get(
    "https://api.mentio.dev/v1/mentions?platforms=x&relevant=true&minLikes=10",
    headers={"Authorization": f"Bearer {os.environ['MENTIO_API_KEY']}"},
)
print(response.json())
```

cURL:

```bash
curl -X GET "https://api.mentio.dev/v1/mentions?platforms=x&relevant=true&minLikes=10" \
  -H "Authorization: Bearer $MENTIO_API_KEY"
```

Response (trimmed):

```json
{
  "data": [
    {
      "id": "mm_8f2k1x9q",
      "status": "open",
      "relevant": true,
      "keyword": {
        "id": "kw_123",
        "term": "Acme"
      },
      "post": {
        "publishedAt": "2026-11-07T14:32:10.000Z",
        "platform": "x",
        "kind": "post",
        "url": "https://x.com/janedev/status/1854321098765432100",
        "text": "Moved our support inbox to Acme last week. Setup took ten minutes.",
        "engagement": {
          "likes": 48,
          "reposts": 6,
          "replies": 9,
          "quotes": 1,
          "views": 5210,
          "bookmarks": 4
        }
      },
      "author": {
        "name": "Jane Dev",
        "handle": "janedev",
        "url": "https://x.com/janedev",
        "followers": 12400
      },
      "classification": {
        "relevance": 82,
        "sentiment": "positive",
        "intents": [
          "praise"
        ],
        "note": "A user recommends Acme by name."
      }
    }
  ],
  "nextCursor": "eyJ0IjoxNzMxMDAwMDAwfQ"
}
```

## What a mention carries [#what-a-mention-carries]

* `post.text`: the full post, long posts included, with t.co links expanded to where they point.
* `post.engagement`: likes, reposts, replies, quotes, views and bookmarks, as they stood when the post was found.
* `author`: name, handle, profile link, avatar and follower count; the profile adds bio, location and website.
* `post.replyTo`: for a reply, the post it answers (author, link and text).

The rest is the same on every platform: relevance, sentiment and intent from the classifier, your triage, and the keyword it matched. See the [mention shape](/api).

## Mute an author [#mute-an-author]

`x.com/name`, `twitter.com/name`, a post link (it names its author), or `@name`. See [Mute authors](/alerts#mute-authors).

## Limits [#limits]

* A burst of more than 100 new posts for one keyword in an hour is read up to its newest 100.
* Engagement is recorded once, when the post is found, and never refreshed.
