@archastro/sdk
    Preparing search index...

    Interface Thread

    A chat thread, representing a conversation channel that can be owned by a user, team, or agent and may contain messages, participants, and AI agent activity.

    interface Thread {
        agent_user?: string | null;
        created_at?: string;
        creator?:
            | string
            | {
                alias?: string
                | null;
                app?: string | null;
                app_name?: string | null;
                created_by_agent_user?: string | null;
                created_by_developer?: string | null;
                created_by_org?: string | null;
                created_by_team?: string | null;
                created_by_user?: string | null;
                email?: string | null;
                id: string;
                is_system_user?: boolean;
                metadata?: Record<string, unknown>;
                name?: string | null;
                org?: string | null;
                org_name?: string | null;
                org_role?: string | null;
                org_slug?: string | null;
                sandbox?: string | null;
                sandbox_name?: string | null;
            }
            | null;
        description?: string
        | null;
        id: string;
        is_channel?: boolean;
        is_default?: boolean;
        is_transient?: boolean;
        is_unlisted?: boolean;
        key?: string | null;
        kind?: string | null;
        last_activity?: string | null;
        last_message_preview?: string | null;
        last_message_sender?: string | null;
        metadata?: Record<string, unknown> | null;
        muted?: boolean;
        org?: string | null;
        parent_message?: Message | null;
        participant?: string[];
        participants?: User[];
        participating_actor?: string[];
        participating_agents?: Agent[] | null;
        role?: string | null;
        sandbox?: string | null;
        settings?: ThreadSettings;
        slug?: string | null;
        sub_threads?: Record<string, unknown>[] | null;
        tags?: string[];
        team?: string | null;
        title?: string | null;
        ttl?: string | null;
        unread_count?: number | null;
        updated_at?: string;
        user?: string | null;
        visibility: "team" | "private" | "restricted";
    }
    Index

    Properties

    agent_user?: string | null

    ID of the agent that owns this thread (agt_...). null for user-owned or team-owned threads.

    created_at?: string

    When the thread was created (ISO 8601).

    creator?:
        | string
        | {
            alias?: string
            | null;
            app?: string | null;
            app_name?: string | null;
            created_by_agent_user?: string | null;
            created_by_developer?: string | null;
            created_by_org?: string | null;
            created_by_team?: string | null;
            created_by_user?: string | null;
            email?: string | null;
            id: string;
            is_system_user?: boolean;
            metadata?: Record<string, unknown>;
            name?: string | null;
            org?: string | null;
            org_name?: string | null;
            org_role?: string | null;
            org_slug?: string | null;
            sandbox?: string | null;
            sandbox_name?: string | null;
        }
        | null

    User who created this thread. Returns a user ID (usr_...) by default, or an expanded user object when the association is loaded. null if the creator is unknown.

    description?: string | null

    Optional description or purpose statement for the thread. null if not set.

    id: string

    Thread ID (thr_...).

    is_channel?: boolean

    Whether this thread operates as a channel — a multi-member broadcast-style conversation.

    is_default?: boolean

    Whether this is the default thread for its owner. Each user or team has at most one default thread.

    is_transient?: boolean

    Whether this thread is ephemeral and may be deleted automatically after a period of inactivity or when its TTL expires.

    is_unlisted?: boolean

    Whether this thread is hidden from public discovery. Unlisted threads are accessible only to direct participants.

    key?: string | null

    Application-defined stable key that uniquely identifies the thread within its scope. Useful for idempotent creation. null if not set.

    kind?: string | null

    Thread subtype: "standard" for ordinary threads, "personal" for a user-and-owned-agents roster, "slack_mirror" for the membership-strict mirror of a Slack channel, or "slashwork_mirror" for the membership-strict mirror of a Slashwork group. personal is an explicit user-thread creation option; mirror kinds are server-derived.

    last_activity?: string | null

    When the most recent message was posted in this thread, falling back to the thread's creation time if it has no messages. Always populated on thread list endpoints (which order by it, after default threads); null on endpoints that don't compute activity enrichment.

    last_message_preview?: string | null

    Single-line snippet of the most recent message's text content (first non-empty line, truncated to 140 characters). Populated on thread list endpoints alongside last_activity; null when the thread has no messages, the latest message has no text content (e.g. attachment-only), or the endpoint doesn't compute activity enrichment.

    last_message_sender?: string | null

    Display name of the sender of the most recent message — the same message last_message_preview snippets. Populated on thread list endpoints; null when the thread has no messages or the endpoint doesn't compute activity enrichment.

    metadata?: Record<string, unknown> | null

    Arbitrary key-value metadata attached to the thread. Shape is application-defined; null if no metadata has been set.

    muted?: boolean

    Whether the authenticated user has muted notifications for this thread. true suppresses all notification delivery.

    org?: string | null

    ID of the organization this thread belongs to (org_...). null for threads outside an org context.

    parent_message?: Message | null

    The message that spawned this thread as a sub-thread. null for top-level threads.

    participant?: string[]

    Array of participant user IDs (usr_...) who are members of this thread.

    participants?: User[]

    Expanded participant user objects for each member of this thread. Populated only when the association is loaded.

    participating_actor?: string[]

    Composite actor identifiers for all participants currently active in this thread. Present only when actor enrichment is requested.

    participating_agents?: Agent[] | null

    Expanded agent objects for all agents participating in this thread. Present only when agent enrichment is requested.

    role?: string | null

    The authenticated user's membership role in this thread, e.g. "owner", "member", or "viewer". null if the user is not a member.

    sandbox?: string | null

    ID of the developer sandbox this thread is scoped to (dsb_...). null for production threads.

    settings?: ThreadSettings

    Per-thread configuration settings controlling AI agent behavior for this thread.

    slug?: string | null

    URL-safe slug for the thread, used in human-readable permalinks. null if not assigned.

    sub_threads?: Record<string, unknown>[] | null

    Threads that are nested under this thread as replies to a parent message. Present only when sub-thread enrichment is requested.

    tags?: string[]

    Status tags on the thread (e.g. "blocked", "needs-review"). Edited by any thread participant via the /threads/:thread/tags endpoints and filterable on the thread list endpoints. Empty array if none set.

    team?: string | null

    ID of the team that owns this thread (team_...). null for user-owned or agent-owned threads.

    title?: string | null

    Human-readable name of the thread. null if no title has been set.

    ttl?: string | null

    Offset-free expiry timestamp after which the thread may be automatically cleaned up. null if the thread does not expire.

    unread_count?: number | null

    Number of messages in this thread that the authenticated user has not yet read. Present only when read-state enrichment is requested.

    updated_at?: string

    When the thread was last modified (ISO 8601).

    user?: string | null

    ID of the user who owns this thread (usr_...). null for team-owned or agent-owned threads.

    visibility: "team" | "private" | "restricted"

    Who can read the thread: team for every owning-team member, restricted for team-readable threads with an explicit roster, or private for roster-only access.