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

# Search calls

> Searches calls accessible to the authenticated API key.



## OpenAPI

````yaml /api-reference/openapi.json get /search/calls
openapi: 3.0.3
info:
  description: >-
    Generated from Ando's accepted public API v1 contract metadata. Current
    routes preserve legacy /api/v1 response envelopes while converging on the
    public https://api.ando.so/v1 shape.
  title: Ando Public API
  version: v1
servers:
  - description: Canonical public API host.
    url: https://api.ando.so/v1
security: []
tags:
  - description: Call detail and transcript routes.
    name: Calls
  - description: Clipboard detail routes.
    name: Clipboards
  - description: >-
      Workspace member detail routes. Existing v1 paths keep member
      compatibility spellings.
    name: Members
  - description: Message and conversation message routes.
    name: Messages
  - description: Public realtime connection and protocol routes.
    name: Realtime
  - description: Search routes.
    name: Search
  - description: Task routes.
    name: Tasks
  - description: Outbound webhook endpoint and delivery routes.
    name: Webhooks
paths:
  /search/calls:
    get:
      tags:
        - Search
      summary: Search calls
      description: Searches calls accessible to the authenticated API key.
      operationId: searchCalls
      parameters:
        - description: Search query text.
          in: query
          name: q
          required: true
          schema:
            description: Search query text.
            type: string
        - description: Comma-separated conversation identifiers to filter to.
          in: query
          name: conversation
          schema:
            description: Comma-separated conversation identifiers to filter to.
            type: string
        - description: Cursor or ISO timestamp after which results should be returned.
          in: query
          name: after
          schema:
            description: Cursor or ISO timestamp after which results should be returned.
            type: string
        - description: Cursor or ISO timestamp before which results should be returned.
          in: query
          name: before
          schema:
            description: Cursor or ISO timestamp before which results should be returned.
            type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                calls:
                  summary: Call search results.
                  value:
                    data:
                      items:
                        - id: call_01jzn7e61x3a7v9h2r7t2m3q4p
                          conversation_id: conv_01jzn7e61x3a7v9h2r7t2m3q4p
                          conversation_name: Launch planning
                          status: ended
                          duration_seconds: 1800
                          participant_names:
                            - Alex Kim
                          participant_count: 1
                          summary: Reviewed launch blockers.
                          started_at: '2026-05-14T08:00:00.000Z'
                          ended_at: '2026-05-14T08:30:00.000Z'
                    items:
                      - id: call_01jzn7e61x3a7v9h2r7t2m3q4p
                        conversation_id: conv_01jzn7e61x3a7v9h2r7t2m3q4p
                        conversation_name: Launch planning
                        status: ended
                        duration_seconds: 1800
                        participant_names:
                          - Alex Kim
                        participant_count: 1
                        summary: Reviewed launch blockers.
                        started_at: '2026-05-14T08:00:00.000Z'
                        ended_at: '2026-05-14T08:30:00.000Z'
              schema:
                $ref: '#/components/schemas/SearchCallsResponse'
          description: Call search results.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
        - AndoApiKey: []
        - BearerApiKey: []
components:
  schemas:
    SearchCallsResponse:
      additionalProperties: false
      description: >-
        Search calls response. Results are returned in data.items; top-level
        items is a compatibility alias.
      properties:
        data:
          additionalProperties: false
          description: Standard public response data. New clients should read data.items.
          properties:
            items:
              description: Call results.
              items:
                $ref: '#/components/schemas/CallResult'
              type: array
          required:
            - items
          type: object
        items:
          description: >-
            Compatibility alias for data.items. New clients should read
            data.items.
          items:
            $ref: '#/components/schemas/CallResult'
          type: array
          deprecated: true
      required:
        - data
        - items
      type: object
    CallResult:
      additionalProperties: false
      description: Search result for a call.
      properties:
        conversation_id:
          description: Conversation identifier.
          type: string
          example: 01jzn7e61x3a7v9h2r7t2m3q4p
        conversation_name:
          description: Conversation name.
          type: string
          nullable: true
        duration_seconds:
          description: Call duration in seconds.
          type: number
          nullable: true
        ended_at:
          description: Call end timestamp.
          type: string
          format: date-time
          nullable: true
        id:
          description: Call identifier.
          type: string
          example: 01jzn7e61x3a7v9h2r7t2m3q4p
        participant_count:
          description: Number of call participants.
          type: integer
        participant_names:
          description: Participant display names.
          items:
            description: Name.
            type: string
          type: array
        started_at:
          description: Call start timestamp.
          type: string
          format: date-time
          nullable: true
        status:
          description: Call status.
          type: string
        summary:
          description: Call summary markdown.
          type: string
          nullable: true
      required:
        - id
        - conversation_id
        - conversation_name
        - status
        - duration_seconds
        - participant_names
        - participant_count
        - summary
        - started_at
        - ended_at
      type: object
    LegacyErrorResponse:
      additionalProperties: false
      description: Current compatibility error envelope used by legacy /api/v1 routes.
      properties:
        error:
          description: Error message.
          type: string
        error_code:
          description: Optional machine-readable error code.
          type: string
          nullable: true
        missing_scopes:
          description: Missing scopes.
          items:
            description: Scope.
            type: string
          type: array
      required:
        - error
      type: object
    PublicApiErrorResponse:
      additionalProperties: false
      description: Target public API error envelope.
      properties:
        error:
          additionalProperties: false
          description: Error details.
          properties:
            code:
              description: Machine-readable error code.
              type: string
            message:
              description: Human-readable error message.
              type: string
            request_id:
              description: Request identifier.
              type: string
              nullable: true
          required:
            - code
            - message
          type: object
      required:
        - error
      type: object
  responses:
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Bad request.
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Missing or invalid API key.
    Forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Forbidden.
    NotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Not found.
    Conflict:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Conflict.
    RateLimited:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PublicApiErrorResponse'
      description: Rate limit or quota exceeded.
    InternalError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Internal server error.
  securitySchemes:
    AndoApiKey:
      description: Workspace API key. Current accepted keys use the ando_sk_ prefix.
      in: header
      name: x-api-key
      type: apiKey
    BearerApiKey:
      bearerFormat: ando_sk
      description: Compatibility transport for workspace API keys.
      scheme: bearer
      type: http

````