read:posts_by_me
Reads the posts the acting account wrote, newest first.
It takes no target - the account being acted as is the subject - which is what makes it its own
operation rather than read:posts_by_user pointed at
yourself.
Fields
max |
how many to return, 5 to 100. This is what the call costs |
cursor |
the next from the page before |
since_id, until_id |
only posts newer, or older, than that id |
since_time, until_time |
the same window in time, ISO 8601 UTC |
include_replies, include_reposts |
send false to leave replies, or reposts, out of the page. Left out, everything comes back |
With include_replies false, X reaches back through only the account's latest 800 posts, not 3,200 |
|
profile |
whose posts. Optional when the agent has one account |
reason |
Required over MCP. One short sentence, in the agent's own words, for the person |
X will not return fewer than five
A max below five is raised to five before the call leaves, and the answer says so, because five
is what X returns and what it bills.
What comes back
{ "status": "done",
"ref": "9L4RC2KF",
"page": { "next": "7140w5gefhslx3",
"newest_id": "1832000000000000007",
"oldest_id": "1832000000000000003" },
"data": {
"data": [
{ "id": "1832000000000000007",
"text": "We rebuilt the pipeline this week.",
"created_at": "2026-09-15T09:12:44.000Z",
"author_id": "1400000000000000001",
"conversation_id": "1832000000000000007",
"edit_history_post_ids": ["1832000000000000007"],
"lang": "en",
"public_metrics": {
"repost_count": 2, "reply_count": 1, "like_count": 14,
"quote_count": 0, "bookmark_count": 3, "impression_count": 812
} }
],
"meta": { "result_count": 5,
"newest_id": "1832000000000000007",
"oldest_id": "1832000000000000003",
"next_token": "7140w5gefhslx3" }
} }
data.data is always an array and may be empty.
Send newest_id back as since_id
You are then handed only what you have not already paid for. On a feed you sweep regularly that is the difference between a cent a day and a cent a call.