For the complete documentation index, see llms.txt. This page is also available as Markdown.

Feeds

Get global feed

get

Returns a paginated activity feed across all users, ordered by recency, with optional filters.

Query parameters
pagenumber · nullableOptional
limitnumber · nullableOptional
urlTypestring · enumOptionalPossible values:
sourcestring · enumOptionalPossible values:
activityTypesstring[]Optional
actorIdsstring[]Optional
includeKnownBotsboolean · nullableOptional
beforeActivityIdstringOptional
Header parameters
X-Semble-ClientstringOptional

A short identifier for your integration (e.g. my-plugin, mcp). Please set this if you are building an integration — it helps Semble understand which tools people use. Values are lowercased before being recorded, so MyPlugin and myplugin are the same client. After lowercasing the value must match ^[a-z0-9][a-z0-9_-]{0,31}$; values that do not are ignored, and the client is inferred from the auth method instead.

Example: my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$
Responses
200

200

application/json
get/network.cosmik.feed.getGlobal
GET /xrpc/network.cosmik.feed.getGlobal HTTP/1.1
Host: api.semble.so
Accept: */*
200

200

{
  "activities": [
    {
      "id": "text",
      "user": {
        "id": "text",
        "name": "text",
        "handle": "text",
        "avatarUrl": "text",
        "bannerUrl": "text",
        "description": "text",
        "isFollowing": true,
        "isSubscribed": true,
        "subscriptionScopes": [
          "CARD"
        ],
        "followsYou": true,
        "followerCount": 1,
        "followingCount": 1,
        "followedCollectionsCount": 1,
        "urlCardCount": 1,
        "collectionCount": 1,
        "connectionCount": 1,
        "connectionsByType": {
          "total": 1,
          "ANY_ADDITIONAL_PROPERTY": 1
        },
        "labels": [
          {
            "$type": "com.atproto.label.defs#label",
            "ver": 1,
            "src": "text",
            "uri": "text",
            "cid": "text",
            "val": "text",
            "neg": true,
            "cts": "text",
            "exp": "text",
            "sig": null
          }
        ]
      },
      "createdAt": "2026-01-01T00:00:00.000Z",
      "activityType": "CARD_COLLECTED",
      "card": {
        "id": "text",
        "type": "URL",
        "url": "text",
        "uri": "text",
        "cardContent": {
          "url": "text",
          "title": "text",
          "description": "text",
          "author": "text",
          "publishedDate": "text",
          "siteName": "text",
          "imageUrl": "text",
          "type": "text",
          "retrievedAt": "text",
          "doi": "text",
          "isbn": "text"
        },
        "libraryCount": 1,
        "urlLibraryCount": 1,
        "urlInLibrary": true,
        "urlConnectionCount": 1,
        "urlIsConnected": true,
        "createdAt": "text",
        "updatedAt": "text",
        "author": {
          "id": "text",
          "name": "text",
          "handle": "text",
          "avatarUrl": "text",
          "bannerUrl": "text",
          "description": "text",
          "isFollowing": true,
          "isSubscribed": true,
          "subscriptionScopes": [
            "CARD"
          ],
          "followsYou": true,
          "followerCount": 1,
          "followingCount": 1,
          "followedCollectionsCount": 1,
          "urlCardCount": 1,
          "collectionCount": 1,
          "connectionCount": 1,
          "connectionsByType": {
            "total": 1,
            "ANY_ADDITIONAL_PROPERTY": 1
          },
          "labels": [
            {
              "$type": "com.atproto.label.defs#label",
              "ver": 1,
              "src": "text",
              "uri": "text",
              "cid": "text",
              "val": "text",
              "neg": true,
              "cts": "text",
              "exp": "text",
              "sig": null
            }
          ]
        },
        "note": {
          "id": "text",
          "text": "text"
        }
      },
      "collections": [
        {
          "id": "text",
          "uri": "text",
          "name": "text",
          "author": {
            "id": "text",
            "name": "text",
            "handle": "text",
            "avatarUrl": "text",
            "bannerUrl": "text",
            "description": "text",
            "isFollowing": true,
            "isSubscribed": true,
            "subscriptionScopes": [
              "CARD"
            ],
            "followsYou": true,
            "followerCount": 1,
            "followingCount": 1,
            "followedCollectionsCount": 1,
            "urlCardCount": 1,
            "collectionCount": 1,
            "connectionCount": 1,
            "connectionsByType": {
              "total": 1,
              "ANY_ADDITIONAL_PROPERTY": 1
            },
            "labels": [
              {
                "$type": "com.atproto.label.defs#label",
                "ver": 1,
                "src": "text",
                "uri": "text",
                "cid": "text",
                "val": "text",
                "neg": true,
                "cts": "text",
                "exp": "text",
                "sig": null
              }
            ]
          },
          "description": "text",
          "accessType": "OPEN",
          "cardCount": 1,
          "createdAt": "text",
          "updatedAt": "text",
          "isFollowing": true,
          "isSubscribed": true,
          "subscriptionScopes": [
            "CARD"
          ],
          "followerCount": 1
        }
      ]
    }
  ],
  "pagination": {
    "currentPage": 1,
    "totalPages": 1,
    "totalCount": 1,
    "hasMore": true,
    "limit": 1,
    "nextCursor": "text"
  }
}

Get following feed

get

Returns an activity feed of users and collections the authenticated user follows.

Query parameters
pagenumber · nullableOptional
limitnumber · nullableOptional
urlTypestring · enumOptionalPossible values:
sourcestring · enumOptionalPossible values:
activityTypesstring[]Optional
actorIdsstring[]Optional
includeKnownBotsboolean · nullableOptional
beforeActivityIdstringOptional
Header parameters
X-Semble-ClientstringOptional

A short identifier for your integration (e.g. my-plugin, mcp). Please set this if you are building an integration — it helps Semble understand which tools people use. Values are lowercased before being recorded, so MyPlugin and myplugin are the same client. After lowercasing the value must match ^[a-z0-9][a-z0-9_-]{0,31}$; values that do not are ignored, and the client is inferred from the auth method instead.

Example: my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$
Responses
200

200

application/json
get/network.cosmik.feed.getFollowing
GET /xrpc/network.cosmik.feed.getFollowing HTTP/1.1
Host: api.semble.so
Accept: */*
200

200

{
  "activities": [
    {
      "id": "text",
      "user": {
        "id": "text",
        "name": "text",
        "handle": "text",
        "avatarUrl": "text",
        "bannerUrl": "text",
        "description": "text",
        "isFollowing": true,
        "isSubscribed": true,
        "subscriptionScopes": [
          "CARD"
        ],
        "followsYou": true,
        "followerCount": 1,
        "followingCount": 1,
        "followedCollectionsCount": 1,
        "urlCardCount": 1,
        "collectionCount": 1,
        "connectionCount": 1,
        "connectionsByType": {
          "total": 1,
          "ANY_ADDITIONAL_PROPERTY": 1
        },
        "labels": [
          {
            "$type": "com.atproto.label.defs#label",
            "ver": 1,
            "src": "text",
            "uri": "text",
            "cid": "text",
            "val": "text",
            "neg": true,
            "cts": "text",
            "exp": "text",
            "sig": null
          }
        ]
      },
      "createdAt": "2026-01-01T00:00:00.000Z",
      "activityType": "CARD_COLLECTED",
      "card": {
        "id": "text",
        "type": "URL",
        "url": "text",
        "uri": "text",
        "cardContent": {
          "url": "text",
          "title": "text",
          "description": "text",
          "author": "text",
          "publishedDate": "text",
          "siteName": "text",
          "imageUrl": "text",
          "type": "text",
          "retrievedAt": "text",
          "doi": "text",
          "isbn": "text"
        },
        "libraryCount": 1,
        "urlLibraryCount": 1,
        "urlInLibrary": true,
        "urlConnectionCount": 1,
        "urlIsConnected": true,
        "createdAt": "text",
        "updatedAt": "text",
        "author": {
          "id": "text",
          "name": "text",
          "handle": "text",
          "avatarUrl": "text",
          "bannerUrl": "text",
          "description": "text",
          "isFollowing": true,
          "isSubscribed": true,
          "subscriptionScopes": [
            "CARD"
          ],
          "followsYou": true,
          "followerCount": 1,
          "followingCount": 1,
          "followedCollectionsCount": 1,
          "urlCardCount": 1,
          "collectionCount": 1,
          "connectionCount": 1,
          "connectionsByType": {
            "total": 1,
            "ANY_ADDITIONAL_PROPERTY": 1
          },
          "labels": [
            {
              "$type": "com.atproto.label.defs#label",
              "ver": 1,
              "src": "text",
              "uri": "text",
              "cid": "text",
              "val": "text",
              "neg": true,
              "cts": "text",
              "exp": "text",
              "sig": null
            }
          ]
        },
        "note": {
          "id": "text",
          "text": "text"
        }
      },
      "collections": [
        {
          "id": "text",
          "uri": "text",
          "name": "text",
          "author": {
            "id": "text",
            "name": "text",
            "handle": "text",
            "avatarUrl": "text",
            "bannerUrl": "text",
            "description": "text",
            "isFollowing": true,
            "isSubscribed": true,
            "subscriptionScopes": [
              "CARD"
            ],
            "followsYou": true,
            "followerCount": 1,
            "followingCount": 1,
            "followedCollectionsCount": 1,
            "urlCardCount": 1,
            "collectionCount": 1,
            "connectionCount": 1,
            "connectionsByType": {
              "total": 1,
              "ANY_ADDITIONAL_PROPERTY": 1
            },
            "labels": [
              {
                "$type": "com.atproto.label.defs#label",
                "ver": 1,
                "src": "text",
                "uri": "text",
                "cid": "text",
                "val": "text",
                "neg": true,
                "cts": "text",
                "exp": "text",
                "sig": null
              }
            ]
          },
          "description": "text",
          "accessType": "OPEN",
          "cardCount": 1,
          "createdAt": "text",
          "updatedAt": "text",
          "isFollowing": true,
          "isSubscribed": true,
          "subscriptionScopes": [
            "CARD"
          ],
          "followerCount": 1
        }
      ]
    }
  ],
  "pagination": {
    "currentPage": 1,
    "totalPages": 1,
    "totalCount": 1,
    "hasMore": true,
    "limit": 1,
    "nextCursor": "text"
  }
}

Get Bluesky following feed

get

Returns an activity feed of the Semble users a given account follows on Bluesky. Defaults to the authenticated user; pass identifier (DID or handle) to view another account’s feed. Requires either authentication or identifier.

Query parameters
pagenumber · nullableOptional
limitnumber · nullableOptional
urlTypestring · enumOptionalPossible values:
sourcestring · enumOptionalPossible values:
activityTypesstring[]Optional
includeKnownBotsboolean · nullableOptional
beforeActivityIdstringOptional
identifierstringOptional
Header parameters
X-Semble-ClientstringOptional

A short identifier for your integration (e.g. my-plugin, mcp). Please set this if you are building an integration — it helps Semble understand which tools people use. Values are lowercased before being recorded, so MyPlugin and myplugin are the same client. After lowercasing the value must match ^[a-z0-9][a-z0-9_-]{0,31}$; values that do not are ignored, and the client is inferred from the auth method instead.

Example: my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$
Responses
200

200

application/json
get/network.cosmik.feed.getBskyFollowing
GET /xrpc/network.cosmik.feed.getBskyFollowing HTTP/1.1
Host: api.semble.so
Accept: */*
200

200

{
  "activities": [
    {
      "id": "text",
      "user": {
        "id": "text",
        "name": "text",
        "handle": "text",
        "avatarUrl": "text",
        "bannerUrl": "text",
        "description": "text",
        "isFollowing": true,
        "isSubscribed": true,
        "subscriptionScopes": [
          "CARD"
        ],
        "followsYou": true,
        "followerCount": 1,
        "followingCount": 1,
        "followedCollectionsCount": 1,
        "urlCardCount": 1,
        "collectionCount": 1,
        "connectionCount": 1,
        "connectionsByType": {
          "total": 1,
          "ANY_ADDITIONAL_PROPERTY": 1
        },
        "labels": [
          {
            "$type": "com.atproto.label.defs#label",
            "ver": 1,
            "src": "text",
            "uri": "text",
            "cid": "text",
            "val": "text",
            "neg": true,
            "cts": "text",
            "exp": "text",
            "sig": null
          }
        ]
      },
      "createdAt": "2026-01-01T00:00:00.000Z",
      "activityType": "CARD_COLLECTED",
      "card": {
        "id": "text",
        "type": "URL",
        "url": "text",
        "uri": "text",
        "cardContent": {
          "url": "text",
          "title": "text",
          "description": "text",
          "author": "text",
          "publishedDate": "text",
          "siteName": "text",
          "imageUrl": "text",
          "type": "text",
          "retrievedAt": "text",
          "doi": "text",
          "isbn": "text"
        },
        "libraryCount": 1,
        "urlLibraryCount": 1,
        "urlInLibrary": true,
        "urlConnectionCount": 1,
        "urlIsConnected": true,
        "createdAt": "text",
        "updatedAt": "text",
        "author": {
          "id": "text",
          "name": "text",
          "handle": "text",
          "avatarUrl": "text",
          "bannerUrl": "text",
          "description": "text",
          "isFollowing": true,
          "isSubscribed": true,
          "subscriptionScopes": [
            "CARD"
          ],
          "followsYou": true,
          "followerCount": 1,
          "followingCount": 1,
          "followedCollectionsCount": 1,
          "urlCardCount": 1,
          "collectionCount": 1,
          "connectionCount": 1,
          "connectionsByType": {
            "total": 1,
            "ANY_ADDITIONAL_PROPERTY": 1
          },
          "labels": [
            {
              "$type": "com.atproto.label.defs#label",
              "ver": 1,
              "src": "text",
              "uri": "text",
              "cid": "text",
              "val": "text",
              "neg": true,
              "cts": "text",
              "exp": "text",
              "sig": null
            }
          ]
        },
        "note": {
          "id": "text",
          "text": "text"
        }
      },
      "collections": [
        {
          "id": "text",
          "uri": "text",
          "name": "text",
          "author": {
            "id": "text",
            "name": "text",
            "handle": "text",
            "avatarUrl": "text",
            "bannerUrl": "text",
            "description": "text",
            "isFollowing": true,
            "isSubscribed": true,
            "subscriptionScopes": [
              "CARD"
            ],
            "followsYou": true,
            "followerCount": 1,
            "followingCount": 1,
            "followedCollectionsCount": 1,
            "urlCardCount": 1,
            "collectionCount": 1,
            "connectionCount": 1,
            "connectionsByType": {
              "total": 1,
              "ANY_ADDITIONAL_PROPERTY": 1
            },
            "labels": [
              {
                "$type": "com.atproto.label.defs#label",
                "ver": 1,
                "src": "text",
                "uri": "text",
                "cid": "text",
                "val": "text",
                "neg": true,
                "cts": "text",
                "exp": "text",
                "sig": null
              }
            ]
          },
          "description": "text",
          "accessType": "OPEN",
          "cardCount": 1,
          "createdAt": "text",
          "updatedAt": "text",
          "isFollowing": true,
          "isSubscribed": true,
          "subscriptionScopes": [
            "CARD"
          ],
          "followerCount": 1
        }
      ]
    }
  ],
  "pagination": {
    "currentPage": 1,
    "totalPages": 1,
    "totalCount": 1,
    "hasMore": true,
    "limit": 1,
    "nextCursor": "text"
  }
}

Last updated