---
title: "Create private note"
method: POST
path: "/api/v1/user/notes"
tags: ["User"]
---

# Create private note

`POST /api/v1/user/notes`

## Headers

- `X-CSRF-Token` string, required

## Request body

- UserNoteCreateRequest
  - `target_type` 'company' | 'person' | 'sector' | 'borme_id' | 'free', required
  - `target_id` string, required
  - `title` string
  - `body` string, required
  - `pinned` boolean

## Response `201`

Created

- UserNoteCreatedResponse
  - `id` integer, required
  - `note` UserNote, required — Private note visible only to its authenticated owner.
    - `id` integer
    - `user_id` integer
    - `target_type` string
    - `target_id` string
    - `title` string
    - `body` string
    - `pinned` union
      - integer
      - boolean
    - `created_at` string
    - `updated_at` string

## Other responses

- `400` — Invalid request
- `401` — Authentication required (no active session)
- `403` — Invalid CSRF

## Changes

- **2026-07-26** `996f96a11758` — 2 breaking, 5 info
  - added the new required `header` request parameter `X-CSRF-Token`
  - added required request body
  - api operation id `postUserNotes` was added
  - added the media type `application/json` for the response with the status `201`
  - …3 more

[Change history](https://skmtc.dev/openmercantil/apis/openmercantil-public-api/changes/api/v1/user/notes/post.md)

---

[API](https://skmtc.dev/openmercantil/apis/openmercantil-public-api.md) · [All operations](https://skmtc.dev/openmercantil/apis/openmercantil-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openmercantil/openmercantil-public-api/revisions/601ff6123c86/schema)
