---
title: "POST /traces/search"
method: POST
path: "/traces/search"
---

# POST /traces/search

`POST /traces/search`

## Request

- Base URL: `https://api.caveman.so/api/v1`
- URL: `https://api.caveman.so/api/v1/traces/search`
- Auth: one of:
  - OAuth 2
    - Authorization code: `/api/v1/oauth/authorize`
    - Token URL: `/api/v1/oauth/token` scopes: `trace:read_metadata`
  - HTTP bearer
  - API key in cookie `cave_access`
  - API key in cookie `__Secure-cave_identity.session_token`

POST /api/v1/traces/search on the Caveman Cloud control plane. Requires the trace:read_metadata scope. Exposed to autonomous agents as the search action of the caveman_traces tool (read access). Search and inspect LLM requests and whole tasks as metadata, span trees and steps, with the judgments on any of them. Captured content needs the connection's explicit payload grant. Scores carry each trace's latest Judgment per criterion, and search filters by a criterion's verdict.

## Request body

- object
  - `from` string, date-time: UTC start of a window spanning at most 90 days. Left out, it is 24 hours before to.
  - `to` string, date-time: UTC end, after from and at most 90 days later. Left out, it is now.
  - `filters` object: Closed filter keys; an unknown key is refused with the supported list. `criterion`: {criterion_id, verdict} keeps traces whose latest Judgment on that criterion reads the verdict (passed, failed, not_applicable, inconclusive, error).
  - `group_by` string
  - `page_size` integer
  - `sort` object
  - `cursor` object
  - `filter` union[]
    - union
      - object
        - `field` string, required
        - `op` 'is' | 'is_not' | 'in' | 'not_in' | 'contains' | 'not_contains' | 'starts_with' | 'regex' | 'gt' | 'gte' | 'lt' | 'lte' | 'exists' | 'not_exists'
        - `rule` string: Older name of op; matches_regex means regex. Send op or rule, never both.
        - `value` union
          - string
          - number
          - string[]
      - object
        - `all` union[], required
          - union
            - object
              - …
            - object
              - …
            - object
              - …
      - object
        - `any` union[], required
          - union
            - object
              - …
            - object
              - …
            - object
              - …

## Response `2XX`

Successful response. Exact status depends on synchronous or durable delivery outcome.

## Other responses

- `4XX`: Structured failure. `error.code` is stable; `error.request_id` is echoed in the x-cave-request-id header.
- `5XX`: Structured failure. `error.code` is stable; `error.request_id` is echoed in the x-cave-request-id header.

---

[API](https://skmtc.dev/caveman/apis/caveman-cloud-api.md) - [All operations](https://skmtc.dev/caveman/apis/caveman-cloud-api/llms.txt) - [OpenAPI document](https://skmtc.dev/caveman/apis/caveman-cloud-api/revisions/508312d01cfc?raw)
