← Back to Skills Marketplace
futurizerush

Apify Threads Scraper

by Futurize Rush · GitHub ↗ · v0.2.1 · MIT-0
cross-platform ⚠ suspicious
105
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install apify-threads-scraper
Description
This skill should be used when the user asks to "scrape Threads posts", "get Threads data", "extract Threads content", "search Threads", "monitor Threads has...
README (SKILL.md)

Threads Scraper with Apify

Scrape Meta Threads posts, search by keyword or hashtag, and extract engagement metrics. No login required.

Actor: futurizerush/meta-threads-scraper

Prerequisites

Set APIFY_API_TOKEN in environment. Get a token at console.apify.com/account/integrations.

Execution Flow

Apify runs are asynchronous. Every request follows 3 steps:

  1. Start a run -- POST to the actor API, receive a run ID and dataset ID
  2. Poll until done -- GET the run status, wait for SUCCEEDED
  3. Fetch results -- GET the dataset items (returns a JSON array)

Typical run time: 30 seconds to 2 minutes depending on max_posts.

Input Parameters

Parameter Type Required Description
mode enum Yes "user" (user posts), "keyword" (hashtag/tag), "search" (full-text keyword search)
usernames array of strings For user mode Usernames without @ (e.g. ["zuck"])
keywords array of strings For keyword/search mode Single-word keywords or hashtags (e.g. ["AI"], ["fashion"])
search_filter "top" / "recent" No Sort order. search mode only. Default: "top"
max_posts integer No Max posts per user/keyword. Default: 200
start_date string No Start date (YYYY-MM-DD). search mode only
end_date string No End date (YYYY-MM-DD). search mode only

Mode differences

  • user -- Scrape a user's timeline. Requires usernames.
  • keyword -- Search by hashtag/tag. Requires keywords.
  • search -- Full-text keyword search with sort and date filtering. Requires keywords. Supports search_filter, start_date, end_date.

Complete Example (Python)

import requests, os, time

TOKEN = os.environ["APIFY_API_TOKEN"]
BASE = "https://api.apify.com/v2"

# Step 1: Start the run
response = requests.post(
    f"{BASE}/acts/futurizerush~meta-threads-scraper/runs?token={TOKEN}",
    json={"mode": "user", "usernames": ["futurizerush"], "max_posts": 5},
)
response.raise_for_status()
run = response.json()["data"]
run_id = run["id"]
dataset_id = run["defaultDatasetId"]

# Step 2: Poll until done
while True:
    status = requests.get(
        f"{BASE}/actor-runs/{run_id}?token={TOKEN}"
    ).json()["data"]["status"]
    if status == "SUCCEEDED":
        break
    if status in ("FAILED", "ABORTED", "TIMED-OUT"):
        raise RuntimeError(f"Run failed: {status}")
    time.sleep(5)

# Step 3: Fetch results (JSON array)
items = requests.get(
    f"{BASE}/datasets/{dataset_id}/items?token={TOKEN}"
).json()
for post in items:
    print(f"@{post['username']}: {post['text_content'][:80]}")
    print(f"  likes={post['like_count']} replies={post['reply_count']} views={post['view_count']}")

Search recent posts by keyword

requests.post(
    f"{BASE}/acts/futurizerush~meta-threads-scraper/runs?token={TOKEN}",
    json={
        "mode": "search",
        "keywords": ["AI"],
        "search_filter": "recent",
        "max_posts": 10,
    },
)

Search by hashtag

requests.post(
    f"{BASE}/acts/futurizerush~meta-threads-scraper/runs?token={TOKEN}",
    json={"mode": "keyword", "keywords": ["automation"], "max_posts": 20},
)

Complete Example (bash)

# Step 1: Start the run
RUN_RESPONSE=$(curl -s -X POST \
  "https://api.apify.com/v2/acts/futurizerush~meta-threads-scraper/runs?token=$APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "user", "usernames": ["futurizerush"], "max_posts": 5}')

RUN_ID=$(echo "$RUN_RESPONSE" | jq -r '.data.id')
DATASET_ID=$(echo "$RUN_RESPONSE" | jq -r '.data.defaultDatasetId')

# Step 2: Poll until done
while true; do
  STATUS=$(curl -s "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_API_TOKEN" \
    | jq -r '.data.status')
  [ "$STATUS" = "SUCCEEDED" ] && break
  [ "$STATUS" = "FAILED" ] || [ "$STATUS" = "ABORTED" ] && echo "Failed: $STATUS" && exit 1
  sleep 5
done

# Step 3: Fetch results
curl -s "https://api.apify.com/v2/datasets/$DATASET_ID/items?token=$APIFY_API_TOKEN" | jq '.'

Output Format

Each item in the results array (field names verified from real API output on 2026-04-11):

{
  "text_content": "Post text here...",
  "username": "lucky_dilkhush7970",
  "display_name": "Lucky Dilkhush",
  "profile_url": "https://www.threads.com/@lucky_dilkhush7970",
  "profile_pic_url": "https://scontent-iad6-1.cdninstagram.com/...",
  "is_verified": false,
  "followers_count": 11,
  "bio": "",
  "like_count": 19,
  "reply_count": 7,
  "repost_count": 0,
  "quote_count": 0,
  "share_count": 1,
  "view_count": 602,
  "post_code": "DRyBIddEjav",
  "post_url": "https://www.threads.com/@lucky_dilkhush7970/post/DRyBIddEjav",
  "created_at": "2025-12-03T00:40:19+00:00",
  "created_at_timestamp": 1764722419,
  "has_media": true,
  "media_type": "photo",
  "media_url": "https://scontent-iad6-1.cdninstagram.com/...",
  "media_urls": [],
  "hashtags": [],
  "mentions": [],
  "urls": [],
  "emails": [],
  "phones": [],
  "bio_links": [],
  "external_links": [],
  "is_pinned": false,
  "is_edited": false,
  "search_keyword": "AI",
  "scraped_at": "2026-04-11T05:24:26.152274+00:00"
}

Note: Field names use snake_case. Access with post['like_count'] not post['likeCount'].

Error Handling

Error Cause Fix
401 Unauthorized Invalid or missing API token Check APIFY_API_TOKEN
FAILED: "At least one username is required" mode is "user" but usernames is missing or empty Add "usernames": ["name"]
FAILED: "No posts found" User has no public posts or Threads rate limit Try a different user or wait and retry

Tips

  • Use mode: "search" with search_filter: "recent" for real-time monitoring and alerting.
  • Use mode: "keyword" for hashtag-based discovery.
  • Use single-word keywords for best results (e.g. "AI", "fashion", "tech").
  • No login or session ID required.
  • Results are a JSON array, not a single object.
  • All field names use snake_case (e.g. text_content, like_count, view_count).
  • For reply/comment extraction, use the separate Threads Replies Scraper actor (futurizerush/threads-replies-scraper).

Links

Usage Guidance
Do not provide your APIFY_API_TOKEN without verifying the skill. The SKILL.md requires APIFY_API_TOKEN to start Apify actor runs and fetch datasets; the registry metadata incorrectly lists no credentials and the description incorrectly says "No login required." Before installing: 1) Confirm the actor owner (futurizerush) and inspect the actor's code on Apify.org if possible; 2) Create a limited-scope Apify token (or rotate it afterward) rather than using a full-permission account token; 3) Test with a token that has minimal privileges and small quotas; 4) Verify what data the actor will store in datasets and whether those outputs could contain sensitive info; 5) Ask the skill author/registry maintainer to correct the metadata to declare APIFY_API_TOKEN as a required credential and to clarify the "No login required" statement. The mismatch may be an innocent packaging error, but because an Apify token can run arbitrary actors and access your account data, treat this as a security-sensitive decision.
Capability Analysis
Type: OpenClaw Skill Name: apify-threads-scraper Version: 0.2.1 The skill is a legitimate integration for scraping Meta Threads data via the Apify platform. It provides clear instructions and code examples (Python and Bash) for interacting with the Apify API (api.apify.com) using a user-provided API token. No evidence of data exfiltration, malicious execution, or prompt injection was found in SKILL.md or _meta.json.
Capability Assessment
Purpose & Capability
The declared purpose (scrape Meta Threads via an Apify actor) matches the SKILL.md instructions which call the Apify REST API and an actor (futurizerush/meta-threads-scraper). However the registry metadata states no required environment variables or primary credential, while the SKILL.md explicitly requires APIFY_API_TOKEN — an important mismatch that weakens trust in the packaging.
Instruction Scope
The SKILL.md instructions are focused and limited to calling Apify endpoints (starting a run, polling status, fetching dataset items). They do not instruct reading unrelated files, scanning the system, or exfiltrating data to unexpected endpoints. One problematic statement: the doc says "No login required" while also requiring an APIFY_API_TOKEN, which is contradictory and confusing for users.
Install Mechanism
There is no install spec and no code files — this is instruction-only, so nothing is written to disk by the skill bundle itself. That reduces installation risk.
Credentials
The runtime requires APIFY_API_TOKEN (documented in SKILL.md) which is proportionate to calling Apify. However the skill registry metadata omits this requirement (lists no required env vars/primary credential). Because an Apify token grants the ability to run actors and access datasets in the user's Apify account, the missing declaration in metadata is a meaningful omission that should be resolved before trusting the skill.
Persistence & Privilege
The skill does not request always:true and has no install-time hooks or config changes. It does not demand persistent system privileges or modify other skills' settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install apify-threads-scraper
  3. After installation, invoke the skill by name or use /apify-threads-scraper
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.2.1
Add discovery tags for SEO
v0.2.0
Initial release. Scrape Meta Threads posts by user, keyword, or search. All output fields verified from real API runs.
Metadata
Slug apify-threads-scraper
Version 0.2.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is Apify Threads Scraper?

This skill should be used when the user asks to "scrape Threads posts", "get Threads data", "extract Threads content", "search Threads", "monitor Threads has... It is an AI Agent Skill for Claude Code / OpenClaw, with 105 downloads so far.

How do I install Apify Threads Scraper?

Run "/install apify-threads-scraper" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Apify Threads Scraper free?

Yes, Apify Threads Scraper is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Apify Threads Scraper support?

Apify Threads Scraper is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Apify Threads Scraper?

It is built and maintained by Futurize Rush (@futurizerush); the current version is v0.2.1.

💬 Comments