# twitr.sh X/Twitter Data Extractor

> twitr.sh X/Twitter Data Extractor is a paid API for AI agents from twitr.sh, paid per call via x402, $0.024/call, status unknown (last checked 2026-10-12).

Bulk-extracts structured X/Twitter data (followers, tweets, replies, search results, and more) across 23 extractor types, paid per-call in USDC via x402

## Facts

- Endpoint: POST https://twitr.sh/api/tools/x_extract?utm_source=zero.xyz
- Price: $0.024/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/twitr-sh-x-twitter-data-extractor-6d9b8f26
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_nO9JAyr9HUTm2g3mFlCCY

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability twitr-sh-x-twitter-data-extractor-6d9b8f26 -d '<json body>'
```

Example prompt: Pull the last 500 followers of @elonmusk using the follower_explorer extractor, and give me the results once they're ready.

## When to prefer this

Use this endpoint when you need bulk or paginated extraction of Twitter data — followers, following, tweets, replies, search results — beyond what single-lookup endpoints provide. It is ideal for large-scale social data collection, audience analysis, competitive monitoring, and archiving. Prefer this over single-record read endpoints when you need more than a handful of results, or when you need one of its 23 specialized extractor types (e.g. community members, list members, space participants). Best suited for async batch workflows since results are returned via a poll-until-ready pattern.

## Known failure modes

- Invalid or suspended target username returns an error
- Tweet ID not found or deleted returns empty result
- resultsLimit not provided causes request rejection (it is mandatory)
- Payment failure via x402 blocks the request
- Rate limiting or Twitter-side blocks may cause partial results
- Invalid tool enum value returns validation error
- Date range conflicts or malformed sinceDate/untilDate cause parsing errors
- Community or list IDs that are private/deleted return empty datasets

## How this service works

Pay-per-call X/Twitter API for AI agents. Read tweets, search, monitor accounts in real time, and post — paid in USDC via x402. No signup, no API keys.

## Output

Returns a JSON object with a status of 'pending', a status_url to poll, and a snapshot_id. Once polling returns status='ready', the full dataset is available as structured JSON containing the requested Twitter objects (users, tweets, etc.) up to the specified resultsLimit.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "tool": {
   "enum": [
    "follower_explorer",
    "following_explorer",
    "verified_follower_explorer",
    "post_extractor",
    "reply_extractor",
    "repost_extractor",
    "quote_extractor",
    "thread_extractor",
    "article_extractor",
    "favoriters",
    "mention_extractor",
    "user_likes",
    "user_media",
    "community_extractor",
    "community_moderator_explorer",
    "community_post_extractor",
    "community_search",
    "list_member_extractor",
    "list_post_extractor",
    "list_follower_explorer",
    "space_explorer",
    "people_search",
    "tweet_search_extractor"
   ],
   "type": "string",
   "description": "Which extractor to run."
  },
  "language": {
   "type": "string"
  },
  "minFaves": {
   "type": "integer"
  },
  "mediaType": {
   "enum": [
    "images",
    "videos",
    "gifs",
    "media"
   ],
   "type": "string"
  },
  "sinceDate": {
   "type": "string"
  },
  "untilDate": {
   "type": "string"
  },
  "searchQuery": {
   "type": "string"
  },
  "resultsLimit": {
   "type": "integer",
   "maximum": 10000,
   "minimum": 1,
   "description": "MANDATORY: max results extracted, billed per result."
  },
  "targetListId": {
   "type": "string"
  },
  "verifiedOnly": {
   "type": "boolean"
  },
  "targetSpaceId": {
   "type": "string"
  },
  "targetTweetId": {
   "type": "string"
  },
  "targetUsername": {
   "type": "string"
  },
  "targetCommunityId": {
   "type": "string"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "status": "pending",
  "message": "Extraction accepted — poll status_url until status='ready' to fetch the dataset.",
  "payment": {
   "amount": "0.600000",
   "currency": "USD",
   "protocol": "x402"
  },
  "status_url": "/api/snapshots/sd_ex_a1b2c3d4e5f67890abcdef1234567890",
  "snapshot_id": "sd_ex_a1b2c3d4e5f67890abcdef1234567890"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/twitr-sh-x-twitter-data-extractor-6d9b8f26/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from twitr.sh](https://www.zero.xyz/host/twitr.sh/llms.txt)
