# Threads Scraper API (x402)

> Threads Scraper API (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 public data from Threads — profiles, posts, and keyword search results — billed per call via x402 micropayment.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/v1/threads?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/threads-scraper-api-x402-bae69417
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Sc7GMDikssJwVcmn78Ep4

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 threads-scraper-api-x402-bae69417 -d '<json body>'
```

Example prompt: Pull the last 50 posts and profile info for the Threads accounts @zuck and @instagram — search mode isn't needed, just posts mode — and filter to anything posted after 2024-01-01.

## When to prefer this

Choose this endpoint when you need structured Threads data (profiles, posts, or keyword search) without managing your own scraper infrastructure. It is pay-per-call via x402 micropayment ($0.025 USDC), and failed or empty runs are not billed — making it low-risk for exploratory or conditional workflows. Prefer it over general web scraping when you specifically need Threads-native data fields like follower counts, verification status, or post engagement.

## Known failure modes

- Account is private — no posts returned, not charged
- Username does not exist on Threads — empty result, not charged
- Search query returns no matching posts — empty result, not charged
- Rate limit or scraper block from Threads — upstream failure, not charged
- Invalid mode value — request rejected with validation error
- postedAfter/postedBefore date format invalid — request rejected

## 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 items array. Each item can represent a user profile (username, full name, biography, follower count, verified status, profile picture URL) or a post, depending on the selected mode. The product field confirms the data source as 'threads'.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "mode": {
   "enum": [
    "profile",
    "posts",
    "search"
   ],
   "type": "string",
   "default": "posts",
   "description": "Choose profile records, posts from public accounts, or keyword search."
  },
  "maxItems": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "Maximum dataset items across all targets; 0 means no total cap."
  },
  "maxPosts": {
   "type": "integer",
   "default": 20,
   "maximum": 200,
   "minimum": 1,
   "description": "Maximum posts per username or search query, up to 200; availability may be lower."
  },
  "usernames": {
   "type": "array",
   "description": "Public Threads usernames for profile or posts mode; @ is optional."
  },
  "searchSort": {
   "enum": [
    "top",
    "recent"
   ],
   "type": "string",
   "default": "top",
   "description": "Top ranks by relevance; recent shows the newest available matches."
  },
  "postedAfter": {
   "type": "string",
   "description": "Include posts at or after this ISO date or timestamp."
  },
  "postedBefore": {
   "type": "string",
   "description": "Include posts before this ISO date or timestamp."
  },
  "searchQueries": {
   "type": "array",
   "description": "Keywords or phrases to find public posts in search mode."
  },
  "includeProfile": {
   "type": "boolean",
   "default": true,
   "description": "Include a separate profile item alongside posts from each username."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "type": null,
    "userId": null,
    "fullName": null,
    "username": null,
    "biography": null,
    "isVerified": null,
    "followerCount": null,
    "profilePicUrl": null
   }
  ],
  "product": "threads"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/threads-scraper-api-x402-bae69417/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)
