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

# Search a run

> Case-sensitive literal search over the content of a run's traces. The query needs at least three characters.

Returns one match per node, with Unicode offsets and an excerpt. Choose what to search with `field` (`content`, `reasoning_content` or `tool_calls`) and narrow with the other filters. Continue with `next_cursor` and the same filters until it is null.

Only indexed traces are searched. The first page's `coverage` reports traces that were not yet searchable. A search that reads more than the server allows returns `400` with `search_limit_exceeded`; retrying unchanged will not help, so make the query more specific or add filters.



## OpenAPI

````yaml https://prime-traces.pintel.dev/openapi.json get /api/v1/runs/{run_id}/search
openapi: 3.1.0
info:
  title: Prime Traces
  description: >
    Upload, query and delete training, evaluation and inference traces.


    Authenticate with a Prime Intellect API key that has the **Prime Traces**

    permission, sent as `Authorization: Bearer <api key>`. Send
    `X-Prime-Team-ID`

    to act on a team's traces instead of your personal ones.


    Errors share one envelope, `{"error": {"code", "message", "details?"}}`,
    where

    `code` is stable and safe to branch on.
  version: '0'
servers:
  - url: https://prime-traces.pintel.dev
security: []
paths:
  /api/v1/runs/{run_id}/search:
    get:
      tags:
        - Runs
      summary: Search a run
      description: >-
        Case-sensitive literal search over the content of a run's traces. The
        query needs at least three characters.


        Returns one match per node, with Unicode offsets and an excerpt. Choose
        what to search with `field` (`content`, `reasoning_content` or
        `tool_calls`) and narrow with the other filters. Continue with
        `next_cursor` and the same filters until it is null.


        Only indexed traces are searched. The first page's `coverage` reports
        traces that were not yet searchable. A search that reads more than the
        server allows returns `400` with `search_limit_exceeded`; retrying
        unchanged will not help, so make the query more specific or add filters.
      operationId: search_api_v1_runs__run_id__search_get
      parameters:
        - name: run_id
          in: path
          required: true
          schema:
            type: string
            title: Run Id
        - name: query
          in: query
          required: true
          schema:
            type: string
            minLength: 3
            maxLength: 256
            title: Query
        - name: field
          in: query
          required: false
          schema:
            enum:
              - content
              - reasoning_content
              - tool_calls
            type: string
            default: content
            title: Field
        - name: role
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 64
              - type: 'null'
            title: Role
        - name: run_step
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
                minimum: 0
              - type: 'null'
            title: Run Step
        - name: has_error
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: 'null'
            title: Has Error
        - name: reward_min
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: 'null'
            title: Reward Min
        - name: reward_max
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: 'null'
            title: Reward Max
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            default: 50
            title: Limit
        - name: cursor
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 4096
              - type: 'null'
            title: Cursor
        - name: x-prime-team-id
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Act on this team's traces instead of your personal ones. You must
              be a member of the team.
            title: X-Prime-Team-Id
          description: >-
            Act on this team's traces instead of your personal ones. You must be
            a member of the team.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TraceSearchPage'
        '400':
          description: >-
            An invalid filter, cursor, blank query or inverted reward range
            (`invalid_filter`, `invalid_cursor`), or a search that reads more
            than the server allows (`search_limit_exceeded`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: 'Missing or malformed `Authorization: Bearer <api key>` header.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: >-
            The API key lacks the required `traces` permission (`forbidden`), or
            Prime Traces is not enabled for this account
            (`service_not_enabled`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '503':
          description: >-
            Storage or authentication is temporarily unavailable. Retry after
            the `Retry-After` header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - PrimeApiKey: []
components:
  schemas:
    TraceSearchPage:
      properties:
        items:
          items:
            $ref: '#/components/schemas/TraceSearchMatch'
          type: array
          title: Items
        next_cursor:
          anyOf:
            - type: string
            - type: 'null'
          title: Next Cursor
        coverage:
          anyOf:
            - $ref: '#/components/schemas/TraceSearchCoverage'
            - type: 'null'
      type: object
      required:
        - items
        - next_cursor
        - coverage
      title: TraceSearchPage
    ErrorResponse:
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
      type: object
      required:
        - error
      title: ErrorResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    TraceSearchMatch:
      properties:
        trace_id:
          type: string
          title: Trace Id
        upload_id:
          type: string
          title: Upload Id
        generation:
          type: integer
          title: Generation
        episode_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Episode Id
        node_idx:
          type: integer
          title: Node Idx
        role:
          type: string
          title: Role
        field:
          type: string
          enum:
            - content
            - reasoning_content
            - tool_calls
          title: Field
        representation:
          type: string
          enum:
            - text
            - json
          title: Representation
        match_start:
          type: integer
          title: Match Start
        match_end:
          type: integer
          title: Match End
        excerpt:
          type: string
          title: Excerpt
        excerpt_start:
          type: integer
          title: Excerpt Start
      type: object
      required:
        - trace_id
        - upload_id
        - generation
        - episode_id
        - node_idx
        - role
        - field
        - representation
        - match_start
        - match_end
        - excerpt
        - excerpt_start
      title: TraceSearchMatch
    TraceSearchCoverage:
      properties:
        examined_traces:
          type: integer
          title: Examined Traces
        unindexed_trace_ids:
          items:
            type: string
          type: array
          title: Unindexed Trace Ids
        partial_index:
          type: boolean
          title: Partial Index
      type: object
      required:
        - examined_traces
        - unindexed_trace_ids
        - partial_index
      title: TraceSearchCoverage
    ErrorBody:
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode'
        message:
          type: string
          title: Message
        details:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Details
      type: object
      required:
        - code
        - message
      title: ErrorBody
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    ErrorCode:
      type: string
      enum:
        - upload_too_large
        - trace_too_large
        - too_many_traces_in_episode
        - episode_id_too_long
        - environment_id_too_long
        - too_many_traces_in_upload
        - duplicate_trace_id
        - duplicate_episode_id
        - digest_mismatch
        - line_format_mismatch
        - malformed_encoding
        - invalid_trace
        - invalid_metadata
        - created_at_out_of_window
        - unsupported_schema_version
        - unknown_episode_reference
        - line_format_conflict
        - source_conflict
        - upload_attribution_conflict
        - billing_intent_required
        - invalid_idempotency_key
        - invalid_cursor
        - invalid_filter
        - search_limit_exceeded
        - unauthenticated
        - forbidden
        - service_not_enabled
        - auth_unavailable
        - trace_not_found
        - trace_not_indexed
        - run_not_found
        - episode_not_found
        - export_job_not_found
        - task_already_running
        - invalid_schedule_time
        - snapshot_not_due
        - statement_production_incomplete
        - statement_production_failed
        - rate_limited
        - writer_pool_saturated
        - ingest_capacity_exceeded
        - ingest_unavailable
        - storage_unavailable
        - index_task_queue_unavailable
        - internal_error
      title: ErrorCode
  securitySchemes:
    PrimeApiKey:
      type: http
      description: A Prime Intellect API key with the Prime Traces permission.
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.