Skip to content

Social​

Following users and organizations


Check follow status​

GET
/subscriptions/status

Returns whether followerId currently follows followingId. A signed-in caller may ask about any pair — follow edges are public.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Query Parameters

followerId*
Type
string
Required
followingId*
Type
string
Required
followingType

Defaults to "user".

Type
string
Valid values
"user""organization"
Default
"user"

Responses​

Follow status

application/json
JSON
{
"isFollowing": true
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Follow a user or organization​

POST
/subscriptions

Creates a follow edge from the authenticated caller to following_id. The follower is always the authenticated user and cannot be supplied by the client. Gated by the features.user_follow_user flag.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Request Body​

application/json
JSON
{
"following_id": "string",
"following_type": "user"
}

Responses​

Follow created

application/json
JSON
{
"success": true
}

Playground​

Server
Authorization
Body

Samples​


Unfollow a user or organization​

DELETE
/subscriptions/{followerId}/{followingId}/{followingType}

Removes a follow edge. The path followerId must match the authenticated caller.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

followerId*
Type
string
Required
followingId*
Type
string
Required
followingType*
Type
string
Required
Valid values
"user""organization"

Responses​

Follow removed

application/json
JSON
{
"success": true
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


List a user's followers​

GET
/users/{id}/followers

Returns the users that follow the given user. Emails are never exposed.
A PRIVATE PROFILE ANSWERS AN EMPTY ARRAY to anyone but its owner (#1696). This list publishes other people's names, avatars, handles and counts, one row per follow, so a private profile's social graph is not enumerable through it. The COUNTS remain public — they ride on the profile payload, which carries real figures for a private profile. 200 with [], not 404: the person exists, their graph is closed.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)
or

Parameters​

Path Parameters

id*
Type
string
Required

Query Parameters

limit
Type
integer
Default
20
Maximum
100
offset
Type
integer
Default
0

Responses​

Follower list

application/json
JSON
[
{
"id": "string",
"name": "string",
"avatar": "string",
"email": "string",
"role": "string",
"profile_slug": "string",
"follower_count": 0,
"campaign_count": 0,
"type": "string"
}
]

Playground​

Server
Authorization
Variables
Key
Value

Samples​


List who a user is following​

GET
/users/{id}/following

Returns the entities the given user follows. Emails are never exposed.
A PRIVATE PROFILE ANSWERS AN EMPTY ARRAY to anyone but its owner (#1696). This list publishes other people's names, avatars, handles and counts, one row per follow, so a private profile's social graph is not enumerable through it. The COUNTS remain public — they ride on the profile payload, which carries real figures for a private profile. 200 with [], not 404: the person exists, their graph is closed.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)
or

Parameters​

Path Parameters

id*
Type
string
Required

Query Parameters

limit
Type
integer
Default
20
Maximum
100
offset
Type
integer
Default
0

Responses​

Following list

application/json
JSON
[
{
"id": "string",
"name": "string",
"avatar": "string",
"email": "string",
"role": "string",
"profile_slug": "string",
"follower_count": 0,
"campaign_count": 0,
"type": "string"
}
]

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Recalculate follower counts​

POST
/users/{id}/recalculate-counts

Recounts the caller's followers and followings, stores follower_count / following_count on the profile, and returns them. id must be the caller's own profile UUID; any other profile answers 403. The counts are also refreshed whenever a follow is created or removed, so this is only a manual resync. Requires a bearer session.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*
Type
string
Required
Format
"uuid"

Responses​

The recounted figures

application/json
JSON
{
"success": true,
"data": {
"follower_count": 0,
"following_count": 0
}
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Powered by VitePress OpenAPI

Built with VitePress