← BSV MCPInstall
Social

bsocial_read

Read posts, conversations, reactions and social history.

Read as Markdown

Example

{
  "query": {
    "type": "search",
    "q": "bitcoin",
    "limit": 10
  }
}

Result

Returns the requested social records and their indexer source.

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.

Inputs and availability

full and 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

Full tool description

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.

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
}