# X (Twitter) Reply Network Analyzer - Who an Account Talks To (`seemuapps/x-reply-network-analyzer`) Actor

Map who any X (Twitter) account replies to, quotes, retweets, and mentions most, with reply share, response times, and a ranked list of its closest contacts.

- **URL**: https://apify.com/seemuapps/x-reply-network-analyzer.md
- **Developed by:** [Andrew](https://apify.com/seemuapps) (community)
- **Categories:** Social media, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $250.00 / 1,000 network reports

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## X (Twitter) Reply Network Analyzer - Who an Account Talks To

Map the conversation network of any X (Twitter) account. Enter a username and get a ranked list of the accounts it replies to, quotes, retweets, and mentions most - plus how much of its activity is replies vs. original posts, how fast it responds, and how concentrated its attention is. No login or cookies required.

### What you get

**One summary row:**

- **Post breakdown** - original posts, replies to others, self-thread replies, quotes, retweets, and each as a share of activity
- **Response time** - median and average minutes between someone's post and the account's reply, plus the share answered within 10 minutes, 1 hour, and 24 hours
- **Reply concentration** - how much of the account's replying goes to its top 5 contacts (`very_concentrated` to `dispersed`)
- **Reply engagement** - average likes on replies vs. original posts
- **Top lists** - the ten most replied-to, quoted, retweeted, and mentioned accounts
- Unique accounts interacted with, replies per day, sample size, and date range

**Plus one row per top contact (ranked):**

- Reply, quote, retweet, and mention counts, an interaction score, and share of all interactions
- Median response time to that account and average likes the replies got
- First and last interaction dates and a sample reply with its URL
- Username, display name, verification, follower count, profile picture, and profile URL

Export everything to JSON, CSV, Excel, or Google Sheets from the Apify console.

### Use cases

- **Influencer relationship mapping** - find who an influencer actually engages with before pitching a collaboration
- **Customer support audits** - measure a brand account's reply share and response times to customers
- **Competitor research** - see which partners, customers, and communities a competitor's account is closest to
- **Sales and outreach** - identify the people a decision-maker already talks to for warm introductions
- **Community and network analysis** - detect tight reply clusters, mutual boosting, and engagement pods
- **Journalism and OSINT** - map an account's inner circle from public interactions

### How it works

The analyzer samples the account's most recent posts with replies included. For each reply it records who was replied to, and when the parent post is available it measures the response delay. Quotes, retweets, and @-mentions are counted separately. Every contact gets an interaction score (reply 3, quote 3, retweet 2, mention 1) and the list is ranked by that score.

### How to use

1. Enter the X **username** (with or without @; profile URLs work too)
2. Set **Posts to analyze** (default 500; more posts give a fuller picture)
3. Set **Accounts to return** (default 25)
4. Run the actor - the summary and contact rows appear in the **Dataset** tab

### Output format

Summary record (first row):

```json
{
  "type": "summary",
  "analyzedUsername": "elonmusk",
  "userId": "44196397",
  "name": "Elon Musk",
  "followersCount": 241543032,
  "followingCount": 1401,
  "postsAnalyzed": 500,
  "timeRange": { "earliest": "2026-08-21T01:56:50.000Z", "latest": "2026-09-02T18:58:24.000Z", "spanDays": 13 },
  "breakdown": { "originalPosts": 120, "replies": 210, "repliesToSelf": 8, "repliesToOthers": 202, "quotes": 60, "retweets": 170 },
  "shares": { "replyShare": 0.42, "selfThreadShare": 0.016, "conversationalShare": 0.404, "originalShare": 0.24 },
  "uniqueAccountsInteractedWith": 240,
  "uniqueAccountsRepliedTo": 150,
  "topAccountsShare": 0.29,
  "replyConcentration": "balanced",
  "responseTime": { "samples": 180, "medianMinutes": 393.6, "averageMinutes": 578.1, "under10MinShare": 0.095, "under1HourShare": 0.214, "under24HourShare": 0.905 },
  "replyEngagement": { "avgLikesOnReplies": 9787.2, "avgLikesOnOriginals": 24873.6 },
  "repliesPerDay": 16.2,
  "topRepliedTo": [{ "username": "grok", "count": 12 }],
  "topQuoted": [{ "username": "cb_doge", "count": 9 }],
  "topRetweeted": [{ "username": "Tesla", "count": 14 }],
  "topMentioned": [{ "username": "SpaceX", "count": 7 }]
}
```

Contact record (following rows):

```json
{
  "type": "account",
  "analyzedUsername": "elonmusk",
  "rank": 1,
  "userId": "1011008340367953920",
  "username": "wil_da_beast630",
  "name": "Wil",
  "profileUrl": "https://x.com/wil_da_beast630",
  "isVerified": true,
  "followersCount": 181646,
  "profilePicture": "https://pbs.twimg.com/profile_images/.../photo.jpg",
  "interactionScore": 21,
  "interactionCount": 10,
  "shareOfInteractions": 0.041,
  "replies": 4,
  "quotes": 0,
  "retweets": 3,
  "mentions": 3,
  "interactionTypes": ["reply", "retweet", "mention"],
  "medianResponseTimeMinutes": 398.3,
  "avgLikesOnReplies": 4120.5,
  "firstInteraction": "2026-08-31T09:12:00.000Z",
  "lastInteraction": "2026-09-02T18:53:10.000Z",
  "sampleReplyText": "@wil_da_beast630 And let's bring back cloaks too. They look cool.",
  "sampleReplyUrl": "https://x.com/elonmusk/status/2095223570918166647"
}
```

### Free tier limits

Runs on a free Apify plan analyze at most **100 posts** per run. Upgrade to any paid Apify plan to remove the limit.

### FAQ

**Do I need to log in or provide cookies?** No. No login, no cookies, no risk to your own account.

**Why is the response time missing for some contacts?** Response time needs the parent post the account replied to. When that post has been deleted or is from a protected account, the reply is still counted but not timed.

**Does it show who replies TO the account?** No - this maps outbound interactions. For inbound, use the [X User Mentions Scraper](https://apify.com/seemuapps/x-user-mentions-scraper) or the [X Tweet Replies Scraper](https://apify.com/seemuapps/x-tweet-replies-scraper).

### Related X (Twitter) actors

Part of a complete X (Twitter) toolkit - explore the rest of the suite:

- [X (Twitter) Profile Scraper](https://apify.com/seemuapps/x-profile-scraper) - Public profile data - bio, counts, links
- [X (Twitter) User Tweets Scraper](https://apify.com/seemuapps/x-user-tweets-by-username) - Full timeline of any account by username
- [X (Twitter) Tweet Scraper](https://apify.com/seemuapps/x-tweet-scraper) - Search and export tweets by query, hashtag, user
- [X (Twitter) Tweet Replies Scraper](https://apify.com/seemuapps/x-tweet-replies-scraper) - Every reply under a post for sentiment analysis
- [X (Twitter) Quote Tweets Scraper](https://apify.com/seemuapps/x-quote-tweets-scraper) - Every quote tweet of a post, with engagement
- [X (Twitter) Followers & Following Scraper](https://apify.com/seemuapps/x-followers-following-scraper) - Full followers and following lists, no login
- [X (Twitter) List Members Scraper](https://apify.com/seemuapps/x-list-members-scraper) - Members or followers of any public list
- [X (Twitter) Retweeters Scraper](https://apify.com/seemuapps/x-tweet-retweeters-scraper) - Find every account that retweeted a post
- [X (Twitter) User Mentions Scraper](https://apify.com/seemuapps/x-user-mentions-scraper) - Brand and keyword monitoring across mentions
- [X (Twitter) User Search Scraper](https://apify.com/seemuapps/x-user-search-scraper) - Find accounts by bio or keyword for lead gen
- [X (Twitter) Trends Scraper](https://apify.com/seemuapps/x-trends-scraper) - Trending topics and hashtags by location
- [X (Twitter) Article to Markdown Scraper](https://apify.com/seemuapps/x-article-to-markdown-scraper) - Long form Articles as clean Markdown
- [X (Twitter) MCP Server](https://apify.com/seemuapps/x-mcp) - All X tools for AI agents via MCP

# Actor input Schema

## `username` (type: `string`):

The X (Twitter) account to analyze (with or without @; profile URLs work too).

## `maxTweets` (type: `integer`):

How many of the account's most recent posts (replies included) to sample. More posts give a fuller picture of who they interact with.

## `topN` (type: `integer`):

How many of the most-interacted-with accounts to output as individual rows (ranked by interaction score).

## Actor input object example

```json
{
  "username": "elonmusk",
  "maxTweets": 500,
  "topN": 25
}
```

# Actor output Schema

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

First row (type=summary): post breakdown, reply/self-thread/original shares, response-time stats, reply concentration, and top replied/quoted/retweeted/mentioned lists. Following rows (type=account): one per contact with reply/quote/retweet/mention counts, interaction score, share, median response time, and a sample reply.

# 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 = {
    "username": "elonmusk"
};

// Run the Actor and wait for it to finish
const run = await client.actor("seemuapps/x-reply-network-analyzer").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 = { "username": "elonmusk" }

# Run the Actor and wait for it to finish
run = client.actor("seemuapps/x-reply-network-analyzer").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 '{
  "username": "elonmusk"
}' |
apify call seemuapps/x-reply-network-analyzer --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,seemuapps/x-reply-network-analyzer"
        }
    }
}

```

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/Ns4k0gQmHMoZ9bjRZ/builds/8LZPluLNQ80V2sEKS/openapi.json
