v1

latestOpenAPI 3.1.02026-07-226875162.5 KB
Note

Update Note

Update a note's metadata (partial update). Currently only the note title can be changed. Requires the note:write scope.

This follows the AIP-134 field-mask convention: the required updateMask query parameter lists which fields to change, and only those fields are touched. A field named in updateMask but absent from the body (or sent as null) is treated as an error for title, since the title cannot be blank.

patch/v1/external/notes/{noteGuid}

Path parameters

noteGuidstring required

Note GUID

Query parameters

updateMaskstring required

Comma-separated list of fields to update. Only title is supported today.

Request body

titlestring

New note title. Must not be blank and is limited to 100 characters.

Example request

{
  "title": "Q3 Planning Sync"
}

Response

Note updated

guidstring required

Unique identifier for the note

workspaceGuidstring nullable

GUID of the workspace this note belongs to. null for notes not associated with a workspace.

titlestring required

Note title

createdAtstring date-time required

ISO-8601 creation timestamp

updatedAtstring date-time required

ISO-8601 last update timestamp

sourceType'onboarding' | 'text' | 'live-voice' | 'recording' | 'offline-mode' | 'webpage' | 'video' required

Source type of the note:

  • live-voice: Real-time voice recording
  • recording: Uploaded audio file
  • text: Text-only note
  • video: Video recording
  • webpage: Web page content
  • offline-mode: Offline recording
  • onboarding: Onboarding sample note
recordingStartAtstring date-time nullable

Actual recording start timestamp. Null for non-recording source types.

recordingEndAtstring date-time nullable

Actual recording end timestamp. Null for non-recording source types.

recordingDurationSecondsinteger required

Actual recording length in seconds. Returns 0 for non-recording source types.

transcribeLocalestring nullable

Language locale used for transcription. Null for non-recording source types.

translateLocalestring nullable

Language locale used for translation. Null when no translation was requested.

webUrlstring uri required

Web URL to access the note

matchedSnippetsstring[] nullable

Highlight snippets for the keyword that matched this note. Present only on responses to the deep-search endpoints (POST /v1/external/workspaces/{workspaceGuid}/notes/search or the deprecated POST /v1/external/notes/search); absent (null) on plain list responses.

Example response

{
  "guid": "note-guid-123",
  "workspaceGuid": "ws_a1b2c3d4",
  "title": "Meeting notes",
  "createdAt": "2025-07-20T10:00:00Z",
  "updatedAt": "2025-07-20T11:10:00Z",
  "sourceType": "live-voice",
  "recordingStartAt": "2025-07-20T10:00:10Z",
  "recordingEndAt": "2025-07-20T11:00:10Z",
  "recordingDurationSeconds": 3600,
  "transcribeLocale": "en_US",
  "translateLocale": "ko_KR",
  "webUrl": "https://tiro.ooo/n/123",
  "collaborators": [
    {
      "guid": "user-guid-123",
      "name": "John Doe",
      "email": "john@example.com",
      "role": "OWNER"
    }
  ],
  "participants": [
    {
      "name": "Alice Kim",
      "email": "alice@example.com"
    }
  ],
  "documents": [
    {
      "id": 456,
      "noteGuid": "note-abc123-def456",
      "note": {
        "guid": "note-abc123-def456",
        "webUrl": "https://tiro.ooo/n/xQ8YKnZUPGHNB"
      },
      "template": {
        "id": 1,
        "title": "영업 보고서"
      },
      "locale": "ko_KR",
      "sections": [
        {
          "content": {
            "type": "text/plain",
            "content": "Hello everyone, welcome to today's meeting..."
          },
          "createdAt": "2025-10-20T12:35:26Z"
        }
      ],
      "createdAt": "2025-10-20T12:35:26Z",
      "updatedAt": "2025-10-20T13:45:30Z"
    }
  ]
}