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 MarkdownResult
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
| Field | Type / required | Description |
|---|---|---|
| query | object Required | See schema for details. |
query.type = "posts"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "posts" |
| query.limit | integer Optional | See schema for details. default: 20; minimum: 1; maximum: 100 |
| query.page | integer Optional | See schema for details. default: 1; minimum: 1; maximum: 10000 |
| query.bapId | string Optional | See schema for details. minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$" |
| query.address | string Optional | See schema for details. pattern: "^[123mn][a-km-zA-HJ-NP-Z1-9]{25,34}$" |
| query.feed | boolean Optional | See schema for details. default: false |
query.type = "post" | "replies"
| Field | Type / required | Description |
|---|---|---|
| query.type | "post" | "replies" Required | See schema for details. |
| query.txid | string Required | See schema for details. pattern: "^[a-f0-9]{64}$" |
| query.limit | integer Optional | See schema for details. default: 20; minimum: 1; maximum: 100 |
| query.page | integer Optional | See schema for details. default: 1; minimum: 1; maximum: 10000 |
query.type = "search"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "search" |
| query.q | string Required | See schema for details. minLength: 1; maxLength: 256 |
| query.limit | integer Optional | See schema for details. default: 20; minimum: 1; maximum: 100 |
| query.page | integer Optional | See schema for details. default: 1; minimum: 1; maximum: 10000 |
query.type = "likes"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "likes" |
| query.txid | string Optional | See schema for details. pattern: "^[a-f0-9]{64}$" |
| query.bapId | string Optional | See schema for details. minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$" |
| query.limit | integer Optional | See schema for details. default: 20; minimum: 1; maximum: 100 |
| query.page | integer Optional | See schema for details. default: 1; minimum: 1; maximum: 10000 |
query.type = "friends"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "friends" |
| query.bapId | string Required | See schema for details. minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$" |
query.type = "channels"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "channels" |
query.type = "messages"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "messages" |
| query.channel | string Optional | See schema for details. minLength: 1; maxLength: 256 |
| query.bapId | string Optional | See schema for details. minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$" |
| query.targetBapId | string Optional | See schema for details. minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$" |
| query.limit | integer Optional | See schema for details. default: 20; minimum: 1; maximum: 100 |
| query.page | integer Optional | See schema for details. default: 1; minimum: 1; maximum: 10000 |
query.type = "records"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "records" |
| query.types | array of "post" | "repost" | "like" | "unlike" | "follow" | "unfollow" | "friend" | "unfriend" | "message" | "video" Required | See schema for details. minItems: 1; maxItems: 10 |
| query.authorBapId | string Optional | See schema for details. minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$" |
| query.address | string Optional | See schema for details. pattern: "^[123mn][a-km-zA-HJ-NP-Z1-9]{25,34}$" |
| query.targetBapId | string Optional | See schema for details. minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$" |
| query.txid | string Optional | See schema for details. pattern: "^[a-f0-9]{64}$" |
| query.limit | integer Optional | See schema for details. default: 20; minimum: 1; maximum: 100 |
| query.page | integer Optional | See schema for details. default: 1; minimum: 1; maximum: 10000 |
query.type = "videos"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "videos" |
| query.txid | string Optional | See schema for details. pattern: "^[a-f0-9]{64}$" |
| query.channel | string Optional | See schema for details. minLength: 1; maxLength: 256 |
| query.limit | integer Optional | See schema for details. default: 20; minimum: 1; maximum: 100 |
| query.page | integer 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
| Field | Type / required | Description |
|---|---|---|
| query | object Required | See schema for details. |
query.type = "posts"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "posts" |
| query.limit | integer Optional | See schema for details. default: 20; minimum: 1; maximum: 100 |
| query.page | integer Optional | See schema for details. default: 1; minimum: 1; maximum: 10000 |
| query.bapId | string Optional | See schema for details. minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$" |
| query.address | string Optional | See schema for details. pattern: "^[123mn][a-km-zA-HJ-NP-Z1-9]{25,34}$" |
| query.feed | boolean Optional | See schema for details. default: false |
query.type = "post" | "replies"
| Field | Type / required | Description |
|---|---|---|
| query.type | "post" | "replies" Required | See schema for details. |
| query.txid | string Required | See schema for details. pattern: "^[a-f0-9]{64}$" |
| query.limit | integer Optional | See schema for details. default: 20; minimum: 1; maximum: 100 |
| query.page | integer Optional | See schema for details. default: 1; minimum: 1; maximum: 10000 |
query.type = "search"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "search" |
| query.q | string Required | See schema for details. minLength: 1; maxLength: 256 |
| query.limit | integer Optional | See schema for details. default: 20; minimum: 1; maximum: 100 |
| query.page | integer Optional | See schema for details. default: 1; minimum: 1; maximum: 10000 |
query.type = "likes"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "likes" |
| query.txid | string Optional | See schema for details. pattern: "^[a-f0-9]{64}$" |
| query.bapId | string Optional | See schema for details. minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$" |
| query.limit | integer Optional | See schema for details. default: 20; minimum: 1; maximum: 100 |
| query.page | integer Optional | See schema for details. default: 1; minimum: 1; maximum: 10000 |
query.type = "friends"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "friends" |
| query.bapId | string Required | See schema for details. minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$" |
query.type = "channels"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "channels" |
query.type = "messages"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "messages" |
| query.channel | string Optional | See schema for details. minLength: 1; maxLength: 256 |
| query.bapId | string Optional | See schema for details. minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$" |
| query.targetBapId | string Optional | See schema for details. minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$" |
| query.limit | integer Optional | See schema for details. default: 20; minimum: 1; maximum: 100 |
| query.page | integer Optional | See schema for details. default: 1; minimum: 1; maximum: 10000 |
query.type = "records"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "records" |
| query.types | array of "post" | "repost" | "like" | "unlike" | "follow" | "unfollow" | "friend" | "unfriend" | "message" | "video" Required | See schema for details. minItems: 1; maxItems: 10 |
| query.authorBapId | string Optional | See schema for details. minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$" |
| query.address | string Optional | See schema for details. pattern: "^[123mn][a-km-zA-HJ-NP-Z1-9]{25,34}$" |
| query.targetBapId | string Optional | See schema for details. minLength: 1; maxLength: 128; pattern: "^[a-zA-Z0-9]+$" |
| query.txid | string Optional | See schema for details. pattern: "^[a-f0-9]{64}$" |
| query.limit | integer Optional | See schema for details. default: 20; minimum: 1; maximum: 100 |
| query.page | integer Optional | See schema for details. default: 1; minimum: 1; maximum: 10000 |
query.type = "videos"
| Field | Type / required | Description |
|---|---|---|
| query.type | string Required | See schema for details. const: "videos" |
| query.txid | string Optional | See schema for details. pattern: "^[a-f0-9]{64}$" |
| query.channel | string Optional | See schema for details. minLength: 1; maxLength: 256 |
| query.limit | integer Optional | See schema for details. default: 20; minimum: 1; maximum: 100 |
| query.page | integer 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
}