# Truth Social Post Scraper (x402)

> Truth Social Post 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).

Fetches structured post data from Truth Social public profiles or specific post IDs, returning cleaned content with metadata, pay-per-call via x402.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/v1/truth?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/truth-social-post-scraper-x402-fc0a2b3c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Z3w4Dn-i6SQJjz6pODmCG

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 truth-social-post-scraper-x402-fc0a2b3c -d '<json body>'
```

Example prompt: Fetch the last 20 posts from the Truth Social account @realDonaldTrump, skip replies, and return clean text content without HTML markup.

## When to prefer this

Choose this endpoint when you need structured post data from Truth Social specifically — either a user's timeline or specific posts by ID. It is pay-per-call with no charge for failed or empty runs, making it cost-efficient for polling and monitoring. Prefer it over generic web scrapers when you need clean, parsed post content (timestamps, IDs, cleaned text) rather than raw HTML, and when you want built-in pagination control and incremental-fetch support via useLastPostId.

## Known failure modes

- Private or suspended account returns empty results (not charged)
- Invalid username or post ID returns empty results (not charged)
- Rate limiting or platform blocking may cause empty runs (not charged)
- Combining useLastPostId and startFromId is not supported and may cause errors
- Very large maxPages values may time out on accounts with extensive history

## How this service works

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

## Output

A JSON object with a count of returned items and an array of post objects, each containing the post's numeric ID, URI, URL, title, cleaned text content, raw HTML content, creation timestamp, and edit timestamp. Failed or empty scrape runs are not billed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "maxPages": {
   "type": "integer",
   "default": 100,
   "minimum": 1,
   "description": "Safety cap for timeline requests. Each page contains at most 20 posts; filtered results can be fewer."
  },
  "maxPosts": {
   "type": "integer",
   "default": 20,
   "minimum": 1,
   "description": "Maximum results from the profile timeline. Filtering may require reading more posts."
  },
  "username": {
   "type": "string",
   "description": "Public profile username, @username, or full profile URL. Omit when providing specific post IDs."
  },
  "onlyMedia": {
   "type": "boolean",
   "default": false,
   "description": "Return posts with image, video, or other media attachments."
  },
  "onlyReplies": {
   "type": "boolean",
   "default": false,
   "description": "Return only posts that reply to another post. By default, return posts that are not replies."
  },
  "startFromId": {
   "type": "string",
   "description": "Fetch older posts, excluding this post ID. Cannot be combined with useLastPostId."
  },
  "cleanContent": {
   "type": "boolean",
   "default": true,
   "description": "Remove HTML markup from content. The original markup is always available in rawContent."
  },
  "singlePostId": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "Fetch these public posts directly. Accepts numeric IDs or post URLs. Overrides timeline settings."
  },
  "useLastPostId": {
   "type": "boolean",
   "default": false,
   "description": "Save the newest post ID for this username and stop at that ID on later runs using the same storage."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "id": null,
    "uri": null,
    "url": null,
    "title": null,
    "content": null,
    "editedAt": null,
    "createdAt": null,
    "rawContent": null
   }
  ],
  "product": "truth"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/truth-social-post-scraper-x402-fc0a2b3c/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)
