Following

Follow and unfollow users, manage follow requests for private accounts, and query the social graph.

Endpoint table

MethodPathAuthDescription
POST/api/follow/:userIdSession or BearerFollow a user. For private accounts this creates a pending follow request.
DELETE/api/follow/:userIdSession or BearerUnfollow a user.
GET/api/follow/:userId/statusSession or BearerCurrent follow relationship between you and this user.
GET/api/follow/:userId/followersSession or BearerFollowers of this user. Query: limit (1–100, default 50), offset (≥ 0), status (pending | approved).
GET/api/follow/:userId/followingSession or BearerUsers this user follows. Query: limit (1–100, default 50), offset (≥ 0), status (pending | approved).
GET/api/follow/:userId/countsSession or BearerFollower and following counts.
GET/api/follow/:userId/mutualSession or BearerMutual follows between you and this user.
POST/api/follow/:userId/approveSession or BearerApprove an incoming follow request (private accounts).
POST/api/follow/:userId/rejectSession or BearerReject an incoming follow request.
DELETE/api/follow/:userId/removeSession or BearerRemove this user from your followers.
GET/api/follow/requestsSession or BearerYour pending incoming follow requests.

Follow status

GET /api/follow/clx9user00002/status
{
  "status": "approved",
  "isFollowing": true,
  "isPending": false,
  "following": true,
  "followedBy": false,
  "pendingRequest": false,
  "isSelf": false
}

The response describes the full relationship between you and the target user in one call:

FieldTypeMeaning
status"approved" | "pending" | nullRaw state of your outgoing follow toward the target (null when you don't follow them).
isFollowingbooleantrue only when status === "approved".
isPendingbooleantrue only when status === "pending".
followingbooleanWhether you follow the target (equivalent to isFollowing).
pendingRequestbooleanWhether your follow request to the target is still pending (equivalent to isPending).
followedBybooleanWhether the target follows you back (an approved incoming follow).
isSelfbooleantrue when you query your own ID; all other fields are then false/null.

status, isFollowing, and isPending are the original fields (outgoing follow only) and are preserved for backward compatibility. following, pendingRequest, followedBy, and isSelf were added so a client can learn the bidirectional relationship without a second request.

For a private account where your follow request is pending and the target does not follow you:

{
  "status": "pending",
  "isFollowing": false,
  "isPending": true,
  "following": false,
  "followedBy": false,
  "pendingRequest": true,
  "isSelf": false
}

Querying your own ID short-circuits to a stable no-relationship shape:

{
  "status": null,
  "isFollowing": false,
  "isPending": false,
  "following": false,
  "followedBy": false,
  "pendingRequest": false,
  "isSelf": true
}

Approving a request

POST /api/follow/clx9user00099/approve

The request is removed and the follow relationship is established. The follower is notified.

Counts and lists

GET /api/follow/clx9user00002/counts
{ "followers": 128, "following": 84, "pendingRequests": 3 }

pendingRequests is the number of incoming follow requests awaiting approval (relevant when querying your own profile).

GET /api/follow/clx9user00002/followers?limit=50&offset=0

Returns { "followers": [ ...user objects... ], "pagination": { "total", "limit", "offset", "hasMore" } }: the users are under the followers key (and correspondingly following for the following endpoint), not a bare array. GET /api/follow/:userId/mutual returns mutual-follow counts { "mutualFollowers", "mutualFollowing" }, not a user list.

Notes

  • These endpoints check the privacy setting of the target user. A private account never reveals follower/following lists to non-followers.
  • Removing a follower (DELETE /api/follow/:userId/remove) does not block them; it only severs the existing relationship. They can re-follow (or request to follow again for private accounts).
  • People (Help Center): the user-facing guide to following, follow requests, and the social graph.
  • Direct Messages: DMs require a mutual, approved follow relationship.
  • Moderation: block and mute users.
  • API overview: base URL, authentication at a glance, and response conventions.
  • API explorer: try following endpoints live with the interactive Swagger console.