Attrove Search (Metered) API

The Search (Metered) API from Attrove — 1 operation(s) for search (metered).

Operations 1

POST /v1/users/{user_id}/search Semantic search across user's context #

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-search-metered-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-search-metered-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Attrove Search (Metered) API
  description: Attrove public API, partner, and A2A endpoints
  version: v1
servers:
- url: http://0.0.0.0:3000
tags:
- name: Search (Metered)
paths:
  /v1/users/{user_id}/search:
    post:
      summary: Semantic search across user's context
      tags:
      - Search (Metered)
      description: 'Performs semantic search across the user''s connected integrations and returns raw matches from messages, meetings, and calendar events.


        **Billing**: This endpoint is metered. Each call consumes AI query credits.


        **Use this when you need**:

        - Raw communication data without AI summarization

        - Full conversation threads plus matching meetings/events

        - To build your own UI or processing on top of search results


        **Response structure**:

        - `key_messages`: Messages most relevant to the query

        - `conversations`: Conversation threads containing the key messages

        - `key_meetings`: Matched meetings (empty array when no meetings match)

        - `key_events`: Matched calendar events (empty array when no events match)

        - Every returned record includes `external_id` (partner-provided ID from ingest, or `null`)


        **Parameters**:

        - `query`: The search query (semantic, not keyword-based)

        - `integration_ids`: Optional filter to specific integrations (opaque IDs like `int_xxx`)

        - `conversation_ids`: Optional filter to specific conversations (opaque IDs, e.g., "conv_xxx")

        - `after_date`: Optional date filter (YYYY-MM-DD)

        - `before_date`: Optional date filter (YYYY-MM-DD)

        - `sender_domains`: Optional filter by sender email domains (e.g., ["acme.com"])

        - `entity_ids`: Optional filter by entity IDs (UUIDs)

        - `retrieval_mode`: Optional retrieval strategy — `"fast"` (lowest latency, default), `"auto"` (adaptive), or `"deep"` (full pipeline)

        - `expand`: Optional comma-separated fields to include (e.g., "body_text,summary,description")


        **Expand parameter**:

        By default, expandable detail fields are omitted to reduce payload size.

        Use `expand=body_text` for message content, `expand=summary,short_summary,action_items,attendees,meeting_link` for meetings, and `expand=description,location,html_link,event_link,attendees` for calendar events.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                query:
                  type: string
                  minLength: 1
                  maxLength: 10000
                integration_ids:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      pattern: ^(int_[A-Za-z0-9]+|\d+)$
                    - type: integer
                      minimum: 1
                  description: Filter to specific integrations by opaque ID (int_xxx). Numeric IDs are accepted for backward compatibility.
                conversation_ids:
                  type: array
                  items:
                    type: string
                  description: Filter to specific conversations by opaque ID (conv_xxx)
                after_date:
                  type: string
                  format: date
                  description: Filter results after this date (YYYY-MM-DD)
                before_date:
                  type: string
                  format: date
                  description: Filter results before this date (YYYY-MM-DD)
                allow_bot_messages:
                  type: boolean
                sender_domains:
                  type: array
                  items:
                    type: string
                    minLength: 1
                  nullable: true
                  description: Filter by sender email domains (e.g., ['acme.com'])
                entity_ids:
                  type: array
                  items:
                    type: string
                    format: uuid
                  nullable: true
                  description: Filter by entity IDs (UUIDs)
                retrieval_mode:
                  type: string
                  enum:
                  - fast
                  - auto
                  - deep
                  description: Optional retrieval strategy. Defaults to 'fast' for /search requests.
                debug_retrieval_plan:
                  type: boolean
                  description: When true, asks the retrieval backend to include extra planner diagnostics.
                max_results:
                  type: integer
                  minimum: 1
                  maximum: 200
                  description: Maximum number of chunks to return. Chunks beyond rerank_top_k are appended in score order up to this cap.
                expand:
                  type: string
                  description: Comma-separated list of fields to include (e.g., 'body_text,summary,action_items')
              required:
              - query
        required: true
      parameters:
      - 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, summary, short_summary, action_items, attendees, meeting_link, description, location, html_link, event_link, visibility, response_status'
      - 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:
                      key_messages:
                        type: array
                        items:
                          type: object
                          additionalProperties: false
                          properties:
                            message_id:
                              type: number
                            external_id:
                              anyOf:
                              - type: string
                              - type: 'null'
                              description: Partner-provided external_id from ingest, or null when absent
                            thread_id:
                              anyOf:
                              - type: number
                              - type: 'null'
                            conversation_id:
                              anyOf:
                              - type: number
                              - type: 'null'
                            rank:
                              type: number
                          required:
                          - message_id
                          - external_id
                      conversations:
                        type: object
                        description: Map of conversation ID to conversation data with threads
                        additionalProperties:
                          type: object
                          properties:
                            conversation_name:
                              type: string
                              nullable: true
                            threads:
                              type: object
                              additionalProperties:
                                type: array
                                items:
                                  type: object
                                  additionalProperties: false
                                  properties:
                                    message_id:
                                      type: number
                                    external_id:
                                      anyOf:
                                      - type: string
                                      - type: 'null'
                                      description: Partner-provided external_id from ingest, or null when absent
                                    received_at:
                                      type: string
                                    integration_type:
                                      type: string
                                    integration_type_generic:
                                      type: string
                                    sender_name:
                                      type: string
                                    recipient_names:
                                      type: array
                                      items:
                                        type: string
                                    body_text:
                                      type: string
                                    display_source:
                                      anyOf:
                                      - type: string
                                      - type: 'null'
                                    thread_id:
                                      anyOf:
                                      - type: number
                                      - type: 'null'
                                    thread_message_count:
                                      anyOf:
                                      - type: number
                                      - type: 'null'
                                    thread_position:
                                      anyOf:
                                      - type: number
                                      - type: 'null'
                                    parent_message_id:
                                      anyOf:
                                      - type: number
                                      - type: 'null'
                                    conversation_type:
                                      anyOf:
                                      - type: string
                                      - type: 'null'
                                    conversation_id:
                                      anyOf:
                                      - type: number
                                      - type: 'null'
                                    conversation_participants:
                                      type: array
                                      items:
                                        type: object
                                        additionalProperties: false
                                        properties:
                                          name:
                                            type: string
                                        required:
                                        - name
                                  required:
                                  - message_id
                                  - external_id
                                  - received_at
                                  - integration_type
                                  - integration_type_generic
                                  - sender_name
                                  - recipient_names
                                  - thread_id
                                  - thread_message_count
                                  - thread_position
                                  - parent_message_id
                                  - conversation_type
                                  - conversation_id
                                  - conversation_participants
                                  - display_source
                      key_meetings:
                        type: array
                        items:
                          type: object
                          additionalProperties: true
                          properties:
                            id:
                              type: string
                              description: Opaque meeting ID (mtg_xxx)
                            external_id:
                              anyOf:
                              - type: string
                              - type: 'null'
                              description: Partner-provided external_id from ingest, or null when absent
                            title:
                              type: string
                            start_time:
                              type: string
                              format: date-time
                            end_time:
                              type: string
                              format: date-time
                            summary:
                              type: string
                              nullable: true
                            short_summary:
                              type: string
                              nullable: true
                            action_items:
                              type: array
                            attendees:
                              type: array
                            meeting_link:
                              type: string
                              nullable: true
                            has_transcript:
                              type: boolean
                            has_notes:
                              type: boolean
                            content_status:
                              type: string
                              enum:
                              - none
                              - notes_only
                              - transcript_only
                              - transcript_and_notes
                            provider:
                              type: string
                            event_id:
                              type: string
                              nullable: true
                            meeting_code:
                              type: string
                              nullable: true
                            created_at:
                              type: string
                              format: date-time
                            updated_at:
                              type: string
                              format: date-time
                              nullable: true
                            rank:
                              type: number
                          required:
                          - id
                          - external_id
                          - title
                          - start_time
                          - end_time
                          - has_transcript
                          - has_notes
                          - content_status
                          - provider
                          - created_at
                      key_events:
                        type: array
                        items:
                          type: object
                          additionalProperties: true
                          properties:
                            id:
                              type: string
                              description: Opaque event ID (evt_xxx)
                            external_id:
                              anyOf:
                              - type: string
                              - type: 'null'
                              description: Partner-provided external_id from ingest, or null when absent
                            calendar_id:
                              type: string
                            title:
                              type: string
                              nullable: true
                            description:
                              type: string
                              nullable: true
                            start_time:
                              type: string
                              format: date-time
                            end_time:
                              type: string
                              format: date-time
                            location:
                              type: string
                              nullable: true
                            status:
                              type: string
                              nullable: true
                            all_day:
                              type: boolean
                            created_at:
                              type: string
                              format: date-time
                            updated_at:
                              type: string
                              format: date-time
                              nullable: true
                            rank:
                              type: number
                          required:
                          - id
                          - external_id
                          - calendar_id
                          - title
                          - start_time
                          - end_time
                          - all_day
                          - created_at
                      key_notes:
                        type: array
                        items:
                          type: object
                          additionalProperties: false
                          properties:
                            note_id:
                              type: number
                            external_id:
                              anyOf:
                              - type: string
                              - type: 'null'
                              description: Partner-provided external_id from ingest, or null when absent
                            rank:
                              type: number
                          required:
                          - note_id
                          - external_id
                      rerank_provider:
                        type: string
                        enum:
                        - cohere
                        - tinybert
                        - none
                        description: Reranking model used in the retrieval pipeline
                      degradations:
                        type: array
                        items:
                          type: string
                        description: Stable degradation codes emitted by the retrieval pipeline when results may be incomplete
                      warnings:
                        type: array
                        items:
                          type: object
                          additionalProperties: false
                          properties:
                            code:
                              type: string
                              enum:
                              - records_truncated_for_token_budget
                              - retrieval_degraded
                              - thread_fetch_failed
                              - meeting_hydration_failed
                              - event_hydration_failed
                              - note_hydration_failed
                              - identifiers_partial
                            message:
                              type: string
                            dropped_record_count:
                              type: integer
                            degradations:
                              type: array
                              items:
                                type: string
                            failed_count:
                              type: integer
                            missing_count:
                              type: integer
                          required:
                          - code
                          - message
                        description: Structured warnings about degraded or partially hydrated results
                    required:
                    - key_messages
                    - conversations
                    - key_meetings
                    - key_events
                    - key_notes
                required:
                - success
                - data
        '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
        '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: postV1UsersByUserIdSearch
      x-operation-id-source: derived