LangSmith runs API

The runs API from LangSmith — 7 operation(s) for runs.

Operations 7

POST /runs Create a Run
POST /runs/batch Ingest Runs (Batch JSON)
POST /runs/multipart Ingest Runs (Multipart)
PATCH /runs/{run_id} Update a Run
POST /v2/runs/query Query runs
GET /v2/runs/{run_id} Get a single run
GET /v2/traces/{trace_id}/runs List runs in a trace

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/langsmith-runs-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

langsmith-runs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LangSmith access_policies Runs API
  description: 'The LangSmith API is used to programmatically create and manage LangSmith resources.


    ## Host

    https://api.smith.langchain.com


    ## Authentication

    To authenticate with the LangSmith API, set the `X-Api-Key` header

    to a valid [LangSmith API key](https://docs.langchain.com/langsmith/create-account-api-key#create-an-api-key).


    '
  version: 0.1.0
servers:
- url: /
tags:
- name: runs
paths:
  /runs:
    post:
      security:
      - API Key: []
      - Tenant ID: []
      - Bearer Auth: []
      description: Queues a single run for ingestion. The request body must be a JSON-encoded run object that follows the Run schema.
      tags:
      - runs
      summary: Create a Run
      parameters: []
      responses:
        '202':
          description: Run created
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  allOf:
                  - type: string
                  - type: object
                    properties:
                      message:
                        type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/runs.Run'
  /runs/batch:
    post:
      security:
      - API Key: []
      - Tenant ID: []
      - Bearer Auth: []
      description: 'Ingests a batch of runs in a single JSON payload. The payload must have `post` and/or `patch` arrays containing run objects.

        Prefer this endpoint over single‑run ingestion when submitting hundreds of runs, but `/runs/multipart` offers better handling for very large fields and attachments.'
      tags:
      - runs
      summary: Ingest Runs (Batch JSON)
      parameters: []
      responses:
        '202':
          description: Runs batch ingested
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  allOf:
                  - type: string
                  - type: object
                    properties:
                      message:
                        type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                patch:
                  type: array
                  items:
                    $ref: '#/components/schemas/runs.Run'
                post:
                  type: array
                  items:
                    $ref: '#/components/schemas/runs.Run'
  /runs/multipart:
    post:
      security:
      - API Key: []
      - Tenant ID: []
      - Bearer Auth: []
      description: 'Ingests multiple runs, feedback objects, and binary attachments in a single `multipart/form-data` request.

        **Part‑name pattern**: `<event>.<run_id>[.<field>]` where `event` ∈ {`post`, `patch`, `feedback`, `attachment`}.

        * `post|patch.<run_id>` – JSON run payload.

        * `post|patch.<run_id>.<field>` – out‑of‑band run data (`inputs`, `outputs`, `events`, `error`, `extra`, `serialized`).

        * `feedback.<run_id>` – JSON feedback payload (must include `trace_id`).

        * `attachment.<run_id>.<filename>` – arbitrary binary attachment stored in S3.

        **Headers**: every part must set `Content-Type` **and** either a `Content-Length` header or `length` parameter. Per‑part `Content-Encoding` is **not** allowed; the top‑level request may be `Content-Encoding: gzip` or `Content-Encoding: zstd`.

        **Best performance** for high‑volume ingestion.'
      tags:
      - runs
      summary: Ingest Runs (Multipart)
      parameters: []
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                post.{run_id}:
                  type: string
                  format: binary
                  description: Run to create (JSON)
                patch.{run_id}:
                  type: string
                  format: binary
                  description: Run to update (JSON)
                post.{run_id}.inputs:
                  type: string
                  format: binary
                  description: Large inputs object (JSON) stored out‑of‑band
                patch.{run_id}.outputs:
                  type: string
                  format: binary
                  description: Large outputs object (JSON) stored out‑of‑band
                feedback.{run_id}:
                  type: string
                  format: binary
                  description: Feedback object (JSON) – must include trace_id
                attachment.{run_id}.{filename}:
                  type: string
                  format: binary
                  description: Binary attachment linked to run {run_id}
  /runs/{run_id}:
    patch:
      security:
      - API Key: []
      - Tenant ID: []
      - Bearer Auth: []
      description: Updates a run identified by its ID. The body should contain only the fields to be changed; unknown fields are ignored.
      tags:
      - runs
      summary: Update a Run
      parameters:
      - description: Run ID
        name: run_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '202':
          description: Run updated
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  allOf:
                  - type: string
                  - type: object
                    properties:
                      message:
                        type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runs.ErrorResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/runs.Run'
  /v2/runs/query:
    post:
      security:
      - API Key: []
        Tenant ID: []
      - Bearer Auth: []
        Tenant ID: []
      description: '**Alpha:** The request and response contract may change;

        Returns a paginated list of runs for the given projects within min/max start_time. Supports filters, cursor pagination, and `selects` to select fields to return.'
      tags:
      - runs
      summary: Query runs
      parameters:
      - description: application/json
        name: Accept
        in: header
        schema:
          type: string
      - description: application/json (required for JSON body)
        name: Content-Type
        in: header
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.QueryRunsResponseBody'
        '400':
          description: bad request (malformed JSON or invalid parameters)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '401':
          description: missing or invalid authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '403':
          description: forbidden (insufficient permission)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '404':
          description: session not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '422':
          description: unprocessable entity (e.g. invalid UUID)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '503':
          description: service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '504':
          description: gateway timeout or deadline exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/query.QueryRunsRequestBody'
  /v2/runs/{run_id}:
    get:
      security:
      - API Key: []
        Tenant ID: []
      - Bearer Auth: []
        Tenant ID: []
      description: '**Alpha:** The request and response contract may change;

        Returns one run by ID for the given session and start_time. Use the `selects` query parameter (repeatable) to select fields to return.'
      tags:
      - runs
      summary: Get a single run
      parameters:
      - description: application/json
        name: Accept
        in: header
        schema:
          type: string
      - description: Run UUID
        name: run_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - description: '`project_id` is the UUID of the tracing project that owns the run.'
        name: project_id
        in: query
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      - description: '`selects` lists which properties to include on the returned run (repeatable query parameter). Accepts any value of the `RunSelectField` enum. If omitted, only `id` is returned.'
        name: selects
        in: query
        style: form
        explode: true
        schema:
          items:
            enum:
            - ID
            - NAME
            - RUN_TYPE
            - STATUS
            - START_TIME
            - END_TIME
            - LATENCY_SECONDS
            - FIRST_TOKEN_TIME
            - ERROR
            - ERROR_PREVIEW
            - EXTRA
            - METADATA
            - EVENTS
            - INPUTS
            - INPUTS_PREVIEW
            - OUTPUTS
            - OUTPUTS_PREVIEW
            - MANIFEST
            - PARENT_RUN_IDS
            - PROJECT_ID
            - TRACE_ID
            - THREAD_ID
            - DOTTED_ORDER
            - IS_ROOT
            - REFERENCE_EXAMPLE_ID
            - REFERENCE_DATASET_ID
            - TOTAL_TOKENS
            - PROMPT_TOKENS
            - COMPLETION_TOKENS
            - TOTAL_COST
            - PROMPT_COST
            - COMPLETION_COST
            - PROMPT_TOKEN_DETAILS
            - COMPLETION_TOKEN_DETAILS
            - PROMPT_COST_DETAILS
            - COMPLETION_COST_DETAILS
            - PRICE_MODEL_ID
            - TAGS
            - APP_PATH
            - ATTACHMENTS
            - THREAD_EVALUATION_TIME
            - IS_IN_DATASET
            - SHARE_URL
            - FEEDBACK_STATS
            type: string
          type: array
          title: Selects
      - description: '`start_time` is the run''s `start_time` (RFC3339 date-time), used together with `project_id` to locate the run.'
        name: start_time
        in: query
        required: true
        schema:
          type: string
          format: date-time
          title: Start Time
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.RunResponse'
        '400':
          description: bad request (missing or invalid query parameters)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '401':
          description: missing or invalid authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '403':
          description: forbidden (insufficient permission)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '404':
          description: run or session not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '422':
          description: unprocessable entity (e.g. invalid UUID)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '503':
          description: service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '504':
          description: gateway timeout or deadline exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
  /v2/traces/{trace_id}/runs:
    get:
      security:
      - API Key: []
        Tenant ID: []
      - Bearer Auth: []
        Tenant ID: []
      description: '**Alpha:** The request and response contract may change;

        Returns runs for a trace ID within min/max start time. Optional `filter`; repeatable `selects` to select fields to return.'
      tags:
      - runs
      summary: List runs in a trace
      parameters:
      - description: application/json
        name: Accept
        in: header
        schema:
          type: string
      - description: Trace UUID
        name: trace_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - description: '`filter` narrows which runs within this trace are returned, using a LangSmith filter expression evaluated against each run. For example: `eq(run_type, "llm")` for LLM runs only, or `eq(status, "error")` for failed runs.

          See https://docs.langchain.com/langsmith/trace-query-syntax#filter-query-language for syntax.'
        name: filter
        in: query
        schema:
          type: string
          title: Filter
      - description: '`max_start_time` is the inclusive upper bound for run `start_time` (RFC3339 date-time).'
        name: max_start_time
        in: query
        required: true
        schema:
          type: string
          format: date-time
          title: Max Start Time
      - description: '`min_start_time` is the inclusive lower bound for run `start_time` (RFC3339 date-time).'
        name: min_start_time
        in: query
        required: true
        schema:
          type: string
          format: date-time
          title: Min Start Time
      - description: '`project_id` is the UUID of the tracing project that owns the trace.'
        name: project_id
        in: query
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      - description: '`selects` lists which properties to include on each returned run (repeatable query parameter). Accepts any value of the `RunSelectField` enum. If omitted, only `id` is returned.'
        name: selects
        in: query
        style: form
        explode: true
        schema:
          items:
            enum:
            - ID
            - NAME
            - RUN_TYPE
            - STATUS
            - START_TIME
            - END_TIME
            - LATENCY_SECONDS
            - FIRST_TOKEN_TIME
            - ERROR
            - ERROR_PREVIEW
            - EXTRA
            - METADATA
            - EVENTS
            - INPUTS
            - INPUTS_PREVIEW
            - OUTPUTS
            - OUTPUTS_PREVIEW
            - MANIFEST
            - PARENT_RUN_IDS
            - PROJECT_ID
            - TRACE_ID
            - THREAD_ID
            - DOTTED_ORDER
            - IS_ROOT
            - REFERENCE_EXAMPLE_ID
            - REFERENCE_DATASET_ID
            - TOTAL_TOKENS
            - PROMPT_TOKENS
            - COMPLETION_TOKENS
            - TOTAL_COST
            - PROMPT_COST
            - COMPLETION_COST
            - PROMPT_TOKEN_DETAILS
            - COMPLETION_TOKEN_DETAILS
            - PROMPT_COST_DETAILS
            - COMPLETION_COST_DETAILS
            - PRICE_MODEL_ID
            - TAGS
            - APP_PATH
            - ATTACHMENTS
            - THREAD_EVALUATION_TIME
            - IS_IN_DATASET
            - SHARE_URL
            - FEEDBACK_STATS
            type: string
          type: array
          title: Selects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.QueryTraceResponseBody'
        '400':
          description: bad request (missing or invalid query parameters)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '401':
          description: missing or invalid authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '403':
          description: forbidden (insufficient permission)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '404':
          description: session not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '422':
          description: unprocessable entity (e.g. invalid UUID)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '503':
          description: service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
        '504':
          description: gateway timeout or deadline exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/shared.ProblemDetails'
components:
  schemas:
    runs.Run:
      type: object
      properties:
        dotted_order:
          type: string
        end_time:
          type: string
        error:
          type: string
        events:
          type: array
          items:
            type: object
            additionalProperties: true
        extra:
          type: object
          additionalProperties: true
        id:
          type: string
        input_attachments:
          type: object
          additionalProperties: true
        inputs:
          type: object
          additionalProperties: true
        name:
          type: string
        output_attachments:
          type: object
          additionalProperties: true
        outputs:
          type: object
          additionalProperties: true
        parent_run_id:
          type: string
        reference_example_id:
          type: string
        run_type:
          type: string
          enum:
          - tool
          - chain
          - llm
          - retriever
          - embedding
          - prompt
          - parser
        serialized:
          type: object
          additionalProperties: true
        session_id:
          type: string
        session_name:
          type: string
        start_time:
          type: string
        status:
          type: string
        tags:
          type: array
          items:
            type: string
        trace_id:
          type: string
    query.RunFeedbackStats:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/query.RunFeedbackStat'
    runs.ErrorResponse:
      type: object
      properties:
        details:
          description: Optional error details as JSON string
          type: string
          example: '{"field":"dataset_id","reason":"required"}'
        error:
          description: Error message
          type: string
          example: 'Invalid request: missing required fields'
    query.SortOrder:
      type: string
      enum:
      - ASC
      - DESC
      x-enum-varnames:
      - SortOrderAsc
      - SortOrderDesc
    query.RunFeedbackStat:
      type: object
      properties:
        avg:
          description: '`avg` is the arithmetic mean of numeric feedback scores for this key on the run, or `null` when no numeric score has been recorded (for example purely categorical feedback).'
          type: number
          example: 0.87
        comments:
          description: '`comments` is a sample of human-readable comments attached to feedback points for this key, in no particular order. May be empty; is not exhaustive when many comments exist.'
          type: array
          items:
            type: string
          example:
          - good answer
          - needs citation
        contains_thread_feedback:
          description: '`contains_thread_feedback` is true when at least one feedback point for this key was submitted at the thread level (rather than at an individual run). Always false on responses that already describe a single run in isolation.'
          type: boolean
          example: false
        errors:
          description: '`errors` is the number of feedback points recorded as errors rather than successful scores (for example an automated evaluator that raised an exception). Defaults to 0 when no errors occurred.'
          type: integer
          default: 0
          example: 0
        max:
          description: '`max` is the largest numeric feedback score recorded for this key on the run, or `null` when no numeric score has been recorded.'
          type: number
          example: 0.95
        min:
          description: '`min` is the smallest numeric feedback score recorded for this key on the run, or `null` when no numeric score has been recorded.'
          type: number
          example: 0.8
        n:
          description: '`n` is the number of feedback points recorded for this key on the run. For numeric feedback this is the sample size behind `avg`, `min`, `max`, and `stdev`; for categorical feedback it is the sum of the `values` counts.'
          type: integer
          example: 42
        sources:
          description: '`sources` is a sample of feedback sources for this key. Each entry is either a plain string identifier (for example `"api"`, `"app"`, `"model"`) or a JSON object describing a synthetic source (for example `{"type": "__ls_composite_feedback"}` for a computed aggregate). Clients must tolerate both shapes.'
          type: array
          items: {}
        stdev:
          description: '`stdev` is the sample standard deviation of numeric feedback scores for this key on the run, or `null` when it cannot be computed (for example fewer than two numeric scores, or purely categorical feedback).'
          type: number
          example: 0.05
        values:
          description: '`values` is the distribution of categorical feedback labels for this key, mapping each label to its occurrence count. Empty (`{}`) for purely numeric feedback.'
          type: object
          additionalProperties:
            type: integer
            format: int64
    query.RunCompletionCostDetails:
      type: object
      properties:
        raw:
          description: '`raw` maps each category name to its estimated USD cost.'
          type: object
          additionalProperties:
            type: number
            format: float64
    query.QueryRunsResponseBody:
      type: object
      properties:
        has_more:
          description: '`has_more` is true when another page of runs exists after this one.'
          type: boolean
          example: true
        items:
          description: '`items` is the page of runs, sorted by `start_time` in the direction given by the request `sort_order`.'
          type: array
          items:
            $ref: '#/components/schemas/query.RunResponse'
        next_cursor:
          description: '`next_cursor` is the opaque cursor to pass as `cursor` on the next request when `has_more` is true. Omitted on the final page.'
          type: string
          example: eyJsYXN0X2lkIjoiMDE4ZTRjN2UtYTlmYi03ZWYwLWE1YjYtNmVhM2E4MmU5MzI3In0=
    query.QueryRunsRequestBody:
      type: object
      properties:
        ai_query:
          description: '`ai_query` is a natural-language query to filter runs using AI.'
          type: string
          example: runs that used tool calls
        cursor:
          description: '`cursor` is the opaque string from a previous response''s `next_cursor`.'
          type: string
          example: eyJsYXN0X2lkIjoiMDE4ZTRjN2UtYTlmYi03ZWYwLWE1YjYtNmVhM2E4MmU5MzI3In0=
        filter:
          description: '`filter` narrows results to runs matching this LangSmith filter expression, evaluated against each individual run.

            For example: and(eq(run_type, "llm"), gt(latency, 5)) or eq(status, "error").

            See https://docs.langchain.com/langsmith/trace-query-syntax#filter-query-language for syntax.'
          type: string
          example: and(eq(run_type, "llm"), gt(latency, 5))
        has_error:
          description: '`has_error` filters to runs that errored (true) or completed without error (false).'
          type: boolean
          example: false
        ids:
          description: '`ids` optionally limits the request to these run UUIDs.'
          type: array
          items:
            type: string
            format: uuid
          example:
          - 018e4c7e-a9fb-7ef0-a5b6-6ea3a82e9327
          - f47ac10b-58cc-4372-a567-0e02b2c3d479
        is_root:
          description: '`is_root` returns only root runs (true) or only non-root runs (false).'
          type: boolean
          example: true
        max_start_time:
          description: '`max_start_time` is the upper bound for run `start_time` (RFC3339). Defaults to now.'
          type: string
          format: date-time
          example: '2024-12-31T23:59:59Z'
        min_start_time:
          description: '`min_start_time` is the lower bound for run `start_time` (RFC3339). Defaults to 1 day ago.'
          type: string
          format: date-time
          example: '2024-01-01T00:00:00Z'
        page_size:
          description: '`page_size` is the maximum number of runs to return in this response. Defaults to 100 when omitted; must be between 1 and 1000 inclusive when set.'
          type: integer
          default: 100
          maximum: 1000
          minimum: 1
          example: 100
        project_ids:
          description: '`project_ids` lists tracing project UUIDs to query.'
          type: array
          items:
            type: string
            format: uuid
          example:
          - 018e4c7e-a9fb-7ef0-a5b6-6ea3a82e9327
          - 0190a1b2-c3d4-7ef0-a5b6-6ea3a82e9328
        reference_examples:
          description: '`reference_examples` optionally limits to runs linked to these dataset example UUIDs.'
          type: array
          items:
            type: string
            format: uuid
          example:
          - b2c3d4e5-f6a7-4b5c-9d0e-1f2a3b4c5d6e
          - c3d4e5f6-a7b8-4c5d-0e1f-2a3b4c5d6e7f
        run_type:
          description: '`run_type`, when set, restricts results to runs whose `run_type` equals this value.'
          allOf:
          - $ref: '#/components/schemas/query.RunType'
          example: LLM
        selects:
          description: '`selects` lists which properties to include on each returned run. If omitted, only `id` is returned. Properties not listed are omitted from each run object.'
          type: array
          items:
            $ref: '#/components/schemas/query.RunSelectField'
          example:
          - ID
          - NAME
         

# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/langsmith/refs/heads/main/openapi/langsmith-runs-api-openapi.yml