X (Twitter) v2 API via OAuth 2.0 with PKCE. v1 of the publisher targets single-image and single-video tweets; the 4-up surface ships in a follow-up slice.Documentation Index
Fetch the complete documentation index at: https://docs.letmepost.dev/llms.txt
Use this file to discover all available pages before exploring further.
Connect
POST /v1/accounts/connect/twitter. OAuth 2.0 PKCE. After complete we call GET /2/users/me to pin the user id.
Scopes
like.read, follows.read — off by default; not needed for publishing.
Token lifecycle
X access tokens are short-lived (~2 hours) butoffline.access issues a refresh token that lets us refresh on schedule.
Posting
tweet.json
Constraints
- Text: 280 graphemes (
twitter.text.max_graphemes) - Single media only in v1 (
twitter.media.single_only) - Image mimes: jpeg, png, webp, gif
- Video mime: mp4
- Image size: 5 MB max (
twitter.media.image_size_max) - GIF size: 15 MB max (
twitter.media.gif_size_max) - Video size: 512 MB max (
twitter.media.video_size_max) - URLs in tweet text count as 23 characters regardless of real length (t.co wrapping)