X (Twitter) User Profile Scraper
Pricing
from $0.70 / 1,000 profile scrapeds
X (Twitter) User Profile Scraper
"Get X/Twitter profile data - display name, bio, follower count, following count, tweet count, verification badge, and location - from a list of usernames. Uses public guest access only, no login, no cookies, no account risk."
Pricing
from $0.70 / 1,000 profile scrapeds
Rating
0.0
(0)
Developer
Gopalakrishnan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Cheapest Twitter/X User Profile Scraper (No Login, No Cookies)
Fast, lightweight, and extremely cost-effective user profile scraper for Twitter/X. Retrieve user IDs, names, follower counts, following counts, tweet counts, locations, and bios without account login or cookies.
Why Choose This Scraper?
- Cheapest & Lightest: Optimized to run with guest token authentication instead of spinning up browser instances, resulting in massive speed and resource savings.
- Safe & Private: Performs scraping entirely logged-out. Because it does not use your account cookies, there is zero risk of your personal accounts getting flagged or banned.
- No Login / No Cookies Required: Uses official guest token activation from Twitter's web app client to make authorized GraphQL API calls directly.
- Reliable & Automatic: Built-in auto-retry mechanics for guest token rotation, auto-concurrency scaling, and rate-limit detection.
Input Parameters
The Actor accepts the following input parameters:
| Field Name | Type | Required | Description | Default |
|---|---|---|---|---|
usernames | Array | Yes | A list of Twitter/X usernames (e.g. elonmusk) or full profile URLs (e.g. https://x.com/elonmusk). Both formats are accepted. | - |
maxProfiles | Integer | No | The maximum number of profiles to scrape. Leave empty for no limit. | - |
proxyConfiguration | Object | Yes | Proxy settings. Apify Proxy (datacenter or residential) is required to bypass Twitter's IP-based rate limiting. | { "useApifyProxy": true } |
Output Data Structure
Every successfully scraped profile produces a clean, flat JSON object. If a handle is suspended, deleted, or does not exist, an error row with scrapeStatus: "error" is pushed to prevent empty records.
Scraped Profile Fields
| Field Name | Type | Description |
|---|---|---|
username | String | The screen name/handle (e.g. elonmusk). |
name | String | Display name of the user. |
userId | String | Twitter rest_id/User ID. |
description | String | Bio description of the user. |
followersCount | Integer | Total number of followers. |
followingCount | Integer | Total number of following accounts. |
tweetCount | Integer | Total number of tweets/posts. |
verified | Boolean | Whether the account is verified or blue-verified. |
profileImageUrl | String | URL of the profile image. |
location | String | Stated user location. |
createdAt | String | Timestamp when the account was created. |
profileUrl | String | Full profile URL (https://x.com/handle). |
scrapeStatus | String | Scrape status: success or error. |
scrapeError | String | Error explanation (e.g., USER_NOT_FOUND) if status is error. |
scrapedAt | String | ISO timestamp when the scrape was performed. |
Billing & Pay-Per-Event (PPE)
This Actor uses Apify's Pay-Per-Event (PPE) pricing to ensure you only pay for what you get:
actor-start: Charged 1 time per run to cover bootstrap overhead.profile-scraped: Charged once per profile successfully scraped. If a profile lookup fails (e.g., username does not exist), you are not billed for theprofile-scrapedevent for that handle.