---
title: "GET /v1/reports/search"
method: GET
path: "/v1/reports/search"
tags: ["reports"]
---

# GET /v1/reports/search

`GET /v1/reports/search`

## Request

- Base URL: `https://help.steep.app` (the document declares no server; this is the origin it was published from)
- URL: `https://help.steep.app/v1/reports/search`
- Auth: none declared

Search existing reports by title and content: report titles and block headings/titles (text blocks, and chart, table, big-number, and map block titles); body text is not searched. Multiple words are matched independently. Returns the most recently updated matching reports, each flagged by whether it matched on the title or on content. Prefer this first for broad or open-ended questions about how an area, topic, or the business is doing, such as 'how is retention trending?', 'what's the latest on churn?', or 'give me a read on sales this quarter'. Teams curate reports as the canonical, vetted answer to exactly these questions, so look for an existing report before assembling answers from individual metrics. Skip it for precise, computational asks that name a specific metric, value, breakdown, or chart, such as 'what was MRR last month?' or 'chart gross margin by month'; use the metric tools directly for those.

## Query parameters

- `q` string, required: Search query of up to 5 words. Each word is matched independently: a report matches if any word appears in its title or content.
- `limit` integer: Maximum number of hits to return.

## Response `200`

Response for status 200

- object
  - `data` object[], required
    - `id` string, required: Unique resource ID (opaque).
    - `title` string, required
    - `updatedAt` string, date-time, required
    - `link` string, required: Link to the report in the Steep app.
    - `matchedOn` 'title' | 'content', required: Why the report matched the keyword: `title` if it matched the report title, `content` if it matched block content (a text-block heading or a chart/table/big-number/map block title).

## Other responses

- `401`: Response for status 401
- `403`: Response for status 403
- `422`: Response for status 422
- `429`: Response for status 429
- `500`: Response for status 500

---

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