---
title: "Search logs"
method: POST
path: "/v3/logs/search"
tags: ["Logs"]
---

# Search logs

`POST /v3/logs/search`

Query log records with filters, free-text search, and keyset pagination. Results are ordered timestamp desc (the only supported sort, mirroring traces).

## Request body

- SearchLogsRequest
  - `from` string, date-time
  - `to` string, date-time
  - `query` string — Free-text query matched against the body field (case-insensitive).
  - `filter_operator` string — How to combine multiple filters: "and" (default) or "or", mirroring the traces filter_operator.
  - `filters` TraceFilter[]
    - `field` string
    - `op` string
    - `values` string[]
  - `sort` TraceSort[]
    - `field` string
    - `order` string
  - `limit` integer — Maximum rows to return. Defaults to 100 and is capped at 1000.
  - `page_token` string — Opaque cursor for pagination; empty or absent means the first page.

## Response `200`

OK

- SearchLogsResponse
  - `object` string — Object discriminator; always "list". Mirrors SearchTracesResponse.
  - `data` Log[]
    - `id` string
    - `trace_id` string
    - `span_id` string
    - `timestamp` string, date-time
    - `observed_timestamp` string, date-time
    - `severity_number` integer
    - `severity_text` string
    - `body` string
    - `body_is_json` boolean
    - `event_name` string
    - `dropped_attributes_count` integer
    - `trace_flags` integer
    - `scope_name` string
    - `scope_version` string
    - `scope_attributes` object
    - `log_attributes` object
    - `resource_attributes` object
    - `service_name` string
    - `service_version` string
    - `deployment_environment` string
    - `host_name` string
    - `project_id` string
  - `has_more` boolean
  - `next_page_token` string — Keyset cursor for the next page; empty when has_more is false.
  - `meta` TraceSearchMeta
    - `request_id` string
    - `from` string, date-time
    - `to` string, date-time
    - `row_count` integer
  - `total_count` string — Exact match count for the full time range (cursor-independent, constant across pages). int64 serializes as a JSON string per protojson.

---

[API](https://skmtc.net/orq-ai/apis/orq-ai-api.md) · [All operations](https://skmtc.net/orq-ai/apis/orq-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/orq-ai/orq-ai-api/revisions/f7a624eccddb/schema)
