Threads User Profile Scraper
Pricing
$1.00 / 1,000 profiles
Threads User Profile Scraper
Extract Threads user profile data (username, ID, bio, profile image, followers count, etc.) from any Threads.com profile URL — no login required.
Pricing
$1.00 / 1,000 profiles
Rating
0.0
(0)
Developer

Tran Tu
Actor stats
1
Bookmarked
9
Total users
5
Monthly active users
a month ago
Last modified
Categories
Share
Threads Profile Scraper
Collect public Threads profile metadata from one or more profile handles or URLs and export structured results to your Apify Dataset and Key-Value Store.
What this actor does
- Accepts profile URLs, usernames, or @usernames
- Normalizes everything into canonical URLs:
https://www.threads.com/@<username> - Retrieves public profile data (id, username, biography, counts, profile pic URLs…)
- Outputs structured user items to the Dataset
- Does not require a Threads login or cookies
Input
Supported input formats
You can provide:
1) URLs
https://threads.com/@usernamehttps://www.threads.com/@username
2) Usernames
"username"
3) @Usernames
"@username"
Input schema
{"urls": ["https://threads.com/@sample_user","@another_user","plainusername"],"usernames": ["zuck", "@meta"],"timeoutMs": 15000}
Input fields
| Field | Type | Required | Notes |
|---|---|---|---|
urls | string[] | No* | URLs or usernames mixed. |
url | string | No* | Single entry (URL or username). |
usernames | string[] | No* | Accepts "username" or "@username". |
username | string | No* | Single username. |
timeoutMs | number | No | Request timeout (default 15000ms). |
- At least one of:
urls,url,usernames,username.
Output
Dataset items
The actor produces multiple item types:
User item (main output)
{"type": "user","sourceUrl": "https://www.threads.com/@sample_user","id": "73816755568","username": "sample_user","full_name": "Sample Name","biography": "Just a demo 🙂","profile_pic_url": "https://instagram.cdn.example/profile.jpg","follower_count": 123}
Key-Value Store (SUMMARY.json)
{"totalUrls": 5,"totalUsers": 4,"collectedAt": "2025-11-12T14:05:10.789Z"}
Quick start (no code)
-
Open the actor → Run
-
Paste your JSON input
-
When finished:
- Open Dataset → export JSON/CSV/XLSX
- Check Key-Value Store →
SUMMARY.json
API Usage
Start a run
curl -X POST "https://api.apify.com/v2/acts/trantus~threads-user-profile-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"urls": ["@sample_user", "anotheruser"],"timeoutMs": 15000}'
Fetch last run dataset items
$curl "https://api.apify.com/v2/acts/trantus~threads-user-profile-scraper/runs/last/dataset/items?token=YOUR_TOKEN"
Node.js Example
const client = new ApifyClient({token: '<YOUR_API_TOKEN>',});// Prepare Actor inputconst input = {"urls": ["https://threads.com/@zuck","@zuck"],"timeoutMs": 15000};(async () => {// Run the Actor and wait for it to finishconst run = await client.actor("FYtwWIDM3wDkTpAjF").call(input);// Fetch and print Actor results from the run's dataset (if any)console.log('Results from dataset');const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => {console.dir(item);});})();
FAQ
Q: Can I use just a username instead of a URL?
A: Yes — "username" and "@username" are fully supported.
Q: Can I mix URLs and usernames?
A: Yes, the actor automatically normalizes all inputs.
Q: Do I need a Threads login?
A: No. Everything uses public data.
Q: Does this scrape posts or comments?
A: No — this actor is profile-only.
Changelog
- 1.1.0 – Added support for usernames and @usernames
- 1.0.0 – Initial release (URL-only)
Sample run (demo)
Input
{"urls": ["@sample_user", "anotheruser"],}
Sample Dataset items
[{"type": "user","sourceUrl": "https://www.threads.com/@sample_user","id": "73816755568","username": "sample_user"}]
Sample SUMMARY.json
{"totalUrls": 2,"totalUsers": 1,"collectedAt": "2025-11-12T14:05:10Z"}
Happy scraping! 🚀