---
title: "List Trips"
method: GET
path: "/trips"
---

# List Trips

`GET /trips`

List all trips for the authenticated user.

`view=full` (the default, and what mobile consumes) is unchanged.
`view=list` returns the slimmer `TripListSummary` per trip — see that
model for the field-by-field rationale. Both views run exactly the same
queries: every remaining field still needs the hero-photo, plan,
conversation and member loads.

## Query parameters

- `view` 'full' | 'list'

## Response `200`

`view=full` (default) returns TripsListResponse; `view=list` returns the slimmer TripsListViewResponse.

- union
  - TripsListResponse
    - `trips` ApiIndexTripSummary[], required
      - `id` string, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
      - `title` string, required
      - `hero_photo_url` string, nullable
      - `hero_portrait_photo_url` string, nullable
      - `conversations` TripConversationSummary[]
        - `id` string, required
        - `title` string, nullable
        - `created_at` string, date-time, required
        - `updated_at` string, date-time, required
        - `archived_at` string, date-time, nullable
      - `has_plan` boolean
      - `extracted_dates` object, nullable
      - `extracted_destination` object[], nullable
      - `archived_at` string, date-time, nullable
      - `is_published` boolean
      - `slug` string, nullable
      - `is_shared` boolean
      - `owner_name` string, nullable
      - `eclipse_mode` boolean
    - `has_onboarded` boolean, nullable
    - `onboarding_reminder_dismissed` boolean
    - `guest_message_limit_reached` boolean
  - TripsListViewResponse — `view=list` envelope. Same envelope fields as `TripsListResponse` — only the per-trip shape is slimmer.
    - `trips` TripListSummary[], required
      - `id` string, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
      - `title` string, required
      - `hero_photo_url` string, nullable
      - `conversations` TripConversationSummary[]
        - `id` string, required
        - `title` string, nullable
        - `created_at` string, date-time, required
        - `updated_at` string, date-time, required
        - `archived_at` string, date-time, nullable
      - `has_plan` boolean
      - `extracted_dates` object, nullable
      - `extracted_destination` object[], nullable
      - `archived_at` string, date-time, nullable
      - `is_published` boolean
      - `slug` string, nullable
      - `is_shared` boolean
      - `owner_name` string, nullable
    - `has_onboarded` boolean, nullable
    - `onboarding_reminder_dismissed` boolean
    - `guest_message_limit_reached` boolean

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/stardrift/apis/fastapi.md) · [All operations](https://skmtc.dev/stardrift/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stardrift/fastapi/revisions/00746572572a/schema)
