What you can post
X supports text posts, image posts and video posts. Dravo posts with an OAuth 2.0 user token via the X API v2.
Scopes
| Scope | Why |
|---|---|
tweet.write | Create posts. |
media.write | Upload images and video. |
users.read | Read the connected account identity. |
offline.access | Refresh the token without re-consent. |
Media uploads
Dravo uploads media with the X v2 chunked flow: initialize, append the file in
chunks, finalize, then poll processing status for video before attaching the
media id to the post. You do not manage any of this; you pass a media_urls
entry and Dravo handles the upload.
The media.write caveat
OAuth 2.0 does work for X media upload, but the user token must include
media.write and must have been issued after that scope was granted. Tokens
minted before media.write was added return a 403 on the upload endpoints. If
media upload fails on an older connection, reconnect the account so it gets a
fresh token with the right scope.
Plan limits
On X's Free tier, media upload and posting are tightly rate limited (single digit requests per day for some endpoints). For real usage you will need a paid X API tier. These limits are set by X, not Dravo.