---
title: "Create Visit"
method: POST
path: "/api/v1/visits"
tags: ["visits"]
---

# Create Visit

`POST /api/v1/visits`

## 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/visits`
- Auth: HTTP bearer

Create a rich visit with optional rating, notes, and duration.

## Request body

- VisitCreate: Richer visit creation request (used by VisitHistoryScreen log sheet).
  - `place_id` string, uuid, required
  - `visited_at` string, date-time, nullable
  - `rating` integer, nullable
  - `notes` string, nullable
  - `duration_mins` integer, nullable
  - `companions` string, nullable
  - `plan_id` string, uuid, nullable

## Response `201`

Successful Response

- VisitResponse: Full visit shape including nested place summary.
  - `id` string, uuid, required
  - `user_id` string, uuid, required
  - `place_id` string, uuid, nullable, required
  - `visited_at` string, date-time, required
  - `source` string, required
  - `rating` integer, nullable, required
  - `notes` string, nullable, required
  - `duration_mins` integer, nullable, required
  - `companions` string, nullable, required
  - `plan_id` string, uuid, nullable, required
  - `weather` string, nullable, required
  - `created_at` string, date-time, required
  - `place` VisitPlaceSummary, required: Compact place info embedded in visit responses.
    - `id` string, uuid, required
    - `name` string, required
    - `place_type` 'park' | 'playground' | 'museum' | 'cafe' | 'restaurant' | 'bar' | 'activity' | 'shopping' | 'other', required
    - `address` string, nullable, required
    - `city` string, nullable, required
    - `lat` number, nullable, required
    - `lon` number, nullable, 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)
