X Tweet Search
GET
/v1/x/tweets/searchMCP
x_search3 creditsLiveUpdated
Description
Search tweets by keyword with full X search operators (from:, to:, "exact phrase", OR, -word, min_faves:, filter:links). Returns tweets with author profiles and engagement. Costs 3 credits per page of about 20. Tip: sort=latest for monitoring, sort=top for the most-engaged tweets.
Parameters
| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
q | query | string | yes | Keyword(s) and X operators. | |
sort | query | enum | no | latest | latest for monitoring, top for the most engaged tweets. One of: latest, top. |
since | query | string | no | Earliest date, YYYY-MM-DD. | |
until | query | string | no | Latest date, YYYY-MM-DD. | |
lang | query | string | no | Tweet language, 2 letters. | |
includeRetweets | query | boolean,string | no | Include retweets. | |
limit | query | integer | no | 20 | Max rows to return (1-100). One X page holds about 20 rows, so values above 20 still return one page. Range 1 to 100. |
cursor | query | string | no | Opaque cursor from the previous response's page.nextCursor. Length 1 to 2048. |
- q query, string, required
- Keyword(s) and X operators.
- sort query, enum
- latest for monitoring, top for the most engaged tweets. One of:
latest,top. Defaultlatest. - since query, string
- Earliest date, YYYY-MM-DD.
- until query, string
- Latest date, YYYY-MM-DD.
- lang query, string
- Tweet language, 2 letters.
- includeRetweets query, boolean,string
- Include retweets.
- limit query, integer
- Max rows to return (1-100). One X page holds about 20 rows, so values above 20 still return one page. Range 1 to 100. Default
20. - cursor query, string
- Opaque cursor from the previous response's page.nextCursor. Length 1 to 2048.
Request examples
curl "https://chatterapi.com/v1/x/tweets/search?q=%22crm+recommendation%22" \
-H "Authorization: Bearer $CHATTERAPI_KEY"Response
data is a list of XTweet, with page.nextCursor and page.hasMore for the next page. Fields:
| Field | Type | Nullable | Description |
|---|---|---|---|
id | string | no | Platform id. |
text | string | no | Text. |
url | string | no | Full URL on the platform. |
createdAt | string | yes | ISO 8601 UTC timestamp. |
lang | string | yes | Language code. |
likes | number | yes | Likes. |
retweets | number | yes | Retweets. |
replies | number | yes | Replies. |
quotes | number | yes | Quote tweets. |
views | number | yes | Views. |
bookmarks | number | yes | Bookmarks. |
isReply | boolean | no | Is a reply. |
inReplyToId | string | yes | Tweet this replies to. |
conversationId | string | yes | Root tweet id of the conversation. |
isRetweet | boolean | no | Is a retweet. |
quotedTweetId | string | yes | Tweet this quotes. |
author | object | no | Author profile (XUser). |
media | object[] | no | Images, video or gallery URLs, or null. |
response
{
"data": [
{
"id": "2099495333231288346",
"text": "meta ads: how important is the “connect to your crm” recommendation?\n\nthis essentially will tell meta if the lead was good or bad (ie converted), any experience how how is actually helps?\n\nthis particular client doesn’t have a crm, yeah, I can build a page for him to update, but is it worth the effort?",
"url": "https://x.com/HesomParhizkar/status/2099495333231288346",
"createdAt": "2026-09-14T13:47:48.000Z",
"lang": "en",
"likes": 2,
"retweets": 0,
"replies": 2,
"quotes": 0,
"views": 138,
"bookmarks": 0,
"isReply": false,
"inReplyToId": null,
"conversationId": "2099495333231288346",
"isRetweet": false,
"quotedTweetId": null,
"author": {
"id": "35363135",
"handle": "HesomParhizkar",
"name": "Hesom",
"bio": "Startup Founder/Executive, investor, nba fan",
"followers": 584,
"following": 2010,
"tweets": null,
"verified": false,
"blueVerified": true,
"canDm": true,
"protected": null,
"location": "Marietta, GA",
"url": null,
"avatarUrl": "https://pbs.twimg.com/profile_images/1871033188081942528/comvGkRg_normal.jpg",
"createdAt": "2009-04-26T01:18:19.000Z"
},
"media": []
},
{
"id": "2040879100261458222",
"text": "Here's a live audit on what happens when buyers ask AI for a CRM recommendation. You can't miss it...",
"url": "https://x.com/apoorvshrm/status/2040879100261458222",
"createdAt": "2026-04-05T19:47:49.000Z",
"lang": "en",
"likes": 4,
"retweets": 0,
"replies": 1,
"quotes": 0,
"views": 145,
"bookmarks": 0,
"isReply": false,
"inReplyToId": null,
"conversationId": "2040879100261458222",
"isRetweet": false,
"quotedTweetId": "2040878095415304308",
"author": {
"id": "1459048370371137542",
"handle": "apoorvshrm",
"name": "Apoorv Sharma | SEO and GEO for B2B SaaS",
"bio": "SEO + GEO for B2B SaaS. I help SaaS brands rank on Google and get recommended by Claude, Gemini, and Google AI.\nCo-Founder, DerivateX",
"followers": 2316,
"following": 519,
"tweets": null,
"verified": false,
"blueVerified": true,
"canDm": true,
"protected": null,
"location": "Bengaluru",
"url": null,
"avatarUrl": "https://pbs.twimg.com/profile_images/2069124654112149504/AWTErF4d_normal.jpg",
"createdAt": "2021-11-12T06:40:23.000Z"
},
"media": []
},
{
"id": "2030294157340860574",
"text": "Biggest thing I learned building LeadSignal:\n\n\"Someone discussing CRMs\" and \"someone asking for a CRM recommendation\" look similar but are completely different.\n\nEarly versions sent way too much noise. Once I figured out how to filter for actual buying intent vs just talking about a topic, everything changed.\n\nhttps://t.co/VZBfugZqNR",
"url": "https://x.com/mohitbajoriaa/status/2030294157340860574",
"createdAt": "2026-03-07T14:47:02.000Z",
"lang": "en",
"likes": 3,
"retweets": 0,
"replies": 0,
"quotes": 0,
"views": 92,
"bookmarks": 0,
"isReply": false,
"inReplyToId": null,
"conversationId": "2030294157340860574",
"isRetweet": false,
"quotedTweetId": null,
"author": {
"id": "3140110765",
"handle": "mohitbajoriaa",
"name": "Mohit Bajoria",
"bio": "💻 @fileverse\n\nfailed projects - https://t.co/NH6keMRaR1, https://t.co/kJTLbjiJl8",
"followers": 531,
"following": 733,
"tweets": null,
"verified": false,
"blueVerified": true,
"canDm": true,
"protected": null,
"location": "India",
"url": null,
"avatarUrl": "https://pbs.twimg.com/profile_images/1860392942336151552/lmL4VBUY_normal.jpg",
"createdAt": "2015-04-05T09:09:16.000Z"
},
"media": []
}
],
"page": {
"nextCursor": "eyJ2IjoxLCJwIjoiZ2V0eGFwaSIsImMiOiJEQUFEREFBQkNnQUJIU0xuNGNqWFlCb0tBQUlRb3JSLTROYmdBUUFJQUFJQUFBQUNDQUFEQUFBQUFBZ0FCQUFBQUFBS0FBVWRTSDR4d3NBbkVBb0FCaDFJZmpIQ3Y5andDd0FIQUFBQThFVnRVRU0yZDBGQlFXWlJMMmRIU2s0d2RrZHdMMEZCUVVGQ1VWUjFlV1ZRVjBaVlVVRlNhR0l3WTJoMlZqSkNRVVpPVmtKNFFuZFlSVUZCV1VGT1dUQnFUbVYzVEhobVRIWkJTRzFzY2tkQ1NFWkxiM1Z2YVdGWlV6UlNVbHBFUzJKT1dVRkJVbFZVWmpobVJ6RklRVUZJUXpCT2VETllZVmxLTkZFNFdtNVRSVlpsZDBGQ1JFdzVTVkpYYkRsQlFVVm5WaTlOVlVWWGEwRkJWMHh1YkhkamFGbG5RVUpEYVhSSU4yY3hkVUZDUld4blQyMWtVVlZaUVVsVGMxTjNaa2hDWkdkQmVISjBkakF6UlZjNVEzRklVMHh1TkdOcVdGbENiMU5DVWpaTWNuUm1VVUZvYUdOUFRUaE9NakpJVFFBQSIsIm8iOjAsImgiOiI3NDRiMzM3NTI0YjAifQ",
"hasMore": true
},
"credits": {
"charged": 3,
"remaining": 24997
},
"requestId": "req_01JA7Q3V8K2N4P5R6S7T8V",
"cached": false
}Recorded live response captured 2026-10-13, truncated to 3 items. Credits and request id are illustrative.
Credits
3 credits per call. Failed calls cost 0. Cached responses cost the same. Test keys cost 0. Repeat calls with the same input within 10 minutes are served from cache.