---
title: "Plan Day Routes"
method: GET
path: "/trips/{trip_id}/plans/{plan_id}/routes/{day_id}"
tags: ["plan"]
---

# Plan Day Routes

`GET /trips/{trip_id}/plans/{plan_id}/routes/{day_id}`

Driving legs between one plan day's geocoded activities, in entry order.

Days are addressed by their ULID id, never an index: validation inserts
derived days and reorders dated ones, so index positions differ between
the stored plan and the validated view clients hold from GET /plans.

## Path parameters

- `trip_id` string, required
- `plan_id` string, uuid, required
- `day_id` string, required

## Response `200`

Successful Response

- PlanDayRoutesResponse — Driving legs for one plan day, in entry order. Empty `legs` means the day has fewer than two geocoded activities or Valhalla had no answer — clients just draw nothing.
  - `legs` PlanRouteLeg[]
    - `from_item_id` string, required
    - `to_item_id` string, required
    - `polyline` string, required
    - `seconds` integer, required
    - `meters` integer, required
  - `total_seconds` integer
  - `total_meters` integer

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-04** `eb694aedc555` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/stardrift/apis/fastapi/changes/trips/:trip_id/plans/:plan_id/routes/:day_id/get.md)

---

[API](https://skmtc.dev/stardrift/apis/fastapi.md) · [All operations](https://skmtc.dev/stardrift/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc.dev/stardrift/apis/fastapi/revisions/dd78fbd6c358?raw)
