---
title: "Create a session note"
method: POST
path: "/v1/session_notes"
tags: ["sessions"]
---

# Create a session note

`POST /v1/session_notes`

Add a note annotation to a session. By default each call appends a new note with an auto-generated UUIDv4 identifier, so multiple notes accumulate on the same session. Callers may supply a non-empty `identifier` to upsert on (session_id, name='note', identifier) — repeated calls with the same identifier overwrite the existing note, matching the semantics of structured annotations.

## Request body

- CreateSessionNoteRequestBody
  - `data` SessionNoteData, required
    - `session_id` string, required — Session ID
    - `note` string, required — The note text to add to the session
    - `identifier` string — Optional caller-supplied identifier. When non-empty, the note is upserted on (session_id, name='note', identifier) — repeated calls with the same identifier overwrite the existing note. When omitted or empty, the server stamps a unique 'px-session-note:<uuid>' identifier so each call appends a new note.

## Response `200`

Session note created successfully

- CreateSessionNoteResponseBody
  - `data` InsertedSessionAnnotation, required
    - `id` string, required — The ID of the inserted session annotation

## Other responses

- `403` — Forbidden
- `404` — Session not found
- `422` — Validation Error

## Changes

- **2026-05-12** `492b655d385d` — 1 info
  - added the new optional request property `data/identifier`
- **2026-04-29** `c81391216eb5` — 1 warning
  - removed the request property `data/identifier`

[Change history](https://skmtc.dev/arize-ai/apis/arize-phoenix-rest-api/changes/v1/session_notes/post.md)

---

[API](https://skmtc.dev/arize-ai/apis/arize-phoenix-rest-api.md) · [All operations](https://skmtc.dev/arize-ai/apis/arize-phoenix-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/arize-ai/arize-phoenix-rest-api/revisions/b7fd8563d97a/schema)
