---
title: "Get frame text and bounds"
method: GET
path: "/frames/{frame_id}/text"
tags: ["Frames"]
---

# Get frame text and bounds

`GET /frames/{frame_id}/text`

Get frame text positions with bounding boxes for a specific frame.
Uses accessibility tree node bounds when available, and OCR fallback positions for visual-only or legacy frames.
Both OCR and accessibility bounds are normalized to 0-1 relative to the
monitor (full-screen capture), so they align correctly with the screenshot.

## Path parameters

- `frame_id` integer, required

## Query parameters

- `query` string, nullable

## Response `200`

OK

- FrameTextResponse — Response type for frame OCR data endpoint
  - `frame_id` integer, required
  - `text_positions` TextPosition[], required
    - `text` string, required
    - `confidence` number, required
    - `bounds` TextBounds, required
      - `left` number, required
      - `top` number, required
      - `width` number, required
      - `height` number, required

## Changes

- **2026-04-09** `0f0f8030c7e2` — 1 info
  - api tag `Frames` added
- **2026-04-08** `1a63468a8d30` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/screenpipe/apis/screenpipe-api/changes/frames/:frame_id/text/get.md)

---

[API](https://skmtc.dev/screenpipe/apis/screenpipe-api.md) · [All operations](https://skmtc.dev/screenpipe/apis/screenpipe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/screenpipe/screenpipe-api/revisions/c48ab58de88e/schema)
