{
"id": "place.stream.moderation.createPin",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"streamer",
"messageUri"
],
"properties": {
"streamer": {
"type": "string",
"format": "did",
"description": "The DID of the streamer."
},
"expiresAt": {
"type": "string",
"format": "datetime",
"description": "Optional expiration time for this pin."
},
"messageUri": {
"type": "string",
"format": "at-uri",
"description": "The AT-URI of the chat message to pin."
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "Unauthorized",
"description": "The request lacks valid authentication credentials."
},
{
"name": "Forbidden",
"description": "The caller does not have permission to pin messages for this streamer."
},
{
"name": "SessionNotFound",
"description": "The streamer's OAuth session could not be found or is invalid."
}
],
"output": {
"schema": {
"type": "object",
"required": [
"uri",
"cid"
],
"properties": {
"cid": {
"type": "string",
"format": "cid",
"description": "The CID of the created pinned record."
},
"uri": {
"type": "string",
"format": "at-uri",
"description": "The AT-URI of the created pinned record."
}
}
},
"encoding": "application/json"
},
"parameters": null,
"description": "Pin a chat message on behalf of a streamer. Requires 'message.pin' permission. Creates a place.stream.chat.pinnedRecord in the streamer's repo, replacing any existing pin."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}