---
title: "Add Place To Itinerary"
method: POST
path: "/trips/{trip_id}/places/add"
tags: ["places"]
---

# Add Place To Itinerary

`POST /trips/{trip_id}/places/add`

## Request

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

Fetch place details and add as attraction to itinerary.

Accepts either a Google `place_id` (autocomplete), a canonical registry ULID,
or a `saved_item_id` (a place the user saved). Enrichment (TripAdvisor
lookup, photos/reviews/ratings) is deferred to a background worker so a
flaky third-party API can't 500 the add. The activity lands in the itinerary
immediately; the worker patches it in place once enrichment resolves.

## Path parameters

- `trip_id` string, required

## Headers

- `x-client-id` string, nullable

## Request body

- ApiItineraryPlacesRoutesAddPlaceRequest
  - `place_id` string, nullable
  - `saved_item_id` string, nullable

## Response `200`

Successful Response

- ApiItineraryPlacesRoutesAddPlaceResponse
  - `activity_id` string, required
  - `attraction` object, required
  - `card_key` string, required
  - `card_data` object, required

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