# Threads Scraper — Profiles, Posts & Search

> Threads Scraper — Profiles, Posts & Search 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 public Threads profiles, posts, and keyword search results into structured JSON records

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/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-profiles-posts-search-8166d80c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_EHXDAN8u9I95-r8uyxls6

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-profiles-posts-search-8166d80c -d '<json body>'
```

Example prompt: Pull up to 50 recent posts from the Threads accounts @zuck and @mosseri posted after 2025-01-01, and include their profile info too.

## When to prefer this

Choose this endpoint when you need structured, pay-per-result data from public Threads accounts or keyword searches without building your own scraper. It is especially useful for brand monitoring, influencer research, and social listening on Threads specifically. The pay-per-call model (only charged on non-empty results) makes it cost-efficient for variable workloads. Prefer this over general web scraping tools when the target is specifically Threads profiles or posts.

## Known failure modes

- Private or non-existent Threads accounts return no items (not charged)
- Search queries with no matching public posts return an empty items array (not charged)
- Rate limits or upstream Threads blocks may result in partial data
- Invalid mode enum values or missing required arrays (usernames/searchQueries) for selected mode may cause errors
- postedAfter/postedBefore in wrong format may be ignored or cause empty results

## 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 be a profile record (userId, username, fullName, biography, isVerified, followerCount, profilePicUrl) or a post record, depending on the requested mode. The product field is always 'threads'. Failed or empty runs are not billed.

## 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-profiles-posts-search-8166d80c/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)
