diff --git a/.release-please-manifest.json b/.release-please-manifest.json index da59f99..3e2bf49 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.4.0" + ".": "0.4.1" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e6ef40..bc1a6e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 0.4.1 (2026-04-25) + +Full Changelog: [v0.4.0...v0.4.1](https://github.com/Xquik-dev/x-twitter-scraper-python/compare/v0.4.0...v0.4.1) + +### Chores + +* **internal:** more robust bootstrap script ([69aa90c](https://github.com/Xquik-dev/x-twitter-scraper-python/commit/69aa90c4cb22f105848e073fc4130e5c79db12aa)) + + +### Documentation + +* add Contributor Covenant 2.1 Code of Conduct ([#2192](https://github.com/Xquik-dev/x-twitter-scraper-python/issues/2192)) ([06635a2](https://github.com/Xquik-dev/x-twitter-scraper-python/commit/06635a2a9951934ecca52515211dbcec2714e46f)) + ## 0.4.0 (2026-04-22) Full Changelog: [v0.3.1...v0.4.0](https://github.com/Xquik-dev/x-twitter-scraper-python/compare/v0.3.1...v0.4.0) diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000..193bd4a --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,20 @@ +cff-version: 1.2.0 +message: If you use this SDK, cite it using this metadata. +title: Xquik Python SDK for the X (Twitter) Scraper API +type: software +authors: + - name: Xquik +version: 0.4.0 +date-released: 2026-04-22 +url: https://github.com/Xquik-dev/x-twitter-scraper-python +repository-code: https://github.com/Xquik-dev/x-twitter-scraper-python +license: Apache-2.0 +keywords: + - Xquik + - Python + - SDK + - REST API + - webhooks + - MCP + - X + - Twitter scraper diff --git a/README.md b/README.md index b2230c0..fc5762a 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,65 @@ -# X Twitter Scraper Python API library +# Xquik Python SDK for X (Twitter) Scraper API [![PyPI version](https://img.shields.io/pypi/v/x_twitter_scraper.svg?label=pypi%20(stable))](https://pypi.org/project/x_twitter_scraper/) -The X Twitter Scraper Python library provides convenient access to the X Twitter Scraper REST API from any Python 3.9+ -application. The library includes type definitions for all request params and response fields, -and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx). +Xquik Python SDK for the X (Twitter) Scraper API: typed REST, HMAC webhooks, MCP, and docs at https://docs.xquik.com/api-reference/overview. + +Use it to search tweets, look up users, monitor accounts, run giveaway draws, and connect AI agents to X data without maintaining scraping infrastructure. + +[SDK API](api.md) | [REST API Docs](https://docs.xquik.com/api-reference/overview) | [OpenAPI Spec](https://xquik.com/openapi.json) | [Webhooks](https://docs.xquik.com/api-reference/webhooks/create) | [MCP Server](https://xquik.com/mcp) | [TypeScript SDK](https://github.com/Xquik-dev/x-twitter-scraper-typescript) It is generated with [Stainless](https://www.stainless.com/). +## Tweet Search & User Lookup + +Build Python services that search tweets, fetch user profiles, check follower relationships, download media, and inspect timeline data through one typed REST client. + +## Real-Time Monitoring & Webhooks + +Create monitors for X accounts, receive HMAC-signed webhook events, and query event history from the same SDK surface. + +## AI Agent Workflows With MCP + +Connect agent systems to Xquik through the MCP server while keeping custom product code on the typed REST SDK. + +## Giveaway Draws & Extractions + +Run giveaway draws, export winners, and launch extraction jobs for replies, reposts, quotes, followers, lists, communities, threads, articles, and tweet search. + +## Xquik SDK vs Building From Scratch + +| Need | Xquik Python SDK | Building From Scratch | +| --- | --- | --- | +| Typed REST calls | Pydantic models and typed request params | Hand-maintained schemas | +| Sync and async apps | Synchronous and asynchronous clients | Separate clients and retries | +| Real-time events | Monitors plus HMAC webhooks | Separate queue and signing work | +| AI agent access | REST SDK plus MCP server | Custom bridge layer | + +## Package & Registry Trust + +- Package: [PyPI `x_twitter_scraper`](https://pypi.org/project/x_twitter_scraper/) +- Source: [Xquik-dev/x-twitter-scraper-python](https://github.com/Xquik-dev/x-twitter-scraper-python) +- License: Apache-2.0 +- Citation metadata: [CITATION.cff](CITATION.cff) + +## FAQ + +### Does this SDK support async Python? + +Yes. Import `AsyncXTwitterScraper` and await the same API methods. + +### Where are the REST endpoints documented? + +Start with the [REST API overview](https://docs.xquik.com/api-reference/overview), then use [api.md](api.md) for generated method names. + +### Can this work with AI agents? + +Yes. Use the SDK in your app code and the [MCP server](https://xquik.com/mcp) for MCP-compatible agent clients. + ## Documentation -The REST API documentation can be found on [xquik.com](https://xquik.com). The full API of this library can be found in [api.md](api.md). +The REST API documentation can be found on [docs.xquik.com](https://docs.xquik.com/api-reference/overview). The full API of this library can be found in [api.md](api.md). ## Installation diff --git a/pyproject.toml b/pyproject.toml index 785db55..c37414c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "x_twitter_scraper" -version = "0.4.0" +version = "0.4.1" description = "The official Python library for the x-twitter-scraper API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/scripts/bootstrap b/scripts/bootstrap index 4638ec6..5a23841 100755 --- a/scripts/bootstrap +++ b/scripts/bootstrap @@ -4,7 +4,7 @@ set -e cd "$(dirname "$0")/.." -if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "$SKIP_BREW" != "1" ] && [ -t 0 ]; then +if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "${SKIP_BREW:-}" != "1" ] && [ -t 0 ]; then brew bundle check >/dev/null 2>&1 || { echo -n "==> Install Homebrew dependencies? (y/N): " read -r response diff --git a/src/x_twitter_scraper/_version.py b/src/x_twitter_scraper/_version.py index d424d9e..5fe3d2e 100644 --- a/src/x_twitter_scraper/_version.py +++ b/src/x_twitter_scraper/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "x_twitter_scraper" -__version__ = "0.4.0" # x-release-please-version +__version__ = "0.4.1" # x-release-please-version