---
title: "Update Collection"
method: PATCH
path: "/api/v1/collections/{collection_id}"
tags: ["collections"]
---

# Update Collection

`PATCH /api/v1/collections/{collection_id}`

## Request

- Base URL: `https://yondry.app` (the document declares no server; this is the origin it was published from)
- URL: `https://yondry.app/api/v1/collections/{collection_id}`
- Auth: HTTP bearer

## Path parameters

- `collection_id` string, uuid, required

## Request body

- CollectionUpdate
  - `name` string, nullable
  - `emoji` string, nullable
  - `description` string, nullable

## Response `200`

Successful Response

- CollectionResponse
  - `id` string, uuid, required
  - `name` string, required
  - `description` string, nullable, required
  - `emoji` string, nullable, required
  - `is_default` boolean, required
  - `is_public` boolean, required
  - `share_token` string, nullable, required
  - `cover_photos` string[], required
  - `items` CollectionItemOut[], required
    - `id` string, uuid, required
    - `place_id` string, uuid, required
    - `note` string, nullable, required
    - `added_at` string, date-time, required
    - `sort_order` integer, required
    - `place` PlaceListItem, required: Compact schema for list and map views. opening_hours detail is omitted; photos is trimmed to the first entry by the route handler before serialisation.
      - `id` string, uuid, required
      - `name` string, required
      - `address` string, nullable, required
      - `lat` number, nullable, required
      - `lon` number, nullable, required
      - `city` string, nullable, required
      - `country_code` string, nullable, required
      - `place_type` 'park' | 'playground' | 'museum' | 'cafe' | 'restaurant' | 'bar' | 'activity' | 'shopping' | 'other', required
      - `category` string, nullable, required
      - `price_level` integer, nullable, required
      - `rating` number, nullable, required
      - `photos` string[], required
      - `photo_url` string, nullable
      - `is_favourite` boolean, required
      - `status` 'pending' | 'active' | 'closed', required
      - `permanently_closed` boolean, required
      - `source_type` 'manual' | 'google_import' | 'url_import' | 'screenshot' | 'social_save', required
      - `source` string, required
      - `user_rating` integer, nullable, required
      - `user_tags` string[], required
      - `tags` string[], required
      - `saved_at` string, date-time, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
      - `deleted_at` string, date-time, nullable, required
      - `is_deleted` boolean, required
      - `stroller_friendly` boolean, nullable
      - `has_changing_facilities` boolean, nullable
      - `noise_level` string, nullable
      - `is_open_now` boolean, nullable
      - `visit_count` integer
      - `distance_km` number, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/yondry/apis/yondry-api.md) · [All operations](https://skmtc.dev/yondry/apis/yondry-api/llms.txt) · [OpenAPI document](https://skmtc.dev/yondry/apis/yondry-api/revisions/d2c213cea95b?raw)
