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

# Create a new thread for an agent

> Creates a new execution thread for the specified agent. Threads allow you to run agent tasks, manage their state, and track associated costs.



## OpenAPI

````yaml POST /v1/agents/{agentId}/threads
openapi: 3.0.0
info:
  title: Devic.ai Public API
  description: >-
    Devic.ai is an AI platform that allows you to create, manage, and use AI
    agents for various tasks.
  version: 1.0.0
  contact:
    name: Devic.ai Support
    url: https://devic.ai
  x-logo:
    url: https://devic.ai/logo.png
    altText: Devic.ai Logo
  x-summary: Public API for interacting with Devic.ai platform
servers:
  - url: https://api.devic.ai
    description: Production server
  - url: https://staging-api.devic.ai
    description: Staging server
security:
  - bearerAuth: []
tags:
  - name: Projects
    description: Group agents, assistants, documents and costs into projects
  - name: Documents
    description: >-
      Knowledge base documents: create, version, attach and index markdown
      content for RAG
  - name: Document Folders
    description: Organise knowledge base documents into folders and attach them in bulk
  - name: Files
    description: Upload files and obtain shareable download URLs to attach to messages
  - name: Agents
    description: Endpoints related to AI agents and their operations
  - name: Assistants
    description: Endpoints for interacting with assistants and their specializations
  - name: Tool Servers
    description: Endpoints for managing tool servers and their tool definitions
  - name: Health
    description: API health check endpoints
  - name: Documentation
    description: Endpoints for retrieving markdown documentation
paths:
  /v1/agents/{agentId}/threads:
    post:
      tags:
        - Agents
      summary: Create a new thread for an agent
      description: >-
        Creates a new execution thread for the specified agent. Threads allow
        you to run agent tasks, manage their state, and track associated costs.
      operationId: createAgentThread
      parameters:
        - name: agentId
          in: path
          required: true
          description: UUID of the agent for which to create the thread
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        description: Payload to create a new thread
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateThreadRequest'
      responses:
        '201':
          description: Thread created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentThread'
        '400':
          description: Invalid input payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - Invalid or missing token
        '404':
          description: Agent not found
        '429':
          description: Too Many Requests - Rate limit exceeded
        '500':
          description: Internal Server Error
      security:
        - bearerAuth: []
components:
  schemas:
    CreateThreadRequest:
      type: object
      required:
        - messages
      properties:
        messages:
          type: array
          items:
            $ref: '#/components/schemas/AgentThreadMessage'
          description: Initial messages for the thread
        metadata:
          type: object
          additionalProperties: true
          description: Custom metadata to associate with the thread
        tenantId:
          type: string
          description: >-
            Tenant (customer/organization) this thread belongs to in
            multi-tenant setups. Auto-registers the tenant on first use and
            attributes its cost/usage. See the Tenants endpoints.
        subtenantId:
          type: string
          description: >-
            End user/entity inside the tenant. When omitted it is derived from
            metadata.subtenantMetadata.id or the legacy metadata.userId. Used
            for per-subtenant cost attribution and usage limits.
        async:
          type: boolean
          description: Whether to execute the thread asynchronously
          default: false
    AgentThread:
      type: object
      required:
        - id
        - agentId
        - status
        - createdAt
        - messages
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the thread
        agentId:
          type: string
          format: uuid
          description: Unique identifier for the associated agent
        status:
          $ref: '#/components/schemas/ThreadStatus'
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the thread was created
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the thread was last updated
        metadata:
          type: object
          additionalProperties: true
          description: Custom metadata associated with the thread
        messages:
          type: array
          items:
            $ref: '#/components/schemas/AgentThreadMessage'
          description: Messages exchanged in the thread
        cost:
          type: number
          format: float
          description: Total cost accumulated by this thread
    ErrorResponse:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
        details:
          type: object
          additionalProperties: true
          description: Additional details about the error
    AgentThreadMessage:
      type: object
      required:
        - role
        - content
      properties:
        role:
          type: string
          enum:
            - user
            - assistant
            - system
            - tool
          description: Role of the message sender
        content:
          type: string
          description: Content of the message
        name:
          type: string
          description: Name of the tool or function (for tool messages)
        tool_call_id:
          type: string
          description: Unique identifier for the tool call
    ThreadStatus:
      type: string
      enum:
        - RUNNING
        - PAUSED
        - COMPLETED
        - FAILED
        - AWAITING_APPROVAL
      description: Current status of the thread
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Use JWT token for authentication

````