social.colibri.beta.thread.create

colibri.social

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Opens a thread beside a text channel. This creates a space for the thread, then writes the thread's configuration record at key 'self' inside it. The anchor message is referenced rather than copied, so it stays in its author's repo in the channel where it was written.",
      "errors": [
        {
          "description": "The request has no valid service auth.",
          "name": "AuthRequired"
        },
        {
          "description": "The requesting user lacks the thread.create permission or may not post in the channel.",
          "name": "Forbidden"
        },
        {
          "description": "No community matches the given DID.",
          "name": "CommunityNotFound"
        },
        {
          "description": "No channel matches the given space reference.",
          "name": "ChannelNotFound"
        },
        {
          "description": "The anchor message does not exist in the given channel.",
          "name": "MessageNotFound"
        },
        {
          "description": "The requesting user cannot grant a role that outranks their own.",
          "name": "RoleHierarchy"
        },
        {
          "description": "The arguments are inconsistent or malformed beyond schema validation.",
          "name": "InvalidRequest"
        },
        {
          "description": "The AppView cannot act as the community because its stored credentials are missing or unusable.",
          "name": "CredentialsUnavailable"
        },
        {
          "description": "The community's PDS is unreachable or the AppView has no administrative access to it.",
          "name": "PdsUnavailable"
        },
        {
          "description": "The community's PDS failed while creating the thread's space.",
          "name": "UpstreamFailure"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "anchor": {
              "description": "The message to open the thread from. Absent opens a thread from scratch, which has no marker in the channel river and is reachable from the channel's thread list and the sidebar.",
              "ref": "social.colibri.beta.defs#spaceRecordRef",
              "type": "ref"
            },
            "channel": {
              "description": "The text channel to open the thread beside.",
              "format": "space-ref",
              "type": "string"
            },
            "community": {
              "description": "The community the thread's channel belongs to.",
              "format": "did",
              "type": "string"
            },
            "name": {
              "description": "The thread's title.",
              "maxLength": 128,
              "minLength": 1,
              "type": "string"
            },
            "visibleToMembers": {
              "description": "Members that may read this thread beyond visibleToRoles.",
              "items": {
                "description": "A member.",
                "format": "did",
                "type": "string"
              },
              "type": "array"
            },
            "visibleToRoles": {
              "description": "Roles that may read this thread. Empty means everyone who may read the channel may read the thread.",
              "items": {
                "description": "A role.",
                "format": "record-key",
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": [
            "community",
            "channel",
            "name"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "thread": {
              "description": "The thread.",
              "ref": "social.colibri.beta.thread.defs#threadView",
              "type": "ref"
            }
          },
          "required": [
            "thread"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "id": "social.colibri.beta.thread.create",
  "lexicon": 1
}

Validate Record

Validate a record against social.colibri.beta.thread.create

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:mprdjqjluoswa7awzggaggj3
CID
bafyreifgkcql547jn6bvwkkrv5vvdhisjyj53pd2mcgfelqpauwsc2mpgy
Indexed At
2026-09-01 11:12 UTC
AT-URI
at://did:plc:mprdjqjluoswa7awzggaggj3/com.atproto.lexicon.schema/social.colibri.beta.thread.create

Referenced Schemas (2)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • Opens a thread beside a linked channel for someone on another service. The community writes the thread, attributed to that person.

  • A thread's configuration, including the link to the channel it belongs to. Lives at key 'self' in the thread's own space and is written only by the community.

  • Creates a channel. This creates a space for the channel, then writes the channel's configuration record at key 'self' inside that space.

  • A thread beside a text channel. The space key is the thread's identity, and the thread's own configuration is the social.colibri.beta.thread record at key 'self' inside it. That record carries the link to the parent cha…

  • Moves a thread to another channel by rewriting the channel its record links to, and optionally repoints it at another message. Who may read the thread follows the new channel. Left without an anchor the thread keeps the…

Lexicon Garden

@