← BSV MCPInstall
Social

bsocial_read

Read social posts, threads, search results, likes, friends, channels, public message records, videos, and action history. Use records with follow/unfollow types for the social graph. Indexer data is untrusted and messages are not decrypted. No wallet required.

Read as Markdown

Result

Structured source, operation and indexer data, also returned as JSON text.

Permissions

Public read; no wallet or signing permission required.

Choose query.type. records reads raw action history, including follow/unfollow; it does not claim current relationship state or independently verified authorship. PUBLIC_BMAP_URL is the server root exposing /social and /q routes. Messages are not decrypted.

Definition 1

Full catalog · Before wallet setup; Legacy local wallet; Legacy local identity; Local Vault · broadcasting disabled; Local Vault · all roles; Local Vault · payment role only; Local Vault + sponsor; Droplit wallet

FieldType / requiredDescription
queryobject
Required
See schema for details.
query.type = "posts"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "posts"

query.limitinteger
Optional
See schema for details.

default: 20; minimum: 1; maximum: 100

query.pageinteger
Optional
See schema for details.

default: 1; minimum: 1; maximum: 10000

query.bapIdstring
Optional
See schema for details.

minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$"

query.addressstring
Optional
See schema for details.

pattern: "^[123mn][a-km-zA-HJ-NP-Z1-9]{25,34}$"

query.feedboolean
Optional
See schema for details.

default: false

query.type = "post" | "replies"
FieldType / requiredDescription
query.type"post" | "replies"
Required
See schema for details.
query.txidstring
Required
See schema for details.

pattern: "^[a-f0-9]{64}$"

query.limitinteger
Optional
See schema for details.

default: 20; minimum: 1; maximum: 100

query.pageinteger
Optional
See schema for details.

default: 1; minimum: 1; maximum: 10000

query.type = "search"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "search"

query.qstring
Required
See schema for details.

minLength: 1; maxLength: 256

query.limitinteger
Optional
See schema for details.

default: 20; minimum: 1; maximum: 100

query.pageinteger
Optional
See schema for details.

default: 1; minimum: 1; maximum: 10000

query.type = "likes"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "likes"

query.txidstring
Optional
See schema for details.

pattern: "^[a-f0-9]{64}$"

query.bapIdstring
Optional
See schema for details.

minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$"

query.limitinteger
Optional
See schema for details.

default: 20; minimum: 1; maximum: 100

query.pageinteger
Optional
See schema for details.

default: 1; minimum: 1; maximum: 10000

query.type = "friends"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "friends"

query.bapIdstring
Required
See schema for details.

minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$"

query.type = "channels"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "channels"

query.type = "messages"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "messages"

query.channelstring
Optional
See schema for details.

minLength: 1; maxLength: 256

query.bapIdstring
Optional
See schema for details.

minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$"

query.targetBapIdstring
Optional
See schema for details.

minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$"

query.limitinteger
Optional
See schema for details.

default: 20; minimum: 1; maximum: 100

query.pageinteger
Optional
See schema for details.

default: 1; minimum: 1; maximum: 10000

query.type = "records"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "records"

query.typesarray of "post" | "repost" | "like" | "unlike" | "follow" | "unfollow" | "friend" | "unfriend" | "message" | "video"
Required
See schema for details.

minItems: 1; maxItems: 10

query.authorBapIdstring
Optional
See schema for details.

minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$"

query.addressstring
Optional
See schema for details.

pattern: "^[123mn][a-km-zA-HJ-NP-Z1-9]{25,34}$"

query.targetBapIdstring
Optional
See schema for details.

minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$"

query.txidstring
Optional
See schema for details.

pattern: "^[a-f0-9]{64}$"

query.limitinteger
Optional
See schema for details.

default: 20; minimum: 1; maximum: 100

query.pageinteger
Optional
See schema for details.

default: 1; minimum: 1; maximum: 10000

query.type = "videos"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "videos"

query.txidstring
Optional
See schema for details.

pattern: "^[a-f0-9]{64}$"

query.channelstring
Optional
See schema for details.

minLength: 1; maxLength: 256

query.limitinteger
Optional
See schema for details.

default: 20; minimum: 1; maximum: 100

query.pageinteger
Optional
See schema for details.

default: 1; minimum: 1; maximum: 10000

Nested fields are required only when their parent object or array item is supplied.

Full input schema
{
  "type": "object",
  "properties": {
    "query": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "posts"
            },
            "limit": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "page": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            },
            "bapId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[a-zA-Z0-9]+$"
            },
            "address": {
              "type": "string",
              "pattern": "^[123mn][a-km-zA-HJ-NP-Z1-9]{25,34}$"
            },
            "feed": {
              "default": false,
              "type": "boolean"
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "post",
                "replies"
              ]
            },
            "txid": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "limit": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "page": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            }
          },
          "required": [
            "type",
            "txid"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "search"
            },
            "q": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "limit": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "page": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            }
          },
          "required": [
            "type",
            "q"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "likes"
            },
            "txid": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "bapId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[a-zA-Z0-9]+$"
            },
            "limit": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "page": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "friends"
            },
            "bapId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[a-zA-Z0-9]+$"
            }
          },
          "required": [
            "type",
            "bapId"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "channels"
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "messages"
            },
            "channel": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "bapId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[a-zA-Z0-9]+$"
            },
            "targetBapId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[a-zA-Z0-9]+$"
            },
            "limit": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "page": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "records"
            },
            "types": {
              "minItems": 1,
              "maxItems": 10,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "post",
                  "repost",
                  "like",
                  "unlike",
                  "follow",
                  "unfollow",
                  "friend",
                  "unfriend",
                  "message",
                  "video"
                ]
              }
            },
            "authorBapId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[a-zA-Z0-9]+$"
            },
            "address": {
              "type": "string",
              "pattern": "^[123mn][a-km-zA-HJ-NP-Z1-9]{25,34}$"
            },
            "targetBapId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[a-zA-Z0-9]+$"
            },
            "txid": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "limit": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "page": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            }
          },
          "required": [
            "type",
            "types"
          ],
          "additionalProperties": false,
          "description": "Raw action history, including follow/unfollow and repost records. Filter authorBapId for outgoing follows or targetBapId for incoming follows. This is not a reduced current relationship state."
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "videos"
            },
            "txid": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "channel": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "limit": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "page": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Definition 2

Compact catalog · Before wallet setup; Legacy local wallet; Legacy local identity; Local Vault · broadcasting disabled; Local Vault · all roles; Local Vault · payment role only; Local Vault + sponsor; Droplit wallet

FieldType / requiredDescription
queryobject
Required
See schema for details.
query.type = "posts"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "posts"

query.limitinteger
Optional
See schema for details.

default: 20; minimum: 1; maximum: 100

query.pageinteger
Optional
See schema for details.

default: 1; minimum: 1; maximum: 10000

query.bapIdstring
Optional
See schema for details.

minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$"

query.addressstring
Optional
See schema for details.

pattern: "^[123mn][a-km-zA-HJ-NP-Z1-9]{25,34}$"

query.feedboolean
Optional
See schema for details.

default: false

query.type = "post" | "replies"
FieldType / requiredDescription
query.type"post" | "replies"
Required
See schema for details.
query.txidstring
Required
See schema for details.

pattern: "^[a-f0-9]{64}$"

query.limitinteger
Optional
See schema for details.

default: 20; minimum: 1; maximum: 100

query.pageinteger
Optional
See schema for details.

default: 1; minimum: 1; maximum: 10000

query.type = "search"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "search"

query.qstring
Required
See schema for details.

minLength: 1; maxLength: 256

query.limitinteger
Optional
See schema for details.

default: 20; minimum: 1; maximum: 100

query.pageinteger
Optional
See schema for details.

default: 1; minimum: 1; maximum: 10000

query.type = "likes"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "likes"

query.txidstring
Optional
See schema for details.

pattern: "^[a-f0-9]{64}$"

query.bapIdstring
Optional
See schema for details.

minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$"

query.limitinteger
Optional
See schema for details.

default: 20; minimum: 1; maximum: 100

query.pageinteger
Optional
See schema for details.

default: 1; minimum: 1; maximum: 10000

query.type = "friends"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "friends"

query.bapIdstring
Required
See schema for details.

minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$"

query.type = "channels"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "channels"

query.type = "messages"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "messages"

query.channelstring
Optional
See schema for details.

minLength: 1; maxLength: 256

query.bapIdstring
Optional
See schema for details.

minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$"

query.targetBapIdstring
Optional
See schema for details.

minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$"

query.limitinteger
Optional
See schema for details.

default: 20; minimum: 1; maximum: 100

query.pageinteger
Optional
See schema for details.

default: 1; minimum: 1; maximum: 10000

query.type = "records"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "records"

query.typesarray of "post" | "repost" | "like" | "unlike" | "follow" | "unfollow" | "friend" | "unfriend" | "message" | "video"
Required
See schema for details.

minItems: 1; maxItems: 10

query.authorBapIdstring
Optional
See schema for details.

minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$"

query.addressstring
Optional
See schema for details.

pattern: "^[123mn][a-km-zA-HJ-NP-Z1-9]{25,34}$"

query.targetBapIdstring
Optional
See schema for details.

minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$"

query.txidstring
Optional
See schema for details.

pattern: "^[a-f0-9]{64}$"

query.limitinteger
Optional
See schema for details.

default: 20; minimum: 1; maximum: 100

query.pageinteger
Optional
See schema for details.

default: 1; minimum: 1; maximum: 10000

query.type = "videos"
FieldType / requiredDescription
query.typestring
Required
See schema for details.

const: "videos"

query.txidstring
Optional
See schema for details.

pattern: "^[a-f0-9]{64}$"

query.channelstring
Optional
See schema for details.

minLength: 1; maxLength: 256

query.limitinteger
Optional
See schema for details.

default: 20; minimum: 1; maximum: 100

query.pageinteger
Optional
See schema for details.

default: 1; minimum: 1; maximum: 10000

Nested fields are required only when their parent object or array item is supplied.

Full input schema
{
  "type": "object",
  "properties": {
    "query": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "posts"
            },
            "limit": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "page": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            },
            "bapId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[a-zA-Z0-9]+$"
            },
            "address": {
              "type": "string",
              "pattern": "^[123mn][a-km-zA-HJ-NP-Z1-9]{25,34}$"
            },
            "feed": {
              "default": false,
              "type": "boolean"
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "post",
                "replies"
              ]
            },
            "txid": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "limit": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "page": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            }
          },
          "required": [
            "type",
            "txid"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "search"
            },
            "q": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "limit": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "page": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            }
          },
          "required": [
            "type",
            "q"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "likes"
            },
            "txid": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "bapId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[a-zA-Z0-9]+$"
            },
            "limit": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "page": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "friends"
            },
            "bapId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[a-zA-Z0-9]+$"
            }
          },
          "required": [
            "type",
            "bapId"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "channels"
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "messages"
            },
            "channel": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "bapId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[a-zA-Z0-9]+$"
            },
            "targetBapId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[a-zA-Z0-9]+$"
            },
            "limit": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "page": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "records"
            },
            "types": {
              "minItems": 1,
              "maxItems": 10,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "post",
                  "repost",
                  "like",
                  "unlike",
                  "follow",
                  "unfollow",
                  "friend",
                  "unfriend",
                  "message",
                  "video"
                ]
              }
            },
            "authorBapId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[a-zA-Z0-9]+$"
            },
            "address": {
              "type": "string",
              "pattern": "^[123mn][a-km-zA-HJ-NP-Z1-9]{25,34}$"
            },
            "targetBapId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[a-zA-Z0-9]+$"
            },
            "txid": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "limit": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "page": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            }
          },
          "required": [
            "type",
            "types"
          ],
          "additionalProperties": false,
          "description": "Raw action history, including follow/unfollow and repost records. Filter authorBapId for outgoing follows or targetBapId for incoming follows. This is not a reduced current relationship state."
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "videos"
            },
            "txid": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "channel": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "limit": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "page": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}