---
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`

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