---
title: "Update an activity"
method: PATCH
path: "/api/experiences/{id}"
tags: ["Activities"]
---

# Update an activity

`PATCH /api/experiences/{id}`

## Request

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

Tick it off, jot a journal note, price it, pin it, categorise it or move its time. Only the fields given change; the instant (at_utc) is re-derived.

## Path parameters

- `id` string, required: The id.

## Request body

- ExperiencePatch
  - `name` string: What it is.
  - `kind` 'restaurant' | 'place' | 'activity' | 'note': restaurant, place, activity or note.
  - `city` string, nullable: City.
  - `country` string, nullable: Country (name or ISO code).
  - `note` string, nullable: A note about it.
  - `rating` integer, nullable: 1–5, for places already visited.
  - `done` boolean: Done.
  - `journal` string, nullable: A journal entry about it.
  - `price_raw` string, nullable: Price with currency.
  - `lat` number, nullable: Latitude (set with lon).
  - `lon` number, nullable: Longitude (set with lat).
  - `category` string, nullable: restaurant, cafe, bar, attraction, museum, tour, concert, theatre, sport, nature, beach, spa, shopping, meeting, parking or place.
  - `tz` string, nullable: IANA time zone.
  - `at_utc` string, nullable: Derived; only set to override.
  - `date` string, nullable: Date, YYYY-MM-DD.
  - `time` string, nullable: Local time "HH:MM".
  - `remind_on` string, nullable: A day to be reminded about it. Date, YYYY-MM-DD. null clears it.
  - `remind_time` string, nullable: Time of day for the reminder, "HH:MM" local; empty means 09:00.
  - `payment_status` 'paid' | 'due' | 'on_arrival' | 'null', nullable: paid, due (to pay before the trip) or on_arrival (pay there or on the day).
  - `payment_method` 'card' | 'cash' | 'null', nullable: card or cash.

## Response `200`

The activity after the change.

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

## Other responses

- `400`: The request is malformed or fails validation.
- `401`: No usable credential: a Clerk session token, a device token or an OAuth access token is required.
- `403`: The caller may not do this to this account or trip.
- `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)
