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

# Search logs

`POST /v3/logs/search`

## Request

- Base URL: `https://my.orq.ai`
- URL: `https://my.orq.ai/v3/logs/search`
- Auth: HTTP bearer

Query log records with filters, free-text search, and keyset pagination. Results are ordered timestamp desc (the only supported sort, mirroring traces). See the [filter grammar](/ai-studio/observability/traces#filter-grammar) for the field and operator reference.

## 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. Constant across pages. Serialized as a JSON string.

## Other responses

- `401`: Authentication required. See https://docs.orq.ai/reference/errors for the error codes.

## Changes

> 554 revisions in range; 71 not diffed.

- **2026-10-23** `0b4e519a544f`: 1 info
  - added the non-success response with the status `401`
- **2026-10-23** `732aed62833a`: 1 info
  - removed the non-success response with the status `401`
- **2026-10-22** `4f826b2c3a0e`: 1 info
  - added the non-success response with the status `401`
- **2026-10-22** `8f0dc569f247`: 1 info
  - removed the non-success response with the status `401`
- **2026-10-21** `08b800d640e6`: 1 info
  - added the non-success response with the status `401`

[Operation history](https://skmtc.dev/orq-ai/apis/orq-ai-api/changes/v3/logs/search/post.md)

---

[API](https://skmtc.dev/orq-ai/apis/orq-ai-api.md) - [All operations](https://skmtc.dev/orq-ai/apis/orq-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/orq-ai/apis/orq-ai-api/revisions/928a71e92252?raw)
