WEIR

Twitter Mutual Followers: Find Common Followers (2026)

Find Twitter mutual followers between two brand accounts: export both follower lists, keep the shared ids in Python, and see what 10K or 1M followers cost.


Published · Updated · 7 min read

Cover image: Who follows both accounts?

Twitter mutual followers are the accounts that follow both of two accounts, and you find them by comparing the two follower lists.

This guide is for marketers sizing up a partner, sponsor or rival on X (Twitter). You get the method, a tested Python script, and what big follower lists cost on four APIs. We run Weir, and we show where two others cost far less.

Already have both lists as CSV files? This prints the overlap:

import csv

def ids(path):  # a followers CSV with an "id" column
    with open(path, newline="", encoding="utf-8") as file:
        return {row["id"] for row in csv.DictReader(file)}

a, b = ids("brand_a.csv"), ids("brand_b.csv")
both = a & b
print(f"{len(both):,} follow both: {len(both) / len(a):.1%} of A, {len(both) / len(b):.1%} of B")
  1. Price the jobBoth follower counts set the cost.
  2. Export both listsPage through each account's followers.
  3. Keep the ids in bothOne set intersection in Python.
  4. Read the overlapAs a share of each audience.

Step 1: Price the job from both follower counts

Look up both accounts on X first, because the follower counts set your bill. Weir's price for a follower list:

  • A follower costs 1 credit, and each call returns about 70.
  • Every call adds 1 more, plus 2 on the first one to look up the account.
  • 10,000 followers come to about 10,150 credits. Your free monthly credits cover two accounts of about 2,400 followers each.

Step 2: Export both follower lists by API

Weir's endpoint is GET /v1/x/users/{user}/followers. Our guide to exporting Twitter followers to CSV walks through it; here you only need the ids.

The first part fetches one page, and waits whenever you go too fast:

import os, time, requests

HEADERS = {"Authorization": f"Bearer {os.environ['WEIR_API_KEY']}"}

def get_page(url, params):
    while True:
        r = requests.get(url, params=params, headers=HEADERS, timeout=60)
        if r.status_code != 429:  # 429 means too fast: wait, then retry
            r.raise_for_status()  # 402: out of credits; 404: missing or protected
            return r.json()
        time.sleep(int(r.headers.get("Retry-After", "10")))

The second part walks every page and keeps each follower's id:

def follower_ids(user, max_pages=150):  # about 70 followers a page
    url = f"https://api.weirapp.io/v1/x/users/{user}/followers"
    ids, params = set(), {}
    for _ in range(max_pages):
        page = get_page(url, params)
        ids.update(account["id"] for account in page["data"])
        if not page["meta"]["nextCursor"]:
            return ids
        params = {"cursor": page["meta"]["nextCursor"]}
    raise RuntimeError(f"{user}: stopped at max_pages, so the list is partial")

What this gets right:

  • It keeps ids, not handles. An id never changes, and you store less personal data.
  • A null cursor is the only stop. X's last page usually still has a cursor, so a full walk ends with one empty call.
  • max_pages is your budget. 150 pages cover about 10,000 followers, and a partial list raises an error instead of skewing the overlap.

Step 3: Find common followers between Twitter accounts

With both sets in memory, the common followers are one & away:

a, b = follower_ids("brand_a"), follower_ids("brand_b")
both = a & b
print(f"A: {len(a):,}  B: {len(b):,}  both: {len(both):,}")
print(f"{len(both) / len(a):.1%} of A's followers also follow B")
print(f"{len(both) / len(b):.1%} of B's followers also follow A")

Here is what it prints. The data is illustrative: we ran the script offline on made-up pages shaped like the API's response, so no real follower lists were pulled.

A: 1,400  B: 3,500  both: 280
20.0% of A's followers also follow B
8.0% of B's followers also follow A

For real accounts of those sizes, that's 72 calls and about 4,976 credits, inside one month's free grant.

Comparing three or more accounts? Chain the sets: a & b & c.

Step 4: Read the Twitter follower overlap

One overlap gives two shares, and the smaller account always shows the bigger one. Read the share from the side you care about:

  • Planning a collab? If most of your followers already follow the partner, the post mostly reaches people you have.
  • Picking a sponsor? A low share means new reach for you both.
  • For rival research, the overlap is the audience you share, and the rest of their list doesn't follow you yet.

What does a follower overlap check cost?

The bigger account sets the price. Here are two accounts, one with 10,000 followers and one with 1 million, as of October 2026:

Exporting 10,000 + 1,000,000 followers, October 2026
Weir, $200 packabout $128
Sorsa Starter plan$49 a month
TwitterAPI.io$10.10

X's own API would charge $10,100 for the same job, at $0.010 per follower.

The math per account:

Followers Weir credits Weir in dollars TwitterAPI.io Sorsa requests
10,000 10,146 $2.03 $0.10 50
1,000,000 1,014,289 $126.79 $10.00 5,000

Weir's dollars use the $5 pack's rate for the small list and the $200 pack's for the big one.

  • TwitterAPI.io charges $0.01 per 1,000 followers when you take its full page of 200.
  • Sorsa returns 200 followers a request, and its $49 Starter plan holds 10,000 requests a month.
  • On Weir, you'd buy the $200 pack and keep the rest, since bought credits never expire.
  • That purchase also raises your rate limit, so 1 million followers take about 2.4 hours. We haven't tested a walk that large.

Our Weir vs TwitterAPI.io and Weir vs Sorsa pages compare the rest.

Twitter mutual followers checkers that need no code

Fedica's Compare Followers checks up to 30 X accounts at once. It needs the Research plan, at $129 a month, or $79 a month billed yearly.

Followerwonk's comparison now lives inside Fedica too.

Circleboom compares accounts after you connect your own X account. Its pricing page showed us no prices on 22 October 2026.

If the overlap looks wrong

  • One account returns a 404. It's protected or gone, and a protected account's followers can't be read.
  • The script stops at max_pages. Set it to the follower count divided by 70, plus a margin, and never compare a partial list.
  • A 402 ends the walk. You ran out of credits, so price the job first, as in Step 1.
  • The numbers drift between runs. Follower lists change daily, so compare two lists exported on the same day.

When not to use Weir

  • Either account has millions of followers. TwitterAPI.io is 10 to 20 times cheaper per follower, depending on your pack.
  • One account is yours. X's Owned Reads rate is $0.001 per follower of your own account.
  • An estimate is enough. Sorsa's check-follow endpoint tests one pair per request, so you can check a random sample.
  • You'd rather click than code. Fedica's dashboard compares accounts without a script.

A follower list is a list of people. X's Terms of Service restrict scraping, so check the terms and privacy law that apply to you. This isn't legal advice.

FAQ

How do I find mutual followers between two Twitter accounts?

Export both follower lists, then keep the account ids that appear in both. A dashboard like Fedica does this for you on a paid plan. With an API, it's a short script: page through each list, then intersect the two sets in Python.

Can you see mutual followers on X itself?

X's Help Center explains how to see your own followers and the accounts you follow. We found no page on comparing two other accounts' followers, so use an export or a third-party tool.

Is there a free mutual Twitter followers checker?

Fedica's comparison isn't on its Free plan. Weir's 5,000 free credits a month cover two accounts of about 2,400 followers each, and Sorsa's 100 free requests cover about 20,000 followers once.

How do I find my mutuals on Twitter?

Mutuals are accounts you follow that follow you back. Run the Step 2 script on your followers, then swap followers for following in the URL and run it again. The ids in both sets are your mutuals.

Sources

All checked on 22 October 2026: