Skip to main content

Connection Feed - Design and API Reference

Overview​

The Connection Feed enables users to see posts exclusively from users they are connected to within a community. Unlike the universal or group feed, the connection feed is personalized based on mutual (two-way) or one-way user relationships.

This feature complements LikeMinds' Personalized Feed by adding a social graph layer where only posts from direct connections appear, supporting both notification-based engagement and curated content delivery.


User Connect Flow​

  1. Users Send Connection Requests

    • Initiated from profile or post overflow menu.
    • User A sends request to User B.
    • B must accept to complete a mutual connection.
    • Optional: Support one-way follows.
  2. Accepted Connections Form Feed Graph

    • Only accepted connections populate the user's connection feed.
    • A user’s feed is constructed from the posts created by their connections.
  3. Feed Update Strategy

    • On new post creation, the system identifies all users who are connected to the post creator.

      • It then updates each of their feed buffers to include the new post, ensuring it appears in their connection feed.
      • If a user’s connection list isn’t already cached, it is refreshed automatically before the feed is updated.
      • Posts in the connection feed are shown in reverse chronological order based on their creation time.
    • On API call: Posts are fetched, filtered by authorization and freshness.

  4. Cache Optimization

    • Connection lists and feed buffers are cached.
    • Time To Live applied for performance.
    • Background jobs warm and update cache.

API Reference​

Base URL : https://auth.likeminds.community
All the routes for the api calls will be joined to this url to complete the url path.

Prerequisites​

  • x-api-key: API key - Retrieve from LikeMinds Dashboard for the Project
  • x-member-id: UUID - Unique string representing the user
  • x-platform-type: SDK platform type - dashboard or internal services.
  • x-platform-code: SDK platform code - Eg. an(Android), ios(iOS), fl(Flutter) etc.
  • x-version-code: SDK version code - Integer value representing the SDK version
  • x-sdk-source: SDK Source - chat | feed

Initiating the SDK​

Before executing any api flow the sdk needs to be initiated, which provides the access_token for authorization in the response.

POST sdk/initiate : SDK Initiate

The access_token generated here will be used in the Authorization field for the subsequent api calls.

Community Settings​

Before using the Connection Feed feature, ensure that User Connections are enabled for the community.

This is managed using CommunitySettings, which controls feature toggles at the community level.

  • Setting:
    • setting_type: "user_connection"
    • enabled: true

If this is not set, all connection-related APIs (e.g., sending requests, fetching connection list) will return an error:

{
"success": false,
"error_message": "Enable User Connection Setting to use this api"
}

Endpoint​

PUT /community/settings

Headers​

  • Authorization
  • x-platform-type

Request Body​

{
"community_settings": [
{
"enabled": true,
"setting_title": "User Connection",
"setting_sub_title": "If enabled, the users will be able to send connection request to other members",
"setting_type": "user_connection"
}
]
}

Example cURL​

curl --request PUT \
--url https://auth.likeminds.community/community/settings \
--header 'Accept: application/json' \
--header 'Authorization: <your-auth-token>' \
--header 'Content-Type: application/json' \
--header 'x-platform-type: <platform-type>' \
--data '{
"community_settings": [
{
"enabled": true,
"setting_title": "User Connection",
"setting_sub_title": "If enabled, the users will be able to send connection request to other members",
"setting_type": "user_connection"
}
]
}'

Replace<your-auth-token> with your access_token.


1. Create a Connection Request​

POST /community/member/<member_uuid>/connection

Headers​

  • Authorization
  • x-platform-code
  • x-version-code

Body​

{
"connection_type": "two_way" | "one_way",
"connection_request_auto_accepted": false
}

Response​

{
"success": true,
"error_message": null
}

2. Accept / Reject / Disconnect Connection​

PATCH /community/member/<member_uuid>/connection

Headers​

  • Authorization
  • x-platform-code
  • x-version-code

Body​

{
"action": "accept" | "reject",
"connection_type": "two_way" | "one_way"
}
  • Accept: Creates two Connection records.
  • Reject: Deletes pending ConnectionRequest or existing Connection.

3. Get User’s Connection List​

GET /community/member/<member_uuid>/connection

Headers​

  • Authorization
  • x-platform-code
  • x-version-code

Query Params​

  • page=1
  • page_size=10
  • status=accepted|pending

Response​

{
"success": true,
"data": {
"connections": [{ "user1_uuid": "...", "user2_uuid": "...", ... }],
"users": { "user_id": { "name": "...", "image_url": "...", ... } }
}
}

4. Get Connection Feed​

GET /feed/connection

Headers​

  • Authorization
  • x-platform-code
  • x-version-code

Query Params​

  • page=1
  • page_size=10

Response​

{
"success": true,
"data": {
"feed": [
{
"_id": "post_id",
"text": "Post content",
"attachments": [],
"likes_count": 5,
"comments_count": 2,
"user_id": "creator_id",
"created_at": 1720450620000
}
],
"users": {
"creator_id": {
"name": "John Doe",
"image_url": "https://...",
...
}
}
}
}

Internal Architecture​

Schemas​

  • ConnectionRequest

    • request_by, request_to, community_id, created_at, updated_at
  • Connection

    • user_id, connection_id, community_id, created_at
  • ConnectionFeed

    • post_id, user_id, community_id, rank

Cache Keys​

  • connection_list_<user_uuid>_<community_id>

    • { "<connection_uuid>": true }
  • connection_feed_buffer_<user_uuid>_<community_id>

    • { "<post_id>": true }

Permissions & Rules​

  • If connection feature is disabled via CommunitySettings, all APIs return error.
  • Users cannot connect with themselves.
  • Posts visible in the connection feed must be:
    • Created by a connection.
    • Shared with connections (not restricted).

Blocking Users​

1. Block or Unblock a User​

PUT /user/<uuid>/block

This API is used to block or unblock another user.

Headers​

  • Authorization
  • x-platform-code
  • x-version-code

Request Body​

{
"uuid": "string", // UUID of the user to be blocked/unblocked
"shouldBlock": true // true to block, false to unblock
}

Response​

{
"success": true,
"error_message": null
}

2. Get Blocked User List​

GET /user/<uuid>/block

Retrieves the list of users blocked by the requesting user.

Headers​

  • Authorization
  • x-platform-code
  • x-version-code

Query Params​

  • page=1
  • pageSize=10

Response​

{
"success": true,
"data": {
"blockedUsers": [
{
"uuid": "user-uuid",
"name": "User Name",
"imageUrl": "https://..."
}
]
}
}

Profile Behavior​

  • If viewing your own profile, use this API to manage blocked users.
  • If viewing another user’s profile:
    • If not blocked: show “Block User” option.
    • If blocked: show “Unblock User” option.

Future Scope​

  • One-way follows.
  • Ranking in connection feed (currently sorted by created_at in reverse cronological order).
  • Metrics-based personalization layer (engagement score, affinity, etc).

Usage in LLM-based Code Generation​

Client apps or agents consuming this document can:

  1. Generate requests to connect users.
  2. Fetch and display connection-only feeds.

Make sure to:

  • Always check the enabled flag via CommunitySettings before calling APIs.