---
title: "Explore Trip Modules"
method: GET
path: "/explore/trips/modules"
tags: ["explore"]
---

# Explore Trip Modules

`GET /explore/trips/modules`

## Request

- Base URL: `https://stardrift.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://stardrift.ai/explore/trips/modules`
- Auth: none declared

The Saved tab's per-trip rail anchors: the top 4 soonest UPCOMING trips
(past excluded, undated after dated), each resolved to its first servable
region anchor — PLUS anchors for any `trip_ids` the caller names.

`trip_ids` exists because the client's context pills are picked by a
different rule than this ranking, so a pill regularly named a trip the
ranked list had no room for; the client's lookup missed, and the surface
fell through to a feed anchored somewhere else entirely (audit §1-2). The
caller knows what is on screen — it says so, and the lookup becomes total.
One question, one endpoint, one answer per trip.

Anchors come back soonest-first with named extras last, so a client taking
a prefix still gets the ranked set. Two trips may now share a region: that
is a fact about the trips, and collapsing them into one rail is the
renderer's call, not this endpoint's.

## Query parameters

- `trip_ids` string[], nullable

## Headers

- `x-client-build` string, nullable

## Response `200`

Successful Response

- TripRegionAnchor[]
  - `trip_id` string, required
  - `trip_title` string, nullable, required
  - `rung` 'country' | 'region' | 'city', required
  - `label` string, required
  - `country` string, nullable

## Other responses

- `422`: Validation Error

---

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