Facebook friends, followers and followings: what each list actually means
Facebook exposes three distinct connection lists, and product teams routinely conflate them. They answer different questions, they are built differently, and mixing them up poisons every metric built on top. Here is the disambiguation, with the endpoint for each.
The three lists
| List | Question it answers | Visibility |
|---|---|---|
| Friends | who accepted a mutual connection | usually private |
| Followers | who subscribes to this profile's public posts | public for pages/public profiles |
| Followings | whom this profile subscribes to | public for pages/public profiles |
Friends are bidirectional and require acceptance — a strong-tie signal. Following is one-directional and free — a weak-tie interest signal. A brand cannot have "friends" at all; it has followers, and it follows other accounts.
The endpoints
All three live under the same contract — pages of 15, cursor from
page_info.end_cursor, passed back as after:
- Friends —
GET /fb/api/v1/friends - Followers —
GET /fb/api/v1/followers - Followings —
GET /fb/api/v1/followings(supports name filtering viaquery)
from getsocialapi_facebook import Client
fb = Client(api_key="gsa_live_...").facebook
def export(fn, uid):
rows, cursor = [], None
while True:
page = fn(uid, after=cursor)
conn = page["data"]["profile"]["followers"] # or friends/followings
rows += [e["node"] for e in conn["edges"]]
if not conn["page_info"].get("has_next_page"):
return rows
cursor = conn["page_info"]["end_cursor"]
followers = export(fb.followers, "100053723115450")
The connection key shifts slightly between endpoints (profile.followers
vs group on group-scoped lists) — the response always mirrors the
documented shape for that route.
Signals worth computing
- Follower / following ratio — the classic influence heuristic.
- Audience overlap — followers ∩ following: the account's actual community core.
- Empty friends on a personal profile — either privacy settings or a repurposed account; cross-check with the profile overview.
- Followings without followers — a curation-heavy account (news, aggregation) rather than a social one.
Privacy boundaries, stated honestly
Friends lists are frequently hidden by privacy settings even when the profile itself is public. The API returns an empty connection in that case — an empty list is data ("hidden"), not a bug. Design pipelines to distinguish empty-because-hidden from empty-because-none by checking the profile's privacy flags first.
Takeaway
Three lists, three endpoints, one cursor protocol. Decide which question you are actually asking before choosing the route — then the walk is always the same 10 lines. Try all three on getsocialapi.com — the first 100 calls are free.
Build with GetSocialAPI
Explore Facebook API for capabilities, pricing and integration examples. Create an account to start with 100 free calls, or follow the quickstart.