> ## Documentation Index
> Fetch the complete documentation index at: https://docs.screenpipe.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Run OCR on frame

> Run on-demand OCR on a frame that has no stored bounding boxes.
Loads the snapshot JPEG, runs Apple Vision OCR, stores the result,
and returns the text positions. Subsequent GET requests will hit the
cached DB row. If OCR data already exists, returns it without re-running.



## OpenAPI

````yaml /openapi.yaml post /frames/{frame_id}/text
openapi: 3.0.3
info:
  title: Screenpipe API
  version: 1.0.0
  description: >-
    Screenpipe captures everything you see, say, and hear on your computer. Use
    this API to search through captured content, manage recordings, and build
    AI-powered automations on top of your screen data.


    The server runs locally at `http://localhost:3030` by default.
servers: []
security: []
tags:
  - name: Search
    description: Search through captured screen and audio content
  - name: Frames
    description: Access captured screenshots and their extracted text
  - name: Elements
    description: Query captured UI accessibility tree data
  - name: Audio
    description: Manage audio recording devices
  - name: Vision
    description: Manage screen capture monitors
  - name: Meetings
    description: Detected and manual meeting transcriptions
  - name: Speakers
    description: Speaker identification and management
  - name: Memories
    description: AI-extracted knowledge from screen activity
  - name: Tags
    description: Tag content items for organization
  - name: Activity
    description: Activity summaries and analytics
  - name: Vault
    description: Encrypt/decrypt all data at rest
  - name: Cloud Sync
    description: Sync data across devices via cloud
  - name: Cloud Archive
    description: Archive old data to cloud storage
  - name: Data Retention
    description: Auto-delete old data locally
  - name: Data Management
    description: Manual data deletion and storage info
  - name: Database
    description: Direct database access
  - name: System
    description: Health checks and system status
  - name: Experimental
    description: Experimental/unstable endpoints
paths:
  /frames/{frame_id}/text:
    post:
      tags:
        - Frames
      summary: Run OCR on frame
      description: >-
        Run on-demand OCR on a frame that has no stored bounding boxes.

        Loads the snapshot JPEG, runs Apple Vision OCR, stores the result,

        and returns the text positions. Subsequent GET requests will hit the

        cached DB row. If OCR data already exists, returns it without
        re-running.
      operationId: routes_frames_run_frame_ocr
      parameters:
        - name: frame_id
          schema:
            type: integer
          in: path
          required: true
          style: simple
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FrameTextResponse'
components:
  schemas:
    FrameTextResponse:
      description: Response type for frame OCR data endpoint
      type: object
      properties:
        frame_id:
          type: integer
        text_positions:
          type: array
          items:
            $ref: '#/components/schemas/TextPosition'
      required:
        - frame_id
        - text_positions
    TextPosition:
      type: object
      properties:
        text:
          type: string
        confidence:
          type: number
        bounds:
          $ref: '#/components/schemas/TextBounds'
      required:
        - text
        - confidence
        - bounds
    TextBounds:
      type: object
      properties:
        left:
          type: number
        top:
          type: number
        width:
          type: number
        height:
          type: number
      required:
        - left
        - top
        - width
        - height

````