---
title: "Search photos in words (Trvlrr Plus)"
method: GET
path: "/api/photos/search"
tags: ["Photos"]
---

# Search photos in words (Trvlrr Plus)

`GET /api/photos/search`

## Request

- Base URL: `https://trvlrr.app`
- URL: `https://trvlrr.app/api/photos/search`
- Auth: HTTP bearer

Over captions, tags, landmarks, visible text, trip titles, places and tagged people. Terms are AND-combined; up to 80 matches, newest first.

## Query parameters

- `q` string, required: What is in the photo, e.g. lighthouse, ramen, a person's name.

## Response `200`

Matches.

- PhotoSearchHit[]
  - `id` string, required
  - `caption` string, nullable, required
  - `landmark` string, nullable, required
  - `taken_at` string, nullable, required
  - `lat` number, nullable, required
  - `lon` number, nullable, required
  - `thumb_r2_key` string, nullable, required
  - `user_tags` string, nullable, required
  - `trip_id` string, required
  - `trip_title` string, required
  - `start_date` string, nullable, required

## Other responses

- `400`: The request is malformed or fails validation.
- `401`: No usable credential: a Clerk session token, a device token or an OAuth access token is required.
- `402`: Trvlrr Plus is required, or this month's AI allowance is used up.

---

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