# X analytics API > Markdown version of https://postlake.dev/social-media-analytics-api/x-twitter . The canonical page for humans. > PostLake is the social media API for AI agents: https://postlake.dev/llms.txt Analytics on X through the same call you use for every other network, with X's real rules enforced before anything is sent. Analytics for X One call returns a post's numbers in the same shape as every other network, so your code reads impressions and likes without knowing which network it is looking at. curl https://api.postlake.dev/v1/posts/post_…/analytics \ -H "Authorization: Bearer $POSTLAKE_API_KEY" What X actually reports This is the part usually left vague. Networks do not report the same things, and pretending they do produces charts that are quietly wrong. MetricOn X ImpressionsReportedViewsNot reported by this networkReachNot reported by this networkLikes, comments, sharesReported where the network exposes themSaves and clicksReported where the network exposes them X reports impressions, so views stays at zero rather than being filled with the impression count. A zero here means "this network does not report it", not "nobody watched". Comparing X against your other networks GET /v1/analytics?period=30d returns every connected account together, already normalised, so an agent can decide what to post next rather than only report what happened. Because the shapes match, comparing X to the rest is arithmetic instead of a mapping exercise. Where a network is missing a metric it is a zero with a known reason, not a gap you have to investigate. That honesty is the difference between a dashboard you trust and one you quietly stop opening. Common questions ### Is there a X analytics API? X exposes analytics to approved applications, and PostLake wraps it so you get the same response shape as every other network. One call, one format, no per-network parsing. ### Which metrics does X return? Primarily impressions, plus engagement counts where the network exposes them. ### Why is a metric zero? Because that network does not report it. PostLake never fills a missing metric with a related one. A zero means "not reported here", which is a different and more useful fact than a number that quietly came from somewhere else. ### Can an agent read these numbers? Yes. Over MCP it is get_post_analytics for one post and get_analytics for everything, returned as a table an agent can act on rather than raw JSON it has to re-request. ## Related - [Post to X via API](https://postlake.dev/post-to/x-twitter.md) - [Scheduling on X](https://postlake.dev/social-media-scheduling-api/x-twitter.md) - [Comments on X](https://postlake.dev/social-media-comments-api/x-twitter.md) - [Messaging on X](https://postlake.dev/social-media-messaging-api/x-twitter.md)