# Twitter Posts Scraper (x402)

> Twitter Posts Scraper (x402) is a paid API for AI agents from x402.186-241-26-229.sslip.io, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes recent posts from specified public Twitter/X profiles, optionally filtered by keyword or hashtag, and returns structured post data on a pay-per-call basis.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/v1/twitter-posts?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/twitter-posts-scraper-x402-a3d048c3
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_qd3OpTJOSrudMQlvGC183

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 twitter-posts-scraper-x402-a3d048c3 -d '<json body>'
```

Example prompt: Pull the latest 20 posts from @elonmusk and @sama on Twitter from the past 3 days, filtering for any that mention 'AI', and sort them by most recent.

## When to prefer this

Choose this endpoint when you need structured, per-profile Twitter post data without building your own scraper or managing Twitter API credentials. It's pay-per-call with no charge for empty or failed runs, making it cost-efficient for sporadic monitoring. Prefer it over Twitter's official API when you need quick access without OAuth setup, or when the official API tier doesn't support the volume or profile access you need.

## Known failure modes

- Empty result if profiles have no recent matching posts (not charged)
- Failed scrape if profile is private or suspended (not charged)
- Invalid username format returns an error
- Time window too narrow returns zero results
- Rate limiting or temporary platform blocks may cause failures

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count and an array of post items, each containing the post ID, URL, full text, author handle, timestamp, reply count, conversation ID, and any attached media references.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "query": {
   "type": "string",
   "default": "",
   "description": "Optional case-insensitive text or hashtag match within posts from the supplied profiles. This is not site-wide search."
  },
  "usernames": {
   "type": "array",
   "description": "Public account handles or profile URLs to inspect. Only the recent posts visible on these pages are searched."
  },
  "searchType": {
   "enum": [
    "latest",
    "top"
   ],
   "type": "string",
   "default": "latest",
   "description": "Sort collected posts by publication time or by likes among the public slice."
  },
  "timeWindow": {
   "type": "integer",
   "minimum": 1,
   "description": "Optional age limit in days. Hours takes precedence when both are set."
  },
  "resultsCount": {
   "type": "integer",
   "default": 30,
   "minimum": 1,
   "description": "Maximum number of matching posts in the result dataset across all profiles."
  },
  "timeWindowHours": {
   "type": "integer",
   "minimum": 1,
   "description": "Optional age limit in hours; overrides the day limit."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "media": null,
    "author": null,
    "postId": null,
    "postUrl": null,
    "postText": null,
    "timestamp": null,
    "replyCount": null,
    "conversationId": null
   }
  ],
  "product": "twitter-posts"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/twitter-posts-scraper-x402-a3d048c3/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
