---
title: "Magic Search"
method: POST
path: "/v1/search"
tags: ["Search"]
---

# Magic Search

`POST /v1/search`

Perform a full-text search across your workspace's content. Returns matching highlights, data (notes), insights, channels, tags, and themes in a single response.

Use the `query` field for keyword search, or provide structured `filter` objects to narrow results by specific entity types and their attributes. To include a content type with no filter constraints, pass an empty array for that type (e.g. `"notes": []`). Types omitted from the filter are excluded from results. The `notes` key in the filter and response corresponds to the "data" resource in the Dovetail product.

Results are paginated using `offset` and `limit` (default 50, max 250). Each content type is returned in its own array within the response.

> 📘 Prefer Search V2
>
> For more advanced filtering including location-based search, contributor filters, and additional content types (projects, folders, people, dashboards, agents), use the **Search V2** (`POST /v2/search`) endpoint.

## Request body

- object
  - `offset` integer — An optional offset - will default to 0 if not provided.
  - `limit` integer — A limit of search item results (highlights, notes, insights, channels and/or themes), if not provided it will be defaulted to 50 with a maximum of 250 search items per request.
  - `filter` object — An optional filter for search. Please provide an empty array if you want to include other objects.
    - `notes` object[] — Filter results based on note's title, authors, content and created_at.
      - `title` object
        - `contains` string — Substring to search for within the target string
        - `equal_to` string — IN operator
      - `authors` object
        - `overlaps` string[] — Checks for any overlapping elements with the target array
      - `content` object
        - `contains` string — Substring to search for within the target string
        - `empty` boolean — Empty or non-empty flag
        - `equal_to` string — IN operator
      - `created_at` object
        - `equal_to` string, date-time, nullable — Equal to operator
        - `greater_than` string, date-time, nullable — Great than operator
        - `less_than` string, date-time, nullable — Less than operator
    - `tags` object[] — Filter results based on tag's title, description, highlight_count and created_at.
      - `title` object
        - `contains` string — Substring to search for within the target string
        - `equal_to` string — IN operator
      - `description` object
        - `contains` string — Substring to search for within the target string
        - `empty` boolean — Empty or non-empty flag
        - `equal_to` string — IN operator
      - `highlight_count` object
        - `equal_to` number — Equal to operator
        - `greater_than` number — Great than operator
        - `less_than` number — Less than operator
      - `created_at` object
        - `equal_to` string, date-time, nullable — Equal to operator
        - `greater_than` string, date-time, nullable — Great than operator
        - `less_than` string, date-time, nullable — Less than operator
    - `highlights` object[] — Filter results based on highlight's authors, created_at, id, text, note and tags.
      - `authors` object
        - `overlaps` string[] — Checks for any overlapping elements with the target array
      - `created_at` object
        - `equal_to` string, date-time, nullable — Equal to operator
        - `greater_than` string, date-time, nullable — Great than operator
        - `less_than` string, date-time, nullable — Less than operator
      - `id` object
        - `empty` boolean — Empty or non-empty flag
        - `equal_to` string — Equal to operator
        - `in` string[] — IN operator
      - `text` object
        - `contains` string — Substring to search for within the target string
        - `empty` boolean — Empty or non-empty flag
        - `equal_to` string — IN operator
      - `note` object
        - `empty` boolean — Empty or non-empty flag
        - `equal_to` string — Equal to operator
        - `in` string[] — IN operator
      - `tags` object
        - `contains` string[] — IN operator
        - `empty` boolean — Empty or non-empty flag
        - `overlaps` string[] — Checks for any overlapping elements with the target array
    - `insights` object[] — Filter results based on insight's authors, created_at, id, title and contributors.
      - `authors` object
        - `overlaps` string[] — Checks for any overlapping elements with the target array
      - `created_at` object
        - `equal_to` string, date-time, nullable — Equal to operator
        - `greater_than` string, date-time, nullable — Great than operator
        - `less_than` string, date-time, nullable — Less than operator
      - `id` object
        - `empty` boolean — Empty or non-empty flag
        - `equal_to` string — Equal to operator
        - `in` string[] — IN operator
      - `title` object
        - `contains` string — Substring to search for within the target string
        - `equal_to` string — IN operator
      - `contributors` object
        - `overlaps` string[] — Checks for any overlapping elements with the target array
    - `channels` object[] — Filter results based on channel's authors, created_at, and title.
      - `title` object
        - `contains` string — Substring to search for within the target string
        - `equal_to` string — IN operator
      - `authors` object
        - `overlaps` string[] — Checks for any overlapping elements with the target array
      - `created_at` object
        - `equal_to` string, date-time, nullable — Equal to operator
        - `greater_than` string, date-time, nullable — Great than operator
        - `less_than` string, date-time, nullable — Less than operator
    - `themes` object[] — Filter results based on theme's created_at, title/summary.
      - `title` object
        - `contains` string — Substring to search for within the target string
        - `equal_to` string — IN operator
      - `created_at` object
        - `equal_to` string, date-time, nullable — Equal to operator
        - `greater_than` string, date-time, nullable — Great than operator
        - `less_than` string, date-time, nullable — Less than operator
  - `query` string — An optional query to search the highlights, notes, insights, channels and/or themes.

## Response `200`

200

- object
  - `data` object, required
    - `total` number, required
    - `highlights` object[], nullable, required
      - `id` string, required
      - `url` string, nullable — The URL of the parent note containing this highlight in the Dovetail web app. This field is experimental and may change without notice.
      - `result_type` 'HIGHLIGHT', required
      - `preview_text` string, nullable, required
      - `note_id` string, nullable, required
      - `note_title` string, nullable, required
      - `author_id` string, nullable, required
      - `project_id` string, nullable, required
      - `project_title` string, nullable, required
      - `created_at` string, required
      - `updated_at` string, required
      - `tags` object[], required
        - `title` string, nullable, required
        - `highlight_count` number, nullable, required
    - `tags` object[], required
      - `id` string, required
      - `url` string — The URL of this resource in the Dovetail web app. This field is experimental and may change without notice.
      - `result_type` 'TAG', required
      - `author_id` string, nullable, required
      - `title` string, required
      - `color` string, nullable, required
      - `highlight_count` number, required
      - `created_at` string, required
      - `updated_at` string, required
    - `notes` object[], required
      - `id` string, required
      - `url` string — The URL of this resource in the Dovetail web app. This field is experimental and may change without notice.
      - `result_type` 'NOTE', required
      - `preview_text` string, nullable, required
      - `title` string, required
      - `author_id` string, nullable, required
      - `project_id` string, nullable, required
      - `project_title` string, nullable, required
      - `created_at` string, required
      - `updated_at` string, required
      - `fields` object[], required
        - `label` string, required
        - `value` string, nullable, required
    - `insights` object[], required
      - `id` string, required
      - `url` string — The URL of this resource in the Dovetail web app. This field is experimental and may change without notice.
      - `result_type` 'INSIGHT', required
      - `preview_text` string, nullable, required
      - `title` string, required
      - `author_id` string, nullable, required
      - `project_id` string, nullable, required
      - `project_title` string, nullable, required
      - `created_at` string, required
      - `updated_at` string, required
      - `fields` object[], required
        - `label` string, required
        - `value` string, nullable, required
    - `channels` object[], required
      - `id` string, required
      - `url` string — The URL of this resource in the Dovetail web app. This field is experimental and may change without notice.
      - `result_type` 'CHANNEL', required
      - `author_id` string, nullable, required
      - `title` string, required
      - `created_at` string, required
      - `updated_at` string, required
    - `themes` object[], required
      - `id` string, required
      - `url` string, nullable — The URL of this resource in the Dovetail web app, or null if unavailable. This field is experimental and may change without notice.
      - `result_type` 'THEME', required
      - `title` string, nullable, required
      - `summary` string, nullable, required
      - `created_at` string, required
      - `updated_at` string, required
    - `offset` number, required
    - `limit` number, required

## Other responses

- `400` — 400
- `401` — 401
- `403` — 403
- `404` — 404
- `422` — 422
- `429` — 429
- `500` — 500

---

[API](https://skmtc.net/dovetail/apis/dovetail-public-api.md) · [All operations](https://skmtc.net/dovetail/apis/dovetail-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/dovetail/dovetail-public-api/revisions/4107f5fdf8b2/schema)
