---
title: "Find the RUM events linked to a trace"
method: POST
path: "/api/{org_id}/rum/lookup"
tags: ["Search"]
---

# Find the RUM events linked to a trace

`POST /api/{org_id}/rum/lookup`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/{org_id}/rum/lookup`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/rum/lookup/post.ts> (a function with typed inputs; its response is checked against the schema)

Finds the browser requests that carry the trace id, then fetches their page views, actions and other page events in parallel. Each result set keeps its own order and limit; its `truncated` and `error`, and the top-level `status`, report what is missing.

## Path parameters

- `org_id` string, required

## Request body

- RumLookupRequest: Body of a trace-to-RUM lookup.
  - `end_time` integer, required: Latest end of the backend spans, in microseconds.
  - `start_time` integer, required: Earliest start of the backend spans, in microseconds.
  - `trace_id` string, required

## Response `200`

Success

- RumLookupResponse: One result per query; a query that did not run because it had no ids is `null`.
  - `actions` RumQueryResult
    - `error` RumQueryError
      - `kind` 'timeout' | 'cancelled' | 'failed' | 'partial', required
      - `message` string, required
    - `hits` object[], required
    - `stats` RumQueryStats
      - `cached_ratio` integer, required
      - `end_time` integer, required
      - `result_cache_ratio` integer, required
      - `scan_files` integer, required
      - `scan_records` integer, required
      - `scan_size` integer, required
      - `search_took` integer, required
      - `start_time` integer, required
      - `took` integer, required: Wall time of the sub-query as seen by the lookup, in milliseconds.
      - `wait_in_queue` integer, required
    - `truncated` boolean, required: The query hit its limit, so more rows were left out.
  - `context_events` RumQueryResult
    - `error` RumQueryError
      - `kind` 'timeout' | 'cancelled' | 'failed' | 'partial', required
      - `message` string, required
    - `hits` object[], required
    - `stats` RumQueryStats
      - `cached_ratio` integer, required
      - `end_time` integer, required
      - `result_cache_ratio` integer, required
      - `scan_files` integer, required
      - `scan_records` integer, required
      - `scan_size` integer, required
      - `search_took` integer, required
      - `start_time` integer, required
      - `took` integer, required: Wall time of the sub-query as seen by the lookup, in milliseconds.
      - `wait_in_queue` integer, required
    - `truncated` boolean, required: The query hit its limit, so more rows were left out.
  - `partial` boolean, required: Some query was cut at its limit or did not complete.
  - `status` 'found' | 'not_found' | 'unavailable' | 'incomplete', required
  - `took` integer, required: Wall time of the whole lookup, in milliseconds.
  - `traced_resources` RumQueryResult
    - `error` RumQueryError
      - `kind` 'timeout' | 'cancelled' | 'failed' | 'partial', required
      - `message` string, required
    - `hits` object[], required
    - `stats` RumQueryStats
      - `cached_ratio` integer, required
      - `end_time` integer, required
      - `result_cache_ratio` integer, required
      - `scan_files` integer, required
      - `scan_records` integer, required
      - `scan_size` integer, required
      - `search_took` integer, required
      - `start_time` integer, required
      - `took` integer, required: Wall time of the sub-query as seen by the lookup, in milliseconds.
      - `wait_in_queue` integer, required
    - `truncated` boolean, required: The query hit its limit, so more rows were left out.
  - `views` RumQueryResult
    - `error` RumQueryError
      - `kind` 'timeout' | 'cancelled' | 'failed' | 'partial', required
      - `message` string, required
    - `hits` object[], required
    - `stats` RumQueryStats
      - `cached_ratio` integer, required
      - `end_time` integer, required
      - `result_cache_ratio` integer, required
      - `scan_files` integer, required
      - `scan_records` integer, required
      - `scan_size` integer, required
      - `search_took` integer, required
      - `start_time` integer, required
      - `took` integer, required: Wall time of the sub-query as seen by the lookup, in milliseconds.
      - `wait_in_queue` integer, required
    - `truncated` boolean, required: The query hit its limit, so more rows were left out.

## Other responses

- `400`: Invalid request
- `403`: Forbidden
- `429`: Search not allowed now

---

[API](https://skmtc.dev/openobserve/apis/openobserve-api-http.md) - [All operations](https://skmtc.dev/openobserve/apis/openobserve-api-http/llms.txt) - [OpenAPI document](https://skmtc.dev/openobserve/apis/openobserve-api-http/revisions/0529b8a10252?raw)
