Attrove Threads API

The Threads API from Attrove — 3 operation(s) for threads.

Operations 3

POST /v1/users/{user_id}/threads/discover Discover threads via semantic search #
POST /v1/users/{user_id}/threads/{conversation_id}/analyze Analyze a thread for insights #
GET /v1/users/{user_id}/threads/{thread_id}/messages List messages in a thread #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/attrove-com:attrove-com-threads-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

attrove-com-threads-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Attrove Threads API
  description: Attrove public API, partner, and A2A endpoints
  version: v1
servers:
- url: http://0.0.0.0:3000
tags:
- name: Threads
paths:
  /v1/users/{user_id}/threads/discover:
    post:
      summary: Discover threads via semantic search
      tags:
      - Threads
      description: 'Finds threads/conversations matching a semantic query.


        Uses AI-powered semantic search to find relevant threads across all integrations.

        Results are ranked by relevance score.


        **Filtering options:**

        - `integration_ids`: Limit search to specific integrations

        - `integration_types`: Limit by integration type (e.g., "slack", "gmail")

        - `after_date` / `before_date`: Filter by time range


        **Example:**

        ```json

        {

        "query": "discussions about PR #197 authentication fix",

        "integration_types": ["slack"],

        "limit": 5

        }

        ```'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                query:
                  type: string
                  minLength: 1
                  description: Semantic search query
                integration_ids:
                  type: array
                  items:
                    type: string
                  description: Filter by integration IDs (int_xxx format)
                integration_types:
                  type: array
                  items:
                    type: string
                  description: Filter by integration type (slack, gmail, etc.)
                after_date:
                  type: string
                  format: date
                  description: Filter threads with activity after this date (YYYY-MM-DD format)
                before_date:
                  type: string
                  format: date
                  description: Filter threads with activity before this date (YYYY-MM-DD format)
                limit:
                  type: integer
                  minimum: 1
                  maximum: 50
                  default: 10
                  description: Maximum number of threads to return
              required:
              - query
        required: true
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: user_id
        required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  success:
                    type: boolean
                    enum:
                    - true
                  data:
                    type: object
                    additionalProperties: false
                    properties:
                      threads:
                        type: array
                        items:
                          type: object
                          additionalProperties: false
                          properties:
                            conversation_id:
                              type: string
                              description: Opaque conversation ID (conv_xxx format)
                            integration_type:
                              type: string
                              description: Integration type (slack, gmail, outlook, etc.)
                            title:
                              type: string
                              description: Thread/conversation title
                            relevance_score:
                              type: number
                              minimum: 0
                              maximum: 1
                              description: Semantic relevance score (0-1)
                            message_count:
                              type: integer
                              description: Number of messages in the thread
                            last_activity:
                              type: string
                              format: date-time
                              description: Timestamp of last activity (ISO8601)
                            preview:
                              type: string
                              description: Preview snippet from most relevant message
                          required:
                          - conversation_id
                          - integration_type
                          - title
                          - relevance_score
                          - message_count
                          - last_activity
                          - preview
                      warnings:
                        type: array
                        items:
                          type: object
                          additionalProperties: false
                          properties:
                            code:
                              type: string
                              enum:
                              - UNKNOWN_INTEGRATION_TYPE
                              - ENTITY_RESOLUTION_PARTIAL
                              - ENTITY_RESOLUTION_FAILED
                              - INVALID_MESSAGES_SKIPPED
                              - INVALID_CONVERSATION_DATA
                              description: Warning code identifying the type of data quality issue
                            message:
                              type: string
                              description: Human-readable description of the warning
                            count:
                              type: integer
                              description: Number of affected items (optional)
                          required:
                          - code
                          - message
                        description: Data quality warnings - included when results may be degraded
                    required:
                    - threads
                required:
                - success
                - data
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  success:
                    type: boolean
                    enum:
                    - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - success
                - error
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  success:
                    type: boolean
                    enum:
                    - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - success
                - error
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  success:
                    type: boolean
                    enum:
                    - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - success
                - error
      operationId: postV1UsersByUserIdThreadsDiscover
      x-operation-id-source: derived
  /v1/users/{user_id}/threads/{conversation_id}/analyze:
    post:
      summary: Analyze a thread for insights
      tags:
      - Threads
      description: 'Analyzes a conversation/thread and extracts structured insights.


        Returns:

        - **summary**: Detailed summary with specific facts, names, dates

        - **short_summary**: One-sentence summary of the key outcome

        - **sentiment**: Overall tone (positive, neutral, negative, mixed)

        - **action_items**: Tasks identified with owners and deadlines

        - **decisions**: Decisions made with who made them

        - **blockers**: Issues or blockers with who owns them

        - **participants**: List of people in the conversation


        **Example response:**

        ```json

        {

        "summary": "Discussion about PR #197 authentication fix...",

        "sentiment": "positive",

        "action_items": [

        {"description": "Review security implications", "owner": "Sarah", "deadline": "2025-01-27"}

        ],

        "decisions": [

        {"description": "Use JWT tokens instead of session cookies", "made_by": "Mike"}

        ]

        }

        ```'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties: {}
              description: No request body required
        description: No request body required
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: user_id
        required: true
      - schema:
          type: string
        in: path
        name: conversation_id
        required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  success:
                    type: boolean
                    enum:
                    - true
                  data:
                    type: object
                    additionalProperties: false
                    properties:
                      summary:
                        type: string
                        description: Detailed thread summary
                      short_summary:
                        type: string
                        description: One-sentence summary
                      sentiment:
                        type: string
                        enum:
                        - positive
                        - neutral
                        - negative
                        - mixed
                        description: Overall sentiment of the conversation
                      action_items:
                        type: array
                        items:
                          type: object
                          additionalProperties: false
                          properties:
                            description:
                              type: string
                            owner:
                              type: string
                              nullable: true
                            deadline:
                              type: string
                              nullable: true
                          required:
                          - description
                        description: Extracted action items
                      decisions:
                        type: array
                        items:
                          type: object
                          additionalProperties: false
                          properties:
                            description:
                              type: string
                            made_by:
                              type: string
                              nullable: true
                          required:
                          - description
                        description: Decisions made in the thread
                      blockers:
                        type: array
                        items:
                          type: object
                          additionalProperties: false
                          properties:
                            description:
                              type: string
                            owner:
                              type: string
                              nullable: true
                          required:
                          - description
                        description: Blockers or issues identified
                      participants:
                        type: array
                        items:
                          type: string
                        description: List of participant names
                      message_count:
                        type: integer
                        description: Number of messages analyzed
                      date_range:
                        type: object
                        properties:
                          start:
                            type: string
                            format: date-time
                          end:
                            type: string
                            format: date-time
                        required:
                        - start
                        - end
                      warnings:
                        type: array
                        items:
                          type: object
                          additionalProperties: false
                          properties:
                            code:
                              type: string
                              enum:
                              - UNKNOWN_INTEGRATION_TYPE
                              - ENTITY_RESOLUTION_PARTIAL
                              - ENTITY_RESOLUTION_FAILED
                              - INVALID_MESSAGES_SKIPPED
                              - INVALID_CONVERSATION_DATA
                              description: Warning code identifying the type of data quality issue
                            message:
                              type: string
                              description: Human-readable description of the warning
                            count:
                              type: integer
                              description: Number of affected items (optional)
                          required:
                          - code
                          - message
                        description: Data quality warnings - included when results may be degraded (e.g., participant names could not be resolved)
                    required:
                    - summary
                    - short_summary
                    - sentiment
                    - action_items
                    - decisions
                    - blockers
                    - participants
                    - message_count
                    - date_range
                required:
                - success
                - data
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  success:
                    type: boolean
                    enum:
                    - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - success
                - error
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  success:
                    type: boolean
                    enum:
                    - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - success
                - error
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  success:
                    type: boolean
                    enum:
                    - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - success
                - error
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  success:
                    type: boolean
                    enum:
                    - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - success
                - error
      operationId: postV1UsersByUserIdThreadsByConversationIdAnalyze
      x-operation-id-source: derived
  /v1/users/{user_id}/threads/{thread_id}/messages:
    get:
      summary: List messages in a thread
      tags:
      - Threads
      description: 'Returns a page of messages belonging to the specified thread, in thread order.


        **Path parameters:**

        - `user_id` — authenticated user''s UUID (must match the caller''s user)

        - `thread_id` — opaque thread ID (`thr_xxx`) or numeric for backwards compatibility


        **Default expand:** `body_html,headers` — overrideable via the `expand` query param. Add `raw` when you need RFC 5322 MIME.


        **Response fields:** identical shape to `GET /v1/users/:user_id/messages`, so a mailbox UI can switch between list + thread views without reshaping its parser.


        **Ordering:** `received_at` ASC — earliest message first.


        **Pagination (cursor-only):** default limit 50, max 100. Pass `pagination.next_cursor` back as `?cursor=` to walk forward. `has_more=false` means the last page.'
      parameters:
      - schema:
          type: string
          pattern: ^[0-9]+$
        in: query
        name: limit
        required: false
        description: Number of items to return (1-100, default 50)
      - schema:
          type: string
        in: query
        name: cursor
        required: false
        description: Opaque pagination cursor returned as `pagination.next_cursor` from a prior response. Pass it back unchanged to fetch the next page. Cursors are sort-key bound — a cursor from one endpoint cannot be reused on another.
      - schema:
          type: string
        in: query
        name: expand
        required: false
        description: 'Comma-separated list of fields to include. Valid options: body_text, body_html, raw, headers'
      - schema:
          type: string
          format: uuid
        in: path
        name: user_id
        required: true
      - schema:
          type: string
        in: path
        name: thread_id
        required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  success:
                    type: boolean
                    enum:
                    - true
                  data:
                    type: array
                    items:
                      type: object
                      additionalProperties: false
                      properties:
                        id:
                          type: string
                          pattern: ^msg_[A-Za-z0-9]+$
                        integration_id:
                          type: string
                          pattern: ^int_[A-Za-z0-9]+$
                        body_text:
                          anyOf:
                          - type: string
                          - type: 'null'
                        body_html:
                          anyOf:
                          - type: string
                          - type: 'null'
                        raw:
                          anyOf:
                          - type: string
                          - type: 'null'
                        headers:
                          anyOf:
                          - type: array
                            items:
                              type: object
                              additionalProperties: false
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                              required:
                              - name
                              - value
                          - type: 'null'
                        subject:
                          anyOf:
                          - type: string
                          - type: 'null'
                        received_at:
                          type: string
                        parent_message_id:
                          anyOf:
                          - type: string
                          - type: 'null'
                        thread_id:
                          anyOf:
                          - type: string
                          - type: 'null'
                        thread_position:
                          anyOf:
                          - type: number
                          - type: 'null'
                        is_bot:
                          type: boolean
                        conversation_id:
                          anyOf:
                          - type: string
                          - type: 'null'
                        primary_entity_id:
                          anyOf:
                          - type: string
                          - type: 'null'
                        entity_ids:
                          type: array
                          items:
                            type: string
                        sender_name:
                          anyOf:
                          - type: string
                          - type: 'null'
                        sent_by:
                          type: string
                          minLength: 1
                        display_source:
                          anyOf:
                          - type: string
                          - type: 'null'
                      required:
                      - id
                      - integration_id
                      - subject
                      - received_at
                      - parent_message_id
                      - thread_id
                      - thread_position
                      - is_bot
                      - conversation_id
                      - primary_entity_id
                      - entity_ids
                      - sender_name
                      - sent_by
                      - display_source
                  pagination:
                    type: object
                    oneOf:
                    - type: object
                      additionalProperties: false
                      properties:
                        limit:
                          type: number
                        has_more:
                          type: boolean
                          enum:
                          - true
                        next_cursor:
                          type: string
                      required:
                      - limit
                      - has_more
                      - next_cursor
                    - type: object
                      additionalProperties: false
                      properties:
                        limit:
                          type: number
                        has_more:
                          type: boolean
                          enum:
                          - false
                      required:
                      - limit
                      - has_more
                required:
                - success
                - data
                - pagination
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  success:
                    type: boolean
                    enum:
                    - false
                  error:
                    type: object
                    additionalProperties: false
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (e.g., AUTH_INVALID_TOKEN, RESOURCE_NOT_FOUND)
                      message:
                        type: string
                        description: Human-readable error message
                      details:
                        description: Optional additional error context
                    required:
                    - code
                    - message
                required:
                - success
                - error
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  success:
                    type: boolean
                    enum:
                    - false
                  error:
                    type: object
                    additionalProperties: false
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (e.g., AUTH_INVALID_TOKEN, RESOURCE_NOT_FOUND)
                      message:
                        type: string
                        description: Human-readable error message
                      details:
                        description: Optional additional error context
                    required:
                    - code
                    - message
                required:
                - success
                - error
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  success:
                    type: boolean
                    enum:
                    - false
                  error:
                    type: object
                    additionalProperties: false
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (e.g., AUTH_INVALID_TOKEN, RESOURCE_NOT_FOUND)
                      message:
                        type: string
                        description: Human-readable error message
                      details:
                        description: Optional additional error context
                    required:
                    - code
                    - message
                required:
                - success
                - error
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  success:
                    type: boolean
                    enum:
                    - false
                  error:
                    type: object
                    additionalProperties: false
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (e.g., AUTH_INVALID_TOKEN, RESOURCE_NOT_FOUND)
                      message:
                        type: string
                        description: Human-readable error message
                      details:
                        description: Optional additional error context
                    required:
                    - code
                    - message
                required:
                - success
                - error
      operationId: getV1UsersByUserIdThreadsByThreadIdMessages
      x-operation-id-source: derived