Threads User Profile Scraper avatar
Threads User Profile Scraper

Pricing

$1.00 / 1,000 profiles

Go to Apify Store
Threads User Profile Scraper

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

Tran Tu

Maintained by Community

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/@username
https://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

FieldTypeRequiredNotes
urlsstring[]No*URLs or usernames mixed.
urlstringNo*Single entry (URL or username).
usernamesstring[]No*Accepts "username" or "@username".
usernamestringNo*Single username.
timeoutMsnumberNoRequest 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)

  1. Open the actor → Run

  2. Paste your JSON input

  3. When finished:

    • Open Dataset → export JSON/CSV/XLSX
    • Check Key-Value StoreSUMMARY.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 input
const input = {
"urls": [
"https://threads.com/@zuck",
"@zuck"
],
"timeoutMs": 15000
};
(async () => {
// Run the Actor and wait for it to finish
const 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! 🚀