---
title: "Search screen and audio content with various filters"
method: GET
path: "/search"
tags: ["Context Retrieval"]
---

# Search screen and audio content with various filters

`GET /search`

Query Screenpipe for content based on various filters.

## Use Cases

- Search for specific text across all applications
- Find content from a specific application or window
- Get screenshots from a particular time period
- Retrieve all visits to a specific website

## Examples

### Basic search for recent browser activity:
```js
const githubActivity = await pipe.queryScreenpipe({
  browserUrl: "github.com",
  contentType: "ocr",
  limit: 20,
  includeFrames: true
});
```

### Search for specific text with date filters:
```js
const searchResults = await pipe.queryScreenpipe({
  q: "authentication",
  browserUrl: "auth0.com",
  appName: "Chrome",
  contentType: "ocr",
  startTime: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString(),
  endTime: new Date().toISOString(),
  limit: 50
});
```

## Query parameters

- `q` string, nullable
- `limit` integer
- `offset` integer
- `content_type` 'all' | 'ocr' | 'audio' | 'ui' | 'audio+ui' | 'ocr+ui' | 'audio+ocr' — Type of content to search for. "all" returns all content types.
- `start_time` string, date-time, nullable
- `end_time` string, date-time, nullable
- `app_name` string, nullable
- `window_name` string, nullable
- `frame_name` string, nullable
- `include_frames` boolean
- `min_length` integer, nullable
- `max_length` integer, nullable
- `speaker_ids` string, nullable
- `focused` boolean, nullable
- `browser_url` string, nullable
- `speaker_name` string, nullable
- `include_cloud` boolean

## Response `200`

Search results with pagination

- SearchResponse
  - `data` ContentItem[], required
    - union
      - object
        - `type` 'OCR', required
        - `content` OCRContent, required
          - `frame_id` integer, required
          - `text` string, required
          - `timestamp` string, date-time, required
          - `file_path` string, required
          - `offset_index` integer, required
          - `app_name` string, required
          - `window_name` string, required
          - `tags` string[], required
          - `frame` string, nullable
          - `frame_name` string, nullable
          - `browser_url` string, nullable
          - `focused` boolean, nullable
          - `device_name` string, required
      - object
        - `type` 'Audio', required
        - `content` AudioContent, required
          - `chunk_id` integer, required
          - `transcription` string, required
          - `timestamp` string, date-time, required
          - `file_path` string, required
          - `offset_index` integer, required
          - `tags` string[], required
          - `device_name` string, required
          - `device_type` 'Input' | 'Output', required
          - `speaker` Speaker
            - `id` integer, required
            - `name` string, nullable, required
            - `metadata` string, required
          - `start_time` number, nullable
          - `end_time` number, nullable
      - object
        - `type` 'UI', required
        - `content` UiContent, required
          - `id` integer, required
          - `text` string, required
          - `timestamp` string, date-time, required
          - `app_name` string, required
          - `window_name` string, required
          - `initial_traversal_at` string, date-time, nullable
          - `file_path` string, required
          - `offset_index` integer, required
          - `frame_name` string, nullable
          - `browser_url` string, nullable
      - object
        - `type` 'Input', required
        - `content` InputContent, required — User input event (clicks, keystrokes, clipboard, etc.)
          - `id` integer, required
          - `timestamp` string, date-time, required
          - `event_type` string, required
          - `app_name` string, nullable
          - `window_title` string, nullable
          - `browser_url` string, nullable
          - `text_content` string, nullable
          - `x` integer, nullable
          - `y` integer, nullable
          - `key_code` integer, nullable
          - `modifiers` integer, nullable
          - `element_role` string, nullable
          - `element_name` string, nullable
  - `pagination` PaginationInfo, required
    - `limit` integer, required
    - `offset` integer, required
    - `total` integer, required
  - `cloud` object, nullable — Metadata about cloud search availability (only present when cloud sync is available)
    - `cloud_search_available` boolean
    - `estimated_cloud_results` integer

## Changes

- **2026-02-16** `e143bf8d73bc` — 5 breaking, 6 info
  - for the `query` request parameter `include_frames`, default value `false` was added
  - for the `query` request parameter `limit`, default value `20` was added
  - for the `query` request parameter `offset`, default value `0` was added
  - removed the required property `results` from the response with the `200` status
  - …7 more
- **2026-02-11** `2825740bcf63` — 7 breaking, 3 warning, 4 info
  - removed the enum value `audio+input` from the `query` request parameter `content_type`
  - removed the enum value `input` from the `query` request parameter `content_type`
  - removed the enum value `vision` from the `query` request parameter `content_type`
  - removed the enum value `vision+audio+input` from the `query` request parameter `content_type`
  - …10 more
- **2026-02-11** `61c0a2f34556` — 1 info
  - endpoint added
- **2026-02-11** `4303af4aaeda` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/screenpipe/apis/screenpipe-api/changes/search/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/e143bf8d73bc/schema)
