Add to pom.xml:
<dependency>
<groupId>com.thordata</groupId>
<artifactId>thordata-java-sdk</artifactId>
<version>1.1.0</version>
</dependency>Set environment variables or pass ThordataConfig object.
export THORDATA_SCRAPER_TOKEN="your_token"
export THORDATA_PUBLIC_TOKEN="public_token"
export THORDATA_PUBLIC_KEY="public_key"import com.thordata.sdk.*;
public class Main {
public static void main(String[] args) throws Exception {
// Load from env
ThordataConfig cfg = new ThordataConfig(
System.getenv("THORDATA_SCRAPER_TOKEN"),
null, null
);
ThordataClient client = new ThordataClient(cfg);
// SERP Search
SerpOptions opt = new SerpOptions();
opt.query = "java sdk";
opt.engine = "google";
Object result = client.serpSearch(opt);
System.out.println(result);
}
}Uses OkHttp for high-performance tunneling.
// Create Proxy Config
ProxyConfig proxy = ProxyConfig.residentialFromEnv()
.country("us")
.city("new_york")
.sticky(10); // 10 min session
// Make Request
ProxyResponse resp = client.proxyGet("https://httpbin.org/ip", proxy);
System.out.println(resp.bodyText());SerpOptions opt = new SerpOptions();
opt.query = "AI trends";
opt.engine = "google_news";
opt.num = 20;
opt.country = "us";
Object result = client.serpSearch(opt);UniversalOptions opt = new UniversalOptions();
opt.url = "https://example.com/spa";
opt.jsRender = true;
opt.waitFor = ".content";
opt.outputFormat = "html";
Object result = client.universalScrape(opt);// 1. Create Task
ScraperTaskOptions taskOpt = new ScraperTaskOptions();
taskOpt.fileName = "my_task";
taskOpt.spiderId = "universal";
taskOpt.spiderName = "universal";
taskOpt.parameters.put("url", "https://example.com");
String taskId = client.createScraperTask(taskOpt);
// 2. Check Status
String status = client.getTaskStatus(taskId);
// 3. Get Result
if ("ready".equals(status)) {
String url = client.getTaskResult(taskId, "json");
System.out.println(url);
}VideoTaskOptions vidOpt = new VideoTaskOptions();
vidOpt.fileName = "video";
vidOpt.spiderId = "youtube_video_by-url";
vidOpt.spiderName = "youtube.com";
vidOpt.parameters.put("url", "https://...");
vidOpt.commonSettings = new CommonSettings();
vidOpt.commonSettings.resolution = "1080p";
String vidId = client.createVideoTask(vidOpt);// Usage Stats
Object stats = client.getUsageStatistics("2024-01-01", "2024-01-31");
// Whitelist IP
client.addWhitelistIp("1.2.3.4", 1);MIT License