Working Java code samples for the X (formerly Twitter) API v2.
java --version
Using Maven, add to your pom.xml:
<dependencies> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.9.1</version> </dependency> </dependencies>
For read-only operations (search, lookup):
export BEARER_TOKEN='your_bearer_token'
For user actions (post, like, repost, bookmark, etc.):
export CLIENT_ID='your_client_id' export CLIENT_SECRET='your_client_secret'
Note: Most user action examples require OAuth 2.0 authentication with CLIENT_ID and CLIENT_SECRET. Read-only examples (search, lookup) only require BEARER_TOKEN.
posts/FullArchiveSearchDemo.java- Full archive search demoposts/FullArchiveTweetCountsDemo.java- Full archive tweet counts demoposts/QuoteTweetsDemo.java- Get posts that quote a postposts/RecentSearchDemo.java- Recent search demo (last 7 days)posts/RecentTweetCountsDemo.java- Recent tweet counts demoposts/SearchRecent.java- Recent search (last 7 days)posts/TweetsDemo.java- Look up posts by ID
users/FollowersLookupDemo.java- Get user's followersusers/FollowingLookupDemo.java- Get users a user is followingusers/Lookup.java- Look up users by usernameusers/UsersDemo.java- Users lookup demo
timelines/reverse-chron-home-timeline-java-sdk.java- Get home timeline (reverse chronological)timelines/UserMentionsDemo.java- Get user mentions timelinetimelines/UserTweetsDemo.java- Get user's posts timeline
streams/FilteredStreamDemo.java- Filtered stream with rulesstreams/SampledStream.java- Sampled stream
spaces/SearchSpacesDemo.java- Search for Spacesspaces/SpacesLookupDemo.java- Look up Spaces by ID
usage/UsageTweetsDemo.java- Get API usage information
# Compile a single file javac -cp ".:lib/*" posts/SearchRecent.java # Or compile all files find . -name "*.java" -exec javac -cp ".:lib/*" {} \;
# Run a single example java -cp ".:lib/*" posts.SearchRecent # Or with package structure java -cp ".:lib/*" posts/RecentSearchDemo