---
title: "Search Media"
method: POST
path: "/api/media/search"
---

# Search Media

`POST /api/media/search`

## Request

- Base URL: `https://api.yourbeckett.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.yourbeckett.com/api/media/search`
- Auth: none declared

Entity-less media search for the Library add flow.

Proxies TMDB (movie/tv) or Google Books (book) and returns enriched
candidates matching the shape of /library/{id}/search-tmdb and
/library/{id}/search-google-books so iOS/web can reuse existing
Codable/TS types. No tenant data is touched — auth gate only.
Underlying services use sync httpx.get(), so every call is wrapped in
asyncio.to_thread() per app/CLAUDE.md "Async Endpoints — NEVER Block
the Event Loop."

## Request body

- MediaSearchRequest
  - `media_type` string, required
  - `query` string, required
  - `year` integer, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/yourbeckett/apis/beckett-platform.md) · [All operations](https://skmtc.dev/yourbeckett/apis/beckett-platform/llms.txt) · [OpenAPI document](https://skmtc.dev/yourbeckett/apis/beckett-platform/revisions/a1cb8f2c8961?raw)
