Skip to main content
Official Xquik SDKs wrap the REST API with generated request types, response models, retries, pagination helpers, and consistent authentication. Use this page to choose the right SDK, CLI, or MCP handoff for tweet search exports, follower export jobs, media tweets, DM attachments, monitor webhooks, and agent workflows.
For SDK extraction jobs, treat 202 Accepted as a queued run receipt. Poll GET /extractions/{id} before exporting rows. Credits are reserved after the job starts, so the run can lower resultsLimit to the affordable count or fail with insufficient_credits.

TypeScript / Node.js

Use typed REST calls for Node.js, Bun, Next.js route handlers, tweet search exports, media tweets, and DMs.

Python

Build sync or async jobs for tweet search, JSON Lines, CSV, XLSX, monitors, and webhook automation.

Go

Add tweet search exports, write actions, and monitor workers to Go services with context-aware calls.

Java

Use Maven or Gradle to add the Java SDK to Spring, worker, and JVM backend applications.

Kotlin

Use idiomatic Kotlin types, nullable values, sequences, and suspend-friendly client methods.

C# / .NET

Install from NuGet. Use REST for support attachment downloads.

Ruby

Use the Ruby gem with Yard, RBS, RBI, retries, and connection pooling.

PHP

Add the Composer package to PHP 8.1+ applications with named parameters and typed exceptions.

CLI

Run terminal workflows for tweet search exports, JSON output, CSV/XLSX handoff, and scripted API calls.

Terraform provider

Install from the Terraform Registry and manage Xquik resources as infrastructure.

Choose an SDK

TypeScript / Node.js

Install with npm install x-twitter-scraper; source: Xquik-dev/x-twitter-scraper-typescript. Open the TypeScript SDK guide.

Python

Install with pip install x_twitter_scraper; source: Xquik-dev/x-twitter-scraper-python. Open the Python SDK guide.

Go

Install with go get github.com/Xquik-dev/x-twitter-scraper-go; source: Xquik-dev/x-twitter-scraper-go. Open the Go SDK guide.

Java

Maven Central publication is pending. Build from source at Xquik-dev/x-twitter-scraper-java. Open the Java SDK guide.

Kotlin

Maven Central publication is pending. Build from source at Xquik-dev/x-twitter-scraper-kotlin. Open the Kotlin SDK guide.

C# / .NET

Install with dotnet add package XTwitterScraper; use REST for GET /support/attachments/{id}. Source: Xquik-dev/x-twitter-scraper-csharp. Open the C# SDK guide.

Ruby

Install with gem install x-twitter-scraper; source: Xquik-dev/x-twitter-scraper-ruby. Open the Ruby SDK guide.

PHP

Install with composer require xquik/x-twitter-scraper; source: Xquik-dev/x-twitter-scraper-php. Open the PHP SDK guide.

CLI

Install with go install github.com/Xquik-dev/x-twitter-scraper-cli/cmd/x-twitter-scraper@latest; source: Xquik-dev/x-twitter-scraper-cli. Open the CLI guide.

Terraform provider

Install Xquik-dev/x-twitter-scraper from the Terraform Registry. Open the Terraform guide.

Choose by job

Tweet search exports

Start with TypeScript, Python, Go SDK, or CLI plus Search Tweets. Hand off PaginatedTweets, tweets, has_next_page, next_cursor, and xquik-tweet-search.jsonl for JSON Lines, CSV, or XLSX. Cost: 1 credit per tweet returned.

Follower export files

Start with Follower Export CRM Workflow, TypeScript, Python, Go SDK, or CLI. Run follower_explorer with targetUsername and optional resultsLimit, then export CSV, JSON, or XLSX from Export Extraction. Store the 202 Accepted receipt id and toolType, then poll GET /extractions/{id} for job.status, results, hasMore, and nextCursor. Cost: 1 credit per follower extracted or returned.

Post media tweets or replies

Start with TypeScript, Go SDK, or CLI plus Create Tweet. Pass public media URLs in media: up to 4 image URLs or exactly 1 MP4 video URL up to 100 MB. Store tweetId, reply_to_tweet_id, chargedCredits, or writeActionId. Cost: 30 credits text-only, plus 2 credits per started MB across attached media.

Upload DM attachments

Call Upload Media, then Send Direct Message. Use the returned mediaId as the one-item media_ids value; store mediaUrl and the returned messageId. Cost: 10 credits per media upload plus 10 credits per DM send.

Monitor tweets to webhooks

Start with Create Monitor, Webhooks, or Terraform. Store monitor IDs, webhook IDs, event types, and signed delivery metadata. Active active monitors cost 21 credits per monitor-hour.

Agent handoff

Use the MCP Server for tool calls, or SDKs for direct code. Return JSON objects with the endpoint path, request parameters, result fields, pagination cursor, and endpoint cost.

Authentication

All SDKs accept the same API credentials as the REST API:
OAuth 2.1 bearer tokens are supported where the generated SDK exposes X_TWITTER_SCRAPER_BEARER_TOKEN.

Common workflows

  • Search tweets or scrape tweets to JSON Lines, CSV, or XLSX through Search Tweets. Keep xquik-tweet-search.jsonl or the language-specific export file as the downstream handoff.
  • Inspect threads through Get Tweet and Tweet Thread.
  • Look up profiles and relationships through Get User, Followers, and Check Follower.
  • Post media tweets or replies with up to 4 public image URLs or exactly 1 public MP4 video URL up to 100 MB through Create Tweet. Text-only tweet or reply writes cost 30 credits, and attached media adds 2 credits per started MB across all files. Upload media through Upload Media when Send Direct Message needs one uploaded media ID in media_ids.
  • Create account monitors with Create Monitor, then receive events through Webhooks.
  • Run exports and giveaway workflows with Extractions and Draws.
  • Connect agents through the MCP Server when you need tool use instead of direct SDK calls.

Error handling & pagination

Generated SDKs map HTTP errors into language-native exception or error types. Start with the error handling guide for status code semantics and the per-language page for idiomatic handling. Paginated endpoints return a page object with a next-page marker such as has_next_page, hasNextPage, or HasNextPage depending on language casing. Use the SDK’s generated pagination helpers when available, or pass the cursor fields documented on each endpoint.