---
title: "Search TV programs (JSON body)"
method: POST
path: "/api/v1/search"
---

# Search TV programs (JSON body)

`POST /api/v1/search`

## Request

- Base URL: `https://tv.madeinro.eu`
- URL: `https://tv.madeinro.eu/api/v1/search`
- Auth: one of:
  - none
  - HTTP bearer
  - API key in header `X-Api-Key`

Same as GET /api/v1/search, parameters as a JSON body.

## Request body

- SearchParams: Search parameters (generated from the MCP tv_search_program zod schema).
  - `query` string: Free text to match against program title (case/diacritic-insensitive)
  - `channel` string: Channel id, display name, or alias (e.g. "PRO TV", "tv-pro-tv", "HBO")
  - `category` string: Channel category: Generaliste | Știri | Sport | Filme & Seriale | Documentare | Copii | Muzică | Altele
  - `timeframe` string: Natural time reference: now | tonight | tomorrow | weekend | primetime | today | YYYY-MM-DD | ISO instant | ISO range "A/B"
  - `exclude_news` boolean
  - `limit` integer

## Response `200`

Matching programs.

- SearchResponse: Search result. Mirrors the MCP tv_search_program output shape.
  - `generated_at` string
  - `asked_at_utc` string, required
  - `timeframe_label` string
  - `window` object
    - `from_utc` string
    - `to_utc` string
  - `count` number, required
  - `items` object[], required
    - `channel_id` string, required
    - `channel_name` string, required
    - `channel_category` string
    - `program` object, required
      - `title` string, required
      - `start_local` string: Europe/Bucharest local time.
      - `start_utc` string, required
      - `stop_local` string
      - `stop_utc` string, required
      - `duration_min` number
      - `category` string
      - `description` string
    - `match_reason` string

---

[API](https://skmtc.dev/madeinro/apis/rotv-guide-api.md) · [All operations](https://skmtc.dev/madeinro/apis/rotv-guide-api/llms.txt) · [OpenAPI document](https://skmtc.dev/madeinro/apis/rotv-guide-api/revisions/7771a3ee9257?raw)
