> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tryreplicas.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Attach Slack Thread

> Routes a Slack thread to a workspace. Agent-mode requests can target only their authenticated workspace; use user or API-key authentication to switch a thread to another workspace.



## OpenAPI

````yaml /openapi.json post /v1/slack/threads/attach
openapi: 3.1.0
info:
  title: Replica API
  version: 2.0.0
  description: >-
    The Replica API allows you to programmatically manage cloud workspaces for
    AI agents. Use this API to manage environments (the org-scoped primitive
    workspaces are created from — including variables, files, skills, MCPs, warm
    hooks, start hooks, and warm pools), create and manage replicas, send
    messages, manage chats, stream events, read connected repositories and
    repository sets, and configure automations.
servers:
  - url: https://api.tryreplicas.com
    description: Production API
security:
  - apiKey: []
tags:
  - name: Environments
    description: >-
      Manage environments — the primitive that workspaces are created from.
      Variables, files, skills, MCPs, warm-hooks, and warm-pools are all scoped
      to an environment. Every organization has a singleton Global environment
      whose values apply to every workspace. Personal environments are scoped to
      the authenticated user and can be standalone or source-backed by a team
      environment.
  - name: Repository
    description: >-
      Read repositories and repository sets connected to your organization.
      Repositories are the underlying GitHub-connection layer; bind them to an
      environment to use them in workspaces.
  - name: Replica
    description: Manage replicas (workspaces) for AI agents
  - name: Terminal
    description: Manage interactive terminal sessions in active workspaces
  - name: Preview
    description: Manage public preview URLs for workspace ports
  - name: Profile
    description: Read and update the authenticated user's profile
  - name: Credentials
    description: >-
      Manage coding-agent credentials for an organization or the authenticated
      user
  - name: Google Search Console
    description: >-
      Read Search Console properties, performance, sitemaps, and URL inspection
      results through a connected Google account
  - name: Slack
    description: Route Slack threads to Replicas workspaces
  - name: Automation
    description: >-
      Create and manage automations that trigger replicas on a schedule or in
      response to events
  - name: Downloads
    description: Download Replicas applications
  - name: Analytics
    description: >-
      Read aggregated activity and usage metrics for your organization: compute
      minutes, workspaces created by source, and pull request throughput over a
      time range.
paths:
  /v1/slack/threads/attach:
    post:
      tags:
        - Slack
      summary: Attach Slack Thread
      description: >-
        Routes a Slack thread to a workspace. Agent-mode requests can target
        only their authenticated workspace; use user or API-key authentication
        to switch a thread to another workspace.
      operationId: attachSlackThread
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SlackThreadAttachRequest'
      responses:
        '200':
          description: Slack thread routed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlackThreadAttachResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: The workspace agent cannot route this Slack thread
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - apiKey: []
        - engineSecret: []
          workspaceId: []
components:
  schemas:
    SlackThreadAttachRequest:
      type: object
      properties:
        channel_id:
          type: string
          description: Slack channel ID containing the thread.
        thread_ts:
          type: string
          description: Slack thread timestamp.
        workspace_id:
          type: string
          format: uuid
          description: Target workspace ID. Required outside agent mode.
      required:
        - channel_id
        - thread_ts
    SlackThreadAttachResponse:
      type: object
      properties:
        thread:
          $ref: '#/components/schemas/SlackThreadRecord'
        workspace:
          type: object
          properties:
            id:
              type: string
              format: uuid
            name:
              type: string
          required:
            - id
            - name
      required:
        - thread
        - workspace
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message
        details:
          type:
            - string
            - 'null'
          description: Additional error details
      required:
        - error
    SlackThreadRecord:
      type: object
      properties:
        id:
          type: string
          format: uuid
        organization_id:
          type: string
          format: uuid
        slack_team_id:
          type: string
        channel_id:
          type: string
        thread_ts:
          type: string
        workspace_id:
          type:
            - string
            - 'null'
          format: uuid
        status:
          type: string
        metadata:
          $ref: '#/components/schemas/SlackThreadMetadata'
        last_processed_message_ts:
          type:
            - string
            - 'null'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
      required:
        - id
        - organization_id
        - slack_team_id
        - channel_id
        - thread_ts
        - workspace_id
        - status
        - metadata
        - last_processed_message_ts
        - created_at
        - updated_at
    SlackThreadMetadata:
      type: object
      properties:
        channel_id:
          type: string
        channel_name:
          type: string
        thread_ts:
          type: string
        message_ts:
          type: string
        original_message:
          type: string
        user_id:
          type: string
        user_name:
          type: string
        images:
          type: array
          items:
            type: object
            additionalProperties: true
        workspace_target:
          type: object
          properties:
            label:
              type: string
          required:
            - label
        workspace:
          type: object
          properties:
            id:
              type: string
              format: uuid
            coding_agent:
              type: string
            task_description:
              type: string
            created_at:
              type: string
              format: date-time
          required:
            - id
            - task_description
            - created_at
      required:
        - channel_id
        - thread_ts
        - original_message
        - user_id
  responses:
    BadRequest:
      description: Bad request - Missing or invalid parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized - Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Conflict:
      description: >-
        Conflict - Resource already exists or operation conflicts with current
        state
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        API key authentication. Obtain your API key from the Replicas dashboard
        under Organization → Settings → API Keys.
    engineSecret:
      type: http
      scheme: bearer
      description: Workspace engine secret used by agent-mode workspace requests.
    workspaceId:
      type: apiKey
      in: header
      name: X-Workspace-Id
      description: >-
        Workspace ID used with the engine secret for agent-mode workspace
        requests.

````