Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.3.0"
".": "0.4.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 117
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-d40c57a05527faf060d21c0e013729f371d88017b10680cea7c8fd6780ffaef5.yml
openapi_spec_hash: 597ebc460cf86740b9f6f7c95478dece
config_hash: 30ce23c9cfbf8fb8be9e5dd28a2124fa
configured_endpoints: 110
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-2adc33156b4b42a4be18cc20c0205b38f0432d7958da99c65ee9b3f6a555ea0e.yml
openapi_spec_hash: be760f5620a268521d6793f65576a61f
config_hash: 320a9cb2f1293d1a7b73c63ab5865af5
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,32 @@
# Changelog

## 0.4.0 (2026-04-25)

Full Changelog: [v0.3.0...v0.4.0](https://github.com/Xquik-dev/x-twitter-scraper-java/compare/v0.3.0...v0.4.0)

### Features

* **api:** api update ([30c1879](https://github.com/Xquik-dev/x-twitter-scraper-java/commit/30c1879055bd1a7fb925a8dc674fbbd932c29f9f))
* **api:** api update ([5e2cc73](https://github.com/Xquik-dev/x-twitter-scraper-java/commit/5e2cc73283addfe9ac177efb47623c0f51dedf8e))
* **api:** api update ([6022295](https://github.com/Xquik-dev/x-twitter-scraper-java/commit/6022295c6a25bd0b0797c85ae96304cc3eeb2103))
* **api:** api update ([d4c753a](https://github.com/Xquik-dev/x-twitter-scraper-java/commit/d4c753ab0a9ee134dc567e576dac2892407e7e29))


### Bug Fixes

* escape ampersand in OpenAPI summaries for C# XML docs ([fb78c9a](https://github.com/Xquik-dev/x-twitter-scraper-java/commit/fb78c9aea1252be7535e3b5efcc5f916805831d4))


### Chores

* sync OpenAPI spec ([c225ad8](https://github.com/Xquik-dev/x-twitter-scraper-java/commit/c225ad8eb377c71093ce3f9b5292257ce191ed3a))
* wire production_repo for all targets ([1a3de89](https://github.com/Xquik-dev/x-twitter-scraper-java/commit/1a3de8994dc023e9602bc359a0f5067f03082e9a))


### Documentation

* add Contributor Covenant 2.1 Code of Conduct ([#2192](https://github.com/Xquik-dev/x-twitter-scraper-java/issues/2192)) ([afb97b0](https://github.com/Xquik-dev/x-twitter-scraper-java/commit/afb97b0d326a8ff3602f871cd12daa63c7a3d847))

## 0.3.0 (2026-04-08)

Full Changelog: [v0.2.0...v0.3.0](https://github.com/Xquik-dev/x-twitter-scraper-java/compare/v0.2.0...v0.3.0)
Expand Down
53 changes: 18 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,40 +2,39 @@

[![Ask DeepWiki](https://deepwiki.com/badge.svg?url=https%3A%2F%2Fgithub.com%2FXquik-dev%2Fx-twitter-scraper-java)](https://deepwiki.com/Xquik-dev/x-twitter-scraper-java)

> Maven Central publication is pending. Build from source until the
> `com.x_twitter_scraper.api:x-twitter-scraper-java` artifact resolves in Maven
> Central.
[![Maven Central](https://img.shields.io/maven-central/v/com.x_twitter_scraper.api/x-twitter-scraper-java)](https://central.sonatype.com/artifact/com.x_twitter_scraper.api/x-twitter-scraper-java/0.4.0)
[![javadoc](https://javadoc.io/badge2/com.x_twitter_scraper.api/x-twitter-scraper-java/0.4.0/javadoc.svg)](https://javadoc.io/doc/com.x_twitter_scraper.api/x-twitter-scraper-java/0.4.0)

<!-- x-release-please-end -->

The X Twitter Scraper Java SDK provides convenient access to the [X Twitter Scraper REST API](https://xquik.com) from applications written in Java.

The X Twitter Scraper Java SDK is similar to the X Twitter Scraper Kotlin SDK but with minor differences that make it more ergonomic for use in Java, such as `Optional` instead of nullable values, `Stream` instead of `Sequence`, and `CompletableFuture` instead of suspend functions.

It is generated with [Stainless](https://www.stainless.com/).

The REST API documentation can be found on [xquik.com](https://xquik.com). Generated Javadocs can be built locally from source.

## Installation
<!-- x-release-please-start-version -->

Maven Central publication is pending. Until registry metadata is live, use a source build instead of Gradle or Maven dependency coordinates.
The REST API documentation can be found on [xquik.com](https://xquik.com). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.x_twitter_scraper.api/x-twitter-scraper-java/0.4.0).

### Source Build
<!-- x-release-please-end -->

```bash
git clone https://github.com/Xquik-dev/x-twitter-scraper-java.git
cd x-twitter-scraper-java
./gradlew build
```
## Installation

### Local Maven Testing
### Gradle

```bash
./gradlew publishToMavenLocal -PpublishLocal
```kotlin
implementation("com.x_twitter_scraper.api:x-twitter-scraper-java:0.4.0")
```

Before restoring Maven Central badges or dependency snippets, verify:
### Maven

```bash
curl -f https://repo1.maven.org/maven2/com/x_twitter_scraper/api/x-twitter-scraper-java/maven-metadata.xml
```xml
<dependency>
<groupId>com.x_twitter_scraper.api</groupId>
<artifactId>x-twitter-scraper-java</artifactId>
<version>0.4.0</version>
</dependency>
```

## Requirements
Expand Down Expand Up @@ -82,7 +81,6 @@ import com.x_twitter_scraper.api.client.okhttp.XTwitterScraperOkHttpClient;

XTwitterScraperClient client = XTwitterScraperOkHttpClient.builder()
.apiKey("My API Key")
.bearerToken("My Bearer Token")
.build();
```

Expand Down Expand Up @@ -561,21 +559,6 @@ TweetSearchParams params = TweetSearchParams.builder()

These can be accessed on the built object later using the `_additionalHeaders()`, `_additionalQueryParams()`, and `_additionalBodyProperties()` methods.

To set undocumented parameters on _nested_ headers, query params, or body classes, call the `putAdditionalProperty` method on the nested class:

```java
import com.x_twitter_scraper.api.core.JsonValue;
import com.x_twitter_scraper.api.models.integrations.IntegrationCreateParams;

IntegrationCreateParams params = IntegrationCreateParams.builder()
.config(IntegrationCreateParams.Config.builder()
.putAdditionalProperty("secretProperty", JsonValue.from("42"))
.build())
.build();
```

These properties can be accessed on the nested built object later using the `_additionalProperties()` method.

To set a documented parameter or property to an undocumented or not yet supported _value_, pass a [`JsonValue`](x-twitter-scraper-java-core/src/main/kotlin/com/x_twitter_scraper/api/core/Values.kt) object to its setter:

```java
Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ repositories {

allprojects {
group = "com.x_twitter_scraper.api"
version = "0.3.0" // x-release-please-version
version = "0.4.0" // x-release-please-version
}

subprojects {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ configure<MavenPublishBaseExtension> {

pom {
name.set("Xquik API")
description.set("Xquik is an all-in-one X (Twitter) automation API with 40+ endpoints for\nreading, writing, and monitoring X data. **Read endpoints** let you look up\ntweets, search tweets, fetch user profiles, list followers & following, browse\ntimelines, bookmarks, notifications, communities, lists, trending topics, and\ndownload media. **Write endpoints** let you post tweets, reply, like, unlike,\nretweet, unretweet, follow, unfollow, send DMs, upload media, update profiles,\nand manage communities. **Automation endpoints** power bulk data extractions (20\ntool types), giveaway draws from tweet replies, real-time account monitoring\nwith webhooks & Telegram integrations, tweet composition with AI, and writing\nstyle analysis. Authenticate with an API key or OAuth 2.1 bearer token.\nPay-per-use endpoints are also available without an account.")
description.set("Look up any tweet, user, or trend on X. Search tweets, check follower\nrelationships, download media, and monitor accounts in real time. 32 pay-per-use\nread endpoints work without a subscription — just pay per call. Write endpoints\n(post, like, retweet, follow, DM) and automation endpoints (bulk extractions,\ngiveaway draws, monitors, webhooks) require an API key or OAuth 2.1 bearer\ntoken.")
url.set("https://xquik.com")

licenses {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,12 @@ package com.x_twitter_scraper.api.client
import com.x_twitter_scraper.api.core.ClientOptions
import com.x_twitter_scraper.api.services.blocking.AccountService
import com.x_twitter_scraper.api.services.blocking.ApiKeyService
import com.x_twitter_scraper.api.services.blocking.BotService
import com.x_twitter_scraper.api.services.blocking.ComposeService
import com.x_twitter_scraper.api.services.blocking.CreditService
import com.x_twitter_scraper.api.services.blocking.DraftService
import com.x_twitter_scraper.api.services.blocking.DrawService
import com.x_twitter_scraper.api.services.blocking.EventService
import com.x_twitter_scraper.api.services.blocking.ExtractionService
import com.x_twitter_scraper.api.services.blocking.IntegrationService
import com.x_twitter_scraper.api.services.blocking.MonitorService
import com.x_twitter_scraper.api.services.blocking.RadarService
import com.x_twitter_scraper.api.services.blocking.StyleService
Expand Down Expand Up @@ -59,25 +57,25 @@ interface XTwitterScraperClient {
*/
fun withOptions(modifier: Consumer<ClientOptions.Builder>): XTwitterScraperClient

/** Account info & settings */
/** Account info and settings */
fun account(): AccountService

/** API key management (session auth only) */
fun apiKeys(): ApiKeyService

/** Subscription & billing */
/** Subscription, billing, and credits */
fun subscribe(): SubscribeService

/** Tweet composition, drafts, writing styles & radar */
/** AI tweet composition, drafts, writing styles, and radar */
fun compose(): ComposeService

/** Tweet composition, drafts, writing styles & radar */
/** AI tweet composition, drafts, writing styles, and radar */
fun drafts(): DraftService

/** Tweet composition, drafts, writing styles & radar */
/** AI tweet composition, drafts, writing styles, and radar */
fun styles(): StyleService

/** Tweet composition, drafts, writing styles & radar */
/** AI tweet composition, drafts, writing styles, and radar */
fun radar(): RadarService

/** Real-time X account monitoring */
Expand All @@ -92,23 +90,17 @@ interface XTwitterScraperClient {
/** Giveaway draws from tweet replies */
fun draws(): DrawService

/** Webhook endpoint management & delivery */
/** Webhook endpoint management and delivery */
fun webhooks(): WebhookService

/** Push notification integrations (Telegram) */
fun integrations(): IntegrationService

/** X data lookups (subscription required) */
fun x(): XService

/** Trending topics by region */
/** Trending topics and hashtags by region */
fun trends(): TrendService

fun bot(): BotService

fun support(): SupportService

/** Subscription & billing */
/** Subscription, billing, and credits */
fun credits(): CreditService

/**
Expand Down Expand Up @@ -138,25 +130,25 @@ interface XTwitterScraperClient {
modifier: Consumer<ClientOptions.Builder>
): XTwitterScraperClient.WithRawResponse

/** Account info & settings */
/** Account info and settings */
fun account(): AccountService.WithRawResponse

/** API key management (session auth only) */
fun apiKeys(): ApiKeyService.WithRawResponse

/** Subscription & billing */
/** Subscription, billing, and credits */
fun subscribe(): SubscribeService.WithRawResponse

/** Tweet composition, drafts, writing styles & radar */
/** AI tweet composition, drafts, writing styles, and radar */
fun compose(): ComposeService.WithRawResponse

/** Tweet composition, drafts, writing styles & radar */
/** AI tweet composition, drafts, writing styles, and radar */
fun drafts(): DraftService.WithRawResponse

/** Tweet composition, drafts, writing styles & radar */
/** AI tweet composition, drafts, writing styles, and radar */
fun styles(): StyleService.WithRawResponse

/** Tweet composition, drafts, writing styles & radar */
/** AI tweet composition, drafts, writing styles, and radar */
fun radar(): RadarService.WithRawResponse

/** Real-time X account monitoring */
Expand All @@ -171,23 +163,17 @@ interface XTwitterScraperClient {
/** Giveaway draws from tweet replies */
fun draws(): DrawService.WithRawResponse

/** Webhook endpoint management & delivery */
/** Webhook endpoint management and delivery */
fun webhooks(): WebhookService.WithRawResponse

/** Push notification integrations (Telegram) */
fun integrations(): IntegrationService.WithRawResponse

/** X data lookups (subscription required) */
fun x(): XService.WithRawResponse

/** Trending topics by region */
/** Trending topics and hashtags by region */
fun trends(): TrendService.WithRawResponse

fun bot(): BotService.WithRawResponse

fun support(): SupportService.WithRawResponse

/** Subscription & billing */
/** Subscription, billing, and credits */
fun credits(): CreditService.WithRawResponse
}
}
Loading