---
title: "Execute an App tab search"
method: POST
path: "/v1/public/apps/{slug}/search"
tags: ["Public Apps API"]
---

# Execute an App tab search

`POST /v1/public/apps/{slug}/search`

Execute a search on a specific tab of a public App — no authentication required.

Routes `tab_id` → retriever → results. Each tab can be backed by either:
- An **internal retriever** (`retriever_id`) — org-scoped
- A **marketplace catalog entry** (`public_name`) — proxied via public API

The `inputs` dict is passed directly to the retriever's `input_schema`.
Extra top-level fields are automatically merged into `inputs`.

**Example:**
```json
{
  "tab_id": "search",
  "inputs": { "query": "red sneakers" },
  "settings": { "limit": 20 }
}
```

## Path parameters

- `slug` string, required — Globally unique app slug

## Request body

- PublicAppSearchRequest — Request to execute a search on a specific tab of an App. Extra top-level fields are merged into ``inputs`` automatically so callers can pass retriever inputs without extra nesting.
  - `tab_id` string, required — Tab ID to search within
  - `inputs` object
  - `settings` object

## Response `200`

Search results from the tab's retriever

- unknown

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

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