Search or browse trip templates
GET/v1/trip-templates
The agency's trip templates (Catalog → Trips). Each is a design plus the blocks a trip created from it starts with (POST /trips with templateId). Filter by tag. Without q, browses the most recently changed first, paged by nextCursor; updatedSince keeps only rows changed since (a polling trigger's watermark). With q, returns one page of the best matches, ranked.
Permissions: catalog:read · Kind: read · Cost: 1 unit · MCP tool list_trip_templates
Path parameters
None.
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
q |
string | max 200 chars | |
tag |
string | max 60 chars | |
limit |
integer | 1–100, default 25 | |
cursor |
string | max 500 chars | |
updatedSince |
datetime |
Response 200
| Field | Type | Required | Description |
|---|---|---|---|
object |
"list" | yes | |
data |
object[] | yes | |
data[].object |
"trip_template_summary" | yes | |
data[].id |
uuid | yes | |
data[].title |
string | yes | |
data[].description |
string | yes | |
data[].tags |
string[] | yes | |
data[].coverUrl |
string | null | yes | |
data[].stopCount |
integer | yes | |
data[].updatedAt |
string | yes | |
nextCursor |
string | null | yes |
Errors
Errors are problem details. Besides the refusals described above, any call like this one can return:
invalid_request— Invalid requestunauthorized— Missing or invalid API keyinsufficient_scope— Missing permissionrate_limited— Rate limit reached