Graph
Follows a target user or collection on behalf of the authenticated user.
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.
my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$200
POST /xrpc/network.cosmik.graph.follow HTTP/1.1
Host: api.semble.so
Content-Type: application/json
Accept: */*
Content-Length: 39
{
"targetId": "text",
"targetType": "USER"
}200
{
"followId": "text"
}Removes a follow relationship between the authenticated user and a target.
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.
my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$200
POST /xrpc/network.cosmik.graph.unfollow HTTP/1.1
Host: api.semble.so
Content-Type: application/json
Accept: */*
Content-Length: 39
{
"targetId": "text",
"targetType": "USER"
}200
{
"success": true
}Returns users followed by the specified account, identified by handle or DID.
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.
my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$200
GET /xrpc/network.cosmik.graph.getFollowing?identifier=text HTTP/1.1
Host: api.semble.so
Accept: */*
200
{
"users": [
{
"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
}
]
}
],
"pagination": {
"currentPage": 1,
"totalPages": 1,
"totalCount": 1,
"hasMore": true,
"limit": 1
}
}Returns users who follow the specified account, identified by handle or DID.
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.
my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$200
GET /xrpc/network.cosmik.graph.getFollowers?identifier=text HTTP/1.1
Host: api.semble.so
Accept: */*
200
{
"users": [
{
"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
}
]
}
],
"pagination": {
"currentPage": 1,
"totalPages": 1,
"totalCount": 1,
"hasMore": true,
"limit": 1
}
}Returns collections followed by the specified account, identified by handle or DID.
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.
my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$200
GET /xrpc/network.cosmik.graph.getFollowingCollections?identifier=text HTTP/1.1
Host: api.semble.so
Accept: */*
200
{
"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
}
}Returns the number of users a given account follows.
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.
my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$200
GET /xrpc/network.cosmik.graph.getFollowingCount?identifier=text HTTP/1.1
Host: api.semble.so
Accept: */*
200
{
"count": 1
}Returns the number of followers for a given account.
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.
my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$200
GET /xrpc/network.cosmik.graph.getFollowersCount?identifier=text HTTP/1.1
Host: api.semble.so
Accept: */*
200
{
"count": 1
}Returns the number of collections a given account follows.
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.
my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$200
GET /xrpc/network.cosmik.graph.getFollowingCollectionsCount?identifier=text HTTP/1.1
Host: api.semble.so
Accept: */*
200
{
"count": 1
}Marks an existing follow as subscribed for the authenticated user. Requires that the user is already following the target.
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.
my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$200
POST /xrpc/network.cosmik.graph.subscribe HTTP/1.1
Host: api.semble.so
Content-Type: application/json
Accept: */*
Content-Length: 57
{
"targetId": "text",
"targetType": "USER",
"scopes": [
"CARD"
]
}200
{
"followId": "text",
"subscribedAt": "text",
"scopes": [
"CARD"
]
}Clears the subscription flag on an existing follow. Idempotent.
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.
my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$200
POST /xrpc/network.cosmik.graph.unsubscribe HTTP/1.1
Host: api.semble.so
Content-Type: application/json
Accept: */*
Content-Length: 39
{
"targetId": "text",
"targetType": "USER"
}200
{
"success": true
}Replaces the scope set on a subscription. Requires the caller to already be subscribed to the target.
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.
my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$200
POST /xrpc/network.cosmik.graph.updateSubscription HTTP/1.1
Host: api.semble.so
Content-Type: application/json
Accept: */*
Content-Length: 57
{
"targetId": "text",
"targetType": "USER",
"scopes": [
"CARD"
]
}200
{
"followId": "text",
"subscribedAt": "text",
"scopes": [
"CARD"
]
}Returns the authenticated user's subscribed users and collections, ordered by subscribedAt DESC.
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.
my-pluginPattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$200
GET /xrpc/network.cosmik.graph.getSubscriptions HTTP/1.1
Host: api.semble.so
Accept: */*
200
{
"items": [
{
"type": "USER",
"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
}
]
},
"subscribedAt": "text",
"scopes": [
"CARD"
]
}
],
"pagination": {
"currentPage": 1,
"totalPages": 1,
"totalCount": 1,
"hasMore": true,
"limit": 1
}
}Last updated

