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

# List Threads

<Warning>
  This is an internal/undocumented endpoint. It is not part of the public API and may change without notice. Do not rely on this endpoint for production connections.
</Warning>

Results are limited to threads created by the calling connection for the specified agent.

Each thread object includes a `status` field that is one of `pending`, `completed`, or `failed`.

When a thread's status is `failed`, the response includes an `error` field containing a human-readable message describing the failure reason. The `error` field is omitted for threads that are not in a failed state.


## OpenAPI

````yaml openapi-undocumented.json GET /v1/agents/{agent_id}/threads
openapi: 3.1.0
info:
  title: Notion API (Undocumented)
  version: 1.0.0
  description: >-
    Internal/undocumented Notion API endpoints. These endpoints are not part of
    the public API and may change without notice. Do not rely on these for
    production integrations.
  termsOfService: >-
    https://notion.notion.site/Terms-and-Privacy-28ffdd083dc3473e9c2da6ec011b58ac
  x-noIndex: true
servers:
  - url: https://api.notion.com
security:
  - bearerAuth: []
tags:
  - name: Internal
    description: Internal/undocumented endpoints
    x-hidden: true
paths:
  /v1/agents/{agent_id}/threads:
    get:
      tags:
        - Internal
      summary: List threads
      operationId: list-threads
      parameters:
        - name: agent_id
          in: path
          required: true
          schema:
            oneOf:
              - $ref: '#/components/schemas/idRequest'
              - type: string
                enum:
                  - notion_ai
                  - 33333333-3333-3333-3333-333333333333
                description: 'One of: `notion_ai`, `33333333-3333-3333-3333-333333333333`'
            description: >-
              The ID of the agent. Use a UUID for custom agents or `notion_ai`
              for Notion Agent (personal agent); the reserved UUID
              `33333333-3333-3333-3333-333333333333` remains supported for
              backward compatibility.
        - name: id
          in: query
          schema:
            $ref: '#/components/schemas/idRequest'
            description: Filter threads by ID (exact match).
        - name: title
          in: query
          schema:
            type: string
            description: Filter threads by title (case-insensitive substring match).
        - name: status
          in: query
          schema:
            type: string
            enum:
              - pending
              - requires_action
              - completed
              - failed
            description: Filter threads by status.
        - name: activity
          in: query
          schema:
            type: string
            enum:
              - all
              - pending
              - in_progress
              - failed
              - success
            description: Filter threads by agent activity state. Defaults to `all`.
        - name: created_by
          in: query
          schema:
            type: array
            items:
              oneOf:
                - $ref: '#/components/schemas/idRequest'
                - type: string
                  const: me
                  description: Always `me`
            maxItems: 100
            minItems: 1
            description: >-
              Filter threads by one or more creator IDs. Use "me" for the API
              bot and user associated with the API token.
        - name: last_used_by
          in: query
          schema:
            type: array
            items:
              oneOf:
                - $ref: '#/components/schemas/idRequest'
                - type: string
                  const: me
                  description: Always `me`
            maxItems: 100
            minItems: 1
            description: >-
              Filter threads by one or more IDs of actors who last used them.
              Use "me" for the API bot and user associated with the API token.
        - name: sort_by
          in: query
          schema:
            type: string
            enum:
              - created_time
              - last_used_time
            description: Timestamp used to sort threads. Defaults to `created_time`.
        - name: sort_direction
          in: query
          schema:
            type: string
            enum:
              - ascending
              - descending
            description: Sort direction. Defaults to `descending`.
        - name: start_cursor
          in: query
          schema:
            type: string
            description: >-
              If supplied, this endpoint will return a page of results starting
              after the cursor provided. If not supplied, this endpoint will
              return the first page of results.
        - name: page_size
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
            description: >-
              The number of items from the full list desired in the response.
              Maximum: 100
        - $ref: '#/components/parameters/notionVersion'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  object:
                    type: string
                    const: list
                    description: Always `list`
                  type:
                    type: string
                    const: thread
                    description: Always `thread`
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        object:
                          type: string
                          const: thread
                          description: Always `thread`
                        id:
                          $ref: '#/components/schemas/idResponse'
                        title:
                          type: string
                        status:
                          type: string
                          enum:
                            - pending
                            - requires_action
                            - completed
                            - failed
                          description: >-
                            One of: `pending`, `requires_action`, `completed`,
                            `failed`
                        created_time:
                          type: string
                          format: date-time
                          description: Date and time when this thread was created.
                        last_edited_time:
                          type: string
                          format: date-time
                          description: Date and time when this thread was last updated.
                        created_by:
                          type: object
                          properties:
                            id:
                              $ref: '#/components/schemas/idResponse'
                              description: >-
                                The ID of the actor that created this thread: a
                                bot for an integration-created thread, a user
                                for one created in the Notion app.
                            type:
                              type: string
                              enum:
                                - bot
                                - user
                              description: >-
                                The creator type. Threads a caller can see
                                because it has access to the agent, such as a
                                trigger's runs or a teammate's chats, may be
                                created by either a bot or a user.
                          additionalProperties: false
                          required:
                            - id
                            - type
                        agent_version:
                          oneOf:
                            - type: object
                              properties:
                                id:
                                  $ref: '#/components/schemas/idResponse'
                                  description: The ID of the published artifact.
                                number:
                                  type: number
                                  description: The version number.
                                published_at:
                                  type: string
                                  description: >-
                                    The ISO 8601 timestamp when this version was
                                    published.
                              additionalProperties: false
                              required:
                                - id
                                - number
                                - published_at
                            - type: 'null'
                        models:
                          oneOf:
                            - type: object
                              properties:
                                type:
                                  type: string
                                  const: auto
                                  description: Always `auto`
                              additionalProperties: false
                              required:
                                - type
                            - type: object
                              properties:
                                type:
                                  type: string
                                  const: pinned
                                  description: Always `pinned`
                                ids:
                                  type: array
                                  items:
                                    oneOf:
                                      - type: string
                                      - type: 'null'
                                  maxItems: 100
                                  description: >-
                                    The public model this thread is pinned to
                                    (e.g. "claude-sonnet-5"), with null for a
                                    pre-release / early-access model. Empty when
                                    the thread has no model recorded yet.
                                    Reflects the thread's configuration at
                                    creation, so a model changed
                                    mid-conversation is not reflected here.
                              additionalProperties: false
                              required:
                                - type
                                - ids
                        error:
                          type: string
                        trigger_type:
                          type: string
                          description: >-
                            How this thread started: the type of the trigger
                            that ran it, or "chat".
                        type_labels:
                          oneOf:
                            - type: array
                              items:
                                type: string
                              maxItems: 100
                            - type: 'null'
                          description: >-
                            Labels describing how the thread ran (triggered,
                            chat, setup). Null when the caller lacks edit access
                            to the agent.
                        chat_user_emails:
                          oneOf:
                            - type: array
                              items:
                                type: string
                              maxItems: 100
                            - type: 'null'
                          description: >-
                            Emails of the users who participated in this thread.
                            Null when the caller lacks edit access to the agent.
                        tool_types:
                          oneOf:
                            - type: array
                              items:
                                type: string
                              maxItems: 100
                            - type: 'null'
                          description: >-
                            Types of tool this thread called. Null when the
                            caller lacks edit access to the agent.
                        tool_call_count:
                          oneOf:
                            - type: number
                            - type: 'null'
                          description: >-
                            Number of tool calls in this thread. Null when the
                            caller lacks edit access to the agent.
                        credits_used:
                          oneOf:
                            - type: number
                            - type: 'null'
                          description: >-
                            Premium AI credits this thread consumed. Null when
                            the caller lacks edit access to the agent.
                        runs_completed:
                          oneOf:
                            - type: number
                            - type: 'null'
                          description: >-
                            Runs completed in this thread. Null when the caller
                            lacks edit access to the agent, or when the thread
                            predates run tracking.
                        pending_user_actions:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                $ref: '#/components/schemas/idResponse'
                              type:
                                type: string
                                const: tool_confirmation
                                description: Always `tool_confirmation`
                              title:
                                type: string
                              requirements:
                                type: array
                                items:
                                  oneOf:
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          const: general
                                          description: Always `general`
                                      additionalProperties: false
                                      required:
                                        - type
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          const: manage_workers
                                          description: Always `manage_workers`
                                      additionalProperties: false
                                      required:
                                        - type
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          const: url_safety
                                          description: Always `url_safety`
                                        urls:
                                          type: array
                                          items:
                                            type: string
                                          maxItems: 100
                                        required_by_workspace_policy:
                                          type: boolean
                                      additionalProperties: false
                                      required:
                                        - type
                                        - urls
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          const: permission_escalation
                                          description: Always `permission_escalation`
                                        destination_title:
                                          type: string
                                        source_titles:
                                          type: array
                                          items:
                                            type: string
                                          maxItems: 100
                                      additionalProperties: false
                                      required:
                                        - type
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          const: delete_content
                                          description: Always `delete_content`
                                        page_count:
                                          type: integer
                                          minimum: 0
                                        database_count:
                                          type: integer
                                          minimum: 0
                                        meeting_notes_block_count:
                                          type: integer
                                          minimum: 0
                                      additionalProperties: false
                                      required:
                                        - type
                                        - page_count
                                        - database_count
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          const: connect_integration
                                          description: Always `connect_integration`
                                        integration_type:
                                          type: string
                                        integration_name:
                                          type: string
                                        handoff_url:
                                          type: string
                                      additionalProperties: false
                                      required:
                                        - type
                                        - integration_type
                                        - integration_name
                                        - handoff_url
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          const: admin_mode
                                          description: Always `admin_mode`
                                        explanation:
                                          type: string
                                      additionalProperties: false
                                      required:
                                        - type
                                  title: Pending user action requirement
                                maxItems: 100
                              options:
                                type: array
                                items:
                                  oneOf:
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          const: approve
                                          description: Always `approve`
                                        label:
                                          type: string
                                      additionalProperties: false
                                      required:
                                        - id
                                        - label
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          const: reject
                                          description: Always `reject`
                                        label:
                                          type: string
                                      additionalProperties: false
                                      required:
                                        - id
                                        - label
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          const: use_connection
                                          description: Always `use_connection`
                                        label:
                                          type: string
                                        input:
                                          type: object
                                          properties:
                                            type:
                                              type: string
                                              const: connection_id
                                              description: Always `connection_id`
                                            required:
                                              type: boolean
                                              const: true
                                              description: Always `true`
                                          additionalProperties: false
                                          required:
                                            - type
                                            - required
                                      additionalProperties: false
                                      required:
                                        - id
                                        - label
                                        - input
                                  title: Pending user action option
                                maxItems: 100
                            additionalProperties: false
                            required:
                              - id
                              - type
                              - title
                              - requirements
                              - options
                          maxItems: 100
                      additionalProperties: false
                      required:
                        - object
                        - id
                        - title
                        - status
                        - created_time
                        - last_edited_time
                        - created_by
                        - agent_version
                        - models
                    maxItems: 100
                  has_more:
                    type: boolean
                  next_cursor:
                    oneOf:
                      - title: Cursor
                        type: string
                      - type: 'null'
                additionalProperties: false
                required:
                  - object
                  - type
                  - results
                  - has_more
                  - next_cursor
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_400'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_401'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_403'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_404'
        '406':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_406'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_409'
        '429':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_429'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_500'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_503'
        '504':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_504'
        '529':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_529'
      deprecated: true
components:
  schemas:
    idRequest:
      type: string
    idResponse:
      type: string
      format: uuid
    error_api_400:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - invalid_json
                - invalid_request_url
                - invalid_request
                - missing_version
                - invalid_beta
                - validation_error
                - invalid_credit_limit
            status:
              const: 400
          required:
            - code
            - status
          additionalProperties: false
    error_api_401:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - unauthorized
            status:
              const: 401
          required:
            - code
            - status
          additionalProperties: false
    error_api_403:
      oneOf:
        - allOf:
            - $ref: '#/components/schemas/publicApiCommonErrorResponse'
            - type: object
              properties:
                code:
                  enum:
                    - restricted_resource
                    - status_change_not_allowed
                status:
                  const: 403
              required:
                - code
                - status
              additionalProperties: false
        - allOf:
            - $ref: '#/components/schemas/publicApiCommonErrorResponse'
            - type: object
              properties:
                code:
                  const: workspace_credits_exhausted
                status:
                  const: 403
                additional_data:
                  type: object
                  properties:
                    tool_error_code:
                      const: workspace_credits_exhausted
                    tool_error_class:
                      const: entitlement_required
                    tool_error_retryable:
                      const: 'false'
                    recovery_kind:
                      enum:
                        - contact_workspace_owner
                        - open_workspace_credit_settings
                      description: The recovery action selected by Notion for the caller.
                    recovery_url:
                      type: string
                      format: uri
                      description: >-
                        Present when recovery_kind directs the caller to a
                        settings page.
                  required:
                    - tool_error_code
                    - tool_error_class
                    - tool_error_retryable
                    - recovery_kind
                  additionalProperties:
                    oneOf:
                      - type: string
                      - type: array
                        items:
                          type: string
              required:
                - code
                - status
                - additional_data
        - allOf:
            - $ref: '#/components/schemas/publicApiCommonErrorResponse'
            - type: object
              properties:
                code:
                  const: agent_credit_limit_reached
                status:
                  const: 403
                additional_data:
                  type: object
                  properties:
                    tool_error_code:
                      const: agent_credit_limit_reached
                    tool_error_class:
                      const: entitlement_required
                    tool_error_retryable:
                      const: 'false'
                    recovery_kind:
                      enum:
                        - contact_workspace_owner
                        - none
                        - open_agent_settings
                        - request_agent_limit_increase
                        - request_pending
                      description: The recovery action selected by Notion for the caller.
                    recovery_url:
                      type: string
                      format: uri
                      description: >-
                        Present when recovery_kind directs the caller to a
                        settings page.
                  required:
                    - tool_error_code
                    - tool_error_class
                    - tool_error_retryable
                    - recovery_kind
                  additionalProperties:
                    oneOf:
                      - type: string
                      - type: array
                        items:
                          type: string
              required:
                - code
                - status
                - additional_data
    error_api_404:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - object_not_found
                - directory_not_found
            status:
              const: 404
          required:
            - code
            - status
          additionalProperties: false
    error_api_406:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - row_limit_exceeded
            status:
              const: 406
          required:
            - code
            - status
          additionalProperties: false
    error_api_409:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - conflict_error
                - idempotency_key_reused
                - agent_deleted
            status:
              const: 409
          required:
            - code
            - status
          additionalProperties: false
    error_api_429:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - rate_limited
            status:
              const: 429
          required:
            - code
            - status
          additionalProperties: false
    error_api_500:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - internal_server_error
            status:
              const: 500
          required:
            - code
            - status
          additionalProperties: false
    error_api_503:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - service_unavailable
            status:
              const: 503
          required:
            - code
            - status
          additionalProperties: false
    error_api_504:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - gateway_timeout
            status:
              const: 504
          required:
            - code
            - status
          additionalProperties: false
    error_api_529:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - service_overload
            status:
              const: 529
          required:
            - code
            - status
          additionalProperties: false
    publicApiCommonErrorResponse:
      type: object
      properties:
        object:
          const: error
        message:
          type: string
        additional_data:
          type: object
          additionalProperties:
            oneOf:
              - type: string
              - type: array
                items:
                  type: string
      required:
        - object
        - message
  parameters:
    notionVersion:
      name: Notion-Version
      in: header
      required: true
      schema:
        enum:
          - '2026-03-11'
      description: >-
        The [API version](/reference/versioning) to use for this request. The
        latest version is `2026-03-11`.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````