# Twitter/X Profile Post Scraper

> Twitter/X Profile Post Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes and returns recent public posts from one or more Twitter/X profile URLs as structured JSON data

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/twitter-profiles?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-x-profile-post-scraper-b0eee9ca
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Pt0QsBQ_g8NKv4kbhWTMR

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-x-profile-post-scraper-b0eee9ca -d '<json body>'
```

Example prompt: Pull the latest 5 posts from each of these Twitter profiles — twitter.com/elonmusk and twitter.com/sama — skip any pinned posts, and give me the text, timestamp, and post URL for each one.

## When to prefer this

Choose this endpoint when you need structured post data from public Twitter/X profiles without using the official Twitter API (which requires developer credentials and has strict rate limits). It's ideal for agents that need to monitor, audit, or analyze recent public tweets from a known list of accounts. The pay-per-call model with no charge on empty/failed runs makes it low-risk for exploratory or intermittent use cases.

## Known failure modes

- Profile is private or suspended — returns empty items array (not charged)
- Profile URL is malformed or invalid — may return error or empty result
- Rate limiting or blocking by Twitter/X — scrape may return partial or no results
- Network timeout — run fails and is not charged
- Twitter/X UI changes break the scraper — fields may return null unexpectedly

## 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 of results and an array of post items, each containing postId, postUrl, postText, author, timestamp, media attachments, profileUrl, and conversationId. Fields may be null if not available on the public page.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "maxItems": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "Maximum posts across all profiles. Zero means no additional total cap."
  },
  "profileUrls": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "Public x.com or twitter.com profile URLs. The actor saves up to five initial posts per profile."
  },
  "resultsLimit": {
   "type": "integer",
   "default": 5,
   "maximum": 5,
   "minimum": 1,
   "description": "Maximum posts to save per profile, up to the five available on the public first page."
  },
  "skipPinnedPosts": {
   "type": "boolean",
   "default": false,
   "description": "Exclude posts marked as pinned on the public profile page."
  }
 }
}
```

## Response schema (JSON Schema)

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

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/twitter-x-profile-post-scraper-b0eee9ca/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
