# Twitter X Profile Scraper (`mikolabs/twitter-x-profile-scraper`) Actor

Extract tweets and complete profile information from any X (Twitter) account in 4 sec. This powerful scraper auto-detects what to collect—profiles, tweets, users, or lists—and delivers clean, structured data instantly with adv filters.

- **URL**: https://apify.com/mikolabs/twitter-x-profile-scraper.md
- **Developed by:** [Mikolabs](https://apify.com/mikolabs) (community)
- **Categories:** Social media, Automation, Developer tools
- **Features:** Limited permissions
- **Stats:** 100 total users, 11 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Twitter/X Profile Scraper – Extract Bio, Followers & Following Counts (No Login)

> **Scrape X (Twitter) profiles by username or profile URL. Get bio, followers, following, verification, location and more. No login required. API ready.**

The **Twitter/X Profile Scraper** is an ultra-fast, production-ready Apify actor and Twitter user scraper engineered to extract public Twitter/X profile data and engagement metrics in bulk. Whether you provide a single Twitter username (`@elonmusk`), paste profile URLs (`https://x.com/apify`), or upload bulk usernames, this profile scraper instantly collects user bio, follower counts, following counts, verification status, media URLs, and timeline tweets in under 4 seconds—with **no login required**, no cookies, and no official API keys.

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-orange?style=for-the-badge\&logo=apify)](https://apify.com/mikolabs/twitter-x-profile-scraper)
[![Speed](https://img.shields.io/badge/Speed-4%20Sec%20Extraction-blue?style=for-the-badge\&logo=speedtest)](https://apify.com/mikolabs/twitter-x-profile-scraper)
[![No Login Required](https://img.shields.io/badge/No%20Login-Required-brightgreen?style=for-the-badge\&logo=x)](https://apify.com/mikolabs/twitter-x-profile-scraper)
[![API Ready](https://img.shields.io/badge/API-Ready%20\(Python%20%7C%20Node.js\)-blueviolet?style=for-the-badge)](https://apify.com/mikolabs/twitter-x-profile-scraper)
[![Reviews & Ratings](https://img.shields.io/badge/Reviews%20%26%20Ratings-⭐%20Rate%20Actor-gold?style=for-the-badge)](https://console.apify.com/actors/ocAvf7y5eQGW223YL/info/reviews?build=latest)
[![Export Formats](https://img.shields.io/badge/Export-JSON%20%7C%20CSV%20%7C%20Excel-purple?style=for-the-badge)](https://apify.com/mikolabs/twitter-x-profile-scraper)

***

### Scrape Twitter profile data by username or URL

Extracting user profiles from X (Twitter) traditionally requires costly enterprise developer accounts or brittle browser sessions. With this **Twitter profile scraper**, you can extract complete public account details in bulk using standard inputs:

- **Twitter Usernames / Handles:** Single or bulk usernames with or without the `@` symbol (e.g. `elonmusk`, `@sama`, `figma`, `apify`).
- **Profile URLs:** Direct links to public X or Twitter profiles (`https://x.com/username` or `https://twitter.com/username`).
- **Bulk Processing:** Submit lists of dozens, hundreds, or thousands of profiles simultaneously. The built-in concurrency engine auto-scales proxy rotation and parallel requests.
- **Auto-Detection:** Pass any mix of handles or URLs; the scraper automatically normalizes targets and extracts the profile data.

***

### What data does the Twitter profile scraper extract?

The scraper delivers clean, structured datasets in JSON, CSV, or Excel formats. For every target account, it extracts:

| Category | Extracted Data Fields | Description |
|---|---|---|
| **Identity & Account** | `username`, `fullname`, `id`, `url` | Clean Twitter handle, display name, user ID, and canonical profile URL |
| **Profile Biography** | `bio` (`description`), `website` | Full bio text, bio hashtags/mentions, and external profile link |
| **Metrics & Counts** | `followersCount`, `followingCount`, `tweetsCount`, `likesCount` | Real-time follower counts, following counts, total posts, and likes |
| **Trust & Verification** | `verified`, `verified_type`, `blueVerified` | Verification badge status (Blue, Gold/Organization, Government, Legacy) |
| **Visual Assets** | `avatar`, `banner` | High-resolution avatar profile picture URL and header banner image URL |
| **Account Metadata** | `joined`, `location`, `isProtected` | Account creation date, user location string, and public/private status |
| **Timeline Content** | `tweets` (optional) | Recent tweets, retweets, replies, media attachments, and engagement metrics |

***

### Twitter followers count scraper (no login)

> \[!NOTE]
> **Follower Counts vs. Follower Lists:** This Actor is a dedicated **Twitter follower count scraper and profile metrics extractor**. It returns accurate, real-time numeric follower counts and following counts instantly. It does **not** scrape massive directories of individual follower account lists, ensuring lightning-fast execution (~4 seconds) and zero risk of rate limits or account blocks.

#### Why No Login Matters:

- **Zero Account Ban Risk:** You never need to supply your personal or burner Twitter/X credentials, cookies, or auth tokens.
- **Instant Setup:** Start extracting immediately—no 2FA authentication, phone verification, or session cookie maintenance.
- **Uncapped Parallelization:** Extract hundreds of profiles concurrently without worrying about per-account rate caps.

***

### Twitter profile scraper API

You can execute this scraper directly via the **Apify REST API**, Apify CLI, or the official Apify client SDKs for Python and JavaScript/Node.js.

#### API Endpoint (REST):

```http
POST https://api.apify.com/v2/acts/mikolabs~twitter-x-profile-scraper/runs?token=YOUR_APIFY_TOKEN
Content-Type: application/json

{
  "twitterHandles": ["elonmusk", "apify"],
  "twitterUrls": ["https://x.com/figma"],
  "scrapeProfileInfo": true,
  "maxItems": 10
}
```

#### Fetch Dataset Items via API:

```http
GET https://api.apify.com/v2/datasets/{DATASET_ID}/items?format=json&clean=true
```

***

### Example input and output (JSON)

#### Example Input Payload (Bulk Usernames & URLs):

```json
{
  "twitterHandles": [
    "elonmusk",
    "sama"
  ],
  "twitterUrls": [
    "https://x.com/apify"
  ],
  "scrapeProfileInfo": true,
  "maxItems": 5,
  "includeReplies": false,
  "includeRetweets": true
}
```

#### Example Profile Output (JSON):

```json
{
  "type": "profile",
  "username": "apify",
  "fullname": "Apify",
  "bio": "Web scraping and automation platform. Extract data from any website with ready-made scrapers or build your own with our open-source tools.",
  "followersCount": 16420,
  "followingCount": 435,
  "tweetsCount": 2480,
  "likesCount": 1390,
  "followers": 16420,
  "following": 435,
  "tweets": 2480,
  "likes": 1390,
  "verified": true,
  "verified_type": "blue",
  "avatar": "https://pbs.twimg.com/profile_images/1789012345678901234/example_avatar.jpg",
  "banner": "https://pbs.twimg.com/profile_banners/123456789/example_banner.jpg",
  "website": "https://apify.com",
  "location": "San Francisco, CA & Prague, Czech Republic",
  "joined": "January 2015",
  "profileUrl": "https://x.com/apify",
  "scrape_date": "2026-10-11T12:00:00.000Z"
}
```

#### Example Tweet Output (JSON):

```json
{
  "type": "tweet",
  "tweet_id": "1845123456789012345",
  "url": "https://x.com/apify/status/1845123456789012345",
  "text": "Extract profiles, follower counts, and bio data from any Twitter/X user in 4 seconds with no login required! #webscraping #data",
  "username": "apify",
  "fullname": "Apify",
  "date": "2026-10-11T12:05:00.000Z",
  "likes": 342,
  "retweets": 89,
  "replies": 27,
  "quotes": 14,
  "hashtags": ["#webscraping", "#data"],
  "mentions": ["@apify"],
  "urls": ["https://apify.com/mikolabs/twitter-x-profile-scraper"],
  "media": [
    {
      "type": "image",
      "url": "https://pbs.twimg.com/media/example_media_preview.jpg",
      "thumbnail": "https://pbs.twimg.com/media/example_media_thumb.jpg"
    }
  ],
  "is_retweet": false,
  "is_reply": false,
  "author": {
    "username": "apify",
    "fullname": "Apify",
    "avatar": "https://pbs.twimg.com/profile_images/1789012345678901234/example_avatar.jpg",
    "verified": true
  },
  "scrape_date": "2026-10-11T12:05:30.000Z"
}
```

***

### Pricing per 1,000 profiles

Twitter/X Profile Scraper operates on transparent **Pay-Per-Result** pricing based on successfully extracted dataset items. You never pay for failed requests or empty responses.

| Model / Tier | Pricing per 1,000 Profiles | Pricing per Profile | Included Free Monthly Tier |
|---|---|---|---|
| **Apify Free Tier** | **$0.00** | $0.00 | **$5.00 free credits / month** (~250–500 profiles free) |
| **Standard Pay-Per-Result** | **$9.99** / 1,000 items | $0.00999 | Free credits apply automatically |
| **Apify Plan Subscribers (Bronze+)** | **Discounted volume rates** | Scaled | Priority SLA + high concurrency |

> \[!TIP]
> **Free Trial on Every Account:** Apify grants every user **$5 in free monthly usage credits**. You can test extraction across hundreds of profiles at zero cost before committing to higher volumes.

***

### ⚡ Official X API vs. Twitter X Profile Scraper

The official X (Twitter) API charges **$100 to $5,000+ per month**, requires developer vetting and approval, restricts endpoints, and enforces strict rate limits. This scraper provides an instant, affordable alternative.

| Feature | Official X (Twitter) API | Twitter/X Profile Scraper (MikoLabs) |
|---|---|---|
| **Starting Cost** | $100 / month (Basic) to $5,000 / month (Pro) | **$0 to start** ($5 free credit / month) |
| **Pricing Model** | High monthly recurring subscription | **Pay-per-result (from low per-1,000 rates)** |
| **API Keys & Approval** | Mandatory application and verification process | **None required (Immediate execution)** |
| **Login & Cookies** | Requires OAuth keys, tokens, or cookies | **No login or account required** |
| **Latency per Request** | Variable (queue wait, rate limit backoffs) | **~4 seconds per target** |
| **Input Flexibility** | Strict API parameter format | **Accepts handles, full URLs, and bulk lists** |
| **Export Formats** | Raw JSON only | **JSON, CSV, Excel (XLSX), XML, RSS, HTML** |
| **Anti-Blocking System** | Direct IP throttling | **Automatic residential proxy rotation & retries** |

***

### Input Parameters & Bulk Settings

Configure the scraper easily using the Apify visual UI or pass parameters programmatically via API:

| Parameter | Type | Default | Description |
|---|---|---|---|
| `twitterHandles` | `array` | `["solana"]` | Usernames to extract in bulk (with or without `@`, e.g. `elonmusk`, `figma`). |
| `twitterUrls` | `array` | `[]` | Direct profile URLs in bulk (e.g. `https://x.com/elonmusk`). |
| `scrapeProfileInfo` | `boolean` | `true` | Extract full profile metadata (`bio`, `followersCount`, `followingCount`, `verified`, etc.). |
| `maxItems` | `integer` | `20` | Max tweets to collect per profile (`0` = full timeline extraction). |
| `includeReplies` | `boolean` | `false` | Include reply posts in the timeline extraction. |
| `includeRetweets` | `boolean` | `true` | Include shared retweets in timeline results. |
| `mediaOnly` | `boolean` | `false` | Only extract posts containing photos, videos, or GIFs. |
| `searchTerms` | `array` | `[]` | Keywords or search queries to filter within tweets. |
| `startDate` | `string` | `""` | Filter tweets posted on or after date (`YYYY-MM-DD`). |
| `endDate` | `string` | `""` | Filter tweets posted on or before date (`YYYY-MM-DD`). |
| `minLikes` | `integer` | `0` | Minimum likes threshold (virality filter). |
| `minRetweets` | `integer` | `0` | Minimum retweets threshold. |
| `location` | `string` | `""` | Filter tweets by geographical location name. |
| `proxyConfiguration` | `object` | `{"useApifyProxy": true}` | Proxy configuration for automatic rotation and anti-blocking. |

***

### Python SDK Quick Start

Scrape Twitter user profiles and follower counts in Python using the official `apify-client`:

```python
from apify_client import ApifyClient

## 1. Initialize ApifyClient with your API token
client = ApifyClient("YOUR_APIFY_TOKEN")

## 2. Configure target usernames or profile URLs in bulk
run_input = {
    "twitterHandles": ["elonmusk", "sama", "figma"],
    "twitterUrls": ["https://x.com/apify"],
    "scrapeProfileInfo": True,
    "maxItems": 10,
    "includeReplies": False,
    "includeRetweets": True
}

## 3. Call the Actor and wait for completion (~4 sec per profile)
run = client.actor("mikolabs/twitter-x-profile-scraper").call(run_input=run_input)

## 4. Iterate over clean profile and tweet records
print(f"Dataset ready at: https://console.apify.com/storage/datasets/{run['defaultDatasetId']}\n")

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    if item.get("type") == "profile":
        print(f"[PROFILE] @{item['username']} ({item.get('fullname')})")
        print(f"  Followers: {item.get('followersCount', item.get('followers')):,}")
        print(f"  Following: {item.get('followingCount', item.get('following')):,}")
        print(f"  Bio: {item.get('bio')}\n")
    else:
        print(f"[TWEET] @{item['username']}: {item.get('text', '')[:80]}... ({item.get('likes', 0)} likes)")
```

***

### Node.js / JavaScript Quick Start

Extract profiles and metrics in Node.js / TypeScript using `apify-client`:

```javascript
import { ApifyClient } from 'apify-client';

// 1. Initialize client
const client = new ApifyClient({
    token: 'YOUR_APIFY_TOKEN',
});

// 2. Define input with usernames or profile URLs
const input = {
    twitterHandles: ['elonmusk', 'apify'],
    twitterUrls: ['https://x.com/figma'],
    scrapeProfileInfo: true,
    maxItems: 10,
};

// 3. Run the Twitter profile scraper actor
const run = await client.actor('mikolabs/twitter-x-profile-scraper').call(input);

// 4. Fetch dataset results
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Successfully extracted ${items.length} records!`);

items.forEach((item) => {
    if (item.type === 'profile') {
        console.log(`@${item.username}: ${item.followersCount || item.followers} followers | Bio: ${item.bio}`);
    }
});
```

***

### Top Use Cases

- **Audience & Influencer Research:** Track follower counts, follower growth trends, bio keywords, and influencer niches.
- **Lead Generation & Enrichment:** Enrich existing CRM lists by matching company or founder handles to get verified badges, follower metrics, and location.
- **Competitor Intelligence:** Monitor posting velocity, audience engagement ratios, bio updates, and announcements.
- **AI & NLP Training:** Feed clean social profiles and recent timeline text into LLMs and sentiment analysis pipelines.
- **Brand Reputation Monitoring:** Track brand accounts, executive handles, and verified organization metrics in real time.

***

### Frequently Asked Questions (FAQ)

#### Can I scrape Twitter / X profiles without an API key?

Yes. The Twitter/X Profile Scraper requires zero official X API keys, zero developer account applications, and zero user logins.

#### Does this scraper extract follower lists or follower counts?

This scraper extracts real-time **follower counts** (`followersCount`) and **following counts** (`followingCount`) along with complete profile details. It does **not** extract lists of all individual follower account profiles. This ensures ultra-fast ~4 second execution and zero rate limiting.

#### Can I scrape in bulk by username or profile URL?

Yes. You can supply multiple handles in `twitterHandles` (e.g. `["elonmusk", "sama", "figma"]`) or full profile URLs in `twitterUrls` (e.g. `["https://x.com/elonmusk", "https://twitter.com/apify"]`).

#### What format can I export the scraped data in?

You can download your datasets in **JSON, CSV, Excel (XLSX), XML, RSS, or HTML Table** directly from the Apify Console or stream them programmatically via API.

#### Can I scrape private or protected Twitter accounts?

No. In compliance with data privacy regulations, only publicly available Twitter / X profile data and tweets can be extracted.

#### Is web scraping legal?

Yes. Scraping publicly available internet data is legal under established legal precedents (such as *hiQ Labs v. LinkedIn*). Always comply with local privacy regulations like GDPR and CCPA when handling personal information.

***

### Support & Custom Solutions

Need custom integrations, dedicated high-volume proxy pools, or enterprise social feeds?

- **Leave a Review:** ⭐ If this scraper saved you time, please leave a 5-star rating on the [Apify Reviews Page](https://console.apify.com/actors/ocAvf7y5eQGW223YL/info/reviews?build=latest)!
- **Submit Feedback:** Report bugs or suggest features via the **Issues** tab on Apify.
- **Custom Scraping Pipelines:** Visit [**MikoLabs**](https://mikolabs.xyz/) for custom data scraping solutions.

***

*Engineered and maintained by [MikoLabs](https://mikolabs.xyz/) — Fast, scalable data extraction tools.*

# Actor input Schema

## `twitterHandles` (type: `array`):

Twitter usernames to extract in bulk (e.g. <code>elonmusk</code>, <code>@figma</code>, <code>apify</code>).

## `twitterUrls` (type: `array`):

Direct profile URLs to Twitter/X accounts in bulk (e.g. <code>https://x.com/elonmusk</code> or <code>https://twitter.com/apify</code>).

## `scrapeProfileInfo` (type: `boolean`):

Extract full profile bio, follower count, following count, verified badge, creation date, website, and avatar/banner URLs.

## `maxItems` (type: `integer`):

Maximum tweets to collect per target. Set to <code>0</code> for unlimited (up to 5,000 tweets per target).

## `email` (type: `string`):

✨ <b>Zero-Risk Guarantee:</b> If live extraction ever yields 0 items, your dataset will be delivered to your inbox within 10–30 minutes with <b>zero compute charges</b> and an instant <b>10% discount</b> on result fees.

## `searchTerms` (type: `array`):

Keywords or search operators to filter tweets (e.g. <code>AI research</code>, <code>launch</code>).

## `startDate` (type: `string`):

Only collect tweets published on or after this date. Format: <code>YYYY-MM-DD</code>.

## `endDate` (type: `string`):

Only collect tweets published on or before this date. Format: <code>YYYY-MM-DD</code>.

## `location` (type: `string`):

Filter tweets geocoded near a specific city or region (e.g. <code>San Francisco</code>, <code>London</code>).

## `minLikes` (type: `integer`):

Only include tweets with at least this many likes. Set to <code>0</code> to disable.

## `minRetweets` (type: `integer`):

Only include tweets with at least this many retweets. Set to <code>0</code> to disable.

## `minReplies` (type: `integer`):

Only include tweets with at least this many replies. Set to <code>0</code> to disable.

## `includeReplies` (type: `boolean`):

Include author's reply tweets in the timeline results. Disabled by default to focus on original posts.

## `includeRetweets` (type: `boolean`):

Include posts retweeted by this user. Enabled by default.

## `mediaOnly` (type: `boolean`):

Only collect tweets containing photos, videos, or animated GIFs.

## `contentInclude` (type: `boolean`):

Filter to only collect tweets containing media attachments.

## `onlyVerified` (type: `boolean`):

Only collect tweets from accounts with verified badges.

## `onlyLinks` (type: `boolean`):

Only collect tweets that contain external web URLs.

## `onlyQuotes` (type: `boolean`):

Only collect quote tweets.

## `excludeReplies` (type: `boolean`):

Explicitly exclude any reply tweets.

## `excludeRetweets` (type: `boolean`):

Explicitly exclude shared retweets.

## `excludeMedia` (type: `boolean`):

Exclude tweets that have images or videos attached.

## `excludeLinks` (type: `boolean`):

Exclude tweets containing external hyperlinks.

## `nsfwContent` (type: `boolean`):

Enable extraction of age-restricted or sensitive media.

## `useResidentialProxy` (type: `boolean`):

Automatically routes requests through premium Apify residential proxies for unblocked scraping.

## `proxyConfiguration` (type: `object`):

Residential proxy settings configured for maximum anti-blocking.

## `customProxyUrl` (type: `string`):

Optional external HTTP/HTTPS proxy to route requests (e.g. <code>http://username:password@proxy.example.com:8000</code>).

## `maxRetries` (type: `integer`):

Maximum retry attempts per request. Internal failover automatically kicks in with session and proxy rotation.

## Actor input object example

```json
{
  "twitterHandles": [
    "solana"
  ],
  "scrapeProfileInfo": true,
  "maxItems": 50,
  "email": "user@example.com",
  "searchTerms": [
    "AI research",
    "web scraping"
  ],
  "startDate": "2024-01-01",
  "endDate": "2024-12-31",
  "location": "San Francisco",
  "minLikes": 0,
  "minRetweets": 0,
  "minReplies": 0,
  "includeReplies": false,
  "includeRetweets": true,
  "mediaOnly": false,
  "contentInclude": false,
  "onlyVerified": false,
  "onlyLinks": false,
  "onlyQuotes": false,
  "excludeReplies": false,
  "excludeRetweets": false,
  "excludeMedia": false,
  "excludeLinks": false,
  "nsfwContent": true,
  "useResidentialProxy": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "maxRetries": 5
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset containing scraped Twitter/X profile information and tweets

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "twitterHandles": [
        "solana"
    ],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("mikolabs/twitter-x-profile-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "twitterHandles": ["solana"],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("mikolabs/twitter-x-profile-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "twitterHandles": [
    "solana"
  ],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call mikolabs/twitter-x-profile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mikolabs/twitter-x-profile-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ocAvf7y5eQGW223YL/builds/s6Fbacmv3UAqfYnbo/openapi.json
