---
title: "One trip in full"
method: GET
path: "/api/trips/{id}"
tags: ["Trips"]
---

# One trip in full

`GET /api/trips/{id}`

## Request

- Base URL: `https://trvlrr.app`
- URL: `https://trvlrr.app/api/trips/{id}`
- Auth: HTTP bearer

Places, travellers, every segment, stay and activity with its travellers, a preview of photos, documents, the checklist count and (with ?currency=) the trip's cost. Cancellations pending confirmation carry cancellation_state = "pending".

## Path parameters

- `id` string, required: The trip id.

## Query parameters

- `currency` string: ISO currency to total the trip in, e.g. AUD.

## Response `200`

The trip.

- TripDetail
  - `id` string, required
  - `title` string, required
  - `start_date` string, nullable, required: Date, YYYY-MM-DD.
  - `end_date` string, nullable, required: Date, YYYY-MM-DD.
  - `status` 'past' | 'planning' | 'booked' | 'active', required
  - `notes` string, nullable, required
  - `evidence_status` string, nullable, required: From the original import: how well the trip is evidenced.
  - `cover_photo_id` string, nullable, required
  - `budget_raw` string, nullable: The trip's budget with currency, e.g. "AUD 8000".
  - `account_id` string, required
  - `created_at` string, required
  - `updated_at` string, required
  - `places` TripPlace[], required
    - `id` string, required
    - `trip_id` string, required
    - `position` integer, required
    - `name` string, required: The label as written.
    - `country` string, nullable, required: Readable country name (this column keys the poster art).
    - `lat` number, nullable, required
    - `lon` number, nullable, required
    - `kind` 'destination' | 'layover' | 'origin', required
    - `locality` string, nullable, required: Canonical city the place rolls into.
    - `locality_country` string, nullable, required: ISO 3166-1 alpha-2 of that city.
    - `tz` string, nullable, required: IANA time zone.
  - `travelers` TripTraveler[], required
    - `id` string, required
    - `name` string, required
    - `avatar_updated_at` string, nullable, required
    - `has_avatar` integer, required: 0 or 1.
    - `is_placeholder` integer, required: 0 or 1.
  - `segments` Segment[], required
    - `id` string, required
    - `trip_id` string, required
    - `position` integer, nullable, required
    - `mode` 'flight' | 'train' | 'bus' | 'ferry' | 'car_rental' | 'drive' | 'other', required
    - `provider` string, nullable, required
    - `service` string, nullable, required
    - `from_place` string, nullable, required
    - `to_place` string, nullable, required
    - `depart_date` string, nullable, required: Date, YYYY-MM-DD.
    - `depart_time` string, nullable, required: Local time "HH:MM".
    - `arrive_time` string, nullable, required: Local time "HH:MM", with " +N" when it lands N days later.
    - `booking_ref` string, nullable, required
    - `status` string, nullable, required
    - `notes` string, nullable, required
    - `source_gmail_id` string, nullable, required
    - `price_raw` string, nullable, required
    - `booked_at` string, nullable, required
    - `category` string, nullable, required
    - `planning_state` string, nullable, required: "planned" for planner proposals accepted but not booked.
    - `distance_km` number, nullable, required
    - `from_country` string, nullable, required: ISO alpha-2.
    - `to_country` string, nullable, required: ISO alpha-2.
    - `inferred` integer, required: 1 for a drive inferred between two points.
    - `cancellation_state` string, nullable, required: "pending" when an email said it was cancelled and nobody has confirmed.
    - `cancelled_reason` string, nullable, required
    - `depart_tz` string, nullable, required
    - `arrive_tz` string, nullable, required
    - `depart_utc` string, nullable, required
    - `arrive_utc` string, nullable, required
    - `from_code` string, nullable, required
    - `to_code` string, nullable, required
    - `operating_carrier` string, nullable, required
    - `aircraft` string, nullable, required
    - `cabin` string, nullable, required
    - `seats` string, nullable, required
    - `depart_terminal` string, nullable, required
    - `arrive_terminal` string, nullable, required
    - `ticket_numbers` string, nullable, required
    - `agency` string, nullable, required
    - `payment_status` string, nullable
    - `payment_method` string, nullable
    - `travelers` Traveler[], required
      - `id` string, required
      - `name` string, required
      - `avatar_updated_at` string, nullable, required
      - `has_avatar` integer, required: 0 or 1.
  - `stays` Stay[], required
    - `id` string, required
    - `trip_id` string, required
    - `provider` string, nullable, required
    - `property` string, required
    - `city` string, nullable, required
    - `country` string, nullable, required: Readable country name.
    - `check_in` string, nullable, required: Date, YYYY-MM-DD.
    - `check_out` string, nullable, required: Date, YYYY-MM-DD.
    - `check_in_time` string, nullable: Local check-in time, HH:MM.
    - `check_out_time` string, nullable: Local check-out time, HH:MM.
    - `booking_ref` string, nullable, required
    - `status` string, nullable, required
    - `price_amount` number, nullable, required
    - `price_currency` string, nullable, required
    - `price_raw` string, nullable, required
    - `notes` string, nullable, required
    - `source_gmail_id` string, nullable, required
    - `booked_at` string, nullable, required
    - `lat` number, nullable, required
    - `lon` number, nullable, required
    - `planning_state` string, nullable, required
    - `cancellation_state` string, nullable, required
    - `cancelled_reason` string, nullable, required
    - `tz` string, nullable, required
    - `check_in_utc` string, nullable, required
    - `check_out_utc` string, nullable, required
    - `address` string, nullable, required
    - `room_type` string, nullable, required
    - `guests` integer, nullable, required
    - `agency` string, nullable, required
    - `payment_status` string, nullable
    - `payment_method` string, nullable
    - `travelers` Traveler[], required
      - `id` string, required
      - `name` string, required
      - `avatar_updated_at` string, nullable, required
      - `has_avatar` integer, required: 0 or 1.
  - `experiences` Experience[], required
    - `id` string, required
    - `trip_id` string, required
    - `kind` 'restaurant' | 'place' | 'activity' | 'note', required
    - `name` string, required
    - `city` string, nullable, required
    - `lat` number, nullable, required
    - `lon` number, nullable, required
    - `date` string, nullable, required: Date, YYYY-MM-DD.
    - `rating` integer, nullable, required
    - `note` string, nullable, required
    - `created_by` string, nullable, required
    - `created_at` string, required
    - `time` string, nullable, required: Local time "HH:MM".
    - `price_raw` string, nullable, required
    - `booked_at` string, nullable, required
    - `done` integer, required: 0 or 1.
    - `journal` string, nullable, required
    - `category` string, nullable, required
    - `planning_state` string, nullable, required
    - `country` string, nullable, required: ISO alpha-2.
    - `cancellation_state` string, nullable, required
    - `cancelled_reason` string, nullable, required
    - `tz` string, nullable, required
    - `at_utc` string, nullable, required
    - `remind_on` string, nullable: Date, YYYY-MM-DD.
    - `remind_time` string, nullable: "HH:MM"; empty means 09:00.
    - `payment_status` string, nullable
    - `payment_method` string, nullable
  - `photos` Photo[], required: A preview of up to 6; the full set is GET /api/trips/{id}/photos.
    - `id` string, required
    - `trip_id` string, required
    - `experience_id` string, nullable, required
    - `r2_key` string, required
    - `content_type` string, nullable, required
    - `size_bytes` integer, nullable, required
    - `width` integer, nullable, required
    - `height` integer, nullable, required
    - `taken_at` string, nullable, required
    - `lat` number, nullable, required
    - `lon` number, nullable, required
    - `uploaded_by` string, nullable, required
    - `created_at` string, required
    - `thumb_r2_key` string, nullable, required
    - `caption` string, nullable, required
    - `tags` string, nullable, required
    - `landmark` string, nullable, required
    - `ocr_text` string, nullable, required
    - `indexed_at` string, nullable, required
    - `user_tags` string, nullable, required: JSON array, as text.
    - `faces_at` string, nullable, required
    - `source_id` string, nullable, required: The client's hash of the source image, for de-duplication.
  - `photo_count` integer, required
  - `cost` TripCost, nullable, required: Only when ?currency= was given.
    - `currency` string, required
    - `total` number, required
    - `unconverted` integer, required: Priced items whose currency could not be converted.
  - `checklist` object, required
    - `locked` boolean, required: true on the free plan.
    - `total` integer, required
    - `remaining` integer, required
  - `documents` Document[], required
    - `id` string, required
    - `filename` string, required
    - `content_type` string, required
    - `size_bytes` integer, nullable, required
    - `segment_id` string, nullable, required
    - `stay_id` string, nullable, required
    - `created_at` string, required

## Other responses

- `401`: No usable credential: a Clerk session token, a device token or an OAuth access token is required.
- `404`: No such thing, or not one the caller can see.

---

[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)
