# X mutuals: do two accounts follow each other, and who do they share?

```
GET https://fetchapi.co/api/x/mutuals?a=<username or id>&b=<username or id>[&mode=followers|following|both][&users=100][&max_pages=20]
header: x-api-key: gw_...
MCP: tool find_mutuals {a, b, mode?, users?, max_pages?}
```

Answer:
- `relationship`: `a_follows_b`, `b_follows_a`, `mutual_follow` (one friendship call).
- `common_followers` (mode `followers`, default): accounts that follow both. `common_following` (mode `following`): accounts both follow. `both` returns the two.
  Each has `count`, `complete` (false when `max_pages` stopped the scan), `scanned` (ids read per account), `users` (profiles: username, name, bio, followers, verified; the largest `users` among up to 500 shared accounts) and `ids` (up to 5,000).
- `meta`: calls made and their cost.

Cost: every underlying call is metered to your key (twitter-api47, about $0.0002 a call): 1 lookup for both usernames, 1 friendship, 1 call per 5,000 followers (or followings) of each account, 1 per 50 profiles. Example (2026-10-08): `a=VitalikButerin&b=balajis&mode=following` = 125 shared follows (sama, karpathy, levie...), 5 calls, $0.00095. Follower and following lists come newest first, 5,000 ids a call. By default 10 pages (50,000 ids) are read per account, so for accounts larger than that `common_followers` covers their most recent 50,000 followers and `complete` is false; raise `max_pages` (up to 100) for more, at about 1 second and $0.0002 a page. Example: VitalikButerin (8M followers) and balajis, mode=both, max_pages=20: 10,693 common followers among the newest 100,000 of each, 125 shared follows, 107 calls, $0.017, 95 s. Deleted or suspended accounts are skipped (`meta.profiles_unavailable`).

Only "does A follow B": `GET /api/gw/rapidapi-twitter-api47/v3/user/friendship?subjectId=<id>&targetId=<id>` (one call, both directions).
