# Changelog of X / Twitter Scraper — Clean Data API (`ladra/x-twitter-scraper-clean-data`) Actor

- **URL**: https://apify.com/ladra/x-twitter-scraper-clean-data/changelog.md
- **Full Actor documentation**: https://apify.com/ladra/x-twitter-scraper-clean-data.md

## Changelog

### 1.1.2 — 2026-07-12

Publish polish and small contract fixes.

#### Added

- **`searchType`** input: `Latest` (default) or `Top` for third-party advanced search.

#### Fixed

- Receipt **`source_count`** now includes `listUrls` and `conversationIds` (was only post URLs / handles / search terms).

#### Changed

- Store README aligned with v1.1: lists, conversations, advanced filters, enriched output, cost-aware PPE ladder ($0.34–$0.40/1K paid; FREE $8/1K deterrent).

### 1.1.0 — 2026-07-11

Major backward-compatible release. Existing `postUrls` runs behave the same; output only gains fields.

#### Added

- **Third-party data transport** (publisher-configured, **vendor-neutral to buyers**): search, profiles, lists and conversations at all volumes with no official-API rate limits. Provider chosen via `X_DATA_PROVIDER` (`twitterapi` | `getxapi`) + its key; output/receipts/warnings/logs never name the vendor (`source=x_data_api`).
- **Transport chain** `RoutingExtractor`: third-party → official X API v2 → public oEmbed, with a free oEmbed backfill for post URLs the rich transport misses (no double-billing).
- **Enriched output:** engagement metrics (likes, reposts, replies, quotes, views, bookmarks), nested author profile (followers/following, verified, blue, bio, location, avatar), media attachments, `is_reply`/`is_quote`/`is_retweet` flags, and `conversation_id`.
- **Advanced-search filters:** `fromUsers`, `mentionUsers`, `language`, `onlyVerified`, `mediaOnly`, `linksOnly`, `excludeReplies`, `excludeRetweets`, `minLikes`, `minRetweets`, `sinceDate`/`untilDate` — compiled to X search syntax.
- **New inputs:** `listUrls` and `conversationIds`.
- **HTTP resilience:** retry with exponential backoff on 429 / 5xx / network errors, honoring `Retry-After`; optional inter-request pacing (`X_MIN_REQUEST_INTERVAL_SECONDS`).
- One-command live verification script (`scripts/live_verify.py`) with a hard no-leak scan.

#### Changed

- `maxResults` ceiling raised **1,000 → 50,000** with correct per-endpoint pagination.
- Cost-aware pricing (break-even ≈ $0.25/1K on TwitterAPI.io, ≈ $0.09/1K on GetXAPI); no free-tier giveaway.

### 1.0.0 — 2026-07-11

#### Store-aligned (data only)

- **Removed** optional OpenAI / AI insight brief (not how Store tweet scrapers sell)
- **Single PPE event:** `validated-unique-post`
- Buyers supply **no API keys** — only input JSON
- `X_BEARER_TOKEN` is an **owner/publisher** secret for timelines/search
- Public post URLs work with zero secrets (oEmbed)
- Receipt + resource plan retained; never fabricates posts
