Skip to main content
X is a publishing + analytics integration via the X API v2 (OAuth 2.0 with PKCE, auto-refreshing tokens).

Publish

Text, images or video.

Analytics

Account & per-tweet metrics.

Connect

OAuth 2.0 (PKCE) flow:
Open the returned authUrl and approve. The callback /connect/x/callback must be registered in your X app’s User authentication settings.

Publish a tweet

X accepts text only, 1–4 images, or a single video/GIF (media is optional):
The response includes the tweet’s platformPostId and platformPostUrl.

Analytics

X feeds the analytics store like the other platforms — likes, replies, reposts and impressions per post — with two differences that follow from X billing every API read.
Nothing is polled until you opt in. Background analytics on an X account are off by default, per account:
acknowledgeCost is required to turn it on: the call is refused without it, and the refusal carries the rate card so you can show it first. See Plans & billing.
Once enabled:
  • A post is refreshed at most once a day, whatever your plan. The hourly window other platforms get would cost $0.005 per post per hour.
  • Only posts published through PlugKit are tracked. Listing your timeline to discover the others would be a billed read per page, forever, to find posts we already know about.
  • Collection stops when your spend cap is reached. Publishing never does.
A $20 monthly cap applies by default, so this can’t run away on its own. Raise or lower it to fit:

Pricing

X calls are re-billed at cost — 0.005aread,0.005 a read, 0.015 a post, and $0.200 for a post containing a URL (X’s own pricing, roughly 13× a normal post). Watch it with GET /v1/usage; see Plans & billing.

Not supported

X DMs need elevated paid API access, so messaging isn’t exposed here.

Permissions

Scopes: tweet.read, tweet.write, users.read, media.write, offline.access (for token refresh).